编写程序,要求使用T0,采用方式2定时,在P1.0输出周期为400us,占空比为10:1的矩形脉冲。

来源:百度知道 编辑:UC知道 时间:2024/07/11 02:51:45

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: MOV TMOD,#02H ;定时器/计数器T0为定时方式2
MOV TL0,#4AH ;定时364μs初值赋值
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
SETB P1.0
WAIT: AJMP WAIT
IT0P: CLR EA
CLR P1.0 ;关中断
MOV R0,#9
DLY: DJNZ R0,DLY ;延时26μs
MOV TL0,#4AH ;定时364μs初值赋值
SETB P1.0
SETB EA
RETI

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: MOV TMOD,#02H ;定时器/计数器T0为定时方式2
MOV TL0,#4AH ;定时364μs初值赋值
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
SETB P1.0
WAIT:AJMP WAIT
IT0P: CLR EA
CLR P1.0 ;关中断
MOV R0,#9
DLY: DJNZ R0,DLY ;延时36μs
MOV TL0,#4AH ;定时364μs初值赋值
SETB P1.0
SETB EA
RETI

把程序加载到单片机,这样可以看一下实现的效果

程序在哪里运行,是把计算结果在计算机上输出,还是传给某硬件或示波器?如果在计算机上输出,是需要DOS做图还是C++,请表述清楚,这样大家才能有针对性的帮助你。