LCD1602驱动程序(C51)

LCD1602驱动程序(C51)

ID:42619159

大小:16.12 KB

页数:7页

时间:2019-09-18

LCD1602驱动程序(C51)_第1页
LCD1602驱动程序(C51)_第2页
LCD1602驱动程序(C51)_第3页
LCD1602驱动程序(C51)_第4页
LCD1602驱动程序(C51)_第5页
资源描述:

《LCD1602驱动程序(C51)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、/Module:lcd1602_drv.hFunction:lcd1602显示屏驱动程序和中间接口Author:槐之林Version:2016-05-29/#ifndef_lcd1602_drv_h_#define_lcd1602_drv_h_#ifndefNULL#defineNULL((void)0L)#endiftypedefunsignedcharuchar;typedefunsignedintuint;//LCD1602显示IO#defineLCD_DATAP0sbitLCD_RS=P2^0;sbitLCD_RW=P2^1;sbitLCD_EP=P2

2、^2;#include"app_common.h"#defineLCD_CLEAR1#defineLCD_NORMER2#defineLCD_CURSOR_BLINK3//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//对外接口bitLcd_bz();//忙时判断,1表示忙voidLcd_cmd(ucharcmd);//写指令voidLcd_ctrl(ucharL,ucharC,ucharCC);//控制函数voidLcd_pos(ucharx,uchary);//定位voidLcd_ch(uc

3、harch);//写数据,单个字符并显示voidLcd_str(ucharstr,uintlen);//写入字符串并显示(用到Lcd_ch()函数)voidLcd_num(intnum);//显示整数voidLcd_init();voidLcd_flo(floats,uintn);//浮点显示,n<=8;#endif/Module:lcd1602_drv.cFunction:lcd1602显示屏驱动程序和中间接口Author:槐之林Version:2016-05-29/#include#include#include<

4、math.h>#include"lcd1602_drv.h"/函数名:bitLcd_bz()功能:测试是否为忙时,返回1为忙,0为闲说明:/bitLcd_bz()//判是否为忙时{bitresult;LCD_RS=0;LCD_RW=1;LCD_EP=1;delay_us(5);result=(bit)(LCD_DATA&0x80);LCD_EP=0;returnresult;}/函数名:voidLcd_cmd(ucharcmd)功能:写指令:cmd说明:指令库:清屏函数:0X01;1.64ms光标归位:0X02;1.64ms模式设置:DB2=1DB1=I/DD

5、B0=S;I/D=0---写入数据后,光标左移;I/D=1---写入数据后,光标右移;S=0-----写入数据后,显示屏不移动;S=1-----写入数据后,显示屏右移1;显示开关控制:DB3=1DB2=DDB1=CDB0=B;D=0显示功能关D=1显示功能开C=0无光标C=1有光标B=0光标无闪烁B=1光标闪烁设置光标/屏移动方向指令:DB4=1DB3=S/CDB2=R/LDB1=xDB0=x;S/CR/L对应指令00光标左移一格,AC减一01光标右移一格,AC加一10显示器上所有字符左移一格,光标不动11显示器上所有字符右移一格,光标不动功能设置:0X381

6、62显示,57点阵,8位数据/voidLcd_cmd(ucharcmd){while(Lcd_bz());LCD_RS=0;LCD_RW=0;LCD_EP=0;delay_us(5);LCD_DATA=cmd;delay_us(5);LCD_EP=1;delay_us(5);LCD_EP=0;delay_us(5);}//控制函数,比如清屏//L/C表示行/列(1~2)/(1~16)//CC表示控制指令,指令在.h文件中定义//有些指令没有用于参数C和L,可以赋值为0voidLcd_ctrl(ucharL,ucharC,ucharCC){switch(CC){

7、caseLCD_CLEAR:Lcd_cmd(0x01);delay_ms(3);break;caseLCD_CURSOR_BLINK:Lcd_pos(L,C);Lcd_cmd(0x0F);break;caseLCD_NORMER:Lcd_cmd(0x0C);Lcd_cmd(0x06);Lcd_cmd(0x01);break;default:break;}}/函数名:voidLcd_pos(ucharpos)功能:定位说明:x表示第x行(1~16)y表示第y列(1~2)/voidLcd_pos(ucharx,uchary){y=y-1;if(x==1){Lcd_

8、cmd(0x80+y);//表示第一行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。