概述
ADC0832的作用:
将电路中的模拟量转化为数值量
①采样 采样间隔t, 采样频率1/t 必须是最高频率的两倍
②量化 将采样的电平转化为数字量
在本设计中,给定采光电路的电压0~5V,所以被ADC所收到的数据也是0 ~ 5V之间的数值,举个例子来说,若接收到一个2.5V的电压,在量化时就可以得到数量级大概在为128,由于8位分辨率位256级,每一级对应的电压为5/256 = 19.53mv, (128/256*19.53)=2.5V,所以单片机通过接收到1000 0000就知道数量级为128,从而得到2.5V的电压。
ADC0832编程:
时序图
ADC0832芯片第一个时钟DI为高电平,第二第三个时钟选择通道,1 0选通道0,0 1选通道1,从第三个时钟开始到第11个时钟,接收8bit数据,从12到19个时钟第二次接收数据,如果两次接收的一样,就输出。
代码:
u8 ADC0832_read(u8 CHX);
//CHX是单片机发送给ADC0832的第三位,该位确定芯片选择哪个通道进行工作,函数返回ADC0832芯片DO的得到的数字量,该数字量即为模数转化芯片的通过量化取得数量级,通过该值进行一定的计算就得到了电路中电压的值。
#ifndef _ADC0832_H_
#define _ADC0832_H_
#include <reg52.h>
#define u8 unsigned char
/**
下面是芯片需要与单片机连接的引脚
除了下面的引脚之外,还需要将Vcc接5V供电与GND引脚接地
**/
sbit ADC_CS = P2^7;
sbit ADC_CLK = P2^3;
sbit ADC_DO = P2^2;
sbit ADC_DI = P2^2;
/**
void ADC0832_start();
按照时序图所示:
为ADC0832启动的代码,CHIP SELECT(CS)一个下降沿
DATA(DI)为为高电平
CLOCK(CLK)为低电平置低
**/
void ADC0832_start()
{
ADC_CS = 1; //禁用ADC0832芯片
ADC_CS = 0; //开始
ADC_DI = 1;
ADC_CLK = 1;
ADC_CLK = 0; //第一个下降沿DI为1
}
/**
u8 ADC0832_read(u8 CHX)
参数:CHX 表示选择芯片的通道
返回值:获得光照强度的值,该值为0~255之间的某一个量化的数值,例如00010000 32
**/
u8 ADC0832_read(u8 CHX) //通道0 第二位为1,第三位为0
{ //通道1 第二位为1,第三位为1
u8 temp,i;
ADC0832_start();
if(CHX == 0) //选择通道0,下降沿触发
{
ADC_DI = 1;
ADC_CLK = 1;
ADC_CLK = 0;
ADC_DI = 0;
ADC_CLK = 1;
ADC_CLK = 0;
}
else //选择通道1
{
ADC_DI = 1;
ADC_CLK = 1;
ADC_CLK = 0;
ADC_DI = 1;
ADC_CLK = 1;
ADC_CLK = 0;
}
ADC_CLK = 1;
ADC_CLK = 0;
for(i =8 ;i>0 ;i--) //接受8位数从高位向低位
{
temp <<= 1; //左移一位,是末尾为0,接受端口的数据
ADC_DI=1;
ADC_CLK = 1;
if(ADC_DO)//输出给单片机,如果有1,则+1,否则不执行,默认为0
{
temp = temp + 0x01;
}
ADC_CLK = 0;
}
return temp;//temp中放的数值就是光照强度了
}
#endif
将光照强度转化为52单片机中可以处理的数字量的过程:
①首先要准备ADC0832芯片的驱动程序的代码,将其
#include <ADC0832.h> 包含在文件头中
②单片机上电,运行时,使用、
unsigned int ga_value;//应该定义在主函数的前面的位置
void ADC_init()
{
gz_value = ADC0832_read(0); //将获得光照强度的数值保存在gz_value
gz_value = ((gz_value*5)/255);//
gz_value = gz_value/5*100;//可以将光照强度转化为1~99之间的数值
}
完整的电路图
毕业设计论文
基于单片机的智能窗帘控制系统的设计与实现
单片机各模块设计脑图
时钟模块设计
时钟模块设计详细设计
光照感应模块
光照感应模块详细设计
最后
以上就是虚心小土豆为你收集整理的毕业设计之光照感应模块ADC0832的运用的全部内容,希望文章能够帮你解决毕业设计之光照感应模块ADC0832的运用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复