ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:696.99KB ,
资源ID:9483814      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9483814.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(大橡树常用液晶的使用之LCD1602显示自定义字符及汉字1.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大橡树常用液晶的使用之LCD1602显示自定义字符及汉字1.docx

1、大橡树常用液晶的使用之LCD1602显示自定义字符及汉字1一、常用液晶的使用之LCD1602显示自定义字符及汉字2010年12月22日 星期三 11:00好久没写单片机的文章了,一直以来比较忙,早就想写一个关于常见液晶的使用方法的,但是一直没机会写,只得抽些时间写一下了,总共介绍两款液晶吧,LCD1602和LCD12864,原本还想加上NOKIA5110的,但是Proteus仿真库里面没有就不写了!呵呵,有什么不妥的地方,还望大家指正啊!第一篇讲解一下LCD1602,学过单片机的朋友们都知道它了吧,可以说是用的最广,最简单,也是学液晶入门级别的一块液晶了。LCD1602顾名思义就是两行显示的液

2、晶,每行最多显示16个字符(里面总共有160个字符),其中包括阿拉伯数字、英文字母的大小写,常用符号,及日文的假名!每个字符对应一个ASCII码,我们通过向液晶送相应符号的ASCII码来显示这个字符。下面看一下Proteus软件中的LCD1602,在Proteus软件的元件库中,LCD1602为LM016L,下面是这块液晶的引脚图: 具体的相关引脚和功能设定参看LCD1602的PDF文档资料,由于篇幅问题,这里就不赘述了! 还有一点要说的就是大家在仿真LCD1602时,要是用的是DB7DB0连单片机的P0口的话,一定要加上拉电阻,要不然驱动不了,因为单片机的四组IO口就P0的内部无上拉,驱动能

3、力弱!看下面的图:在P0口加了排阻(RESPACK-8)对于自带字符的显示,只需要将对应的ASCII码写入LCD中显示即可,这个是每个人开始学习液晶最开始要学会的了,看看数据手册,写写程序,想必大家都会了,这里就不做介绍,本篇着重讲解一下怎样自定义显示字符,比如显示自定的字符、显示汉字等等这些! 要显示我们自定义的字符,就要用到LCD中的CGRAM存储器(character generate RAM),而我们之前用的显示自带的字符用到的是DDRAM,两个是不同的。看液晶手册我们知道,CGRAM的容量是64个字节,而一个字符是8个字节,所以一共能显示8个自定义的字符。内部常用字符的显示是从0x2

4、0开始的,0x00 0x0F是专门留给自定义字符显示用的,0x000x07和0x800x0F显示的内容是一样的,也就是说0x00=0x08,0x01=0x09,以此类推。CGRAM共128个位,地址是0x400x7F,128/8=16正好对应的是0x000x0F共16个,刚才说了,0x00与0x08对应,0x01与0x09对应,共16个,这并不矛盾!说了这么多,那么怎样显示一个自定义字符呢? 首先我们要清楚LCD1602显示字符的点阵大小,眼力好的可以看出来,LCD1602一个显示字符的位置是5*8的点阵,也就是说它所能显示的点阵图形的大小是5*8的!要显示一个自定义的字符,首先我们要知道所显

5、示自定义字符的点阵数据,也就是在一个5*8的点阵上那个点是黑的(将该点点黑,就是高电平-1),哪个点是白的(该点不显示,为低电平-0),但是我们送入到LCD中的是ASCII码,它是8位的数据,而一个显示字符的点阵大小只是5*8的,显然不够,显示的办法是8*8点阵的前三列不用,也就是不显示,我们只用后面的5列来显示。 然后设定我们是要定义第几个自定义字符,前面已经介绍了,LCD1602最多显示8个自定义字符;然后要规定在液晶的什么位置显示自定义字符,看过数据手册我们知道,第一行第一个位置的地址是0x80,第二行一个位置的地址是0xC0。最后就是要显示我们定义的第几个字符其对应CGRAM地址的关系

6、式是:0x00:第一个(0x40) 0x01:第二个(0x48) 0x02:第三个(0x50) 0x03:第四个(0x58)0x04:第五个(0x60)0x05:第六个(0x68) 0x06:第七个(0x70) 0x07:第八个(0x78)算了,还是画个流程图,这样大家看的更清楚:(第一个显示字符的数组数据,不小心打错了,呵呵)接下来介绍怎样对显示的数组取模:给大家介绍个取模软件,这个软件很常见叫做zimo221,玩过点阵的和液晶的估计都知道吧,打开软件,首先我们创建一个8*8点阵大小的图形,如下图所示:然后呢,在里面打点,注意前三列空着不打点。这里我们显示自定义字符显示黑白相间的点吧,这个是

7、我打好的,看下图:然后设定取模的方式:然后生成代码:看你是用什么程序写,这里我是用C写的就用C51的格式OK,字符取模就结束了,接下来时程序:/*程序:LCD1602的驱动原理及应用内容:显示自定义字符 软件:Keil uVisoin4开发板:proteus仿真图 作者:大海橡树 *#includesbit RS=P20;sbit RW=P21;sbit EN=P22;/LCD的三个控制端 unsigned char table=0x15,0x0A,0x15,0x0A,0x15,0x0A,0x15,0x0A;void delay(unsigned int i) while(-i);void R

8、ead_busy() /忙检测,DB7为1则busy,不能进行读写操作 ;每次读写前应读忙检测 P0=0x00; RS=0; RW=1; EN=1; while(P0 & 0x80); EN=0;void write_LCD_command(unsigned char value)/写命令函数 Read_busy(); RS=0; RW=0; EN=1; P0=value; delay(100); EN=0;void write_LCD_data(unsigned char value)/写命令函数 Read_busy(); RS=1; RW=0; EN=1; P0=value; delay(

9、100); EN=0;void init_LCD() write_LCD_command(0x38); write_LCD_command(0x0c);/开显示,不显示光标,且不闪烁 write_LCD_command(0x06);/每次写入数据后地址指针加1 write_LCD_command(0x01);/清屏 void main() unsigned char num; init_LCD(); write_LCD_command(0x40); /对CGRAM第一个自定义字符操作,若是第二个则为0x48,其次类推(上面有对顶的关系) for(num=0;num8;num+) write_L

10、CD_data(tablenum); write_LCD_command(0x80); /规定显示在第一行第一个位置 write_LCD_data(0x00); /显示第一个自定义字符 (0x40对应第一个:0x00) while(1); 仿真图:仿真效果和我们预设的一样,至此,自定义显示字符就结束了。想必大家已经会了,这个简单的会了,就来个复杂点的,用1602显示汉字,其实这个也是用自定义显示的方法,只不过我们要用几个显示块合成在一起拼接成一个汉字!有兴趣的自己可以试一下!下面是我写个一个显示汉字的,把8个自定义的字符全都用上了:显示:“大”字 显示的汉字不是很好看!呵呵,不过还是能看清的!

11、我们在LCD1602做数字钟的时候可以用一个或两个CGRAM来显示年、月、日;上面的这个字8个CGRAM地址都用上了,其实我们可以用数码管动态扫描的原理在LCD1602上显示四个大的汉字,因为每次显示一个汉字是8个CGRAM都用上了,所以没次只显示一个!根据动态扫描的原理就能够实现四个汉字同时显示!有兴趣的朋友可以试一下! 显示单个5*7点阵大小的汉字也可以,下面是我写了个万年历的程序,用的就是单个的字符显示汉字,效果不是很好,不过还行吧,如下图所示:LCD1602就介绍到这里,想必大家都会了!下一篇有时间的话给大家介绍LCD12864液晶,带字库的和不带字库的两种!用12864显示动画、温度曲线,正弦曲线等!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1