当前位置:首页 > 基于AT89S51电子时钟毕业设计 - 图文
8
图4 定时器/计数器T0工作方式1的逻辑结构
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式;另一种为外部时钟方式。本文用的是内部时钟方式。电路设计如图5所示。
图5 单片机时钟
AT89S51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相
9
放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。在本系统时钟模块的设计中所选用的6 MHz的石英振荡器,由于6 MHz晶体振荡的每个定时周期为2 μs,可得到2μs的精度,为让设计准确本设计中使用1次定时20 ms,经过50次T0定时中断得到1 s,由此设置就可以使单片机在运行时能够有条不紊。
3.4 数码管动态扫描
单片机应用系统中使用较多的是7段LED数码管,本系统所用的AT89S51板中的数码管是4位七段共阳极数码管,其结构和引脚如图6所示。
图6 4位七段共阴极数码管引脚连接图
3.4.1 LED数码管的驱动方式:
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
(1)静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一
10
个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
(2)动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。本数字钟系统将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到地线+5V上,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。
(1)共阴极数码管 (2)共阳极数码管
图7 共阴极和共阳极数码管LED连接图
图8 8位七段数码管字型代码
11
3.4.2 LED数码管的显示控制
在本设计中采用的是4位数码管动态扫描显示。它将所有数码管的8个段线相应地并接在一起,并接到AT89S51的P0口,有P0口控制字段输出,而各位数码管的共阳极由AT89S51的P2口控制Q4-Q7来实现8位数码管的位输出控制。
这样,对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出地字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出地控制信号,用来选择第几位数码管工作,称为位码。
由于各位数码管的段线并联,段码的输出对各位数码管来说是相同的。因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,4位数码管将显示相同的字符,若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其他各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其他各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。
虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。
数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。
数码管是由7个条形的LED和下方一个圆形的LED组成,这样一共有8个段线,恰好适用于8位的并行系统。数码管有共阴极和共阳极两种,共阴极数码管的公共阴极接地,当各段阳极上的电平为“1”时,该段点亮,电平为“0”时,该段熄灭;共阳极数码管则正好与此相反,共阳极数码管的公共阳极接+5V,当各段阴极上的电平为“0”时,该段点亮,电平为“1”时,该段熄灭。
图9 共阳极4位七段数码管公共端连接图
共分享92篇相关文档