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

推荐订阅源

The Cloudflare Blog
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
罗磊的独立博客
博客园 - 聂微东
博客园_首页
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
量子位
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
月光博客
月光博客
T
The Exploit Database - CXSecurity.com
Google DeepMind News
Google DeepMind News
H
Help Net Security
O
OpenAI News
Blog — PlanetScale
Blog — PlanetScale
S
Security Affairs
S
Security @ Cisco Blogs
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
AI
AI
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
Cloudbric
Cloudbric
H
Heimdal Security Blog
J
Java Code Geeks
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
I
Intezer
GbyAI
GbyAI

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 对博客与笔记的思考 | Yesterday17's Blog Project Anni 之旅(3)自动化 Flutter 应用 CI/CD 上架流程 | Yesterday17's Blog AsobiStage 直接播放链接 | Yesterday17 如何在后分P时代进行投稿——sswa使用详解 | Yesterday17's Blog JSON RPC 与 LSP 协议基础 | Yesterday17's Blog Grajapa Shueisha / BookEnd 加密方式调查 | Yesterday17's Blog 【2022篇+WriteUp】如何再收一个新年红包? | Yesterday17's Blog 如何将良心云的良心功能清理干净 | Yesterday17's Blog 【油猴脚本】bilibili 投稿页面返回旧版+旧版页面强制允许分P上传 | Yesterday17's Blog Cloudr1v1 授权方式分析 | Yesterday17 Typora 1.0.2 逆向实录 | Yesterday17's Blog Project Anni 之旅(2)ValueAfterTable——toml-rs的实现与限制 | Yesterday17's Blog IPv4透明代理+IPv6 Passthrough——树莓派单臂软路由折腾记 | Yesterday17's Blog Chaos; Child 汉化补丁 神秘编码探索 | Yesterday17's Blog 镣铐与舞蹈——个性与共性之迷思 | Yesterday17's Blog Go 学习笔记 02 - 找准 io 之道 | Yesterday17's Blog NAT Slipstreaming v1 原理浅析 | Yesterday17's Blog 绕过「9-nine-」的 CDKEY 验证——KrkrPlugin 正(?)向实录 | Yesterday17's Blog 静流的青春纪念册——「サクラノ刻 -櫻の森の下を歩む-」体验版感言 | Yesterday17's Blog Project Anni 之旅 01 - 从 clap-builder 到 derive | Yesterday17's Blog [Google CTF 2021] CPP WriteUp | Yesterday17's Blog 获取 アソビステージ 的实际播放链接 | Yesterday17's Blog 90 行 Rust 代码实现 AsyncTeeReader | Yesterday17's Blog 或许还算有价值一读的文章列表 | Yesterday17's Blog 从零开始的 Seedbox 之旅 | Yesterday17's Blog [随笔]技术型博客行文迷思(1) | Yesterday17's Blog 浅谈 git fetch 的工作方式 | Yesterday17's Blog 『ソーサレス*アライヴ! ~the World's End Fallen Star~』通关感想" | Yesterday17's Blog Rust std::fmt 格式语法简述 | Yesterday17's Blog 日亚修改居住国的解决方案 | Yesterday17's Blog [Windows/Linux] GC553 的 Switch 完美采集之路 | Yesterday17's Blog 【翻译】Subtyping and Variance / 子类型与变型 | Yesterday17's Blog Berd's Red Envelope 2021 WriteUp | Yesterday17's Blog 【中英对照】ALSA 音频 API 使用教程/A Tutorial on Using the ALSA Audio API | Yesterday17's Blog 从 cue_scanner.l 看 CUE Sheet 的词法单元 | Yesterday17's Blog Postman 历史记录导出的解决方案 | Yesterday17's Blog 《恋爱绮谭 不存在的夏天》通关感想 | Yesterday17's Blog [微机实验/TD-PITE] 微机接口综合实验 | Yesterday17's Blog [微机实验/TD-PITE] 键盘扫描及数码管显示实验 | Yesterday17's Blog [微机实验/TD-PITE] 数码管显示实验 | Yesterday17's Blog Airsonic Advanced+Google Drive+Caddy 部署纪实 | Yesterday17's Blog X-NUCA 2020 - hellowasm 题解 | Yesterday17's Blog [微机实验/TD-PITE] 8251 串行接口实验 | Yesterday17's Blog Node.js child_process.fork 与 env 污染 RCE | Yesterday17's Blog EP.01 「夜の向日葵」 | Yesterday17's Blog [微机实验/TD-PITE] 8254 定时/计数器实验+选做实验 | Yesterday17's Blog [JLU CTF/2020] babywasm WriteUp | Yesterday17's Blog PHP 反序列化与经典利用 | Yesterday17's Blog WebAssembly 逆向简述 | Yesterday17's Blog 『彼女、お借りします』一期完结点评 | Yesterday17's Blog [微机实验/TD-PITE] A/D 转换实验+选做实验 | Yesterday17's Blog 开源项目申请 JetBrains Open Source License 简单流程 | Yesterday17's Blog 微软拼音与 JetBrains 搜索快捷键冲突的解决方案 | Yesterday17's Blog [微机实验/TD-PITE] 8259 中断优先级实验+选做实验 | Yesterday17's Blog IFTTT 测试(续) | Yesterday17 IFTTT 测试 | Yesterday17's Blog [微机实验/TD-PITE] 存储器扩展实验+选做实验 | Yesterday17's Blog 新版 GCC 针对 -fdump-translation-unit 的替代方案 | Yesterday17's Blog 一次 HSTS 策略配置的排错之旅 | Yesterday17's Blog YukiNative 踩坑记——Windows 的消息队列 | Yesterday17's Blog 我是我自己——论获取 HTTPS 证书时的验证步骤 | Yesterday17's Blog 【设计文档】对 PUG 的大规模设计修订(1.1) | Yesterday17's Blog GS65 折腾记(2)加装固态,分区,Grub2 引导 Manjaro LiveCD | Yesterday17's Blog 「さくら、もゆ。」的空白字体列表——一次逆向问题定位过程实录 | Yesterday17's Blog GSuite 探索篇(1)使用 Service Account 向 Google Drive 传输文件 | Yesterday17's Blog 『サクラノ詩 -櫻の森の上を舞う-』通关感想 | Yesterday17's Blog 《ATRI -My Dear Moments-》通关感想 | Yesterday17's Blog [工具][VSCode 扩展] AegiKit——方便 Aegisub 使用的工具箱 | Yesterday17's Blog 贝塞尔曲线、字体矢量化与曲线运算 | Yesterday17's Blog NAT 类型初探 | Yesterday17's Blog
[微机实验/TD-PITE] D/A 转换实验+选做实验 | Yesterday17's Blog
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