0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

adc0809初始化汇编程序

分享:

以下是针对ADC0809模数转换器的8086汇编初始化程序(中文注释):

;====================================
; ADC0809初始化及数据采集程序
; 硬件连接:ADC0809数据口接8255的PA口, 控制信号由8255的PB口控制
; 控制信号连接: 
;   PB0 - START (启动转换)
;   PB1 - OE (输出使能)
;   PB2 - ALE (地址锁存)
;   PB3 - 通道选择A0
;   PB4 - 通道选择A1
;   PB5 - 通道选择A2
;   PC7 - EOC (转换结束状态)
;====================================

PORTA   EQU 60H         ; 8255 PA端口地址(接ADC数据线)
PORTB   EQU 62H         ; 8255 PB端口地址(控制信号)
PORTC   EQU 64H         ; 8255 PC端口地址(EOC状态)
CTRL    EQU 66H         ; 8255控制寄存器地址

INIT_ADC PROC NEAR
    ; 初始化8255
    MOV AL, 10011000B   ; 控制字: PA输入, PB输出, PC高4位输入/低4位输出
    OUT CTRL, AL

    ; 初始化ADC控制信号
    MOV AL, 00000000B   ; 所有控制信号初始置0
    OUT PORTB, AL
    RET
INIT_ADC ENDP

;====================================
; 启动ADC转换子程序
; 输入:AL = 通道号(000-111)
;====================================
START_CONV PROC NEAR
    PUSH AX
    AND AL, 07H         ; 保留低3位通道号
    ROR AL, 1           ; 循环右移1位(A2->D5, A1->D4, A0->D3)

    OR AL, 00000100B    ; 设置ALE=1 (D2)
    OUT PORTB, AL       ; 锁存通道地址

    NOP                 ; 短暂延时
    NOP

    AND AL, 11111011B   ; ALE=0 (D2)
    OR AL, 00000001B    ; START=1 (D0)
    OUT PORTB, AL       ; 启动转换

    NOP                 ; 短暂延时
    NOP

    AND AL, 11111110B   ; START=0 (D0)
    OUT PORTB, AL       ; 下降沿启动转换
    POP AX
    RET
START_CONV ENDP

;====================================
; 读取ADC结果子程序
; 输出:AL = 转换结果(8位)
;====================================
READ_ADC PROC NEAR
    ; 检测EOC状态(PC7)
    MOV CX, 0FFFFH      ; 设置超时计数器
POLL_EOC:
    IN AL, PORTC        ; 读取PC端口
    TEST AL, 80H        ; 检测PC7(EOC)是否为高
    JNZ DATA_READY      ; 转换完成则跳转
    LOOP POLL_EOC       ; 超时检测

    ; 超时处理
    MOV AL, 0FFH        ; 返回错误值
    JMP EXIT_READ

DATA_READY:
    MOV AL, 00000010B   ; 设置OE=1 (D1)
    OUT PORTB, AL       ; 使能输出

    IN AL, PORTA        ; 读取转换数据

    PUSH AX
    MOV AL, 00000000B   ; OE=0
    OUT PORTB, AL
    POP AX

EXIT_READ:
    RET
READ_ADC ENDP

;====================================
; 主程序示例
;====================================
MAIN:
    CALL INIT_ADC       ; 初始化ADC

    MOV AL, 0           ; 选择通道0
    CALL START_CONV     ; 启动转换

    CALL READ_ADC       ; 读取转换结果到AL
    ; (此时AL中为转换后的数字量0-255)

    ; 处理数据...
    ; (可存储或使用转换结果)

    HLT

关键点说明:

  1. 初始化流程

    • 配置8255工作模式(PA输入/PB输出)
    • 控制信号初始化为低电平
  2. 启动转换

    • ALE置1锁存通道地址
    • START产生下降沿启动转换
    • 支持8通道选择(000-111二进制)
  3. 数据读取

    • 轮询EOC状态(支持超时检测)
    • OE置1使能数据输出
    • 读取PA端口数据
  4. 时序控制

    • 使用NOP指令满足最小脉宽要求
    • 超时机制防止死循环
  5. 通道选择

    • 通过AL寄存器传递通道号(0-7)
    • 自动映射到地址线A0-A2

注意:具体端口地址需根据实际硬件电路调整,延时时间可能需要根据主频优化。

ADC0809是什么?ADC0809是如何工作的

ADC0809是什么?ADC0809是如何工作的?如何去实现ADC0809的模数转换与显示呢?

胡扯123 2022-01-25 06:35:04

怎样去使用ADC0809

一、前言介绍使用ADC0809对一个模拟电压进行转换转换后的电压使用数码管显示出来二、ADC0809的介绍1、ADC0809简介ADC0809是采用COMS工艺制造的双列直插式单片8位A/D转换器

小黑羊 2021-11-17 07:12:38

adc0809是几位转换器 adc0809工作原理简述

ADC0809是一款8位逐次逼近型模数转换器(ADC),广泛应用于需要将模拟信号转换为数字信号的场合。它能够将0到5伏的模拟电压信号转换为8位二进制数字信号。 ADC0809的基本结构

2024-10-21 09:32:19

adc0809输入电压范围 adc0809adc0808区别

ADC0809ADC0808都是8位模数转换器(ADC),它们可以将模拟信号转换为数字信号。这两种芯片广泛应用于各种电子项目中,如数据采集、传感器接口和信号处理等。尽管它们的功能相似,但在输入通

2024-10-21 09:30:58

汇编程序中的常量怎么定义?

,并在程序初始化时加载到数组中。汇编程序文件使用数组的全局名称来确定系数的开头,并相应地加载系数值。这一点让我吃惊,因为系数只由汇编程序使用。有没有一种简单的方法可以在汇编文件中定义这些值,在汇编文件中使用它们,并在C中省略对这些值的任何引用?关于泰勒

viczeng 2019-10-16 10:14:51

ADC0809AD转换器应用技术资料推荐

ADC0809AD转换器应用技术资料下载内容主要介绍了:ADC0809的内部逻辑结构ADC0809的引脚功能ADC0809应用说明ADC0809汇编程序

四川赵赵 2021-04-15 06:26:27

ADC0809 的逻辑结构及引脚定义

ADC0809 的逻辑结构 ADC0809 是带有 8 位 A / D 转换器、 8 路模拟开关以及微处理机兼容的控制逻辑的 CMOS 组件。它是逐次逼近式 A / D 转换器,是目前应用比较

2023-09-11 14:44:06

adc0809单片机驱动程序

adc0809单片机stc15f2k60s2驱动程序,附带液晶得驱动程序,直接可调用!

1796295377 2019-07-15 16:33:51

ADC0809

ADC0809 - 8-Bit uP Compatible A/D Converters with 8-Channel Multiplexer - National Semiconductor

2022-11-04 17:22:44

arm调用c函数初始化失败

问题 编写了一个串口初始化文件uart.c 含有 uart0_init() 初始化函数,以及一个测试函数print() 通过调用uart0_init() 实现初始化。 在汇编程序 通过blprint

cmh12 2019-03-21 07:45:23

如何实现ADC0808/ADC0809的多通道电压采集程序设计?

如何实现ADC0808/ADC0809的多通道电压采集程序设计?

北上北京 2022-01-24 06:32:39

ARM汇编程序设计

慕课电子科技大学.嵌入式系统.第五章.ARM汇编程序设计.ARM汇编程序格式0 目录5 ARM汇编程序设计5.1 ARM汇编程序格式5.1.1课堂重点5.1.2测试与作业6 下一章0 目录5 ARM汇编程序设计5.1 ARM汇编程序格式5.1.1课堂重点5.1.2测试与作业6 下一章博客地...

黄色的小金橘 2021-12-20 06:31:40

ADC0809模数转换器主要特性

ADC0809更详细的参数说明可以查看它的芯片手册(英文原版)链接:文章目录1、ADC0809模数转换器主要特性:2、ADC0809外部特征1、ADC0809模数转换器主要特性:ADC0809是8

发烧友520 2021-12-02 08:24:57

ARM汇编程序设计

嵌入式系统.第五章.ARM汇编程序设计.ARM汇编程序设计20 目录5 ARM汇编程序设计5.2 ARM汇编程序设计25.2.1课堂重点5.2.2测试与作业6 下一章0 目录5 ARM汇编程序设计5.2 ARM汇编程序设计25.2.1课堂重点5.2.2测试与作业6 下一章博客地址: ...

随行者011011 2021-12-14 07:03:54

如何汇编初始化程序

已知晶振频率为12MHz,要求用定时器1产生20ms的定时,试确定TH1,TL1,TMOD的值,并编写初始化程序。 请用汇编

lin364884292 2019-09-23 03:09:04

ADC0809是什么?有何功能

项目中由于单片机开发板自带的ADC模块不够用,单片机自带的ADC模块是XPT2046,只有一个外部模拟输入信号通道,不能够满足我的需求,所以我打算采用ADC0809来作为模数转换芯片

HCPcry 2021-07-20 06:30:02

汇编程序和反汇编程序简要设计

汇编程序和反汇编程序,可以由机器语言得到汇编语言 不是所有都会默认从0000H开始,保险起见,还是要在开头用ORG 0000H,然后加一条跳转指令到程序存放起始地址 交叉汇编,在一台电脑上汇编,在

美信电子 2021-12-01 06:34:49

adc0832是什么_adc0832和adc0809区别

本文首先阐述了adc0832的概念,其次阐述了adc0832的特点,最后介绍了adc0832和adc0809区别。

2020-04-26 08:42:20

新手求助有关ADC0809的基本知识

什么是ADC0809ADC0809应用说明ADC0809的电路原理图

asd013 2021-04-22 06:34:46

STM32如何驱动ADC0809芯片?

STM32如何驱动ADC0809芯片?

jenny042 2021-11-18 07:34:03

求帮忙写个汇编程序

求大神帮忙写一个汇编程序,用汇编程序实现“行走的小人”这一程序的源代码???

safadaga 2019-09-26 22:49:18

了解A/D芯片ADC0809转换性能及编程

文档介绍:微型计算机控制技术实验指导书电子工程系黑龙江工商职业技术学院实验一A/D转换实验一、实验要求利用实验板上的ADC0809做A/D转换器,利用实验板上的电位器W1提供模拟量输入。编制程序,将

安德森大 2021-09-10 06:02:55

汇编学习入门之第一个汇编程序

*经过理论铺垫,现在正式进入语言实际操作和效果展示,该篇文章主要是介绍常用命令与命令的惯常用法;编写、编译一般的汇编程序;阅读机器码。* *注意:本文汇编程序是X86环境下的,移植其他平台可能产生错误。* 一、常用的命令 汇编代码主要由助记符和操作数组成,格式通常如下

2023-02-14 15:10:50

adc0809怎么改通道

ADC0809是一款8位的A/D转换器,它具有8个通道,可以用于将模拟信号转换为数字信号。如果您想改变通道,以下是一些步骤和操作说明。 步骤1:电源连接 首先,将ADC0809的电源引脚连接到正确

2024-01-08 11:04:59

ADC0809在模拟量中有何作用

、Y组的IN/OUT7通道C、X组和Y组的IN/OUT7通道D、没有通道正确答案:D第2题,采用ADC0809构成模拟量输入通道,ADC0809在其中起( )作用。A、模拟量到数字量的转...

jfsky 2021-09-01 07:54:57

交通灯汇编程序

交通灯汇编程序仅供学习参考

纛一啊 2020-08-23 22:11:39

Linux系统中汇编语言来实现芯片外设的初始化

今天主要和大家聊一聊,如何使用汇编语言来实现芯片外设的初始化功能。

2022-11-24 09:26:40

DS18B20和51单片机连接的汇编程序免费下载

汇编程序仅适合单个DS18B20和51单片机的连接,晶振为12MHZ左右

2020-09-06 10:52:59

STM32如何驱动ADC0809芯片

问题原由粉丝提问,STM32如何驱动ADC0809芯片,恰好我有空,时间来得及,粉丝有需求,小哈哥必须安排,这次发文总结一下,希望可以帮助大家。开发环境与工具Keil 5主芯片为STM32F103RET6下载工具为JLINKXCOM V2.0串口助手PC

jenny042 2021-08-17 09:06:30

adc0809引脚图及功能

adc0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换

2021-07-07 10:19:00

加载更多