已知8051单片机的fosc=12MHz,请利用定时器0方式二让P1.2输出矩形波。其矩形波高电平宽50us,低电平宽250

2024-12-16 18:24:43
推荐回答(1个)
回答1:

ORG 0000H
LJMP MAIN
ORG 000BH;以下是定时器0中断处理
CJNE R7,#00H,HIGHO;如果R7不为0,跳转到输出低电平处
SETB P1.2 ;如果R7为0,输出高电平
LJMP TESTO ;跳转到TEST0,对R7进行处理

HIGHO:;输出低电平
CLR P1.2;输出低电平

TESTO:
INC R7 ;R7自加一
CJNE R7,#05H,EXIT ;如果R7不等于5,直接退出
MOV R7,#00H ;如果R7等于5,则清零R7

EXIT:
RETI ;退出中断

ORG 0030H
MAIN:
MOV R7,#00H;R7作为脉冲高低电平计数,初始清零
MOV TMOD,#02H;定时器0工作于方式2
MOV TH0,#0CEH;定时器0初值,50us中断一次
MOV TL0,#0CEH
SETB ET0;开启定时器0中断
SETB EA;开启总中断
SETB TR0;启动定时器0
LJMP $;死循环
END