毕业设计---基于单片机数字秒表的设计

上传人:e****s 文档编号:227899385 上传时间:2023-08-16 格式:DOC 页数:31 大小:1.27MB
收藏 版权申诉 举报 下载
毕业设计---基于单片机数字秒表的设计_第1页
第1页 / 共31页
毕业设计---基于单片机数字秒表的设计_第2页
第2页 / 共31页
毕业设计---基于单片机数字秒表的设计_第3页
第3页 / 共31页
资源描述:

《毕业设计---基于单片机数字秒表的设计》由会员分享,可在线阅读,更多相关《毕业设计---基于单片机数字秒表的设计(31页珍藏版)》请在装配图网上搜索。

1、西安航空职业技术学院毕 业 设 计论 文论文题目: 所属系部: 电子工程系指导老师: 职 称: 学生姓名: 班级、学号: 专 业: 西安航空职业技术学院制年 月 日 西安航空职业技术学院 毕业设计论文任务书题目: 任务与要求:时间: 年 月 日 至 年 月 日 共 周所属系部: 学生姓名: 学 号:专业: 指导单位或教研室: 指导教师: 职 称: 西安航空职业技术学院制年 月 日毕业设计(论文)进度方案表日 期工 作 内 容执 行 情 况指导教师签 字教师对进度方案实施情况总评 签名 年 月 日 本表作评定学生平时成绩的依据之一。基于单片机数字秒表的设计 【摘要】 近年来随着科技的飞速开展,单

2、片机的应用正在不断的走向深入。本文阐述了基于单片机的数字电子秒表设计。本设计主要特点是计时精度到达0.01s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。本设计的数字电子秒表系统采用8051单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为099.9秒,计时精度为0.1秒,能正确地进行计时,同时能记录一次时间,并在下一次计时后对上一次计时时间进行查询。其中软件系统采用汇编语言编写程序,包括显示程序,定时中断效劳,外部中断效劳程序,

3、延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 关键字:单片机;数字电子秒表;仿真 Abstract With the rapid development of science and technology in recent years, SCM applications are constant-depth manner. In this paper, based on single chip design of digital electronic stopwatch. The main charact

4、eristics of this design timing accuracy of 0.01s, to solve the traditional result of a lack accuracy due to timing errors and unfair, and is a variety of sports competitions, one of the essential equipment. In addition the hardware part of the set View button on the stopwatch can be the last time to

5、 save time for user queries.The design of the multi-function stopwatch system uses STC89C52 microcontroller as the central device, and use its timer / counter timing and the count principles, combined with display circuit, LED digital tube, as well as the external interrupt circuit to design a timer

6、. The software and hardware together organically, allowing the system to achieve two LED display shows the time from 0 to 99.99 seconds, Timing accuracy of 0.01 seconds, Be able to correctly time at the same time to record a time, and the next time after the last time the time to search automaticall

7、y added a second in which software systems using assembly language programming, including the display program, timing, interrupt service, external interrupt service routine, delay procedures, key consumer shaking procedures, and WAVE in the commissioning, operation, hardware system uses to achieve P

8、ROTEUS powerful, simple and easy to observe the cut in the simulation can be observed on the actual working condition.Keyword:LED display;High-precision stopwatch;8051目 录绪 论21引言31.1秒表及其开展现状31.2设计方案3设计内容3设计要求41.2.3 系统方案42 元器件的概述及选择52.1单片机的选择52.1.1 AT89C51单片机介绍52.1.2 74LS164的介绍6两位LED数码管显示73 数字秒表硬件设计93

9、.1单片机硬件设计9数字秒表电路设计93.1.2 电源电路10晶振电路的选择与设计10复位电路的选择与设计113.2系统总电路的设计124 软件设计124.1 程序设计思想124.1.1 程序设计流程图134.1.2 数字秒表主程序设计164.2 数字秒表仿真图205 数字秒表的系统调试215.1 测试仪器215.2软件调试215.3硬件测试21结束语23谢辞24参考文献25绪 论秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。2004年8月28日15点15分,中国选手孟关良/杨文军在雅典奥运会男

