ماشین حساب لمسی ساده با avr

یک ماشین حساب لمسی ساده با قابلیت نوشتن تعداد 12 نوع عملیات متفاوت و پشت سر هم با محاسبه فوری جواب، قابلیت پاک کردن کارکتری جمله نوشته شده، نوشتن عدد اعشاری و منفی

ماشین حساب لمسی ساده با avr

كنترل بی سیم وسایل توسط HM-R و HM-T با avr

با استفاده از ماژول HM-R و HM-T می توانیم تعداد زیادی خروجی رله را کنترل کرد، و یا اطلاعات دما و ..و را به فواصلی حدود 100 متر انتقال داد. این پروژه قابل تغییر و مطابق با طرح و ایده شما در مورد ارسال وایرلس می باشد.

كنترل بی سیم وسایل توسط HM-R و HM-T با avr

آلارم صبحگاهی و یادآور با LCD گرافیکی و avr

این پروژه در اصل یک ساعت زنگ دار می باشد که قابلیت برنامه ریزی آلارم صبحگاهی و تنظیم 5 برنامه یادآور را دارد. با تنظیم آلارم هر روز راس ساعت تنظیمی آلارم پخش می شود، همچنین با تنظیم یادآور ها در ساعت و تاریخ مشخص نیز آلارم پخش می شود. از امکانات آن می توان برای هر یادآور یک نام تعیین کرد (20 کاراکتر اسکی) با قابلیت تایپ حروف کوچک و بزرگ انگلیسی با کیبورد 3×4 و ...

آلارم صبحگاهی و یادآور با LCD گرافیکی و avr

سیستم امنیتی با قابلیت تعریف کاربر و رمز عبور با avr

این پروژه یک سیستم امنیتی می باشد که دارای یک کاربر اصلی می باشد و توسط این کاربر می توان کاربرهای متعددی با پسورد های مجزا تعریف نمود. می توان تا 100 کاربر و 100 پسورد مختلف را تعریف نمود، و در قسمت ورود هر یک از اعضاء که نام کاربری و رمز عبور خود را بدرستی وارد کند یک رله به همراه LED روشن خواهد شد.

سیستم امنیتی با قابلیت تعریف کاربر و رمز عبور با avr

محافظ لوازم برقی با avr و نمایشگر سون سگمنت

در صورتی که برق شهر از حداقل تعریف شده کمتر، یا از حداکثر بیشتر شود رله خروجی قطع خواهد شد و از طریق بازر بوق هشدار پخش می شود.

محافظ لوازم برقی با avr و نمایشگر سون سگمنت

اتصال کیبورد 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 کیلوبایت | دانلود 7112 بار

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

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

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

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


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

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

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

 آموزش AVR به زبان سی C  [ چهارشنبه، 21 بهمن ماه، 1388 ] 22139 مشاهده
 پروژه آموزشی تابلون روان 8.8 به زبان سی همراه با سورس C  [ پنجشنبه، 29 تير ماه، 1391 ] 11468 مشاهده
 کار با LCD کاراکتری یا متنی به زبان C  [ پنجشنبه، 16 ارديبهشت ماه، 1389 ] 41998 مشاهده
 آموزش نحوه کار با Timer میکرو تحت برنامه نویسی Codevision  [ يكشنبه، 14 شهريور ماه، 1389 ] 17161 مشاهده
نام شما:
ایمیل شما:
در مورخه : دوشنبه، 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 
جوابیه ها

نام شما: maryam
ایمیل شما: taban.maryam@yahoo.com
در مورخه : يكشنبه، 23 شهريور ماه، 1393 (IP آدرس : )
آواتار Anonymous سلام.این سه خط برای تعریف lcdبرای میکرو شروع برنامه اسمبلی،تعریف پورت برای اتصال میکرو.من پروژم راجب کنترل کننده هوشمند دما و نور در ساختمان به وسیله سنسورهای lm35 و سنسور فتوسل کسی میته کمکم کنه.تا 29 ام فقط وقت دارم (
ارسال جوابیه ]

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

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

خیلی ممنون.

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

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

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

  [ بازگشت ]