单片机原理及系统课程设计报告基于单片机的数字秒表系统设计_第1页
单片机原理及系统课程设计报告基于单片机的数字秒表系统设计_第2页
单片机原理及系统课程设计报告基于单片机的数字秒表系统设计_第3页
单片机原理及系统课程设计报告基于单片机的数字秒表系统设计_第4页
单片机原理及系统课程设计报告基于单片机的数字秒表系统设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、led数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位led显示,显示时间为0099秒,每秒自动加1,能正确地进行计时,且具有快加功能。其软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,快加程序,外部中断服务程序,延时程序等,并在keil下调试通过,硬件电路通过proteus模拟连接,并与软件相结合,调试修改,使达到预期的目的。 2.设计方案及原理2.1该数字秒表所要实现的功能。 设计一个秒表,按“开始”按键,开始计数,数码管显示从00每秒自动加一;按“复位”按键,系统清零,数码管显

3、示00;按“暂停”按键,系统暂停计数,数码管显示当前的计数;按“快加”按键,系统每10ms快速加一,即数码管显示在原先的计数上快速加一。 (1) 使用两位数码管显示,显示时间0099秒; (2)正常计数时,每秒自动加一; (3) 一个开始按键,一个复位按键,一个暂停按键和一个快加按键; (4) 实现计数、复位、清零和快加功能; (5) 单片机通电后,首先初始化,然后进行对按键扫描。开始键用来控制秒表工作的开始;暂停键用来暂停程序的运行;快加键控制快速计数的开始,利用暂停键停止;复位键是用来对程序复位用的,当程序出现死循环或想从00开始重新计时,按下复位键可返回程序开始,重新执行。2.2该设计要

4、求进行计时并在数码管上显示时间。 (1)引脚应用说明。 1)利用mcs系列单片机微机仿真实验系统中的芯片8051中的p3.2管脚作为外部中断0的入口地址,并实现“开始”按键的功能(如图2.1); 2)将p3.3作为外部中断1的入口地址,并实现“清零”按键的功能; 3)使用p0口作为段码数据输出控制口,74ls164用作驱动输出控制,p1.1、p1.2口分别实现暂停、快加的功能。 图2.1 mcs51单片机引脚图 (2)显示电路。 1)显示电路由两位共阴极数码管组成。使用定时器t0实现10ms的定时,进行快加延时;当想实现正常计数时的1s延时,只需要实现40次25ms的定时器t1控制延时就可以实

5、现。其中“开始”按键当开关由1拨向0时开始计时;“清零”按键当开关由1拨向0时数码管清零,此时若再拨“开始”按键则又可重新开始计时。 2)初始状态下计时器显示00,当按下开始键时,外部中断int0向cpu发出中断请求,cpu转去执行外部中断0服务程序,即开启定时器t0,并且进行100次计数,当到100次时,即延时1s时,产生一个中断信号,向cpu发出请求,执行计数器加一且送往数码管显示。在计时过程中,只要按下暂停键,即根据p1.0口电平变化去执行控制程序,关断定时器t0和t1,调用显示子程序,实现暂停功能。在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则讲中间缓存区的数据

6、转入最终缓存区。3)计时采用定时器t1中断完成,定时溢出中断周期为25ms,并同时进行40次计数,当有溢出时,会产生中断信号,向cpu发出中断请求,每发出一次中断请求就对计数单元低位进行加一,达到10次就对高位进行加一,送数码管显示,依此类推,直到99秒后再加一后返回00,重新开始。数码管显示电路采用动态扫描的方式,由于数码管采用共阴极的接法,当位选信号为高电平时,该位选通,p0口中的数据送到该段上显示,节省接口资源,又能实时动态的性能。4)按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法来识别。复位键和开始键功能在于使程序从头执行,对于时间的要求即单片机上电初始化时的值00;而停

7、止键则要用于对时间的锁定,需要比较准确的控制;而对于快加键,当检测到有快加信号时,则启动定时器t0, 完成一个周期定时时产生一个溢出中断请求,向cpu发送请求,每发一次就对计数单元低位进行加一操作,达到10次就对高位进行加一操作,送数码管显示,依次循环;同时检测是否有暂停信号,有暂停信号时,跳出快加程序,执行显示子程序。因此可以对暂停和快加按键采取扫描的方式,而对开始和复位键采用外部中断的方式。3.硬件设计 3.1数字秒表硬件设计的基本要求 (1)数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 (2)设计中包括硬

8、件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动和快加电路等。主控制器采用单片机8051,显示电路采用两位共阴极led数码管显示计时时间。 (3)本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始和复位的功能。p0口输出段码数据,74ls164用作驱动输出,p1.1、p1.2、p3.2、p3.3口接四个按钮开关,分别实现暂停、快加、开始和复位功能。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图3.1进行设计。主电路见附录。 图3.1 数字秒表硬件电路

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

