




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安航空职业技术学院西安航空职业技术学院 毕毕 业业 设设 计(论计(论 文)文) 论文题目:论文题目: 所属系部:所属系部: 电子工程系电子工程系 指导老师:指导老师: 职职 称:称: 学生姓名:学生姓名: 班级、学号班级、学号: : 专专 业:业: 西安航空职业技术学院制西安航空职业技术学院制 年 月 日 2 西安航空职业技术学院西安航空职业技术学院 毕业设计(论文)任务书毕业设计(论文)任务书 题目:题目: 任务与要求:任务与要求: 时间:时间: 年 月 日 至 年 月 日 共 周 所属系部:所属系部: 学生姓名:学生姓名: 学学 号:号: 专业:专业: 指导单位或教研室:指导单位或教研室: 指导教师:指导教师: 职职 称:称: 西安航空职业技术学院制西安航空职业技术学院制 年 月 日 毕业设计毕业设计( (论文论文) )进度计划表进度计划表 3 日日 期期工工 作作 内内 容容执执 行行 情情 况况 指导教师指导教师 签签 字字 教师对进教师对进 度计划实度计划实 施情况总施情况总 评评 签名 年 月 日 本表作评定学生平时成绩的依据之一。 4 基于单片机数字秒表的设计基于单片机数字秒表的设计 【摘要】 近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐 述了基于单片机的数字电子秒表设计。本设计主要特点是计时精度达到 0.01s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞 赛的必备设备之一。 本设计的数字电子秒表系统采用 8051 单片机为中心器件,利用其定时器/计数 器定时和记数的原理,结合显示电路、LED 数码管以及外部中断电路来设计计 时器。将软、硬件有机地结合起来,使得系统能够实现两位 LED 显示,显示时 间为 099.9 秒,计时精度为 0.1 秒,能正确地进行计时,同时能记录一次时 间,并在下一次计时后对上一次计时时间进行查询。其中软件系统采用汇编语 言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等, 并在 WAVE 中调试运行,硬件系统利用 PROTEUS 强大的功能来实现,简单切易于 观察,在仿真中就可以观察到实际的工作状态。 关键字:单片机;数字电子秒表;仿真 I 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 characteristics 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 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. 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 automatically 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 PROTEUS 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 1 目 录 绪绪 论论 .2 1 1 引言引言 3 1.11.1 秒表及其发展现状秒表及其发展现状3 1.21.2 设计方案设计方案3 1.2.1设计内容3 1.2.2设计要求4 1.2.3 系统方案.4 2 2 元器件的概述及选择元器件的概述及选择 .5 2.12.1 单片机的选择单片机的选择5 2.1.1 AT89C51单片机介绍5 2.1.2 74LS164的介绍6 2.1.3两位LED数码管显示7 3 3 数字秒表硬件设计数字秒表硬件设计 .9 3.13.1 单片机硬件设计单片机硬件设计9 3.1.1数字秒表电路设计9 3.1.2 电源电路.10 3.1.3晶振电路的选择与设计10 3.1.4复位电路的选择与设计11 3.23.2 系统总电路的设计系统总电路的设计12 4 4 软件设计软件设计 .12 4.14.1 程序设计思想程序设计思想12 4.1.1 程序设计流程图.13 4.1.2 数字秒表主程序设计.16 4.24.2 数字秒表仿真图数字秒表仿真图20 5 5 数字秒表的系统调试数字秒表的系统调试 .21 5.15.1 测试仪器测试仪器21 5.25.2 软件调试软件调试21 5.35.3 硬件测试硬件测试21 结束语结束语 .23 谢辞谢辞 .24 参考文献参考文献 .25 2 绪绪 论论 秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计 时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的 时间测试。 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 位高电平时,调用显示缓存区的数据进行显示,即显示当此计时的 成绩。根据以上设计思路从而实现数字电子秒表的计时和查看上一次计时时间 的功能。 本文主要内容包括三部分:第一部分介绍硬件部分设计思路及方案;第二部分 介绍了软件部分的设计思路和设计;最后一部分则是整个系统的安装与调试过 程。 3 1 1 引言引言 1.11.1 秒表及其发展现状秒表及其发展现状 时间是日常生活、工业、医学、环境保护、化工、石油等领域最常遇到的 一个物理量。测量时间的基本方法是使用秒表直接测量。其中秒表的精度是人 们最关心的,这就要求它的计时最小单位足够小,显示模块的灵敏度足够高。 目前人们所能测量的最小计时单位是毫秒级。 1.21.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 口中的数据送到该段上显示,节省接口资 源,又能实时动态的性能。 再看按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法 来识别。复位键和开始键功能在于使程序从头执行,对于时间的要求即单片机 4 上电初始化时的值 00;而停止键则要用于对时间的锁定,需要比较准确的控制; 而对于快加键,当检测到有快加信号时,则启动定时器 T0, 完成一个周期定时 时产生一个溢出中断请求,向 CPU 发送请求,每发一次就对计数单元低位进行 加一操作,达到 10 次就对高位进行加一操作,送数码管显示,依次循环;同时 检测是否有暂停信号,有暂停信号时,跳出快加程序,执行显示子程序。因此 可以对暂停和快加按键采取扫描的方式。而对开始和复位键采用外部中断的方 式。 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 放在右下方,用来显示小数点。显示时用扫描 每个数码管,同时逐一点亮的方法进行显示. 实际采用电路方框图如图 41 所示此多点温度测量电路主要由以下几部分 组成:控制器单片机 AT89C51、显示单元 LED 数码管显示器、开关选择电路、 电源电路等。 单机片 AT89C51 LED 显示器 电源电路 按键电路 5 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 图 1.2.3 系统设计方框图 2 2 元器件的概述及选择元器件的概述及选择 2.12.1 单片机的选择单片机的选择 2.1.1 AT89C51 单片机介绍单片机介绍 本设计的最主要的元器件就是 AT89C51 单片机。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 单片机 89C51 2、做一般 I/O 口使用,其内部有上拉电阻; P3 口有两个功能: 除了作为 I/O 使用外(其内部有上拉电阻) ,还有一些特殊功能,由寄存器 来设置。 ALE:地址锁存控制信号 PSEN:外部程序存储器读选通信号 EA/VPP:访问和序存储器控制信号 RST:复位信号 XTAL1 和 XTAL2 VCC:供电电压 GND:接地 2.1.2 AT89C51 单片机的优点单片机的优点 6 AT89C51 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机。 AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只 读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造, 与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组 合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简 版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 2.1.32.1.3 AT89C51AT89C51 主要特性:主要特性: 与 MCS-51 兼容 4K 字节可编程 FLASH 存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288 位内部 RAM 32 可编程 I/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: 同步清除输入端(低电平有效) A,B :串行数据输入端 QAQH: 输出端 7 图 1 74LS164 封装图 图 2 74LS164 内部逻辑图 3. 极限值 电源电压 7V 输入电压 5.5V 工作环境温度 54164 -55125 74164 -070 储存温度 -65150 图 3 真值表 H高电平 L低电平 X任意电平 低到高电平跳变 QA0,QB0,QH0 规定的稳态条件建立前的电平 QAn,QGn 时钟最近的前的电平 8 图 4 时序图 4. 选择 74LS164 的优势 (1)经典串入并出,1 个 I/O 口就可以驱动多个数码管。 (2)响应快 、频率带宽高 、工作温度适应范围大等等 (3)节省 IO 口啊 (4)7 段数码管,7 个笔画,1 个公共端正好对应 164 的 8 个输出口,一串 164,就可以控制一 串数码管.单片机只要付出 2 个控制脚即可 2.3 两位两位 LED 数码管显示数码管显示 其中一个两位数码管用来显示数据, 一位用来显示个位秒,另一位用来显 示十位秒。当计数超过范围时所有数码管全部清零重新计数。 显示原理图如下图所示: 9 数码管的优势如下: LED 数码管类似于洗墙灯什么的,适合户外建筑墙壁上,如果要显示视频的话需要做 的很大,整个建筑墙面都可以覆盖,亮度与 LED 显示屏差不多,但画面肯定没有显示屏细 腻的。LED 显示屏的话应用蛮广的,可以做室内、半室外、室外显示屏,亮度都很高,画 面根据他的点间距可以做的很细腻,但是 LED 显示屏非常贵,用来做户外广告非常合适 10 3 3 数字秒表硬件设计数字秒表硬件设计 3.13.1 单片机硬件设计单片机硬件设计 3.1.1 数字秒表电路设计数字秒表电路设计 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使 用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制 器,计时与显示电路和回零、启动和快加电路等。主控制器采用单片机 8051, 显示电路采用两位共阴极 LED 数码管显示计时时间。 本设计利用 8051 单片机的定时器/计数器定时和记数的原理,使其能精确计 时。利用中断系统使其能实现开始和复位的功能。P0 口输出段码数据, 74LS164 用作驱动输出,P1.1、P1.2、P3.2、P3.3 口接四个按钮开关,分别实 现暂停、快加、开始和复位功能。电路原理图设计最基本的要求是正确性,其 次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照 图 3 进行设计。主电路见附录。 控制开关 单片机 AT89C51 位驱动 两位数码管 图 3.1.1 数字秒表硬件电路基本原理图 根据要求知道秒表设计主要实现的功能是计时和显示。本设计中,数码管 显示的数据存放在内存单元 11H 和 12H 中。其中 12H 存放低位数据,11H 存放 高位数据,每一地址单元内均为十进制 BCD 码。由于采用软件动态扫描实现数 据显示功能,显示用十进制 BCD 码数据的对应段码存放在 ROM 表中。显示时, 分别取出 11H、12H 地址中的数据,然后查得对应的显示用段码,并从 P0 口输 出,P2 口将对应的数码管选中供电,就能显示该地址单元的数据值。采用了汇 编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进 制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符 号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语 言的灵活性。 11 3.1.2 电源电路电源电路 电源电路是系统的最基本部分,任何部分都离不开电源部分,单片机系统 也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单 而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能 保证电路的正常工作。 3.1.3 晶振电路的选择与设计晶振电路的选择与设计 MCS-51 单片机内部的振荡电路是一个增益反相放大器,引线 XYAL1 和 XTAL2 分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出, 该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成 时钟,外部还需要附加电路石晶振荡和陶瓷振荡均可采用,有余输入至内部时 钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,单 必须保证脉冲的高低电平要求的宽度。晶振电路如图 1、2 所示。 图 1 内部晶振电路 图 2 外部晶振电路 单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。 利用其内部的震荡电路 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,所以还要接上拉电阻。 12 3.1.4 复位电路的选择与设计复位电路的选择与设计 单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位 操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接 通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复 位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平, 从而实现复位操作。上电自动复位通过电容 C1 充电来实现和限流电阻 R2。手 动按键复位是通过按键将电阻 R1 与 VCC 接通来实现。R1 作为上拉电阻,当复 位键按下是产生一个触发脉冲,进行复位操作。 在 MCS51 中,复位电路的外部逻辑电路由通过二极管的单向导通性和施 密特触发器组成(图 3) ,最常见的几种方式的复位电路如图(图 4、5、6) , 它能有效的实现上电复位和手动复位。RST 引脚是复位信号输入端,复位信号 为高电平有效,其有效时间应持续 24 个振荡周期以上才能完成复位操作,若使 用 6MHz 晶振,则需持续 4s 以上才能完成复位操作。如图中在通电瞬间,由 于 RC 的充电过程,在 RST 端出现一定宽度的正脉冲,只要该正脉冲保持 10ms 以上,就能使单片机自动复位,在 6MHz 时钟时,通常 CR 取 22F,R1 取 200,R2 取 1K,这时能可靠的上电复位和手动复位。 图 3 内部复位电路逻辑图 图 4 上拉复位电路 13 图 5 按键电平复位电路 图 6 按键脉冲复位电路 3.23.2 系统总电路的设计系统总电路的设计 系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成, 只要将单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路 图附录 B 所示。 8051 单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹 和协调各个电路的运行工作。 8051 单片机提供了 XTAL1 和 XTAL2 两个专用引脚接晶振电路,因此只要将晶振 电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽 量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。 复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高 电平有效。 按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键和查 看键分别接单片机的 P1.1 和 P2.5,均设为低电平有效。而另外的开始键和暂 停键两键使用了外部中断,所以需要连接到单片机的特殊接口 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 端口任意一个端口为高电平时,与其相对应的三极管就导通,对 应的数码管导通显示。 通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计 以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数 字电子秒表的全部功能。 4 4 软件设计软件设计 4.14.1 程序设计思想程序设计思想 本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序, 比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇 编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应, 基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的 14 特性,得到质量较高的程序。 模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地 理解和阅读系统的程序设计。 4.1.1 程序设计流程图程序设计流程图 本系统程序主要模块由主程序、定时中断服务程序、外部中断 0 服务程序 和外部中断 1 服务程序组成。其中主程序是整个程序的主体。可以对各个中断 程序进行调用。协调各个子程序之间的联系。系统(上电)复位后,进入主程 序,主程序流程图如图 10 所示,部分子程序流程图由图 11、12、13、14、15、16 给出。首先对系统进行初始化,包括设置各入口地址、 中断的开启、对各个数据缓存区清“0” 、赋定时器初值,初始化完毕后,就进 入数码管显示程序。在主程序中还进行了赋寄存区的初始值、设置定时器初值 以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部 中断有请求则去执行外部中断服务。并在执行完后返回主程序。 15 图 11 加一子程序流程图 R1=R1+1 14H=R1 R1=?#0ah hhhhhh? #AH R2=?#0ah R1=#00H R2=R2+1 R2=#00H 结束 否 否 是 是 图 10 主程序流程图 开始 程序初始化 开各中断 关定时器 0,1 调用显示子程序 P1.0=?1 P1.0=?0 P1.2=?1 关定时器 0,1 P1.2=?0 是 否 是 是 是 否 否 否 16 INT0 入口地址 开定时器 0 中断返回 INT1 入口地址 中断返回 调用显示子程序 14H=#00H 13H=#00H R1=#00H R2=#00H 图 13 INT1 中断子程序 图 12 INT0 中断子程 序 是 否 R3=#20H 重置循环次数 定时器 T0 入口地址 置初值 R3-1=?0 调用加一子程序 调用数码显示子程序 中断返回 图 14 定时器 T0 子程 序 17 R7=#02H 置数码管个数 R0=14H 置首地址 R6=#08H 置数码管个数 A=R0 A=A+dptr A 循环左移 P3.1 清零 P3.0=C P3.1 置位 R6-1=?0 R7-1=?0 R0=R0-1 返回 图 15 数码显示流程图 否 是 否 是 是 否 4.1.2 数字秒表主程序设计数字秒表主程序设计 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 主程序开始外部中断跳变 中断返回 定时器 T1 入口地址 调用数码显示子程序 调用加一子程序 置初值 P1.0=?0 关定时器 T0 开定时器 T1 12H=R1 11H=R2 调用暂停键子程序 图 16 定时器 T1 子程 序 18 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 ;调用显示子程序 19 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 赋初 值 20 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 21 4.24.2 数字秒表仿真图数字秒表仿真图 22 5 5 数字秒表的系统调试数字秒表的系统调试 5.15.1 测试仪器测试仪器 DS5102CA 100MHZ 双信道数字示波器一台 DF17351SB5AB 直流电源一台 奔四 3.0 计算机一台 万用表一块 5.25.2 软件调试软件调试 软件调试的任务是利用软件的开发工具进行仿真调试,发现和纠正程序错 误,同时也能发现硬件故障。 程序的调试应该一个模块接一个模块地进行,首先单独调试各功能子程序, 检查程序是否能够实现预期的功能,接口电路的控制是否正确等;最后是逐步 将各个子程序连接起来总调试。在软件编写和调试过程中应注意一下几点:一、 子程序的名称标号一定不要重复,在整个程序中不允许有两个名字相同的子程 序;二、语句中间的标点符号须在英文输入环境下,中文环境下的标点 Keiil uVsion3 编译软件不识别,会出现一些不易查找的问题,这一点需特别注意; 三、当子程序间有值传递时,必须注意实参和形参的类型;四、程序要有尽量 详细的注释,以便问题的查找和增强程序的易读性。 我首先将编好的程序在 Keiil uVsion3 环境之中进行编译,第一次未通过, 经过错误提示我发现是几处标点的格式为中文格式导致编译软件不能识别,还 有一处丢掉了一个分号,改正之后就运行正常,最终生产了 HEX 文件。 程序编写完毕,就可开始系统的仿真调试,应该先采取软件仿真,确保整 个程序无语法错误,排除逻辑错误及其他错误,然后开始硬件调试。软件仿真 主要采用 Keil 和 Proteus 相结合的方式。在 Proteus 的库中将所需的元件调出 按照硬件设计原理图将其连接好,将已生成的 HEX 文件加载入 AT89C51 之中, 运行之后显示出了秒表的功能。 5.35.3 硬件测试硬件测试 先分别调试各功能单元模块,调通后再进行整机调试,以提高调试效率。 调试过程如下: (1) AT89C51 这部分电路是系统的主要部分,接上电源后先用万用表测 23 量单片机的 20 引脚是否为低电平,再测量 40 引脚和 31 引脚是否为高电平,正 常后用示波器测量 30 引脚,看是否输出 2M 的方波信号,正常后说明单片机已 起振。 (2) 显示部分调试 执行液晶清屏和全部点亮等简单的操作,当调试成功 后,再进行查表操作,往液晶里写数字和汉字,都成功后说明液晶部分已经可 以控制。 (3) 整机调试 各个部分都调通后,将各部分连起来调,检
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省无锡市阴山中学2024-2025学年初三考前适应性训练考试(三)物理试题试卷含解析
- 郑州科技学院《锅炉原理》2023-2024学年第二学期期末试卷
- 新疆轻工职业技术学院《新闻采编实务》2023-2024学年第二学期期末试卷
- 新疆维吾尔自治区轮台县第二中学2025年初三3月测试(线上)语文试题含解析
- 柳州城市职业学院《歌曲写作与分析》2023-2024学年第二学期期末试卷
- 宁夏职业技术学院《统计建模与数据分析》2023-2024学年第一学期期末试卷
- 中学2025届高三第二学期第一次四校联考生物试题含解析
- 长治市潞城市2024-2025学年数学五年级第二学期期末统考试题含答案
- 湖南省长沙市XX中学2025年初三下学期第三次模拟考试(期中)英语试题含答案
- 护理员消毒隔离知识培训
- (三诊)绵阳市高中2022级高三第三次诊断性考试 历史试卷A卷(含答案)
- 山东省高中名校2025届高三4月校际联合检测大联考生物试题及答案
- 2025年中铁快运股份有限公司招聘(98人)笔试参考题库附带答案详解
- 2025年武汉数学四调试题及答案
- 职业病防护设施与个体防护用品的使用和维护
- 绿化养护服务投标方案(技术标)
- 2024年郑州信息科技职业学院单招职业适应性测试题库学生专用
- 中国纺织文化智慧树知到期末考试答案2024年
- TB-T 3356-2021铁路隧道锚杆-PDF解密
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 偶像之路表格
评论
0/150
提交评论