کنترل دور موتور با PWM و جریان خروجی بالا

خروجی سه کاناله با کنترل سرعت به صورت مجزا، دو کلید افزایشی و کاهشی برای کنترل سرعت در هر کانال، فرکانس های مختلف و ثابت برای هر کانال، جریان خروجی بیش از 10 آمپر و ولتاژ بیش از 30 ولت

کنترل دور موتور با PWM و جریان خروجی بالا

پروژه تایپ حروف و اعداد با کیبورد 3×4 به زبان سی

با استفاده از میکروکنترلر ATMEGA8 و کیبورد 3×4 می توان حروف و اعداد را تایپ کرد و درون یک متغییر ذخیره نمود و محتوای این متغییر بر روی نمایشگر LCD نمایش داده می شود. در صورتی که فضای LCD پر شود کاراکترها به سمت چپ شیفت داده می شوند. تمامی حروف و اعداد کوچک و بزرگ انگلیسی قابل تایپ می باشند.

پروژه تایپ حروف و اعداد با کیبورد 3×4 به زبان سی

فرستنده گیرنده 20 کاناله-به همراه کنترل سرعت موتور

این پروژه یک فرستنده گیرنده رادیویی با برد 100 تا 200 می باشد، که قابلیت کنترل 20 کانال مجزا به همراه کنترل سرعت موتور DC را دارد. از ماژول HMT و HMR و 20 عدد دیپ سوئیچ و درایور L298N برای موتور استفاده شده است.

فرستنده گیرنده 20 کاناله-به همراه کنترل سرعت موتور

خازن سنج و سلف سنج LC متر

اندازه گیری ظرفیت خازن از 1pF تا 1uF، سلف از 1nH تا 1H و فرکانس از 1Hz تا 4MHz تنها با یک میکرو سوئیچ و همچنین کلیدی برای کالیبراسیون اتوماتیک.

خازن سنج و سلف سنج LC متر

کنترل دور موتور با PWM برحسب دما

بر اساس رنج حداقل و حداکثر تعریف شده توسط کاربر و با توجه به دمای محیط، سرعت موتور بین 10 تا 99 به صورت خودکار تنظیم می شود.

کنترل دور موتور با PWM برحسب دما
حل تمرینات و پروژه های درس میکروکنترلر

اتصال کیبورد 4*4 به میکروکنترلر AVR

به نام خدا

در این قسمت ما می خواهیم اتصال صفحه کلید به میکرو کنترلرهای AVR را آموزش دهیم. همان گونه که می دانیم یک پورت میکرو 8 پین دارد و ما اگر بخواهیم به پایه ها کلید وصل کنیم قاعدتا 8 تا کلید می توانیم به آن وصل کنیم برای این که به همین پورت بتوانیم تعداد کلید های بیشتری وصل کنیم اگر کلید ها را به صورت ماتریسی ببندیم می توانیم 16 تا کلید داشته باشیم، برای اینکار کلید ها را به صورت 4 سطر و 4 ستون می بندیم که 4 تا سطر را به 4 تا از میکرو وصل میکنیم و آنها را به صورت خروجی تعریف می کنیم و 4 تا ستون را به 4 تا از پین های میکرو وصل میکنیم و آنها را به صورت ورودی تعریف می کنیم. که در ادامه به توضیح کامل آن می پردازیم:

از بخشسفارش طراحیهمکنون درخواست خود را ثبت کنید
حل و تشریح کلیه تمرینات درس میکروکنترلر AVR
طراحی و ساخت مدارات دلخواه شما با میکروکنترلر AVR


شرح مدار و برنامه:

در اینجا ما از یک میکرو کنترلر ATMEGA32 استفاده کردیم و به پورت C کیبورد و به پورت A یک LCD وصل کردیم. هدف ما در این مثال این که از کیبورد یک عدد ورودی را دریافت کنیم و روی LCD آن عدد را نمایش دهیم. به پورت C.0 تا C.3 به ترتیب سطر های R1 تا R4 را وصل کردیم و به پورت C.4 تا C.7 به ترتیب ستونهای C1 تا C4 را وصل کردیم و در برنامه سطر ها را به عنوان خروجی تعریف کردیم (یعنی نیبل بالا) و ستون ها را به عنوان ورودی (یعنی نیبل پایین) و برنامه را به شکل زیر نوشتیم:

#include <mega32.h> // معرفي ميکرو 
#include <delay.h> // فراخواني تابع تاخيري 
#include <lcd.h> // فراخواني توابع ال سي دي 
#include <stdio.h> // فراخواني دستورات استاندار ورودي و خروجي 
#define c1 PINC.4 // تعريف سي1 به عنوان يک اسم براي اين پين 
#define c2 PINC.5 
#define c3 PINC.6 
#define c4 PINC.7 
#asm 
.equ __lcd_port=0x1B ;PORTA 
#endasm 
/*********www.picpars.com**********/ 
unsigned char scan[4]={0XFE,0XFD,0XFB,0XF7}; // اسکن صفحه کليد 
unsigned char arrkey[16]={ //کد هاي صفحه کليد 
7,8,9,20, 
4,5,6,30, 
1,2,3,40, 
70,0,60,50}; 
char key; 
/*********www.picpars.com**********/ 
unsigned char keypad(){ // تعريف يک تابع با مقدار برگشتي 
unsigned char r,b; 
while(1){ 
for (r=0; r<4; r++){ 
b=4; 
PORTC=scan[r]; 
if(c1==0) b=0; 
if(c2==0) b=1; 
if(c3==0) b=2; 
if(c4==0) b=3; 

if (!(b==4)){ 
key=arrkey[(r*4)+b]; 
while(c1==0); 
while(c2==0); 
while(c3==0); 
while(c4==0); 
delay_ms(50); 
return key; 
} 
} 
} 
} 
/*********www.picpars.com**********/ 
void main(void){ 
char buffer[16]; 
lcd_init(16); 
DDRC=0X0F; //سطرها خروجي و ستون ها ورودي 
PORTC=0XFF; //مقدار اوليه پورت 1 باشد 
lcd_clear(); 
lcd_putsf("WWW.PICPARS.COM BY SMGH"); 
delay_ms(6000); 
while(1){ 
key=keypad(); // فراخواني تابع براي اسکن صفحه کليد 
lcd_clear(); 
sprintf(buffer,"Key %d",key); 
lcd_puts(buffer); 
delay_ms(300); 
} 
}

شرح برنامه:

#define c1 PINC.4

این کد پین PINC.4 را به اسم جدید C1 تغییر نام می دهید به این دلیل از این دستور استفاده می کنیم که در هر جایی از برنامه بخوام از پین PINC.4 به عنوان ورودی استفاده کنیم و مقدار آن را بخوانیم دیگر لازم نیست بنویسیم PINC.4 بلکه کافی است فقط بجای آن بنویسیم C4 که ما در این برنامه 4 تا از پین ها را به این شکل تغییر نام دادیم.

 unsigned char scan[4]={0XFE,0XFD,0XFB,0XF7};

 این کد ها به ترتیب از سمت چپ به راست R1 و R2 و R3 و R4 را خاموش (0) می کند. به این صورت که وقتی میکرو زیر برنامه keypad را اجرا می کند CPU با سرعت بسیار بالایی این 4 تا پین را صفر می کند یعنی اینکه برای بار اول R1=0 و بقیه روشن و R2=0 و بقیه روشن و به همین ترتیب تا آخر... حالا فرض کنیم وقتی که R1=0 بوده ما کلید شماره 8 را فشار داده ایم که در این صورت فقط ستون C1 صفر می شود یعنی ستون کلید های شماره 8و5و2و0 و از آن جایی که R1=0 بوده میکرو متوجه می شود که R1=0 بوده و حالا C1=0 شده و تنها کلیدی که در سطر اول و ستون دوم است کلید شماره 8 بود و در نتیجه عدد 8 را به ما بر میگرداند.

از متغییر arrkey برای برگرداندن عدد متناظر با کلید فشار داده شده استفاده می شود.

