📄 数字电压表.asm
字号:
ADC EQU 30H
CLOCK BIT P2.4
ST BIT P2.5
EOC BIT P2.6
OE BIT P2.7
ORG 00H
SJMP START
ORG 0BH
LJMP INTER
ORG 40H
START: MOV R1,#00H
MOV R2,#00H
MOV R3,#00H
MOV R4,#00H
MOV P3,#00H
MOV DPTR,#TABLE ;段码表首地址
MOV TMOD,#02H
MOV TH0,#200
MOV TL0,#00H
MOV IE,#82H
SETB TR0
WAIT: CLR ST
SETB ST
CLR ST ;启动AD转换
JNB EOC,$ ;等待转换结束
SETB OE
MOV ADC,P1 ;读取AD转换结果
CLR OE
MOV A,ADC
MOV B,#51
DIV AB
MOV R1,A
MOV A,B
MOV B,#5
DIV AB
MOV R2,A
MOV A,B
MOV B,#10
MUL AB
MOV B,#5
DIV AB
MOV R3,A
LCALL DISP
SJMP WAIT
INTER: CPL CLOCK ;提供ADC0809时钟信号
RETI
DISP: MOV A,R1
SETB P3.0 ;显示子程序
MOVC A,@A+DPTR
CLR P2.0
MOV P0,A
LCALL DELAY
SETB P2.0
CLR P3.0
MOV A,R2
MOVC A,@A+DPTR
CLR P2.1
MOV P0,A
LCALL DELAY
SETB P2.1
MOV A,R3
MOVC A,@A+DPTR
CLR P2.2
MOV P0,A
LCALL DELAY
SETB P2.2
MOV R4,#10
MOV A,R4
MOVC A,@A+DPTR
CLR P2.3
MOV P0,A
LCALL DELAY
SETB P2.3
RET
DELAY: MOV R6,#10 ;延时5毫秒
D1: MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00111110B
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -