




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I (2011 届)届) 专科毕业设计专科毕业设计 基于单片机数字秒表设计基于单片机数字秒表设计 20112011 年年 6 6 月月 学学 院(部):院(部): 电电气与信息工程学院气与信息工程学院 专专 业业: : 电电气自气自动动化化 学学 生姓生姓 名:名: 班班 级级: : 电电气气 0632 学号学号 指指导导教教师师姓名:姓名: 职职称称 副教授副教授 最最终评终评定成定成绩绩: : II 摘 要 近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基 于单片机的数字电子秒表设计。本设计主要特点是计时精度达到 0.001s,解决了传统 的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。另外 硬件部分设置了查看按键,可以对秒表上一次计时时间进行保存,供使用者查询。 本设计的数字电子秒表系统采用 AT89C52 单片机为中心器件,利用其定时器/计 数器定时和记数的原理,结合显示电路、LED 数码管以及外部中断电路来设计计时器。 将软、硬件有机地结合起来,使得系统能够实现五位 LED 显示,显示时间为 099.999 秒,计时精度为 0.001 秒,能正确地进行计时,同时能记录一次时间,并在 下一次计时后对上一次计时时间进行查询。其中软件系统采用汇编语言编写程序,包 括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在 WAVE 中调试运 行,硬件系统利用 PROTEUS 强大的功能来实现,简单切易于观察,在仿真中就可以 观察到实际的工作状态。 关键字关键字:单片机;数字电子秒表;仿真 III 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.001s, 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.999 seconds, Timing accuracy of 0.001 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;STC89C52 目 录 绪 论.1 第 1 章 硬件设计.4 1.1 总体方案的设计.4 1.2 单片机的选择.5 1.3 显示电路的选择与设计.8 1.4 按键电路的选择与设计.11 1.5 时钟电路的选择与设计.12 1.6 复位电路的选择与设计.14 1.7 系统总电路的设计.16 第 2 章 软件设计.19 2.1 程序设计思想.19 2.2 系统资源的分配.19 2.3 主程序设计.20 2.4 中断程序设计.21 第 3 章 数字电子秒表的安装与调试.26 3.1 软件的仿真与调试.26 3.2 硬件的安装与调试.26 3.3 系统程序的烧录.27 3.4 数字电子秒表的精度调试.28 结 论.29 致 谢.30 参考文献.31 附录 A 资料.32 附录 B 程序.37 附录 C 电路原理图.44 附录 D 硬件实物图.45 湖南工业大学专科毕业设计(论文) 1 绪 论 秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计时 仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。 奥运男子百米飞人大战中,牙买加飞人博尔特以 9 秒 69 的成绩夺得冠军。而博尔 特冲过终点的瞬间,荧屏显示其成绩为 9 秒 68。相差的这个 0.01 秒,系由电子计时系 统确认。 奥运会男子 100 米蝶泳决赛上,美国选手菲尔普斯以 50 秒 58 的成绩惊险夺冠, 距离“八金梦想”仅一步之遥。塞尔维亚选手查维奇以 50.59 秒获得银牌,只比菲尔普斯 慢 0.01 秒。这种细微的差距,即使是现场大屏幕用经典超慢镜头回放,也无法分辨。 2004 年 8 月 28 日 15 点 15 分,中国选手孟关良/杨文军在雅典奥运会男子 500 米 划艇决赛中,以 1 分 40 秒 278 的成绩获得中国在雅典奥运会的第 28 金。这是中国皮 划艇项目的第一枚奥运金牌,也是中国水上项目在历届奥运会上所获得的第一枚金牌。 孟关良/杨文军的成绩比获得银牌的古巴选手只快了 0.072 秒,以至于两人在夺冠之后 还不敢相信。 自首届现代奥运会在希腊雅典举办以来,奥运计时技术一直在不断地向前发展。 一百多年过去了,首届现代奥运会上计时所用的跑表如今换成了一系列高科技计时装 置,如高速数码摄像机、电子触摸垫、红外光束、无线应答器等等。鉴于当今计时技 术的快速发展,即便千分之一秒(为眨眼的 40 倍)的毫微差距,也决定着冠军的归属。 在现在的体育竞技比赛中,随着运动员的水平不断提高,差距也在不断缩小。有 些运动对时间精度的要求也越来越高,有时比赛冠亚军之间的差距只有几毫秒,因此 就需要高精度的秒表来记录成绩。 有关计时钟表的发展历史,大致可以分为三个演变阶段。 一、从大型钟向小型钟演变。二、从小型钟向袋表过渡。三、从袋表向腕表发展。 每一阶段的发展都是和当时的技术发明分不开的。 1088 年,当时我国宋朝的科学家苏颂和韩工廉等人制造了水运仪象台,它是把浑 仪、浑象和机械计时器组合起来的装置。它以水力作为动力来源,具有科学的擒纵机 湖南工业大学专科毕业设计(论文) 2 构,虽然几十年后毁于战乱,但它在世界钟表史上具有极其重要的意义。 1656 年,荷兰的科学家惠更斯应用伽利略的理论设计了钟摆,第二年,在他的指 导下年轻钟匠 S.Coster 制造成功了第一个摆钟。1675 年,他又用游丝取代了原始的钟 摆,这样就形成了以发条为动力、以游丝为调速机构的小型钟,同时也为制造便于携 带的袋表提供了条件。 18 世纪期间发明了各种各样的擒纵机构,为袋表的进一步产生与发展奠定了基础。 英国人 George Graham 在 1726 年完善了工字轮擒纵机构,它和之前发明的垂直放置的 机轴擒纵机构不同,所以使得袋表机芯相对变薄。 20 世纪初,尤其是第一次世界大战的爆发,袋表已经不能适应作战军人的需要, 腕表的生产成为大势所趋。许多新的设计和技术也被应用在腕表上,成为真正意义上 的带在手腕上的计时工具。紧接着的二战使腕表的生产量大幅度增加,价格也随之下 降,使普通大众也可以拥有它。腕表的年代到来了! 1998 年:建立超冷铯原子钟,比微微秒又要精确 10 万倍。 从我国水运仪像台的发明到现在各国都在研制的原子钟这几百年的钟表演变过程 中,我们可以看到,各个不同时期的科学家和钟表工匠用他们的聪明的智慧和不断的 实践融合成了一座时间的隧道,同时也为我们勾勒了一条钟表文化和科技发展的轨迹。 本设计利用 AT89C52 单片机的定时器/计数器定时和记数的原理,使其能精确计时。 利用中断系统使其能实现开始暂停的功能。P0 口输出段码数据,P2.0-P2.4 口作列扫描 输出,P1.1、P3.2、P3.3、P2.5 分别接四个按钮开关,分别实现开始、暂停、清零和查 看上次时间的功能。显示电路由五位共阴极数码管组成。 初始状态下计时器显示 00.000,当按下开始键时,外部中断 INT1 向 CPU 发出中 断请求,CPU 转去执行外部中断 1 服务程序,即开启定时器 T0。计时采用定时器 T0 中断完成,定时溢出中断周期为 1ms,当一处中断后向 CPU 发出溢出中断请求,每发 出一次中断请求就对毫秒计数单元进行加一,达到 10 次就对十毫秒位进行加一,依次 类推,直到 99.999 秒重新复位。在计时过程中,只要按下暂停键,外部中断 INT0 向 CPU 发出中断请求,CPU 转去执行外部中断 0 服务程序,即关闭定时器 T0,调用显示 程序,实现暂停功能,同时将此次计时时间存入寄存区。然后对 P1.1 进行扫描。当 P1.1 按下时就跳转回主程序。等待下一次计时开始。 在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则 湖南工业大学专科毕业设计(论文) 3 讲中间缓存区的数据转入最终缓存区。秒表停止后对查看键 P2.5 进行扫描,P2.5 按下 为低电平时,调用最终缓存区的数据进行显示,即显示上一次计时成绩。当 P2.5 位高 电平时,调用显示缓存区的数据进行显示,即显示当此计时的成绩。根据以上设计思 路从而实现数字电子秒表的计时和查看上一次计时时间的功能。 本文主要内容包括三部分:第一部分介绍硬件部分设计思路及方案;第二部分介 绍了软件部分的设计思路和设计;最后一部分则是整个系统的安装与调试过程。 湖南工业大学专科毕业设计(论文) 4 第 1 章 硬件设计 1.1 总体方案的设计 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本 设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计 时与显示电路和回零、启动和停表电路等。主控制器采用单片机 AT89C52,显示电路 采用共阴极 LED 数码管显示计时时间。 本设计利用 AT89C52 单片机的定时器/计数器定时和记数的原理,使其能精确计 时。利用中断系统使其能实现开始暂停的功能。P0 口输出段码数据,P2.0-P2.4 口作列 扫描输出,P1.1、P3.2、P3.3、P2.5 口接四个按钮开关,分别实现开始、暂停、清零和 查看上次计时时间功能。电路原理图设计最基本的要求是正确性,其次是布局合理, 最后在正确性和布局合理的前提下力求美观。硬件电路图按照图 1.1 进行设计。 AT89C52 单片机控制器 控制开关位驱动 五位数码管 图 1.1 数字秒表硬件电路基本原理图 根据要求知道秒表设计主要实现的功能是计时和显示。因此设置了四个按键和五 位数码管显示时间,三个按键分别是开始,停止、复位和查看上次计时时间按键。利 用这四个建来实现秒表的全部功能,而五位数码管则能显示最多 99.999 秒的计时。 本设计中,数码管显示的数据存放在内存单元 79H7DH 中。其中 79H 存放毫秒 位数据,7AH 存放十毫秒位数据,7BH 存放百毫秒位数据,7CH 存放秒位数据,7DH 存放十秒位数据,每一地址单元内均为十进制 BCD 码。由于采用软件动态扫描实现数 据显示功能,显示用十进制 BCD 码数据的对应段码存放在 ROM 表中。显示时,先取 出 79H-7dH 某一地址中的数据,然后查得对应的显示用段码,并从 P0 口输出,P2 口 湖南工业大学专科毕业设计(论文) 5 将对应的数码管选中供电,就能显示该地址单元的数据值。 最终缓存区则设置为 59H-5DH,数据存放规则和 79H-7DH 一样。分别对应存放毫 秒位至十秒位数据。与 79H-7DH 存储区不一样的是:59H-5DH 存储的内容为数字秒表 上一次计时显示的时间。而 79H-7DH 为当前计时时间存储区。 计时采用定时器 T0 中断完成,定时溢出中断周期为 1ms,当一处中断后向 CPU 发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到 10 次就对 十毫秒位进行加一,依次类推,直到 99.999 秒重新复位。 再看按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法来识别。 复位键和查看主要功能在于数值复位和查询上次计时时间,对于时间的要求不是很严 格。而开始和停止键则是用于对时间的锁定,需要比较准确的控制。因此可以对复位 和查看按键采取扫描的方式。而对开始和停止键采用外部中断的方式。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,显 示电路和回零、启动、查看、停表电路等。主控制器采用单片机 AT89C52,显示电路采 用共阴极 LED 数码管显示计时时间,四个按键均采用触点式按键。 1.2 单片机的选择 本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自 己的实际情况,选择了 ATMEL 公司的 AT89S51。 ATMEL 公司的 89 系列单片机以其卓越的性能、完善的兼容性、快捷便利的电擦 写操作,低廉的价格、超强的加密功能,完全替代 87C51/62 和 8751/52,低电压、低 电源、低功耗,有 DIP、PLCC、QFP 封装,有民用型、工业级、汽车级、军品级等多 种温度等级,是当今世界上性能最好、价格最低、最受欢迎的八位单片机3。 AT89C52P 为 40 脚双列直插封装的 8 位通用微处理器,采用工业标准的 C51 内 核,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功能控 制。功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部接口等功能部件的初始化, 会聚调整控制,会聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。 单片机的外部结构 AT89S52 单片机采用 40 引脚的双列直插封装方式。图 1.2 为引脚排列图, 40 条 引脚说明如下: 湖南工业大学专科毕业设计(论文) 6 主电源引脚 Vss 和 Vcc Vss 接地 Vcc 正常操作时为+5 伏电源 外接晶振引脚 XTAL1 和 XTAL2 XTAL1 内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用 外部振荡器时,此引脚接地。 XTAL2 内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外 部振荡器时,此引脚接外部振荡源。 图 1.2 单片机引脚图 控制或与其它电源复用引脚 RST/VPD,ALE/,和/VppPROGPSENEA RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低 到高跳变) ,将使单片机复位在 Vcc 掉电期间,此引脚可接上备用电源,由 VPD 向内 部提供备用电源,以保持内部 RAM 中的数据。 ALE/正常操作时为 ALE 功能(允许地址锁存)提供把地址的低字节锁PROG 存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的 1/6)周期性地发出正脉冲 湖南工业大学专科毕业设计(论文) 7 信号。因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部 数据存储器时,将跳过一个 ALE 脉冲,ALE 端可以驱动(吸收或输出电流)八个 LSTTL 电路。对于 EPROM 型单片机,在 EPROM 编程期间,此引脚接收编程脉冲( 功能)PROG 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数PSEN 据)期间,在每个机器周期内两次有效。同样可以驱动八 LSTTL 输入。PSENPSEN /Vpp、/Vpp 为内部程序存储器和外部程序存储器选择端。当/VppEAEAEA 为高电平时,访问内部程序存储器,当/Vpp 为低电平时,则访问外部程序存储器。EA 对于 EPROM 型单片机,在 EPROM 编程期间,此引脚上加 21 伏 EPROM 编程电源 (Vpp) 。 输入/输出引脚 P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。 P0 口(P0.0 - P0.7)是一个 8 位漏极开路型双向 I/O 口,在访问外部存储器时, 它是分时传送的低字节地址和数据总线,P0 口能以吸收电流的方式驱动八个 LSTTL 负载。 P1 口(P1.0 - P1.7)是一个带有内部提升电阻的 8 位准双向 I/O 口。能驱动 (吸收或输出电流)四个 LSTTL 负载。 P2 口(P2.0 - P2.7)是一个带有内部提升电阻的 8 位准双向 I/O 口,在访问外 部存储器时,它输出高 8 位地址。P2 口可以驱动(吸收或输出电流)四个 LSTTL 负载。 P3 口(P3.0 - P3.7)是一个带有内部提升电阻的 8 位准双向 I/O 口。能驱动 (吸收或输出电流)四个 LSTTL 负载6。 AT89C52 具有以下标准功能:8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看 门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全 双工串行口,片内晶振及时钟电路。另外,AT89C52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、 串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一 切工作停止,直到下一个中断或硬件复位为止。CPU 是单片机的核心部件。它由运算 器和控制器等部件组成2。 (1) 运算器 运算器的功能是进行算术运算和逻辑运算。可以对半字节(4 位) 、单字节等数据 进行操作。例如能完成加、减、乘、除、加 1、减 1、BCD 码十进制调整、比较等算 湖南工业大学专科毕业设计(论文) 8 术运算和与、或、异或、求补、循环等逻辑操作,操作结果的状态信息送至状态寄存 器。 89C52 运算器还包含有一个布尔处理器,用来处理位操作。它是以进位标志位 C 为累加器的,可执行置位、复位、取反、等于 1 转移、等于 0 转移、等于 1 转移且清 0 以及进位标志位与其他可寻址的位之间进行数据传送等位操作,也能使进位标志位与 其他可移位寻址的位之间进行逻辑与、或操作5。 (2) 程序计数器 PC 程序计数器 PC 用来存放即将要执行的指令地址,共 16 位,可对 64K 程序存储器 直接寻址。执行指令时,PC 内容的低 8 位经 P0 口输出,高 8 位经 P2 口输出。 (3) 令寄存器 指令寄存器中存放指令代码。CPU 执行指令时,由程序存储器中读取的指令代码 送入指令寄存器,经译码后由定时与控制电路发出相应的控制信号,完成指令功能。 本设计采用 ATMEL 的 AT89C52 微处理器,主要基于以下几个因素: AT89C52 为 51 内核,仿真调试的软硬件资源丰富。 性价比高,货源充足。 功耗低,功能强,灵活性高。 DIP40 封装,体积小,便于产品小型化。 为 EEPROM 程序存储介质,1000 次以上擦写周期,便于编程调试。 工作电压范围宽:2.7V6V,便于交直流供电。 1.3 显示电路的选择与设计 对于数字显示电路,通常采用液晶显示或数码管显示。对于一般的段式液晶屏,需 要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看; 对于具有驱动电路和单片机接口的液晶显示模块(字符或点阵),一般多采用并行接口, 对单片机的接口要求较高,占用资源多;另外,AT89S52 单片机本身无专门的液晶驱 动接口。而数码管作为一种主动显示器件,具有亮度高、响应速度快、防潮防湿性能 好、温度特性极性、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜 间或是远距离操作。因此,本设计的显示电路采用 7 段数码管作为显示介质。 数码管显示可以分为静态显示和动态显示两种。由于本设计需要采用五位数码管 湖南工业大学专科毕业设计(论文) 9 显示时间,如果静态显示则占用的口线多,硬件电路复杂。所以采用动态显示。 AT89C52 段 驱 动 位 驱 动 五位数码管 图 1.3 显示电路基本原理图 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位 扫描。通常各位数码管的段选线相应并联在一起,由一个 8 位的 I/O 口控制;各位的 公共阴极位选线由另外的 I/O 口线控制。动态方式显示时,各数码管分时轮流选通, 要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的 段码,在另一时刻选通另一位数码管,并送出相应的段码,依此规律循环,即可使各 位数码管显示将要显示的字符,虽然这些字符是在不同的时刻分别显示,但由于人眼 存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。 数码显示管分为共阳数码管和共阴数码管两种 共阳极数码管的 8 个发光二极管的阳极(二极管正端)连接在一起,如图 1.4(b),通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。 当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字 段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通 电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 共阴极数码管的 8 个发光二极管的阴极(二极管负端)连接在一起,如图(c), 通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动 电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组 合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需 根据外接电源及额定段导通电流来确定相应的限流电阻。 湖南工业大学专科毕业设计(论文) 10 图 1.4 (a)数码管引脚图 (b)共阳极内部结构图 (c)共阴极内部结构图 本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所 以只要数码管的 a、b、c、d、e、f、g、h 引脚为高电平,那么其对应的二极管就会发 光,使数码显示管显示 09 的编码见表 1.1。 表 1.1 共阴极数码显示管字型代码 字型共阴极代码字型共阴极代码 03FH56DH 106H67DH 25BH707H 34FH87FH 466H96FH 动态显示电路由显示块、字形码驱动模块、字位驱动模块三部分组成。如图 1.3 所 示为本系统的 5 位 LED 动态显示器接口电路。图中,5 个数码管的 8 段段选线分别与 外接上拉电阻的单片机 P0 口对应相连,而 5 个数码管的位控制端则和 NPN 型三极管 的集电极相连接。单片机的 P2.0P2.4 口则分别对应数码显示管的最低位到最高位, P2.0P2.4 口分别和五个 NPN 型三极管的基极相连,做三极管导通的控制端,而 NPN 型三极管选用 9013 型三极管。根据 9013 的资料显示:其耐压值为 40V,最大功率为 0.65W,最大电流为 0.5A,电气性能完全满足本设计的要求。另外数码管显示是采用 动态显示,所以对三极管的开关频率有一定的要求。根据电子秒表的设计计算可知动 态显示的频率最高为 3KHz,而 9013 的导通频率为 150MHz,完全能满足本设计的要 求,所以最终选取 9013 三极管最为位控制开关。 湖南工业大学专科毕业设计(论文) 11 由于数码管是有 P0 口来驱动,它内部没有上拉电阻,作为输出口时驱动能力比较 弱,不能点亮数码显示管,因此 P0 口必须接上拉电阻来提高驱动能力。另外一位共阴 数码管的驱动电流一般为 20mA 左右,如果电流太大容易造成数码管损坏,所以也需 要根据电源的电压值来确定上拉电阻的大小。如果电阻过小,势必会形成灌电流过大, 造成单片机 IO 的损坏,如果电阻过大,那么对拉电流没有太大的影响。电源供电电压 为 5V,当上拉电阻选用 220 电阻时灌电流为 22mA。不会损坏单片机的 I/O 口,同 时也可以为数码显示管起到限制电流的保护作用。 1.4 按键电路的选择与设计 本设计中有四个按键,分别实现开始、暂停、复位和查看功能。这三个键可以采 用中断的方法,也可以采用查询的方法来识别。对于复位键和查看键,主要功能在于 数值复位和对上次计时时间的查看,对于时间的要求不是很严格,而开始和暂停键主 要用于时间的锁定,需要比较准确的控制。因此可以考虑,对复位键和查看键采用查 询的方式,而对于开始和暂停键采用外部中断。四个按键均采用低电平有效,具体电 路连接图如图 1.5 所示。 当按键没有按下时,单片机的 I/O 口直接连接电源,因此需要接上拉电阻来进行 限流,本设计中选取阻值为 2k 的电阻作为上拉电阻,根据计算可知此时的灌电流为 2.5mA,查看 AT89C52 的资料得知次电流在安全范围内,符合安全设计要求。 开始 暂停 复位 查看 P3.3(INT1) P3.2(INT0) P1.1 P2.5 VCC 图 1.5 按键电路 湖南工业大学专科毕业设计(论文) 12 按键电路中由于采用了外部中断,所以需要用到 P3 口的第二功能。P3 口引脚的 第二功能如表 1.2 表 1.2 P3 口引脚第二功能表 P3 口引脚特殊功能 P3.0RXD(串行输入口) P3.1TXD(串行输出口) P3.2INT0(外部中断 0 请求输入端) P3.3INT1(外部中断 1 请求输入端) P3.4 T0(定时器/计数器 0 计数脉冲输入端) P3.5 T1(定时器/计数器 1 计数脉冲输入端) P3.6WR(片外数据存储器写选通信号输出端) P3.7 RD(片内数据存储器读选通信号输出端) 1.5 时钟电路的选择与设计 单片机的时钟信号用来提供单片机内各种微操作的时间基准,89S52 片内设有一 个由反向放大器所构成的振荡电路,XTAL1 和 XTAL2 分别为振荡电路的输入和输出 端,89S52 单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方 式。外部方式的时钟很少用,若要用时,只要将 XTAL1 接地,XTAL2 接外部振荡器 就行。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于 12MHz 的 方波信号。 时钟发生器把振荡频率两分频,产生一个两相时钟信号 P1和 P2供单片机使用。P1 在每一个状态 S 的前半部分有效,P2在每个状态的后半部分有效。本设计采用的内部 振荡方式,内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。本设计系 统的时钟电路如图 1.4 所示。只要按照图 1.6 所示电路进行设计连接就能使系统可靠起 振并能稳定运行。图中,电容器 C1 、C2起稳定振荡频率、快速起振的作用,电容值一 般为 533pF。但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路 的对称性,尽可能匹配,选用正牌的瓷片或云母电容,如果可能的话,温度系数尽可 能低。本设计中采用大小为 30pF 的电容和 12MHz 的晶振8。 湖南工业大学专科毕业设计(论文) 13 图 1.6 内部振荡电路 (4) 时序 AT89S52 典型的指令周期(执行一条指令的时间称为指令周期)为一个机器周期, 一个机器周期由六个状态(十二振荡周期)组成。每个状态又被分成两个时相 P1和 P2。所以,一个机器周期可以依次表示为 S1P1,S1P2,S6P1,S6P2。通常算术逻辑 操作在 P1时相进行,而内部寄存器传送在 P2时相进行。 图 1.7 89S52 时序 图 1.7 给出了 AT89S52 单片机的取指和执行指令的定时关系。这些内部时钟信号 不能从外部观察到,所用 XTAL2 振荡信号作参考。在图中可看到,低 8 位地址的锁存 信号 ALE 在每个机器周期中两次有效:一次在 S1P2与 S2P1期间,另一次在 S4P2与 S5P1期间。 ALE 时钟 S1S4S6S5S3S2 读操作码读操作码(无效) (a) 1字节 1周期指令 读下一指令 S1S4S6S5S3S2 读操作码读第二字节 (b) 2字节 1周期指令 读下一指令 S1S4S6S5S3S2 读操作码读操作码(无效) (c) 1字节 2周期指令 读下一指令 S1S4S6S5S3S2 湖南工业大学专科毕业设计(论文) 14 对于单周期指令,当操作码被送入指令寄存器时,便从 S1P2开始执行指令。如果 是双字节单机器周期指令,则在同一机器周期的 S4期间读入第二个字节,若是单字节 单机器周期指令,则在 S4期间仍进行读,但所读的这个字节操作码被忽略,程序计数 器也不加 1,在 S6P2结束时完成指令操作。图 1.7 的(a)和(b)给出了单字节单机器周期 和双字节单机器周期指令的时序。89S52 指令大部分在一个机器周期完成。乘 (MUL)和除(DIV)指令是仅有的需要两个以上机器周期的指令,占用 4 个机器周 期。对于双字节单机器周期指令,通常是在一个机器周期内从程序存储器中读入两个 字节,唯有 MOVX 指令例外。MOVX 是访问外部数据存储器的单字节双机器周期指 令。在执行 MOVX 指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。 图 1.7 中(c)给出了一般单字节双机器周期指令的时序9。 1.6 复位电路的选择与设计 关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说, 单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的 时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值,复位是一个很重要 的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实 现。 当 AT89C52 单片机的复位引脚 RST(全称 RESET)出现 2 个机器周期以上的高 电平时,单片机就完成了复位操作。如果 RST 持续为高电平,单片机就处于循环复位 状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。而本系统选用的是 12MHz 的晶振,因此一个机器周期为 1s,那么复位脉冲宽度最小应为 2s。在实际应 用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因 素,必须有足够的余量。 根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。 上电复位要求接通电源后,自动实现复位操作。80C51 单片机的上电复位 POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁 定在复位状态上。在单片机每次初始加电时,首先投入工作的功能部件是复位电路。 复位电路把单片机锁定在复位状态上并且维持一个延时(记作 TRST) ,以便给予电源 电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时 钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少 湖南工业大学专科毕业设计(论文) 15 推迟 2 个机器周期的延时。 上述一系列的延时,都是利用在单片机 RST 引脚上外接一个 RC 支路的充电时间 而形成的。典型复位电路如图 1.8(a)所示,其中的阻容值是原始手册中提供的。在 经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运 行状态。在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放 RST 信号,使得 CPU 脱离复位锁定状态;而 RST 信号一旦被释放,立刻在 ALE 引脚 上就可检测到持续的脉冲信号8。 图 1.8 上电复位延时电路 由于标准 80C51 的复位逻辑相对简单,复位源只有 RST 一个(相对新型单片机来 说,复位源比较单一) ,因此各种原因所导致的复位活动以及复位状态的进入,都要依 靠在外接引脚 RST 上施加一定时间宽度的高电平信号来实现。 标准 80C51 不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因 此必须借助于外接阻容支路来增加延时环节,如图 1.8(a)所示。其实,外接电阻 R 还是 可以省略的,理由是一些 CMOS 单片机芯片内部存在一个现成的下拉电阻 Rrst。例如, AT89 系列的 Rrst 阻值约为 50200 k;P89V51Rx2 系列的 Rrst 阻值约为 40225 k,如图 1.9 所示。因此,在图 1.8(a)基础上,上电复位延时电路还可以精简为图 1.8(b)所示的简化电路(其中电容 C 的容量也相应减小了) 。 图 1.9 复位引脚 RST 内部电路 在每次单片机断电之后,须使延时电容 C 上的电荷立刻放掉,以便为随后可能在 湖南工业大学专科毕业设计(论文) 16 很短的时间内再次加电作好准备。否则,在断电后 C 还没有充分放电的情况下,如果 很快又加电,那么 RC 支路就失去了它应有的延迟功能。因此,在图 1.8(a)的基础上添 加一个放电二极管 D,上电复位延时电路就变成了如图 1.8(c)所示的改进电路。也就是 说,只有 RC 支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在 的危害。于是附加一个放电二极管 D 来大力缩短放电持续时间,以便消除隐患。二极 管 D 只有在单片机断电的瞬间(即 VCC 趋近于 0 V,可以看作 VCC 对地短路)正向 导通,平时一直处于反偏截止状态。 手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮 开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以 上的高电平,从而实现复位操作。 本设计采用上电且开关复位电路,如图 1.10 所示上电后,由于电容充电,使 RST 持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使 RST 持续一段时 间的高电平,从而实现上电且开关复位的操作。通常选择 C=1030F,R=1K,本设计 采用的电容值为 22F 的电容和电阻为 1K 的电阻。 VCC C3 R4S4 R5200 1K 22uF 接RSET 图 1.10 单片机复位电路 1.7 系统总电路的设计 系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要 将单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路图如图 1.11 所示。 AT89C52 单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统 筹和协调各个电路的运行工作。 湖南工业大学专科毕业设计(论文) 17 AT89C52 单片机提供了 XTAL1 和 XTAL2 两个专用引脚接晶振电路,因此只要将 晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量 使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date:28-Dec-2009Sheet of File:C:UsersHPDesktop件件件件件件件件件件.BkpDrawn By: P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 RESET 9 P3.0 10 P3.1 11 P3.2 12 P3.3 13 P3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论