Y=A
输入 A L H H为高电平 L为低电平
输出 Y H L
图2-1-3 74LS04引脚图
2.2 各单元电路设计与分析 2.2.1由74C922够成的键盘电路
图2-2-1 74C922构成的键盘电路
6
在键盘部分采用74C922来完成工作。键盘电路图如图2-2-1所示。74922芯片是专用编码键盘接口芯片,当按下某一按键时,该芯片能自动给出相应的编码信息,并可自动消除抖动,从而可免除关于削抖的软件编程,提高了CPU的利用率。因为按键扫描要对按键进行削抖处理,而削抖分为软件削抖和硬件削抖,一般情况下多采用软件削抖。
74C922为CMOS工艺技术制造,工作电压为3—15V,―二键锁定‖功能,编码输出为三态输出,可直接与微处理器数据线相连,内部振荡器完成4×4矩形键盘扫描,当有按键按下时,DA变高,通过非门接到AT89C51的外部中断0,并且设外部中断0为边沿触发方式,当DA变高时,经过非门变为低电平跳变产生外部中断,通知AT89C51从数据总线读键值,判断键值从而完成相应的散转程序功能。
[3]
[2]
根据图2-2-1及74C922芯片真值表2-1-2,按键S1—S10对应DCBA输出(0000—1001),上下翻查键S11,S12对应输出是(1010)和(1011)。同时ABCD输出连接到AT89C51的P2口的P2.0—P2.3。
2.2.2复位电路
图2-2-2 复位电路
单片机的复位都是靠外部电路来实现的。在时钟电路工作后,只要在单片机的复位(RST)脚上出现24个时钟振荡脉冲(也就是2个机器周期)以上的高电平,单片机便实现初始化状态复位。[4]
传统的复位方法有阻容上电复位和按键电平复位如图2-2-2。本设计采用按键手动复位电路。它们实际上利用RC充放电原理实现的复位电路,从外部给RST脚2个机器周期以上的高电平。
在实际应用系统中,为了保证复位电路可靠地工作,常常将RC电路接斯密特电路后再接入单片机的复位端和外围电路复位端。这样就特别适用于应用现场干扰大、电压波动大的工作环境,并且当系统有多个复位端时,也能够保证可靠的同步复位。
当AT89C51的RST引脚到高电平时,单片机就会复位。按下按纽S13,将高电平接到RST端,从而复位。复位后,单片机就从0000H地址开始执行程序。P0~P3四个并行接口全为高电平,其他寄存器全部清零,只有SBUF寄存器状态不确定。
2.2.3时钟电路
7
图2-2-3 时钟电路
时钟电路是计算机的心脏,它控制着计算机的工作节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。MCS-51的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。MCS-51单片机有HMOS型和CHMOS型,它们的时钟电路有一定区别。
内部时钟电路,利用AT89C51内部一个高增益的反向放大器,把一个晶振体和两个电容器组成的自激振荡电路接于XTAL1(19脚)和XTAL2(18脚)之间。这样,振荡器发出的脉冲直接送入内部时钟电路。如图2-2-3所示。图中晶振体可以是石英晶体或陶瓷结构,振荡频率可任选,一般频率在1.2~12MHz。对于石英晶体振荡器,电容C3,C4在30pF左右,对于陶瓷振荡器,C3,C4约47pF左右。
外部部时钟电路,MCS-51的内部工作时钟也可以由外部振荡器提供,这时,对HMOS型芯片,外部振荡器的信号接至XTAL2,即内部时钟发生器的输出端,而内部反相放大器的输人端XTAL1应接地.在CHMOS电路中,因内部时钟发生器的信号取自反相放大器的输入端(即与非门的一个输人端),故采用外部时钟源时,接线方式与HMOS型的有所不同:外部信号接至XTALI,XTAL2不用。外部时钟引入方式如图2-2-3(A,B,C)所示。对外部振荡器的信号没有特殊的要求,一般为0.5一12 MHz的方波,方波的波形应尽量规范即上升沿、下降沿尽可能垂直。
时钟发生器把振荡频率加以二分频,给主机提供了一个双相信号,第一相信号在每一个时钟周期的前半部分有效,第二相信号则在时钟周期的后一半有效。
[5]
图2-2-3(A)HMOS和CMMOS器件都适用的外部时钟连接图
图2-2-3(B)HMOS器件外部时钟连接图 图2-2-3(C)CHMOS器件外部时钟连接图
本次设计采用内部时钟电路,石英晶体(频率12M),电容C3,C4为30pF。AT89C51的机器周期为1us。
2.2.4显示模块
(1)显示方式的选择
8
7段数码管的显示方法可分为静态显示和动态显示,
所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地导通或截止。例如,7段显示器的a、b、c、d、e、f段导通,g、dp段截止,则显示0。这种显示方法的每一位都需要有一个8位输出口控制。对于51单片机,可以在并行口上扩展多片锁存器74LS573作为静态显示器接口。
所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂流效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。显示器亮度既与点亮是的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(数据口或字形口)。 与静态驱动显示相比,动态扫描显示具有以下优点:第一,能显著降低显示器的功耗,这对于采用电池供电的便携式数字仪表尤为重要;第二,能大大减少显示器的外部引线,给印制板的设计和安装带来方便;第三,能采用BCD码多路输出的方式,不仅使译码、驱动电路大为简化,还可以与微机相连等。
[6]
动态扫描的缺点是CPU工作效率比静态扫描低,同时显示亮度较静态显示器要低。
本次设计选择采用动态扫描。如图2-2-4芯片AT89C51的P1.0—P1.6作为数据口,P0.0—P0.3作为扫描片选口。
图2-2-4 LED显示电路
(2)数码管的驱动
本设计采用共阴型的四联数码管,关于数码管的驱动部分把P1口(P1.0 —P1.6)作为驱动接口,并外接上排阻511作为其上拉电阻增强其驱动能力。这样的驱动能力就可使数码管显示合适的亮度。
2.2.5控制投票有效部分
由一个发光二极管(DS1)和一个按键(S)构成控制投票有效部分,如图2-2-5所示。通过软件设置成发光二极管DS1灭时可允许投票,DS1亮时不可以投票。而按下按键S(允许投票键),让P3.3产生一个负跳变,开启外部中断1(外部中断选择边沿触发的方式),通过软件编程使发光二极管灭,一检测到有投票按键按下,使发光二极管亮。通过DS1和S的配合来控制投票有效的问题。
9
图2-2-5 控制投票有效部分电路
2.3总原理图和元器件清单 2.3.1总原理图
图2-3 总原理图
2.3.2元件清单 器件名称 单片机 晶振 键盘编码器 非门
器件型号 AC89C51 12M 74C922 74LS04 10
数量 1 1 1 1 备注