单片机第14课:LCD使用
扫描二维码
随时随地手机看文章
下面是LCD的电路,其中RD接P2^6;LCDE接P2^7,WR接P2^5。
#include#defineuintunsignedint#defineucharunsignedcharsbitlcd_E=P2^7;sbitlcd_RS=P2^6;sbitlcd_WR=P2^5;ucharcodetable_show1[]="Hello!";ucharcodetable_show2[]="IamChenLu!";voiddelay(uinttime);voidinit_lcd();voidwrite_lcd_command(ucharcomm);voidwrite_lcd_data(ucharlcdData);voidmain(){intflag1,flag2,flag3;init_lcd();//写入缓存区write_lcd_command(0x80+0x10);for(flag1=0;flag1<6;flag1++){write_lcd_data(table_show1[flag1]);}//写入缓存区write_lcd_command(0x80+0x50);for(flag2=0;flag2<12;flag2++){write_lcd_data(table_show2[flag2]);}//整个屏幕向左移动至最左端for(flag3=0;flag3<16;flag3++){write_lcd_command(0x18);}//停在这里,避免反复刷新while(1);}//初始化LCDvoidinit_lcd(){//初始化LCD的属性//显示模式write_lcd_command(0x38);//光标write_lcd_command(0x0f);write_lcd_command(0x06);//清屏write_lcd_command(0x01);//数据指针write_lcd_command(0x80);}//LCD写命令voidwrite_lcd_command(ucharcomm){delay(5);//RS=LRW=LE=Hlcd_RS=0;delay(5);lcd_WR=0;//写命令P0=comm;delay(5);lcd_E=1;delay(5);lcd_E=0;}//LCD写数据voidwrite_lcd_data(ucharlcdData){delay(5);//RS=HRW=LE=Hlcd_RS=1;delay(5);lcd_WR=0;//写数据P0=lcdData;delay(5);lcd_E=1;delay(5);lcd_E=0;}//延时函数voiddelay(uinttime){uinti,j;for(i=100;i>time;i--)for(j=0;j<100;j++);}
使用LCD主要是参考LCD数据手册,基本的用法就是上面的程序,关键是要注意时序问题。
读者可以在网上下载1602液晶资料,然后对着本程序琢磨。
注意:写命令---可以理解为设置显示屏的属性;写数据---可以理解成为你要让显示器显示的数据。