精品

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

1.引言

在科技高度发展的今天,集成电路和计算机应用得到了高速发展。尤其是计算机应用的发展,它在人们日常生活中已经崭露头角。大多数电子产品多是由计算机电路组成,如:手机、MP3等。而且将来的不久它们的身影将会更频繁的出现在我们身边,各种家用电器多会实现微电脑技术。电脑各部分在工作时多是以时间为基准的。本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出来的数字秒表,秒表在很多领域充当一个很重要的角色。在各种比赛中对秒表的精确度要求更高,尤其是一些科学实验,它们对时间精确度达到了几纳秒的要求。

本设计是设计一个单片机控制的数字电子秒表本秒表采用8051为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为00~99秒,每秒自动加1,能正确地进行计时,且具有快加功能。其软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,快加程序,外部中断服务程序,延时程序等,并在keil下调试通过,硬件电路通过proteus模拟连接,并与软件相结合,调试修改,使达到预期的目的。

2.设计方案及原理

2.1该数字秒表所要实现的功能。

设计一个秒表,按“开始”按键,开始计数,数码管显示从00每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当前的计数;按“快加”按键,系统每10ms快速加一,即数码管显示在原先的计数上快速加一。

(1) 使用两位数码管显示,显示时间00~99秒;

(2)正常计数时,每秒自动加一;

(3) 一个开始按键,一个复位按键,一个暂停按键和一个快加按键;

(4) 实现计数、复位、清零和快加功能;

(5) 单片机通电后,首先初始化,然后进行对按键扫描。开始键用来控制秒表工作的开始;暂停键用来暂停程序的运行;快加键控制快速计数的开始,利用暂停键停止;复位键是用来对程序复位用的,当程序出现死循环或想从00开始重新计时,按下复位键可返回程序开始,重新执行。

2.2该设计要求进行计时并在数码管上显示时间。

(1)引脚应用说明。

1)利用MCS系列单片机微机仿真实验系统中的芯片8051中的P3.2管脚作为外部中断0的入口地址,并实现“开始”按键的功能(如图2.1);

2)将P3.3作为外部中断1的入口地址,并实现“清零”按键的功能;

3)使用P0口作为段码数据输出控制口,74LS164用作驱动输出控制,P1.1、P1.2口分别实现暂停、快加的功能。

图2.1 MCS—51单片机引脚图

(2)显示电路。

1)显示电路由两位共阴极数码管组成。使用定时器T0实现10ms的定时,进行快加延时;当想实现正常计数时的1s延时,只需要实现40次25ms的定时器T1控制延时就可以实现。其中“开始”按键当开关由1拨向0时开始计时;“清零”按键当开关由1拨向0时数码管清零,此时若再拨“开始”按键则又可重新开始计时。

2)初始状态下计时器显示00,当按下开始键时,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0服务程序,即开启定时器T0,并且进行100次计数,当到100次时,即延时1s时,产生一个中断信号,向CPU发出请求,执行计数器加一且送往数码管显示。在计时过程中,只要按下暂停键,即根据P1.0口电平变化去执行控制程序,关断定时器T0和T1,调用显示子程序,实现暂停功能。在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则讲中间缓存区的数据转入最终缓存区。

3)计时采用定时器T1中断完成,定时溢出中断周期为25ms,并同时进行40次计数,当有溢出时,会产生中断信号,向CPU发出中断请求,每发出一次中断请求就对计数单元低位进行加一,达到10次就对高位进行加一,送数码管显示,依此类推,直到99秒后再加一后返回00,重新开始。

数码管显示电路采用动态扫描的方式,由于数码管采用共阴极的接法,当位选信号为高电平时,该位选通,P0口中的数据送到该段上显示,节省接口资源,又能实时动态的性能。

4)按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法来识别。复位键和开始键功能在于使程序从头执行,对于时间的要求即单片机上电初始化时的值00;而停止键则要用于对时间的锁定,需要比较准确的控制;而对于快加键,当检测到有快加信号时,则启动定时器T0, 完成一个周期定时时产生一个溢出中断请求,向CPU发送请求,每发一次就对计数单元低位进行加一操作,达到10次就对高位进行加一操作,送数码管显示,依次循环;同时检测是否有暂停信号,有暂停信号时,跳出快加程序,执行显示子程序。因此可以对暂停和快加按键采取扫描的方式,而对开始和复位键采用外部中断的方式。

3.硬件设计

3.1数字秒表硬件设计的基本要求

(1)数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。

(2)设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动和快加电路等。主控制器采用单片机8051,显示电路采用两位共阴极LED数码管显示计时时间。

(3)本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始和复位的功能。P0口输出段码数据,74LS164用作驱动输出,P1.1、P1.2、P3.2、P3.3口接四个按钮开关,分别实现暂停、快加、开始和复位功能。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图3.1进行设计。主电路见附录。

图3.1 数字秒表硬件电路基本原理图

根据要求知道秒表设计主要实现的功能是计时和显示。本设计中,数码管显示的数据存放在内存单元11H和12H中。其中12H存放低位数据,11H存放高位数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,分别取出11H、12H地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。

3.2 电源电路

电源电路是系统的最基本部分,任何部分都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。

3.3 单片机晶振电路

MCS-51单片机内部的振荡电路是一个增益反相放大器,引线XYAL1和XTAL2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路石晶振荡和陶瓷振荡均可采用,有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,单必须保证脉冲的高低电平要求的宽度。晶振电路如图3.2、图3.3所示。

图3.2内部晶振电路 图3.3外部晶振电路

单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路XTAL1和XTAL2外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到XTAL2的输出时钟信号。在MCS-52中通常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器。

晶体和电容决定了单片机的工作精度为1微秒,晶体可在1.2-12MHZ之间选择。MCS-51单片机在通常情况下,使用震荡频率为6MHZ的石英晶体,而12MHZ频率主要是在高速串行通信情况才使用,在这里我们用的是12MHZ的石英晶体。对电容无严格要求,但它在取值对震荡频率的输出的稳定性、大小及震荡电路起震荡速度有点影响。C1和C2可在10-100pF之间取值,一般情况下取30pF。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2。由于XTAL2的逻辑电平不是TTL,所以还要接上拉电阻。

3.4 单片机复位电路

(1)该单片机系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。上电自动复位通过电容C1充电来实现和限流电阻R2。手动按键复位是通过按键将电阻R1与VCC接通来实现。R1作为上拉电阻,当复位键按下是产生一个触发脉冲,进行复位操作。

(2)在MCS-51中,复位电路的外部逻辑电路由通过二极管的单向导通性和施密特触发器组成(图3.4),最常见的几种方式的复位电路如图(图3.5、3.6、3.7),它能有效的实现上电复位和手动复位。RST引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,若使用6MHz晶振,则需持续4μs以上才能完成复位操作。如图中在通电瞬间,由于RC的充电过程,在 RST端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位,在6MHz时钟时,通常CR取22μF,R1取200Ω,R2取1KΩ,这时能可靠的上电复位和手动复位。

图3.4内部复位电路逻辑图 图3.5上拉复位电路

图3.6 按键电平复位电路 图3.7 按键脉冲复位电路

4.软件设计

4.1设计思想

本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。

4.2主程序设计

本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统(上电)复位后,进入主程序,主程序流程图如图4.1所示,部分子程序流程图由图4.2、4.3、4.4、4.5、4.6、4.7给出。首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务程序。并在执行完后返回主程序。

图4.1 主程序流程图 图4.2 加一子程序流程图

图4.3 INT0中断子程序 图4.4 INT1中断子程序

图4.5 定时器T0子程序 图4.6 数码显示流程图

图4.7 定时器T1子程序

5. 仿真结果

仿真结果如图5.1和附录2所示。

图5.1 仿真结果图

6.总结

在本次的数字秒表设计过程中,我获益很多,使我对Proteus软件的使用更加熟悉,使理论知识系统化、实用化,系统地掌握微机应用系统的一般设计方法,培养较强的编程能力、开发能力。

在设计的过程中我遇到了很多的问题,如在调试程序的过程中,无法找到程序中的六个错误;在电路的仿真中,由于芯片的错误选择致使仿真一直得不到结果;在流程图的绘制中对于文本框的插入遇到困难等等。诸多问题都是在老师和同学的帮助下得到解决,在此向他们表示感谢。本次设计使我知道了在学习中应该具有一丝不苟的精神和严谨的品质。

本系统也存在许多不足和可以改进的地方,如缺少对多次计时时间进行记录的功能、其存储空间小、显示位数少、不能对更高位的数字进行计数等等。其应在单片机的内部存储区多设置一些存储空间,用来存储多次计时时间,并且增加数码管的数量,使其具有更高位的显示功能,并在程序中编入对多次计时时间的调用显示。虽然存在不足,但本设计的数字电子秒表仍具有它的实用性,它可以实现多数场合的应用,其精度高、设计简单、原理清楚、使用方便、体型小巧、易于实现工厂生产、显示直观、读取方便、在计时中得到了广泛的使用。

7.参考文献

[1] 李华,王思明,张金敏.单片机原理及应用[M].兰州:兰州大学出版社,2001.5.

[2] 吴蓉,梁龙学,崔用明.数字电子技术[M].兰州:兰州大学出版社,2006.7.

[3] 顾滨,李勋.单片微计算机原理开发与应用[M].北京:高等教育出版社,2002

[4] 丁向荣,贾萍.单片机应用系统与开发技术[M].北京:清华大学出版社 2009.9

[5] 文献单片机课程设计论文 .

附录

附录1:

ORG 0000H

AJMP MAIN ;主程序入口地址

ORG 0003H

AJMP ZHONGDUAN0 ;中断0入口地址

ORG 000BH

AJMP YANSHI ;定时器T0入口地址

ORG 0013H

AJMP ZHONGDUAN1 ;中断1入口地址

ORG 001BH

AJMP DINGSHI ;中断1入口地址

ORG 0030H ;主程序入口地址

主程序

MAIN:MOV TCON,#05H ;主程序开始,外部中断跳变模式

MOV TMOD,#11H ;定时器0、1工作模式1下

MOV IE,#8FH ;中断允许

MOV DPTR,#TAB ;指向数据表首地址

MOV 12H,#00H ;初始化设置

MOV 11H,#00H

MOV R1,#00H

MOV R2,#00H

MOV R3,#40 ;循环40次

MOV TL0,#58H ;定时25ms

MOV TH0,#9EH

MOV TL1,#0F0H ;定时10ms

MOV TH1,#0D8H

CLR TR0 ;关断定时器

CLR TR1

暂停和快加程序

HERE:JB P1.0,HERE ;位扫描,为0顺序执行

SHOW:CLR TR1

CLR TR0

ACALL XIANSHI

KUAIJIA:JB P1.2,KUAIJIA ;等待快加信号,为0时快加

CLR TR0

SETB TR1

HERE1:JNB P1.2,HERE1

AJMP HERE

外部中断0子程序,计时按键K1子程序

ZHONGDUAN0:SETB TR0 ;正常计时 1s延时

RETI

外部中断1子程序,复位键K2子程序

ZHONGDUAN1:CLR TR0 ;复位

CLR TR1

MOV 12H,#00H

MOV 11H,#00H

ACALL XIANSHI ;调用显示子程序

MOV R1,#00H

MOV R2,#00h

RETI

加一子程序

JIA1: INC R1 ;加一子程序

CJNE R1,#0AH,LOOP ;判断低位是否有溢出

MOV R1,#00H

INC R2

CJNE R2,#0AH,LOOP

MOV R2,#00H

LOOP:MOV 12H, R1 ;重新加载计数值

MOV 11H,R2

RET

显示子程序

XIANSHI:MOV R7,#02H ;2个数码管显示子程序

MOV R0,#12H

LOOP1:MOV R6,#08H ;8位2进制数

MOV A,@R0

MOVC A,@A+DPTR

LOOP2:RLC A ;循环左移,带进位

CLR P3.1

MOV P3.0,C

SETB P3.1

DJNZ R6,LOOP2 ;判断数据是否扫描完成

DEC R0

DJNZ R7,LOOP1 ;判断2位是否扫描完成

RET

定时器T0子程序

YANSHI:MOV TL0,#58H ;定时器T0赋初值

MOV TH0,#9EH

DJNZ R3,LOOP7 ;实现1s延时

ACALL JIA1 ;调用加一子程序

ACALL XIANSHI ;调用显示子程序

MOV R3,#40 ;循环次数重加载

LOOP7: RETI

定时器T1子程序

DINGSHI:MOV TL1,#0F0H ;定时器T1子程序

MOV TH1,#0D8H

CLR TR0

SETB TR1 ;实现10ms延时

MOV 12H,R1

MOV 11H,R2

JNB P1.0,SHOW ;实现快加功能

ACALL JIA1 ;子程序调用

ACALL XIANSHI

RETI

TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴接法数码管 END 地址表

附录2:

感谢下载!

欢迎您的下载,资料仅供参考

感谢下载载

展开阅读全文

计算机原理实验中断计数器加一,数字秒表系统的设计.doc相关推荐

  1. 大连理工大学计算机原理实验交通灯,大连理工大学计算机原理第四次实验.docx...

    文档介绍: 大连理工大学本科实验报告课程名称:计算机原理实验学院(系):信息与通信工程学院专业:通信工程班级:电通1402学号:201483051学生姓名:糜智华2016年12月19日实验(四)名称: ...

  2. 计算机原理 逻辑单元,湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告

    <湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告>由会员分享,可在线阅读,更多相关<湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告(6页珍藏版)>请在人人文库网 ...

  3. 大连理工大学计算机原理实验报告,大连理工大学计算机原理实验报告.pdf

    大连理工大学计算机原理实验报告 大连理工大学计算机原理实验报告 目 录 1 实验任务 1 2 设计方案 1 3 设计电路 3 4 设计程序 5 5 遇到的问题 2 (1)程序语法方面 2 (2 )运行 ...

  4. 微型计算机原理中断实验,微机原理实验---中断控制实验.doc

    微机原理实验---中断控制实验 深 圳 大 学 实 验 报 告 课程名称: 微机计算机设计 实验项目名称: 8259 中断控制实验 学院: 信息工程学院 专业: 电子信息工程 指导教师: 报告人: 学 ...

  5. 大连理工计算机原理综合设计,大连理工大学计算机原理实验综合实验设计报告.pdf...

    大连理工大学本科设计报告 (计算机原理实验综合设计) 题目: 步进电机控制系统及 交通灯自动控制系统综合设计 课程名称: 计算机原理实验 学院 (系):电子信息与电气工程学部 专 业: 班 级: 学 ...

  6. 【毕业设计_课程设计】手写数字识别系统的设计实现(源码+论文)

    文章目录 0 项目说明 1 系统概述 1.1 系统实现环境 2 研究方法 2.1 图像预处理阶段 2.2 特征提取阶段 2.3 数字识别阶段 3 研究结论 4 论文概览 5 项目工程 0 项目说明 手 ...

  7. 单片机课程学习的数字时钟系统模块化设计研究

    摘要:随着人们生活环境的不断改善和美化,人们希望通过在生活中得到更多的乐趣,来满足我们日益增长的精神需求.单片机课程学习的数字时钟系统模块化设计研究能够给人们的生活带来丰富多彩的滋味,低廉的造价以及控 ...

  8. 计算机毕业设计ssm基于web的暗香小店系统的设计与实现80041系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于web的暗香小店系统的设计与实现80041系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于web的暗香小店系统的设计与实现80041系统+程序+源码+lw+远程部署 ...

  9. 频域串联滞后校正matlab,自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc...

    自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc 实验七 基于MATLAB控制系统频域法串联校正设计 一.实验目的 (1)对给定系统设计满足频域或时域指标的串联校正装置: (2)掌 ...

最新文章

  1. 025批量删除mac文件名中的空格
  2. Solr -- Solr Facet 1
  3. 《用户故事与敏捷方法》阅读笔记一
  4. 外挂学习之路(4)--- 大海捞针找call call const法
  5. 2万人同时访问 nodejs_面向前端工程师的Nodejs入门手册(一)
  6. 使用Nuget 安装指定版本package或者更新package到指定版本
  7. 成都Uber优步司机奖励政策(1月16日)
  8. IntelliJ IDEA 12.0.3 更新版发布
  9. Windows安装SSH连接远程服务器以及文件下载
  10. 大型仿人机器人整机构型研究与应用
  11. android 如何发送短信,如何在android中发送短信
  12. SEO入门教程之入门相关
  13. 小马哥服务器系统激活,Vue项目接口.md
  14. 原创 基于微信小程序毕业设计题目选题课题 羽毛球篮球足球乒乓球场地球馆预约小程序的设计与实现(3)我的预约列表
  15. uniapp 引导页 启动页 闪屏页功能介绍及部分功能实现
  16. 半导体通讯标准EAP、SECS/GEM视频介绍
  17. vba遍历数组_Excel VBA中如何对数组进行去重
  18. linux 制作磁盘映像,如何制作磁盘映像并在稍后恢复?
  19. mac电脑安装flink其他版本(历史版本)简单有效
  20. 数据库设计之物理结构设计

热门文章

  1. MATLAB常用的快捷键
  2. 滑环在直驱电机转子的应用领域
  3. 2018四川计算机二本录取,2018年四川高考二本录取分数线最新公布
  4. matlab为何小众,为何一些小众游戏质量很高,却始终不温不火,里面的原因值得深思...
  5. 解决win10文件夹无法解密的问题。
  6. java jquery时间问候语_使用Date日期对象来完成,在页面上根据不同时间显示不同的问候语,如:早上好,中午好,下午好,晚上好等信息...
  7. DASH、HLS和MP4格式有什么播放体验区别?
  8. 【自动回复or提醒小助手】妈妈再也不用担心我漏掉消息了(10行代码系列)
  9. linux 内核信号处理概述(send_signal)
  10. 刚刚,2018年度中国科学十大进展正式发布! 1