10、子500米划艇决赛中,以1分40秒278的成绩获得中国在雅典奥运会的第28金。这是中国皮划艇工程的第一枚奥运金牌,也是中国水上工程在历届奥运会上所获得的第一枚金牌。孟关良/杨文军的成绩比获得银牌的古巴选手只快了 0.072秒,以至于两人在夺冠之后还不敢相信。在现在的体育竞技比赛中,随着运发动的水平不断提高,差距也在不断缩小。有些运动对时间精度的要求也越来越高,有时比赛冠亚军之间的差距只有几毫秒,因此就需要高精度的秒表来记录成绩。本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始暂停的功能。P0口输出段码数据,P2.0-P2.4口作列扫描输出,P

11、1.1、P3.2、P3.3、P2.5分别接四个按钮开关,分别实现开始、暂停、清零和查看上次时间的功能。显示电路由两位共阴极数码管组成。初始状态下计时器显示00,当按下开始键时,外部中断INT1向CPU发出中断请求,CPU转去执行外部中断1效劳程序,即开启定时器T0。计时采用定时器T0中断完成,定时溢出中断周期为1ms,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,到达10次就对十毫秒位进行加一,依次类推,直到99秒重新复位。在计时过程中,只要按下暂停键,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0效劳程序,即关闭定时器T0,调用显示程序,实

12、现暂停功能,同时将此次计时时间存入存放区。然后对P1.1进行扫描。当P1.1按下时就跳转回主程序。等待下一次计时开始。在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,那么讲中间缓存区的数据转入最终缓存区。秒表停止后对查看键P2.5进行扫描,P2.5按下为低电平时,调用最终缓存区的数据进行显示,即显示上一次计时成绩。当P2.5位高电平时,调用显示缓存区的数据进行显示,即显示当此计时的成绩。根据以上设计思路从而实现数字电子秒表的计时和查看上一次计时时间的功能。本文主要内容包括三局部:第一局部介绍硬件局部设计思路及方案;第二局部介绍了软件局部的设计思路和设计;最后一局部那么是整个

13、系统的安装与调试过程。1引言1.1秒表及其开展现状时间是日常生活、工业、医学、环境保护、化工、石油等领域最常遇到的一个物理量。测量时间的根本方法是使用秒表直接测量。其中秒表的精度是人们最关心的,这就要求它的计时最小单位足够小,显示模块的灵敏度足够高。目前人们所能测量的最小计时单位是毫秒级。1.2设计方案1.2.1设计内容 该实验要求进行计时并在数码管上显示时间,那么可利用MCS系列单片机微机仿真实验系统中的芯片8051中的P3.2管脚作为外部中断0的入口地址,并实现“开始按键的功能;将P3.3作为外部中断1的入口地址,并实现“清零按键的功能;使用P0口作为段码数据输出控制口,74LS164用作

14、驱动输出控制,P1.1、P1.2口分别实现暂停、快加的功能。显示电路由两位共阴极数码管组成。使用定时器T0实现10ms的定时,进行快加延时;当想实现正常计数时的1s延时,只需要实现40次25ms的定时器T1控制延时就可以实现。其中“开始按键当开关由1拨向0时开始计时;“清零按键当开关由1拨向0时数码管清零,此时假设再拨“开始按键那么又可重新开始计时。 初始状态下计时器显示00,当按下开始键时,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0效劳程序,即开启定时器T0,并且进行100次计数,当到100次时,即延时1s时,产生一个中断信号,向CPU发出请求,执行计数器加一且送往数码管

15、显示。在计时过程中,只要按下暂停键,即根据P1.0口电平变化去执行控制程序,关断定时器T0和T1,调用显示子程序,实现暂停功能。在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,那么讲中间缓存区的数据转入最终缓存区。 计时采用定时器T1中断完成,定时溢出中断周期为25ms,并同时进行40次计数,当有溢出时,会产生中断信号,向CPU发出中断请求,每发出一次中断请求就对计数单元低位进行加一,到达10次就对高位进行加一,送数码管显示,依此类推,直到99秒后再加一后返回00,重新开始。 数码管显示电路采用动态扫描的方式,由于数码管采用共阴极的接法,当位选信号为高电平时,该位选通,P0

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

17、键采用外部中断的方式。1.2.2设计要求课题需要以MCS-51系列单片机为核心,结合外围电路,制作一款时间参数测量系统。具体要求如下: 1) 使用两位数码管显示,显示时间00-99秒; 2) 正常计数时,每秒自动加一; 3) 一个开始按键,一个复位按键,一个暂停按键和一个快加按键; 4) 实现计数、复位、清零和快加功能; 5) 单片机通电后,首先初始化,然后进行对按键扫描。开始键用来控制秒表工作的开始;暂停键用来暂停程序的运行;快加键控制快速计数的开始,利用暂停键停止;复位键是用来对程序复位用的,当程序出现死循环或想从00开始重新计时,按下复位键可返回程序开始,重新执行。1.2.3 系统方案此

18、方案采用LCD数码管显示测量结果。LCD数码管显示器由8个发光二极管中的7个长条形二极管称七笔段按a、b、c、d、e、f、g顺序组成八字形,另外一个点形的发光二极管dp 放在右下方,用来显示小数点。显示时用扫描每个数码管,同时逐一点亮的方法进行显示. 实际采用电路方框图如图41所示此多点温度测量电路主要由以下几局部组成:控制器单片机AT89C51、显示单元LED数码管显示器、开关选择电路、电源电路等。单机片AT89C51LED显示器电源电路按键电路 图1.2.3 系统设计方框图2 元器件的概述及选择2.1单片机的选择2.1.1 AT89C51单片机介绍 本设计的最主要的元器件就是AT89C51

19、单片机。AT89C51单片机在一块芯片上集成了CPU,存储器RAM,ROM以及输入与输出接口电路,这种芯片习惯上被称为单片微型计算机。AT89C51单片机由CPU,振荡器与时序电路, 4个8位的I/O端口P0,P1,P2,P3,串行口等组成。P0口有三个功能:1、外部扩展存储器时,当作数据总线如图中的D0D7为数据总线接口。2、外部扩展存储器时,当作地址总线如图中的A0A7为地址总线接口。3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。P1口只做I/O口使用:其内部有上拉电阻。P2口有两个功能: 1、扩展外部存储器时,当作地址总线使用; 图2.1 单片

20、机89C512、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能:除了作为I/O使用外其内部有上拉电阻,还有一些特殊功能,由存放器来设置。ALE:地址锁存控制信号PSEN:外部程序存储器读选通信号EA/VPP:访问和序存储器控制信号RST:复位信号XTAL1和XTAL2 VCC:供电电压 GND:接地 2.1.2 AT89C51单片机的优点 AT89C51是一种带4K字节FLASH存储器FPEROMFlash Programmable and Erasable Read Only Memory的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程

21、可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案2.1.3 AT89C51主要特性:与MCS-51 兼容 4K字节可编程FLASH存储器 寿命:1000写/擦循环 数据保存时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部RAM 32可编程I

22、/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路2.2 74LS164的介绍1.164 为 8 位移位存放器,其主要电特性的典型值如下:54/74164 185mW 54/74LS164 80mW当去除端CLEAR为低电平时,输出端QAQH均为低电平。 串行数据输入端A,B可控制数据。当 A、B任意一个为 低电平,那么禁止新数据输入,在时钟端CLOCK脉冲上升沿作用下Q0 为低电平。当A、B 有一个为高电平,那么另一个就允许输入数据,并在CLOCK 上升沿作用下决定Q0 的状态。 2. 引脚功能:CLOCK :时钟输入端CLEAR: 同

23、步去除输入端低电平有效 A,B :串行数据输入端QAQH: 输出端 图1 74LS164封装图图274LS164 内部逻辑图 3. 极限值 电源电压7V 输入电压 5.5V 工作环境温度 54164 -55125 74164 -070 储存温度 -65150 图3 真值表H高电平 L低电平 X任意电平 低到高电平跳变 QA0,QB0,QH0 规定的稳态条件建立前的电平 QAn,QGn 时钟最近的前的电平 图4 时序图4. 选择74LS164的优势1经典串入并出,1个I/O口就可以驱动多个数码管。2响应快 、频率带宽高 、工作温度适应范围大等等3节省IO口啊47段数码管,7个笔画,1个公共端正好

24、对应164的8个输出口,一串164,就可以控制一串数码管.单片机只要付出2个控制脚即可2.3两位LED数码管显示 其中一个两位数码管用来显示数据, 一位用来显示个位秒,另一位用来显示十位秒。当计数超过范围时所有数码管全部清零重新计数。显示原理图如下列图所示:数码管的优势如下: LED数码管类似于洗墙灯什么的,适合户外建筑墙壁上,如果要显示视频的话需要做的很大,整个建筑墙面都可以覆盖,亮度与LED显示屏差不多,但画面肯定没有显示屏细腻的。LED显示屏的话应用蛮广的,可以做室内、半室外、室外显示屏,亮度都很高,画面根据他的点间距可以做的很细腻,但是LED显示屏非常贵,用来做户外广告非常适宜3 数字

25、秒表硬件设计3.1单片机硬件设计3.1.1数字秒表电路设计 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动和快加电路等。主控制器采用单片机8051,显示电路采用两位共阴极LED数码管显示计时时间。 本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始和复位的功能。P0口输出段码数据,74LS164用作驱动输出,P1.1、P1.2、P3.2、P3.3口接四个按钮开关,分别实

26、现暂停、快加、开始和复位功能。电路原理图设计最根本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图3进行设计。主电路见附录。控制开关单片机 AT89C51 位驱动两位数码管 图3.1.1 数字秒表硬件电路根本原理图 根据要求知道秒表设计主要实现的功能是计时和显示。本设计中,数码管显示的数据存放在内存单元11H和12H中。其中12H存放低位数据,11H存放高位数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,分别取出11H、12H地址中的数据,然后查得对应的显示用段码,

27、并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,根本保存了机器语言的灵活性。3.1.2 电源电路电源电路是系统的最根本局部,任何局部都离不开电源局部,单片机系统也不例外,而且我们应该高度重视电源局部,不能因为电源局部电路比拟简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源局部做好才能保证电路的正常工作。3.1.3晶振电路的选择与设计MCS-51单片机内部的振荡电路

28、是一个增益反相放大器,引线XYAL1和XTAL2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路石晶振荡和陶瓷振荡均可采用,有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,单必须保证脉冲的上下电平要求的宽度。晶振电路如图1、2所示。 图1 内部晶振电路 图2 外部晶振电路单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路XTAL1和XTAL2外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到XTAL2的输出时钟

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

30、还要接上拉电阻。3.1.4复位电路的选择与设计单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。上电自动复位通过电容C1充电来实现和限流电阻R2。手动按键复位是通过按键将电阻R1与VCC接通来实现。R1作为上拉电阻,当复位键按下是产生一个触发脉冲,进行复位操作。在MCS51中,复位电路的外部逻辑电路由通过二极管的单向导通性和施密特触发器组成图 3,最常见的几种

31、方式的复位电路如图图4、5、6,它能有效的实现上电复位和手动复位。RST引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,假设使用6MHz晶振,那么需持续4s以上才能完成复位操作。如图中在通电瞬间,由于RC的充电过程,在 RST端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位,在6MHz时钟时,通常CR取22F,R1取200,R2取1K,这时能可靠的上电复位和手动复位。 图3内部复位电路逻辑图 图4上拉复位电路 图5按键电平复位电路 图6按键脉冲复位电路3.2系统总电路的设计 系统总电路由以上设计的显示电路,时钟电路,按键

32、电路和复位电路组成,只要将单片机与以上各局部电路合理的连接就组成了系统总电路。系统总电路图附录B所示。8051单片机为主电路的核心局部,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。8051单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。 复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键和查看键分别接单片机的P1.1和P2.5,均设为低电

33、平有效。而另外的开始键和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口P3.3和P3.2,这两个I/O口的第二功能分别为单片机的外部中断1端口和外部中断0端口。同样设置为位低电平有效。显示电路由两位数码管组成,采用动态显示方式,因此有8位段控制端和5位位控制端,八位段控制接P0口,P0.0P0.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,8051的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。五位位控制那么由低位到高位分别接到P2.0P2.4口,NPN三极管9013做为位控制端的开关,当P2.0P2.4端口任意一个端口为高

34、电平时,与其相对应的三极管就导通,对应的数码管导通显示。通过以上设计已经将各局部电路与单片机有机的结合到一起,硬件局部的设计以大功告成,剩下的局部就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。4 软件设计4.1 程序设计思想本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,根本保存了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其

35、他人更好地理解和阅读系统的程序设计。4.1.1 程序设计流程图本系统程序主要模块由主程序、定时中断效劳程序、外部中断0效劳程序和外部中断1效劳程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统上电复位后,进入主程序,主程序流程图如图10所示,局部子程序流程图由图11、12、13、14、15、16给出。首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0、赋定时器初值,初始化完毕后,就进入数码管显示程序。在主程序中还进行了赋存放区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有

