MOV 7CH, #00H ;对1s位清零 MOV R3, #00H MOV A, 7DH
ADD A, #01H ;10s位加一 MOV 7DH, A MOV A, R4 ADD A, #01H MOV R4, A
CJNE R4, #0AH, EXIT ; MOV 7DH, #00H ;
EXIT: RETI
DELAY1: MOV R5, #0FFH ;DEL11: MOV R6, #0F5H DEL12: MOV R7, #06H
DEL13: DJNZ R7 , DEL13 ; {1+[1+
DELAY2: MOV R6 , #05H ;DEL21: MOV R7, #62H
DEL22: DJNZ R7, DEL22 ; 1+ NOP
DJNZ R6, DEL21 RET
判断10s位是否满10,不满10跳出
对10s位清零 数字8循环用延时程序 (1+2x6 +1+2)x245 +1+2]x255+2}
NOP ; x1us =1000623us≈1s
, DEL12 计时用延时程序 (1+2x98 +1+2)x5 +2=1003≈1000 20
DJNZ R6 NOP
DJNZ R5, DEL11 RET
DELAY3: MOV R6, #0FFH ;50毫秒延时程序 DEL31: MOV R7, #60H
DEL32: DJNZ R7, DEL32 ; [1+(1+2x96 +1+2)x255 +2]x1us NOP ; =49983us≈50ms DJNZ R6, DEL31
RET ;返回
TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END
5 设计体会与总结
这次设计,为大家提供了应用自己所学知识的平台,是非常可贵的。经过此次设计使我们对单片机有了更加的系统认识,同时对单片机模块化编程以及程序的调试增加了实践的经验。最重要的是提高大家对单片机开发的兴趣,增强了大家团队意识。再设计过程中,遇到了诸如延时程序不能嵌套,数码管显示的问题,工作寄存器分配问题,跳转指令程序的设计问题,短跳转的超程问题,经过大家的积极思考与热烈讨论,使问题都得到了解决。
通过课程设计,复习巩固我们以前所学习的数字、模拟电子技术、单片机原理及接口等课程知识,加深对各门课程及相互关系的理解,并成功使用了Keil uVision2和Proteus ISIS电子软件,使理论知识系统化、实用化,系统地掌握微机应用系统的一般设计方法,培养较强的编程能力、开发能力。
只有从课本上学习的知识只有运用到实践中来,才能真正的理解了所学的东西,同时增加了实践的能力,从而为设计、创新新的产品打下基础。
21
参考文献
[2] 李邓化,彭书华,许晓飞.智能检测技术及仪表.科学出版社,2007 [3] 戴佳. 单片机C51语言应用程序设计. 电子工业出版社,2006.7 [4] 朱民雄.计算机语言技术. 北京航空航天大学出版社,2002.1 [5] 李鸿. 单片机原理及应用. 湖南大学出版社. 2004.8 [6] 刘建清. 单片机技术. 国防工业出版社, 2006.8
[7] 杨宁,胡学军.单片机与控制技术.北京航空航天大学出版社,2005 [8] 汪贵平,新编单片机原理及应用。机械工业出版社,2010.0
[1] 胡汉才 单片机原理及其接口技术(第二版)清华大学出版社2004
22