《第7章 显示与开关键盘输入.ppt》由会员分享,可在线阅读,更多相关《第7章 显示与开关键盘输入.ppt(151页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程主讲人:第第7章章 显示与开关键盘输入显示与开关键盘输入2 2 第第7章章 显示与开关显示与开关/键盘输入及微型键盘输入及微型 打印机接口设计打印机接口设计 3 3第第7章章 显示、开关显示、开关/键盘及微型打印机接口设计键盘及微型打印机接口设计7.1 单片机控制发光二极管的显示单片机控制发光二极管的显示 7.1.1 单片机与发光二极管的连接单片机与发光二极管的连接 7.1.2 单片机单片机I/O端口控制发光二极管的编程端口控制发光二极管的编程7.2 开关状态检测开关状态检测7.3 单片机控制单片机控制LED数码管的显示数码管的显示 7.3.1 LED数码管显示原理数码管显示原理 7.3.
2、2 LED数码管的显示方式数码管的显示方式 7.3.3 LED数码管静态显示设计数码管静态显示设计 7.3.4 LED数码管动态显示设计数码管动态显示设计4 47.4 单片机控制单片机控制LED点阵显示器显示点阵显示器显示 7.4.1 LED点阵显示器结构与显示原理点阵显示器结构与显示原理 7.4.2 控制控制1616 LED点阵显示屏的设计点阵显示屏的设计7.5 单片机控制单片机控制LCD 1602液晶显示器的显示液晶显示器的显示 7.5.1 LCD 1602液晶显示模块简介液晶显示模块简介 7.5.2 单片机控制字符型单片机控制字符型LCD 1602的显示案例的显示案例7.6 键盘接口设计
3、键盘接口设计 7.6.1 键盘接口设计应解决的问题键盘接口设计应解决的问题 7.6.2 独立式键盘的设计独立式键盘的设计 7.6.3 矩阵式键盘的设计矩阵式键盘的设计 7.6.4 单片机与专用键盘单片机与专用键盘/显示器芯片显示器芯片HD7279的接口设计的接口设计5 57.7 AT89S52单片机与微型打印机单片机与微型打印机TPP-40A/16A的接口的接口 7.7.1 TPP-40A/16A微型打印机简介微型打印机简介 7.7.2 AT89S52单片机与单片机与TPP-40A/16A的接口设计的接口设计7.8 单片机与单片机与BCD码拨盘的接口设计码拨盘的接口设计6 6内容概要内容概要
4、作为片内作为片内I/O口的基本应用,本章介绍单片机片内口的基本应用,本章介绍单片机片内I/O口与常见的输入器件口与常见的输入器件(开关、键盘以及拨盘开关等)以及常见的显示输出器件(发光二极管、(开关、键盘以及拨盘开关等)以及常见的显示输出器件(发光二极管、LED数码管、数码管、LCD液晶显示器和微型打印机)的接口设计与编程。液晶显示器和微型打印机)的接口设计与编程。7 77.1 单片机控制发光二极管显示单片机控制发光二极管显示 第第2章章介绍了单片机片内介绍了单片机片内4个个I/O端口端口P0口口P3口的内部电路以及外部引口的内部电路以及外部引脚特性。如果脚特性。如果P0口作为通用口作为通用I
5、/O使用,由于漏极开路,需要外接上拉电阻。使用,由于漏极开路,需要外接上拉电阻。而而P1P3口内部已有口内部已有30k左右的上拉电阻。下面讨论左右的上拉电阻。下面讨论P1P3口如何与口如何与LED发光二极管连接。发光二极管连接。 发光二极管常用来指示系统工作状态,制作节日彩灯、广告牌匾等。发光二极管常用来指示系统工作状态,制作节日彩灯、广告牌匾等。 大部分发光二极管工作电流大部分发光二极管工作电流15mA,其内阻为,其内阻为20100。电流越大,亮。电流越大,亮度也越高。度也越高。 为保证发光二极管正常工作,同时减少功耗,限流电阻选择十分重要,为保证发光二极管正常工作,同时减少功耗,限流电阻选
6、择十分重要,若供电电压为若供电电压为+5V,则限流电阻可选,则限流电阻可选13k。8 87.1.1 7.1.1 单片机与发光二极管的连接单片机与发光二极管的连接 单片机通过并行端口单片机通过并行端口P1P1P3P3驱动发光二极管,电路如驱动发光二极管,电路如图图7-17-1所示。所示。 P0 P0口与口与 P1P1、P2P2、P3P3口相比,口相比,P0P0口每位可驱动口每位可驱动8 8个个LSTTLLSTTL输入,而输入,而P1P1P3P3口口每一位的驱动能力,只有每一位的驱动能力,只有P0P0口的一半。当口的一半。当P0P0口的某位为高电平时,可提供口的某位为高电平时,可提供400A400
7、A的拉电流的拉电流, ,见见图图7-17-1(a a);当;当P0P0口某位为低电平(口某位为低电平(0.45V0.45V)时,可提供)时,可提供3.2mA3.2mA的灌电流的灌电流, ,见见图图7-17-1(b b), ,而而P1P1P3P3口内部有口内部有30k30k左右的上拉电阻,左右的上拉电阻,如果高电平输出,则从如果高电平输出,则从P1P1、P2P2和和P3P3口输出的拉电流口输出的拉电流IdId仅为几百仅为几百AA,驱动能,驱动能力较弱,亮度较差,如力较弱,亮度较差,如图图7-17-1(a a)所示。所示。 9 9图图7-1 发光二极管与单片机并行口的连接发光二极管与单片机并行口的
8、连接(a)不恰当的连接:高电平驱动)不恰当的连接:高电平驱动 (b)恰当的连接:低电平驱动)恰当的连接:低电平驱动1010 如果端口引脚为低电平,能使灌电流如果端口引脚为低电平,能使灌电流Id从单片机的外部流入内部,则将大从单片机的外部流入内部,则将大大增加流过的灌电流值,如大增加流过的灌电流值,如图图7-1(b)所示。所以,所示。所以,AT89S52单片机任何单片机任何一个端口要想获得较大的驱动能力,要采用低电平输出。一个端口要想获得较大的驱动能力,要采用低电平输出。 如果一定要高电平驱动,可在单片机与发光二极管之间加驱动电路,如如果一定要高电平驱动,可在单片机与发光二极管之间加驱动电路,如
9、74LS04、74LS244等。等。7.1.2 单片机单片机I/O端口控制发光二极管的编程端口控制发光二极管的编程 发光二极管与单片机发光二极管与单片机I/O端口的连接,见图端口的连接,见图7-1(b)。如要点亮某发光二)。如要点亮某发光二极管,只需该极管,只需该I/O端口位写入端口位写入“0”即可。下面介绍如何对即可。下面介绍如何对I/O端口编程实现对端口编程实现对发光二极管亮灭的控制。发光二极管亮灭的控制。1111 【例例7-1】制作一个单片机控制的流水灯,原理电路见制作一个单片机控制的流水灯,原理电路见图图7-2,8个发光二极个发光二极管管LED0LED7经限流电阻分别接至经限流电阻分别
10、接至P1口的口的P1.0P1.7引脚上,阳极共同引脚上,阳极共同接高电平。编写程序,每次点亮一个发光二极管,控制发光二极管由上至接高电平。编写程序,每次点亮一个发光二极管,控制发光二极管由上至下的反复循环流水点亮。下的反复循环流水点亮。 说明:说明:本例采用了本例采用了Proteus环境下的虚拟仿真,环境下的虚拟仿真,7.5版本元件库中没有版本元件库中没有AT89S52单片机,采用单片机,采用AT89C51来代替来代替AT89S52,以下同。,以下同。 参考程序如下:参考程序如下: 1212图图7-2 单片机控制的流水灯单片机控制的流水灯131314147.2 开关状态检测开关状态检测 检测开
11、关处于闭合状态还是打开状态,只需把开关一端接到检测开关处于闭合状态还是打开状态,只需把开关一端接到I/O端口的端口的引脚上,另一端接地,然后通过检测引脚上,另一端接地,然后通过检测I/O端口引脚的电平来实现。端口引脚的电平来实现。 【例例7-2】 如如图图7-3,利用单片机、,利用单片机、1个开关个开关k和和1个发光二极管个发光二极管LED,构,构成一个简单的检测开关成一个简单的检测开关k是否闭合的系统。是否闭合的系统。 图图7-3中,开关中,开关k的一端接到单片机的一端接到单片机P3.0引脚上,并通过上拉电阻接到引脚上,并通过上拉电阻接到+5V上,开关的另一端接地,当开关打开时,上,开关的另
12、一端接地,当开关打开时,P3.0引脚为高电平,当开关引脚为高电平,当开关闭合时,闭合时,P3.0引脚为低电平。单片机对开关状态的检测是由程序检测引脚为低电平。单片机对开关状态的检测是由程序检测1515图图7-3 开关、开关、LED发光二极管与发光二极管与P1口的连接口的连接 1616 P3.0引脚的输入电平是高还是低。当开关闭合,即引脚的输入电平是高还是低。当开关闭合,即P3.0脚为低电平;当开脚为低电平;当开关打开,关打开,P3.0引脚为高电平。引脚为高电平。 P1.0引脚接发光二极管的阴极引脚接发光二极管的阴极LED,当开关,当开关k闭合时,闭合时,LED点亮;开关打点亮;开关打开时,开时
13、,LED熄灭。开关熄灭。开关k与与LED没有任何电气上的联系。没有任何电气上的联系。 参考程序如下:参考程序如下: 17177.3 单片机控制单片机控制LED数码管的显示数码管的显示7.3.1 LED数码管显示原理数码管显示原理 LED数码管是常见的显示器件。数码管是常见的显示器件。LED数码管为数码管为“8”字型的,共计字型的,共计8段(段(包括小数点段在内)或包括小数点段在内)或7段(不包括小数点段),每一段对应一个发光二极段(不包括小数点段),每一段对应一个发光二极管,有共阳极和共阴极两种,如管,有共阳极和共阴极两种,如图图7-4所示。共阳极数码管的阳极连接在一所示。共阳极数码管的阳极连
14、接在一起,公共阳极接到起,公共阳极接到+5V上;共阴极数码管的阴极连接在一起,通常此公共上;共阴极数码管的阴极连接在一起,通常此公共阴极接地。阴极接地。 对于共阴极数码管,当某发光二极管的阳极为高电平时,发光二极管点对于共阴极数码管,当某发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极数码管的阳极连接在一起接亮,相应的段被显示。同样,共阳极数码管的阳极连接在一起接+5V,当,当某个发光二极管的阴极接低电平时,该发光二极管被点亮,相应的段被显某个发光二极管的阴极接低电平时,该发光二极管被点亮,相应的段被显示。示。1818图图7-4 8段段LED数码管结构及外形数码管结构及
15、外形 1919 为使为使LED数码管显示不同的字符数码管显示不同的字符,要把某些段点亮,就要为数码管的各段,要把某些段点亮,就要为数码管的各段提供一个字节的二进制代码,即提供一个字节的二进制代码,即段码段码。习惯上以。习惯上以“a”段对应字型码字节的最段对应字型码字节的最低位。各种字符的段码见低位。各种字符的段码见表表7-1。 如要在数码管上显示某一字符,只需将该字符的段码加到各段上即可。如要在数码管上显示某一字符,只需将该字符的段码加到各段上即可。 例如例如某存储单元中的数为某存储单元中的数为“02H”,想在共阳极数码管上显示,想在共阳极数码管上显示“2”,需要,需要把把“2”的段码的段码“
16、A4H”加到数码管各段。通常采用的方法是将欲显示的字符加到数码管各段。通常采用的方法是将欲显示的字符的段码作成一个表,根据显示的字符从表中查找到相应的段码,然后单片机的段码作成一个表,根据显示的字符从表中查找到相应的段码,然后单片机把该段码输出到数码管的各个段上,同时数码管的公共端接把该段码输出到数码管的各个段上,同时数码管的公共端接+5V,此时在数,此时在数码管上显示出字符码管上显示出字符“2”。 20202121 下面介绍单片机如何控制下面介绍单片机如何控制LED数码管显示字符的设计。数码管显示字符的设计。【例例7-3】用单片机控制一个用单片机控制一个8段段LED数码管,如数码管,如图图7
17、-5所示。要求数码管所示。要求数码管反复循环显示单个数字:反复循环显示单个数字:09。图图7-5 控制数码管循环显示单个数字控制数码管循环显示单个数字 2222 图图7-5中,采用了共阳极数码管,中,采用了共阳极数码管,R1R7为限流电阻。单片机为限流电阻。单片机P0口输出口输出段码,数码管的公共段接段码,数码管的公共段接+5v。欲显示的数字。欲显示的数字09的字型码由于无规律可循的字型码由于无规律可循,只能采用查表的方式来完成要求,这样可按着数字,只能采用查表的方式来完成要求,这样可按着数字09的顺序,把每个数的顺序,把每个数字的字型码按顺序排好,形成一个段码表。根据要显示的数字,查找到相字
18、的字型码按顺序排好,形成一个段码表。根据要显示的数字,查找到相应的段码,从而控制应的段码,从而控制LED数码管显示相应的字符。读者通过本例应掌握段数码管显示相应的字符。读者通过本例应掌握段码查表程序的编写。码查表程序的编写。 参考程序如下:参考程序如下: 2323 2424 程序设计中,为达到反复循环显示数字程序设计中,为达到反复循环显示数字09的目的,在段码表中设置了的目的,在段码表中设置了一个结束符一个结束符01H,来控制反复循环显示。,来控制反复循环显示。7.3.2 LED数码管的显示方式数码管的显示方式 单片机控制单片机控制LED数码管有两种显示方式:静态显示和动态扫描显示。数码管有两
19、种显示方式:静态显示和动态扫描显示。1. 静态显示方式静态显示方式 静态显示就是指无论多少位静态显示就是指无论多少位LED数码管,都同时处于显示状态。数码管,都同时处于显示状态。 多位多位LED数码管工作于静态显示方式时,各位的共阴极(或共阳极)连数码管工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或接接在一起并接地(或接+5V);每位数码管的);每位数码管的 2525段码线(段码线(adp)分别与一个单片机控制的)分别与一个单片机控制的8位位I/O口锁存器输出相连。如果口锁存器输出相连。如果送往各个送往各个LED数码管所显示字符的段码一经确定,则相应数码管所显示字符的段码一
20、经确定,则相应I/O口锁存器锁存口锁存器锁存的段码输出将维持不变,直到送入下一个显示字符的段码。因此,静态显的段码输出将维持不变,直到送入下一个显示字符的段码。因此,静态显示方式的显示无闪烁,亮度较高,软件控制比较容易。示方式的显示无闪烁,亮度较高,软件控制比较容易。 图图7-6所示为所示为4位位LED数码管静态显示电路,各个数码管可独立显示,只数码管静态显示电路,各个数码管可独立显示,只要向控制各位要向控制各位I/O口锁存器写入相应的显示段码,该位就能保持相应的显示口锁存器写入相应的显示段码,该位就能保持相应的显示字符。这样在同一时间,每一位显示的字符可以各不相同。但是,静态显字符。这样在同
21、一时间,每一位显示的字符可以各不相同。但是,静态显示方式占用示方式占用I/O口线较多。口线较多。2626图图7-6 4位位LED静态显示的示意图静态显示的示意图2727 对于对于图图7-6所示电路,要占用所示电路,要占用4个个8位位I/O口(或锁存器)。如果数码管数口(或锁存器)。如果数码管数目增多,则还需要增加目增多,则还需要增加I/O口的数目。在实际的系统设计中,如果显示位数口的数目。在实际的系统设计中,如果显示位数较少,可采用静态显示方式。但显示位数较多时,为了降低成本,一般采较少,可采用静态显示方式。但显示位数较多时,为了降低成本,一般采用动态显示方式。用动态显示方式。2. 动态扫描显
22、示方式动态扫描显示方式 显示位数较多时,静态显示所占用的显示位数较多时,静态显示所占用的I/O口多,为节省口多,为节省I/O口与驱动电路口与驱动电路的数目,常采用动态扫描显示方式。将所有的数目,常采用动态扫描显示方式。将所有LED数码管显示器的段码线的数码管显示器的段码线的相应段并联在一起,由一个相应段并联在一起,由一个8位位I/O端口控制,而各显示位的公共端分别由端口控制,而各显示位的公共端分别由另一单独的另一单独的I/O端口线控制。端口线控制。 图图7-7所示为一个所示为一个4位位8段段LED数码管动态扫描显示电路的示意图。数码管动态扫描显示电路的示意图。2828图图7-7 4位位LED数
23、码管动态显示示意图数码管动态显示示意图 2929其中单片机向其中单片机向I/O(1)端口发出欲显示字符的段码,而显示器的位点)端口发出欲显示字符的段码,而显示器的位点亮控制使用亮控制使用I/O(2)端口中的)端口中的4位口线,来控制数码管公共端的电平,每位口线,来控制数码管公共端的电平,每一时刻,只有一时刻,只有1位位选线有效,即选中某一位显示,其他各位位选线都无位位选线有效,即选中某一位显示,其他各位位选线都无效,不显示。效,不显示。每隔一定时间逐位地轮流点亮各数码管(扫描),由于数码管的余辉每隔一定时间逐位地轮流点亮各数码管(扫描),由于数码管的余辉和人眼的和人眼的“视觉暂留视觉暂留”作用
24、,只要控制好每位数码管点亮显示的时间和间作用,只要控制好每位数码管点亮显示的时间和间隔,则可造成隔,则可造成“多位同时亮多位同时亮”的假象,达到的假象,达到4位同时显示的效果。位同时显示的效果。3030 各位数码管轮流点亮的时间间隔(扫描间隔)应根据实际情况而定。各位数码管轮流点亮的时间间隔(扫描间隔)应根据实际情况而定。发光二极管从导通到发光有一定的延时,如果点亮时间太短,发光太弱,发光二极管从导通到发光有一定的延时,如果点亮时间太短,发光太弱,人眼无法看清;时间太长,产生闪烁现象,而且此时间越长,占用单片机人眼无法看清;时间太长,产生闪烁现象,而且此时间越长,占用单片机时间也越多。另外,显
25、示位数增多,也将占用单片机的大量时间,因此时间也越多。另外,显示位数增多,也将占用单片机的大量时间,因此动动态显示的实质是以执行程序的时间来换取态显示的实质是以执行程序的时间来换取I/O端口数目的减少端口数目的减少。 为克服动态显示的弊病,可采用为克服动态显示的弊病,可采用7.6.4小节小节介绍的专用的键盘介绍的专用的键盘/显示器芯显示器芯片,由芯片内部硬件扫描电路自动完成显示数据的扫描刷新。片,由芯片内部硬件扫描电路自动完成显示数据的扫描刷新。 31317.3.3 LED数码管静态显示设计数码管静态显示设计 【例例7-4】 用用AT89S52设计一个设计一个2位位LED数码管显示的数码管显示
26、的 “秒表秒表”, 显显示时间为示时间为0099秒,每秒自动加秒,每秒自动加1。原理电路如原理电路如图图7-8所示。电路采用单片机的所示。电路采用单片机的P2口、口、P3口分别控制两个口分别控制两个LED数码管作为数码管作为“秒表秒表”的时间显示。显示数字的段码采用查表方法。的时间显示。显示数字的段码采用查表方法。“秒秒”计时产生采用软件延时的方法。计时产生采用软件延时的方法。 由本例可见,采用静态显示,需要一个数码管对应一个由本例可见,采用静态显示,需要一个数码管对应一个I/O端口。当数端口。当数码管的数目较多时,需要占用较多的码管的数目较多时,需要占用较多的I/O端口。但是软件编程比较简单
27、,只端口。但是软件编程比较简单,只需向需向P2口、口、P3口输出显示数字的段码即可,且显示不闪烁。口输出显示数字的段码即可,且显示不闪烁。 参考程序如下:参考程序如下:3232图图7-8 2位位LED数码管静态显示的秒表数码管静态显示的秒表 3333343435357.3.4 LED数码管动态显示设计数码管动态显示设计 下面介绍单片机控制数码管动态显示的案例。下面介绍单片机控制数码管动态显示的案例。 【例例7-5】图图7-9所示的动态扫描显示电路,由单片机控制所示的动态扫描显示电路,由单片机控制8只共阳极数码只共阳极数码管,同时在数码管上同时显示管,同时在数码管上同时显示8个数字个数字18。电
28、路中。电路中P0口输出显示字符的段口输出显示字符的段码,码,P2口输出点亮某位的位选码。由于口输出点亮某位的位选码。由于8位数码管的各段是并联的,位数码管的各段是并联的, P0端口端口一次只能送出一个显示一次只能送出一个显示段码,即一次只能点亮段码,即一次只能点亮1 1位数码管。位数码管。3636图图7-9 数码管采用动态显示方式同时显示数字数码管采用动态显示方式同时显示数字18 3737单片机先控制左边第单片机先控制左边第1 1个数码管显示个数码管显示1 1,经过延时后,再控制左边第,经过延时后,再控制左边第2 2个个数码管显示数码管显示2 2,直至第,直至第8 8个数码管显示个数码管显示8
29、 8,反复循环上述过程。,反复循环上述过程。 单片机对单片机对8 8个数码管进行快速位选扫描,只要位选扫描速度选择适个数码管进行快速位选扫描,只要位选扫描速度选择适当,虽然是每次只点亮一位数码管,但由于数码管的余辉和人眼的当,虽然是每次只点亮一位数码管,但由于数码管的余辉和人眼的“视觉视觉暂留暂留”作用,只要控制好每位数码管显示的时间和间隔,则可造成作用,只要控制好每位数码管显示的时间和间隔,则可造成“多位多位同时亮同时亮”的的假象假象,达到,达到8 8位数码管位数码管同时显示字符同时显示字符的效果。的效果。 3838393940407.4 7.4 单片机控制单片机控制LEDLED点阵显示器显
30、示点阵显示器显示 LED点阵显示器应用非常广泛,在许多公共场合,如商场、银行、车站、点阵显示器应用非常广泛,在许多公共场合,如商场、银行、车站、机场、医院随处可见。不仅能显示文字、图形,还能播放动画、图像、视频机场、医院随处可见。不仅能显示文字、图形,还能播放动画、图像、视频等信号。等信号。 LED点阵显示器分为点阵显示器分为图文显示器图文显示器和和视频显示器视频显示器,有单色显示,还有彩色显,有单色显示,还有彩色显示。下面仅介绍单片机示。下面仅介绍单片机如何来控制单色如何来控制单色LED点阵显示器点阵显示器的显示。的显示。7.4.1 LED7.4.1 LED点阵显示器结构与显示原理点阵显示器
31、结构与显示原理 由若干个发光二极管按矩阵方式排列而成。阵列点数可分为由若干个发光二极管按矩阵方式排列而成。阵列点数可分为57、58、68、88点阵;按发光颜色可分为单色、双色、三色;按极性排列可分点阵;按发光颜色可分为单色、双色、三色;按极性排列可分为共阴极和共阳极。为共阴极和共阳极。41411. LED1. LED点阵结构点阵结构 以以88LED点阵显示器为例,外形见点阵显示器为例,外形见图图7-10,内部结构见,内部结构见图图7-11,由,由64个发光二极管组成,且每个发光二极管是处于行线(个发光二极管组成,且每个发光二极管是处于行线(R0R7)和列线()和列线(C0C7)之间交叉点上。)
32、之间交叉点上。2. LED2. LED点阵显示原理点阵显示原理 LED点阵显示器显示的一个字符是由点阵中被点亮的点阵显示器显示的一个字符是由点阵中被点亮的LED所构成。下所构成。下面以发光二极管阳极接行线,阴极接列线的点阵显示器,即面以发光二极管阳极接行线,阴极接列线的点阵显示器,即图图7-11的结构的结构来说明。可以看出,点亮点阵中的一个发光二极管的条件是:所在行为高来说明。可以看出,点亮点阵中的一个发光二极管的条件是:所在行为高电平,所在列为低电平。当然,行与列也是相对的,如把电平,所在列为低电平。当然,行与列也是相对的,如把图图7-11中的行列中的行列互换,则点亮点阵中的一个发光二极管的
33、条件是:互换,则点亮点阵中的一个发光二极管的条件是: 4242图图7-107-10 8 88 LED8 LED点阵显示器外形点阵显示器外形 4343图图7-117-11 8 88LED8LED点阵显示器(共阴极)的结构点阵显示器(共阴极)的结构4444对应的行为低电平,对应的列为高电平。如果在很短时间内依次点亮很多对应的行为低电平,对应的列为高电平。如果在很短时间内依次点亮很多个发光二极管,个发光二极管,LED点阵就可以显示一个稳定的字符、数字或其他图形。点阵就可以显示一个稳定的字符、数字或其他图形。因此,控制因此,控制LED点阵显示,实质上就是点阵显示,实质上就是控制加到行线和列线上的电平编
34、码控制加到行线和列线上的电平编码来控制点亮某些发光二极管(点),来控制点亮某些发光二极管(点),从而显示出从而显示出由不同发光的点由不同发光的点组成的各组成的各种字符。种字符。 88 LED点阵显示模块中的每个发光二极管均放置在行线和列线的交点阵显示模块中的每个发光二极管均放置在行线和列线的交叉点上,当对应的某一行置叉点上,当对应的某一行置1电平,某一列为电平,某一列为0电平时,该发光二极管被点电平时,该发光二极管被点亮。亮。 下面以下面以1616LED点阵显示器显示字符点阵显示器显示字符“子子”为例,见为例,见图图7-12。 4545图图7-12 1616 LED点阵显示器显示字符点阵显示器
35、显示字符“子子”4646 显示过程如下:显示过程如下: 先给先给LED点阵的第点阵的第1行送高电平(行线高电平有效),同时给所有列线送行送高电平(行线高电平有效),同时给所有列线送高电平(列线低电平有效),从而第高电平(列线低电平有效),从而第1行发光二极管全灭;行发光二极管全灭; 延时一段时间后,再给第延时一段时间后,再给第2行送高电平,同时给所有列线送行送高电平,同时给所有列线送“1100 0000 0000 1111”,列线为,列线为0的发光二极管点亮,从而点亮的发光二极管点亮,从而点亮10个发光二极管,显示个发光二极管,显示出汉字出汉字“子子”的第一横;的第一横; 延时一段时间后,再给
36、第延时一段时间后,再给第3行送高电平,同时加到列线的编码为行送高电平,同时加到列线的编码为“1111 1111 1101 1111”,点亮,点亮1个发光二极管;个发光二极管; 4747 延时一段时间后,再给第延时一段时间后,再给第16行送高电平,同时给列线送行送高电平,同时给列线送“1111 1101 1111 1111” ,显示出汉字,显示出汉字“子子”的最下面的一行,点亮的最下面的一行,点亮1个发光二极管。然后再重个发光二极管。然后再重新循环上述操作,利用人眼视觉暂留效应,一个稳定字符新循环上述操作,利用人眼视觉暂留效应,一个稳定字符“子子” 显示出来,显示出来,见见图图7-12。7.4.
37、2 控制控制1616 LED点阵显示屏的案例点阵显示屏的案例 单片机控制单片机控制1616点阵显示屏显示字符案例。点阵显示屏显示字符案例。 【例例7-6】如如图图7-13,利用单片机及,利用单片机及 74LS154(4-16译码器)、译码器)、74LS07、1616 LED点阵显示屏来实现字符显示,编写程序,循环显示字符点阵显示屏来实现字符显示,编写程序,循环显示字符“电子电子技术技术”。4848图图7-137-13 控制控制161616LED16LED点阵显示器(共阴极)显示字符点阵显示器(共阴极)显示字符 4949 图中图中1616 LED点阵显示屏点阵显示屏16行行线行行线R0R15电平
38、,由电平,由P1口低口低4位经位经4-16译码器译码器74HC154的的16条译码输出线条译码输出线L0L15经驱动后的输出来控制。经驱动后的输出来控制。16列列线列列线C0C15的电平由的电平由P0口和口和P2口控制。剩下问题是如何确定显示字符口控制。剩下问题是如何确定显示字符的点阵编码,以及控制好每一屏逐行显示的扫描速度(刷新频率)。的点阵编码,以及控制好每一屏逐行显示的扫描速度(刷新频率)。 5050515152525353545455555656 扫描显示时,单片机通过扫描显示时,单片机通过P1口低口低4位经位经4-16译码器译码器74HC154的的16条译条译码输出线码输出线L0L1
39、5经驱动后的输出来控制,逐行为高电平,来进行扫描。由经驱动后的输出来控制,逐行为高电平,来进行扫描。由P0口与口与P2口控制列码口控制列码C0C15的输出,从而显示出某行应当点亮的发光二极的输出,从而显示出某行应当点亮的发光二极管。管。 下面以显示汉字下面以显示汉字“子子”为例,为例,说明其显示过程。由程序可看出,汉字说明其显示过程。由程序可看出,汉字“子子”的前的前3行发光二级管的列码为行发光二级管的列码为“FFH,FFH,03H,F0H,FFH,FBH,”,第一行第一行的列码为的列码为“FFH,FFH”,由,由P0口与口与P2口输出,没有点亮的口输出,没有点亮的发光二极管。发光二极管。第二
40、行第二行的列码为的列码为“03H,F0H”,通过,通过P0口与口与P2口输出后,由口输出后,由图图7-13的电路可看出,的电路可看出,H03加到列线加到列线C7C0的二进制编码为的二进制编码为“0000 0011”,这,这里要注意加到里要注意加到8个发光二极管上的对应位置。个发光二极管上的对应位置。按照按照图图7-12和和图图7-13的连线关系,加到从左到右发光二极管应为的连线关系,加到从左到右发光二极管应为C0C7的的二进制编码为二进制编码为“1100 0000”,即最左边的,即最左边的2个发光二极管不亮,其余的个发光二极管不亮,其余的6个个5757发光二极管点亮。同理,发光二极管点亮。同理
41、,P2口输出的口输出的HF0加到列线加到列线C15C8的二进制编码为的二进制编码为“1111 0000”,即加到,即加到C8C15的二进制编码为的二进制编码为“0000 1111”,所以第二行,所以第二行的最右边的的最右边的4个发光二极管不亮,如个发光二极管不亮,如图图7-12所示。对应通过所示。对应通过P0口与口与P2口输出口输出加到第加到第3行行16个发光二极管的列码为个发光二极管的列码为“FFH, FBH,”,对应于从左到右的,对应于从左到右的C0C15的二进制编码为的二进制编码为“1111 1111 1101 1111”,从而第,从而第3行左边数第行左边数第11个发光个发光二极管被点亮
42、,其余均熄灭,如二极管被点亮,其余均熄灭,如图图7-12所示。其余各行点亮的发光二极管,所示。其余各行点亮的发光二极管,也是由也是由1616点阵的列码来决定的。点阵的列码来决定的。 58587.5 7.5 单片机控制液晶显示模块单片机控制液晶显示模块1602 LCD1602 LCD的显示的显示 液晶显示器(液晶显示器(Liquid Crystal Display,LCD)具有省电、体积小、抗干)具有省电、体积小、抗干扰能力强等优点,扰能力强等优点, LCD显示器分为显示器分为字段型、字符型字段型、字符型和和点阵图形型点阵图形型。 (1)字段型)字段型。以长条状组成字符显示,主要用于数字显示,也
43、可用于显。以长条状组成字符显示,主要用于数字显示,也可用于显示西文字母或某些字符,广泛用于电子表、计算器、数字仪表中。示西文字母或某些字符,广泛用于电子表、计算器、数字仪表中。 (2)字符型)字符型。专门用于显示字母、数字、符号等。一个字符由。专门用于显示字母、数字、符号等。一个字符由5 7或或5 10的点阵组成,的点阵组成,在单片机系统中已广泛使用。在单片机系统中已广泛使用。5959 (3)点阵图形型。)点阵图形型。广泛用于图形显示,如笔记本电脑、彩色电视和广泛用于图形显示,如笔记本电脑、彩色电视和游戏机等。它是在平板上排列的多行列的矩阵式的晶格点,点游戏机等。它是在平板上排列的多行列的矩阵
44、式的晶格点,点大小大小与与多多少少决定了显示的清晰度。决定了显示的清晰度。7.5.1 LCD 16027.5.1 LCD 1602液晶显示模块简介液晶显示模块简介 最常见的字符型液晶显示模块。单片机系统中常用。由于最常见的字符型液晶显示模块。单片机系统中常用。由于LCD显示面显示面板较为脆弱,厂商已将板较为脆弱,厂商已将LCD控制器、驱动器、控制器、驱动器、RAM 、ROM和液晶显示和液晶显示器用器用PCB连接到一起,称为连接到一起,称为液晶显示模块(液晶显示模块(LCd Module,LCM),),用用户只需购买现成的户只需购买现成的液晶显示模块液晶显示模块即可。单片机只需向即可。单片机只需
45、向LCD显示模块写入显示模块写入相应命令和数据就可显示需要的内容。相应命令和数据就可显示需要的内容。60601 1字符型液晶显示模块字符型液晶显示模块LCD 1602LCD 1602特性与引脚特性与引脚 字符型字符型LCD模块常用的有模块常用的有16字字1行、行、16字字2行、行、20字字2行、行、20字字4行等模块,型号常用行等模块,型号常用1602、1604、2002、2004来表示,其中来表示,其中为商标名称,为商标名称,16代表液晶显示器每行可代表液晶显示器每行可显示显示16个字符,个字符,02表示显示表示显示2行。行。LCD1602内部具有字符库内部具有字符库ROM(CGROM),能
46、显示出,能显示出192个字符(个字符(57点阵),如点阵),如图图7-14所示。所示。 由字符库可看出显示器显示的数字和字母部分代码,恰是由字符库可看出显示器显示的数字和字母部分代码,恰是ASCII码表码表中编码。单片机控制中编码。单片机控制LCD 1602显示字符,只需将待显示字符的显示字符,只需将待显示字符的ASCII码写码写入内部的显示,用数据存储器(入内部的显示,用数据存储器(DDRAM)内部控制电路就可将字符在显)内部控制电路就可将字符在显示示6161图图7-14 ROM字符库的内容字符库的内容 6262器上显示出来。器上显示出来。例如,例如,显示字符显示字符“A”,单片机只需将字符
47、,单片机只需将字符“A”的的ASCII码码41H写入写入DDRAM,控制电路就会将对应的字符库,控制电路就会将对应的字符库ROM(CGROM)中的字)中的字符符“A”的点阵数据找出来显示在的点阵数据找出来显示在LCD上。上。 模块内有模块内有80字节数据显示字节数据显示RAM(DDRAM),除显示,除显示192个字符(个字符(57点阵点阵)的)的字符库字符库ROM(CGROM)外,还有外,还有64字节的字节的自定义字符自定义字符RAM(CGRAM),用户可自行定义用户可自行定义8个个57点阵字符。点阵字符。 LCD 1602工作电压工作电压4.55.5V,典型,典型5V,工作电流,工作电流2m
48、A。标准的。标准的14引脚引脚(无背光)或(无背光)或16个引脚(有背光)的外形及引脚分布如个引脚(有背光)的外形及引脚分布如图图5-15所示。所示。6363 (a) LCD 1602的外形的外形 (b) LCD 1602的引脚的引脚图图5-15 LCD 1602外形及引脚外形及引脚6464 引脚包括引脚包括8条数据线、条数据线、3条控制线和条控制线和3条电源线,见条电源线,见表表7-2。通过单片机向模。通过单片机向模块写入命令和数据,就可对显示方式和显示内容做出选择。块写入命令和数据,就可对显示方式和显示内容做出选择。65652LCD1602字符的显示及命令字字符的显示及命令字 显示字符首先
49、要解决待显示字符的显示字符首先要解决待显示字符的ASCII码产生。用户只需在码产生。用户只需在C51程序中程序中写入欲显示的字符常量或字符串常量,写入欲显示的字符常量或字符串常量,C51程序在编译后会自动生成其标准程序在编译后会自动生成其标准的的ASCII码,然后将码,然后将ASCII码送入显示用数据存储器码送入显示用数据存储器DDRAM,内部控制电,内部控制电路就会自动将该路就会自动将该ASCII码对应的字符在码对应的字符在LCD1602显示出来。显示出来。 让液晶显示器显示字符,首先对其进行让液晶显示器显示字符,首先对其进行初始化设置初始化设置,还必须对有、无光,还必须对有、无光标、光标移
50、动方向、光标是否闪烁及字符移动方向等进行设置,才能获得标、光标移动方向、光标是否闪烁及字符移动方向等进行设置,才能获得所需显示效果。所需显示效果。 对对LCD 1602的初始化、读、写、光标设置、显示数据的指针设置等,都的初始化、读、写、光标设置、显示数据的指针设置等,都是单片机向是单片机向LCD 1602写入命令字来实现。命令字见写入命令字来实现。命令字见表表7-3。 66666767表表7-3中中11个命令个命令功能说明如下:功能说明如下:命令命令1:清屏,光标返回地址清屏,光标返回地址00H位置(显示屏的左上方)。位置(显示屏的左上方)。命令命令2:光标返回到地址光标返回到地址00H位置