以中断方法设计单片机秒、分脉冲发生器。设P1.0每秒钟产生一个机器周期的正脉冲,p1.1每分钟产生一个正脉
问题更新日期:2024-10-11 23:57:47
问题描述
以中断方法设计单片机秒、分脉冲发生器。设P1.0每秒钟产生一个机器周期的正脉冲,p1.1每分钟产生一个正脉希望能解答下
- 精选答案
-
用定时器T0,工作模式1进行50MS定时。 下列程序经过仿真,运行正确. ORG 0000H AJMP START ORG 000BH ;定时器0中断入口. AJMP SERVE START: MOV TMOD, #01H ;T0定时方式0 MOV TH0, #3CH ;定时50ms@12MHz MOV TL0, #0B0H SETB TR0 ;启动. SETB ET0 ;允许中断. SETB EA MOV R2, #20 ;秒. MOV R3, #60 ;分. CLR P1.0 ;开始时,输出低电平. CLR P1.1 SJMP $ ;等待中断. ;-------------------------------------------- SERVE: ;50ms执行一次本中断程序. MOV TL0, #0B0H ;重新送入初始值. MOV TH0, #3CH ;定时50ms@12MHz DJNZ R2, T0_END ;不到20次转移. SETB P1.0 ;到了20次,就是到了1秒,输出正脉冲. CLR P1.0 ;1个机器周期. MOV R2, #20 DJNZ R3, T0_END ;不到60秒转移. SETB P1.1 ;到了60秒,输出正脉冲. CLR P1.1 ;1个机器周期. MOV R3, #60 T0_END: RETI ;-------------------------------------------- END






