لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 6
آزمایش چهارم
موضوع آزمایش :آشنایی با عملکرد صفحه نمایش LCD کاراکتری
تئوری آزمایش :
در این آزمایش طرز استفاده از LCD و اتصال به میکروکنترلر آموزش داده شده است. مختصری درباره پایه های LCD شرح خواهیم داد.
Vcc : تغذیه LCD توسط این پایه تامین می گردد.
GND : زمین را به این پایه متصل می کنیم.
Vcontrast : توسط پتانسیومتر تعبیه شده درجه درخشندگی LCD را تعیین م ی کنیم.
E : این پایه پایه فعال ساز LCD می باشد که با ارسال یک پالس یک به صفر با حداقل 450 نانومتر LCD فعال می گردد.
R/W : به وسیله این پایه می توان حالت خواندن و یا نوشتن را در LCD تعیین نمود.
RS : این پایه تعیین می کند که اطلاعات انتقالی دستور العمل می باشد یا داده می باشد تا در رجیستر مربوطه قرار گیرد.
D0-7 : اطلاعات بصورت چهار بیتی و یا هشت بیتی از طریق این پایه ها به LCD انتقال می بابد.
در codewizard در قسمت LCD با تعیین نوع LCD و پورتی از میکرو که از آن طریق به LCD متصل می گردد نحوه اتصال میکروکنترلر به LCD شرح داده است.
بخش عملی :
مرحله 1 :
نمایش عبارت ثابت : منظور از عبارت ثابت ، عبارت هایی است که در طول برنامه تغییر نمی کنند ، به همین دلیل می توان عبارت ها را در حافظه FLASH ذخیره کرد. برای نمایش عبارات تابت از دستور lcd_putf() استفاده می کنیم.
پس از پیکربندی LCD برنامه زیر را داخل حلقه while وارد کنید و پس از پروگرام کردن میکروکنترلر نتیجه را بررسی نمائید.
Lcd_gotoxy(0,0);
Lcd_putf("START");
با اجرای این برنامه ابتدا فایل هدر lcd_nsk.h ، LCD را برای میکرو بارگذاری می کند و دستورهای نوشته شده در حلقه بطور پی در پی عبارت START که در حافظه FLASH قرار گرفته است را در سطر و ستون صفر به نمایش می گذارند.
مرحله 2:
نمایش عبارت متغیر : اگر بخواهید مقدار یک متغیر را بر روی LCD نمایش دهید چون این متغیردر حافظه SRAM جای دارد باید از دستور lcd_putsf استفاده کنید
ابتدا در قسمت تعریف متغیر محلی متغیر آرایه 30 کارکتری a و عدد صحیح علامت دار i را تعریف کرده و پس از پیکربندی LCD برنامه زیر را خارج حلقه while وارد کرده و پس از پروگرام کردن نتیجه را بررسی کنید.
lcd_clear();
lcd_gotoxy(0,0);
i=20;
sprintf(a,"my number is %d",i);
lcd_puts(a);
با اجرای این برنامه مشاهده می کنیم که عبارت my number is 20 در LCD به نمایش گذاشته شده است.
دو دستور اول در تابع اصلی LCD را پاک و مکان نمایشگر را به سطر و ستون صفر می برند.
دستور sprintf مقادیر متغیر را غیرکاراکتری را برای انتقال به LCD به صورت کارکتری آماده سازی می کند و در متغیر a قرار می دهد. %d تعیین می کند که مقدار دورن متغیر i را بصورت یک عدد صحیح علامت دار وارد aشود.
و دستور lcd_puts متغیر a را که بطور کاراکتری در آماده است به LCD انتقال می دهد.
مرحله 3:
برنامه ای بنویسید که با فشردن دکمه INT0 ، از 1 تا 10 به فاصله زمانی 1 ثانیه به صورت صعودی و بل فشردن INT1، بصورت نزولی بشمارد. در ابتدا برنامه به مدت 5 ثانیه کلمه START و بعد از رسیدن به عدد انتهایی به مدت 5 ثانیه کلمه STOP را بنویسد.
برای این منظور ابتدا LCD را انتخاب می کنیم و همچنین دو وقفه خارجی صفر و یک را فعال می کنیم.
و کد زیر در وقفه صفر قرار می دهیم.
char a[40];
unsigned char i;
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("START");
delay_ms(5000);
lcd_clear();
for(i=0;i<=10;i++){
sprintf(a,"counter %d",i);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(a);
delay_ms(1000);
}
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("STOP");
delay_ms(5000);
مشابه مرحله های قبل عبارت START را با تاخیر 5 ثانیه با استفاده از دستور lcd_putsf در LCD قرار می دهیم ، حلقه for مقادیر صفر تا 10 را تاخیر یک ثانیه به i می دهند و پس از آن مشابه مرحله دوم مقدار i بصورت کاراکتری در متغیر a قرار می گیرد و دستور lcd_puts متغیر را به LCD انتقال می دهد.
و در پایان با خروج از حلقه مقدار ثابت کاراکتری STOP به LCD انتقال داده می شود.
و مشابه آن را در وقفه خارجی یک وارد می کنیم.
char a[40];
unsigned char i;
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("START");
delay_ms(5000);
lcd_clear();
for(i=10;i>0;i--){
sprintf(a,"counter %d",i);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(a);
delay_ms(1000);
}
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("STOP");
delay_ms(5000);
این کد مشابه کد وقفه صفر می باشد با این تفاوت که در حلقه for مقدار شمارش از 10 به 1 بصورت معکوس می باشد.
مرحله 4:
برنامه ای بنویسیدکه عبارت HELLO را در وسط خط اول LCD به مدت 5 ثانیه نوشته و عبارت WELCOME TO را جایگزین آن کرده و پس از 5 ثانیه عبارت AZAD UNIVERSITY را از سمت راست خط دوم وارد LCD کرده و از سمت چپ خارج کنید و هنگامی که تمام عبارت خارج شد عبارت THE END را در وسط خط اول بنویسید.
ابتدا متغیرهای زیر را تعریف می کنیم
char a[20];
int i;
و در حلقه تابع اصلی کدهای زیر را وارد می کنیم.
lcd_clear();
lcd_gotoxy(5,0);
lcd_putsf("hello");
delay_ms(5000);
lcd_clear();
lcd_gotoxy(2,0);
lcd_putsf("welcome to");
delay_ms(5000);
for(i=15;i>0;i--){
lcd_gotoxy(i,1);
lcd_putsf("azad university ");
delay_ms(500);
}
delay_ms(2000);
for(i=15;i>0;i--){
_lcd_ready();
_lcd_write_data(0x18);
delay_ms(500);
}
lcd_clear();
lcd_gotoxy(5,0);
lcd_putsf("the end");
بخش ابتدای دستور مانند مراحل کذشته عبارات hello و welcome to را بصورت یک مقدار ثابت به همراه تاخیر زمانی مربوط به آن وارد می کنند.
تحقیق و بررسی در مورد پروژه آز میکرو آشنایی با عملکرد صفحه نمایش LCD کاراکتری 5 ص