آیا میدانید قورباقه براي قورت دادن غذا
بايد چشمش را ببندد
افتخار در خشک کردن قطره ي اشک است نه در جاري
ساختن سيل خون. از بايرون |
![]() |
کامپایلر قدرتمند Atmel AVR Studio 6 نسخه 6
دانلود شبیه ساز قدرتمند proteus 7.10 SP0 همراه با کرک و لایسنس و کتابخانه
آموزش گام به گام برنامه نویسی AVR به زبان C
کتابخانه شبیه ساز LCD های نوکیا برای پروتیوس
پروژه تولید سیگنال های ویدیوئی PAL با AVR به زبان اسمبلی
پروژه ارتباط AVR با RS232 و برنامه کنترلی با ویژوال بیسیک
اتصال کیبورد 4*4 به میکروکنترلر AVR و نمایش روی سون سگمنت|
کار با LCD کاراکتری یا متنی به زبان C
به نام خدا در این قسمت ما به آموزش LCD های کاراکتری خواهیم پرداخت. و توضیح می دهیم که چگونه LCD را به میکرو کنترلر متصل کنیم و چگونه آن را در زبان C معرفی کنیم و با استفاده از دستورات به صورت نرم افزاری با آن ارتباط برقرار کنیم. ابتدا پایه های LCD :
کد های فرمان LCD:
//www.picpars.com
#include <mega8.h> // معرفي ميکر
#include <stdio.h> //فراخواني دستورات استاندارد ورودي خروجي
#include <delay.h> // فراخواني تابع تاخيري
#include <lcd.h> // فراخواني دستورات ال سي دي
#define xtal 8000000
#asm // شروع دستورات اسمبلي
.equ __lcd_port=0x18; PORTB //معرفي پورت ال سي دي
#endasm // پايان دستورات اسمبلي
unsigned char i;
/*********www.picpars.com**********/
void main(void){ // تابع اصلي
char buffer[10]; // در اين متغيير اطلاعات به صورت رشته قرار ميگيرند
lcd_init(16); // ال سي دي با 16 ستون
while(1){
i++; //
lcd_clear(); // پاک کردن ال سي دي
sprintf(buffer,"PICPARS.COM %d",i); //آماده کردن اطلاعات به صورت رشته
lcd_puts (buffer); // ارسال اطلاعات به ال سي دي
delay_ms(200); // تاخير 200 ميلي ثانيه
}
}
این برنامه یک نمونه ساده از برنامه هایی است که با ال سی دی کاراکتری ارتباط دارد. در این برنامه یک متغییر با اسم i تعریف شده که این متغیر در حلقه while قرار دارد و با یک تاخیر 200 میلی ثانیه یک واحد به این متغییر اضافه می شود و روی LCD نمایش داده می شود. توضیح دستوارت را در اینجا می دهیم و تا آخر هر جا از LCD استفاده کردیم اصول کلی آن به صورت زیر می باشد. از دستور asm# برای نوشتن دستورات به زبان اسمبلی استفاده می شود که در اینجا ما از یک دستور اسمبلی برای معرفی کردن پورت B برای LCD به صورت بالا استفاده می کنیم که اگر شما از codewizard استفاده کنید این قسمت برای شما ایجاد خواهد شد و endasm# هم برای خاتمه دادن به دستورات اسمبلی می نویسیم. lcd_init(16); از این دستور برای تعیین کردن تعداد ستون های LCD استفاده می شود. که در اینجا LCD را برای 16 ستون سازماندهی می کند. char buffer: این متغییر که به صورت یک آرایه 10 تایی تعریف شده و حتما نوع آن باید از char باشد، برای ذخیره سازی موقت اطلاعات به صورت رشته می باشد به این صورت که ما اگر بخواهیم نوشته ای را همراه با یک متغییر روی LCD نمایش بدهیم چون محتوای متغییر ما (در اینجا عدد می باشد) عدد است باید این عدد را به صورت رشته درآوریم و همراه با آن text مان برای LCD بفرستیم که این تبدیل عدد به رشته را دستور sprintf انجام می دهد و بعد این رشته را در متغیر buffer قرار می دهد. sprintf: فرم نوشتن این دستور به این صورت می باشد که ابتدا یک متغیر برای ذخیره سازی و بعد رشته (همان نوشته یا پیغام) و بعد هم متغیر i که حاوی یک عدد است. "PICPARS.COM %d" در اینجا d% یعنی اینکه متغیر i در مبنای دسیمال نمایش داده شود که در جدول زیر تمام این علایم را توضیح داده ایم. پس این دستور این رشته را در متغیر buffer به این صورت PICPARS.COM 1 ذخیره می کند. lcd_puts(buffer): این دستور محتوای متغییر buffer را برای LCD ارسال می نماید. lcd_clear(); این دستور کل صفحه نمایش را پاک می کنید و نویسه را در مختصات 0و0 قرار می دهد. فرمت کاراکتر های ارسالی:
دستورات استفاده شده در LCD:
_lcd_ready()
این دستور منتظر می ماند تا LCD آماده دریافت اطلاعات شود. این دستور باید حتما قبل از دستور زیر اجرا شود.
_lcd_write_data()
به کمک این دستور می توان در رجیستر دستور العمل LCD فرمان هایی نوشت که در جدول کد های فرمان LCD این فرمان ها توضیح داده شده اند. مثال:
//www.picpars.com
#include <mega8.h> #include <stdio.h> #include <delay.h> #include <lcd.h> #define xtal 8000000 #asm .equ __lcd_port=0x18; PORTB #endasm unsigned char i=20; /*********www.picpars.com**********/ void main(void){ char buffer[10]; lcd_init(16); sprintf(buffer,"PICPARS.COM %d",i); lcd_puts (buffer); while(1){ delay_ms(200); _lcd_ready(); //آماده دريافت دستور _lcd_write_data(0x1c); // کل صفحه نمايش به چپ انتقال داده شود } } در این مثال ابتدا عبارت PICPARS.COM 20 روی LCD نمایش داده می شود و سپس کل صفحه نمایش با تاخیر 200 میلی ثانیه به سمت چپ منتقل می شود.(مانند تابلو روان) اصول کار LCD های ماتریسی به صورت می باشد و طرز استفاده از دستورات به همین صورت می باشد. امیدوارم که این توضیحات کافی باشد. در صورتی که سوالی در مورد این قسمت دارید می توانید در همین صفحه در قسمت نظرات آن را مطرح نماید.
لینک ثابت این صفحه: © کپی برداری از مطالب این سایت تنها با ذکر منبع مجاز می باشد
در صورت داشتن هر گونه سوال، نظر و پیشنهاد راجب این مطلب میتوانید در قسمت نظرات همین صفحه مطرح نمائید. همچنین با شرکت در نظر سنجی های سایت، ما را در بهبود بخشیدن به مطالب یاری کنید. آموزش ميكرو كنترلر AVR آموزش سی آموزش C آموزش AVR به زبان سی C کاراکتری متنی ماتریسی کاراکتر برنامه نویسی آموزش کد ال سی دی اتصال ال سی دی به میکرو میکروکنترلر lcd micro avr config character picpars.com مرتبط باموضوع : اتصال کیبورد 4*4 به میکروکنترلر AVR [ پنجشنبه، 16 ارديبهشت ماه، 1389 ] 15832 مشاهده
اندازه گیری دما با استفاده از سنسور دیجیتال DS18B20 به زبان C [ شنبه، 30 بهمن ماه، 1389 ] 6135 مشاهده
شمارنده دو رقمی با سون سگمنت زبان C و AVR [ چهارشنبه، 13 مرداد ماه، 1389 ] 7400 مشاهده
دستورات break و switch و goto و continue و ... قسمت 4 [ يكشنبه، 8 فروردين ماه، 1389 ] 4230 مشاهده
آموزش گام به گام برنامه نویسی AVR به زبان C [ يكشنبه، 31 ارديبهشت ماه، 1391 ] 147 مشاهده
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
آیا این مطالب مورد رضایت شما واقع گردید؟ لطفا با رای دادن به این مطلب ما را در بهبود بخشیدن به مطالب کمک کنید. با اینکار به سایر دوستانتان نیز کمک خواهید کرد.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||
رویداد ها: روز بزرگداشت ملاصدرا - روز بهره وری و بهینه سازی مصرف |