10、助记符与指令代码一一对应,基本保留了机器语言的灵活性。3.2 电源电路电源电路是系统的最基本部分,任何部分都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。3.3 单片机晶振电路mcs-51单片机内部的振荡电路是一个增益反相放大器,引线xyal1和xtal2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路石晶振荡和陶瓷振荡均可采用,有余输入至内部时钟信号要

11、通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,单必须保证脉冲的高低电平要求的宽度。晶振电路如图3.2、图3.3所示。 图3.2内部晶振电路 图3.3外部晶振电路单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路xtal1和xtal2外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到xtal2的输出时钟信号。在mcs-52中通常用内部时钟方式,也就是在xtal1和xtal2之间连接晶体振荡器与电容构成稳定的自激震荡器。晶体和电容决定了单片机的工作精度为1微秒,晶体可在1.2-12mhz之间选择。mcs-51单片机在通常情况下,使用震荡频率为

12、6mhz的石英晶体,而12mhz频率主要是在高速串行通信情况才使用,在这里我们用的是12mhz的石英晶体。对电容无严格要求,但它在取值对震荡频率的输出的稳定性、大小及震荡电路起震荡速度有点影响。c1和c2可在10-100pf之间取值,一般情况下取30pf。外部时钟方式是把外部震荡信号源直接接入xtal1或xtal2。由于xtal2的逻辑电平不是ttl,所以还要接上拉电阻。3.4 单片机复位电路 (1)该单片机系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片

13、机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。上电自动复位通过电容c1充电来实现和限流电阻r2。手动按键复位是通过按键将电阻r1与vcc接通来实现。r1作为上拉电阻,当复位键按下是产生一个触发脉冲,进行复位操作。 (2)在mcs51中,复位电路的外部逻辑电路由通过二极管的单向导通性和施密特触发器组成(图3.4),最常见的几种方式的复位电路如图(图3.5、3.6、3.7),它能有效的实现上电复位和手动复位。rst引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,若使用6mhz晶振,则需持续4s以上才能完成

14、复位操作。如图中在通电瞬间,由于rc的充电过程,在 rst端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位,在6mhz时钟时,通常cr取22f,r1取200,r2取1k,这时能可靠的上电复位和手动复位。 图3.4内部复位电路逻辑图 图3.5上拉复位电路 图3.6 按键电平复位电路 图3.7 按键脉冲复位电路4.软件设计4.1设计思想 本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编

15、语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。4.2主程序设计本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统(上电)复位后,进入主程序,主程序流程图如图4.1所示,部分子程序流程图由图4.2、4.3、4.4、4.5、4.6、4.7给出。首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序

16、。在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务程序。并在执行完后返回主程序。 图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软件的使用更加熟悉,使理论知识系统化、实用化,系统地掌握微机应用系统的一般设计方法,培养较

17、强的编程能力、开发能力。在设计的过程中我遇到了很多的问题,如在调试程序的过程中,无法找到程序中的六个错误;在电路的仿真中,由于芯片的错误选择致使仿真一直得不到结果;在流程图的绘制中对于文本框的插入遇到困难等等。诸多问题都是在老师和同学的帮助下得到解决,在此向他们表示感谢。本次设计使我知道了在学习中应该具有一丝不苟的精神和严谨的品质。本系统也存在许多不足和可以改进的地方,如缺少对多次计时时间进行记录的功能、其存储空间小、显示位数少、不能对更高位的数字进行计数等等。其应在单片机的内部存储区多设置一些存储空间,用来存储多次计时时间,并且增加数码管的数量,使其具有更高位的显示功能,并在程序中编入对多次

18、计时时间的调用显示。虽然存在不足,但本设计的数字电子秒表仍具有它的实用性,它可以实现多数场合的应用,其精度高、设计简单、原理清楚、使用方便、体型小巧、易于实现工厂生产、显示直观、读取方便、在计时中得到了广泛的使用。7.参考文献1 李华,王思明,张金敏.单片机原理及应用m.兰州:兰州大学出版社,2001.5.2 吴蓉,梁龙学,崔用明.数字电子技术m.兰州:兰州大学出版社,2006.7.3 顾滨,李勋.单片微计算机原理开发与应用m.北京:高等教育出版社,2002 4 丁向荣,贾萍.单片机应用系统与开发技术m.北京:清华大学出版社 2009.95 文献单片机课程设计论文 . 附录附录1:org 00

19、00hajmp main ;主程序入口地址org 0003hajmp zhongduan0 ;中断0入口地址 org 000bhajmp yanshi ;定时器t0入口地址org 0013hajmp zhongduan1 ;中断1入口地址org 001bhajmp dingshi ;中断1入口地址org 0030h ;主程序入口地址主程序main:mov tcon,#05h ;主程序开始,外部中断跳变模式 mov tmod,#11h ;定时器0、1工作模式1下 mov ie,#8fh ;中断允许 mov dptr,#tab ;指向数据表首地址 mov 12h,#00h ;初始化设置 mov 1

20、1h,#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 xianshikuaijia:jb p1.2,kuaijia ;等待快加信号,为0时快加 clr tr0 setb tr1here1: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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论