基于AT89C51单片机的数字秒表设计

时间:2022-07-02 12:43:31

基于AT89C51单片机的数字秒表设计

摘要:文中设计了一种以AT89C51单片机为核心的数字秒表。该秒表采用汇编语言为开发工具,通过数码管显示计时结果,并利用Proteus和Keil软件为平台对系统进行了仿真,达到了预期的效果。

关键词:单片机;数字秒表;汇编语言;仿真

中图分类号:TP368.1文献标识码:A文章编号:1009-3044(2012)22-5344-03

Digital Stopwatch Based on AT89C51

GAO Wen-qing, LV Ying-ying

(Faculty of Information Engineering and Automation, Kunming University of Science and Technology, Kunming 650051, China)

Abstract: The article designed a digital stopwatch based on AT89C51.The digital stopwatch used the Assembly language to develop, nixie tube was used to show, and the system was simulated by Proteus and Keil, which was up to the expectation effect.

Key words: singlechip; digital stopwatch; assembly language; simulate

1概述

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器或计时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统。单片机与编程语言的结合可以快速高效的实现各种功能,该文结合单片机设计实现了一种基于AT89C51单片机的数字秒表。

2系统概述

2.1设计任务

数字秒表设计由单片机AT89C51、数码管、开关、电阻、电容等部分组成。其功能要求是用AT89C51设计一个2位LED数码显示的“秒表”,显示时间为00-99秒,每秒自动加一。另外还设计了一个“开始”按键、一个“复位”按键和一个“暂停”按键。按“开始”按键,开始计数,数码管显示从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当时的计数。

2.2总体方案

图1系统整体设计

系统主要有三部分构成:按键控制信号,单片机软件处理,数码管显示。电路运行时,由开关按键决定其运行方式,经过单片机内部的程序进行相应的处理,在数码管上显示出来。利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间值(可正记时,也可倒计时),并通过输出显示在数码管上。此外,数码管各段连接了上拉电阻,是为了保证引脚外接的按键在未按下时,作为电流负载一直保持引脚为低电平。系统整体设计如图1所示。

3数字秒表的proteus软件仿真电路设计

3.1整体仿真电路

Proteus软件仿真设计如图2所示。

图2系统Proteus软件仿真图

3.2 AT89C5l单片机和数码管显示电路的接口设计

使用动态显示电路接法,LED灯采用共阳极数码管,电路中采用P0口输出,并联控制两个数码管的8个段选控制端,P2.6、P2.7作为分别采用两个控制LED数码管的位选控制端,其中P2.6接显示个位数,P2.7接十位数,P0.0—P0.7对应了两位数码管的a,b,c,d,e, f,g。

3.3按键控制信号

三个按键采用独立式键盘接法,开始按键接P3.5,暂停按键接P3.6,清零按键接P3.7,低电平有效,三个按键功能均在子程序中显示。定时器0中断程序主要是延时程序。

3.4其他管脚的设计

单片机中的Vss端接地,Vcc端接+5V电源,另外,三极管发射极端也接+5V电源,保证数码管有足够的电源供应。

图3程序设计流程图

4计时器的软件程序设计

软件设计的思路为:在这个复杂的程序中,先根据设计的总体要求划分出各功能程序模块,分别确定主程序、子程序以及中断服务程序结构,并对各程序模块占用的资源进行统一的调配,最后根据流程图绘制具体的程序。因此在这个秒表程序中可划分为主程序、键盘控制、秒表计时程序三大模块。其中主程序完成初始化作用,动态显示程序,键盘控制程序,秒表计时程序等,延时程序由定时器中断服务子程序构成。

主程序:即初始化程序,用EQU命令首先对三个按键进行了定义,规定了堆栈指针和数据指针的首地址,对定时器进行设定,选用定时器0为工作方式1,50ms为定时时间,则要定时1s可以循环20次,设置中断程序的入口,并开中断EA,ET0等。

子程序:包括按键功能子程序和显示子程序。按键子程序对三个按键功能进行设定,其中P3.5口起到开始的功能,P3.6口连接的按键可以控制数码管的进度,P3.7对数码管数字进行复位,使数码管清零。三个按键均为低电平有效,JB命令先判断按键是否按下,若按下则跳转到显示子程序,JNB命令判断按键按下后是否弹起,若弹起来就执行开始、暂停、清零等功能。显示子程序:定义了P2.6、P2.7两个位选口,在单片机输出时,先选择字位选口,然后在所在的位口上进行字形选择,选择要点亮的字形。

中断程序:中断程序即定时器延时程序,当中断来临时,定时器重新装入初值,判断是否循环了20次,若循环20次说明定时器延时到达1s,就进行加一运算。程序设计流程图如图3所示。

重要程序段说明:

将0到99的数据通过对10整除和对10求余,将数据的个位和十位分开。

MOV A,R4

MOV B,#10

DIV AB;当前值除以10

MOV 40H,A;得出的商送给十位

MOV 41H,B;得出的余数送给个位

这段程序是将要显示的数字分别放到两个数码管上,使两个数码管分别显示十位和个位数字。

5结论

该文使用AT89C51单片机设计了一款具有计时开始、暂停、复位功能的数字秒表,利用Proteus和Keil软件进行了仿真及调试,达到了期望的效果。系统结构简单,抗干扰能力强,具有较好的应用前景。

参考文献:

[1]李朝青.单片机原理及接口技术[M].北京:北京航天航空大学出版社,2005.

[2]王爽.汇编语言[M].北京:清华大学出版社,2008.

[3]蒋辉平,周国雄.基于Proteus的单片机系统设计与仿真实例[M].北京:机械工业出版社,2009.

[4]孙凌燕,黄允千.Proteus与Keil软件的整合在单片机实验开发中的应用[J].实验室研究与探索,2008,27(4):59-68.

上一篇:优化设计方法在光纤光缆课程教学中的应用 下一篇:球根花卉在园林绿化中的使用与前景