基于51单片机倒计时器毕业设计
口,不过要通过不同的锁存器与不同的器件相连接,通过程序实现各种功能。
图3.2 中央处理器(SST89E516RD)引脚图
本次设计通过中央处理模块(SST89E516RD)对各个接口进行赋初值,并确定定时器、工作方式、中断等等,以下是详细介绍:
①本电路应用定时器0方式1工作方式,该方式是一个16 位计数器的计时中断法。所以工作方式寄存器TMOD的M1M0两位为01。
②设置定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。比如,12M的晶振每秒可产生1M的机器周期[1],50ms就是50000个机器周期,定时器0工作方式1工作,计数长度为216=65536个外部脉冲,65536-50000周期=初值15536,从15536开始计数,总共累加50000次计数器产生一次溢出,所以定时器的高八位和低八位TH0和TL0的值为:
TH0 = (65536-TIME)/256;
TL0 = (65536-TIME)%6;其中TIME=50000;
其中TL0是低八位当达到256的时候,向高八位进1,然后低八位重新计数,所以高八位对差值求整,低八位对差值求余。
③由于采用的是定时器0所以TMOD的高四位为0000;选通控制只要用软件使TR0就启动了定时器,所以门控位GATE为0;C/T?0表示设置为定时方式。所以工作方式TMOD=0000 0001H=0X01H。
12
基于51单片机倒计时器毕业设计
3.2.2 单片机的复位电路设计
复位电路产生复位信号,复位信号送入 RST 后还要送至片内的施密特触发器,由片内复位电路在每个机器周器的S5P2 时刻对触发器输出采样信号,然后由内部复位电路产生复位操作所要的信号[11]。
一般的复位电路可分为上电自动复位和按键复位,在本次设计中选用的是按键复位。 单片机的第九脚RES为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如上图3-2所示。
图中由按键RESET以及电解电容C3构成了复位电路。由于单片机是高电平复位,所以当按下RESET时,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。当上电后,由于电容缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上复位完毕,系统程序从0000H开始执行。值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值。
3.3锁存器
锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。只有在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号。通常只有0和1两个值。
在本次设计中,芯片SST89E516RD通过锁存器DM74LS573N(当锁存端LE与P1.0相接时)与LED数码管的段相接时,对数码管的段进行控制(当SEG7~SEG0=0111 1001时,如果选择第一位数码管亮的话,应该显示数字E)。当段选锁存器使能端LE=1(高电平)时,打开锁存器,此时SEG0~SEG7的值分别等于D0~D7(即P0.0~P0.7)的值,然后将使能端LE置为低电平,此时便将SEG0~SEG7的值锁定为刚才的值,不再随着D0~D7值的变而改变。
同理,芯片SST89E516RD通过锁存器DM74LS573N(当锁存端LE与P1.1相接时)与LED数码管的位相接时,控制数码管的位进行控制(当DIG7~DIG0=0111 1101时,此时则表示选择第二位数码管显示数据),确定是哪一位数码管显示数据。
其中当锁存器使能端LE与P1.1相连时的原理图见图3.3,当LE与P1.0相连的时候原理图基本一致。
13
基于51单片机倒计时器毕业设计
图3.3 DM74LS573N使能端LE与P1.1相连时的原理图
而锁存器SN74LS244N所完成的功能是配合完成键盘扫描原理。如图3-4所示,锁存器的OE是锁存器的使能端,本设计是将P1.3与OE相连。当OE?0时,表示打开该锁存器,此时锁存器的输入值等于输出值(即A1~A4的值等于D0~D3的值);当OE?1时,表示关闭该锁存器,此时锁存器的输出端的值不再随输入端值的改变而改变,完成一次操作。
图3.4 SN74LS244N使能端OE与P1.3相连时的原理图
14
基于51单片机倒计时器毕业设计
3.4 矩阵键盘
矩阵键盘又称为行列键盘,它是用四条I/O线作为行线,四条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4?4?16个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率,从而节约系统资源[12]。
图3.5 实验板键盘布局
实验板的键盘布局如图3.5所示,本次倒计时系统的设计一共用到了0~9号、C号、F号共12个按键。其中:
0~9号键——其中0~8号键分别代表数字1~9,9号键代表数字0,这10个键用来设置初值,键盘代号为K0~K9。
C号键——等待初值设置键,即无论在任何倒计时的过程中,若按下改建,则数码显示器四位清0,等待设置初值,键盘代号为KC。
F号键——开始键,即当初值设置后,按下该键,则开始减1倒计时,键盘代号为KF。 本设计实验板的4*4矩阵键盘的内部电路如图3.6示,矩阵键盘的行线直接与DIG0~DIG3口相连接,列线A1~A4是通过锁存器SN74LS244N的输出口Y1~Y4与芯片SST89E516RD的P0.0~P0.3(即D0~D3)口相连,通过锁存器的控制实现矩阵键盘扫描原理。
15
基于51单片机倒计时器毕业设计
图3.6 本设计的矩阵键盘图
当无按键闭合时,A1~A4与DIG0~DIG3之间开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。判断有无按键按下的方法是:
①扫描第一行:置行线DIG3~DIG0输入为1110,观察列线输出数据A4~A1的值,如果输出的A4~A1为1110,则表示K0键被按下,如果值为1101,则表示K1键被按下??,这样即确定了第一行是否有键按下。
②用扫描第一行的的方法进行逐行扫描,确定16个按键哪些键被按下,每次扫描出现按下的键的时候,返回扫描值,完成相应的操作和显示。
③虽然综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。
3.5 LED数码显示模块
单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。
3.5.1 LED 数码显示器的结构
LED 数码显示器是一种有 LED 发光二极管组合显示字符的显示器件。它使用了 8 个 LED 发光二极管,其中 7 个用于显示字符,剩下的一个用于显示小数点,故通常称之为 7 段发光二极管数码器。在数码管中,若将二极管的阳极连在一起,称为共阳极数码管;若将二极管的阴极连在一起,称为共阴极数码管。如图3.7所示。
16