多功能电子秒表设计与制作 毕业设计 - 图文

更新时间:2024-05-07 21:09:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕 业 设 计

中文题目 多功能电子秒表设计与制作 英文题目 The design and realization of

multi-functional electronic stopwatch

2011年 5月21日

诚信声明书

毕业设计(论文)诚信声明书

本人郑重声明:在毕业设计(论文)工作中严格遵守学校有关规定,恪守学术规范;我所提交的毕业设计(论文)是本人在 指导教师的指导下独立研究、撰写的成果,设计(论文)中所引用他人的文字、研究成果,均已在设计(论文)中加以说明;在本人的毕业设计(论文)中未剽窃、抄袭他人的学术观点、思想和成果,未篡改实验数据。

本设计(论文)和资料若有不实之处,本人愿承担一切相关责任。

学生签名:

年 月 日

I

摘要

摘 要

本设计的电子秒表系统采用STC-89C52RC单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器和单总线温度计DS1820。另外硬件部分设置了存储和查看按键,可以对秒表上一次计时时间进行保存,供使用者查询。将软、硬件有机地结合起来,使得系统能够实现计时,测温度,存储数据和查看数据,设置超设值。能正确地进行计时,同时能记录3次时间。其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。本设计主要特点功能多并且计时精度达到0.01s,解决了传统的由于计时精度不够造成的误差和不公平性。

关键词: 单片机,秒表,记录

II

Abstract

Abstract

The design of electronic systems using STC-89C52RC stopwatch as the center of the

device microcontroller,its timer / counter timing and counting principles,With display circuit, LED digital tubes, and external interrupt circuit to design a single timer and thermometer DS1820 bus. Another set of hardware store and view buttons, the last time the stopwatch can save time for user queries.The hardware and software organically combine to make the system to achieve timing, measuring temperature, storage of data and view data, set over set value. Can be correctly timed, and can record three hours. One software system written in assembly language programs, including display program, interrupt service, external interrupt, delay procedures, and WAVE in the commissioning, the hardware system used to implement powerful PROTEUS, a simple cut easy to observe, in simulation can be observed in actual working condition. The main features of multi-function design and timing accuracy of 0.01s, to solve the traditional result of a lack of accuracy because of timing errors and unfairness.

Key words: microcontroller, stopwatch, record

III

目录

目 录

1 绪论............................................................................................................................1

1.1 课题背景及目的.............................................................................................................1 1.2 课题研究内容和意义....................................................................................................2 2 概述.................................................................................................... ......................... ...............3

2.1外部中断模块...................................................................................................... ....... ...5

2.2定时器中断模块................................................................................................. ......... ..6

2.3数码管显示模块.................................................................................................. ......... .8

2.4 DS1820 单总线数字温度计................................................................ ...........................9

3 系统的设计与实现..................................................................................................................12

3.1硬件设计与分析.................................................................................................. ..........12

3.11 单片机的选择....................... ....................... ....................... ....................... .........12 3.12 LED显示器接口原理...... .............. ...... .............. ...... .............. ...... .............. .15 3.13 按键输入...... .............. ...... .............. ...... .............. ...... .............. ...... .............. ..19 3.2软件设计与分析.................................................................................................. .......... .20 3.2.1软件设计概述........................................................................................... ...........20 3.2.2程序流程图........................................................................................... ................21 3.2.3子程序模块设计............................................ ............................................ .....22

4 系统测试...................................................................................................................................25

4.1 安装软件.........................................................................................................................25

4.2 原理图.............................................................................................................................. 25 4.3 所需工具及电子元件...................................................................................................27 4.4 焊接....................................................................................................................................27 4.5 软件测试与硬件测试...................................................................................................28

4.5.1软件调试................................ ................................ ................................ .............29 4.5.2硬件调试...................... ....... ...................... ....... ...................... ....... ...................32

4.6系统时钟误差分析.........................................................................................................33 总结与展望............................................................................................................................. ....34

IV

目录

致谢............................................................................................................................................... 35 参考文献...................................................................................................................................... 36 附录............ ............ ............ ............ ............ ............ ............ ............ ............ ............ ............ .37

V

第1章 绪论

1.1课题背景及目的

第1章 绪 论

自首届现代奥运会在雅典举办以来,奥运会计时技术一直在不断地向前发展。一百多年过去了,首届现代奥运会上计时所用的跑表如今换成了一系列高科技计时装置,如高速数码摄像机、电子触摸垫、红外光束、无线应答器等等。鉴于当今计时技术的快速发展,即使千分之一秒的毫微差距,也决定着冠军的归属。

在现代的体育竞技比赛中,随着运动员水平的不断提高,差距也在不断缩小。有些运动对时间精度的要求也越来越高,有时比赛冠亚军之间的差距只有几毫秒,因此就需要高精度的秒表来记录成绩。北京时间2008年8月16日,北京奥运会田径比赛进入第二日的争夺。在举世瞩目的男子百米飞人大战中,博尔特以惊人的9秒69获得冠军,并且打破了由他自己保持的世界纪录!特立尼达和多巴哥选手汤普森以9秒89排名第二,美国人迪克斯获得第三,成绩为9秒91。如此细微的差距,即使重新用经典超慢镜头回放,也难以分辨。单片机控制的多功能秒表系统的出现,解决了传统的由于人为因素造成的误差和不公平性。此精确的秒表是基于石英晶体有规则振动而制造的,这种时钟的误差每天不大于千分之一秒。

单片机目前在全世界迅速得到了推广应用,它具有集成度高、功能强、通用性好,特别是它具有体积小、重量轻、能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等的独特优点。目前各种传感器、变送器、控制仪表已普遍采用单片机应用系统。单片机构成的智能仪表能使仪表具有数字化、智能化、多功能化、综合化、柔和化等优点,赋予测量仪表以崭新的面貌,使传统的仪器、仪表发生根本性的变革,它代表了仪器仪表的发展趋势

本次设计的目的就是让学生在理论学习的基础上,通过完成一个涉及单片机应用并具有多种功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、原理图等方面的知识有进一步的加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。

1

第1章 绪论

1.2 课题研究内容和意义

本课题的研究内容主要采用STC-89C52RC作微型控制器,采用8位LED数码管显示时、分、秒和毫秒,以24小时方式计时,显示时间范围为0.01秒~24小时,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。用两个按键K0和K1来控制秒表功能的实现,启动K0键开始计时,重复按下K0键计时停止,K1键复位。主要功能即是键K0和K1控制秒表计时的启动、停止和清零。

本课题的意义在于:把理论学习和实验阶段所掌握的知识通过一个设计实例,经历一次理论和实践结合、软件和硬件结合的综合训练,也是一次工程实践能力的检验。

2

第2章 概述

第2章 概述

多功能秒表系统分为3大模块:外部中断模块、定时器中断模块和数码管显示模块。编程时置K0键为“启动/停止”,置K1键为“清零”,在处理按键值时采用外部中断,转至相应的外部中断处理程序,K0键对应外部中断0,入口地址为0003H;K1键对应外部中断1,入口地址为0013H。定时器中断模块采用定时器T0方式1中断,每10ms中断一次,毫秒计数单元33H加1,当记满100次时,毫秒计数单元清零,秒计数单元32H加1,当记满60次时,秒计数单元清零,分计数单元31H加1,当记满60次时,分计数单元清零,时计数单元30H加1,当记满24次时,时计数单元清零。8位LED显示的数据由显示缓冲区30H~33H单元中的数据决定,以动态显示方式实现秒表计时显示。P0口输出的数据作为显示的段码。P2口输出的数据作为8个LED的位选信号。如图2.1为主程序设计流程图:主程序先开始,然后初始化,接着不断调用显示子程序来显示秒表的时间,同时不断调用定时器T0中断子程序对时间进行计数,一旦有按键按下,就跳至相应中断服务程序。

3

第2章 概述

开始 初始化 调用显示 子程序 调用N K0键按下T0中断子程 序 K1键按 下 N Y 调用外部中断0子程序WAIINT0 调用外部中断1子程序WAIINT1

图2.1 主程序设计流程图

2.1 外部中断模块

在这里,我们有必要介绍一下单片机的中断系统,以利于我们的学习。 中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机CPU的效率,也可以应对突发事件处理。所谓中断就是当CPU正在执行程序A时,发生了另一个急需处理的事件B,这时CPU暂停当前执行的程序A,立即转去执行处理事件B的程序,处理完事件B后,再返回到程序A继续执行,这个过程被叫做中断。关于中断的概念有下列几个名词:(1)程序A称为主程序,(2)处理事件B的程序称为中断服务程序,(3)主程序中转向中断服务程序的地方称为断点,(4)引起中断的原因即事件B称为中断源,(5)转去执行中断服务程序

4

第2章 概述

2.7 引脚说明

引脚说明 GND 地

DQ 数字输入输出 VDD 可选的VDD NC 空引脚 DNC 不连接

与DS1820 的通信经过一个单线接口。在单线接口情况下在ROM,操作未定建立之前不能使用,存贮器和控制操作主机必须首先提供五种ROM。 操作命令之一1 Read ROM(读ROM) ,2 Match ROM(符合ROM),3)Search ROM(搜索ROM),4)Skip ROM(跳过ROM),或5 Alarm Search(告警搜索)。 这些命令对每一器件的64,位激光ROM 部分进行操作如果在单线上有许多器件那么可以挑选出一个特定的器件并给总线上的主机指示存在多少器件及其类型在成功地执行了ROM 操作序列之后可使用存贮器和控制操作然后主机可以提供六种存贮器和控制操作命令之一个控制操作命令指示DS1820 完成温度测量该测量的结果将放入DS1820 的高速暂存便笺式存贮器Scratchpad memory 通过发出读暂存存储器内容的存储器操作命令可以读出此结果每一温度告警触发器TH 和TL 构成一个字节的EEPROM 如果不对DS1820 施加告警搜索命令这些寄存器可用作通用用户存储器使用存

10

第2章 概述

储器操作命令可以写TH 和TL 对这些寄存器的读访问通过便笺存储器所有数据均以最低有效位在前的方式被读写。

11

第3章 系统的设计与实现

第3章 系统的设计与实现

3.1 硬件设计与分析

一个完整的电子秒表电路就是一个单片机的最小系统,此系统主控制器采用单片机STC89C52RC,显示电路采用2个4位的共阳极LED数码管显示计时时间,控制秒表的开始、暂停和清零采用两个按键K0与K1。硬件电路图按照图3.1进行设计。

STC89C52RC 控制按键K0 控制按键K1 单片机控制器 8位LED数码管 位驱动

图3.1 多功能秒表硬件电路总体原理图

3.1.1单片机的选择

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。其发展趋势不外乎以下几个方面:

1、多功能

单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家狗)、高速I/O口及计数器的捕获/比较逻辑等。

有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。例如,有的芯片以51内核为核心,集成了USB控制器、SMART CARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开始集成在8位单片机中。

12

第3章 系统的设计与实现

2、高效率和高性能

为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。

由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。使用高级语言可以降低开发 难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。

3、低电压和低功耗

单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。

4、低价格

单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。 下面大致介绍一下单片机的主要应用领域和特点。

(1)家用电器领域

用单片机控制系统取代传统的模拟和数字控制电路,使家用电器(如洗衣机、空调、冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。

(2)办公自动化领域

单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘驱动、打印机、复印机、电话机和传真机等。

(3)商业应用领域

商业应用系统部分与家用和办公应用系统相似,但更加注重设备的稳定性、可靠性和安全性。商用系统中广泛使用的电子计量仪器、收款机、条形码阅读器、安全监测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的专用系统。与通用计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性更高。

(4)工业自动化

在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是以单片机为核心的单片机和多机系统。

(5)智能仪表与集成智能传感器

目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统,使得测量系统具有存储、数据处理、查询及联网等智能功能。将单片机和传感器相结合,

13

第3章 系统的设计与实现

可以构成新一代的智能传感器。它将传感器变换后的物理量作进一步的变化和处理,使其成为数字信号,可以远距离传输并与计算机接口。

(6)现代交通与航空航天领域

通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统以及运行监视系统等。这些领域对体积、功耗、稳定性和实时性的要求往往比商用系统还要高,因此采用单片机系统更加重要。

目前,我国生产很多型号的单片机,在此,我们采用型号为STC89C52的单片机。因为: STC89C52是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。

STC89C52是一个低功耗高性能单片机,采用40只引脚双列直插封装(DIP)方式,如

图3.2所示,在内部功能和引脚排布上与通用的MCS-51单片机相同。32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,STC89C51可以按照常规方法进行编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

14

第3章 系统的设计与实现

图3.2 STC89C52RC双列直插封装方式的引脚

3.1.2 LED显示器接口原理

LED(Light Emitting Diode)是发光二极管英文名称的缩写。LED显示器是由发光二极管构成的,所以在显示器前面冠以“LED”。LED显示器的结构:常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。每一段对应一个发光二极管。在微机应用系统中通常使用的是七段LED,这种显示器有共阴极与共阳极两种,如图3.3所示。共阴极结构的数码显示器阴极共地,如图3.3a所示,当某个发光二极管阳极为高电平时,将其燃亮。共阳极结构有一个公用的阳极,如图3.3所示,使用时接正电源,当阴极接低电平时,使其发光。因此共阳极和共阴极所需要的字型码正好相反。

15

第3章 系统的设计与实现

图3.3 8段LED显示器结构及外形

为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,这 就要为LED显示器提供代码,因为这些代码可以使LED相应的段发光,从而显示不同 字型,因此该代码称之为段码(或称为字型码)。

7段发光二极管,再加上1个小数点位,共计8段。因此提供给LED显示管的段 码正好是1B。各显示段与字节中各位对应关系如下: 代码位 D7 D6 D5 D4 D3 显示段 八段显示块与微机接口非常容易,如表3.1所示。

表3.1 八段LED的段选码

D2 c D1 b D0 a dp g F e d 16

第3章 系统的设计与实现

单片机对LED管的显示可分为静态和动态两种。

静态显示的特点是每位的段码线分别与1个8位的锁存器输出相连。如图3-4所示为1个4位静态LED显示电路。该电路各位可独立显示,只要在该位的段码线上保持段码电平,该位就能保持相应的显示字符。由于各位分别由1个8位的数据输出口控制段码线,故在同一时间里,每一位显示的字符可以各不相同。这种显示方式接口编程容易,但付出的代价是占用口线较多。

图3.4 四位静态LED电路

动态显示是将所有位的段码线相应段并联在一起,由一个8位I/O口控制,形成段码线的多路复用,而各位的共阳极或共阴极分别由相应的I/O口线控制,形成各位的分时选通。图3.5所示为1个4位8段LED动态显示器电路。其中段码线占用一个8位I/O

17

第3章 系统的设计与实现

口,而位选线占用一个4位I/O口。由于各位的段码线并联,8位I/O口输出的段码对各个显示位来说都是相同的。因此,在同一时刻,如果各位位选线都处于选通状态的话,4位LED将显示相同的字符。若要各位LED能够同时显示出与本位相应的显示字符,就必须采用动态显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要显示的字符的段码。这样,在同一时刻,4位LED中只有选通的那1位显示出字符,而其他3位是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示时间间隔足够短,就可以造成多位同时亮的假象,达到同时显示的效果。

图3.5 4位8段LED动态显示电路

LED不同位显示的时间间隔应根据实际情况而定。发光二极管从导通到发光有一定的延时,导通时间太短,则发光太弱,人眼无法看清。本设计采用动态显示原理,在显示秒表时间的时候有调用延时子程序。 发光二极管导通时间也不能太长,因为要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多。

本次设计综合考虑多方面因素,选用两个4位的共阳极LED显示器如图3.6所示 ,并采用动态显示电路。

18

第3章 系统的设计与实现

图3.6 4位共阳极LED显示器

3.1.3 按键输入

外部指令对单片机的输入一般是通过按键、键盘等输入器件来实现的。本设计是利用按键K0与K1来实现秒表的启动、暂停和复位清零功能。如图3.7所示为两按键的电路图。

图3.7 K0与K1按键电路图

19

第3章 系统的设计与实现

3.2 软件设计与分析

3.2.1 软件设计概述

在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。

应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数、减计数、延时、快加、快减,计数和显示存储等,在具体需要时调用相应的模块即可。

功能描述:用2位LED数码显示\秒表\,显示时间为00~99秒,每秒自动加1;一个\开始\键,一个\复位\键,一个\暂停\键,;一个“记录”键,可同时记录3个相对独立的时间;一个查看“第一次时间”键,一个“第二次时间”键,一个“第3次时间”键,可查看3个不同的计时值;2个设置超限值的按钮,一个“加键”,一个“减键”

20

第3章 系统的设计与实现

3.2.2 程序流程图

开始

初始化

P1.0=0?

P1.1=0? Y P1.2=0?

快减

快加

N N P1.0=0? Y Y

停止

Y N 下翻 够4个? 上翻 P1.0=0? 暂停记录

Y Y P1.3=0? Y P1.4=0? Y P1.5=0? N N N N N N

3.8主程序流程图

21

第3章 系统的设计与实现

(2)加1程序如3.9

(20H) A 进位清零 做加法 到100? N Y (20H)清零 个位十位分开 返回

3.9

3.2.3子程序模块设计

(1)停止子程序

按键后,使秒表停止,即关闭定时器0,1,程序如下:

STOP: CLR TR0

CLR TR1;关闭定时器0,1 ACALL DISP;显示

(2)暂停记录子程序

按键结束后,将此时显示内存中的数送寄存器中保存,并通过条件转移指令判断是否存够3个数,若存够则停止,否则继续。

JILU : MOV A,20H

22

第3章 系统的设计与实现

MOV @R1, A INC R1

DJNZ 50H, HERE;是否够三个数? MOV R1, #71H MOV 50H, #04H MOV 51H, #04H

SJMP STOP;够3个数停止 (3)加1子程序

此程序只为简单的加1,并判断是否到100?到则从0开始,否则继续,另外将显

示内存中的数个位十位分开,以便于动态显示。

JIA1: MOV A,20H ; CLR C INC A

CJNE A, #100, GO1;是否加到100? MOV 20H, #00H RET

GO1: MOV 20H, A;将个位十位分开显示 MOV B, #0AH DIV AB

MOV 31H, A MOV 30H, B RET

(4)显示子程序,采用动态显示

DISP: MOV R0,#30H MOV R3, #0FEH MOV A, R3 PLAY: MOV P2, A MOV A,@R0

MOV DPTR, #DSEG1 MOVC A,@A+DPTR MOV P0, A LCALL DL1

MOV P2, #0FFH MOV A, R3

23

第3章 系统的设计与实现

RL A

JNB ACC.2, LD1 INC R0 MOV R3, A LJMP PLAY LD1: RET

DL1: MOV R7, #05H DL: MOV R6, #0FFH DL6: DJNZ R6, $ DJNZ R7, DL RET

(5)延时子程序

例如延时10ms程序:

DELAY10:MOV R4,#14H DL00: MOV R5, #0FFH DL11: DJNZ R5, DL11 DJNZ R4, DL00 RET

(6)按键消抖程序

延时10ms再次判断该位的状态,若仍是0则说明该键被按下,弹起后去执行该按键功能;若为1,则说明是抖动则继续向下判断。

L1: JB P1.1,L2 ; P1.1=0,快减 ACALL DELAY10 JB P1.1, L2 JNB P1.1, $ LJMP KJIAN

(5)中断服务程序

用外部中断1实现开始,定时器0定时1S,定时器1定时10ms 。

24

总结与展望

第4章 实现过程

4.1 安装软件

本设计需要安装Keil编程与调试软件、STC-ISP下载软件和Protel 99 SE画图软件。

4.2 画出原理图

1.图4.1所示为电源电路图:

图4.1 电源电路图

25

C1RP1130pU1X119XTAL1C212M18XTAL230p9RESPACK-82.图4.2所示为秒表电路原理图:

RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7393837363534333223456789293031PSENALEEAP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A152122232425262728总结与展望

图4.2 秒表电路原理图

D4LED-BLUELED-BLUE26

D5D6LED-BLUED3D2D1LED-BLUELED-BLUER210k32112345678P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71011121314151617U2VCCDQGNDDS18B2023.0LED-BLUEAT89C51C510uVCCR31k复位C4220UFC3104R110k电压输入D7LED-BLUEGND 总结与展望

4.3 所需工具及电子元件

1.所用工具:30W电烙铁1把,数字万用表1个。

2.电子元件:+5V直流电源线1串,开关1个,电阻1KΩ1只,5.1KΩ8只,红色 LED灯1只,30pF瓷片电容两只,12MHZ石英晶振1块,按键2个,STC89C52RC单片机及底座各1块,9012三极管8只,4位共阳极数码显示器2块,12cm×18cm万用板1块,导线若干,焊锡1件,DS1820单总线数字温度计。

4.4 焊接

根据元器件种类和体积以及技术要求将其布局在电路板上的适当位置。可以先从体

积较大的器件开始,如单片机底座、电源稳压器、数码显示管等。待体积较大的元器件布局好之后,小型的电子元器件就可以根据间隙面积灵活布置。元件的装配方式一般有直立式、俯卧式和混合式三种。

①直立式。电阻、电容等都是竖直安装在印刷板上的。这种方式的特点是:在一定的单位面积内可以容纳较多的电子元件,同时元件的排列也比较紧凑。缺点是:元件的引线过长,在一个平面上,欠美观,元器件引脚弯曲,且密度较大,元器件之间容易引脚碰触,可靠性欠佳,且不太适合频率较高的电路采用。

②俯卧式。电阻、电容等都是俯卧式安装在印刷板上的。这样可以明显地降低元件的排列高度,可实现薄形化,同时元器件的引脚也最短,适合于较高工作频率的电路采用,也是目前采用最广泛的一种安装方式。

③混合式。为了适应各种不同条件的要求或某些位置受面积所限,在一块印刷电路板上,有的元器件则采用俯卧式。这受到电路结构各式以及机壳内尺寸的限制,同时灵活处理。

元器件配置布局应考虑的因素:

①电路板是矩形,元件排列的长度方向一般应与电路板的长边平行,这样不但可以提高元件的装配好的印刷电路板更美观。

②应尽可能地缩短元件及元件之间的引线。尽量避免电路板上的导线的交叉,设法减小它们的分布电容和互相之间的电磁干扰,以提高系统工作的可靠性。

③应以功能电路的核心器件为中心,外围元件围绕它进行布局。

④要注意各种门电路多余的处理,或接电源端或接地端,并按照正确的 方法实现不同逻辑门的组合转换。

⑤元器件的配置和布局应有利于设备的装配、检查、高度和维修。 元器件焊接注意事项:

焊接前务必认准元件数值,会认元件上的标识和会用数字多用表测试。焊接时速度

27

总结与展望

要快,电烙铁不可长时间停留在电路板和元件的焊脚上。特别是晶振、发光二极管电容、三极管等元件,时间过长容易导致元器件损坏。当初板子做好以后,我一口气就把所有的元件焊上去了,这样对于没有调试过的板子,就很难找到原因。所以焊接的顺序很重要,应该是应该按功能划分的器件进行焊接,顺序是功能部件的焊接然后调试再另一功能部件的焊接,这样容易找到问题的所在。下图4.3所示为焊接的硬件实物图:

图4.3 焊接的硬件实物图

4.5 软件调试和硬件调试

4.5.1 软件调试

单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。先说一个概念:软件调试,在企业程序设计里(把企业商务类型的软件开发叫企业程序设计,

28

总结与展望

把单片机与驱动程序这样接触底层汇编与硬件相关的程序设计叫底层程序设计),软件调试一般都用来跟踪变量的赋值过程,以及查看内存堆栈的内容,查看这些内容的目的在于观察变量的赋值过程与赋值情况从而达到调试的目的。由于企业程序的宿主就是开发它的计算机本身,因此企业程序设计比起底层程序设计,特别是单片机的程序设计调试来的更直观,调试也更方便。

单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机本身是多任务系统,划分执行时间片是由操作系统本身完成的,无法得到控制,这样就无法时时的模拟单片机的执行时序,也就是说 ,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。为了解决软件调试的问题,第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。同时,仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样,就可以在软件里看到真实的执行情况。不仅如此,还可以通过计算机软件实现单步、全速、运行到光标的常规调试手段。 总结一下两者的不同与相同: 相同点:

1:都可以检测单片机执行时序下的片内资源情况(如R0-R7 、PC计数器等) 2:可以实现断点、全速、单步、运行到光标等常规调试手段。 不同点:

1:软件调试无法实现直接连接硬件电路的调试,只能通过软件窗口虚拟硬件端口的电平输出情况而仿真器可以实现与单片机一样的功能的硬件连接,从某种意义上说这个时候仿真器就是一个单片机。

2:软件调试执行单片机指令的时间无法与真实的单片机执行时间画上等号,也就是说如果一个程序在单片机中要执行300us,可能在计算机中执行的时间可能会比这个长很多,而且无法预料。仿真器则是完全与单片机相同。

3:软件调试只能是一种初步的,小型工程的调试,比如一个只有几百上千行的代码的程序,软件调试能很好的完成,如果是一个协调系统,可能还需要借助几个单片机仿真器和相关的仪器才能解决。

4:软件仿真不需要额外花钱,而硬件需要,一个仿真器一般都上千元,同时可以仿真许多种单片机的工作。

最后,调试一般都是在发生错误与意外的情况下使用的,如果程序能正常执行调试

29

总结与展望

很多时候是用不上的,所以最高效率的程序开发还是程序员自己做好规范,而不是 指望调试来解决问题。

下面将具体介绍如何使用Keil uVision 来软件调试单片机程序。

首先:打开一个已经编译通过的单片机项目(如何新建与编译单片机程序项目这里省略)选择Debug下面的Start/Stop Debug Session,这个选项可以打开调试也可以关闭调试。下面具体说说相关子窗口和按钮的功能:

ProjectWorkspace中的Regs是片内内存的相关情况值,Sys是系统一些累加器、计数器等。Regs很简单就不多说。具体介绍一下Sys:a对应累加器ACC,往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和);b对应寄存器B ,主要用于乘法和除法操作;dptr对应为数据指针DPTR;PC对应为程序计数器;states 为执行指令的数量;sec为执行指令的时间累计(单位 秒);psw对应程序状态标志寄存器PSW,八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。p对应奇偶标志P,反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1;ov对应溢出标志位OV,反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0;ac对应为辅助进位标志AC,又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。cy对应为进位标志CY(PSW7)。它表示了运算是否有进位(或借位),如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0。

根据指令执行的不同上述值会有相应的变化,也正是为了监测这些在单片机中看不到的值而达到调试的目的。

虽然软件调试无法实现硬件调试那样的信号输出,但是可以通过软件窗口的模拟监测输出信号的高低电平以及单片机相关端口的变化。

Port0,Port1,Port2,Port3就对应于单片机的四个P0,P1,P2,P3 口,共32个针脚。

Reset ,相当于单片机最简系统的复位按钮,按下后,所有的系统状态将变成初始状态,Run是全速运行,相当于单片机的通电执行,Halt是停止全速运行的按钮,step into为逐语句单步执行,step over为逐过程,step out为跳出,Run to Cursor line为执行到断点处。可以在代码所在窗口的最左边右击按钮插入一个断点,有了这个功能,你就可以控制监控要执行到某位置时系统的状态。

我在调试中,先设置起始时间为18小时8分钟8秒88毫秒,然后注意观察R0-R7、A、B还有P0与P2端口的变化。图4.4所示是时钟显示子程序一部分,程序执行到MOV B,#0AH处,此时a为0x12(十进制数18),b为0x0a(十进制数10),P2口数据为0xFE如图4.5所示;程序执行到MOVC A,@A+DPTR处,此时a为0x01,b为0x08,如图4.6

30

总结与展望

所示;程序执行到MOVC A,P0处,此时a为0xf9(对应段码1),b为0x08,P0口数据为0xF9(对应段码1),如图4.7所示。

图4.4 程序执行到MOV B,#0AH处,a、b的值

图4.5 P2端口的值

图4.6程序执行到MOVC A,@A+DPTR处,a、b的值

图4.7 程序执行到MOVC A,P0处,a、b和P0口的值

31

总结与展望

其实软件调试还有很多的功能,这里只是介绍了一小部分,希望能起到抛砖引玉的作用,更多的细节需要你自己去发掘与学习。

4.5.2 硬件调试

焊接电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值,看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求,并用示波器检验一些管脚的波形图看信号是否稳定。图4.8所示为晶振引脚XTAL1输出的波形图,图4.9所示为三极管引脚输出的波形图,两图说明被检测的管脚信号稳定。

图4.8 晶振引脚XTAL1输出的波形图 图4.9 三极管引脚输出的波形图

4.6 系统时钟误差分析

时间是一个基本物理量,具有连续、自动流逝、不重复等特性。我国时间基准来自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。结合时间概念和误差理论,可以定义电子钟的走时误差S=S1-S2,S1表示程序实际运行计算所得的秒;S2表示客观时间的标准秒。S>0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”;反之,S<0表示秒单元数值的刷新超前,即走时误差为“快”。

本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。

32

总结与展望

总结与展望

在调试的过程中出现了一些具体的问题,如:转移指令与调用指令的用法混淆,中断嵌套编写错误。通过几天的努力最终解决了这几个难点与调试过程中出现的错误。

本设计在单片机系统上采用数码管显示,非常直观简洁并且采用定时器中断,计时准确。可随时启动、停止、清零。 设计、调试大型程序时,需先根据要求划分模块,优化结构;再根据各模块特点确定何为主程序,何为子程序,何为中断服务程序,相互间如何调用;再根据各模块性质和功能将各模块细化,设计出程序流程图;最后才根据各模块流程图编制具体程序。调试时应先调主程序,实现最基本最主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能。本设计将整个程序划分为外部中断、定时器中断和数码管显示三大模块。三大模块运行协调一致,既保持了动态显示的稳定性,又保持了秒计时的准确性,较好地实现了全部功能。

通过这次的毕业设计,我们的理论知识得到了综合的应用,基本知识得到了巩固。分析,解决,调试的能力得到了进一步的提高。,我了解了设计电路的程序,以及电子秒表的原理与设计。同时在软件设计编程上,让我了解到很多编程方面的技巧,并且使我对单片机的各个引脚的功能有更深入的了解,巩固了单片机的书面知识,发现了以往在学习中忽视的东西,明白了在实际的设计工作中只有书面知识是不足的,只有在自己的实践中才能发现问题并解决问题,从而不再犯眼高手低的错误。

总的来说,通过这次的毕业设计我更进一步地增强了实验的动手能力,提高组成系统、编程、调试的动手能力,同时使我认识到我对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂的学习只是理论上的专业知识,而我们应把所学的用到我们现实的生活中去,此次的多功能电子秒表设计与制作给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争。

33

致谢

致 谢

在这里我要感谢厦门理工学院的各位老师,正是因为他们严格地管理和耐心地指导使得本次毕业设计能够顺利完成。感谢关心和帮助过我的同学,是他们为我营造了一个好的研究气氛。特别要感谢我的指导老师黎斌老师!从立定题纲到设计的完成,黎老师倾注了大量的心血。在我遇到困难的时候,总是能够及时给予帮助,还为我提供相关资料,更提出一些新的观点拓宽了我的思路。黎老师严谨治学的态度,渊博的知识和对学生认真负责的精神为我以后的学习和工作树立了榜样!感谢您,尊敬的黎老师!

在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!

34

本文来源:https://www.bwwdw.com/article/vzog.html

Top