永发信息网

以中断方法设计单片机秒、分脉冲发生器

答案:3  悬赏:10  手机版
解决时间 2021-04-03 04:47
  • 提问者网友:做自己de王妃
  • 2021-04-02 04:44
以中断方法设计单片机秒、分脉冲发生器
最佳答案
  • 五星知识达人网友:行路难
  • 2021-04-02 05:05
用定时器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
全部回答
  • 1楼网友:雪起风沙痕
  • 2021-04-02 06:38
假定用定时器T1,工作模式1进行100MS定时。单片机晶振频率为6MHZ,的初值3CB0H
ORG 0000H
AJMP MAIN
ORG 001BH
AJMP SERVE
MAIN: MOV TMOD,#10H
MOV 20H,#10
CLR A
MOV 30H,A ;秒
MOV 31H,A ;分
SETB ET1
SETB EA
MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1
SJMP $
SERVE: MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ 20H,RETUNT
MOV 20H,#10
MOV A,#01H
ADD A,30H
DA A
MOV 30H,A
CLR P1.0
L00P1: JBC TF1,LOOP2
SJMP LOOP1
LOOP2: SETB P1.0
SJMP SERVE
CJNE A,#60,RETUNT
MOV 30H,#00H
MOV A,#01H
ADD A,31H
DA A
MOV 31H,A
CLR P1.1
L00P3: JBC TF1,LOOP4
SJMP LOOP3
LOOP4: SETB P1.1
SJMP SERVE
CJNE A,#60,RETUNT
MOV 31H,#00H
RETUNT:RETI
END
  • 2楼网友:躲不过心动
  • 2021-04-02 06:25
用定时器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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