1602液晶显示实验
生活随笔
收集整理的這篇文章主要介紹了
1602液晶显示实验
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、實(shí)驗(yàn)要求
參考書中例7.2.2的相關(guān)代碼,實(shí)現(xiàn)第一行從右側(cè)移入“Hello?everyone!”,同時(shí)第二行從右側(cè)移入“Welcome?to?here!”,完全移入后再完全移出屏幕,如此反復(fù),實(shí)現(xiàn)滾動(dòng)的效果。保存相關(guān)原理圖,代碼及實(shí)驗(yàn)效果圖,完成實(shí)驗(yàn)報(bào)告。
二 、實(shí)驗(yàn)原理圖
三 、實(shí)驗(yàn)代碼
#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table[]="Hello everyone!";uchar code table1[]="Welcome to here!";sbit lcden=P3^4;sbit lcdrs=P3^5;uchar num;void delay(uint z){uint x,y;for(x=z;x>0;x--){for(y=110;y>0;y--);}}void write_com(uchar com){lcdrs=0; ??????//選擇寫命令模式P0=com; ???????//將要求的命令字送到數(shù)據(jù)總線上delay(5); ?????//稍作延時(shí)以待數(shù)據(jù)穩(wěn)定lcden=1; ??????//使能端給一高脈沖,因?yàn)槌跏蓟瘮?shù)已經(jīng)將lcden置為0delay(5);lcden=0; ??????//將使能端置0以完成高脈沖}void write_date(uchar date){lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void init(){lcden=0;write_com(0x38); ??//設(shè)置16*2 顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口write_com(0x0c); ??//設(shè)置開顯示,不顯示光標(biāo)write_com(0x06); ??//寫一個(gè)字符后地址指針加1write_com(0x01); ??//顯示清0,數(shù)據(jù)指針清0}void main(){init();write_com(0x80+0x10); ?//將數(shù)據(jù)寫在液晶第一行非顯示區(qū)域地址處for(num=0;num<15;num++){write_date(table[num]);delay(5);}write_com(0x80+0x50); ?//將數(shù)據(jù)寫在第二行非顯示區(qū)域地址處for(num=0;num<16;num++){write_date(table1[num]);delay(5);}while(1){for(num=0;num<10;num++){write_com(0x18); ??//整屏左移指令,同時(shí)光標(biāo)跟隨移動(dòng)//write_com(0x1c); ??//整屏右移,同時(shí)光標(biāo)跟隨移動(dòng)delay(200);}}}四、實(shí)驗(yàn)效果截圖
?
總結(jié)
以上是生活随笔為你收集整理的1602液晶显示实验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sja1000 中断_SJA1000中断
- 下一篇: Linux-日志管理篇