实验八 A/D模数转换(汇编与微机原理)

2023-12-17 18:20

本文主要是介绍实验八 A/D模数转换(汇编与微机原理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验目的:

掌握ADC0809模数转换的工作原理。

掌握用ADC0809来进行电压转换的使用方法。

实验内容:

用模数转换器件ADC0809测量外部输入的模拟电压,将转换结果输出到数码管的最右边两位上显示。

实验原理:

     0809A/D转换芯片有8个A/D转换通道IN0~IN7,可以同时进行工作,从8个通道中输入8个不同的模拟信号可以“同时”分别进行转换(启动转换从程序上看是有先后顺序的,但从用户来看它们是同时在进行转换)。本次实验只要求选择其中的一个通道工作。

      当执行OUT DX,AL指令时0809的输入信号START为1,开始启动模数转换,START信号有效的同时ALE信号也会有效,此时ADD-A、ADD-B、ADD-C会把当前工作的通道端口地址锁存下来以确定是哪个通道进行转换。EOC是转换结束的标志信号,是输出信号。转换结束数据进入锁存后它由低变为高电平,用户可将此信号作为状态信号进行查询或作为中断信号来触发中断,在实验室实验中可采用“延时等待转换结束”的方法以节省硬件资源提高课堂效率。ENBLE是输入信号,当它高电平时模数转换后得到的数据可以通过 D7~D0引脚输出,用IN  AL,DX指令将转换后的数据读入到AL中。

硬件连线:

0809C2区:0809片选CS、ADDA、ADDB、ADDC 连接A3区:系统CS3、A0、A1、A2 ;

C2区:CLK 连接 B2区:500K;               C2区:IN0 连接 F6区:0~5V ;

8255D3区:8255片选CS、A0、A1   连接  A3区: 系统CS1、A0 、A1;

D3区:   (A口)B=JP16(SEGA-SEGP)、(B口)C=JP17(DIG0-DIG7) 连接

F5区:    B(JP36)(段码)、     C(JP35)(位码)

注意

要求程序编成一个不断循环的过程,不停地转换不断地在数码管上显示数据。

数码管显示部分可直接调用星研系统提供的数码管显示子程序Display8,不用自己编写。

实验代码:

.MODEL TINY
EXTRN InitKeyDisplay:NEAR,Display8:NEAR
ADDR_0809 EQU 0250H   ;通道0
.STACK 100
.DATA
buffer DB 8 DUP(?)
.CODE
START:MOV AX,@DATA;初始化DSMOV DS,AXCALL InitKeyDisplay;初始化8255键盘显示
START1:	;启动AD转换器MOV AL,0MOV DX,ADDR_0809OUT DX,AL;延时cx=100MOV CX,100LOOP $;读取转换数据MOV DX,ADDR_0809IN AL,DX;对8字节显示BUFFER赋值MOV AH,AL;低四位AND AL,0FHMOV buffer+0,ALMOV AL,AH;高四位AND AL,0F0HROR AL,4;循环右移4位MOV buffer+1,ALMOV buffer+2,10HMOV buffer+3,10HMOV buffer+4,10HMOV buffer+5,10HMOV buffer+6,10H					MOV buffer+7,10H;显示转换数据LEA SI,bufferCALL Display8;重复以上过程JMP START1END START

这篇关于实验八 A/D模数转换(汇编与微机原理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/505369

相关文章

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们