و حالا تابع keypad: در این تابع دو متغییر به نام های r,b تعریف شده که از r برای کنترل سطر ها و از b برای کنترل ستون ها استفاده شده. و بعد یک حلقه بی نهایت تعریف شده و تا زمانی که یک کلید فشار داده نشود میکرو در این حلقه می ماند. درون حلقه بی نهایت یک حلقه for نوشته شده که دستورات داخل این حلقه کلا 4 مرتبه تکرار می شود و چون این حلقه for در یک حلقه بی نهایت قرار دارد پس حلقه for نیز بی نهایت اجرا می شود اما هر 4 بار یک بار اجرا می شود و در هر بار از 0 تا 3 می شمارد که در حلقه دستور PORTC=scan[r] هم اجرا می شود که شمارنده حلقه که متغیر r می باشد در آرایه scan قرار می گیرد و از آرایه یک کدی را بر میگرداند و روی پورت قرار می دهید. این کار همان جاروب کردن نیبل بالایی پورت می باشد که R1 تا R1 را یکی یکی صفر می کند و در بالا توضیح دادیم. و در مرحله بعدی گفتیم مقدار اولیه b=4 باشد و بعد از آن 4 شرط قرار دادیم و گفتیم برای فشار داده شدن هر ستون یک مقدار به متغییر b بده تا بعدا بتوانیم توسط آن از میان یک سطر و یک ستون کلید مربوطه را پیدا کنیم، در مرحله بعدی یک شرط نوشتیم و گفتیم اگر متغییر b مخالف با 4 می باشد (یعنی مطمئنا کلیدی فشار داده شده) حالا کلید مربوطه را پیدا کن که ابتدا متغییر r را در 4 ضرب می کند و سپس با عدد درون b جمع می کنیم و حاصل این عملیات اعدادی بین 0 تا 15 می باشد که توسط این اعداد عدد واقعی کلید را از آرایه arrkey برمیگرداند و درون متغییر key قرار می دهید و بعد از آن 4 حلقه بی نهایت برای 4 ستون نوشتیم و به این منظور می باشد که تا وقتی کاربر دستش را روی کلید برنداشته در این حلقه بماند و بعد هم یک تاخیر نوشتیم که این تاخیر هم به عنوان یک لرزه گیر استفاده شده و هم فاصله بین خواندن دو کلید می باشد. و در آخر هم مقدار کلید خوانده شده به تابع توسط دستور return برگشت داده می شود.

و در تابع main عدد کلید مربوطه که در متغییر key قرار دارد به صورت یک رشته آماده می شود و بعد هم برای LCD ارسال می شود.

امیدوارم که این توضیحات کامل بوده و این برنامه مورد رضایت شما واقع شده باشد. در صورتی که سوال یا نظری در مورد این برنامه دارید می توایند در قسمت نظرات همین صفحه برای ما مطرح کنید.

از لینک زیر هم می توانید فایل های مربوط به این برنامه را دانلود نمائید. [ این برنامه با کدویژن نسخه 2.03 و پروتیوس نسخه 7.6SP0 نوشته شده است و مطمئنا با نسخه های قدیمی تر کار نخواهند کرد] با تشکر

 

این مقاله توسط سایت برنامه نویسی میکروکنترولرها ارائه شده کپی برداری تنها با ذکر منبع مجاز می باشد.

  منبع: www.picpars.com

  لطفا مقالات، آموزش‌ها و پروژه های خود را به آدرس ایمیل ارتباطی ایمیل نمائید تا آن را با نام خودتان در سایت منتشر کنیم.




فایل های ضمیمه ( ورود - عضويت )

فایل شماره 5 | نسخه 1.0 | حجم 38 کیلوبایت | دانلود 6502 بار

منبع www.picpars.com  نویسنده: سید محسن قاسمیان

منبع www.picpars.com  دانلود برنامه مدار صفحه کلید 4×4

منبع www.picpars.com  پسورد: www.picpars.com

به این مطلب امتیاز دهید


برچسب ها: آموزش ميكروكنترلر AVR آموزش سی آموزش C آموزش AVR به زبان سی C اتصال کیبورد 4×4 به میکروکنترلر AVR کی پد کیپد صفحه کلید راه اندازی کیبورد برنامه زبان سی نحوی متصل کردن کیبورد به میکرو درایور کیبورد اسکن صفحه کلید آموزش برنامه نویسی آموزش میکرو

