单片机驱动LCD1602.ppt

上传人:p** 文档编号:175956 上传时间:2023-03-22 格式:PPT 页数:10 大小:1.14MB
下载 相关 举报
单片机驱动LCD1602.ppt_第1页
第1页 / 共10页
单片机驱动LCD1602.ppt_第2页
第2页 / 共10页
单片机驱动LCD1602.ppt_第3页
第3页 / 共10页
单片机驱动LCD1602.ppt_第4页
第4页 / 共10页
单片机驱动LCD1602.ppt_第5页
第5页 / 共10页
单片机驱动LCD1602.ppt_第6页
第6页 / 共10页
单片机驱动LCD1602.ppt_第7页
第7页 / 共10页
单片机驱动LCD1602.ppt_第8页
第8页 / 共10页
单片机驱动LCD1602.ppt_第9页
第9页 / 共10页
单片机驱动LCD1602.ppt_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
资源描述

《单片机驱动LCD1602.ppt》由会员分享,可在线阅读,更多相关《单片机驱动LCD1602.ppt(10页珍藏版)》请在第壹文秘上搜索。

1、显示驱动编写430驱动1602驱动驱动什么是驱动驱动:单片机通过GPIO口向LCD1602的引脚给指令和数据,使LCD按照单片机的要求进行显示。单片机也可以从LCD1602的引脚读取反馈数据到GPIO。引脚引脚 符号符号 功能说明功能说明 1 VSS 一般接地一般接地 2 VDD 接电源(接电源(+5V) 3 V0 液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高4 RS 数据数据/命令选择端(命令选择端(H/L) 5 R/W 读读/写选择端(写选择端(H/L)6 E E端为使能端。写:下降沿使能;读:端为使能端。写:

2、下降沿使能;读:E高电平有效高电平有效 7-14 DB0-7 双向数据双向数据/命令命令总线总线 8位位 15 BLA 背光电源正极背光电源正极 16 BLK 背光电源负极背光电源负极 RS:寄存器选择(总线选择)RS引脚的电平的高低决定了选择当前总线是做数据总线还是命令总线。做数据总线,向LCD送数据:LCD_WriteData(unsigned char Dat)作用:写入的是所要显示字符所对应的ASCII码。做命令总线,向LCD送命令:LCD_WriteCommand(unsigned char Com)两种类型命令(1)初始化液晶命令 (Com=0 x80)序号序号 指令指令RSR/W

3、D7 D6 D5 D4 D3 D2 D1 D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/C R/L*6置功能00001DL NF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001 显示数据存贮器地址9读忙标志或地址01BF 计数器地址10写数到CGRAM或DDRAM10 要写的数据内容11从CGRAM或DDRAM读数11 读出的数据内容1602液晶模块内部的控制器共有液晶模块内部的控制器共有11条控制指令条控制指令void LCD_Init() /初始

4、化成向初始化成向1602写数据和命令写数据和命令 E_SET_OUT; /单片机引脚设置成输出单片机引脚设置成输出 RW_SET_OUT; RS_SET_OUT; DataPort_SET_OUT; E_SET_L; /E=0, RW_SET_L; /RW RS都为都为0,即写命令状态,即写命令状态 RS_SET_L; CLK_SET_OUT; /写命令部分写命令部分 LCD_WriteCommand(0 x38); 显示模式设置显示模式设置 LCD_WriteCommand(0 x01); /清屏清屏 LCD_WriteCommand(0 x06);/显示光标移动设置显示光标移动设置 LCD

5、_WriteCommand(0 x0c); /开显示,不显示光标 LCD_WriteCommand(0 x00); void LCD_WriteCommand(unsigned char Com) RS_SET_L; /命令总线命令总线 RW_SET_L; /写操作写操作 P1=Com; /P1为为8位二进制数据位二进制数据 _NOP(); _NOP(); / tsp1 E_SET_H; DelayNop(15); / tpw E_SET_L; /使能端下降沿沿写入使能端下降沿沿写入 Delay(Delay_Count); 写命令时序和对应程序写命令时序和对应程序图中的延时是有最小限制的,相当

6、于1602的反应时间,所以单片机引脚高低电平跳变不能太快void LCD_WriteData(unsigned char Dat) RS_SET_H;/数据数据 RW_SET_L;/写操作写操作 P1=Dat; _NOP(); _NOP(); E_SET_H; DelayNop(15); E_SET_L; /使能端下降沿沿写入使能端下降沿沿写入 Delay(Delay_Count); /写入的写入的Dat是显示字符对应的是显示字符对应的ASCII码码写数据时序和对应程序写数据时序和对应程序写命令和写数据的时序,除了RS,其他完全相同,所以程序上也只有RS_SET不同主程序流程void main

7、( void ) WDTCTL = WDTPW + WDTHOLD; LCD_Init(); LCD_CLR(); LCD_DispStr(1,1,LCD_Serial_test!); LCD_DispStr(1,2,ABC DEFG);void LCD_DispStr(char x,char y,char *p) if (x !=0 x00 & y!=0 x00) switch(y) /数据指针数据指针=80h+地址码(地址码(0-27H,40-67H) case 1:LCD_WriteCommand( 0 x80 + x-1 );break; /第第1行行 case 2:LCD_Write

8、Command( 0 x80 + 0 x40 + x-1 );break; /第第2行行 while(*p!=0) LCD_WriteData(*p); p+; 利用传递参数利用传递参数x、y确定要显示的字符确定要显示的字符串的位置串的位置待显示字符待显示字符*p,传给写数据,传给写数据函数,再将其指针函数,再将其指针p加加1,在传送下一个字符,直到到在传送下一个字符,直到到达字符串尾部达字符串尾部 0LCD_DispStr(1,1,LCD_Serial_test!);v引脚定义移植引脚定义移植将将P0.0的输出作为的输出作为RS信号信号51:sbit RS=P00; RS=0;430: #define RS_SET_H P0OUT |= BIT0 /数据 #define RS_SET_L P0OUT &=BIT0 /命令v注意不同的处理器时钟导致的延时问题注意不同的处理器时钟导致的延时问题不同的单片机的主时钟频率不同,指令周期也不同。所以产生的延时不同。当从51移植到430时,可能出现电平跳变间隔时间缩短,导致LCD读取时序的速度跟不上单片机,导致时序混乱,不能显示。显示驱动移植

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 通信/电子 > 电子电气自动化

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!