📄 ad.asm
字号:
;A/DC采样自检
org 00H
ad0: ljmp main
org 03H
ljmp int0
org 50H
led0 equ 30H
led1 equ 31H
led2 equ 32H
led3 equ 33H
led4 equ 34H
main: mov IE,#81H
mov SP,#50H
;程序初始化
csh: mov R0,#led0
mov A,#80H
mov @R0,A
inc R0
mov A,#80H
mov @R0,A
inc R0
mov A,#80H
mov @R0,A
inc R0
mov A,#80H
mov @R0,A
inc R0
mov A,#80H
mov @R0,A
mov R7,#06
k1: ;push 06H
lcall disp
;pop 06H
djnz r7,k1
ljmp ad0
;显示程序
disp: push a
push psw
clr rs1
clr rs0
mov a,led0
mov P0,a
lcall sel1
lcall dms
mov P0,led1
lcall sel2
lcall dms
mov P0,led2
lcall sel3
lcall dms
mov P0,led3
lcall sel4
lcall dms
mov p0,led4
lcall sel5
lcall dms
pop psw
pop a
ret
sel1: clr P2.5
clr P2.6
clr P2.7
ret
sel2: clr P2.5
clr P2.6
setb P2.7
ret
sel3: clr P2.5
setb P2.6
clr P2.7
ret
sel4: clr P2.5
setb P2.6
setb P2.7
ret
sel5: setb P2.5
clr P2.6
clr P2.7
ret
;延时子程序
dms:
mov r7,#5
d1: mov r6,#300
d2: nop
djnz r6,d2
djnz r7,d1
ret
;采样中断子程序
ad_buf equ 0ah
int0: push a
push psw
setb rs1
setb rs0
clr ea
mov r0,#ad_buf
ad1: clr P2.0
clr p2.1
mov a,p1
setb p2.1
jnb acc.5,ad3
mov @r0,a
inc r0
clr p2.2
mov a,p1
setb p2.2
setb P2.0
mov @r0,a
ad2: lcall ctab
setb ea
pop psw
pop a
reti
ad3: mov p0,80h
acall sel5
acall dms
mov p0,80h
acall sel4
acall dms
mov p0,80h
acall sel3
acall dms
ljmp ad1
ctab: mov a,ad_buf
anl a,#0fh
mov dptr,#tab
movc a,@a+dptr
mov led2,a
mov a,ad_buf+1
swap a
anl a,#0fh
mov dptr,#tab
movc a,@a+dptr
mov led3,a
mov a,ad_buf+1
anl a,#0fh
mov dptr,#tab
movc a,@a+dptr
mov led4,a
ret
tab : db 7EH,0CH,0B6H,9EH
db 0CCH,0DAH,0FAH,00EH
db 0FAH,0DEH,0B9H,0F8H,0B0H,0BDH,0F2H,0E2H
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -