第5章显示与键盘

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章显示与键盘——基于Keil和Proteus配套单片机项目式教程仿真50例50例全部取自于本书项目和练习题,免费下载机械工业出版社同名教材配套电子教案张志良主编Email:zzlls@126.com单片机应用项目式教程第5章目录C51编程基础知识准备5.1LED数码管和编码方式5.2静态显示方式和动态显示方式项目14LED静态显示任务14.174LS377并行输出3位LED数码管静态显示任务14.274LS164串行输出3位LED数码管静态显示任务14.3CC4511BCD码驱动3位LED数码管静态显示项目15LED动态显示任务15.174LS139选通4位LED数码管动态显示任务15.274LS595串行传送8位LED数码管动态显示C51编程基础知识准备5.3LCD1602液晶显示屏项目16LCD1602液晶显示屏显示C51编程基础知识准备5.4按键开关接口项目174×4矩阵式键盘接口C51编程基础知识准备5.1LED数码管和编码方式在单片机应用系统中,若显示内容只有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰,成本低廉,配置灵活,与单片机接口简单易行。⒈LED数码管LED数码管是由发光二极管作为显示字段的数码型显示器件。7只发光二极管分别对应a~g笔段构成“”字形,另一只发光二极管Dp作为小数点,外形和引脚共阴型共阳型⒉LED数码管编码方式LED数码管编码方式有多种,按公共端连接方式可分为共阴字段码和共阳字段码,共阴字段码与共阳字段码互为反码;按a、b、…、g、Dp编码顺序是高位在前,还是低位在前,又可分为顺序字段码和逆序字段码。甚至在某些特殊情况下可将a、b、…、g、Dp顺序打乱编码。5.2静态显示方式和动态显示方式⒈静态显示方式在静态显示方式下,每一位显示器的字段需要一个8位I/O口控制,而且该I/O口须有锁存功能,N位显示器就需要N个8位I/O口。显示时,每一位字段码分别从I/O控制端输出,亮灭状态保持不变,直至刷新。静态显示方式编程较简单,显示稳定,数码管驱动电流较小,但占用I/O端线多,即软件简单、硬件成本高,一般适用显示位数较少的场合。⒉动态显示方式动态显示方式是字段驱动和字位驱动分别进行。字段驱动电路各位共用,相同字段线连在一起,共8段,由一个8位I/O口控制。字位控制需轮流驱动由另一个I/O口控制。特点是占用I/O端线少;电路较简单,硬件成本低;编程较复杂,CPU要定时扫描刷新显示。当要求显示位数较多时,通常采用动态扫描显示方式。项目14LED静态显示任务14.174LS377并行输出3位LED数码管静态显示⒈显示电路74LS377为TTL8D触发器,片内有8个D触发器。D0~D7为D触发器D输入端;Q0~Q7是D触发器Q输出端;时钟脉冲输入端CLK,上升沿触发,8D共用;为门控端,低电平有效。E⒉程序⒊Keil调试和Proteus虚拟仿真需要说明的是,由于Proteus软件中的74LS377无效,运行后,软件提示“NOmodelapecifiedfor74LS377”,无法仿真。因此,用74LS373替代74LS377扩展并行输出口,只是需多用一个或非门(程序不需变更)。但是,编者的项目实践累次证明,74LS377扩展并行输出口有效而简便。编者认为,ProteusISIS软件仍有不足之处,其元器件库仍在不断完善之中,并非74LS377不能用于扩展并行输出口。读者在实际运用时,应仍选74LS377。可打开本书配套的单片机项目式教程仿真50例任务14.1,直接操作。任务14.274LS164串行输出3位LED数码管静态显示⒈显示电路74LS164特性已在任务10.1中介绍。其串行扩展3位LED数码管静态显示电路如图5-5所示,RXD串行输出显示字段码,TXD发出移位脉冲,P1.0控制串行输出,LED数码管为共阳结构。⒉程序⒊Keil调试和Proteus虚拟仿真可打开本书配套的单片机项目式教程仿真50例任务14.2,直接操作。74LS164串行扩展3位LED数码管静态显示电路,既具有静态显示的优点,又不多占用80C51I/O端口资源,实为最佳静态显示电路。任务14.3CC4511BCD码驱动3位LED数码管静态显示⒈显示电路CC4511是4线-7段锁存/译码/驱动电路,能将BCD码译成7段显示码输出。ABCD为BCD码输入端(A是低位),abcdefg为译码笔段输出端。利用4511实现静态显示与一般静显示电路不同,一是节省I/O端线,段码输出只需4根;二是不需专用驱动电路,可直接输出;三是不需译码,直接输出BCD码,编程简单;缺点是只能显示数字,不能显示各种符号。为输入信号锁存控制,=0,允许从DCBA端输入BCD码数据,刷新显示;=1,维持原显示状态。为消隐控制端,=0,全暗。为灯测试控制端,=0,全亮。LELELEBIBILTLT⒉程序⒊Keil调试和Proteus虚拟仿真可打开本书配套的单片机项目式教程仿真50例任务14.3,直接操作。项目15LED动态显示动态显示的字段驱动和字位驱动应分别进行,可有多种形式。字段驱动与静态显示的驱动方式相同,有并行输出、串行输出和BCD码输出;字位驱动需另有I/O端口控制,端线数与显示字位数相同,或用译码器译码控制(可减少I/O端线数)。任务15.174LS139选通4位LED数码管动态显示门控端=1,禁止译码,输出全1;=0,译码有效,EECC4511功能已在任务14.3中介绍。74LS139为双2-4译码器,能将2位编码信号译为4种位码信号,A、B为编码信号输入端;0Y3Y~为译码信号输出端;有效端输出低电平,正好用于4位共阴型LED数码管片选。⒈显示电路⒉程序⒊Keil调试和Proteus虚拟仿真可打开本书配套的单片机项目式教程仿真50例任务15.1,直接操作。任务15.274LS595串行传送8位LED数码管动态显示74HC595为串行移位寄存器,与74HC164的区别是:595串入并出分二步操作,第一步移入595片内缓冲移位寄存器,第二步由595RCK端(#12)输入一个触发正脉冲,片内缓冲移位寄存器中的数据进入输出寄存器Q0~Q7。而164是直接串入输出寄存器,串入中间过程有可能在并行输出端产生误动作。图5-13为74LS595串行传送8位LED数码管动态显示电路。在80C51串行口TXD端发出的时钟脉冲控制下,显示位码和字段码数据从80C51串行口RXD端依次移出,进入595(I)DS端,再由595(I)QS端移出,进入595(II)DS端,直至16位显示数据(8位位码+8位字段码)全部移入2片595内部缓冲移位寄存器。然后由80C51P1.0输出一个正脉冲,触发2片595将内部缓冲移位寄存器中的数据送入输出寄存器Q0~Q7,在595OE=0条件下输出显示,整个动态显示仅占用3条I/O端线。⒈显示电路⒉程序⒊Keil调试和Proteus虚拟仿真可打开本书配套的单片机项目式教程仿真50例任务15.2,直接操作。C51编程基础知识准备5.3LCD1602液晶显示屏由液晶做成的显示器(LiquidCrystalDisplay,缩写为LCD)具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在单片机系统中得到广泛的应用。目前,常用的字符型LCD显示屏主要有1602,能显示ASCII码字符⒈引脚功能VSS:电源地端;VDD:电源正极。4.5-5.5V,通常接+5V;VL:LCD对比度调节端。RS:寄存器选择端。RS=1,读写数据寄存器;RS=0,读写指令寄存器;:读/写控制端。=1,读出数据;=0,写入数据;E:使能端。E=1,允许读写操作,下降沿触发;E=0,禁止读写操作;D0~D7:8位数据线,三态双向,也可采用4位数据传送方式;BLA:LCD背光源正极;BLK:LCD背光源负极。R/WR/WR/W⒊控制指令1602读写控制由寄存器选择端RS、读/写控制端和使能端E确定。R/W在RS=0、=0并E=1的条件下,写入1602的操作指令如表5-8所示。R/W⒈显示电路⒉程序要求显示屏第一行显示:0123456789ab@#$&共16个数符,第二行显示:ABCDEFGHIJKLMNOP共16个字母。项目16LCD1602液晶显示屏显示⒊Keil调试和Proteus虚拟仿真可打开本书配套的单片机项目式教程仿真50例项目16,直接操作。C51编程基础知识准备5.4按键开关接口键盘在单片机系统中是一个很重要的部件。输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。⒈按键开关去抖动问题键盘的抖动时间一般为5~10ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误,因此必须设法消除抖动的不良后果。⑴硬件去抖动:利用单稳、双稳电路和RC滤波电路去抖动。⑵软件去抖动:延时10ms后再确认该键是否确实按下。按键按与CPU的连接方式可以分为独立式按键和矩阵式键盘。⒉按键连接方式独立式按键是各按键相互独立,每个按键占用一根I/O端线,每根I/O端线上的按键工作状态不会影响其他I/O端线上按键的工作状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O端线,在按键数量较多时,I/O端线耗费较多,且电路结构显得繁杂。故这种形式适用于按键数量较少的场合。矩阵式键盘又称行列式键盘,I/O端线分为行线和列线,按键跨接在行线和列线上。按键按下时,行线与列线连通。4×4行列结构可连接16个按键,组成一个键盘。与独立式按键相比,16个按键只占用8根I/O端线,占用I/O端线较少,因此适用于按键较多的场合。无论独立式按键还是矩阵式键盘,与80C51I/O口的连接方式可以分为与I/O口直接连接和与扩展I/O口连接,与扩展I/O口连接又可分为与并行扩展I/O口连接和与串行扩展I/O口连接。项目174×4矩阵式键盘接口⒈接口电路⒉程序无键闭合时,P1.0~P1.3与相应的P1.4~P1.7之间开路;有键闭合时,与闭合键相连接的两条I/O端线之间短路。因此,可用下述方法判断有无键按下和确定按下键序号:⑴判有无键闭合。置列线P1.0~P1.3为输入态(高电平),行线P1.4~P1.7输出低电平。读入P1口数据,若与输出不符,则有键闭合。⑵延时10ms消抖。再读P1口数据,若仍与输出不符,则确认有键闭合。⑶逐行逐列扫描,找出闭合键所在行列。⑷计算闭合键编号。需要说明的是,图5-17电路在许多单片机教材和技术资料中被介绍,但实际上该电路连接存在问题,当同一行有多键同时按下,且该行其中一键所在列又有多键同时按下时,会发生信号传递路径出错。例如,K1、K2、K8、K9同时按下,当P1.4行扫描输出低电平时,按理,仅有P1.2、P1.1会因K2、K1闭合而得到低电平列信号。但由于K2与K9同列且K8与K9同行,P1.4输出的低电平信号会通过K1→K9→K8传递到P1.0,产生低电平列信号,引起出错。同理,当P1.6行扫描输出低电平时,其低电平信号会通过K9→K1→K2传递到P1.2,产生低电平列信号,引起出错。不出错的条件是多键行与多键列不交叉。因此,这种矩阵式键盘电路适用于无锁按键并使用中断处理时相对合理。⒊Keil调试和Proteus虚拟仿真可打开本书配套的单片机项目式教程仿真50例项目17,直接操作。项目14LED静态显示任务14.174LS377并行输出3位LED数码管静态显示任务14.274LS164串行输出3位LED数码管静态显示任务14.3CC4511BCD码驱动3位LED数码管静态显示练习题5.9带时间显示模拟交通灯练习题5.104094串行输出3位LED静态显示项目15LED动态显示任务15.174LS139选通4位LED数码管动态显示任务15.274LS595串行传送8位LED数码管动态显示练习题5.11PNP晶体管选通3位共阳LED数码管动态显示练习题5.1274HC139选通4位LED动态显示练习题5.1374HC138+377选通8位LED动态显示练习题

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功