




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
字符型LCD液晶显示器的应用字符型LCD1602的基本操作单片机对LCD模块有四种基本操作:写命令、写数据、读状态和读数据,具体操作由LCD1602模块的三个控制引脚RS、R/W和E的不同组合状态确定。字符型LCD液晶显示器与单片机的接口
12345678910111213141516VSSVDDVOLCD模块DB0DB1DB3DB2DB5DB4DB7DB6AKRSR/WERSR/W操作00写命令操作(初始化、光标定位等)01读状态操作(读忙标志)10写数据操作(要显示的内容)11读数据操作(可以把显示存储区中的数据反读出来)使能端E引脚下降沿时执行操作四种操作三种常用字符型LCD液晶显示器与单片机的接口RSR/W操作00写命令操作(初始化、光标定位等)01读状态操作(读忙标志)10写数据操作(要显示的内容)11读数据操作(可以把显示存储区中的数据反读出来)使能端E引脚下降沿时执行操作四种操作三种常用写命令操作是指给液晶模块写入命令字,也就是指令字。读状态操作用来读入液晶模块的忙标志。写数据操作用来给液晶模块写入显示的数据。unsignedcharlcd_r_start()//8位数据线连接方式{unsignedchars;RW=1; //RW=1,RS=0,读LCD状态
delayus();RS=0;delayus();E=1; //E端时序
delayus();
s=LCD_DB; //从LCD的数据口读状态
delayus();E=0;delayus();RW=0;delayus();
return(s); //返回读取的LCD状态字}函数返回的状态字格式如下BF=1:表示LCD正在忙
BF=0:表示LCD不忙do{i=lcd_r_start();//调用读状态函数,读取LCD状态字
i&=0x80;//采用与操作屏蔽掉低7位
delay(2);//延时
}while(i!=0);
//LCD忙,继续查询,否则退出循环BFD7D6D5D4D3D2D1D0voidlcd_w_cmd(unsignedcharcom)//8位数据线连接方式{unsignedchari;
do{//查LCD忙操作
i=lcd_r_start(); //调用读状态字函数
i=i&0x80;//与操作屏蔽掉低7位
delayms(1);}while(i!=0); //LCD忙,继续查询,否则退出循环
RW=0;delayus();RS=0;
//RW=0,RS=0,写LCD命令字
delayus();E=1;
//E端时序
delayus();LCD_DB=com; //将com中的命令字写入LCD数据口
delayus();E=0;delayus();RW=1;delayms(50);}voidlcd_w_dat(unsignedchardat)//8位数据线连接方式{unsignedchari;
do{//查LCD忙操作
i=lcd_r_start(); //调用读状态字函数
i=i&0x80;//与操作屏蔽掉低7位
delayms(1);}while(i!=0);
//LCD忙,继续查询,否则退出循环
RW=0;delayus();RS=0; //RW=0,RS=0,写LCD命令字
delayus();E=1; //E端时序
delayus();LCD_DB=dat;
//将com中的命令字写入LCD数据口
delayus();E=0;delayus();RW=1;delayms(50);}z写命令函数写数据函数给LCD写入命令字写入要显示的字符编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表lcd_w_cmd(0x01);//LCD清屏,同时光标定位在第1行,第1列编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表在LCD模块上指定光标位置,也就是下一个要显示字符的位置在哪里。
列行123456789101112131415161808182838485868788898A8B8C8D8E8F2C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF光标位置与相应命令字(1)表中命令字以十六进制形式给出,该命令字就是与LCD显示位置相对应的DDRAM地址。(2)第一行和第二行的命令字是不连续的。lcd_w_cmd(0x84);//光标定位在第1行第5列编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表光标画面滚动命令字可以设置LCD上画面滚动效果编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表CGRAM地址设置可以让我们自己编写要显示的字形编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表归位命令可以使得光标返回到第一行第一列LCD初始化工作方式设置显示状态设置清屏返回输入方式设置001DLNF00DL:设置LCD的连接方式;DL=1:8位、DL=0:4位;N:设置LCD显示的行数;N=1:2行、N=0:1行F:用来设置LCD字符显示的点阵;F=1:5×10、F=0:5×7例:设置数据位数8位,2行显示,5×7点阵字符00111000lcd_w_cmd(0x38);//数据位数8位
//2行显示,5×7点阵字符工作方式设置LCD初始化工作方式设置显示状态设置清屏返回输入方式设置00001DCBD:整体显示开关,D=1,表示开显示,D=0,表示关显示C:光标开关,C=1,表示有光标显示,C=0,表示没有光标显示B:控制光标是否闪烁,B=1,光标闪烁,B=0,光标不闪烁例如:设置开显示,没有光标,光标位字符不闪烁 00001100lcd_w_cmd(0x38);//开显示,没有光标,光标位字符不闪烁显示状态设置LCD初始化工作方式设置显示状态设置清屏返回输入方式设置lcd_w_cmd(0x01);//LCD清屏,同时光标定位在第1行,第1列清屏命令LCD初始化工作方式设置显示状态设置清屏返回输入方式设置000001I/DSI/D:光标移动方向设置,I/D=1:增量方式右移、I/D=0:减量方式左移S:控制屏幕上所有文字是否移动,S=1:移位、S=0:不移位例如:设置光标增量方式右移,显示字符不移动
00000110 lcd_w_cmd(0x06);//光标增量方式右移,显示字符不移动输入方式设置LCD初始化工作方式设置显示状态设置清屏返回输入方式设置初始化函数//函数名:lcd_init//函数功能:lcd初始化
//形式参数:无//返回值:无voidlcd_init(){lcd_w_cmd(0x3c);//设置工作方式lcd_w_cmd(0x0e);//设置光标lcd_w_cmd(0x01);//清屏lcd_w_cmd(0x06);//设置输入方式}一般一个独立的模块包括两个文件1)头文件,它里面定义所有液晶显示需要的预定义和函数声明;2)c程序源文件,液晶显示所需要的函数。模块化程序设计工程主函数模块main.c液晶显示模块lcd.hlcd.c/*************lcd.h**********/sbitRS=P2^6;//P2.6sbitRW=P2^5;//P2.5sbitE=P2^7; //P2.7#defineLCD_DBP0控制接口定义/***********************lcd.h**************************/sbitRS=P2^6;//P2.6sbitRW=P2^5;//P2.5sbitE=P2^7; //P2.7#defineLCD_DBP0externunsignedcharlcd_r_start();//读
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论