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

2019-05-24 13:39

总结与展望

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

下面将具体介绍如何使用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


多功能电子秒表设计与制作 毕业设计 - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:发电机组设备采购招标

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: