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

链接地址:https://www.31ppt.com/p-3805591.html