lcd1602程序流程图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LCD1602程序代码及显示流程图LCD1602显示程序代码DB P0//--P0=DB0~DB7位LCD_RS=P2;//--P2.0=RS位LCD UrW=P2;//--P2.1=RW位LCD_Ue=P2;//-P2.2=E//--/--/----定义函数ා define uchar unsigned charා define uint unsigned int///—定义子例程函数void LCD_Uiinit(void);//-初始化LCD1602函数void LCD_2;write_uchar命令(uchar命令);//-写入命令功能无效LCD到LCD1602_Char数据(uchar DAT);//-将无效的LCD数据写入LCD1602_Uxset_XY(uchar x,uchar y);//设置LCD1602 void LCD_uchar(uchar x,uchar y,uchar DAT)的显示位置x(0-16),y(1-2);//-在LCD1602中,显示包含无效字符的LCD;uchar x,uchar y,uchar*s);在LCD1602上显示一个字符串//void LCD_ucheck_uBusy(void);//检查Busy函数。我没有使用这个功能,因为通过率很低。LCD_u2;delay_10us(uint n);//-10微秒延迟子程序void LCD_udelay_50uS(uint n);/-延迟子程序50微秒初始化(无效){LCD_udelay_10us(20);LCD_uwrite_10us(0x38);//-设置8位格式,2行,5x7 LCD_2;delay_10us(5);LCD_uwrite_u命令(0x0c);//-整体显示,关闭光标,不闪烁LCD 不闪烁LCD_延时延时10us(5);LCD_写写写命令(0x06);///-设置输入模式,增量增
量不移位LCD_延时延时10us 10us(5);LCD_写写写命令(0x01);///-清除LCD_延时延时50uS在屏幕上的显示屏(40);}//将无效的LCD命令写入lcd602_写写写的命令(uchar dat){LCD_u写写写的命令(uchar dat){LCD_延迟延迟_10us(5;5);LCD液晶显示无Rs=0;//命令LCD液晶显示u 10us(5);LCD_Rs=0;//命令LCD_LCD_ _在LCD_Udb=dat;LCD_uDelay_10us(5);LCD_ue=1;//允许LCD_delay_10us(5);LCD_ue=0;}/-将无效的LCD写入LCD1602_写数据(uchar dat){LCD_u延时_10us(5);LCD_urs=1;//数据液晶显示液晶显示u RW=0;//数据液晶显示显示uu RW=0;//向LCD写入液晶显示的DB=dat;LCD_延迟延时10us 10us(5;5);LCD_E=E=1;//将无效的LCD写入LCD_延迟_延迟_(u (5);LCD液晶显示LCD_u延迟10us(5);LCD_E=0;}/-设置显示位置无效LCD_uxy(uchar (x,uchary y){uchar地址;如果(y==1){address=0x80+x;/-第一行位置}其他{地址=0xc0+x;///第二行位置}液晶显示器延时延时延时10us(5);LCD液晶显示写写命令(地址);}/-显示字符功能功能voidlcd xdisp char(ucharx,uchary y,uchardat的uchar dat)//--液晶显示器显示器的disp char(0,1,0x38 0x38);//-显示8{LCD显示液晶显示器xxxxx0,1,
0x38);//-显示8{LCD[液晶显示设设设设设设设设设设设设设设设设设(x,y);液晶显示器延迟_10us(5);LCD_write_u2;Data(DAT);}/-显示字符串函数void LCD_uP_u3;string (uchar x,uchar y,uchar*s){LCD_uxset_xy(x,y);LCD_uuDelay_10us(5);while(*s!='\0'){LCD_2;write_uData(*s);s++;}//∠s++;}/∠s++/>check_Busy()///实践证明,在我的LCD1602上,check Busy命令的通过率很低,LCD正常使用。因此,我不再检查忙函数。使用do//,delay方法非常容易使用。如果e=0;//for循环延迟,正常指令只能完成一次。Clear screen命令LCD_Rs=0;//需要200个周期才能完成。液晶显示器液晶显示器(UuU U W W=1;液晶显示器液晶显示器DB=0xff;液晶显示器E=E=1;}在同一时间(LCD UUUDB==1);}**************************************************************************** **************************************************************************** *******************************(uint n n)10微秒秒延迟子程序{uint I,J{uint I,J;J;J;J;I(I=n;I}0;I-)为(J=2;J=2;J>0;J-)的
******************************************void u50us(uint n)/-50微秒延迟子程序{uint I,J;for(I=n;I,0;I-)for(J=22;J``0;J-;}LCD1602显示程序流程图和语句说明。在输入字符地址之前,让LCD1602显示字符。这就是为每个字符地址添加一个地址的原因。在下面的代码中您将学习如何设置地址,如何使地址自动添加一个,如何清除屏幕,如何显示字符,希望您能理解_E=P2;//LCD1602控制设置位LCD_RW=P2;//LCD1602控制位sbit LCD_RS=P2;//lcd1