📄 br.asm
字号:
SXZ EQU 30H ;上限值
SXGW EQU 31H ;上限个位值
SXSW EQU 32H ;上限十位值
WXZCS EQU 39H ;位选择次数
XXZ EQU 33H ;下限值
XXGW EQU 34H ;下限个位值
XXSW EQU 35H ;下限十位值
ORG 0000H
LJMP START
ORG 0030H
START:MOV SXZ,#30
MOV XXZ,#20
MAIN:MOV R0,#128
MOV R1,#00H
MOV R2,#00H
MOV WXZCS,#00H
CLR P1.0
CLR C
;**********按键次数的判断*********
H3:JNB P3.4,WXZ
MOV A,WXZCS
CJNE A,#01H,H1
LJMP SD
H1:CJNE A,#02H,H2
LJMP SD1
H2:MOV WXZCS,#00H
LCALL JZLB
MOV 40H,A
LCALL BJCX
;LCALL DEL
CLR P2.5
LCALL ZH
LCALL DISP
SETB P1.4
LJMP MAIN
;********位选择*********
WXZ:LCALL DEL
JNB P3.4,WXZ
INC WXZCS
LJMP H3
;**********设定********
SD:JNB P3.3,JIA
JNB P3.5,JIAN
JNB P3.4,WXZ
LCALL ZH1
LCALL DISP1
AJMP SD
SD1:JNB P3.3,JIA1
JNB P3.5,JIAN1
JNB P3.4,WXZ
LCALL ZH2
LCALL DISP2
AJMP SD1
;--------128次均值滤波--------
JZLB:MOVX @DPTR,A
JB P3.2,$
MOVX A,@DPTR
ADD A,R1
MOV R1,A
JC L1
LJMP L2
L1:INC R2
L2:DJNZ R0,JZLB
MOV A,R2
RET
;--------ZHENGCHANG转换程序--------
ZH:MOV A,40H
MOV B,#10
DIV AB
MOV 41H,A
MOV 42H,B
RET
;--------SHANGXIAN转换程序--------
ZH1:MOV A,SXZ
MOV B,#10
DIV AB
MOV SXSW,A
MOV SXGW,B
RET
;--------XIAXIAN转换程序--------
ZH2:MOV A,XXZ
MOV B,#10
DIV AB
MOV XXSW,A
MOV XXGW,B
RET
;********SHANGXIAN加程序*****
JIA:LCALL DISP1
JNB P3.3,JIA
INC SXZ
LCALL ZH1
LJMP SD
;********SHANGXIAN减程序*****
JIAN:LCALL DISP1
JNB P3.5,JIAN
DEC SXZ
LCALL ZH1
LJMP SD
;********XIAXIAN加程序*****
JIA1:LCALL DISP2
JNB P3.3,JIA1
INC XXZ
LCALL ZH2
LJMP SD1
;********XIAXIAN减程序*****
JIAN1:LCALL DISP2
JNB P3.5,JIAN1
DEC XXZ
LCALL ZH2
LJMP SD1
;-----------报警程序----------
BJCX:CLR C
MOV 60H,SXZ
MOV 61H,XXZ
MOV A,60H
SUBB A,40H
JC BJ
MOV A,40H
SUBB A,61H
JC BJ
LJMP FH
BJ:CLR P1.4
FH:RET
;--------ZHENGCHANG显示程序---------
DISP:MOV DPTR,#TAB
MOV A,41H
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
CLR P2.1
MOVX @DPTR,A
LCALL DEL
SETB P2.1
MOV DPTR,#TAB
MOV A,42H
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
CLR P2.2
MOVX @DPTR,A
LCALL DEL
SETB P2.2
MOV A,#0C6H
CLR P2.3
MOVX @DPTR,A
LCALL DEL
SETB P2.3
RET
;--------SHANGXIAN显示程序---------
DISP1:MOV DPTR,#TAB
MOV A,SXSW
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
CLR P2.1
MOVX @DPTR,A
LCALL DEL
SETB P2.1
MOV DPTR,#TAB
MOV A,SXGW
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
CLR P2.2
MOVX @DPTR,A
LCALL DEL
SETB P2.2
MOV A,#0C6H
CLR P2.3
MOVX @DPTR,A
LCALL DEL
SETB P2.3
RET
;--------XIAXIAN显示程序---------
DISP2:MOV DPTR,#TAB
MOV A,XXSW
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
CLR P2.1
MOVX @DPTR,A
LCALL DEL
SETB P2.1
MOV DPTR,#TAB
MOV A,XXGW
MOVC A,@A+DPTR
MOV DPTR,#0EFFFH
CLR P2.2
MOVX @DPTR,A
LCALL DEL
SETB P2.2
MOV A,#0C6H
CLR P2.3
MOVX @DPTR,A
LCALL DEL
SETB P2.3
RET
;--------表格--------
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;-------延时--------
DEL:MOV R6,#25
D2:MOV R7,#50
D1:DJNZ R7,D1
DJNZ R6,D2
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -