;題目:80C51單片機的fosc = 6MHz,要求用T1定時器工作方式1,進行定時40ms。并由P1.7周期性的輸出高電平40ms、低電平360ms的矩形波。
;分析:可采用中斷方式,定時40ms發(fā)生一次中斷,利用R7記錄中斷次數(shù),僅當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中斷次數(shù)
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中斷次數(shù)
RETI
NEXT:
CLR P1.7
RETI
;--------------------------------------------
END
;============================================