利用单片机的定时器中断,周期性输出矩形波

;题目:80C51单片机的fosc = 6MHz,要求用T1定时器工作方式1,进行定时40ms。并由P1.7周期性的输出高电平40ms、低电平360ms的矩形波。
;分析:可采用中断方式,定时40ms发生一次中断,利用R7记录中断次数,仅当R7=0的时候,输出高电平。
;============================================
    ORG 0000H
    JMP START
    ORG 001BH
    JMP INT_T1
START:
    MOV TMOD, #10H
    MOV TL1, #LOW(65536 - 20000); 0E0H ;40ms延时初始值
    MOV TH1, #HIGH(65536 - 20000); 0B1H
    SETB TR1
    SETB ET1
    SETB EA
    MOV R7, #10      ;40ms中断次数
    SETB P1.7          ;起始输出高电平
HERE:
    SJMP HERE          ;等待中断
;--------------------------------------------
INT_T1:
    MOV TL1, #0E0H    ;40ms延时初始值
    MOV TH1, #0B1H
    DJNZ R7, NEXT
    SETB P1.7
    MOV R7, #10      ;40ms中断次数
    RETI
NEXT:
    CLR P1.7
    RETI
;--------------------------------------------
    END
;============================================
;原文网址:http://zhidao.baidu.com/question/126790215.html
;注意:网上的最佳答案,是其它网友回答的,程序有错,是不能运行的。
;提问者,不知好赖,不光是技术水平低,做人的品格也较低。

你可能感兴趣的:(51汇编语言)