基于51单片机的时钟课设内容摘要:

LJMP MAIN ORG 00030H MAIN:。 5045 初始化 MOV HOUR,00H。 时分秒初值置零 MOV MIN,00H MOV SEC,00H MOV DHOUR,06H。 闹钟时间 MOV DMIN,30H MOV DSEC,00H MOV SP,50H。 堆栈指针 MOV COUNT,00H。 T0 中断计数器清零 MOV FLAG,00H。 按键调整标志清零 SETB ALARM。 闹钟标志开 SETB。 蜂鸣器控制口 MOV TMOD,11H。 T0,T1 置方式 1 MOV TL0,0F0H。 T0 定时 10MS 初值 MOV TH0,0D8H。 MOV TL1,3CH。 T1 定时 50MS 初值。 闪烁用 MOV TH1,0B0H SETB EA。 开总中断 SETB EX0。 开 INT0 中断 SETB ET0。 开 T0 中断 SETB TR0。 启动 T0 计数 LCALL CONV。 调用转换程序 ,。 BCD 码拆分送显示缓冲区 LCALL DISPLAY。 调用动态显示程序 SJMP $ CONV:。 BCD 码拆分送显示缓冲区 MOV R0,70H MOV R1,20H MOV R2,3 LOOP:LCALL CON DJNZ R2,LOOP SJMP DONE CON:MOV A,@R1 ANL A,0FH。 MOV @R0,A INC R0 MOV A,@R1 ANL A,0F0H MOV @R0,A INC R0 RET DISPLAY:。 动态显示程序 MOV R0,70H。 显示缓冲区始值 MOV P0,01H。 字位码始值 LD0:MOV A,@R0。 待显示字符偏移量 MOV DPTR,TAB MOVC A,@A+DPTR。 查字形码表 MOV P2,A。 字形码送 P2 口 ACALL DELAY。 调用延时程序 INC R0。 修正显示缓冲区指针 MOV A,P0。 字位码送 A JB ,LD1。 若显示完一遍 ,LD1 RL A。 字位码左移一位 MOV P0,A。 送回 P0 AJMP LD0。 显示下一数码 LD1:RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H DELAY:MOV R7,06H DELAY1:MOV R6,0FFH DELAY2:DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET。 T0 定时中断 ORG 000BH LJMP TIME ORG 0100H TIME: PUSH PSW。 保护现场 PUSH ACC MOV TL0,0F0H。 重新赋 T0 初值 MOV TH0,0D8H SETB。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。