Skip to content

[微机实验/TD-PITE] A/D 转换实验+选做实验

Published: at 16:23

ToC

实验内容

DAC 单元旋钮提供的 0-5V 信号源作为 ADC 0809 的输入。

旋转旋钮,通过 LED 显示单元的小灯显示 A/D 转换的结果。

实验接线

XD0-XD7A/D 转换单元的 D0-D78255D0-D7#IOW#IOR 需要同时与 A/D 转换单元和 8266 连接。

A/D 转换单元的 CSIOY1 连接,8255CSIOY0 连接。ABC 接地(GND)。如下图所示:

晋西北都乱成了一锅粥
晋西北都乱成了一锅粥

代码

1
;; ADC0809 IOY0
2
;; BASE OFFSET: 0600H
3
A0809 EQU 0600H
4
B0809 EQU 0602H
5
6
;; 8255 IOY1
7
;; BASE OFFSET: 0640H
8
A8255 EQU 0640H
9
B8255 EQU 0642H
10
C8255 EQU 0644H
11
CON8255 EQU 0646H
12
13
CODE SEGMENT
14
ASSUME CS:CODE
15
16
START:
17
MOV DX, CON8255
18
MOV AL, 90H ;; A IN, B OUT
19
OUT DX, AL
20
21
LL:
22
MOV DX, A0809
23
OUT DX, AL
24
25
CALL DELAY
26
IN AL, DX
27
28
MOV DX, B8255 ;; OUTPUT TO 8255B
29
OUT DX, AL
30
JMP LL
31
32
MOV AX, 4C00H
33
INT 21H
34
35
DELAY PROC NEAR
36
MOV CX, 0FFFFH
37
LOOP $
38
RET
39
DELAY ENDP
40
41
CODE ENDS
42
END START

选做实验-查询方式

实验过程中使用的是延时等待方式。要使用查询方式,需要将 A/D 转换单元的 EOC8255PA7 相连。

根据 EOC 的时序,我们知道:在 A/D 转换开始前,EOC 为高电平;在 A/D 转换进行过程中,EOC 为低电平。当 EOC 重新回到高电平时,表示转换完成。由此编写代码即可。

接线

增加了一条 EOC 的接线。

8255 下方的黄线,因为不知道该怎么接所以反过来了(
8255 下方的黄线,因为不知道该怎么接所以反过来了(

代码

1
;; ADC0809 IOY0
2
;; BASE OFFSET: 0600H
3
A0809 EQU 0600H
4
B0809 EQU 0602H
5
6
;; 8255 IOY1
7
;; BASE OFFSET: 0640H
8
A8255 EQU 0640H
9
B8255 EQU 0642H
10
C8255 EQU 0644H
11
CON8255 EQU 0646H
12
13
CODE SEGMENT
14
ASSUME CS:CODE
15
16
START:
17
MOV DX, CON8255
18
MOV AL, 90H ;; A IN, B OUT
19
OUT DX, AL
20
21
LL:
22
MOV DX, A0809
23
OUT DX, AL ;; START ADC0809
24
25
WAIT_AD_START:
26
MOV DX, A8255
27
IN AL, DX
28
TEST AL, 80H
29
JNZ WAIT_AD_START
30
31
WAIT_AD2_FINISH:
32
MOV DX, A8255
33
IN AL, DX
34
TEST AL, 80H
35
JZ WAIT_AD_FINISH
36
37
MOV DX, A0809
38
IN AL, DX
39
MOV DX, B8255 ;; OUTPUT TO 8255B
40
OUT DX, AL
41
JMP LL
42
43
MOV AX, 4C00H
44
INT 21H
45
46
CODE ENDS
47
END START

选做实验-中断方式

中断方式下,中断即可表示 A/D 转换完成。只需要将 EOCMIR6 相连,复用上次实验中断相关的代码即可。

接线

A/D 转换单元最左边的绿线
A/D 转换单元最左边的绿线

代码

1
;; ADC0809 IOY0
2
;; BASE OFFSET: 0600H
3
A0809 EQU 0600H
4
B0809 EQU 0602H
5
6
;; 8255 IOY1
7
;; BASE OFFSET: 0640H
8
A8255 EQU 0640H
9
B8255 EQU 0642H
10
C8255 EQU 0644H
11
CON8255 EQU 0646H
12
13
CODE SEGMENT
14
ASSUME CS:CODE
15
16
START:
17
MOV DX, CON8255
18
MOV AL, 90H ;; A IN, B OUT
19
OUT DX, AL
20
21
;; MIR6
22
MOV AX, OFFSET MIR6
23
MOV SI, 38H
24
MOV [SI], AX
25
MOV AX, CS
26
MOV SI, 3AH
27
MOV [SI], AX
28
29
;; --------------------------------------------------
30
;; INIT 8259
31
CLI
32
MOV AL, 11H
33
OUT 20H, AL
34
MOV AL, 08H
35
OUT 21H, AL
36
MOV AL, 04H
37
OUT 21H, AL
38
MOV AL, 07H
39
OUT 21H, AL
40
MOV AL, 2FH
41
OUT 21H, AL
42
STI
43
;; --------------------------------------------------
44
45
LL:
46
CLI
47
MOV DX, A0809
48
OUT DX, AL ;; START ADC0809
49
CALL DELAY
50
STI
51
JMP LL
52
53
MIR6:
54
MOV DX, A0809
55
IN AL, DX
56
MOV DX, B8255
57
OUT DX, AL
58
IRET
59
60
DELAY PROC NEAR
61
MOV CX, 0FFFFH
62
LOOP $
63
RET
64
DELAY ENDP
65
66
CODE ENDS
67
END START