//实验三 定时器实验
//实验五 AD转换实验
CS0809 EQU 0300H
CS8279C EQU 0FFF1H
CS8279D EQU 0FFF0h
LEDBUF EQU 70h ;显示缓冲
ORG 0000H
AJMP start
ORG 0100H
start: call I8279 ;8279初始化
MOV LedBuf+0,#0
MOV LedBuf+1,#8
MOV LedBuf+2,#0
MOV LedBuf+3,#9
MOV DPTR,#CS0809
ADC: MOVX @DPTR,A ;0809的通道0采样
nop
nop
nop
nop
nop
MOVX A,@DPTR ;取出采样值
mov b,a ;拆送显示缓冲区
swap a
anl a,#0fh
anl b,#0fh
MOV LedBuf+4,a
MOV LedBuf+5,b
call disp
SJMP ADC ;循环
;8279初始化
I8279: PUSH DPL
PUSH DPH
MOV dptr,#CS8279C ;指向命令口
MOV A,#00H ;8个8位显示
MOVX @dptr,a ;方式字写入
MOV A,#32H ;设分频初值
MOVX @dptr,a ;分频字写入
MOV A,#0DFH ;定义清显字
MOVX @dptr,a ;关闭显示器
x90s: movx a,@dptr
JB ACC.7,x90s ;检测8279
POP DPH
POP DPL
ret
;显示子程序
disp: PUSH DPL
PUSH DPH
mov r2,#85h
mov r0,#ledbuf
disp1: mov dptr,#CS8279C
mov a,r2
movx @dptr,a
mov dptr,#ledmap ;指字形表首
mov a,@r0 ;取送显数据
movc a,@a+dptr ;索字形代码
mov dptr,#CS8279D ;指向字形口
movx @dptr,a ;送当前字形
dec r2
inc r0
cjne r0,#ledbuf+6,disp1
POP DPH
POP DPL
ret
;字形表
ledmap: db 0ch,9fh,4ah,0bh,99h,29h,28h,8fh
db 08h,09h,88h,38h,6ch,1ah,68h,0e8h,0ffh
END
//实验五 DA转换
CS0832 EQU 0300H
DA0V EQU 00H
DA5V EQU 0FFH
ORG 0000H
MOV DPTR,#CS0832
CLR A
K1: MOVX @DPTR,A ;
INC A ;
ACALL DELAY
CJNE A,#255,K1
K2: MOVX @DPTR,A ;
DEC A ;
ACALL DELAY
CJNE A,#0,K2
DELAY: MOV R6,#20H
KK: MOV R7,#80H
DJNZ R7,$
DJNZ R6,KK
RET
END
本文介绍的内容完整的工程文件我会放在附件里,需要者自取,放的时候都是免费,它会自己涨,链接失效或者需要的可以在评论区留言,我直接发给你。本文附件链接如下: