📄 进制转化.asm
字号:
Z8279 EQU 0FF82H ;8279 状态/命令口地址
D8279 EQU 0FF80H ;8279 数据口地址
LEDMOD EQU 00H ;左边输入 八位字符显示
;外部译码键扫描方式,双键互锁
LEDFEQ EQU 2FH ;扫描速率
LEDCLS EQU 0C1H ;清除显示 RAM
LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址
A_DPORT EQU 8100H ;0809 口地址
ORG 0000H
LJMP START
ORG 0003H
LJMP INT_0
ORG 0040H
START:
MOV SP,#60H
LCALL INIT8279
MOV R7,#00H ;初始化
SETB IT0
SETB EA
SETB EX0 ;INT0 允许
A_D:
MOV R0,#00H ;通道数
MOV A,R0
MOV DPTR,#A_DPORT
ORL DPL,A
MOVX @DPTR,A ;启动 A_D
CJNE R7,#00H,$ ;等待 A_D 转换结束
MOV A,B
LJMP chg
ss: MOV R7,#0FFH ;清读数标
SJMP A_D
INT_0:
MOVX A,@DPTR ;读 A_D 数据
MOV B, A
MOV R7,#00H
RETI
chg: mov B,#64H
div AB
mov r5,a
mov r6,b
mov a,r6
mov b,#0AH
DIV AB
MOV R6,A
MOV R7,B
mov r4,#02H
mov r0,#03H
DISLED:PUSH DPH ;保存现场
PUSH DPL
PUSH ACC
MOV A,#LEDWR0 ;置显示起始地址
ADD A,R4 ;加位置偏移量
MOV DPTR,#Z8279
MOVX @DPTR,A ;设定显示位置
MOV DPTR,#LEDSEG ;置显示常数表起始位置
MOV A,R5
MOVC A,@A+DPTR ;查表
MOV DPTR,#D8279
MOVX @DPTR,A ;显示数据
POP ACC ;恢复现场
POP DPL
POP DPH
dec r0
MOV A,R0
JZ ss
dec r4
mov r5,r6
MOV R6,R7
ajmp DISLED
INIT8279: ;8279初始化子程序
PUSH DPH ;保存现场
PUSH DPL
PUSH ACC
MOV DPTR ,#Z8279
MOV A,#LEDMOD ;置8279工作方式
MOVX @DPTR,A
MOV A,#LEDFEQ ;置键盘扫描速率
MOVX @DPTR,A
MOV A,#LEDCLS ;清除 LED 显示
MOVX @DPTR,A
POP ACC ;恢复现场
POP DPL
POP DPH
RET
;显示字符子程序
;输入: R4,位置 R5,值
LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'
DB 6DH,02H,08H,00H,59H,0FH,76H ;'U,-,_, ,I,O,P, '
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -