基于单片机数字秒表的设计_第1页
基于单片机数字秒表的设计_第2页
基于单片机数字秒表的设计_第3页
基于单片机数字秒表的设计_第4页
基于单片机数字秒表的设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

PAGE2基于单片机数字秒表的设计基于单片机数字秒表的设计【摘要】近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基于单片机的数字电子秒表设计。本设计主要特点是计时精度达到0.01s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。本设计的数字电子秒表系统采用8051单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为0~99.9秒,计时精度为0.1秒,能正确地进行计时,同时能记录一次时间,并在下一次计时后对上一次计时时间进行查询。其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。关键字:单片机;数字电子秒表;仿真基于单片机数字秒表的设计全文共28页,当前为第1页。基于单片机数字秒表的设计全文共28页,当前为第1页。PAGEIIPAGE26AbstractWiththerapiddevelopmentofscienceandtechnologyinrecentyears,SCMapplicationsareconstant-depthmanner.Inthispaper,basedonsinglechipdesignofdigitalelectronicstopwatch.Themaincharacteristicsofthisdesigntimingaccuracyof0.01s,tosolvethetraditionalresultofalackaccuracyduetotimingerrorsandunfair,andisavarietyofsportscompetitions,oneoftheessentialequipment.InadditionthehardwarepartofthesetViewbuttononthestopwatchcanbethelasttimetosavetimeforuserqueries.Thedesignofthemulti-functionstopwatchsystemusesSTC89C52microcontrollerasthecentraldevice,anduseitstimer/countertimingandthecountprinciples,combinedwithdisplaycircuit,LEDdigitaltube,aswellastheexternalinterruptcircuittodesignatimer.Thesoftwareandhardwaretogetherorganically,allowingthesystemtoachievetwoLEDdisplayshowsthetimefrom0to99.99seconds,Timingaccuracyof0.01seconds,Beabletocorrectlytimeatthesametimetorecordatime,andthenexttimeafterthelasttimethetimetosearchautomaticallyaddedasecondinwhichsoftwaresystemsusingassemblylanguageprogramming,includingthedisplayprogram,timing,interruptservice,externalinterruptserviceroutine,delayprocedures,keyconsumershakingprocedures,andWAVEinthecommissioning,operation,hardwaresystemusestoachievePROTEUSpowerful,simpleandeasytoobservethecutinthesimulationcanbeobservedontheactualworkingcondition.基于单片机数字秒表的设计全文共28页,当前为第2页。Keyword:LEDdisplay;High-precisionstopwatch;8051基于单片机数字秒表的设计全文共28页,当前为第2页。目录TOC\o"1-5"\h\z\u绪论 21引言 31.1秒表及其发展现状 31.2设计方案 31.2.1设计内容 31.2.2设计要求 41.2.3系统方案 42元器件的概述及选择 52.1单片机的选择 52.1.1AT89C51单片机介绍 52.1.274LS164的介绍 62.1.3两位LED数码管显示 73数字秒表硬件设计 93.1单片机硬件设计 93.1.1数字秒表电路设计 93.1.2电源电路 103.1.3晶振电路的选择与设计 103.1.4复位电路的选择与设计 113.2系统总电路的设计 124软件设计 124.1程序设计思想 124.1.1程序设计流程图 134.1.2数字秒表主程序设计 164.2数字秒表仿真图 205数字秒表的系统调试 215.1测试仪器 215.2软件调试 215.3硬件测试 21结束语 23谢辞 24参考文献 25基于单片机数字秒表的设计全文共28页,当前为第3页。基于单片机数字秒表的设计全文共28页,当前为第3页。绪论秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。2004年8月28日15点15分,中国选手孟关良/杨文军在雅典奥运会男子500米划艇决赛中,以1分40秒278的成绩获得中国在雅典奥运会的第28金。这是中国皮划艇项目的第一枚奥运金牌,也是中国水上项目在历届奥运会上所获得的第一枚金牌。孟关良/杨文军的成绩比获得银牌的古巴选手只快了0.072秒,以至于两人在夺冠之后还不敢相信。在现在的体育竞技比赛中,随着运动员的水平不断提高,差距也在不断缩小。有些运动对时间精度的要求也越来越高,有时比赛冠亚军之间的差距只有几毫秒,因此就需要高精度的秒表来记录成绩。本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始暂停的功能。P0口输出段码数据,P2.0-P2.4口作列扫描输出,P1.1、P3.2、P3.3、P2.5分别接四个按钮开关,分别实现开始、暂停、清零和查看上次时间的功能。显示电路由两位共阴极数码管组成。初始状态下计时器显示00,当按下开始键时,外部中断INT1向CPU发出中断请求,CPU转去执行外部中断1服务程序,即开启定时器T0。计时采用定时器T0中断完成,定时溢出中断周期为1ms,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到99秒重新复位。在计时过程中,只要按下暂停键,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0服务程序,即关闭定时器T0,调用显示程序,实现暂停功能,同时将此次计时时间存入寄存区。然后对P1.1进行扫描。当P1.1按下时就跳转回主程序。等待下一次计时开始。在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则讲中间缓存区的数据转入最终缓存区。秒表停止后对查看键P2.5进行扫描,P2.5按下为低电平时,调用最终缓存区的数据进行显示,即显示上一次计时成绩。当P2.5位高电平时,调用显示缓存区的数据进行显示,即显示当此计时的成绩。根据以上设计思路从而实现数字电子秒表的计时和查看上一次计时时间的功能。本文主要内容包括三部分:第一部分介绍硬件部分设计思路及方案;第二部分介绍了软件部分的设计思路和设计;最后一部分则是整个系统的安装与调试过程。基于单片机数字秒表的设计全文共28页,当前为第4页。

1引言基于单片机数字秒表的设计全文共28页,当前为第4页。1.1秒表及其发展现状时间是日常生活、工业、医学、环境保护、化工、石油等领域最常遇到的一个物理量。测量时间的基本方法是使用秒表直接测量。其中秒表的精度是人们最关心的,这就要求它的计时最小单位足够小,显示模块的灵敏度足够高。目前人们所能测量的最小计时单位是毫秒级。1.2设计方案1.2.1设计内容该实验要求进行计时并在数码管上显示时间,则可利用MCS系列单片机微机仿真实验系统中的芯片8051中的P3.2管脚作为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3作为外部中断1的入口地址,并实现“清零”按键的功能;使用P0口作为段码数据输出控制口,74LS164用作驱动输出控制,P1.1、P1.2口分别实现暂停、快加的功能。显示电路由两位共阴极数码管组成。使用定时器T0实现10ms的定时,进行快加延时;当想实现正常计数时的1s延时,只需要实现40次25ms的定时器T1控制延时就可以实现。其中“开始”按键当开关由1拨向0时开始计时;“清零”按键当开关由1拨向0时数码管清零,此时若再拨“开始”按键则又可重新开始计时。初始状态下计时器显示00,当按下开始键时,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0服务程序,即开启定时器T0,并且进行100次计数,当到100次时,即延时1s时,产生一个中断信号,向CPU发出请求,执行计数器加一且送往数码管显示。在计时过程中,只要按下暂停键,即根据P1.0口电平变化去执行控制程序,关断定时器T0和T1,调用显示子程序,实现暂停功能。在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则讲中间缓存区的数据转入最终缓存区。计时采用定时器T1中断完成,定时溢出中断周期为25ms,并同时进行40次计数,当有溢出时,会产生中断信号,向CPU发出中断请求,每发出一次中断请求就对计数单元低位进行加一,达到10次就对高位进行加一,送数码管显示,依此类推,直到99秒后再加一后返回00,重新开始。数码管显示电路采用动态扫描的方式,由于数码管采用共阴极的接法,当位选信号为高电平时,该位选通,P0口中的数据送到该段上显示,节省接口资源,又能实时动态的性能。基于单片机数字秒表的设计全文共28页,当前为第5页。再看按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法来识别。复位键和开始键功能在于使程序从头执行,对于时间的要求即单片机上电初始化时的值00;而停止键则要用于对时间的锁定,需要比较准确的控制;而对于快加键,当检测到有快加信号时,则启动定时器T0,完成一个周期定时时产生一个溢出中断请求,向CPU发送请求,每发一次就对计数单元低位进行加一操作,达到10次就对高位进行加一操作,送数码管显示,依次循环;同时检测是否有暂停信号,有暂停信号时,跳出快加程序,执行显示子程序。因此可以对暂停和快加按键采取扫描的方式。而对开始和复位键采用外部中断的方式。基于单片机数字秒表的设计全文共28页,当前为第5页。1.2.2设计要求课题需要以MCS-51系列单片机为核心,结合外围电路,制作一款时间参数测量系统。具体要求如下:1)使用两位数码管显示,显示时间00-99秒;2)正常计数时,每秒自动加一;3)一个开始按键,一个复位按键,一个暂停按键和一个快加按键;4)实现计数、复位、清零和快加功能;5)单片机通电后,首先初始化,然后进行对按键扫描。开始键用来控制秒表工作的开始;暂停键用来暂停程序的运行;快加键控制快速计数的开始,利用暂停键停止;复位键是用来对程序复位用的,当程序出现死循环或想从00开始重新计时,按下复位键可返回程序开始,重新执行。1.2.3系统方案此方案采用LCD数码管显示测量结果。LCD数码管显示器由8个发光二极管中的7个长条形二极管(称七笔段)按a、b、c、d、e、f、g顺序组成八字形,另外一个点形的发光二极管dp放在右下方,用来显示小数点。显示时用扫描每个数码管,同时逐一点亮的方法进行显示.实际采用电路方框图如图4-1所示此多点温度测量电路主要由以下几部分组成:控制器单片机AT89C51、显示单元LED数码管显示器、开关选择电路、电源电路等。单机片单机片AT89C51LED显示器电源电路按键电路基于单片机数字秒表的设计全文共28页,当前为第6页。图1.2.3系统设计方框图基于单片机数字秒表的设计全文共28页,当前为第6页。2元器件的概述及选择2.1单片机的选择2.1.1AT89C51单片机介绍

