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

推荐订阅源

D
Docker
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
博客园 - 【当耐特】
量子位
博客园 - 叶小钗
有赞技术团队
有赞技术团队
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
博客园 - 司徒正美
爱范儿
爱范儿
美团技术团队
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
罗磊的独立博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
D
DataBreaches.Net
宝玉的分享
宝玉的分享

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] A/D 转换实验+选做实验 | Yesterday17's ...
Yesterday17 · 2020-10-05 · via Yesterday17's Blog

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)。如下图所示:

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

代码

;; ADC0809 IOY0

;; BASE OFFSET: 0600H

A0809 EQU 0600H

B0809 EQU 0602H

;; 8255 IOY1

;; BASE OFFSET: 0640H

A8255 EQU 0640H

B8255 EQU 0642H

C8255 EQU 0644H

CON8255 EQU 0646H

CODE SEGMENT

ASSUME CS:CODE

START:

MOV DX, CON8255

MOV AL, 90H ;; A IN, B OUT

OUT DX, AL

LL:

MOV DX, A0809

OUT DX, AL

CALL DELAY

IN AL, DX

MOV DX, B8255 ;; OUTPUT TO 8255B

OUT DX, AL

JMP LL

MOV AX, 4C00H

INT 21H

DELAY PROC NEAR

MOV CX, 0FFFFH

LOOP $

RET

DELAY ENDP

CODE ENDS

END START

选做实验-查询方式

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

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

接线

增加了一条 EOC 的接线。

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

代码

;; ADC0809 IOY0

;; BASE OFFSET: 0600H

A0809 EQU 0600H

B0809 EQU 0602H

;; 8255 IOY1

;; BASE OFFSET: 0640H

A8255 EQU 0640H

B8255 EQU 0642H

C8255 EQU 0644H

CON8255 EQU 0646H

CODE SEGMENT

ASSUME CS:CODE

START:

MOV DX, CON8255

MOV AL, 90H ;; A IN, B OUT

OUT DX, AL

LL:

MOV DX, A0809

OUT DX, AL ;; START ADC0809

WAIT_AD_START:

MOV DX, A8255

IN AL, DX

TEST AL, 80H

JNZ WAIT_AD_START

WAIT_AD2_FINISH:

MOV DX, A8255

IN AL, DX

TEST AL, 80H

JZ WAIT_AD_FINISH

MOV DX, A0809

IN AL, DX

MOV DX, B8255 ;; OUTPUT TO 8255B

OUT DX, AL

JMP LL

MOV AX, 4C00H

INT 21H

CODE ENDS

END START

选做实验-中断方式

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

接线

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

代码

;; ADC0809 IOY0

;; BASE OFFSET: 0600H

A0809 EQU 0600H

B0809 EQU 0602H

;; 8255 IOY1

;; BASE OFFSET: 0640H

A8255 EQU 0640H

B8255 EQU 0642H

C8255 EQU 0644H

CON8255 EQU 0646H

CODE SEGMENT

ASSUME CS:CODE

START:

MOV DX, CON8255

MOV AL, 90H ;; A IN, B OUT

OUT DX, AL

;; 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

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

LL:

CLI

MOV DX, A0809

OUT DX, AL ;; START ADC0809

CALL DELAY

STI

JMP LL

MIR6:

MOV DX, A0809

IN AL, DX

MOV DX, B8255

OUT DX, AL

IRET

DELAY PROC NEAR

MOV CX, 0FFFFH

LOOP $

RET

DELAY ENDP

CODE ENDS

END START