欢迎来到天天文库
浏览记录
ID:38247417
大小:33.50 KB
页数:3页
时间:2019-06-06
《LCD1602液晶程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#ifndef__1602_H__#define__1602_H__#defineLCD_DATAP0sbitLCD_BUSY=P0^7;//数据最高位,返回的是忙检测标志情况sbitLCD_RS=P2^0;//写指令时为0,数据为1sbitLCD_RW=P2^1;//读取为1,写入为0sbitLCD_EN=P1^2;//使能端/*检测忙信号*/voidCHECK_BUSY(void)//读取忙标志位BF{LCD_RS=0;LCD_RW=1;LCD_EN=1;while(LCD_BUSY);LCD_EN=0;}/*写命令,为1判断忙信号,为0不判断*
2、/voidwrite_com(ucharcom,uchartest){if(test)CHECK_BUSY();//忙信号检测LCD_RS=0;LCD_RW=0;LCD_EN=1;LCD_DATA=com;LCD_EN=0;delayms(1);}/*液晶1602初始*/voidLCD1602_Init(){write_com(0x38,0);//显示模式设置delayms(1);write_com(0x38,1);//显示模式设置write_com(0x08,1);//关显示,关闭光标和闪烁write_com(0x01,1);//显示清屏write
3、_com(0x06,1);//读或写时地址指针和光标自动加一write_com(0x0c,1);//开显示,关闭光标和闪烁}/*写数据*/voidwrite_data(uchardat){CHECK_BUSY();//检测忙标志LCD_RS=1;LCD_RW=0;LCD_EN=1;LCD_DATA=dat;LCD_EN=0;delayms(1);}/*设置显示坐标xy*/voidlocate_xy(ucharx,uchary)//x为列,y为行{uchartemp;temp=x&0x0f;y&=0x01;if(y)temp
4、=0x40;//判断写的是
5、第几行temp
6、=0x80;//写的地址最高位要为1才会被认为是写地址write_com(temp,1);}/*显示一个字符*/voiddisp1char(ucharx,uchary,uchardat){locate_xy(x,y);write_data(dat);}/*显示字符串*/voiddispnchar(ucharx,uchary,ucharn,uchar*str){uchari;for(i=0;i
此文档下载收益归作者所有