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

📄 main.asm

📁 自己做的数控电压源系统的单片机C语言源程序
💻 ASM
字号:
org 00h ;开始
MOV P1,#00H;开机电压置0
SETB P3.7
SETB P3.6
SETB P3.5

start:
V15:;1.5伏
LCALL DELAY2;防按鍵抖动
MOV P1,#03H;1.5V数据量
;-----------------------------------
B1:
CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#10000110B;显示1和小数点
SETB P2.6
CLR  P2.7
LCALL delay

CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#11101101B;显示5
CLR P2.6
SETB P2.7
LCALL delay

;JNB P3.5,T;关机
;JNB P3.6,V3;减
;JNB P3.7,S1;增
	;-------KEY1
K_1:
	JNB P3.5,key_1;减键
	jmp K2_1
key_1:
	lcall delay_us
	jnb P3.5,T

	;-------KEY2
K2_1:
	JNB P3.6,key2_1;减键
	jmp K3_1
key2_1:
	lcall delay_us
	jnb P3.6,V3

	;-------KEY3
K3_1:
	JNB P3.7,key3_1;减键
	jmp B1
key3_1:
	lcall delay_us
	jnb P3.7,S1

JMP B1
;-------------------------------------


T:LJMP V12;因为程序太长,不能直接转移,所以要用长调用命令!
S1:LJMP STOP;因为程序太长,不能直接转移,所以要用长调用命令!

V3:;3伏
LCALL DELAY2
MOV P1,#1bH;3V数据量
B2:
CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#00111111B;显示0
SETB P2.6
CLR  P2.7
LCALL delay

CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#01001111B;显示3
CLR P2.6
SETB P2.7
LCALL delay

;JNB P2.4,S2;检测是否短路,过流。
;JNB P3.5,S2;关机
;JNB P3.6,V15;减
;JNB P3.7,V42;增
K_2:
	JNB P3.5,key_2;减键
	jmp K2_2
key_2:
	lcall delay_us
	jnb P3.5,T

	;-------KEY2
K2_2:
	JNB P3.6,key2_2;减键
	jmp K3_2
key2_2:
	lcall delay_us
	jnb P3.6,V3

	;-------KEY3
K3_2:
	JNB P3.7,key3_2;减键
	jmp B1
key3_2:
	lcall delay_us
	jnb P3.7,S1
JMP B2
S2:LJMP STOP


V42:;4.2伏
LCALL DELAY2
MOV P1,#2FH;4.2V数据量
B3:
CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#11100110B;显示4和小数点
SETB P2.6
CLR  P2.7
LCALL delay

CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#11011011B;显示2
CLR P2.6
SETB P2.7
LCALL delay

JNB P2.4,S3;检测是否短路,过流。
JNB P3.5,s3;关机
JNB P3.6,V3;减
JNB P3.7,V5;增
JMP B3
S3:LJMP STOP


V5:;5伏
LCALL DELAY2
MOV P1,#3FH;5V数据量
B4:
CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#00111111B;显示0
SETB P2.6
CLR  P2.7
LCALL delay

CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#01101101B;5
CLR P2.6
SETB P2.7
LCALL delay

JNB P2.4,S4;检测是否短路
JNB P3.5,s4;关机
JNB P3.6,V42;减
JNB P3.7,V6;增
JMP B4
S4:LJMP STOP


V6:;6伏
LCALL DELAY2
MOV P1,#4EH;6V数据量
B5:
CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#00111111B;显示0
SETB P2.6
CLR  P2.7
LCALL delay

CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#01111101B;显示6
CLR P2.6
SETB P2.7
LCALL delay

JNB P2.4,S5;检测是否短路
JNB P3.5,S5;关机
JNB P3.6,V5;减
JNB P3.7,V84;增
JMP B5
S5:LJMP STOP

V84:;8.4伏
LCALL DELAY2
MOV P1,#78H;8.4V数据量
B6:
CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#11111111B;显示8
SETB P2.6
CLR  P2.7
LCALL delay

CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#11100110B;显示4
CLR P2.6
SETB P2.7
LCALL delay

JNB P2.4,STOP;检测是否短路
JNB P3.5,STOP;关机
JNB P3.6,V6;减
JNB P3.7,V12;增
JMP B6

V12:;12伏
LCALL DELAY2
MOV P1,#0B4H;12V数据量
B7:
CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#00000110B;显示1
SETB P2.6
CLR  P2.7
LCALL delay

CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#01011011B;显示2
CLR P2.6
SETB P2.7
LCALL delay

JNB P2.4,STOP;检测是否短路
JNB P3.5,STOP;关机
JNB P3.6,V84;减
JNB P3.7,T2;增
JMP B7
T2:JMP V15

STOP:;关机
LCALL DELAY2
MOV P1,#00H;令LM317电压最低
STOP2:
CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#00111111B;显示O
SETB P2.6
CLR  P2.7
LCALL delay

CLR  P2.6
CLR  P2.7
lcall delay_us
MOV P0,#01110001B;显示F
CLR P2.6
SETB P2.7
LCALL delay

JNB P3.5,ST;再次开机
jNb p3.6,st;再次开机
jNb p3.7,st;再次开机
JMP STOP2
ST:LJMP V15


delay: MOV R2,#70;延时子程序
L1001: mov R3,#100
       DJNZ R3,$
       DJNZ R2, L1001
       ret

delay_us:
		 mov R3,#220
       DJNZ R3,$
       ret

DELAY2:;延时子程序
MOV R6,#3
D2:MOV R4,#80 
D3:MOV R5,#100
       DJNZ R5,$
       DJNZ R4,D3
       djnz r6,d2
       RET

end 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -