1、已知80C51单片机系统时钟频率为6MHZ,请编程利用定时器T0(方式2)在P1.0输出2.5KHz方波

用汇编语言。谢谢。

ORG 0000H
    LJMP MAIN
ORG 000BH
    LJMP TIMER0
MIAN:
    SETB EA
    SETB ET0
    MOV TH0,#38H
    MOV TL0,#38H
    ORL TMOD,#02H
    SETB TR0
    SJMP $
    
TIMER0:
    CPL P1.0
    RETI

追问

可以加上一些注释吗?

追答ORG 0000H
    LJMP MAIN
ORG 000BH
    LJMP TIMER0    ;T0中断入口地址
MIAN:
    SETB EA    ;打开总中断
    SETB ET0    ;打开T0中断
    MOV TH0,#9CH    ;
    MOV TL0,#9CH    ;设置T0的初始值,200us,刚刚错了
    ORL TMOD,#02H    ;T0设为方式2
    SETB TR0    ;开启T0定时器
    SJMP $    ;死循环,等待中断触发
     
TIMER0:
    CPL P1.0    ;P1.0取反,每200us取反一次,就能输出2.5K方波
    RETI

追问

ORL TMOD,#02H这句好像有点问题。

追答

改成 MOV TMOD,#02H 试试

温馨提示:答案为网友推荐,仅供参考