单片机课程设计论文_电子时钟设计(5)

2018-11-24 18:24

理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空间增大。损耗了过多的内存资源。

本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。

最后,感谢李凯南老师对我的细心的指导,正是由于李老师的细心的辅导和他提供给我们的参考资料,使得我的课程设计能够顺利的完成,同时在课程设计过程中,我们巩固和学习了我们的单片机知识。相信这对我以后的课程设计和毕业设计将会有很大的帮助!

6 附录

ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口 RETI ;外中断0中断返回 ORG 000BH ;定时器T0中断程序入口 LJMP INTT0 ;跳至INTTO执行 ORG 0013H ;外中断1中断程序入口 RETI ;外中断1中断返回 ORG 001BH ;定时器T1中断程序入口 LJMP INTT1 ;跳至INTT1执行 ORG 0023H ;串行中断程序入口地址 RETI ;串行中断程序返回

主程序开始;

20

START: MOV R0,#70H ;清70H-7AH共11个内存单元 MOV R7,#0BH ;

CLEARDISP: MOV @R0,#00H ; INC R0 ; DJNZ R7,CLEARDISP ;

MOV 20H,#00H ;清20H(标志用) MOV 7AH,#0AH ;放入\熄灭符\数据

MOV TMOD,#11H ;设T0、T1为16位定时器 MOV TL0,#0B0H ;50MS定时初值(T0计时用) MOV TH0,#3CH ;50MS定时初值

MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用) MOV TH1,#3CH ;50MS定时初值 SETB EA ;总中断开放 SETB ET0 ;允许T0中断 SETB TR0 ;开启T0定时器

MOV R4,#14H ;1秒定时用初值(50MS×20) START1: LCALL DISPLAY ;调用显示子程序

JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序 SJMP START1 ;P3.7口为1时跳回START1 SETMM1: LJMP SETMM ;转到时间调整程序SETMM

;; 1秒计时程序 ;;

INTT0: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护 CLR ET0 ;关T0中断允许 CLR TR0 ;关闭定时器T0 MOV A,#0B7H ;中断响应时间同步修正 ADD A,TL0 ;低8位初值修正 MOV A,#3CH ;高8位初值修正 ADDC A,TH0 ;

MOV TL0,A ;重装初值(低8位修正值)

MOV TH0,A ;重装初值(高8位修正值)

21

SETB TR0 ;开启定时器T0

DJNZ R4, OUTT0 ;20次中断未到中断退出 ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值 MOV R0,#71H ;指向秒计时单元(71H-72H) ACALL ADD1 ;调用加1程序(加1秒操作)

MOV A,R3 ;秒数据放入A(R3为2位十进制数组合) CLR C ;清进位标志 CJNE A,#60H,ADDMM ADDMM: JC OUTT0 ACALL CLR0 MOV R0,#77H ACALL ADD1 MOV A,R3 CLR C CJNE A,#60H,ADDHH ADDHH: JC OUTT0 ACALL CLR0 MOV R0,#79H ACALL ADD1 MOV A,R3 CLR C CJNE A,#24H,HOUR HOUR: JC OUTT0 ACALL CLR0 OUTT0: MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79H POP PSW POP ACC ;

;小于60秒时中断退出

;大于或等于60秒时对秒计时单元清0 ;指向分计时单元(76H-77H) ;分计时单元加1分钟 ;分数据放入A ;清进位标志 ;

;小于60分时中断退出

;大于或等于60分时分计时单元清0 ;指向小时计时单元(78H-79H)

;小时计时单元加1小时 ;时数据放入A ;清进位标志 ;

;小于24小时中断退出

;大于或等于24小时小时计时单元清0 ;中断退出时将分、时计时单元数据移 ;入对应显示单元 ; ;

;恢复状态字(出栈) ;恢复累加器

22

SETB ET0 ;开放T0中断 RETI ;中断返回

;; 闪动调时 程 序 ;;

;T1中断服务程序,用作时间调整时调整单元闪烁指示

INTT1: PUSH ACC ;中断现场保护 PUSH PSW ;

MOV TL1, #0B0H ;装定时器T1定时初值 MOV TH1, #3CH ;

DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次) MOV R2,#06H ;重装0.3秒定时用初值

CPL 02H ;0.3秒定时到对闪烁标志取反 MOV 72H,76H ;02H位为0时正常显示 MOV 73H,77H ; MOV 74H,78H ; MOV 75H,79H ;

INTT1OUT: POP PSW ;恢复现场 POP ACC ;

RETI ;中断退出

FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制 MOV 72H,7AH ;01H位为0时,\熄灭符\数据放入分 MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据 MOV 74H,78H ; MOV 75H,79H ;

AJMP INTT1OUT ;转中断退出

FLASH2: MOV 72H,76H ;01H位为1时,\熄灭符\数据放

入小时

JB 02H,FLASH1 ;02H位为1时显示单元\熄灭\

MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示 MOV 74H,7AH ; MOV 75H,7AH ;

AJMP INTT1OUT ;转中断退出

23

;; 加1子 程 序 ;;

ADD1: MOV A,@R0 ;取当前计时单元数据到A DEC R0 ;指向前一地址

SWAP A ;A中数据高四位与低四位交换 ADD A,#01H ;A加1操作 DA A ;十进制调整 ORL A,@R0 ;前一地址中数据放入A中低四位

MOV R3,A ANL A,#0FH MOV @R0,A MOV A,R3 INC R0 SWAP A ANL A,#0FH MOV @R0,A RET ;; 清零程序 ;对计时单元复零用

CLR0: CLR A MOV @R0,A DEC R0 MOV @R0,A RET

;; 时钟调整程序;当调时按键按下时进入此程序

SETMM: CLR ET0 CLR TR0 LCALL DL1S ;移入R3寄存器 ;高四位变0 ;放回前一地址单元 ;取回R3中暂存数据 ;指向当前地址单元

;A中数据高四位与低四位交换 ;高四位变0

;数据放入当削地址单元中 ;子程序返回

;; ;清累加器 ;清当前地址单元 ;指向前一地址 ;前一地址单元清0 ;子程序返回 ;;

;关定时器T0中断 ;关闭定时器T0 ;调用1秒延时程序

24


单片机课程设计论文_电子时钟设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:常州科教城“千百菁英计划”岗位需求信息

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

马上注册会员

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