惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
B
Blog
博客园 - Franky
I
InfoQ
A
About on SuperTechFans
博客园_首页
L
LangChain Blog
量子位
腾讯CDC
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
美团技术团队
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
G
Google Developers Blog
Last Week in AI
Last Week in AI

Yesterday17's Blog

2026 新年解密红包 / Melody Flag | Yesterday17's Blog 谈谈 Iori 的设计思路(二):如何实现一个 Showroom 录制工具? | Yesterday17's Blog 谈谈 Iori 的设计思路(一):从 Nico Timeshift 说起 | Yesterday17's Blog Iori Minyami 0.1.0 发布 | Yesterday17's Blog 2025 新年解密红包 / Melody Flag | Yesterday17's Blog 使用 Cloudflare Warp 解决罗森票务的海外登录问题 | Yesterday17's Blog How To Blog 04: The Astro v5 Era | Yesterday17's Blog 谈谈 tokio::select! 的公平性 | Yesterday17's Blog Learning Pingora 05 - Connect with TLS | Yesterday17's Blog Leaving Bytedance | Yesterday17's Blog 大橋彩香 AsiaTour「Reflection」上海公演 个人向记录 & Repo | Yesterday17's Blog Recoving from burnout - What happened? | Yesterday17 Yubikey 重建手册 | Yesterday17's Blog How To Blog 03: Heimus | Yesterday17's Blog 🪧 Blog Migration Accouncement | Yesterday17's Blog Learn Your IDE - VSCode 是如何仅重启插件的? | Yesterday17's Blog How To Blog 02: Astro❤️Password | Yesterday17's Blog How To Blog 01: Why, How, and the Future | Yesterday17's Blog Learning Pingora 04 - Establish L4 Connection | Yesterday17's Blog Learning Pingora 03 - Upstreams and Peers | Yesterday17's Blog Learning Pingora 02 - A Simple HTTP Server | Yesterday17's Blog Learning Pingora 01 - Getting Started | Yesterday17's Blog 2024 新年解密红包 / Melody Flag | Yesterday17's Blog 向新的一年飞驰——记录 2023 | Yesterday17's Blog 「サクラノ刻」对话选摘(2) | Yesterday17's Blog PGP Key Revocation 注销声明 | Yesterday17's Blog 「サクラノ刻」对话选摘(1) | Yesterday17's Blog 2023 新年解密红包 / Melody Flag | Yesterday17's Blog 『蒼の彼方のフォーリズム』通关感想 | Yesterday17's Blog 单显卡直通教程 | Yesterday17's Blog
[微机实验/TD-PITE] D/A 转换实验+选做实验 | Yesterday17's ...
Yesterday17 · 2020-10-05 · via Yesterday17's Blog

ToC

  • 实验内容
  • 实验接线
  • 代码
  • 波形
  • 选做实验:中断控制波形
    • 描述
    • 分析
    • 代码

实验内容

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

实验接线

代码

;; DAC0832 IOY0

;; BASE OFFSET: 0600H

A0832 EQU 0600H

SSEG SEGMENT STACK

DW 0,0,0,0

SSEG ENDS

CODE SEGMENT

ASSUME CS:CODE, SS:SSEG

START:

MOV DX, A0832

;; --------- SAW START ---------

MOV CX, 0AH

SAW:

MOV AL, 00H

JC1:

OUT DX, AL

CALL DELAY_SHORT

CMP AL, 0FFH

JE JC2

INC AL

JMP JC1

JC2:

LOOP SAW

;; ---------- SAW END ----------

;; --------- RECT START ---------

MOV CX, 02H

RECT:

MOV AL, 00H

OUT DX, AL

CALL DELAY_LONG

MOV AL, 0FFH

OUT DX, AL

CALL DELAY_LONG

LOOP RECT

;; ---------- RECT END ----------

;; --------- TRI START ---------

MOV CX, 02H

TRI:

MOV AL, 00H

TR1:

OUT DX, AL

CALL DELAY_SHORT

CMP AL, 0FFH

JE TR2

INC AL

JMP TR1

TR2:

OUT DX, AL

CALL DELAY_SHORT

CMP AL, 00H

JE TR3

DEC AL

JMP TR2

TR3:

LOOP TRI

;; ---------- TRI END ----------

;; --------- STAIR START ---------

MOV CX, 02H

STA:

MOV AX, 00H

STA1:

OUT DX, AL

CMP AX, 0FFH

JGE STA_FIN

CALL DELAY_LONG

ADD AL, 11H ;; 0FH STAIRS

;; 11H GAP

JMP STA1

STA_FIN:

LOOP STA

;; ---------- STAIR END ----------

MOV AX, 4C00H

INT 21H

DELAY_SHORT:

PUSH AX

PUSH CX

MOV CX, 01FFH

LOOP $

POP CX

POP AX

RET

DELAY_LONG:

PUSH AX

PUSH CX

MOV CX, 0FFFFH

LOOP $

POP CX

POP AX

RET

CODE ENDS

END START

波形

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

选做实验:中断控制波形

描述

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

分析

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

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

代码

;; DAC0832 IOY0

;; BASE OFFSET: 0600H

A0832 EQU 0600H

SSEG SEGMENT STACK

DW 0,0,0,0

SSEG ENDS

CODE SEGMENT

ASSUME CS:CODE, SS:SSEG

START:

;; MIR6

MOV AX, OFFSET MIR6

MOV SI, 38H

MOV [SI], AX

MOV AX, CS

MOV SI, 3AH

MOV [SI], AX

;; --------------------------------------------------

;; INIT 8259

CLI

MOV AL, 11H

OUT 20H, AL

MOV AL, 08H

OUT 21H, AL

MOV AL, 04H

OUT 21H, AL

MOV AL, 07H

OUT 21H, AL

MOV AL, 2FH

OUT 21H, AL

STI

;; --------------------------------------------------

MOV DX, A0832

MOV BX, 0

MAIN:

MOV CX, 1

CMP BX, 0

JE M_SAW

CMP BX, 1

JE M_RECT

CMP BX, 2

JE M_TRI

CALL STA

JMP MAIN

M_SAW:

CALL SAW

JMP MAIN

M_RECT:

CALL RECT

JMP MAIN

M_TRI:

CALL TRI

JMP MAIN

MIR6:

INC BX

CMP BX, 4

JNE BACK

MOV BX, 0

BACK:

IRET

MOV DX, A0832

SAW:

MOV AL, 00H

JC1:

OUT DX, AL

CALL DELAY_SHORT

CMP AL, 0FFH

JE JC2

INC AL

JMP JC1

JC2:

LOOP SAW

RET

RECT:

MOV AL, 00H

OUT DX, AL

CALL DELAY_LONG

MOV AL, 0FFH

OUT DX, AL

CALL DELAY_LONG

LOOP RECT

RET

TRI:

MOV AL, 00H

TR1:

OUT DX, AL

CALL DELAY_SHORT

CMP AL, 0FFH

JE TR2

INC AL

JMP TR1

TR2:

OUT DX, AL

CALL DELAY_SHORT

CMP AL, 00H

JE TR3

DEC AL

JMP TR2

TR3:

LOOP TRI

RET

STA:

MOV AX, 00H

STA1:

OUT DX, AL

CMP AX, 0FFH

JGE STA_FIN

CALL DELAY_LONG

ADD AL, 11H ;; 0FH STAIRS

;; 11H GAP

JMP STA1

STA_FIN:

LOOP STA

RET

DELAY_SHORT:

PUSH AX

PUSH CX

MOV CX, 01FFH

LOOP $

POP CX

POP AX

RET

DELAY_LONG:

PUSH AX

PUSH CX

MOV CX, 0FFFFH

LOOP $

POP CX

POP AX

RET

CODE ENDS

END START