本设计的最主要的元器件就是AT89C51单片机。AT89C51单片机在一块芯片上集成了CPU,存储器RAM,ROM以及输入与输出接口电路,这种芯片习惯上被称为单片微型计算机。AT89C51单片机由CPU,振荡器与时序电路,4个8位的I/O端口(P0,P1,P2,P3),串行口等组成。P0口有三个功能:1、外部扩展存储器时,当作数据总线(如图中的D0~D7为数据总线接口)。2、外部扩展存储器时,当作地址总线(如图中的A0~A7为地址总线接口)。3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。P1口只做I/O口使用:其内部有上拉电阻。P2口有两个功能:1、扩展外部存储器时,当作地址总线使用;图2.1单片机89C512、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由寄存器来设置。ALE:地址锁存控制信号PSEN:外部程序存储器读选通信号EA/VPP:访问和序存储器控制信号RST:复位信号XTAL1和XTAL2VCC:供电电压GND:接地2.1.2AT89C51单片机的优点基于单片机数字秒表的设计全文共28页,当前为第7页。AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案基于单片机数字秒表的设计全文共28页,当前为第7页。2.1.3AT89C51主要特性:

·与MCS-51兼容

·4K字节可编程FLASH存储器

·寿命:1000写/擦循环

·数据保留时间:10年

·全静态工作:0Hz-24MHz

·三级程序存储器锁定

·128×8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路2.274LS164的介绍1.164为8位移位寄存器,其主要电特性的典型值如下:

54/74164

185mW

54/74LS16480mW

当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。串行数据输入端(A,B)可控制数据。当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。2.引脚功能:基于单片机数字秒表的设计全文共28页,当前为第8页。CLOCK:时钟输入端

CLEAR:同步清除输入端(低电平有效)

A,B:串行数据输入端

QA-QH:输出端基于单片机数字秒表的设计全文共28页,当前为第8页。

图174LS164封装图

图2

74LS164内部逻辑图3.极限值

电源电压7V

输入电压………5.5V

工作环境温度

54164…………-55~125℃

74164…………-0~70℃

储存温度……

-65℃~150℃

图3真值表H-高电平L-低电平X-任意电平

↑-低到高电平跳变

QA0,QB0,QH0-规定的稳态条件建立前的电平

QAn,QGn-时钟最近的↑前的电平

基于单片机数字秒表的设计全文共28页,当前为第9页。基于单片机数字秒表的设计全文共28页,当前为第9页。

