基于单片机的9h定时器课程设计(编辑修改稿)内容摘要:

ORG 000BH。 定时器 0 中断入口地址 LJMP TIMER_0 K1 BIT。 定义调时按键 K2 BIT。 定义 调分按键 K3 BIT。 秒清零 K4 BIT。 停止蜂鸣器 FLAG BIT 37H。 蜂鸣器响标志位 1为蜂鸣器没有叫,0 代表蜂鸣器正在叫 MODE BIT 38H。 报时使能位 1 为能够报时 0 为否 FLAG1 BIT 38H START: MOV TMOD,01H。 定时器 0,工作模式 1 MOV TH0,03CH MOV TL0,0B0H。 赋初值,定时 50ms SETB EA。 开中断总开关 SETB TR0。 开启定时器 0 SETB ET0。 定时器 0 中断允许位 MOV R6,0。 用于控制走时的基准时钟源,计中断次数 MOV R5,0。 R5 用于控制扫描按键的时间间隔 MOV 20H,0。 秒个位寄存器清零 MOV 21H,0。 秒十位寄存器清零 MOV 22H,0。 分个位寄存器清零 MOV 23H,0。 分十位寄存器清零 MOV 24H,0。 时个位寄存器清零 MOV 25H,0。 时十位寄存器清零 10 CLR。 将蜂鸣器置 0 停止 SETB FLAG。 将蜂鸣器响清零 SETB MODE。 默认置为能够报时 MOV 30H,24H MOV 31H,30H LJMP DISPLAY TIMER_0: CLR EA INC R6 ADD_TIME: CJNE R6,20,NEXT。 定时器中断 20 次, 1 秒到 MOV R6,0 INC 20H MOV A,20H CJNE A,10,NEXT。 如果秒个位 等于 10,清零 MOV 20H,00H INC 21H MOV A,21H CJNE A,6,NEXT。 如果秒十位等于 6,清零 MOV 21H,00H INC 22H NEXT: MOV TH0,03CH MOV TL0,0B0H。 重新赋初值,定时 50ms SETB EA RETI DISPLAY: LCALL TIME 11 INC R5 MOV DPTR,TABLE MOV A,20H MOVC A,@A+DPTR MOV P1,A CLR LCALL DELAY SETB。 显示秒个位 MOV A,21H MOVC A,@A+DPTR MOV P1,A CLR LCALL DELAY SETB。 显示秒十位 MOV DPTR,TABLE MOV A,22H MOVC A,@A+DPTR MOV P1,A CLR LCALL DELAY SETB。 显示分个位 MOV DPTR,TABLE MOV A,23H MOVC A,@A+DPTR MOV P1,A CLR LCALL DELAY SETB。 显示分十位 12 MOV P1,0BFH CLR LCALL DELAY SETB MOV P1,0BFH CLR LCALL DELAY SETB MOV DPTR,TABLE MOV A。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。