基于单片机的00秒-99秒的秒表设计 下载本文

图4 共阳极LED数码管的内部结构原理图

共阴极LED数码管的内部结构原理图:

图5 共阴极LED数码管的内部结构原理图

表1.1 显示数字对应的二进制电平信号

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

A、静态显示驱动:

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口进行驱动,或者使用如BCD码二-十进位转换器进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口多,如驱动5个数码管静态显示则需要5×8=40根I/O口来驱动,要知道一个89S51单片机可用的I/O口才32个呢。故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。

B、动态显示驱动:

数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那

个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只

要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不

会亮。

4.3设计思路(方案)

该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和

AT89C51的管脚功能类似)中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能;将P3.0做为数据信号DATA输入的入口地址;将P3.1做为时钟信号CLK输入的入口地址。定时器T0作为每秒加一的定时器;定时器T1作为“快加”键的定时器。其中“开始”按键当开

关由1拨向0(由上向下拨)时开始计时;“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。

4.4系统总体方案及硬件设计(方案论证、设计、调试及仪器说明) 4.4.1系统总体方案

本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时计数的

原理,结合硬件电路如电源电路,晶振电路,复位电路和显示电路,以及一些按键电路等来设计计数器,将软硬件有机结合起来,其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,硬件系统利用Protues强大的功能来实现,简单易于观察,在仿真中就可以观察到实际的工作状态。

4.4.2硬件电路设计 1)晶振电路

MCS-51单片机内部的晶振电路是一个高增益反相放大器,引用XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。

这里,我们选用51单片机12MHZ的内部振荡方式,电路如下:电容器C1、C2起稳定振荡频率,快速起振的作用,C1和C2可以在20-100PF之间取值,这里取

20PF,接线时要使晶体振荡器X1尽可能接近单片机。