设单片机的fosc=12Mhz,要求在 P1.0脚上输出周期为2.5ms,占空比为20%的波形
答案:2 悬赏:60 手机版
解决时间 2021-11-12 04:11
- 提问者网友:暗中人
- 2021-11-11 08:24
设单片机的fosc=12Mhz,要求在 P1.0脚上输出周期为2.5ms,占空比为20%的波形
最佳答案
- 五星知识达人网友:怙棘
- 2021-11-11 09:39
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#02H
MOV TH0,#6
MOV TL0,#6
SETB TR0
SETB ET0
SETB EA
CLR A
SETB P1.0
SJMP $
T0ISR:
CJNE A,#3,T01
T01:
JNC T02
SETB P1.0
RETI
T02:
CLR P1.0
CJNE A,#10,T03
T03:
JC T04
CLR A
T04:
RETI
END
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#02H
MOV TH0,#6
MOV TL0,#6
SETB TR0
SETB ET0
SETB EA
CLR A
SETB P1.0
SJMP $
T0ISR:
CJNE A,#3,T01
T01:
JNC T02
SETB P1.0
RETI
T02:
CLR P1.0
CJNE A,#10,T03
T03:
JC T04
CLR A
T04:
RETI
END
全部回答
- 1楼网友:风格不统一
- 2021-11-11 10:55
;启动入口
ORG 0000H ;复位启动
LJMP START ;
ORG 000BH ;T0中断
LJMP T0INT ;
ORG 0100H ;
LJMP START ;
;
;主控程序
START: MOV SP,#80H ;初始堆栈值
MOV TMOD,#01H ;定时器0工作于方式1
MOV TH0,#0ECH ;定时器0定时时间=5000uS
MOV TL0,#78H ;
MOV R0,#255
SETB ET0 ;使能定时器0中断
SETB EA ;开总中断
SETB TR0 ;定时器0启动,开始定时
JMP $ ;
;
;定时器0中断服务程序
T0INT: MOV TH0,#0ECH ;定时器0定时时间=5000uS
MOV TL0,#78H ;
INC R0 ;
CJNE R0,#0,CMPMAX ;
SETB P1.0 ;
JMP QT0 ;
CMPMAX: CLR P1.0 ;
CJNE R0,#4,QT0 ;
MOV R0,#255 ;
QT0: RETI ;
END ;
ORG 0000H ;复位启动
LJMP START ;
ORG 000BH ;T0中断
LJMP T0INT ;
ORG 0100H ;
LJMP START ;
;
;主控程序
START: MOV SP,#80H ;初始堆栈值
MOV TMOD,#01H ;定时器0工作于方式1
MOV TH0,#0ECH ;定时器0定时时间=5000uS
MOV TL0,#78H ;
MOV R0,#255
SETB ET0 ;使能定时器0中断
SETB EA ;开总中断
SETB TR0 ;定时器0启动,开始定时
JMP $ ;
;
;定时器0中断服务程序
T0INT: MOV TH0,#0ECH ;定时器0定时时间=5000uS
MOV TL0,#78H ;
INC R0 ;
CJNE R0,#0,CMPMAX ;
SETB P1.0 ;
JMP QT0 ;
CMPMAX: CLR P1.0 ;
CJNE R0,#4,QT0 ;
MOV R0,#255 ;
QT0: RETI ;
END ;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