当前位置:文档之家› 基于单片机的秒表课程设计

基于单片机的秒表课程设计

摘要本设计的数字电子秒表系统采用AT89S52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。

将软、硬件有机地结合起来,使得系统能够实现LED显示,显示时间为0~99秒,计时精度为1秒,能正确地进行计时。

其中软件系统采用C语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。

关键词:电子秒表;AT89S52单片机;C语言目录摘要 (I)1 系统原理介绍 (1)1.1设计任务及功能要求说明 (1)1.2数字式秒表的方案介绍及工作原理说明 (1)2数字式秒表硬件系统的设计 (3)2.1数字式秒表硬件系统各模块功能简要介绍 (3)2.1.1 AT89S52简介 (3)2.1.2时钟电路 (3)2.1.3键盘电路 (4)2.1.4复位电路 (4)2.2 数字式秒表的硬件系统设计图 (5)3 数字式秒表软件系统的设计 (6)3.1 数字式秒表使用单片机资源情况 (6)3.2 主程序流程图 (6)3.3中断服务程序流程图 (7)3.4显示程序流程图 (8)3.5软件系统程序清单 (8)按照流程图应用软件keil汇编语言编程实现秒表功能。

程序见附录3。

. 8 4 系统调试与仿真 (9)4.1 数字式秒表的设计结论及使用说明 (9)4.2 调试软件介绍 (9)4.3 程序仿真与结果 (9)4.4 误差分析及解决方法 (10)总结 (11)参考文献 (12)致谢 (13)附录1:系统原理图 (14)附录2:程序清单 (15)1 系统原理介绍1.1设计任务及功能要求说明由单片机接收小键盘控制递增计时,由LED 显示模块计时时间,显示格式为 XX(分):XX(秒).XX,精确到0.01s的整数倍。

绘制系统硬件接线图,并进行系统仿真和实验。

画出程序流程图并编写程序实现系统功能。

使用单片机AT89S52作为主要控制芯片,以四位一体共阳极数码显示管通过三极管驱动作为显示部分,设计一个具有特定功能的数字式秒表。

该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。

该数字式秒表通过按键控制可实现开始计时、暂停计时、连续计时、清零和停止功能。

1.2数字式秒表的方案介绍及工作原理说明使用AT89S52单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;采用S8550作为数码管的驱动部分;用两个四位一体共阳极或共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的复位、计时、连续、清零、停止各项功能。

对于时钟,它有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。

LED数码显示器有如下两种连接方法:共阳极接法:把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。

共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。

每个发光二极管的阳极通过电阻与输入端相连。

键盘部分方案:键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P1口相连,在按键和P1口之间通过10K电阻与+5V电源相连。

键盘通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。

显示部分方案:显示部分采用动态显示。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

动态显示是利用人眼视觉暂留特性来实现显示的。

事实上,显示器上任何时刻只有一个数码管有显示。

由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。

为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。

本设计可采用P0口直接驱动八段数码管显示。

此方案成本低,而且单片机的I/O口占用较少,可以节约单片机接口资源,而且功耗更低。

此电路采用单片机的P0口作为数码显示管的段控,采用P2口作为数码管的位控。

8个独立式键盘分别接在单片机的P1口上,以及其他部分构成数字式秒表的硬件电路。

通过编写程序使用单片机的定时计数器,以及软件延时,中断资源来实现秒计时和相关控制。

此数字式秒表的硬件整体结构如图1-1所示。

图 1-1数字式秒表的硬件结构图2数字式秒表硬件系统的设计2.1数字式秒表硬件系统各模块功能简要介绍2.1.1 AT89S52简介(1) 与MCS-51产品相兼容;(2) 具有8KB可改写的Flash 内部程序存储器,可写/擦1000次;(5) 256字节内部RAM;(6) 32根可编程I/O口;(7) 3个16位定时器/计数器。

(8) 8个中断源;(9) 可编程中串行口;(10) 低功耗空闲和掉电方式。

它的价格便宜,功能强大,能耗低。

很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。

其芯片引脚图如图2-1所示。

图2-1 单片机AT89S52引脚图2.1.2时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。

在AT89S52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚TXAL2,在芯片的外部通过这两个引角跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。

此电路采用12MHz的石英晶体。

时钟电路如图2-2:图2-2 时钟电路2.1.3键盘电路本设计使用独立式键盘接在单片机的P1口上但通过软件赋予其中三个按键功能,其中S2是计时开始按键,第二功能为停止,S3为计时暂停按键,第二功能为继续计时按键,S4是清零按键。

注意使用时只有在暂停状态下才能继续计时,只有在停止状态下才能清零,在停止时不能继续计时,在暂停时不能清零。

键盘电路如图2-3:图2-3独立式键盘电路图2.1.4复位电路复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。

RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。

复位操作有上电自动复位和按键手动复位两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的。

按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。

在本设计中采用了按键电平复位方式,其复位电路如图2-4所示:图2-4 复位电路2.2 数字式秒表的硬件系统设计图此处电路原理图的绘制是使用protues软件完成,protues是基于Win95/Win NT/Win98/Win2000的纯32位电路设计制版系统。

protues提供了一个集成的设计环境,包括了原理图设计和PCB布线工具,集成的设计文档管理,支持通过网络进行工作组协同设计功能。

根据硬件接线要求设计绘制电路原理图具体电路图见附录1。

3 数字式秒表软件系统的设计3.1 数字式秒表使用单片机资源情况本次电子钟设计除了了使用单片机工作所必须的硬件资源(如连接晶振的引脚XTAL1和XTAL2,复位引脚RESET)外,对单片机的硬件资源还做了具体的安排。

(1).P0口:P0.0-P0.7作为数码管显示器的段控。

(2).P1口:P1.0-P1.3作为独立式键盘的输入端。

(3).P2口:P2.0-P2.7分别控制数码管LED0-LED7的位控码驱动。

(4).定时/计数器:使用定时器0工作方式2实现数字式计数器的运行。

(5).专用寄存器:定时器控制寄存器TCON,通过设置该寄存器TR0位的状态来控制定时/计数器0的启动/停止;中断允许寄存器IE,通过设置该寄存器EA/ET0位的状态来设置定时/计数器0中断允许/禁止;定时/计数器工作方式寄存器TMOD,设置定时/计数器0的工作方式。

3.2 主程序流程图图3-1 主程序流程图3.3中断服务程序流程图图3-2 中断服务程序流程图3.4显示程序流程图图3-3显示程序流程图3.5软件系统程序清单按照流程图应用软件keil汇编语言编程实现秒表功能。

程序见附录2。

4 系统调试与仿真4.1 数字式秒表的设计结论及使用说明通过设计和调试,数字式秒表能顺利完成各项功能。

上电或复位后显示“P.”提示符,此时按1键便可开始计时。

在计数状态下,按下2键即可实现暂停,再次按下2键即可实现继续计数,在计数状态下按下1键,实现计数停止,在停止状态下按下3键,便可实现计数清零。

计数状态下按下清零键,无效。

4.2 调试软件介绍本电子钟的设计用的pretues仿真软件设计电路并仿真。

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。

它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。

具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

②支持主流单片机系统的仿真。

目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

相关主题