80C51与液晶显示模块LCM

2017-10-13 10:01:00编辑:什么鱼 关键字:80C51  液晶显示模块  LCM

解决方案:液晶显示器简称LCD(Liquid Crystal Diodes),是一种被动式的显示器,即液晶本身并不发光,利用液晶经过处理后能够改变光线传输方向的特性,达到显示字符或者图形的目的。


LCD显示器有笔段式和点阵式两种,点阵式又可分为字符型和图像型。笔段式LCD显示器类似于LED数码管显示器。每个显示器的段电极包括七个笔划(段)和一个背电极BP(或COM)。可以显示数字和简单的字符,每个数字和字符与其字形码(段码)对应。


点阵式LCD显示器的段电极与背电极呈正交带状分布,液晶位于正交的带状电极间。点阵式LCD的控制一般采用行扫描方式,通过两个移位寄存器控制所扫描的点。


80C51液晶显示模块LCM的基本接口电路如图1所示。




液晶显示模块初始化子程序(将系统设置成显示2行字符,5×7点阵,开显示,显示光标,字符闪烁,清屏,光标为移动方式,自动地址为增量方式。):


电源打开后,在电源上升到4.5V并维持15ms后,写入功能设置控制字,选择数据接口位数等;等待5ms后,检查忙标志,在不忙的情况下,再进行其他的功能设置;检查忙标志,在不忙的情况下,关显示;检查忙标志,在不忙的情况下,清屏;检查忙标志,在不忙的情况下,设定输入方式,初始化结束。程序如下:

LCD:     MOV A, #38H                           ; 8位数据,2行显示,5×7点阵 

                 MOV DPTR, #8000H                      ; LCD 的口地址


                  MOVX @DPTR, A


                 LCALL BUSY


                 MOV A, #01H                            ; 清屏


                 MOV DPTR, #8000H


                 MOVX @DPTR, A


LCALL BUSY


                 MOV A, #07H                            ; AC自动加1,整体显示移动 

                 MOV DPTR, #8000H

                 MOVX @DPTR, A


                 LCALL BUSY 内容来自单片机之家www.dpj100.com

                 MOV A, #0FH                            ; 开显示,开光标,字符闪烁 

                 MOV DPTR, #8000H 

                 MOVX @DPTR, A


                 RET

BUSY:      PUSH DPH                              ; 保护现场 

                  PUSH DPL        


                  PUSH PSW        


         PUSH ACC        


LOOP:      MOV DPTR, #8001H                     ; 读BH及AC 

                  MOVX A, @DPTR    

                  JB ACC.7, LOOP                         ; 忙,继续等待 

                  POP ACC                              ; 不忙,恢复现场返回

         POP PSW 


                  POP DPL 


         POP DPH  

                  RET 


关键字:80C51  液晶显示模块  LCM

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2017101335078.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:用89C51单片机的P1口输出正脉冲编程
下一篇:取键值MC51单片机子程序实例

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

C51、STM32和S3C2440中断体系的比较

/* 名称:C51、STM32和S3C2440中断体系的比较 说明:对于这三个芯片的中断体系来说,就我目前了解的, 我说:差不多。这里说的差不多,是中断的本质上差不多,都是首先中断源提出申请(比如触发了外部中断,定时器中断等),然后经过中断源屏蔽寄存器,再然后中断优先级的比较,最后CPU相应中断。(我去,这好像又回到了计算机组成原理啊)。不同的是细节,C51作为低级一点的芯片,其中断少,中断能达到的功能也少,相对来说较为简单些(无论是设计还是具体使用)。而STM32和S3C2440来说,其提供的功能较多,设计起来和使用起来要复杂的多(使用的时候得配置好多好多寄存器)。目前总结的,差不多就是这些吧。*/
发表于 2018-07-21 14:40:54

C51之定时器

/* 名称:C51之定时器 说明: 对于C51单片机来说,其内部有2个定时器,分别是T0和T1。它输入的时钟源是固定的,就是晶振输送的。当然它还可以作为计数器,统计外部输入的脉冲信号。这个实验是定时器中断实验。对于定时器中断,这是属于中断的一种。使用它也需要配置先前所属的相关寄存器。不同的是,关于定时器中断,还需要配置一些其他与定时器相关的寄存器,如定时器方式寄存器(TMOD)、计数器TH、TL等。要注意一点的是,C51单片机的定时器可以工作在中断方式,也可以工作在查询方式。在本实验中,使用定时器0(C51有两个定时器),采用中断方式进行精确时间的显示。*///定时器0中断初始化void
发表于 2018-07-21 13:04:15

C51之74HC595的使用

 (https://baike.baidu.com/item/74HC595/9886491?fr=aladdin)*///向HC595发送串行数据void HC595SendData(unsigned char SendVal){    unsigned char i;  for(i=0;i<8;i++)    {        if((SendVal<<i)&0x80) Out=1; //set dataline high  0X80  最高位与SendVal左移的最高位 进行
发表于 2018-07-21 13:02:05

C51IO口模拟I2C总线驱动AT24C16 (I2C协议部分)

/* 名称:C51IO口模拟I2C总线驱动EEPROM(AT24C16)说明:I2C总线是由Philips公司开发的一种简单、半双工同步串行总线。它只需要两根线(SCL、SDA)即可在连接于总线上的器件之间传送信息。其中SCL时钟总线用于同步数据,SDA数据总线用来发送数据(或地址)。和SPI总线不同的是,I2C总线通过在SDL上发送存储器的地址用来选中总线上对应的设备。关于具体的通信协议这里就不说了,无非是通过IO口模拟产生所需信号 (如通信开始信号是SCL为高时,SDA产生一个下降沿信号。) 驱动程序中有 具体的说明。 *///定义I2C相关变量sbit     SCL=P2
发表于 2018-07-21 13:01:29

C51IO口模拟I2C总线驱动AT24C16 (EEPROM部分)

/* 名称:C51IO口模拟I2C总线驱动AT24C16 说明:关于EEPROM,即这里的AT24C16是一个特殊形式的FLASH存储器,不过其容量一般较少。比较适合于存储少量的数据。AT24C16的通信接口是标准的I2C通信,即我们需要根据I2C通信协议来操纵EEPROM设备。 关于AT24C16的的各种操作,这里就不细讲了,简单介绍一下。(1)、主机向AT24C16写一个字节:首先需要发送设备地址,然后发送需要访问的存储器地址。然后在发送要写入的数据。这里省略了开始、结束和确认等信号的产生。(2)、指定页写入n个字节:和(1)的基本操作很类似。不同的是可以连续写入n个数据。这里要小注意一点的就是,写入的数据
发表于 2018-07-21 12:23:27

S3C2440学习之GPIO按键控制LED灯

/* 名称:S3C2440学习之GPIO按键控制LED灯 说明:这是实验2440GPIO的输入功能。基本的流程和51单片机开发的差不多。都是对GPIO端口寄存器的控制不同的是,51单片机可以直接对进行位控制,而2440中GPIO只能对32位的寄存器进行写入或者读出。这样的话,对于有些逻辑操作要稍微复杂点。还有个不同的是,无论是STM32还是51在进行IO按键输入的时候,都需要进行按键消抖,在这里却没又体现出来按键消抖,这是为什么呢?据我了解是这样,在进行51和STM32实验的时候,按键控制的是数码管(数字增加,降低),所以按键的机械抖动会给数码管数字的变化带来显著的影响。在这里是按键控制led灯的亮和灭
发表于 2018-07-21 11:58:46

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved