ToC
实验内容
编程画出波形,通过 D/A
转换器转换为模拟信号,通过软件示波器观察波形。
实验接线
代码
1;; DAC0832 IOY02;; BASE OFFSET: 0600H3A0832 EQU 0600H4
5SSEG SEGMENT STACK6 DW 0,0,0,07SSEG ENDS8
9CODE SEGMENT10ASSUME CS:CODE, SS:SSEG11
12START:13 MOV DX, A083214
15;; --------- SAW START ---------16 MOV CX, 0AH17SAW:18 MOV AL, 00H19JC1:20 OUT DX, AL21 CALL DELAY_SHORT22 CMP AL, 0FFH23 JE JC224 INC AL25 JMP JC126JC2:27 LOOP SAW28;; ---------- SAW END ----------29
30
31;; --------- RECT START ---------32 MOV CX, 02H33RECT:34 MOV AL, 00H35 OUT DX, AL36 CALL DELAY_LONG37 MOV AL, 0FFH38 OUT DX, AL39 CALL DELAY_LONG40 LOOP RECT41;; ---------- RECT END ----------42
43
44;; --------- TRI START ---------45 MOV CX, 02H46TRI:47 MOV AL, 00H48TR1:49 OUT DX, AL50 CALL DELAY_SHORT51 CMP AL, 0FFH52 JE TR253 INC AL54 JMP TR155TR2:56 OUT DX, AL57 CALL DELAY_SHORT58 CMP AL, 00H59 JE TR360 DEC AL61 JMP TR262TR3:63 LOOP TRI64;; ---------- TRI END ----------65
66
67;; --------- STAIR START ---------68 MOV CX, 02H69STA:70 MOV AX, 00H71STA1:72 OUT DX, AL73 CMP AX, 0FFH74 JGE STA_FIN75 CALL DELAY_LONG76 ADD AL, 11H ;; 0FH STAIRS77 ;; 11H GAP78 JMP STA179STA_FIN:80 LOOP STA81;; ---------- STAIR END ----------82
83 MOV AX, 4C00H84 INT 21H85
86DELAY_SHORT:87 PUSH AX88 PUSH CX89 MOV CX, 01FFH90 LOOP $91 POP CX92 POP AX93 RET94
95DELAY_LONG:96 PUSH AX97 PUSH CX98 MOV CX, 0FFFFH99 LOOP $100 POP CX101 POP AX102 RET103
104CODE ENDS105END START
波形
![锯齿波、矩形波、三角波](https://static.mmf.moe/wp/2020/10/image.png)
![阶梯波](https://static.mmf.moe/wp/2020/10/image-1.png)
选做实验:中断控制波形
描述
使用单脉冲开关 KK1
在四种波形间进行切换。
分析
将 KK1
与 MIR6
相连,在中断处理程序中判断需要绘制的波形,主循环中绘制实际的波形。
需要封装一下之前用到的波形绘制部分代码。
代码
1;; DAC0832 IOY02;; BASE OFFSET: 0600H3A0832 EQU 0600H4
5SSEG SEGMENT STACK6 DW 0,0,0,07SSEG ENDS8
9CODE SEGMENT10ASSUME CS:CODE, SS:SSEG11
12START:13 ;; MIR614 MOV AX, OFFSET MIR615 MOV SI, 38H16 MOV [SI], AX17 MOV AX, CS18 MOV SI, 3AH19 MOV [SI], AX20
21 ;; --------------------------------------------------22 ;; INIT 825923 CLI24 MOV AL, 11H25 OUT 20H, AL26 MOV AL, 08H27 OUT 21H, AL28 MOV AL, 04H29 OUT 21H, AL30 MOV AL, 07H31 OUT 21H, AL32 MOV AL, 2FH33 OUT 21H, AL34 STI35 ;; --------------------------------------------------36
37 MOV DX, A083238 MOV BX, 039
40MAIN:41 MOV CX, 142 CMP BX, 043 JE M_SAW44 CMP BX, 145 JE M_RECT46 CMP BX, 247 JE M_TRI48 CALL STA49 JMP MAIN50M_SAW:51 CALL SAW52 JMP MAIN53M_RECT:54 CALL RECT55 JMP MAIN56M_TRI:57 CALL TRI58 JMP MAIN59
60
61MIR6:62 INC BX63 CMP BX, 464 JNE BACK65 MOV BX, 066BACK:67 IRET68
69 MOV DX, A083270
71
72SAW:73 MOV AL, 00H74JC1:75 OUT DX, AL76 CALL DELAY_SHORT77 CMP AL, 0FFH78 JE JC279 INC AL80 JMP JC181JC2:82 LOOP SAW83 RET84
85
86RECT:87 MOV AL, 00H88 OUT DX, AL89 CALL DELAY_LONG90 MOV AL, 0FFH91 OUT DX, AL92 CALL DELAY_LONG93 LOOP RECT94 RET95
96
97TRI:98 MOV AL, 00H99TR1:100 OUT DX, AL101 CALL DELAY_SHORT102 CMP AL, 0FFH103 JE TR2104 INC AL105 JMP TR1106TR2:107 OUT DX, AL108 CALL DELAY_SHORT109 CMP AL, 00H110 JE TR3111 DEC AL112 JMP TR2113TR3:114 LOOP TRI115 RET116
117
118STA:119 MOV AX, 00H120STA1:121 OUT DX, AL122 CMP AX, 0FFH123 JGE STA_FIN124 CALL DELAY_LONG125 ADD AL, 11H ;; 0FH STAIRS126 ;; 11H GAP127 JMP STA1128STA_FIN:129 LOOP STA130 RET131
132
133DELAY_SHORT:134 PUSH AX135 PUSH CX136 MOV CX, 01FFH137 LOOP $138 POP CX139 POP AX140 RET141
142DELAY_LONG:143 PUSH AX144 PUSH CX145 MOV CX, 0FFFFH146 LOOP $147 POP CX148 POP AX149 RET150
151CODE ENDS152END START