تاریخ ارسال پنجشنبه، 16 ارديبهشت ماه، 1389    نویسندهنویسنده: مدیریت    نظرات 25 نظر    بازدید بازدید [ 49069 ]   پرینتنسخه چاپی
فایل پی دی اف فایل پی دی اف   ارسال به دوستان ارسال به دوستان   

مرتبط باموضوع :          مطالب بیشتر در این موضوع

 دریافت اطلاعات از کاربر با سوئیچ به زبان سی  [ پنجشنبه، 22 دي ماه، 1390 ] 3810 مشاهده
 معرفی میکرو کنترلرهای خانواده AVR  [ يكشنبه، 18 دي ماه، 1390 ] 4074 مشاهده
 شمارنده تک رقمی با سون سگمنت زبان C و AVR  [ چهارشنبه، 13 مرداد ماه، 1389 ] 26140 مشاهده
 شمارنده دو رقمی با سون سگمنت زبان C و AVR  [ چهارشنبه، 13 مرداد ماه، 1389 ] 26448 مشاهده
نام شما:
ایمیل شما:
در مورخه : دوشنبه، 20 ارديبهشت ماه، 1389توسط
(مشخصات کاربر homa | ارسال پیغام شخصی) (IP آدرس : )
آواتار homa به شما تبریک می گم سایت بسیار خوبی دارید به امید موفقیت همیشگی شما .
ارسال جوابیه ]

نام شما:
ایمیل شما:
در مورخه : دوشنبه، 10 خرداد ماه، 1389توسط
(مشخصات کاربر damavand | ارسال پیغام شخصی) (IP آدرس : )
آواتار damavand از عضویت و منابع موجود در این سایت خوشم آمد و از زحمات بی منت شما دوست عزیز متشکرم
ارسال جوابیه ]

نام شما:
ایمیل شما:
در مورخه : چهارشنبه، 30 تير ماه، 1389توسط
(مشخصات کاربر sotode | ارسال پیغام شخصی) (IP آدرس : )
آواتار sotode مطلب خوبی بود لطفا در مورد راه اندازی lcdگرافیکی در کدویژن توضیحاتی بدهید.
ارسال جوابیه ]

نام شما:
ایمیل شما:
در مورخه : چهارشنبه، 15 دي ماه، 1389توسط
(مشخصات کاربر hamidg | ارسال پیغام شخصی) http://hamidg (IP آدرس : )
آواتار hamidg سلام از اینکه این برنامه رو گذاشتید و در کل از زحماتتون متشکرم اگر ممکنه درباره اینکه چطور با استفاده از سطروستون ها تشخیص میدیم چه عددی فشرده شده بیشتر توضیح بدین متوجه نشدم چطور می شه تشخیص داد وقتی سطر و ستون 1 ،برابر 0 باشن پس باید شماره 7 نمایش داده بشه؟ یه سوال دیگه ! چطور میشه به جای اعداد کلیدهای حروف را گذاشت؟
ارسال جوابیه ]

نام شما: v
ایمیل شما: saleh_vsb@yahoo.com
در مورخه : پنجشنبه، 28 ارديبهشت ماه، 1391http://hamidg (IP آدرس : )
آواتار Anonymous

age mishe barname safhe kilid 3*4 ro bezarid ke ba feshar dadane adad adad ru lcd biyan va ba ba gereftane shihft va feshar dadane adad horufe engilisi ru lcd biyan(yani shift+1=ava 1saniye bad  ba gereftane shift va zasane1
 1=b,...)

1    2    3

4    5    6

7    8    9

shift 0   #

ارسال جوابیه ]

نام شما: nasrin
ایمیل شما: asrink_68@yahoo.com
در مورخه : يكشنبه، 22 آبان ماه، 1390http://hamidg (IP آدرس : )
آواتار Anonymous

سلام سایتتون خیلی خوبه تبریک میگم

من یه سوال دارم خواهش میکنم کمک کنید هیشکی نیست به من کمک کنه

پروژه من ارسال اطلاعات بین دو میکروکنترلر از طریق مادون قرمزه

یه چنتا کد برنامه براش پیدا کردم ولی درست نیستن اگه کسی بتونه کمکم کنه ممنون میشم این ایمیلمه

asrink_68@yahoo.com

ارسال جوابیه ]

نام شما: پروژه الکترونیک
ایمیل شما: mhsnrah@yahoo.com
در مورخه : جمعه، 25 فروردين ماه، 1391http://hamidg (IP آدرس : )
آواتار Anonymous جالب بود مرسی
ارسال جوابیه ]

نام شما: mohsen
ایمیل شما: mohsenqadermazy@yahoo.com
در مورخه : پنجشنبه، 31 فروردين ماه، 1391http://hamidg (IP آدرس : )
آواتار Anonymous

با سلام به دوست عزیز 

اگه بخواهیم کنسول چت درست کنیم یعنی هر کلید بتواند هم عدد 1 و هم حروف را وارد کند مثل کیبورد موبایل

 

ارسال جوابیه ]

نام شما: arash
ایمیل شما: mo.hajabbasi@yahoo.com
در مورخه : شنبه، 16 ارديبهشت ماه، 1391http://hamidg (IP آدرس : )
آواتار Anonymous

sal ahsant.من با قسمت زیر مشکل دارم یعنی نمیدونم این ضربو و جمع برای چیه ؟

در ضمن کسی میتونه بگه من می خواهم تو این برنامه جای عدد حروف بنویسم چیکارکنم؟

key=arrkey[(r*4)+b];
جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : شنبه، 16 ارديبهشت ماه، 1391توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )
آواتار SMGH-admin

از متغیر r برای موقعیت سطرها و از b‌ هم برای ستون ها استفاده شده. با ضرب شماره سطر در 4 و جمع اون با مقدار ستون عددی بین 0 تا 15 بدست خواهد آمد که با استفاده از این عدد مقدار واقعی کلید را از آریه استخراج می کنیم.

برای کسانی که در این موضوع مشکل دارند تنها راه فهم 100٪ نمیشود آن این است که یکی دوتا از کلید ها را انتخاب کنند و روی کاغذ متغیر های r و b رو خودتون مقدار دهی کنید و پس با استفاده از فرمول key=arrkey[(r*4)+b] عدد مربوطه را حساب کنید و از متغیر آرایه ببینید چه عددی انتخاب می شود.خستگی

ارسال جوابیه ]

ارسال جوابیه ]

نام شما: ali
ایمیل شما: aligholidost@gmail.com
در مورخه : سه شنبه، 19 ارديبهشت ماه، 1391http://hamidg (IP آدرس : )
آواتار Anonymous

با عرض سلام - اولا باید تشکر کنم بابت سایت خیلی خوبتون و اقعا خیلی جامع هستش فقط یه سوال داشتم که اگه جوابمو بدین خیلی ممنون میشم اگه بخواهیم بجای نمایش تو lcd داخل سون سکمنت نمایش بدیم چه تغییراتی رو اعمال کنیم . با تشکر

جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : سه شنبه، 19 ارديبهشت ماه، 1391توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )
آواتار SMGH-admin

خیلی ساده است. شما فقط باید بجای استفاده از دستوارت LCD مسقیما عدد مربوطه بفرستید روی پورتی که سون سگمنت بهش وصله. سعی میکنم یه مثال در این مورد بزارم.شکلک

مثال آماده دریافت می باشد:

ارسال جوابیه ]

ارسال جوابیه ]

نام شما: هنگامه
ایمیل شما: ladybird1902@live.com
در مورخه : سه شنبه، 19 ارديبهشت ماه، 1391http://hamidg (IP آدرس : )
آواتار Anonymous

با سلام وخسته نباشيد وتشكر از وبتون كه واقعا پربار وبه دردبخوره 

استاد ما اين برنامه رو تو آزمايشگاه ميكرو ازمون خواسته بود كه انجام داديم اين جلسه ازمون خواسته با همين كيپد 4*4كنسول چت درست كنيم (تو كدويژن  يعني مثل موبايل اس ام اس درست كنيم تا توlcdنمايش بده به طور مثال عدد 2بايك بار فشار دادن حرف aبا دوبارفشار دادن حرف bباسه بار فشار دادن حرف c وكيلد 3   با يك بار فشار دادن حرف d و به همين ترتيب تا آخر ويكي از كليد 1يا0 به عنوان فاصله و واگه تا 1شنبه تحويل نديم حذفمون ميكنه ميشه كمكون كنيدترم آخريم بد بخت ميشيم 

جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : سه شنبه، 19 ارديبهشت ماه، 1391توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )
آواتار SMGH-admin

با سلام

شما میتونید درخواست خودتون رو در بخش سفارش طراحی برای ما بفرستید تا در کمتر از دو روز برای شما آماده کنیم و از پشتیبانی 100 درصدی هم برخوردار شوید.

http://www.picpars.com/order

ارسال جوابیه ]

ارسال جوابیه ]

نام شما: M
ایمیل شما: m_mastoori_69@yahoo.com
در مورخه : يكشنبه، 31 ارديبهشت ماه، 1391http://hamidg (IP آدرس : )
آواتار Anonymous

با سلام

من می خواهم برنامه ای بنویسم که اگر سوییچ روی پایه piinb.3 وصل بود صفحه کلید روی پورت D اسکن بشود و کاربر  بتواند عدد دو رقمی روی lcd روی پورت C بنویسد و این عدد دو رقمی روی lcd نمایش داده شود . تو رو خدا زود به من جواب بدهید .

جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : يكشنبه، 31 ارديبهشت ماه، 1391توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )
آواتار SMGH-admin

if(PINB.3==1) keypad();

با کمک شرط بالا به راحتی می توانید وضعیت پین را مورد برسی قرار دهید و هرگاه مثلا یک شد تابع کی پد فراخوانی شود.

ارسال جوابیه ]

ارسال جوابیه ]

نام شما: مجید
ایمیل شما:
در مورخه : پنجشنبه، 11 خرداد ماه، 1391توسط
(مشخصات کاربر MEMOL | ارسال پیغام شخصی) http://hamidg (IP آدرس : )
آواتار MEMOL

سلام ببخشید من یه سوال داشتم .من با استفاده از اعدادی که کاربر با کیپد وارد میکنه باید روی این اعداد محاسبات انجام بدم.ورود اعدادم به این صورت نیست که هر دفعه عدد قبلی کلیر بشه بلکه پشت سر همه مثلا کاربرعدد 1 رو میزنه رو السیدی 1 نشون میده اگه عدد 2 رو بزنه رو السیدی 12 نشون میده مشکل من اینه که نمیدونم کاربر میخاد عدد چند رقمی وارد کنه.شما فرمول کلی محاسبه شو بلدین

1=یک ضربدر ده به توان صفر

12=یک ضربدر 10 به توان یک +2

120=یک ضربدر ده به توان دو+2*10+0

...................

........................................

فرمول کلیشو بلدین چی میشهگلگریه

 

جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : پنجشنبه، 11 خرداد ماه، 1391 (IP آدرس : )
آواتار Anonymous

یه روش این که اعداد را به فرمت کاراکتر درون یک آرایه ذخیره کنید و آنگاه توسط تابع رشته به عدد صحیح، آن را تبدیل کنید و راه ساده تر و قابل فهم دیگه این که به صورت ضرب و جمع، اعداد را به اصطلاح به هم بچسپانید. نمونه کاملا و پیشرفته این موضوع در مطلب زیر موجود است، مراجعه نمائید حتما مشکل تان حل خواهد شد.شست

اسکن کیبورد 3×4 به زبان سی AVR و به صورت فایل کتابخانه‌ای برای کدویژن

ارسال جوابیه ]

ارسال جوابیه ]

نام شما: مجید
ایمیل شما:
در مورخه : جمعه، 12 خرداد ماه، 1391توسط
(مشخصات کاربر MEMOL | ارسال پیغام شخصی) http://hamidg (IP آدرس : )
آواتار MEMOL

سلا م ممنون دیدم ولی هیچی حالیم نشدنمیدانم

با استفاده از روش ضرب و جمع بخام انجام بدم میشه بگید فرمولش چیه 

گلگریه

جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : جمعه، 12 خرداد ماه، 1391توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی) http://www.picpars.com (IP آدرس : )
آواتار SMGH-admin

دوست عزیز در لینک بالا این قضیه رو کامل توضیح داده ایم و یک نمونه مثال نیز گذاشته ایم. روش های زیادی هست و این روش که به نظر من برای یاد گیری راحت تر می باشد به این صورت است که ابتدا یک آرایه عددی تعریف میکنیم و درون آن ضرایبی از اعداد یعنی 1 و 10 و 100 و 1000 و ... را قرار می دهیم. حال از کاربر یکی یکی ارقام را دریافت می کنیم و درون یک آرایه جدید قرار می دهیم نکته مهم مسئله این است که ما باید بدانیم که کاربر چند رقم وارد کرده است که برای اینکار از یک شمارنده استفاده می کنیم به این صورت که به ازای هر رقم وارد شده توسط کاربر یک واحد به این شمارنده اضافه میکنیم و بعد توسط این عدد شمارنده و آرایه ضریب ارقام را در ضریب، ضرب کرده و با قبلی جمع میکنیم.

مثلا کاربر عدد 1235 را وارد کرده است پس باید به صورت 1×1000 + 2×100 + 3×10 + 5×1 عمل کنیم تا ارقام را بهم بچسپانیم.

روش ساده استفاد از کتابخانه stdlib.h می باشد که با کمک دستور atof یک رشته عددی را به عدد صحیح تبدیل کنیم. به این صورت که ارقام ذخیره شده در آرایه (مثلا inputnaum) را به عنوان ورودی تابع قرار داده و در خروجی تابع یک عدد صحیح اعشاری دریافت می کنیم.

num=atof(inputnaum);   //inputnaum[] is char array, num is float

inputnaum[]="-123.6864" //char

num=atof(inputnaum); // run this

num = -123.6864

ارسال جوابیه ]

ارسال جوابیه ]

نام شما: رز
ایمیل شما: rose_mahmudi@yahoo.com
در مورخه : جمعه، 20 ارديبهشت ماه، 1392http://hamidg (IP آدرس : )
آواتار Anonymous

سلام من تازه با پروتئوس کار میکنم و این برنامه رو تست کردم اما هر دکمه ای رو که میزنم روی ال سی دی نمایش نمیده و فقط اولش اسم این سایت رو نوشته .. :/ به نظرتون اون تابع MAIN مشکلی نداره؟؟

ارسال جوابیه ]

نام شما: alireza
ایمیل شما:
در مورخه : يكشنبه، 5 آبان ماه، 1392http://hamidg (IP آدرس : )
آواتار Anonymous

 هرچی خواستم بود تو سایت معلومه خیلی زحمت کشیدین

دمتون گرم خیلی باحالین

ارسال جوابیه ]

نام شما: مهدی
ایمیل شما: m.mardanpour.j@gmaile.com
در مورخه : چهارشنبه، 9 بهمن ماه، 1392http://hamidg (IP آدرس : )
آواتار Anonymous

با سلام

اگه بخوایم سطر اول کی پد رو از پایه یک میکرو به پایه 7 میکرو ببریم کجای کد رو باید تغییر بدیم؟

ارسال جوابیه ]

نام شما: رضا
ایمیل شما: eminent_assassin@yahoo.com
در مورخه : جمعه، 18 بهمن ماه، 1392http://hamidg (IP آدرس : )
آواتار Anonymous

با سلام و تشکر از سایت خوبتون

این سه خط چه کاری انجام می دهند؟

#asm 
.equ __lcd_port=0x1B ;PORTA 
#endasm 
ارسال جوابیه ]

نام شما: مصطفی
ایمیل شما:
در مورخه : سه شنبه، 6 خرداد ماه، 1393http://hamidg (IP آدرس : )
آواتار Anonymous

خیلی ممنون.

ارسال جوابیه ]

 
نام شما: [ کاربر جدید ]

نام شما (ضروری): lang
ایمیل شما : lang
نظر:
کد امنیتی
کد امنیتی

  [ بازگشت ]