1mS时间到, 否 满1000? 是 秒满60? 是 否 分满59? 是 计满否 退出中断 图11 T0中断计时
否 秒+1 分+1 是 暂停计
代码如下:
/*****************定时器0中断*************/ void timer0_int() interrupt 1 // 秒表 {
TH0=(65536-1000)/256; TL0=(65536-1000)%6; cnt++;
if((cnt==10)&&(full==0)) // 当cnt=10,说明计了10ms,则将计时的数据更新一// 下,放到数码管上显示
{ // 只有当cnt=10,并且时间没计到59.59.99s时,才往下执行 cnt=0; s1++;
if((s3==59)&&(s2==59)&&(s1==99))
full=1; // 如果计满,则置标志位 else if(s1==100) {
s1=0; // 小数的秒 s2++;
if(s2==60) {
第9页
s2=0; // 秒
s3++; } } } }
因为要求计时精确到0.01s,所以选择T0的中断时间为0.001s,即1ms。因此T0每1ms即中断一次,接着让cnt加1,当其加到10,则说明计时10ms,此时让s1加1。如果s1加满100,则计时时长为10ms*100=1s,说明已经计满1s,向秒寄存器s2进位。
秒寄存器s2如果计满60,则向分寄存器s2进位。
以上就是一个计时的过程。如果最终计时满59.59.99,则停止计时。 4 系统仿真
4.1 仿真测试步骤 (1).启用proteus。
(2).从元器件库中调出各种系列的芯片,电容,电感,电阻以及示波器等我们所需要的各种元器件,元器件调出后,认真连接各元件,对元器件的位置进行调整以求电路原理图美观简易,并保存图,使布局比较合理。
(3).在keil中编写电子秒表的C语言源程序,并且生成后缀为.hex的文件。 (4).将后缀为hex的文件添加到proteus中的电子秒表的电路图中,进行仿真。 (5).点击proteus的测试按钮,对电路系统进行测试,观察LED显示时间的变化。 4.2 仿真图
把程序添加到proteus中的电子秒表电路之后,点击图12所示
按钮后,LED显示的时间如
图12 电子秒表仿真图
通过本次仿真,实现了电子秒表的计时、暂停、复位功能,并使显示时间达到了0~59分59秒99,计时精度为0.01秒,符合本次设计的要求。
第10页
5 总结
本次毕业设计我设计的是基于单片机的电子秒表,是设计一个电子秒表,具有启动、停止和清零的功能。经过3个多月的方案论证、系统的硬件和软件的设计、系统的调试,本人查阅了大量的关于AT89C52单片机的知识和电路。经过了这么长时间的查找与探究,经历了失败与成功,感受到了成功的喜悦与成就感。第一次利用所学的专业知识探究解决难点疑点,同时也对自己的知识水平进行了一番考察,让我对自己也有了新的了解。
非常感谢我的毕业设计指导老师闫老师,通过本次毕业设计,是他让我对原来所学的数字、模拟电子技术、单片机原理及接口技术等课程有了进一步的理解,成功使用了Keil uVision4和Proteus ISIS电子软件,让我对课本上的理论知识进行了更系统实用的理解,更加系统地掌握了微机应用系统的一般设计方法和理论,培养了较强的编程能力、开发能力。
我们只有把课本上学到的知识运用到实践中,才能真正意义上理解所学的知识,同时增强自己实践的能力,为设计新的作品打下完美的基础。不仅可以锻炼自己分析问题、处理问题的能力,而且还能提高自己的动手能力。这些锻炼对于我们这些将要走向社会的大学生来说,是很有必要的。
参考文献
[1] 李玉峰,倪虹霞 MCS-51系列单片机原理与接口技术. [M]. 北京:人民邮电出版社,2004,187~216.
[2] 林伸茂. 8051单片机彻底研究经验篇. [M]. 北京:人民邮电出版社,2004,7~14. [3] 沙占友. 单片机外围电路设计. [J]. 北京:电子工业出版社,2003,37~48.
electronic stopwatch
Ren Peng
((Institute of Physics and Electrical Engineering, Anyang Normal University, Anyang, Henan 455000)
Abstract:It is a digital electronic stopwatch system in this design that adopts the AT89C52 microcontroller as the central component, using its timer/counter to time and the principle of counting. It also combines the display circuit,the LED digital tube, and the external interrupt circuit for designing. It mixes software and hardware flexibly to make the six digit LED display come true , and the display time is from 0 to 59min 59s 99. The timing accuracy is 0.001s.
Key words: Microcontrollers;LED digital tube indicator; AT89C52
第11页
附录: 原理图:
PCB图:
第12页