📄 ad0809.asm
字号:
;=====================硬件实验 A/D转换实验==================
;用一根双头实验导线连接AD0809通道0与电位器W2
CS8255 EQU 0ffffH ;8255控制口
OUTSEG EQU 0fffcH ;字形控制口
OUTBIT EQU 0fffdH ;字位/键扫控制口
LedBuf equ 7eh ;显示缓冲
CSADIN0 EQU 8E28H ;通道0控制口
CSADIN1 EQU 8E29H ;通道1控制口
CSADIN2 EQU 8E2aH ;通道2控制口
org 0
start: mov dptr,#CS8255 ;指向8255控制口
mov a,#88h ;命令字:A,B口输出
movx @dptr,a ;8255初始化
;------------送LED显示---------
MOV LedBuf-0,#0
MOV LedBuf-1,#8
MOV LedBuf-2,#0
MOV LedBuf-3,#9
MOV LedBuf-4,#10h
MOV LedBuf-5,#10h
;------------------------------
ADC: MOV DPTR,#CSADIN0 ;指向A/D转换入口地址
CLR A ;送通道号
MOVX @DPTR,A ;启动0809的通道0
call disp ;调用显示子程序
MOVX A,@DPTR ;取出采样值
mov b,a ;拆送显示缓冲区
swap a
anl a,#0fh
anl b,#0fh
MOV LedBuf-6,a
MOV LedBuf-7,b
SJMP ADC ;循环
;显示子程序
disp: push dpl
push dph
setb rs1
mov r0,#ledbuf
mov r2,#80h
mov dptr,#ledmap
disp2: mov a,@r0
movc a,@a+dptr
push dpl
push dph
mov dptr,#outseg
movx @dptr,a
mov a,r2
mov dptr,#outbit
movx @dptr,a
pop dph
pop dpl
mov r3,#0
djnz r3,$ ;闪动延迟
clr c
rrc a ;右移显示
mov r2,a
dec r0
jnz disp2
clr rs1
pop dph
pop dpl
ret
;字形表
ledmap: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h
db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh,0bfh
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -