📄 电压监视仪.asm
字号:
SBF EQU 20H
MBF EQU 21H
HBF EQU 22H
DYVALUE EQU 23H
VMAX EQU 24H
VMIN EQU 25H
VUP EQU 26H ;
VDW EQU 27H ;
BJ EQU 28H ;报警标志
WX EQU 29H
PA EQU 7FFCH
PB EQU 7FFDH
CTR EQU 7FFFH
ST BIT P3.0
SOUND BIT P3.4
HLED BIT P2.5
LLED BIT P2.6
OE BIT P3.1
CLOCK BIT P3.3
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INTM0
ORG 0013H
LJMP INTM1
ORG 0060H
MAIN:
MOV TMOD,#11H
MOV IE,#8AH
MOV TH0,#3CH
MOV TL0,#0B0H ;定时50ms
MOV TH1,#0D8H
MOV TL1,#0F0H ;定时10ms即100hz的方波
MOV DPTR,#80H
MOV A,#00H
MOVX @DPTR,A ;8255初始化
SETB TR0; 定时器0计数每一秒采集信号一次
HUBIN:LCALL KEY_SCAN
HUBIN1:CJNE A,#01H,XZ2
LJMP GN1
XZ2:CJNE A,#02H,XZ3
LJMP GN2
XZ3:CJNE A,#03H,XZ4
LJMP GN3
XZ4:CJNE A,#04H,XZ5
LJMP GN4
XZ5:CJNE A,#05H,XZ6
LJMP GN5
XZ6:CJNE A,#06H,XZ7
LJMP GN6
XZ7:CJNE A,#07H,XZ8
LJMP GN7
XZ8:LJMP HUBIN
GN1:
CON1:MOV R1,#35H ;35H,34H,33H,32H,31H,30H分别位秒,分时的显示缓存空间
MOV WX,#0DFH
CON11:LCALL KEY_SCAN2
CJNE A,#10H,HUBIN1
CON111:MOV DPTR,#PB
MOV A,WX
MOV @DPTR,A
MOV DPTR,#PA
MOV A,@R1
LCALL TABLE
MOVX @DPTR,A
LCALL DEALY ;延时4ms
DEC R1
MOV A,WX
RRC A
MOV WX,A
JC CON11
MOV R0,#35H
MOV A,SBF
LCALL GET
MOV A,MBF
LCALL GET
MOV A,HBF
LCALL GET
LJMP CON1
KEY_SCAN:MOV R0,#0F7H
MOV R1,#00H
WC1: MOV A,R0
MOV P1,A
MOV A,P1
MOV R2,A
SETB C
MOV R3,#04H
WC2:RLC A
JNC KEY
WC3:INC R1
DJNZ R3,WC2
MOV A,R0
SETB C
RRC A
MOV R0,A
JC WC1
LJMP KEY_SCAN
KEY:LCALL DTENMS
MOV A,P1
XRL A,R2
JNZ WC3
WC4:MOV A,P1
XRL A,R2
JZ WC4
MOV A,R1
MOV DPTR,#TAB1
MOVC A,@A+DPTR
RET
DTENMS:MOV R6,#6
D1:MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
KEY_SCAN2:MOV R0,#0F7H
MOV R1,#00H
WC11: MOV A,R0
MOV P1,A
MOV A,P1
MOV R2,A
SETB C
MOV R3,#04H
WC22:RLC A
JNC KEY
WC33:INC R1
DJNZ R3,WC22
MOV A,R0
SETB C
RRC A
MOV R0,A
JC WC11
KEY1:MOV A,P1
XRL A,R2
JZ KEY1
MOV A,R1
MOV DPTR,#TAB1
MOVC A,@A+DPTR
RET
TAB1:DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH,0BH,0CH,0DH,0EH,0FH,10H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -