ORG 0000H
LJMP START
ORG 000BH
LJMP Timer0Interrupt;定時器0中斷入口
START:
MOV SP,#60H ;堆疊初始值
CLR P1.0; 引腳初始化為輸出低電平
LCALL InitTimer0 ;定時器T0初始化
LOOP:
LJMP LOOP
InitTimer0:
MOV TMOD,#01H;設定為定時器T0工作在方式1
MOV TH0,#0FFH;根據題意需定時500us,因此設定定時初值為FF06H
MOV TL0,#06H
SETB EA;開啟總中斷
SETB ET0;開啟T0定時器中斷
SETB TR0;開始啟用T0計數器/定時器
RET
Timer0Interrupt:
PUSH DPH ;保護現場
PUSH DPL
PUSH ACC
MOV TH0,#0FFH ;定時器初值重置
CPL P1.0 ;P1.0引腳反轉,輸出方波
POP ACC ;還原現場
POP DPL
POP DPH
RETI
END
ORG 0000H
LJMP START
ORG 000BH
LJMP Timer0Interrupt;定時器0中斷入口
START:
MOV SP,#60H ;堆疊初始值
CLR P1.0; 引腳初始化為輸出低電平
LCALL InitTimer0 ;定時器T0初始化
LOOP:
LJMP LOOP
InitTimer0:
MOV TMOD,#01H;設定為定時器T0工作在方式1
MOV TH0,#0FFH;根據題意需定時500us,因此設定定時初值為FF06H
MOV TL0,#06H
SETB EA;開啟總中斷
SETB ET0;開啟T0定時器中斷
SETB TR0;開始啟用T0計數器/定時器
RET
Timer0Interrupt:
PUSH DPH ;保護現場
PUSH DPL
PUSH ACC
MOV TH0,#0FFH ;定時器初值重置
MOV TL0,#06H
CPL P1.0 ;P1.0引腳反轉,輸出方波
POP ACC ;還原現場
POP DPL
POP DPH
RETI
END