【ADC0809CCN的原理与使用方法】

这篇具有很好参考价值的文章主要介绍了【ADC0809CCN的原理与使用方法】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ADC0809有ADC0809CCN与ADC0809CCV两种型号,CCN是直插式,CCV是贴片式,两种的原理与引脚相同,其与ADC0808原理相同,区别不大,一般情况下可以直接替换使用,替换使用时的注意事项下文介绍。

【ADC0809CCN的原理与使用方法】
ADC0809CCN
【ADC0809CCN的原理与使用方法】
ADC0809CCV

  ADC0809是CMOS 单片型逐次逼近式8位 A/D 转换器,采样率为10 KSPs,以直插式做案例介绍工作方式:

【ADC0809CCN的原理与使用方法】
Altium Designer原理图

 这里使用proteus软件仿真操作,但ADC0809无法进行仿真,可以使用ADC0808进行替换,原理一样仅输出端有些许区别(0808的输出最低位是OUT7,而0809的最低位是OUT0)。

 引脚功能:

  1. CLK:ADC0809时钟输入,时钟频率范围参考:10KHz;
  2. VREF(+)、VREF(-):基准参考电压,一般设置VREF(+)=+5V,VREF(-)=0V;
  3. VCC、GND:电源与接地线,供电范围:4.5V~6.5V;
  4. ADDA、ADDB、ADDC:3 位地址输入线,相当于3-8译码器的三位输入端用来选通IN0~IN7端口输入;
  5. IN0~IN7:8 路模拟量输入端,输入电压范围0~5V;
  6. ALE:地址锁存允许信号输入,当ALE高电平时三位地址输入线才可以被配置,选通输入;当ALE低电平时,三位地址输入线锁定,对已选通的输入端电压采集转换。
  7. START: AD 转换启动脉冲输入,当START高电平时(高电平脉冲至少100ns),AD启动转换,脉冲的边沿触发ADC0809,上升沿触发复位,下降沿启动转换。一般将START与ALE相连,同时配置信号;
  8. OUT1~OUT8或2-1~2-8:8 位数字量输出端,ADC0809与0808最大的区别在于此,0808的输出最低位是OUT7,而0809的最低位是OUT0;
  9. EOC:AD转换结束信号输出端,当AD转换结束的时候该端口输出高电平,其余时间均为低电平;
  10. OE:数字量输出允许端,当AD转换结束时,使OE为高电平,输出IO口三态门打开,数据可以输出;
【ADC0809CCN的原理与使用方法】
proteus仿真图

 使用方法:

这里以ADC0809与51单片机配合模拟使用,单片机把接收到的数字量经过数据处理、计算得出原测量值。

单片机的P2.5~P2.7三个IO口输出不同高低电平配置ADC0809的ADCA、ADCB、ADCC三个位选端口,产生位选信号控制输入端口。使用单片机的定时器T0定时功能通过P3.5为ADC0809产生5KHz的工作时钟脉冲;P3.4采集ADC0809的转换结束信号(EOC)判断电压模数转换是否完成;P3.3控制ADC0809的输出允许端(OE)将数字量收集到主控芯片;P3.2同时控制ADC0809的地址锁存端(ALE)和转换启动端(START)当未启动转换时,输入位选端口等待位选信号输入,启动转换后,输入位选端口锁定。

输出端的电压计算方式为:     基准电压设置为+5V,所以AD转化将以5V为最大值等分为256份,输入端每增大一份电压值(≈0.0195V)输出端加1。 

 示例代码:

#include "adc0809.h"
#include "delay.h"

sbit STR=P3^2; 		//ALE与START相连		
sbit EOC=P3^4; 				
sbit OE=P3^3; 				
sbit CLK=P3^5; 		

sbit adc_A=P2^5; 				
sbit adc_B=P2^6; 				
sbit adc_C=P2^7; 

unsigned char adc;

三位地址输入位选配置参照下表,这里不过多阐述,注意配置ADCA、B、CshiSTR。文章来源地址https://www.toymoban.com/news/detail-480461.html

三位地址输入端
输入端 ADCA ADCB ADCC
IN0 0 0 0
IN1 1 0 0
IN2 0 1 0
IN3 1 1 0
IN4 0 0 1
IN5 1 0 1
IN6 0 1 1
IN7 1 1 1
//定时器初始化
void adc_init() 
{  
	TMOD=0x01;
	TH0=(65536-100)/256;
	TL0=(65536-100)%256;
	ET0=1;
	EA=1;
	TR0=1;
}

//AD转换
int AD() 
{ 
	STR=1; 			//启动AD转换
	delayms(10); 
	STR=0;  
	while(0==EOC);	//等待转换结束 
	OE=1;  
	adc=P0; 		//读取AD数据,数据范围为0-255
	OE=0;  		
	return adc;
} 

// T0中断服务程序
void t0(void) interrupt 1
{  	
	TH0=(65536-100)/256;
	TL0=(65536-100)%256;  
	CLK=~CLK; 
}

到了这里,关于【ADC0809CCN的原理与使用方法】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTPS:原理、使用方法及安全威胁

    HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),即安全超文本传输协议,是HTTP协议的安全版。HTTPS在HTTP的基础上,通过SSL/TLS协议对数据进行加密传输,以保证数据的完整性、机密性和身份认证。本文将详细介绍HTTPS的技术原理、使用方法和安全威胁。 HTTPS的主要技

    2024年04月10日
    浏览(73)
  • RocketMQ 事务消息 原理及使用方法解析

    🍊 Java学习:Java从入门到精通总结 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2023年3月24日 🍊 个人简介:通信工程本硕 for NJU💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只

    2024年01月25日
    浏览(37)
  • promise的原理和几种使用方法

    promise概念 Promise 是异步编程的一种解决方案:从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本意上讲,它是承诺,承诺它过一段时间会给你一个结果,其实是一个构造函数,自己身上有all、reject、resolve,race这几个方法,原型上有then、catch, finally 等方法

    2023年04月09日
    浏览(33)
  • Vue中$nextTick主要作用、原理及使用方法

    查看本专栏目录 关于作者 还是大剑师兰特 :曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信,一起交流。 热门推荐 内容链接

    2024年02月21日
    浏览(40)
  • (2.1)【经典木马-冰河木马】详细介绍,原理、使用方法

    目录 一、简介: 1.1、简述: 1.2、历史: 1.3、功能: 1.4、清除方法: 1.5、程序实现: 二、冰河木马使用 2.1、第一步:准备好冰河木马 2.2、第二步:配置好目标主机 2.3、第三步:配置好服务端 2.4、第四步:g_sever被运行 2.5、第五步:使用客户端进行连接 木马冰河是用C++B

    2024年02月08日
    浏览(46)
  • Unity | Video Player的简单使用方法和原理

    讲解逻辑为Unity | 基础逻辑_菌菌巧乐兹的博客-CSDN博客 (一)把素材仓库里的视频放进Game界面 1.我们需要在素材仓库中放一个视频(其他文件夹不用管,我只是懒得删了) 2.在Unity里建一个能接收视频的地方VideoPlayer 备注:视频和图片是不一样的,图片到这一步组合一下就能用

    2024年02月05日
    浏览(34)
  • Spring Boot中KafkaListener的介绍、原理和使用方法

    Kafka是一个高性能的分布式消息队列,它被广泛应用于对实时数据进行处理和分析。在Spring Boot中,我们可以通过 @KafkaListener 注解来监听并处理Kafka消息。本文将介绍Spring Boot中 @KafkaListener 注解的介绍、原理和使用方法。 @KafkaListener 注解是Spring Kafka提供的一种消费消息的方式

    2024年02月10日
    浏览(35)
  • Unity3D中的C#协程(概念、使用方法、底层原理)

             Unity3D 中的协程是针对 Unity3D 框架和 C# 编程语言定制的 ,具有便捷的使用方式和良好的效率。其他语言Python、Lua等也支持协程,但是底层实现的细节可能不同。在 Unity3D 引擎中, 协程被 Unity3D 引擎的主循环所驱动 。         协程(Coroutine)是一种编程概念

    2024年02月08日
    浏览(51)
  • 【0基础教程】Javascript 里的分组正则Capturing Groups使用方法及原理

    一、从最简单开始 现有一个字符串: “1-apple” 需要解析出 1 和 apple 来,对应的正则表达式很简单: ^(d)-(.+)$ 其中, ^ 表示字符串的开始,然后一个圆括号包裹的内容表示一个\\\"组\\\": (d) 表示一组数字, (.+) 表示是一组任意值; $ 表示字符串的结束。 对应的代码: 注意,尽

    2024年02月08日
    浏览(58)
  • [005] [蓝桥杯物联网] LoRa模块通信原理概述与API使用方法

    MCU型号: STM32L071KBU SDK:HAL库 工具:CubeMX + MDK LoRa ( Long Range , 远距离)模块收发器型号为 SX1278 ,可以完成 点对点 的数据通信功能,属于 半双工 通信,其原理图与引脚描述如下图所示: ▲ Lora模块原理图 ▲ Lora模块引脚描述 Lora竞赛板中引出了以下引脚: PA5~7:一般配置为

    2023年04月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包