单片机中定时器0以中断定时方式发生方波脉冲,P1.6脚输出,每1ms产生脉冲,脉冲宽度0.5ms,频率6MHZ汇编语

单片机中定时器0以中断定时方式发生方波脉冲,P1.6脚输出,每1ms产生脉冲,脉冲宽度0.5ms,频率6MHZ,求汇编语言程序
可是0.5ms的脉冲宽度要怎么汇编?

500us中断一次,对P1.6引脚取反即可。
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
START:
MOV TMOD, #02H ;自动重新装入初始值方式
MOV TH0, #6 ;250*2=500us
MOV TL0, #6
SETB TR0 ;启动T0
MOV IE, #82H ;开放中断
SJMP $ ;等待中断发生
T0_INT:
CPL P1.6
RETI

END
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-19
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INTT0
ORG 0030H
MAIN:
SETB ET0
SETB EA
SETB TR0
MOV TMOD,#01H ;T0方式1
MOV TH0,#FEH ;65536-500=FE0CH
MOV TL0,#0CH
LJMP $
INTT0:
MOV TH0,#FEH
MOV TL0,#0CH
CPL P1.6
RETI
END
每1MS 脉冲0.5MS宽度 用定时器做个0.5MS对IO口去反就可以了

楼上有误把自己明明都些了250*2 说明他要启动2次 自己定时里面又没设置
明显是250US取反,,, 我刚回答他就回答,,,,, 还好我看到了 我擦修改答案后变我楼上的,,,,本回答被网友采纳
第2个回答  2010-12-19
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INTT0
ORG 0030H
MAIN:
SETB ET0
SETB EA
SETB TR0
MOV TMOD,#01H ;T0方式1
MOV TH0,#FEH ;65536-500=FE0CH
MOV TL0,#0CH
LJMP $
INTT0:
MOV TH0,#FEH
MOV TL0,#0CH
CPL P1.6
RETI
END
相似回答