欢迎来到天天文库
浏览记录
ID:14163453
大小:98.50 KB
页数:6页
时间:2018-07-26
《lcd1602指令解读及基本程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*HD44780内置了DDRAM、CGROM和CGRAM。CGROM和CGRAM就是内置192个常用字符产生器,用户自定义的字符产生器RAMDDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:显示位置:12345678.....40第一行:00H01H02H03H04H05H06H07H.....27H第二行:40H41H42H43H44H45H46H47H.....67H*/1602LCD的RAM地址映射液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地
2、址,也就是告诉模块在,哪里显示字符,图是1602的内部显示地址。也就是说想要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H地址写入“A”字的代码就行了。但具体的写入是要按LCD模块的指令格式来进行的,后面我会说到的。那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下:DDRAM地址与显示位置的对应关系图五:LCD1602内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该
3、是01000000B(40H)+10000000B(80H)=11000000B(C0H)。/*1602液晶模块内部的控制器共有11条控制指令,如下表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**D3=1移字符D3=0移光标D2=1右移D2=0左移6功能设置00001DLNF**DL=1总线8位DL=0总线4位N=0显单行N=1显双行F=05X7点阵F=15X10点阵7置字符发生器地址0001-字符发生存贮器地址(6位
4、)-8置数据存贮器地址001--显示数据存贮器地址(7位)---9读忙标志或地址01BF----计数器地址(7位)---------10写CGRAM或DDRAM10--------要写的数据内容(8位------11读CGRAM或DDRAM11--------读出的数据内容(8位)-----*///51单片机对lcd1602一些基础程序/*基本操作时序:写指令输入:RS=0,RW=0,E=下降沿脉冲,DB0~DB7=指令码输出:无写数据输入:RS=1,RW=0,E=下降沿脉冲,DB0~DB7=数据输出:无读状态输入:RS=0,RW=1,E=1输出:DB0~DB7=状态字读数据输入:RS=1,R
5、W=1,E=1输出:DB0~DB7=数据/*//*lcd_1602指令:指令位D7D6D5D4D3D2D1D0功能设置001DLNF**DL=1总线8位DL=0总线4位N=0显单行N=1显双行F=05X7点阵F=15X10点阵lcd_1602指令汇总0x28设置16*2显示,5*7点阵,4位数据接口0x38设置16*2显示,5*7点阵,8位数据接口0x01清屏,光标复位到地址00H位置0x02光标归原点,DDRAM中内容不变,地址计数器AC=0;(此时地址为0x80)0x0F开显示,显示光标,光标闪烁0x0e开显示,显示光标,光标不闪烁0x0c开显示,不显示光标0x08只开显示0x06地址加一
6、,当写入数据的时候光标右移设定显示屏或光标移动方向指令0x18字符全部左移一格,但光标不动0x1c字符全部右移一格,但光标不动0x10光标左移1格,且AC值减10x14光标右移1格,且AC值加1*/#include#definedataportP1sbitRS=P2^6;sbitRW=P2^5;sbitEN=P2^4;voidwaitfor()//检测忙信号函数{dataport=0xff;RS=0;RW=1;//选择指令寄存器读操作RS=0指令RS=1数据;RW=0写RW=1读EN=1;//使能操作while(dataport&0x80);//如果最高位是1表示1602
7、正忙原地踏步忙完后芯片会将高位拉低EN=0;}voidwritedata(unsignedchardataw)//写数据到LCD1602{waitfor();//测忙RS=1;RW=0;//选择数据寄存器写操作RS=0指令RS=1数据;RW=0写RW=1读dataport=dataw;//将数据送到数据口EN=1;EN=0;//使能下降沿脉冲}voidwritecmd(unsignedcharcm
此文档下载收益归作者所有