ORG 0000H
LJMP MAIN
ORG 001BH ;定時器1中斷矢量地址
LJMP T1_ISR ;轉到中斷子程序處執行
ORG 0030H
MAIN: MOV TMOD,#20H ;采用定時器方式2,8位自動重載
MOV TH1,#6 ;由於周期500u,故高低電平均持續250u
MOV TL1,#6 ;計算得定時初值,定時250u
MOV R0,#4 ;置循環次數,4x250u=1m
SETB EA ;開總中斷
SETB ET1 ;開定時器1中斷
SETB TR1 ;啟動T1
SJMP $ ;空循環
;中斷子程序
T1_ISR: CPL P1.1 ;P1.1取反
DJNZ R0,OUT ;檢測是否計數四次,不夠則退出
MOV R0,#4 ;四次已到,給R0重新賦值
CPL P1.0 ;P1.0取反
OUT: RETI ;返回主程序
END
proteus 仿真通過