?? 用89c51做穩壓直流穩壓電源.asm
字號:
org 00h ;開始
MOV P1,#00H;開機電壓置0
SETB p2.5;關掉輸出,防止開機瞬間電壓過高損壞用電器。
SETB P3.7
SETB P3.6
SETB P3.5
SETB P3.4
start:
V15:;1.5伏
LCALL DELAY2;防按鍵抖動
MOV P1,#03H;1.5V數據量
CLR P2.5;閉合繼電器開關,輸出電壓
B1:
MOV P0,#01111001B;顯示1和小數點
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#00010010B;顯示5
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S1;檢測是否短路,過流。
JB P3.6,T;減鍵
JB P3.7,V3;增鍵
JB P3.5,s1;關機
JMP B1
T:LJMP V12;因為程序太長,不能直接轉移,所以要用長調用命令!
S1:LJMP STOP;因為程序太長,不能直接轉移,所以要用長調用命令!
V3:;3伏
LCALL DELAY2
MOV P1,#1bH;3V數據量
B2:
MOV P0,#11000000B;顯示0
clr P2.6
CLR P2.7
LCALL delay
MOV P0,#10110000B;顯示3
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S2;檢測是否短路,過流。
JB P3.5,s2;關機
JB P3.6,V15;減
JB P3.7,V42;增
JMP B2
S2:LJMP STOP
V42:;4.2伏
LCALL DELAY2
MOV P1,#2FH;4.2V數據量
B3:
MOV P0,#00011001B;顯示4和小數點
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#00100100B;顯示2
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S3;檢測是否短路,過流。
JB P3.5,s3;關機
JB P3.6,V3;減
JB P3.7,V5;增
JMP B3
S3:LJMP STOP
V5:;5伏
LCALL DELAY2
MOV P1,#3FH;5V數據量
B4:
MOV P0,#11000000B;顯示0
clr P2.6
CLR P2.7
LCALL delay
MOV P0,#10010010B;5
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S4;檢測是否短路
JB P3.5,s4;關機
JB P3.6,V42;減
JB P3.7,V6;增
JMP B4
S4:LJMP STOP
V6:;6伏
LCALL DELAY2
MOV P1,#4EH;6V數據量
B5:
MOV P0,#11000000B;顯示0
clr P2.6
CLR P2.7
LCALL delay
MOV P0,#10000010B;顯示6
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S5;檢測是否短路
JB P3.5,S5;關機
JB P3.6,V5;減
JB P3.7,V84;增
JMP B5
S5:LJMP STOP
V84:;8.4伏
LCALL DELAY2
MOV P1,#78H;8.4V數據量
B6:
MOV P0,#00000000B;顯示8
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#00011001B;顯示4
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,STOP;檢測是否短路
JB P3.5,STOP;關機
JB P3.6,V6;減
JB P3.7,V12;增
JMP B6
V12:;12伏
LCALL DELAY2
MOV P1,#0B4H;12V數據量
B7:
MOV P0,#11111001B;顯示1
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#10100100B;顯示2
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,STOP;檢測是否短路
JB P3.5,STOP;關機
JB P3.6,V84;減
JB P3.7,T2;增
JMP B7
T2:JMP V15
STOP:;關機
LCALL DELAY2
MOV P1,#00H;令LM317電壓最低
STOP2:
SETB P2.5;關閉輸出
MOV P0,#11000000B;顯示O
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#10001110B;顯示F
SETB P2.7
CLR P2.6
LCALL delay
JB P3.5,ST;再次開機
jb p3.6,st;再次開機
jb p3.7,st;再次開機
JMP STOP2
ST:LJMP V15
delay: MOV R2,#5;延時子程序
L1001: mov R3,#250
DJNZ R3,$
DJNZ R2, L1001
ret
DELAY2:;延時子程序
MOV R6,#3
D2:MOV R4,#200
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
djnz r6,d2
RET
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -