模数转换ADC0832、ADC0808和ADC0809的利用

发布者:superstar11最新更新时间:2015-06-18 来源: 51hei关键字:模数转换  ADC0832  ADC0808  ADC0809的 手机看文章 扫描二维码
随时随地手机看文章
/***************************************************************
利用AT89c51单片机和ADC0808(ADC0809)ADC0832进行模数转换,进行电压测试
 数码管采用共阳极,要显示小数点,则小数点位二进制数最高为应为0,在0-9的8421BCD
码中,最高位都为1,所以把输出数据的BCD码与0x7F“相与”才能实现带小数点的显示。
****************************************************************/
#include
#include
#define uint unsigned int 
#define uchar unsigned char
//******************adc0832****************************//
sbit CS=P2^3; //使能。
sbit CLK=P2^2;//时钟
sbit DO=P2^1; // 数据输出
sbit DI=P2^0;//数据输入
char CC[]="11001001"; 
uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uchar temp;
uint vvv,i;
//通道的选择:0x02就是单通道0;0x03就是单通道1;
//0x00就是双通道ch0="+";   ch0="-"
//0x01就是双通道ch0="-";   ch0="+"
//*****************************************************//
void delay(int tt)
{
while(tt--)
  {for(i=0;i<120;i++);}
}
void startADC()
{
CS=1;
_nop_();
_nop_();
CLK=0;
_nop_();
_nop_();
CS=0;
_nop_();
_nop_();
DI=1;
_nop_();
_nop_();
CLK=1;
_nop_();
_nop_();
DI=0;
_nop_();
_nop_();
CLK=0;
_nop_();
_nop_();
}
void choiceADC(uint CH)//CH为0选择通道ch0,为1,选择ch1进行AD转换
{
startADC();
if(CH==0)
{
DI=1;
_nop_();
CLK=1;//上升沿DI=1
_nop_();
CLK=0;//1个下降沿DI=1
_nop_();
DI=0;
_nop_();
CLK=1;
_nop_();
CLK=0;//第3个上升沿DI=0
_nop_();
}
else
{
DI=1;
_nop_();
CLK=1;//上升沿DI=1
_nop_();
CLK=0;//1个下降沿DI=1
_nop_();
DI=1;
_nop_();
CLK=1;
_nop_();
CLK=0;//第3个上升沿DI=1
_nop_();
}
/********通道选择结束开始读取转换后的二进制数****/
CLK=1;
_nop_();
CLK=0;//下降沿读数,一下进行判断和处理,共8次
for(i=0;i<8;i++)
      {
   DI=1;
   if(DO)
      {
   temp |=0x01;
   }
    else
      {
   temp &=0xfe;
   }
      CLK=0;
   _nop_();
   CLK=1;
   temp=temp<<1;
   }
   vvv=temp*500.0/255;
}[page]
void display(uint dat)
{
P3=0x04;
P0=tab[dat/100];
P0 &=0x7f;//实现带小数点位显示小数点。
delay(1);
P0=0xff;
P3=0x02;
P0=tab[dat%100/10];
delay(1);
P0=0xff;
P3=0x01;
P0=tab[dat%10];
delay(1);
P0=0xff;
}
void main()
{
   P3=0xFF;
   P0=0xff;
   while(1)
   {
      choiceADC(0);
   delay(1);
   display(vvv);
   }



#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit OE   =P2^7;
sbit EOC  =P2^6;
sbit start=P2^5;
sbit CLOCK=P2^4;
sbit CS4  =P2^3;
sbit CS3  =P2^2;
sbit CS2  =P2^1;
sbit CS1  =P2^0;
uint vvv,vot;
uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
             0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay(uint ms)
{
uchar j;
while(ms--)
  for(j=0;j<120;j++);
}
void ADCread()
{
start=0;
start=1;
start=0;//开始转换
while(EOC==0);//等待转换结束
OE=1;
vvv=P1;//向单片机发出转换结果存VVV中
OE=0;
}
void votexcheng()//根据显示要求换算成显示电压值
{
/**单片机8为对应最大数255,对应最大电压V(此处为5V)换算如下**/
vot=vvv*5/255;//如最大量程8V,则乘800,依次类推
}
void display(uint dat)
{
CS1=1;CS1=0;CS3=0;CS4=0;
P0=~tab[dat/100|0x80];
delay(1);
P0=0xff;
CS1=0;CS1=0;CS3=1;CS4=0;
P0=tab[dat%100/10];
delay(1);
P0=0xff;
CS1=0;CS1=0;CS3=0;CS4=1;
P0=tab[dat%10];
delay(1);
P0=0xff;
}
void t0() interrupt 1
{
CLOCK=~CLOCK;
}
void t0_init()//开启定时器定时,计时满后产生中断以便产生CLK时钟
{
TMOD=0x02;
TH0=0x14;
TL0=0x00;
TR0=1;
ET0=1;
EA=1;
}
void main()
{
t0_init();
while(1)
    {
 ADCread();
    votexcheng();
    display(vot);
 }
}
关键字:模数转换  ADC0832  ADC0808  ADC0809的 引用地址:模数转换ADC0832、ADC0808和ADC0809的利用

上一篇:51单片机驱动1602液晶的C程序
下一篇:51单片机驱动12位AD转换TLC2543电路图+程序

推荐阅读最新更新时间:2024-03-16 14:04

51proteus仿真:adc0804实现模数转换
系统采集到的信号,几乎都是模拟信号。学习单片机的模拟数字ad转换是必须的。 这个仿真就是利用adc0804把模拟电压转换为数字信号,然后再输出到数码管。 由于最大电压不超过5v,所以数码管显示只有个位,和小数点后面,我只显示小数点后3位,没有四舍五入。 仿真电路图: c程序: #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit duan=P3^0; //u1 sbit wei=P3^1; sbit ADC_CS=P3^2; sbit ADC_RD=P3^3; sbit ADC_WR
[单片机]
51proteus仿真:adc0804实现<font color='red'>模数转换</font>
循环式模数转换器电路
循环式 模数转换器 电路:
[模拟电子]
循环式<font color='red'>模数转换</font>器电路
ADI模数转换器AD7190有卓越分辨率与速度
ADI 最新推出一款模数转换器( ADC )—— AD7190 ,实现了数据速率和无噪声分辨率的最佳组合,使工业设备制造商能够提高精密测量仪器仪表的工作速度和精度。同类竞争器件的分辨率在速度超过 1 kHz 时会迅速下降,而 ADI 公司的 24-bit AD7190 S-D ADC 在 40mV~5V 的整个输入电压范围内,当速率高达 2.4 kHz 时仍可实现优于真 16-bit 的无噪声分辨率。 这种性能使得设计人员能够以更高的精度和速度测量微弱的信号,大幅改善精密仪器仪表的系统性能,如称重计、过程测量与控制模块、科学仪器以及医疗监控设备。此外,设计人员可以实现业界领先的、 21-bit 无噪声分辨率的高精
[模拟电子]
51单片机学习笔记:利用ADC0804模数转换器采集电压
电位器调节待检测电压值,在数码管上显示出来, 代码大多从书上搬过来的,书上例5.3.1要求前3个数码管显示AD转换后的8位数字量(即0~255) 我这里让前4个数码管显示具体电压值,比如1.352 C代码 #include reg52.h #include MY51.H void initSMG() //数码管初始化信息 { //上电时,都为高电平 P0=0xff; wela=open; P0=0xff; wela=lock; P0=0; dula=open; P0=0; dula=lock; } vo
[单片机]
51单片机学习笔记:利用ADC0804<font color='red'>模数转换</font>器采集电压
ADC0832转换C程序
#include reg51.h #include intrins.h #define uchar unsigned char #define nop() _nop_(); sbit clk=P1^6; sbit data_i=P1^4; sbit data_o=P1^5; sbit cs=P1^2; //此程序A TO D为CH1 uchar read_adc(void) { uchar i,ch=0; cs=0; clk=1; nop(); nop(); clk=0; nop(); nop(); for (;data_o==1;) { clk=1; nop();
[单片机]
单片机A/D模数转换
先上AD574功能表: 硬件电路图: 程序流程图: c程序: /************************************************************************************************ A/D实验程序选择的晶振是3MHz,选用地址Q0,Q1,用定时器1在1s后重新启动AD转换(important) 程序是copy seataes的,感谢ing,我只是把注释补全,自己能更快的理解罢了 ****************************************************************************
[单片机]
单片机A/D<font color='red'>模数转换</font>
由MAX165/166组成单极性模数转换电路
由MAX165/166组成的单极性模数转换电路 图12为由MAX165/166组成的单极性模数转换电路。由于 MAX165/166的偏置误差和满度误差很小,大多数情况下不必考虑这些误差。如果需要调节这些误差,可按下列步骤进行: 1.偏置误差的调节:可以使用一个运算放大器来调节偏置误差,如图12所示。调节R5即可改变偏置误差的大小。该运入实际上是一个基准电压源,输出电压的大小由R5来调节。通过调节偏置,使得在输入信号为0V时,ADC的输出码在00000000和00000001之间变化。 2. 满量程调节:满量程调节实际上是通过调节R3使AIN脚电压为2.445V时,ADC的输出码在11111110和
[模拟电子]
由MAX165/166组成<font color='red'>的</font>单极性<font color='red'>模数转换</font>电路
ADC0832双通道实现AD电压转换
最近用到双通道ADC0832,发现网上的程序很多不能使用,存在各种各样的一些问题。现提供完整的C程序,供电子爱好者交流使用。 下面是关于ADC0832的一些资料(部分资料来自互联网,但均经检验正确无误,放心使用): ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。 ADC0832 具有以下特点: · 8位分辨率; · 双通道A/D转换; · 输入输出电平与TTL/CMOS相兼容; · 5V电源供电时输入电压在0~5V之间; · 工作频率为250KHZ,转换时间为32μS; · 一般功耗仅为15mW; ·
[单片机]
<font color='red'>ADC0832</font>双通道实现AD电压转换
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved