模数(A/D)转换器件 ADC08031与ADC08034 驱动

模数转换器ADC0803x系列

  • 模数转换器就是将模拟输入量转换成离散的数字量输出;有四个过程,分别是——采样、保持、量化、编码;比较关注转换速率和分辨率;还有AD转换器的分类等等……俺也不知道哈哈哈哈哈哈哈哈哈
    百度百科——模数转换
    模数转换原理
    AD转换基础知识

  • ADC083x数据表:ADC083x datasheet
    根据这个数据手册,可以知道ADC083x系列不同的地方在于通道的不同,0831只有一个通道,故不需要DI输入通道选择;0832有CH0和CH1;0834有CH0、CH1、CH2、CH3;

基于51 的ADC0831与光强传感器Proteus仿真

ADC0831先启动数据转换,然后根据数据手册,过一定时钟周期,就能输出数据(MSB在前):
在这里插入图片描述
在这里插入图片描述
图2紫色框对应图1内容,图1的①②③在下面代码有注释,ADC0831的驱动程序如下:

unsigned char ad_conv(void){
	unsigned char i,com;
	//①
	CS=1;
	CLK=0;	_nop_();	_nop_();
       
    //②
	CS=0;	_nop_();	_nop_();//CS置低,启动转换
    CLK=1;	_nop_();	_nop_();
    //③
	CLK=0;	_nop_();	_nop_();//第一个下降沿,准备输出数据
	CLK=1;	_nop_();	_nop_();

     //采集数据
	for(i=8;i>0;i--){
		CLK=0;	//第二至九个下降沿
		com<<=1;//左移,先采最高位
		if(DO)com=com|0x01;//采当前数据
		CLK=1;
		_nop_();
	    _nop_();
	}	
	CS=1;
	return com;
}

Proteus中加入AT89C52、ADC0831、数码管显示、光强传感器,仿真结果如下:
在这里插入图片描述

基于51的ADC0834与光强传感器Proteus仿真

ADC0834有四个通道,需要通过DI端口在不同的时钟周期输入不同的数据来实现端口的选择,见下图:
在这里插入图片描述
首先要在4个上升沿,通过DI端口输入4个信号,表示开始转换、选择极性、选择通道;
在这里插入图片描述
根据时序图得到ADC0834的驱动程序:

unsigned char ad_conv1(void){
	unsigned char i,com;
	CS=1;
	CS=0;	_nop_();	_nop_();//CS置低,启动转换
    CLK=0;	_nop_();	_nop_();
    //选择通道——根据Table4 修改DI值,选择不同的通道
    //以下代码是选择的CH3
    //上升沿1——start bit
	DI=1; 	_nop_();	_nop_();  //启动,准备输出数据 
	CLK=1;	_nop_();	_nop_();
	CLK=0;	_nop_();	_nop_();
	//上升沿2——SGL/DIF
	DI=1;  
	CLK=1;	_nop_();	_nop_();
	CLK=0;	_nop_();	_nop_();	
    //上升沿3——ODD/SIGN
	DI=1;
	CLK=1;	_nop_();	_nop_();
	CLK=0;	_nop_();	_nop_();	 
    //上升沿4——SELECT
	DI=1;
	CLK=1;	_nop_();	_nop_();	
		
    //下降沿 准备开始采集数据
    DI=1;
	CLK=0;	_nop_();	_nop_();  
	CLK=1;	_nop_();	_nop_();
	
	for(i=8;i>0;i--){
		CLK=0;	//下降沿 采集数据
		com<<=1;//左移,先采最高位
		if(DO)com=com|0x01;//采当前数据
		CLK=1;
		_nop_();
	    _nop_();	
	}	
	CS=1;
	return com;
}

仿真如下:
在这里插入图片描述
选择通道CH3就是光强传感器,通过LM016L显示。

哈哈哈哈哈……(结束!✌🤡🍉

  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值