图 3-3 T1中断服务程序流程图
3.4时间设定子程序
时间设定模块的设计要点是按键的去抖处理与“一键多态”
[5]
的处理。即只涉及2
个键完成了6位时间参数的设定。“一键多态”即多种功能的实现思想史,根据按键时刻的系统状态,决定按键采取何种动作,即何种功能。
中断屏蔽 移位键/加一键? 加一键 加一处理 移位键 左移一位 恢复现场返回计时 图 3-4 键盘扫描子程序流程图
4.系统功能实际测试
4.1程序实际编译测试
在Keil C51编译环境下编译过程中所产生的误差主要是在重装初值的过程中大约
需要8个机器周期,本设计采用在程序开始时对定时器赋初值多加8个机器周期来消除此误差。
最后在Keil C51编译环境下编译通过,0警告,0错误。
4.2系统实际测试
实际效果如图4-2所示,达到设计要求。
图4-2实物图
4.3 软件调试步骤
1、打开软件后,在Project菜单中选择New Project命令,打开一个新项目。保存此项目,输入工程文件名后,并保存工程文件的目录。
2、为项目文件选择一个目标器件,即选择8051的类型。在Data base 列表框中选择“ATML 89C52”,确定。
3、上述设置好后,创建源程序文件并输入程序代码。输入好代码后点击“文件/保存”。
4、把源文件添加到项目中,用鼠标指在目标工作区的目标1,点击右键在弹出的菜单中选择添加文件到源代码组,在弹出的添加文件框中,选择需要添加到项目中的文
件。
5、开始编译,对项目文件进行编译。若没有错误后进行硬件调试。
4.4子程序调试步骤
子程序调试应一个模块一个模块地进行,首先单独调试各功能子程序,检查程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来进行总调试。故调试步骤[6]如下:
A、蜂鸣器的调试
调试方法:先把打铃程序下载到单片机,让蜂鸣器发声,看是否在正确的时间内实现打铃。
B、数码管程序调试
正确的显示时间是整个程序的关键之一。调试方法:先把程序下载到单片机,让数码管显示,是否正确的显示时间的变化。
C、键盘调时序
正确的显示所调的时间是整个程序的关键之一。调试方法:先把键盘程序和显示程序下载到单片机,让数码管显示,是否正确的所调时间的变化。
4.5调试结果
实现计时和显示功能(12小时制),可设置当前时间(包括上下午标志,时、分的数字显示),能在上午7:30和下午10:30定点打铃,且每次打铃均为响铃5s,停2s,再响5s。
4.6系统误差及性能分析
经测试该简易自动打铃系统在一天内会出现时间误差,该误差主要是由于晶振自身的误差所造成的。另外在中断的过程中,只会在第一次计时时产生时间的偏移,而它所产生累积误差很小,可以忽略。
5.设计总结
通过这次课程设计,我们得到了很多收获和体会,懂得了团队合作的重要性和必要性,以及工程设计的大体过程。第一,巩固和加深了对单片机基本知识和理解,提高了综合运用所学知识的能力。第二,增强了根据课程需要选学参考资料,查阅手册,图表和文献资料的自学能力。通过独立思考,深入研究有关问题,学会自己分析解决问题的方法。第三,通过实际方案的分析比较,设计计算,安装调试等环节,初步掌握了简单使用电路的分析方法和工程设计方法。第四,在这次课程设计过程中,光有理论知识是不够的,还必须懂一些实践中的知识。所以在课程设计的实践中,我们应将实验课与课堂教学结合起来,锻炼自己的理论联系实际的能力与实际动手能力。第五,掌握了比较常用的仪器的使用方法,提高了动手能力。第六,培养了严谨的工作作风和科学态度。
总之这次课程设计,培养了我们综合应用单片机原理及应用的理论知识和理论联系实际的能力;在设计的过程中还培养了我们的团队精神,同学共同协作,一齐商量讨论,解决了许多问题。这一切都令我们受益匪浅,在今后的学习工作中我们会一如既往,不断努力。
6.详细仪器清单
类型 5V直流电源 USB232converter 电阻 芯片 规格 ZH-6003
经过近几天的课程设计,我们组的成员都充分认识到理论知识和实践结合的重要性。经过两年多的理论基础的学习,我们成功的将理论运用如实践,并成功的运用单片机,以前只是在路上看见那些交通灯,但是并没有认真的研究交通灯的内部控制原理,还有单片机上那些芯片的功能和引脚图平常也不是常接触,通过这次城市道口交通灯控制系统设计让我清楚如果想做一个产品该怎样思考。此次课程设计持续的时间较长,对组员的耐心是一种极大的考验,同时学校的支持力度也应该加强,而不应该对学生的提问表示不解,对有些程序的编写要及时的给予指导,当然学生也要积极的配合老师的工作,努力将自己所学的知识尽可能的运用到对方案的设计中去。感谢老师的细心指导、和伙伴之间的配合。
参考文献
[1] 张鑫.单片机原理及应用[M].北京:电子工业出版社,2005.8. [2] 康光华.电子技术基础.模拟部分[M].北京:高等教育出版社,2006.1. [3] 康光华.电子技术基础.数字部分[M].北京:高等教育出版社,2006.1.
[4] 祁伟, 杨亭. 单片机C51程序设计教程与实验[M].北京:北京航空航天大学出版社,2006.