基于AT89C51单片机的电子万年历设计 下载本文

黑龙江东方学院本科生毕业论文(设计)

方案二:阻容上电自动复位电路,这种电路线路也简单,它利用电容上电压不能突变而是按指数规律上升或下降的特性,产生所需的复位脉冲。优点:使用最为普遍且成本低廉的复位电路。如图3-3所示。

VssR11K+5VC122uF+MCS-51VccRST/VPD。

GND图 3-3 自动复位电路

总结:这两种方案对我的设计影响其实差别不大,根据我的电路所需要的就是选取最简单的电路即可,显然方案二元件和电路更加简单,所用原件更少,所花成本更少

9

黑龙江东方学院本科生毕业论文(设计)

3.4 时间调整电路

我采用了独立式按键设计,如图3-4所示,独立式按键直接与单片机I/O口相连构成键盘[4],每个按键不会相互影响,因本系统用到的按键比较少,采用独立式键盘不会浪费I/O口线,所以本系统采用独立式键盘。按键一端接地,一端接于P3.0、P3.1、P3.2口,并接10K的上拉电阻,按下开关时就会向单片机输入低电平,触发程序跳转。按下跳转键可以开始调时,多按几次就会在秒分时,日月年之间切换,按下+键可以调高数值,按下—键可以调低数值,做到了功能齐全且元件消耗最好。

图3-4 时间调整电路

3.5 时间显示电路

3.5.1 扫描方式

我选用LED数码管作为显示部分的主要元件,数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类[5]。

方案一:静态显示驱动

静态显示就是显示驱动电路,具有输出锁存功能。当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另一个字符为止。即单片机将所有要显示的数据送出

10

黑龙江东方学院本科生毕业论文(设计)

后就不再控制LED,直到下一次显示时再传送一次新的显示数据。静态显示的数据稳定,数码管的亮度较高,占用的CPU时间少,程序容易,管理简单,但占用的I/O线资源教多。静态显示中,每一个显示器都要占用单独的具有锁存功能的I/O接口,该接口用于笔划段字型代码。这样单片机只要把要显示的字形代码发送到接口电路,该字段就可以显示发送的字形。要显示新的数据时,单片机在发送新的字形码。动态扫描方法是用其接口电路把所有显示器的8个笔画段a-h同名端连在一起,而每一个显示器的公共极COM各自独立的受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM段,而这一段是由I/O控制的,由单片机决定何时显示哪一位了。优点:程序简单,亮度高。缺点:所占I/O口过多,不适合数目多的数码管设计课题。

方案二:动态显示驱动

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,d,p"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2mS,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

总结:我所要用到的数码管共有14位,更加适合用动态扫描。

11

黑龙江东方学院本科生毕业论文(设计)

3.5.2 LED数码管的选择

LED数码管分为共阴和共阳两种,以利用AT89C51灌电流比较大的特点作为数码管的位选,而段码则由上拉电阻驱动,用共阴数码管会使电路更加简单,共阴数码管管脚图与内部结构图如图2-5与图2-6所示:

图3-5 共阴数码管引脚 图3-6 共阴数码管内部结构

C语言中数码管十六进制数字型代码如表3-2所示。

表3-2 十六进制数字型代码 字型 0 1 2 3 4 5 6 7 8 共阳极代码 C0H F9H A4H B0H 99H 92H 82H F8H 80H 共阴极代码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 字型 9 A b C d E F 共阳极代码 90H 88H 83H C6H A1H 86H 8EH 共阴极代码 6FH 77H 7CH 39H 5EH 79H 71H

12