36、请求那么去执行外部中断效劳。并在执行完后返回主程序。开始程序初始化开各中断关定时器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 主程序流程图中断返回调用数码显示子程序调用加一子程序R3-1=?0置初值定时器T0入口地址图14定时器T0子程序INT0入口地址开定时器0中断返回INT1入口地址中断返回调用显示子程序14H=#00H13H=#00HR1=#00HR2=#00H图

37、13 INT1中断子程序图12 INT0中断子程序是否R3=#20H重置循环次数中断返回定时器T1入口地址调用数码显示子程序调用加一子程序置初值P1.0=?0关定时器T0开定时器T112H=R111H=R2调用暂停键子程序图16定时器T1子程序R7=#02H 置数码管个数R0=14H 置首地址R6=#08H 置数码管个数A=R0 A=A+dptrA循环左移 P3.1清零P3.0=CP3.1置位R6-1=?0R7-1=?0R0=R0-1返回图15数码显示流程图否是否是是否4.1.2 数字秒表主程序设计ORG 0000HAJMP MAIN ;主程序入口地址ORG 0003HAJMP ZHONGDU

38、AN0 ;中断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 11H,#00H MOV R1,#00H MOV R2,#00H MOV R3,#40 ;

39、循环40次 MOV TL0,#58H ;定时25ms MOV TH0,#9EH MOV TL1,#0F0H ;定时10ms MOV TH1,#0D8H CLR TR0 ;关断定时器 CLR TR1HERE: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;外

40、部中断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,#00HLOOP:MOV 12H, R1 ;重新加载计数值 MOV 11H,R2 RET;显示子程序XIANSHI:MOV R7,#02H ;2个数码管显示子程序

41、 MOV R0,#12HLOOP1:MOV R6,#08H ;8位2进制数 MOV A,R0 MOVC A,A+DPTRLOOP2: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,#4

42、0 ;循环次数重加载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 RETITAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴接法数码管地址表 END4.2 数字秒表仿真图5 数字秒表的系统调试5.1 测试仪器DS5102CA 100MHZ 双信道数字示波器一

43、台DF17351SB5AB直流电源一台奔四3.0计算机一台万用表一块5.2软件调试软件调试的任务是利用软件的开发工具进行仿真调试,发现和纠正程序错误,同时也能发现硬件故障。程序的调试应该一个模块接一个模块地进行,首先单独调试各功能子程序,检查程序是否能够实现预期的功能,接口电路的控制是否正确等;最后是逐步将各个子程序连接起来总调试。在软件编写和调试过程中应注意一下几点:一、子程序的名称标号一定不要重复,在整个程序中不允许有两个名字相同的子程序;二、语句中间的标点符号须在英文输入环境下,中文环境下的标点Keiil uVsion3编译软件不识别,会出现一些不易查找的问题,这一点需特别注意;三、当子

44、程序间有值传递时,必须注意实参和形参的类型;四、程序要有尽量详细的注释,以便问题的查找和增强程序的易读性。我首先将编好的程序在Keiil uVsion3环境之中进行编译,第一次未通过,经过错误提示我发现是几处标点的格式为中文格式导致编译软件不能识别,还有一处丢掉了一个分号,改正之后就运行正常,最终生产了HEX文件。程序编写完毕,就可开始系统的仿真调试,应该先采取软件仿真,确保整个程序无语法错误,排除逻辑错误及其他错误,然后开始硬件调试。软件仿真主要采用Keil和Proteus相结合的方式。在Proteus的库中将所需的元件调出按照硬件设计原理图将其连接好,将已生成的HEX文件加载入AT89C5

45、1之中,运行之后显示出了秒表的功能。5.3硬件测试先分别调试各功能单元模块,调通后再进行整机调试,以提高调试效率。调试过程如下:(1) AT89C51 这局部电路是系统的主要局部,接上电源后先用万用表测量单片机的20引脚是否为低电平,再测量40引脚和31引脚是否为高电平,正常后用示波器测量30引脚,看是否输出2M的方波信号,正常后说明单片机已起振。(2) 显示局部调试 执行液晶清屏和全部点亮等简单的操作,当调试成功后,再进行查表操作,往液晶里写数字和汉字,都成功后说明液晶局部已经可以控制。 (3) 整机调试 各个局部都调通后,将各局部连起来调,检查是否能满足根本功能,这局部工作量较大,要注意软

46、件上各个局部的衔接,是否有互相影响的因素,由于程序中用到了中断,要注意对现场的保护,还要考虑开关消抖时间是否合理。这时候硬件电路出错的可能已经比拟小,但是也要注意各局部是否有互相影响的地方,要注意防止外界的干扰。(4) 问题的出现和解决 当我把一切都调试好后,发现显示屏还是没有信号的显示。经过查阅资料和请叫其他同学后,知道是没有给单片机连向显示屏的端口接上拉电阻。补上后显示正常。结束语 本设计的数字电子秒表是由8051单片机、共阴数码显示管、控制按键等器件构成的,设有两位计时显示,开始、暂停、复位按键以及一个实现快加功能的按钮。计时精度能到达10ms,设计精简,使用简单易懂。系统设计合理,线路

47、简单、功能先进,性能稳定,程序精简。并给出了详细的电路设计方法。采用汇编语言来进行软件设计,利用汇编语言面向机器并能较好的发挥机器的特性,且用内存少,执行速度快,能提高秒表的精度。通过本次设计,复习稳固我们以前所学习的数字、模拟电子技术、单片机原理及应用等课程知识,加深对各门课程及相互关系的理解,并成功使用了keil和Proteus两个软件,使理论知识系统化、实用化,系统地掌握微机应用系统的一般设计方法,培养较强的编程能力、开发能力。同时,在设计的过程中,我也发现了本系统的许多缺乏和可以改良的地方。比方快进的时候无法显示数字,以及本次设计的数字电子秒表缺少对屡次计时时间进行记录的功能。本次课程

48、设计实现了用AT80C51单片机模拟数字秒表控制。设计中把74LS164用作驱动输出控制,输出结果用两个共阴极LED数码管显示。软件设计时,应用中断子程序和查表的方式。总之此次设计使我更深刻的了解硬件和软件。谢辞在整个毕业设计中,我得到了指导老师汪老师的热心指导和帮助,感谢汪老师的悉心指导和教诲,汪老师渊博的学识、严谨的治学态度以及为人师表的言行举止,深深地感染和鼓励着我。从课题的选择到工程的最终完成,汪老师都始终给予我细心的指导和不懈的支持。汪老师屡次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励,这让我在整个论文的撰写过程中学习到了很多关于课题研究方面的知识。 真诚的

49、感谢参加论文评审的各位老师,感谢你们的辛勤劳动和即将从你们那里获得的有益教诲;感谢同学在设计中给予我的指导和帮助。在设计过程中他们屡次帮助我解决问题。多亏了舍友的开导和帮助,这次的设计才得以顺利完成。在这三年的学期中结识的各位生活和学习上的挚友让我得到了人生最大的一笔财富。在此,也对他们表示衷心感谢。 本文参考了大量的文献资料,在此,向各学术界的前辈们致敬。最后要感谢的是我的父母和家人,感谢他们多年来对我默默的支持和帮助。由衷的希望在未来的日子里,周围的老师、同学和朋友们一如既往的在各方面继续给予我更多的指教和帮助,以期取得新的进步和成绩来回报大家。参考文献1:李华,王思明,张金敏.单片机原理

50、及应用M.兰州:兰州大学出版社,2001.5.2吴蓉,梁龙学,崔用明.数字电子技术M.兰州:兰州大学出版社,2006.7.3 顾滨,李勋.单片微计算机原理开发与应用M.北京:高等教育出版社,2000.2.4 郑毛祥.单片机应用根底.人民邮电出版社,2006.6:21-425 李邓化,彭书华,许晓飞智能检测技术及仪表科学出版社,2007:194-2016 戴佳. 单片机C51语言应用程序设计. 电子工业出版社, 2006.7:168-1697 朱民雄.计算机语言技术. 北京航空航天大学出版社,2002.1:103-1058 李鸿. 单片机原理及应用. 湖南大学出版社. 2004:8:72-739 刘建清. 单片机技术. 国防工业出版社, 2006.8: 104-105 10 杨宁,胡学军单片机与控制技术北京航空航天大学出版社,2005-03:306-32211 马忠梅等单片机C语言应用程序设计北京航空航天大学出版社,1997:201-211

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!