初始状态下数码管上显示的是6个0,当我们把开始按键按下接通时,CPU内会接收到中断请求,于是CPU就会去执行外部中断1服务程序,定时器T0开启。定时器T0中断则用来计时,将1毫秒设置为定时溢出中断的一个周期,每当中断后出现溢出中断一次中断请求就将毫秒计数单元加一,次数到十就对10毫秒位加一,依次类推,到999。999秒后重新复位。在计时的时候,当接通暂停按键时,INT0就会发出中断请求,接到请求后,中央处理器就去执行外部中断0,此时定时器T0会强制暂停、显示程序会被CPU调出来运行,这样就完成了暂停的功能,寄存区内也会储存入本次计时数据,然后扫描连接P1。1的端口,当开始按键接通时就返回到主程序。等待程序再一次运行。

在暂停键按下接通时,系统会把记录一下此时的计时时间,然后把这次时间储存到中间缓存区,当开始键被按下时,系统会把中间缓存区的数据记录一下,然后再将其全部转入最终缓存区。秒表停止工作后,扫描P2。6端口,若查看键的端口是低电位,则选择最终缓存区的计时时间来显示,即显示上次的计时数据。当查看键的端口是高电平时,则显示的是这次的计时数据,即选用显示缓存区的时间数据进行显示。这样就可以完成秒表本次计时和查看上次计时的功能。

1。 硬件电路设计

1。1总体方案的设计

数字电子式秒表查看时比较容易而且清晰,读记起来方便而且快捷,它的精确度也比较高,在全部的计时方式中用到的最多。本设计由硬件设计方案和软件设计方案组成。其中硬件包括CPU、计时电路、数码管显示电路等电路组成。AT89C52单片机是本设计的主控制器,显示计时时间的显示电路的LED数码管是共阴极的。该秒表的设计是基于AT89C52单片机的数字式秒表,利用微控制器中的定时器/计时器定时和记数的原理,为达到足够高的精确度,开始、暂停的功能要由中断程序完成。输出计时段码数据的端口设置成单片机P0端口,列扫描数据的输出端口选用P2。0-P2。5,再选择P1。1接开始按钮,P3。2接暂停按钮,P3。3接清零按钮,P2。6接查看按钮开关。数字式秒表的硬件电路图如下:

该秒表的主要作用有2个,一个是计时,一个是显示计时数据,由功能知要设置开始、停止、复位和查看四个键及六位数码管来控制和显示时间。该设计中,内存单元79H—7EH中存放的是数码管显示的数据,其中79H存放的为毫秒位的数据,7AH存放的是十毫秒位的数据,7BH储存百毫秒位的数据,7CH存入的是秒位的数据,7DH为十秒位的数据,7EH是百秒位的数据,任一地址单元内都是十进制的BCD码,由于实现数据显示的功能采用的是软件动态扫描方式,故要把BCD码的对应段码储存在ROM表中。显示计时数据时,先将79H-7EH地址中的某一数据拿出来,并在P0口输出其对应的显示段码,P2口把相对的数码管选中供电,就可以把该地址单元的数据值进行显示。把59H-5EH设置为最终数据缓存区,其存放数据的规则与79H-7EH是一致的,与其不同的是其存储的数据是上一次的计时时间,而79H-7EH则是该次计时时间。计时运用定时器T0中断服务程序执行,将1毫秒设置为定时溢出中断的一个周期,每当中断后出现溢出中断一次中断请求就将毫秒计数单元加一,次数到十就对10毫秒位加一,依次类推,到999。999秒后重新复位。对于按键方式的选择,因为开始和暂停键是用来对时间进行锁定,要求控制的准确度较高,故应采用外部中断的方式,复位和查看键要求没这么严格,可采用扫描的方式。

1。2 单片机的选择

上一篇:Arduino的电子温度计设计+电路图+程序
下一篇:低功耗高频变压器设计MATLAB仿真

STC89C52单片机的温度控制系统设计+电路图

STM32单片机数字回转库控制系统设计+PCB电路图

AT89C51单片机电力电缆温度...

STM32单片机的电力系统数字频率计设计+流程图

STC90C51RD+单片机的纺织机械...

单片机的纺织机械电机保护系统设计任务书

STC89C52单片机超声波和红外...

麦秸秆还田和沼液灌溉对...

老年2型糖尿病患者运动疗...

新課改下小學语文洧效阅...

网络语言“XX体”研究

LiMn1-xFexPO4正极材料合成及充放电性能研究

ASP.net+sqlserver企业设备管理系统设计与开发

张洁小说《无字》中的女性意识

互联网教育”变革路径研究进展【7972字】

安康汉江网讯

我国风险投资的发展现状问题及对策分析