按键与显示电路的设计与实现4.1学习目标通过本次学习情境要求学会:(1)掌握单片机外围显示和按键电路的设计和制作;(2)掌握按键和显示电路的C51程序的编写和调试。4.2工作任务4.2.1任务名称在独立电路板上设计制作单片机的按键和显示电路,满足:(1)在万用板上制作单片机的按键和显示电路,使该电路具有和单片机最小系统的接口,电路的结构简单,成本低廉;(2)编写基本控制程序,下载调试,使该电路实现基本的按键输入和字符显示功能。4.2.2任务背景按键和显示是各种电子设备最基本的人机交互界面,良好的按键和显示界面是电子产品美观易用的基础。本次工作任务是为一小型温度测控系统设计制作按键和显示电路。4.2.3任务要求(1)学习单片机按键和显示电路的原理和电路设计方法,合理选择按键和显示电路的控制芯片和电路结构;(2)完成全电路理论设计、绘制电路图,自制电路板、焊接调试;(3)撰写设计报告、调试总结报告及使用说明书。4.2.4.工作任务所需要的设备、工具和材料:具有232串行口的计算机、单片机最小系统板、双踪示波器、万用表(模拟或数字)、电烙铁、导线,自制电路板的各种工具一套及元器件若干。4.3任务知识点4.3.1七段LED显示器LED显示器是由发光二极管按照一定的排列规律组成的显示器件,这种显示器有共阳极和共阴极两种组成形式,常用的七段LED显示器的内部结构和外引脚排列见图4-1。在共阴极七段LED结构中,所有发光二极管的阴极接在一起形成公共极COM,使用时COM接低电平,当某段发光二极管的阳极接高电平时,则该段二极管发光显示字符。共阳极七段LED是把所有的发光二极管的阳极接在一起形成公共端COM,使用时COM端接高电平,当某段发光二极管的阴极接低电平时,则该段二极管发光进行显示。表4-1给出了七段LED的显示字型码。表中的字型码未包扩小数点位Dp,段线的排列格式按g,f,e,d,c,b,a即g段为显示段码的最高位,a段为显示段码的最低位,当然段线也可按照其他方式进行排列。从表中可看出共阴极结构与共阳极结构的显示段码互为反码。a)共阴极结构b)共阳极结构c)外引脚图图4-1LED结构及引脚排列图表4-1七段LED字型码显示字符共阴极字型码共阳极字型码显示字符共阴极字型码共阳极字型码03FHC0HA77H88H106HF9Hb7CH83H25BHA4HC39HC6H34FHB0Hd5EHA1H466H99HE79H86H56DH92HF71H8EH67DH82HP73H8CH707HF8H—40HBFH87FH80H全灭00HFFH96FH90H问题:单片机控制电路中,应如何选择LED显示器的结构?4.3.2LED显示器的显示方式在实际应用系统中,N片七段LED构成N位七段码显示器。LED的公共端COM叫做显示器的位选线,a~g称为段选线,这样N位LED显示器有N根位选线,N8根段选线(包括小数点位)。位选线控制LED的每一位是否显示,段选线控制每一位的显示字符。根据位选线与段选线的接法,LED有两种显示方式:静态显示方式和动态显示方式。(1)静态显示方式在静态显示方式,所有的位选线COM连接到一起接低电平(共阴极)或接高电平(共阳极),每一位LED的段选线连接到一个8位显示输出口上,这样N位显示器共需要8N根显示输出线,显示时位与位之间是相互独立的,彼此不产生影响。图4-2为静态N位LED显示器原理图。图4-2N位LED静态显示原理图由于位选线接在一起,因此控制每一显示位的段选码即可控制每一位的显示字符,保持段选码不变,则显示的字符也不变,当需要改变显示内容时只需改变显示位的段码。这种显示方式具有显示亮度高,显示稳定,控制方便等优点,但当显示的位数较多时,占用的I/O口线较多。(2)动态显示方式图4-3为N位动态显示硬件连接图。图4-3N位动态LED显示原理图与静态显示方式不同,动态显示方式是把段选线的对应位连接到一起,接到一个8位输出I/O口线上,每一位的位选线接到一根独立的I/O口线上,这样N位显示器共需要8+N根I/O口线(8根段选线,N根位选线)。显示时段选码由同一8位I/O口输出,具体哪一位显示由位选码决定。由于段选码并联接在一起,因此同一时刻只能有一位LED显示字符,其他位不显示,即只能有一位位选线有效。为了能显示N位字符,必需N位LED数码管等间隔时间轮流发光显示,只要显示间隔时间比较短,利用人眼视觉暂留的特点可造成N位同时显示的效果。动态显示与静态显示相比有需要I/O口线少、功耗小等优点,但控制程序较复杂,显示亮度低。问题:根据显示电路的要求,应如何选用数码管的显示控制方式?4.3.3LED显示器与单片机接口LED显示电路与单片机的接口分静态显示接口电路和动态显示接口电路两类,每一类中又可分为软件译码和硬件译码两种控制方式。由于静态显示电路和静态显示控制程序比较简单,因此静态显示电路在此不作介绍。软件译码方法是指将要显示的字符通过程序的方法译成七段LED显示字型码,通过I/O口直接输出LED的段选码;硬件译码是指将要显示的字符直接输出给硬件译码电路,通过硬件译码电路再把BCD码或十六进制码转换成七段LED显示字型码。(1)软件译码显示接口图4-4为通过8255A并行可编程扩展接口构成的8位LED显示电路。其中8255A的PA口用于段选码的输出,PB口用于位选码的输出,采用软件译码动态显示方式。图4-4软件译码动态显示电路在该硬件电路中,反相器为位驱动器,LED的段限流电阻未画出。按图所示电路进行连接时所用8255A的各端口地址为:PA口地址:7FFCHPB口地址:7FFDH控制口地址:7FFFHPA、PB口均设定为输出工作方式,其控制字为10000000B。控制程序如下:DISP:MOVDPTR,#7FFFH;选择8255A的控制口MOVA,#80H;PA、PB口控制字为80HMOVX@DPTR,A;8255A初始化MOVR0,#TAB1;指向显示字符表MOVR7,#08H;显示位数送R7MOVB,#01H;显示初始位位选线COM1有效LOOP:MOVDPTR,#7FFDH;指向B口MOVA,BMOVX@DPTR,A;输出位选线RLAMOVB,AMOVA,@R0;取显示字符INCR0;指向下一个显示字符MOVDPTR,#TAB2;指向七段LED显示字型表MOVCA,@A+DPTR;取显示七段字型码MOVDPTR,#7FFCH;指向A口MOVX@DPTR,A;输出段显码LCALLDELAY;调延时子程序DJNZR7,LOOP;8位未显示完继续···上述程序为一次显示8位字符程序,若要不断显示可重复上述程序。(2)硬件译码电路硬件译码是采用硬件译码电路的方法完成显示字符到显示七段码的转换。硬件集成译码电路类型较多,有BCD-7段译码器、BCD-7段译码驱动器、BCD-7段锁存译码驱动器、十六进制-7段锁存译码驱动器等。表4-2给出了常用的硬件译码集成电路及其性能。表4-2常用的硬件译码集成电路元件名称功能驱动能力备注74LS46、47BCD-七段译码/输出驱动器段驱动8mA输出开路74LS48BCD-七段译码/输出驱动器段驱动8mA输出需上拉电阻74LS49BCD-七段译码/输出驱动器段驱动8mAOC输出4511BCD-七段译码/输出驱动器段驱动8mACMOS器件,输出锁存MC14558BCD-七段译码无驱动能力MC14547BCD-七段译码/输出驱动器段驱动8mAMC14513BCD-七段译码/输出驱动器段驱动12mA输出锁存ICM7212BCD-七段译码/输出驱动器段驱动8mA可静态驱动四位共阳极LEDICM72188位动态BCD-七段译码器段驱动20mA位驱动170mA可动态驱动8位共阳极LED动态扫描频率250HZ硬件译码驱动器与单片机及显示器的接口见图4-5。在该图中硬件译码驱动电路采用BCD-七段码/输出锁存/驱动集成芯片MC14513,位选驱动采用同向驱动器7407。BCD码与位选信号输出均通过P1口。图4-5硬件译码驱动器与单片机及显示器的接口问题:(1)LED显示器与单片机接口,应选用哪种译码方式?为什么?4.3.4LED的驱动电路LED是电流控制显示器件,若想使LED发光则必需保证有足够大的电流流过LED的各段。流过LED的电流大时,LED发光亮度高;流过LED的电流小时,LED发光亮度就低,为了LED能够长期可靠地工作应使流过LED的电流为其额定电流。为LED显示器提供电流的电路称为LED的驱动电路。由于显示分为静态显示和动态显示两种,因此驱动电路也分为静态驱动电路和动态驱动电路两种。静态显示由于位选线接在一起,因此静态显示只有段码驱动电路,驱动电路比较简单。图4-6为共阴极静态显示一段驱动电路原理图。由于动态显示器驱动电路的位选线不再接在一起,且流过LED各段的电流也为非恒定的直流电流,因此动态显示器LED的驱动电路与静态显示器的驱动电路有很大的不同。动态显示电路的驱动电路分为段驱动电路和位驱动电路两种。段驱动电路与静态显示器的段驱动电路相同,考虑到所有的段电流均流过位选线,因此位驱动电路的驱动能力应为段驱动能力的8倍(最严重情况8段全亮)。图4-7为动态显示时的驱动电路原理图,其中驱动采用了达林顿复合驱动电路。驱动电路可采用分立元件电路,也可采用集成驱动电路,此外有些硬件译码电路本身包括驱动电路。在实际应用系统中可根据实际情况选择显示驱动电路的类型。图4-6静态显示驱动电路图4-7动态驱动电路问题:在LED显示电路设计中,段码驱动和位码驱动应选用何种驱动方式?有什么差别?工作任务:如何用74HC373芯片设计一种廉价的基于总线的LED显示电路?4.3.5键盘抖动及其消除方法键盘是单片机应用系统中不可缺少的输入设备。通过键盘可向单片机应用系统输入数据和控制命令,键盘是操作人员控制干预单片机应用系统的主要手段。根据键盘组成形式可分为独立式键盘、矩阵式键盘及拨码式键盘几种。键盘可工作于循环扫描方式、定时扫描方式或中断方式。键盘一般是由一组机械按键按照一定的规律组合而成,通过按键的通、断作用输入开关电压信号。按键由断开到闭合及由闭合到断开时,由于机械触点的弹性作用,按键的动作不是立刻完成的,在闭合及打开的瞬间有机械抖动的发生,抖动时间一般为5~10ms,表现在输入电压信号上为输入信号是抖动的不稳定的电平信号,其信号波形见图4-8。键被按下闭合稳态按下抖动释放抖动图4-8按键抖动波形按键闭合稳态时间由操作人员的按键时间决定,一般为零点几秒到几秒之间。为了躲开键抖动的影响,保证在按键闭合稳定状态下读取键值,需要对键盘进行削抖处理。常用的削抖措施有硬件削抖和软件削抖两种。硬件削抖是采用硬件电路的方法对键盘的按下抖动及释放抖动进行削抖,经过削抖电路后使按键的电平信号只有两种稳定的状态。常用的削抖电路有触发器削抖电路、滤波削抖电路两种。硬件削抖电路见图4-9。图4-9硬件削抖电路硬件削抖电路解决了键抖动问题,但当应用系统所需按键比较多时,硬件削抖电路将变得复杂,成本也比较高,因此硬件削抖一般只适用于按键比较少的应用系统中。当系统中需要键盘数量比较多时可采用软件削抖方法对键盘抖动进行消除。软件削抖的基本原理是当第一次检测到有键按下时,根据键抖动时间的统计规律先采用软件延时的方法延时一段时间(一般可取10ms),然后再确认键是否仍保持闭合状态,如仍保持闭合状态则键真正被按下,此时可读取键值,否则可视为干扰,对其不予理睬。采用软件削抖方法可省去硬件削抖电路,但键盘的工作速度将被降低。4.3.6独立式键盘图4-10是通过8031单片机P1口组成的具有8个按键的独立式键盘。从图中可看出,独立式键盘的各个按键之间彼此是相互独立的,每一个按键连接一根I/O口线。独立式键盘电路简单,软件设计也比较方便,但由于每一个按键均需要一根I/O口线,当键盘按键数量比较多时,需要的I/O口线也较多,因此独立式键盘只适合于按键较少的应用场合。独立式键盘可工作在查询方式下,通过P1口读入键状态,当有键被按下时相应的I/O口线