以中断方法设计单片机秒、分脉冲发生器。设P1.0每秒钟产生一个机器周期的正脉冲,p1.1每分钟产生一个正脉
答案:1 悬赏:30 手机版
解决时间 2021-03-20 15:20
- 提问者网友:低吟詩仙的傷
- 2021-03-19 20:52
以中断方法设计单片机秒、分脉冲发生器。设P1.0每秒钟产生一个机器周期的正脉冲,p1.1每分钟产生一个正脉
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-03-19 21:11
帮你写一个汇编程序:
;51单片机,12MHZ时钟,正脉冲宽度10MS
T1S data 30h ;秒
T60S data 31h ;分
org 000h
sjmp do ;跳初始化程序
org 000bh
ajmp F50HZ ;10毫秒定时中断
do:
mov T1S,#100
mov T60S,#60
mov tmod,#00010001b ;双定时T0,T1
setb et0 ;开中断
setb ea ;开中断
MOV TH0,#217 ;设定T0: 10ms中断一次12MHz
MOV TL0,#240
setb tr0 ;开始定时
sjmp $
;=====================定时器中断==============
F50HZ:
CLR P1.0
CLR P1.1
MOV TH0,#217 ;设定T0: 10ms中断一次12MHz
MOV TL0,#240 ;
DJNZ T1s,GO2 ;不够1秒,转 反回
SETB P1.0 ;输出脉冲
MOV T1S,#100
DJNZ T60S,#GO2 ;不够60秒,转 反回
SETB P1.1 ;输出脉冲
MOV T60S,#60
GO2:
reti ;中断返回
end
;51单片机,12MHZ时钟,正脉冲宽度10MS
T1S data 30h ;秒
T60S data 31h ;分
org 000h
sjmp do ;跳初始化程序
org 000bh
ajmp F50HZ ;10毫秒定时中断
do:
mov T1S,#100
mov T60S,#60
mov tmod,#00010001b ;双定时T0,T1
setb et0 ;开中断
setb ea ;开中断
MOV TH0,#217 ;设定T0: 10ms中断一次12MHz
MOV TL0,#240
setb tr0 ;开始定时
sjmp $
;=====================定时器中断==============
F50HZ:
CLR P1.0
CLR P1.1
MOV TH0,#217 ;设定T0: 10ms中断一次12MHz
MOV TL0,#240 ;
DJNZ T1s,GO2 ;不够1秒,转 反回
SETB P1.0 ;输出脉冲
MOV T1S,#100
DJNZ T60S,#GO2 ;不够60秒,转 反回
SETB P1.1 ;输出脉冲
MOV T60S,#60
GO2:
reti ;中断返回
end
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