ORG 00H;
START:
MOV TMOD,#10H; 設置Timer1工作在模式1下
MOV R1,#50; R1為重復定時計數(shù)器(R1=50,1s)(R1=100,2s)最大255
LOAD:
MOV TL1,#0E0H; 往TL1和TH1中載入計數(shù)的初始值B1E0H
MOV TH1,#0B1H;
SETB TR1; 啟動Timer1
CHECK:
JNB TF1,CHECK; 檢測Timer1標志,當TF1=1,跳出執(zhí)行下一行
CLR TR1; TR1清0 關閉Timer1
CLR TF1; 將TF1清0
DJNZ R1,LOAD; 如果R1≠0,跳回LOAD重新裝載計數(shù)初始值
CLR P1.7;
MOV R1,#10;(10s)
D1: MOV R2,#1;(1Min)
D2: MOV R3,#100 ; 延時子程序(1000ms)
D3: MOV R4,#20 ;
D4: MOV R5,#248;
DJNZ R5,$ ;
DJNZ R4,D4 ;
DJNZ R3,D3 ;
DJNZ R2,D2 ;
DJNZ R1,D1 ;
SETB P1.7;
MOV R1,#30;(60s)
D5: MOV R2,#1;(10Min)
D6: MOV R3,#100 ; 延時子程序(1000ms)
D7: MOV R4,#20 ;
D8: MOV R5,#248;
DJNZ R5,$ ;
DJNZ R4,D8 ;
DJNZ R3,D7 ;
DJNZ R2,D6 ;
DJNZ R1,D5 ;
SETB P1.0; 將P1.0口置高電平1,使LED燈滅
MOV R1,#1;(60s)
L1: MOV R2,#1;(10Min)
L2: MOV R3,#100 ; 延時子程序(1000ms)
L3: MOV R4,#20 ;
L4: MOV R5,#248;
DJNZ R5,$ ;
DJNZ R4,L4 ;
DJNZ R3,L3 ;
DJNZ R2,L2 ;
DJNZ R1,L1 ;
CLR P1.0; 將P1.0口置低電平0,使LED燈亮
MOV R1,#1;(60s)
L5: MOV R2,#1;(10Min)
L6: MOV R3,#100 ; 延時子程序(1000ms)
L7: MOV R4,#20 ;
L8: MOV R5,#248;
DJNZ R5,$ ;
DJNZ R4,L8 ;
DJNZ R3,L7 ;
DJNZ R2,L6 ;
DJNZ R1,L5 ;
LJMP START;
END; 程序結束(總延時1s)
|