图4时序图4.选择74LS164的优势(1)经典串入并出,1个I/O口就可以驱动多个数码管。(2)响应快、频率带宽高、工作温度适应范围大等等(3)节省IO口啊(4)7段数码管,7个笔画,1个公共端正好对应164的8个输出口,一串164,就可以控制一串数码管.单片机只要付出2个控制脚即可2.3两位LED数码管显示其中一个两位数码管用来显示数据,一位用来显示个位秒,另一位用来显示十位秒。当计数超过范围时所有数码管全部清零重新计数。基于单片机数字秒表的设计全文共28页,当前为第10页。显示原理图如下图所示:基于单片机数字秒表的设计全文共28页,当前为第10页。数码管的优势如下:LED数码管类似于洗墙灯什么的,适合户外建筑墙壁上,如果要显示视频的话需要做的很大,整个建筑墙面都可以覆盖,亮度与LED显示屏差不多,但画面肯定没有显示屏细腻的。LED显示屏的话应用蛮广的,可以做室内、半室外、室外显示屏,亮度都很高,画面根据他的点间距可以做的很细腻,但是LED显示屏非常贵,用来做户外广告非常合适基于单片机数字秒表的设计全文共28页,当前为第11页。基于单片机数字秒表的设计全文共28页,当前为第11页。3数字秒表硬件设计3.1单片机硬件设计3.1.1数字秒表电路设计数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动和快加电路等。主控制器采用单片机8051,显示电路采用两位共阴极LED数码管显示计时时间。本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始和复位的功能。P0口输出段码数据,74LS164用作驱动输出,P1.1、P1.2、P3.2、P3.3口接四个按钮开关,分别实现暂停、快加、开始和复位功能。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图3进行设计。主电路见附录。控制开关控制开关单片机AT89C51位驱动两位数码管图3.1.1数字秒表硬件电路基本原理图基于单片机数字秒表的设计全文共28页,当前为第12页。根据要求知道秒表设计主要实现的功能是计时和显示。本设计中,数码管显示的数据存放在内存单元11H和12H中。其中12H存放低位数据,11H存放高位数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,分别取出11H、12H地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。基于单片机数字秒表的设计全文共28页,当前为第12页。3.1.2电源电路电源电路是系统的最基本部分,任何部分都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。3.1.3晶振电路的选择与设计MCS-51单片机内部的振荡电路是一个增益反相放大器,引线XYAL1和XTAL2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路石晶振荡和陶瓷振荡均可采用,有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,单必须保证脉冲的高低电平要求的宽度。晶振电路如图1、2所示。图1内部晶振电路图2外部晶振电路单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路XTAL1和XTAL2外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到XTAL2的输出时钟信号。在MCS-52中通常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器。基于单片机数字秒表的设计全文共28页,当前为第13页。晶体和电容决定了单片机的工作精度为1微秒,晶体可在1.2-12MHZ之间选择。MCS-51单片机在通常情况下,使用震荡频率为6MHZ的石英晶体,而12MHZ频率主要是在高速串行通信情况才使用,在这里我们用的是12MHZ的石英晶体。对电容无严格要求,但它在取值对震荡频率的输出的稳定性、大小及震荡电路起震荡速度有点影响。C1和C2可在10-100pF之间取值,一般情况下取30pF。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2。由于XTAL2的逻辑电平不是TTL,所以还要接上拉电阻。基于单片机数字秒表的设计全文共28页,当前为第13页。3.1.4复位电路的选择与设计单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。上电自动复位通过电容C1充电来实现和限流电阻R2。手动按键复位是通过按键将电阻R1与VCC接通来实现。R1作为上拉电阻,当复位键按下是产生一个触发脉冲,进行复位操作。在MCS-51中,复位电路的外部逻辑电路由通过二极管的单向导通性和施密特触发器组成(图3),最常见的几种方式的复位电路如图(图4、5、6),它能有效的实现上电复位和手动复位。RST引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,若使用6MHz晶振,则需持续4μs以上才能完成复位操作。如图中在通电瞬间,由于RC的充电过程,在RST端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位,在6MHz时钟时,通常CR取22μF,R1取200Ω,R2取1KΩ,这时能可靠的上电复位和手动复位。图3内部复位电路逻辑图图4上拉复位电路基于单片机数字秒表的设计全文共28页,当前为第14页。基于单片机数字秒表的设计全文共28页,当前为第14页。图5按键电平复位电路图6按键脉冲复位电路3.2系统总电路的设计系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路图附录B所示。8051单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。8051单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键和查看键分别接单片机的P1.1和P2.5,均设为低电平有效。而另外的开始键和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口P3.3和P3.2,这两个I/O口的第二功能分别为单片机的外部中断1端口和外部中断0端口。同样设置为位低电平有效。显示电路由两位数码管组成,采用动态显示方式,因此有8位段控制端和5位位控制端,八位段控制接P0口,P0.0~P0.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,8051的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。五位位控制则由低位到高位分别接到P2.0~P2.4口,NPN三极管9013做为位控制端的开关,当P2.0~P2.4端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。4软件设计4.1程序设计思想基于单片机数字秒表的设计全文共28页,当前为第15页。本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。基于单片机数字秒表的设计全文共28页,当前为第15页。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。4.1.1程序设计流程图本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统(上电)复位后,进入主程序,主程序流程图如图10所示,部分子程序流程图由图11、12、13、14、15、16给出。首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务。并在执行完后返回主程序。基于单片机数字秒表的设计全文共28页,当前为第16页。基于单片机数字秒表的设计全文共28页,当前为第16页。开始程序初始化开始程序初始化开各中断关定时器0,1调用显示子程序P1.0=?1P1.0=?0P1.2=?1关定时器0,1P1.2=?0是否是是是否否否图11加一子程序流程图R1=R1+114H=R1R1=?#0ahhhhhhh?#AHR2=?#0ahR1=#00HR2=R2+1R2=#00H结束否否是是图10主程序流程图基于单片机数字秒表的设计全文共28页,当前为第17页。基于单片机数字秒表的设计全文共28页,当前为第17页。中断返回调用数码显示子程序调用加一子程序R3-1=?0置初值定时器T0入口地址图14定时器T0子程序INT0入口地址开定时器0中断返回INT1入口地址中断返回调用显示子程序中断返回调用数码显示子程序调用加一子程序R3-1=?0置初值定时器T0入口地址图14定时器T0子程序INT0入口地址开定时器0中断返回INT1入口地址中断返回调用显示子程序14H=#00H13H=#00HR1=#00HR2=#00H图13INT1中断子程序图12INT0中断子程序是否R3=#20H重置循环次数基于单片机数字秒表的设计全文共28页,当前为第18页。基于单片机数字秒表的设计全文共28页,当前为第18页。中断返回定时器T1入口地址调用数码显示子程序中断返回定时器T1入口地址调用数码显示子程序调用加一子程序置初值P1.0=?0关定时器T0开定时器T112H=R111H=R2调用暂停键子程序图16定时器T1子程序R7=#02H置数码管个数R0=14H置首地址R6=#08H置数码管个数A=@R0A=@A+dptrA循环左移P3.1清零P3.0=CP3.1置位R6-1=?0R7-1=?0R0=R0-1返回图15数码显示流程图否是否是是否4.1.2数字秒表主程序设计ORG0000HAJMPMAIN;主程序入口地址ORG0003HAJMPZHONGDUAN0;中断0入口地址ORG000BHAJMPYANSHI;定时器T0入口地址ORG0013HAJMPZHONGDUAN1;中断1入口地址ORG001BHAJMPDINGSHI;中断1入口地址ORG0030H;主程序入口地址;主程序基于单片机数字秒表的设计全文共28页,当前为第19页。MAIN:MOVTCON,#05H主程序开始外部中断跳变基于单片机数字秒表的设计全文共28页,当前为第19页。MOVTMOD,#11H;定时器0、1工作模式1下MOVIE,#8FH;中断允许MOVDPTR,#TAB;指向数据表首地址MOV12H,#00H;初始化设置MOV11H,#00HMOVR1,#00HMOVR2,#00HMOVR3,#40;循环40次MOVTL0,#58H;定时25msMOVTH0,#9EHMOVTL1,#0F0H;定时10msMOVTH1,#0D8HCLRTR0;关断定时器CLRTR1HERE:JBP1.0,HERE;位扫描,为0顺序执行SHOW:CLRTR1CLRTR0ACALLXIANSHIKUAIJIA:JBP1.2,KUAIJIA;等待快加信号为0时快加CLRTR0SETBTR1HERE1:JNBP1.2,HERE1AJMPHERE;外部中断0子程序,计时按键K1子程序ZHONGDUAN0:SETBTR0;正常计时1s延时RETI;外部中断1子程序,复位键K2子程序ZHONGDUAN1:CLRTR0CLRTR1MOV12H,#00HMOV11H,#00HACALLXIANSHI;调用显示子程序MOVR1,#00H基于单片机数字秒表的设计全文共28页,当前为第20页。MOVR2,#00h基于单片机数字秒表的设计全文共28页,当前为第20页。RETI;加一子程序JIA1:INCR1;加一子程序CJNER1,#0AH,LOOP;判断低位是否有溢出MOVR1,#00HINCR2CJNER2,#0AH,LOOPMOVR2,#00HLOOP:MOV12H,R1;重新加载计数值MOV11H,R2RET;显示子程序XIANSHI:MOVR7,#02H;2个数码管显示子程序MOVR0,#12HLOOP1:MOVR6,#08H;8位2进制数MOVA,@R0MOVCA,@A+DPTRLOOP2:RLCA;循环左移带进位CLRP3.1MOVP3.0,CSETBP3.1DJNZR6,LOOP2;判断数据是否扫描完成DECR0DJNZR7,LOOP1;判断2位是否扫描完成RET;定时器T0子程序YANSHI:MOVTL0,#58H;定时器T0赋初值MOVTH0,#9EHDJNZR3,LOOP7;实现1s延时ACALLJIA1;调用加一子程序基于单片机数字秒表的设计全文共28页,当前为第21页。ACALLXIANSHI;调用显示子程序基于单片机数字秒表的设计全文共28页,当前为第21页。MOVR3,#40;循环次数重加载LOOP7:RETI;定时器T1子程序DINGSHI:MOVTL1,#0F0H;定时器T1子程序MOVTH1,#0D8HCLRTR0SETBTR1;实现10ms延时MOV12H,R1MOV11H,R2JNBP1.0,SHOW;实现快加功能ACALLJIA1;子程序调用ACALLXIANSHIRETITAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共阴接法数码管地址表END基于单片机数字秒表的设计全文共28页,当前为第22页。基于单片机数字秒表的设计全文共28页,当前为第22页。4.2数字秒表仿真图基于单片机数字秒表的设计全文共28页,当前为第23页。基于单片机数字秒表的设计全文共28页,当前为第23页。5数字秒表的系统调试5.1测试仪器DS5102CA100MHZ双信道数字示波器一台DF17351SB5AB直流电源一台奔四3.0计算机一台万用表一块5.2软件调试软件调试的任务是利用软件的开发工具进行仿真调试,发现和纠正程序错误,同时也能发现硬件故障。程序的调试应该一个模块接一个模块地进行,首先单独调试各功能子程序,检查程序是否能够实现预期的功能,接口电路的控制是否正确等;最后是逐步将各个子程序连接起来总调试。在软件编写和调试过程中应注意一下几点:一、子程序的名称标号一定不要重复,在整个程序中不允许有两个名字相同的子程序;二、语句中间的标点符号须在英文输入环境下,中文环境下的标点KeiiluVsion3编译软件不识别,会出现一些不易查找的问题,这一点需特别注意;三、当子程序间有值传递时,必须注意实参和形参的类型;四、程序要有尽量详细的注释,以便问题的查找和增强程序的易读性。我首先将编好的程序在KeiiluVsion3环境之中进行编译,第一次未通过,经过错误提示我发现是几处标点的格式为中文格式导致编译软件不能识别,还有一处丢掉了一个分号,改正之后就运行正常,最终生产了HEX文件。程序编写完毕,就可开始系统的仿真调试,应该先采取软件仿真,确保整个程序无语法错误,排除逻辑错误及其他错误,然后开始硬件调试。软件仿真主要采用Keil和Proteus相结合的方式。在Proteus的库中将所需的元件调出按照硬件设计原理图将其连接好,将已生成的HEX文件加载入AT89C51之中,运行之后显示出了秒表的功能。5.3硬件测试先分别调试各功能单元模块,调通后再进行整机调试,以提高调试效率。调试过程如下:基于单片机数字秒表的设计全文共28页,当前为第24页。(1)AT89C51这部分电路是系统的主要部分,接上电源后先用万用表测量单片机的20引脚是否为低电平,再测量40引脚和31引脚是否为高电平,正常后用示波器测量30引脚,看是否输出2M的方波信号,正常后说明单片机已起振。基于单片机数字秒表的设计全文共28页,当前为第24页。(2)

温馨提示

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

评论

0/150

提交评论