Skip to content

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

Published: at 16:25

ToC

实验内容

编程画出波形,通过 D/A 转换器转换为模拟信号,通过软件示波器观察波形。

实验接线

代码

1
;; DAC0832 IOY0
2
;; BASE OFFSET: 0600H
3
A0832 EQU 0600H
4
5
SSEG SEGMENT STACK
6
DW 0,0,0,0
7
SSEG ENDS
8
9
CODE SEGMENT
10
ASSUME CS:CODE, SS:SSEG
11
12
START:
13
MOV DX, A0832
14
15
;; --------- SAW START ---------
16
MOV CX, 0AH
17
SAW:
18
MOV AL, 00H
19
JC1:
20
OUT DX, AL
21
CALL DELAY_SHORT
22
CMP AL, 0FFH
23
JE JC2
24
INC AL
25
JMP JC1
26
JC2:
27
LOOP SAW
28
;; ---------- SAW END ----------
29
30
31
;; --------- RECT START ---------
32
MOV CX, 02H
33
RECT:
34
MOV AL, 00H
35
OUT DX, AL
36
CALL DELAY_LONG
37
MOV AL, 0FFH
38
OUT DX, AL
39
CALL DELAY_LONG
40
LOOP RECT
41
;; ---------- RECT END ----------
42
43
44
;; --------- TRI START ---------
45
MOV CX, 02H
46
TRI:
47
MOV AL, 00H
48
TR1:
49
OUT DX, AL
50
CALL DELAY_SHORT
51
CMP AL, 0FFH
52
JE TR2
53
INC AL
54
JMP TR1
55
TR2:
56
OUT DX, AL
57
CALL DELAY_SHORT
58
CMP AL, 00H
59
JE TR3
60
DEC AL
61
JMP TR2
62
TR3:
63
LOOP TRI
64
;; ---------- TRI END ----------
65
66
67
;; --------- STAIR START ---------
68
MOV CX, 02H
69
STA:
70
MOV AX, 00H
71
STA1:
72
OUT DX, AL
73
CMP AX, 0FFH
74
JGE STA_FIN
75
CALL DELAY_LONG
76
ADD AL, 11H ;; 0FH STAIRS
77
;; 11H GAP
78
JMP STA1
79
STA_FIN:
80
LOOP STA
81
;; ---------- STAIR END ----------
82
83
MOV AX, 4C00H
84
INT 21H
85
86
DELAY_SHORT:
87
PUSH AX
88
PUSH CX
89
MOV CX, 01FFH
90
LOOP $
91
POP CX
92
POP AX
93
RET
94
95
DELAY_LONG:
96
PUSH AX
97
PUSH CX
98
MOV CX, 0FFFFH
99
LOOP $
100
POP CX
101
POP AX
102
RET
103
104
CODE ENDS
105
END START

波形

锯齿波、矩形波、三角波
锯齿波、矩形波、三角波

阶梯波
阶梯波

选做实验:中断控制波形

描述

使用单脉冲开关 KK1 在四种波形间进行切换。

分析

KK1MIR6 相连,在中断处理程序中判断需要绘制的波形,主循环中绘制实际的波形。

需要封装一下之前用到的波形绘制部分代码。

代码

1
;; DAC0832 IOY0
2
;; BASE OFFSET: 0600H
3
A0832 EQU 0600H
4
5
SSEG SEGMENT STACK
6
DW 0,0,0,0
7
SSEG ENDS
8
9
CODE SEGMENT
10
ASSUME CS:CODE, SS:SSEG
11
12
START:
13
;; MIR6
14
MOV AX, OFFSET MIR6
15
MOV SI, 38H
16
MOV [SI], AX
17
MOV AX, CS
18
MOV SI, 3AH
19
MOV [SI], AX
20
21
;; --------------------------------------------------
22
;; INIT 8259
23
CLI
24
MOV AL, 11H
25
OUT 20H, AL
26
MOV AL, 08H
27
OUT 21H, AL
28
MOV AL, 04H
29
OUT 21H, AL
30
MOV AL, 07H
31
OUT 21H, AL
32
MOV AL, 2FH
33
OUT 21H, AL
34
STI
35
;; --------------------------------------------------
36
37
MOV DX, A0832
38
MOV BX, 0
39
40
MAIN:
41
MOV CX, 1
42
CMP BX, 0
43
JE M_SAW
44
CMP BX, 1
45
JE M_RECT
46
CMP BX, 2
47
JE M_TRI
48
CALL STA
49
JMP MAIN
50
M_SAW:
51
CALL SAW
52
JMP MAIN
53
M_RECT:
54
CALL RECT
55
JMP MAIN
56
M_TRI:
57
CALL TRI
58
JMP MAIN
59
60
61
MIR6:
62
INC BX
63
CMP BX, 4
64
JNE BACK
65
MOV BX, 0
66
BACK:
67
IRET
68
69
MOV DX, A0832
70
71
72
SAW:
73
MOV AL, 00H
74
JC1:
75
OUT DX, AL
76
CALL DELAY_SHORT
77
CMP AL, 0FFH
78
JE JC2
79
INC AL
80
JMP JC1
81
JC2:
82
LOOP SAW
83
RET
84
85
86
RECT:
87
MOV AL, 00H
88
OUT DX, AL
89
CALL DELAY_LONG
90
MOV AL, 0FFH
91
OUT DX, AL
92
CALL DELAY_LONG
93
LOOP RECT
94
RET
95
96
97
TRI:
98
MOV AL, 00H
99
TR1:
100
OUT DX, AL
101
CALL DELAY_SHORT
102
CMP AL, 0FFH
103
JE TR2
104
INC AL
105
JMP TR1
106
TR2:
107
OUT DX, AL
108
CALL DELAY_SHORT
109
CMP AL, 00H
110
JE TR3
111
DEC AL
112
JMP TR2
113
TR3:
114
LOOP TRI
115
RET
116
117
118
STA:
119
MOV AX, 00H
120
STA1:
121
OUT DX, AL
122
CMP AX, 0FFH
123
JGE STA_FIN
124
CALL DELAY_LONG
125
ADD AL, 11H ;; 0FH STAIRS
126
;; 11H GAP
127
JMP STA1
128
STA_FIN:
129
LOOP STA
130
RET
131
132
133
DELAY_SHORT:
134
PUSH AX
135
PUSH CX
136
MOV CX, 01FFH
137
LOOP $
138
POP CX
139
POP AX
140
RET
141
142
DELAY_LONG:
143
PUSH AX
144
PUSH CX
145
MOV CX, 0FFFFH
146
LOOP $
147
POP CX
148
POP AX
149
RET
150
151
CODE ENDS
152
END START