x.1.1数码管显示简介x.1.2数码管性能简易检测及注意事项x.1.3数码管连接与字形代码x.1.4数码管显示方法x.1.5数码管显示软硬件设计简单示例x.1.5.1硬件原理x.1.5.2软件代码(8051汇编语言)x.2.1液晶显示概述x.2.2液晶显示简介x.2.31602字符型LCD简介x.2.41602LCD的基本参数及引脚功能x.2.51602LCD的指令说明及时序x.2.61602LCD的RAM地址映射及标准字库表x.2.71602LCD的一般初始化(复位)过程x.2.81602LCD的软硬件设计实例x.2.8.1硬件原理图:x.2.8.2程序流程图x.2.8.3软件代码(C语言)x.1.1数码管显示简介数码管的主要特点如下:(1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。(2)发光响应时间极短(0.1μs),高频特性好,单色性好,亮度高。(3)体积小,重量轻,抗冲击性能好。(4)寿命长,使用寿命在10万小时以上,甚至可达100万小时。成本低。因此它被广泛用作数字仪器仪表、数控装置、计算机的数显器件。x.1.2数码管性能简易检测及注意事项LED数码管外观要求颜色均匀、无局部变色及无气泡等,在业余条件下可用干电池作进一步检查。现以共阴数码管为例介绍检查方法。将3伏干电池负极引出线固定接触在LED数码管的公共负极端上,电池正极引出线依次移动接触笔画的正极端。这一根引出线接触到某一笔画的正极端时,那一笔画就应显示出来。用这种简单的方法就可检查出数码管是否有断笔(某笔画不能显示),连笔(某些笔画连在一起),并且可相对比较出不同笔划发光的强弱性能。若检查共阳极数码管,只需将电池正负极引出线对调一下,方法同上。LED数码管每笔画工作电流ILED约在5—10mA之间,若电流过大会损坏数码管,因此必须加限流电阻,其阻值可按下式计算:R值=(U—ULED)/ILED其中U为加在LED两端电压,ULED为LED数码管每笔画压降(约2伏)。使用注意事项(1)检查时若发光暗淡,说明器件已老化,发光效率太低。如果显示的笔段残缺不全,说明数码管已局部损坏。(2)对于型号不明、又无管脚排列图的LED数码管,用数字万用表的h距挡可完成下述测试工作:①判定数码管的结构形式(共阴或共阳);②识别管脚;③检查全亮笔段。预先可假定某个电极为公共极,然后根据笔段发光或不发光加以验证。当笔段电极接反或公共极判断错误时,该笔段就不发光。x.1.3数码管连接与字形代码在单片机系统中,通常用LED数码显示器来显示各种数字或符号,八段LED显示器由8个发光二极管组成。其中7个长条形的发光管排列成一个日字形,另一个圆点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED显示器有两种不同的连接形式:一种是8个发光二极管的正极连在一起,称之为共阳极LED显示器;另一种是8个发光二极管的负极连在一起,称之为共阴极LED显示器。共阳和共阴结构的LED显示器各笔划段名的安排位置是相同的,当二极管导通时,相应的笔划段就发亮,由发亮的笔划段组合而显示出各种字符。8个笔划段h(在许多书中用dp来表示,其实是一个意思)gfedcba对应于一个字节(8位)的D7D6D5D4D3D2D1D0,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴LED显示器,当公共阴极接地(零电平),阳极hgfedcba各段为01110011时,显示器就显示P字符,即P字符的字形码是73H;而如果是共阳极LED显示器,公共阳极接高电平,显示P字符的字形代码应为10001100(8CH),也就是与73H的各位相反。这里必须注意的是:很多作品为了方便接线,常常不按照规则的方法去对应字段与位的关系,这时字形码就必须根据接线来自行设计了。x.1.4数码管显示方法在单片机的应用系统中,数码管显示器的显示常采用两种方法:静态显示和动态扫描显示。所谓静态显示,就是把多个LED显示器的每一段与一个独立的并行口连接起来,而公共端则根据数码管的种类连接到VCC或GND端,这种连接方式的每一个显示器都要占用一个单独的具有锁存功能的I/O端口,用于笔划段字形代码,单片机只需把要显示的字形代码发送到接口电路,就不用再管它了,直到要显示新的数据时,再发送新的字形码。因此,使用这种方法当显示位数较多时单片机中I/O口的开销很大,需要提供的I/O接口电路也较复杂,功耗比较大,但它具有编程简单,显示稳定,CPU的效率较高的优点。所谓动态扫描显示,比如我们要显示四位数码管,程序上需要每一只数码管显示一段时间,然后切换到下一只显示,每个只显示一小段时间,只要切换速度足够快,因为人眼存在的“视觉残留”现象,就能同时看到四只数码管显示。用这种方法当显示位数较多时单片机中I/O口的开销很小,需要提供的I/O接口电路也较简单,节省功耗,但它却编程难度稍高,占用较高CPU的资源。x.1.5数码管显示软硬件设计简单示例两位数码管循环显示00~99的实验x.1.5.1硬件原理:数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同,并且相应的0~9的显示代码也正好相反。现在以两位共阳数码管的单片机驱动方法为例,电路如下图:P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码(共阳),数码管就能正常显示数字。因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。x.1.5.2软件代码(8051汇编语言)以下是用AT89C51实验板的两位数码管显示00~99依次循环的汇编语言程序a_bitequ20h;数码管个位数存放内存位置b_bitequ21h;数码管十位数存放内存位置tempequ22h;计数器数值存放内存位置ORG0100hljmpstarstar:movtemp,#0;初始化计数器,从0开始stlop:acalldisplay;调用显示子程序inctemp;对计数器加1mova,tempcjnea,#100,next;判断计数器是否满100?movtemp,#0;满100就清零重新开始next:ljmpstlop;不满就循环执行;显示子程序display:mova,temp;将temp中的十六进制数转换成10进制movb,#10;10进制/10=10进制divabmovb_bit,a;十位在amova_bit,b;个位在bmovdptr,#numtab;指定查表启始地址movr0,#4dpl1:movr1,#250;dplop:mova,a_bit;取个位数MOVCA,@A+DPTR;查个位数的7段代码movp0,a;送出个位的7段代码clrp2.7;开个位显示acalld1ms;显示162微秒setbp2.7;关闭个位显示,防止鬼影mova,b_bit;取十位数MOVCA,@A+DPTR;查十位数的7段代码movp0,a;送出十位的7段代码clrp2.6;开十位显示acalld1ms;显示162微秒setbp2.6;关闭十位显示,防止鬼影djnzr1,dplop;循环执行250次djnzr0,dpl1;循环执行250X4=1000次ret;2+2X80=162微秒,延时按12MHZ计算D1MS:MOVR7,#80DJNZR7,$RET共阳数码管的显示代码numtab:DB30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24Hx.2.1液晶显示概述在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。x.2.2液晶显示简介①液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。②液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(SimpleMatrix)和主动矩阵驱动(ActiveMatrix)三种。③液晶显示器各种图形的显示原理:线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。x.2.31602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图x-1:图x-11602字符型液晶显示器实物图x.2.41602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图x-2所示:图x-21602LCD尺寸图1602LCD