⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用89c51做稳压直流稳压电源.asm

📁 proteus仿真实例大全
💻 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 + -