单片机数字秒表课程设计.doc_第1页
单片机数字秒表课程设计.doc_第2页
单片机数字秒表课程设计.doc_第3页
单片机数字秒表课程设计.doc_第4页
单片机数字秒表课程设计.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

单片机技术课程设计说明书 数字式秒表 系 、 部: 电气与信息工程学院 学生姓名: 谭国良 指导教师: 王韧 职称 副教授专 业: 电子信息工程 班 级: 电子1002班 完成时间: 2012年12月22日 摘 要文中设计了一种以单片机为控制核心的数字秒表。该数字秒表采用C语言开发, 通过数码管显示计时结果。对系统硬件电路和软件进行了设计, 以Proteus和Keil软件为开发平台,对数字秒表进行了仿真。仿真结果表明该数字秒表精度高、稳定性强。当今, 计算机技术带来了科研和生产重大飞跃,微型计算机的应用已渗透到生产、生活的各个方面。单片微型计算机具有体积小、价格低、功能强的特点,随着性能不断提高,其适用范围愈来愈宽,在计算机应用领域占有重要的地位。秒表应用于我们生活、工作、运动等需要计时的方面。秒表的数字化给人们生产生活带来了极大的方便,而且大大的扩展了秒表原先的功能。它由刚开始的机械式秒表发展到今天所常用的数字秒表。秒表的计时精度越来越高,功能越来越多,构造也日益复杂。本文结合单片计算机,实现了一种基于AT89C52单片机的数字秒表的设计,并且利用Proteus和Keil软件实现了仿真。关键词: 数字式秒表;单片机;仿真1ABSTRACTDesigned a microcontroller as the core control digital stopwatch. The digital stopwatch using C language development, digital display timing results. The system hardware and software design, Proteus and Keil software development platform, digital stopwatch simulation. The simulation results show that the digital stopwatch high precision and stability. Today, computer technology has brought major leap in scientific research and production, microcomputer applications have penetrated into the production, and all aspects of life. Single-chip microcomputer has a small size, low price, strong features, with improving performance, its scope of increasing width, occupies an important position in the field of computer applications. The stopwatch used in the time we live, work, sports. The stopwatch digitization has brought great convenience to the peoples production and living, and greatly expanded the original stopwatch function. Development by the beginning of mechanical stopwatch digital stopwatch to the commonly used today. The the stopwatch timing accuracy is higher and higher, more and more powerful, increasingly complex structure. In this paper, a single-chip computer, a design based on AT89C52 digital stopwatch, and Proteus and Keil software simulation.Keywords: digital stopwatch; SCM; simulationIII目 录1 设计课题任务、功能要求说明及总体方案介绍11.1 设计课题任务11.2 功能要求说明11.3 设计课题总体方案介绍及工作原理说明12 硬件系统的设计32.1 硬件系统各模块功能简要介绍32.2 电路原理图、PCB图、元器件布局图52.3 元器件清单53 软件系统的设计63.1 使用单片机资源的情况63.2 软件系统各模块功能简要介绍63.3 软件系统程序流程框图73.4 软件系统程序清单114 设计结论、仿真结果、误差分析、教学建议124.1 设计课题的设计结论及使用说明124.2 设计课题的仿真结果124.3 设计课题的误差分析13结束语14参考文献15致谢16附录17附录A 电路原理图17附录B 秒表PCB图18附录C 数字秒表布局图19附录D 元件清单20附录E 软件系统程序清单21III1 设计课题任务、功能要求说明及总体方案1.1 设计课题任务由单片机接受控制键盘的控制递增计时,数码管显示计时时间。显示格式为XX(分)XX(秒)XX(毫秒),绘制硬件接线图,并进行系统仿真和实物板子实现。画出程序流程图并编写程序实现系统功能。1.2 功能要求说明用AT89S52单片机作为主要控制芯片,以四位一体共阳极数码显示管通过三极管驱动作为显示部分,设计一个具有特定功能的数字式秒表。该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和停止功能。1.3 设计课题总体方案介绍及工作原理说明使用AT89S52单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;用两个四位一体共阳极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的复位、计时、连续、清零、停止各项功能。对于时钟,它有两方面的意义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。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所示。复位电路振荡电路电源AT89S52驱动电路数码显示限流独立式键盘图1 数字式秒表的硬件结构图2 硬件系统的设计2.1 硬件系统各模块功能简要介绍2.1.1 AT89S52简介(1)与MCS-51产品相兼容;(2)具有8KB可改写的Flash内部程序存储器,可擦写1000次;(3)256字节内部RAM;(4)32根可编程I/O口;(5)3个16位定时器/计数器;(6) 8个中断源;(7)可编程中串行口;(8)低功耗空闲掉电方式。它的价格便宜,功能强大,能耗低。很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。其芯片引脚图如图2所示。图2 单片机AT89S52引脚图2.1.2 时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在AT89S52芯片内部有一个高增益反相放大器,其输入端为芯片引脚ATAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成一个稳定的自激振荡器。此电路采用12MHz的石英晶振。2.1.3 键盘电路此设计使用独立式键盘接在单片机的P1口上但通过软件赋予其中五个按键功能,其中S2是开始键,S3是暂停键,S4继续计时键,S5是停止键,S6是清零键。注意使用时只有在暂停状态下才能继续计时,在停止时不能继续计时。2.1.4 复位电路的选择 复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,使用频率为12MHz的晶振,则复位信号持续时间应超过2us才能完成复位操作。复位操作上有电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。在本设计中采用了按键电平复位方式,其复位电路如图2-4所示。2.1.5 驱动及显示电路数码管实际上是由二极管构成发光二极管正常工作时,其两端正向压降约为1.6V,正向电流约为10mA,为了使数码管达到一定的亮度而又不至于由于电流过大而损坏,我们使用三极管S8550作为数码管的驱动,同时在P0口和P2口上串上470的电阻。此处使用四位一体共阴极数码管,由于驱动电路决定了此处共阴极数码管和共阳极数码管均可采用而且均采用共阳极代码来编写显示程序。2.1.6 单片机下载口电路下载口主要是一个十芯的底座,可以通过使用USB下载线对单片机进行程序下载。2.2 硬件系统设计图2.2.1 电路图原理此处电路原理图以及PCB原理图的绘制均使用protel99完成,protel99提供一个集成的设计环境,包括原理图设计和PCB布线工具。根据硬件接线要求设计绘制电路原理图及PCB。具体电路图见附录2.2.2 PCB图PCB图设计时,首先要使元器件尽量少,这样既可以节约材料,又可以使布线更加短,减少干扰,同时还应该注意尽量减少线路之间的寄生电容和电感,布线时需要将线宽设置得比较宽这样可以提高腐蚀电路板时的成功率,焊盘大小也要设置的比较大,这样在腐蚀环节和焊接环节比较容易成功。不易出现短线的现象和焊盘剥离的现象。双面布线时芯片和针脚多的元件需将焊接点置于底层,这样才能比较方便焊接。电路板PCB图见附录。2.2.3 元器件布局图 图见附录2.3 元器件清单 图见附录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) 使用通用寄存器RO、R1来延时,R2-R7作为数据的保护和处理。(5) P3.4作为开始和停止的分开运行的标志,P3.5作为暂停和继续的分开运行标志3.2 软件系统各模块功能简要介绍显P程序和键扫程序(主程序,显示P,也判断有无键按下,若有,则跳转相应标志地方执行相应程序)数码管显示程序(显示当前的各位的数据情况)数据处理程序(让秒表的每个位随时间变化并保存在寄存器里)KS(键扫描子程序)DL(毫秒延时子程序)TAB(共阳数码管字型代码表)3.3 软件系统程序流程框图3.3.1 显P程序和键扫程序开始开启位控给段控赋显示P的值有无按键按下P1.0是否按下YNP1.1是否按下P1.2是否按下P1.3是否按下P1.4是否按下NNNN跳转并执行相应的程序YYYYY图3 显P程序和键扫程序3.3.2 数码管显示程序开始使R2-R7六组数据处理置零分别打开P2上位控口,通过R2-R7给P0口赋值使显示管亮并调用延时程序调用键扫是否有键按下P3.4是否为1P3.5是否为0跳至数据处理标号处跳回键扫那里跳转标号处跳转标号处YYYNNN图4 数码管显示程序3.3.3 数据处理程序开始R2加1R2是否为0AHR3加1,R2清零YR3是否为0AHYR4加1,R3清零YR4是否为0AHYR5加1,R4清零R5是否为0AHYR6加1,R5清零YR6是否为0AHYR7加1,R6清零YR7是否为0AHYYSJMP $Y跳转显示程序NNNNNN3.3.4 延时子程序开始给R1赋值给R0赋值N o pR0自减等于1?R1自减等于1?返回YYNN图6 延时子程序3.3.5 有无闭合键子程序开始取按键P1上的值给AA取反让A和0FH相与保留低字节返回 图7 有无闭合键子程序3.4 软件系统程序清单按照流程图应用软件keil汇编语言编程实现秒表功能。程序见附录4 设计总结4.1 设计结论及使用说明通过设计和调试,数字式秒表能顺利完成各项功能。上电或复位后显示“P.”提示符,此时按P1.0对应的键S2便可开始计时。在计数状态下,按下P1.1对应的键S3即可实现暂停,按下P1.2键S4可继续计时,在计时状态下按下P1.3对应的键S5实现计时停止,在停止状态下按下P1.4对应的键S6,可实现计数清零。4.2 程序仿真与结果我们在我们是在Keil软件里编写程序并编译通过才能被硬件电路所应用。Keil的功能比较强大,但他编译过程中他只能检查出所编写的语法错误,所以我们一步一步的去在硬件电路里仿真去达到我们所设计要求的功能。经仿真修改和完善均已达到设计要求.“P.”显示,电子钟准备状态与电子钟自动运行状态的仿真如下图所示(1). “P.”显示如图8所示。图8 P.显示(2). 数字式秒表准备状态仿真的显示如图9所示。图9 仿真准备状态4.3 误差分析及解决方法经过下载到板子和仿真测试,发现数字式秒表计数一段时间和标准时间相比有误差,所设计的数字式秒表比我们的标准时间要快或者慢,而且相比较的时间越长他的时差越大。经过分其主要原因与硬件和软件都有关。软件原因:延时程序只能起到一个大概的延时,具体也与所有执行了的程序所用时间也有关系,对于时间一长,误差就能明显。硬件原因:因为制板做的不能够排除整体对计时有影响,所以仿真和板子计时也有一些误差。针对这样的问题我们就能只能去减小误差。软件方面我们可以通过计算设计子程序去减少响应的时差。硬件部分我们可以采用一些稳定,精确度比较高的电子元件去完善,但是在最后调试出的还是有误差但我尽可能的减少差误差。结束语本文利用AT89S52单片机设计了具有计时开始、暂停及清零功能的数字秒表, 计时最大值为59分59.99秒, 计时精度为0.01秒。利用Proteus和Keil软件进行了仿真, 达到了预期的效果。整体电路的计时精度高, 电路结构简单, 抗干扰能力强,具有广泛的应用前景。上了一个学期单片机课后看了看这些课程设计题目,感觉压力比较大,毕竟自己还是初学者,对各方面都不是了解的很透彻,因为都看上去都比较有难度,于是选定了一个觉得适合自己的课题,熟悉了单片机的内容后觉得还是可以做的出来了,一开始不知道从哪里开始下手,于是问了一些人上网查了点资料,有些是c编还有些是汇编,于是参考了一下,也和别人一起探讨了一下,一开始在设计中觉得难点在显示和秒表的不断加时的地方,通过不断翻阅书,于是编写了一个符合的程序,于是开始确定按键作用的编程,一开始想像别人一样弄几个按键多功能,于是写了一下但是还是程序有问题,最终还是弄了多个按键,经过一个整合于是程序就弄好了,感觉在编程的过程中,书本的总体知识运用比较难,难在逻辑上的紧密结合,虽然弄好了一个整体的程序也能执行,但是觉得还是有些地方也可以改进,条理还是得加强。教学建议:希望在以后平时编写几个模板程序给予同学们参考,然后对应的布置一些较深入的题也促进同学们更好的思考,更加方便的了解单片机,即能促进同学们的学这个课程的的积极性又可以使同学们较深入点掌握基本知识,对于难点需要重点的指出,让同学们注意。多加练习编程,练得越多就越熟悉各项指令。感觉老师讲解蛮到位了。在此谢谢王老师。参考文献1 李广第,朱月秀,冷祖祁.单片机基础M.北京:北京航空航天大学出版社,2007.6LiGuangDi, ZhuYueXiu, LengZuQi. Single chip microcomputer based M. Beijing: Beijing university of aeronautics &astronautics press, 2007.62 马忠梅,籍顺心,张凯,马岩.单片机的C语言应用程序设计(第四版)M.北京:北京航空航天大学出版社,2007.1MaZhongMei, JiShunXin, ZhangKai,MaKai. SCM C language program design(fourth edition)M.Beijing:Beijing university of aeronautics &astronautics press, 2007.13 恰汗合孜尔.C语言程序设计(第三版) M.北京:中国铁道出版社,2010QaHan.HeZiEr. C language program design, (third edition) M. Beijing: China railway publishing house, 20104 谢自美.电子线路设计实验测试(第三版) M.武汉:华中科技大学出版社,2006 XieZiMei. Electronic circuit design experimental test (third edition) M. Wuhan: central China university of science and technology press, 2006 致 谢 经过为期几个多月的课程设计,我们顺利完成课程设计,感谢各位老师的指导以及我们团队的默契配合。本文是在指导老师王老师的悉心指导下完成的。从课程设计的选题、具体设计到说明书的最后完稿所取得的每一点成绩都倾注了老师的心血。指导老师严谨治学的态度、渊博的学识、对事业执着追求的精神以及对本人在学习、生活等各方面无微不至的关怀和帮助,都将使我终生受益。值此说明书完成之际,谨向指导老师致以最崇高的敬意和最衷心的感谢!也感谢寝室成员密切的配合。感谢湖南工学院在实验仪器及器材上,为我们提供了最贴心的帮助,开放的实验室环境对我们顺利完成课题有莫大的帮助。过程是艰辛的,成功是大家有目共睹的。谢谢附录 电路原理图附录B:数字秒表电路的PCB图底层PCB顶层PCB附录C:数字秒表的布局图附录D:元器件清单元器件及材料名称规格数目备注AT89S52加底座40P1四位一体共阳数码管加底座40P2晶振12MHz1发光二极管9单排插40脚1三极管90129蜂鸣器1小按键9下载口座子十芯1六脚按键开关1Usb电源线加接口1电阻2001电阻1K3电阻47024电解电容22uf1瓷片电容33pf2排阻10k2短路冒2杜邦线8P1PCB板子1附录E:软件系统程序清单LED数码管显示器设定:P0.7-P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a;P2.7-P2.0位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);独立式键盘设定:8个按键S2至S9分别依次接在P1.0至P1.7口线;子程序:KS(键扫描子程序);DL(毫秒延时子程序);p3.4作为开启和停止的标志位p3.5作为暂停和继续的标志位用到寄存第00组:R0、R1用于延时子程序,R2-R7用来保护和相应的处理数码管显示的数据,相应的八个依次亮的显示时间为毫秒记数的间隔。p1.0对应的键S2的功能为启动(标识符为P3.4当它为0时启动,为1时顺序执行)p1.1对应的键S3的功能为暂停(标识符为P3.5当它为0时暂停,为1时跳转到相应位置)p1.2对应的键S4的功能为继续(标识符为P3.5当它为1时继续,为0时顺序执行)p1.3对应的键S5的功能为停止(标识符为P3.4当它为1时停止,为0时跳转到相应位置)p1.4对应的键S6的功能为清零 LOOP : CLR P2.0 MOV P0,#0CH LCALL KSJNZ LOOP1SJMP LOOP LOOP1:JB P1.0, LOOP2 CLR P3.4SJMP KSHI LOOP2:JB P1.1, LOOP3 CLR P3.5LJMP ZZ1 LOOP3:JB P1.2, LOOP4 SETB P3.5LJMP ZZ1 LOOP4:JB P1.3,LOOP5 SETB P3.4 LJMP ZZ1 LOOP5:JB P1.4,LOOP6 LOOP7:MOV P2,#00H MOV P0,#0C0HLCALL KSJNZ LOOP6SJMP LOOP7 LOOP6:LJMP LOOP1 KSHI:MOV R2,#00H MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV R6,#00H MOV

温馨提示

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

最新文档

评论

0/150

提交评论