精华内容
下载资源
问答
  • 基于51单片机和 ADC0808 ADC0809的自动数字电压表proteus仿真程序设计
    千次阅读
    2021-01-22 12:48:57

    前言:

    之前讲过基于数码管显示的自动数字电压表,接下来讲一下基于LCD1602显示的相关设计,分别利用的是TI公司的ADC0808和ADC0809。

    硬件和软件设计

    基于51单片机+ADC0808+LCD1602 测试电压范围为2.1~25V(超出这个范围,程序会卡死),精度<0.05

    仿真图如下:
    在这里插入图片描述
    在这里插入图片描述
    部分代码如下:

    #include <AT89X52.H> 
    
    #define LEDDATA P0
    #define v20_on {s3=0;s2=0;s1=1;} //宏定义不同量程,不同的开关状态
    #define v2_on {s3=0;s2=1;s1=0;}
    #define v02_on {s3=1;s2=0;s1=0;}
    unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
    unsigned char dispbuf[8]={0,0,0,0,0,0,0,0};
    unsigned char getdata;
    unsigned long temp;
    unsigned char i,k,l,m;
    unsigned char code  mytable0[]=" Welcome to use  ";
    unsigned char code  mytable1[]="Auto Voltmeter!";
    unsigned char code line0[]="  Voltmeter   ";    //初始化显示 
    unsigned char code line1[]=" Value:     V ";
    //引脚定义
    sbit lcdrs=P2^0;
    sbit lcden=P2^1;							
    sbit s3=P3^7;  
    sbit s2=P3^6;
    sbit s1=P3^5;
    sbit OE=P3^0; 
    sbit EOC=P3^1;
    sbit ST=P3^2;
    
    void delay(unsigned int z)      //延时子函数  z*1ms 
    {
    	unsigned int x,y;
    	for(x=z;x>0;x--)
    		for(y=110;y>0;y--);
    }
    void write_com(unsigned char c)   //写命令子函数 
    {
    	lcdrs=0;                //低电平选择为 写指令 
    	lcden=0;                
    	LEDDATA=c;                   //把指令写入P0口 
    	delay(5);               //参考时序图 
    	lcden=1;                //开使能 
    	delay(5);               //读取指令 
    	lcden=0;                //关闭使能	 
    } 
    
    void write_data(unsigned char d)  //写数据子函数 
    {
    	lcdrs=1;             //高电平选择为 写数据 
    	LEDDATA=d;                //把数据写入P0口 
    	delay(5);            //参考时序图 
    	lcden=1;             //开使能 
    	delay(5);            //读取数据 
    	lcden=0;	         //关闭使能 
    } 
    void initialize()      //LCD初始化函数 
    {   
        unsigned char num;
    	lcden=0;
    	write_com(0x38);   //设置16x2显示,5x7点阵显示,8位数据接口 
    	write_com(0x0c);   //00001DCB,D(开关显示),C(是否显示光标),B(光标闪烁,光标不显示) 
    	write_com(0x06);   //000001N0,N(地址指针+-1)
    	write_com(0x01);      //清屏指令  每次显示下一屏内容时,必须清屏            
    	write_com(0x80+0x10);           //第一行,顶格显示  			 
    	for(num=0;num<17;num++)        
    	{
    		write_data(mytable0[num]); 
    		delay(10);
    	}
    	write_com(0x80+0x50);           //第二行,从第一格开始显示 
    	for(num=0;num<15;num++)       
    	{
    		write_data(mytable1[num]); 
    		delay(10); 
    	}
    		for(num=0;num<16;num++)
    	{
    		write_com(0x1c);   //0001(S/C)(R/L)**;  S/C:高电平移动字符,低电平移动光标;  R/L:高电平左移,低电平右移 
    		delay(300);
    	}
    	   delay(1000); 
    	             
    	write_com(0x01);      //清屏指令  每次显示下一屏内容时,必须清屏 
    	write_com(0x80);            			
    	for(num=0;num<14;num++)     
    	{
    		write_data(line0[num]);
    		delay(10);
    	}
    
    	write_com(0x80+0x40);         
    	for(num=0;num<15;num++)        
    	{
    		write_data(line1[num]);
    		delay(10);
    	} 	
    } 
    

    .
    基于51单片机+ADC0809+LCD1602 测试电压范围为0~5V,精度约为0.01
    以AT89C51单片机为核心,起着控制作用。系统包括LCD1602液晶显示电路、复位电路、时钟电路、模数转换电路电路。设计思路分为五个模块:复位电路、晶振电路模块、AT89C51、LCD1602液晶显示电路、模数转换器电路这五个模块。在这里插入图片描述
    在这里插入图片描述
    部分代码如下:

    //<程序名>:数字电压表																 		 **
    //<功能>:使用LCD显示被检测电压,精度为0.05V,范围是0~5V。									 **
    #include"includes.h"
    #define TIME0H 0x3C
    #define TIME0L 0xB0
    uchar uc_Clock=0;		//定时器0中断计数
    bit b_DATransform=0;
    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把电压显示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    void vShowVoltage(uint uiNumber)
    {
    	uchar ucaNumber[3],ucCount;
    	if(uiNumber>999)					
    		uiNumber=999;
    	ucaNumber[0]=uiNumber/100;								//把计算数字的每个位存入数组。
    	ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;							
    	ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];
    	for(ucCount=0;ucCount<3;ucCount++)
    	{
    		vShowOneChar(ucaNumber[ucCount]+48);				//从首位到末位逐一输出。
    		if(ucCount==0)
    			vShowOneChar('.');
    	}
    }
    //*************************************************************************************************
    //*																								  *
    //*			  ********************************主函数******************************				  *
    //*																								  *
    //*************************************************************************************************
    void main()
    {
    	TMOD=0x01;			//定时器0,模式1。
    	TH0=TIME0H;
    	TL0=TIME0L;
    	TR0=1;				//启动定时器。
    	ET0=1;				//开定时器中断。
    	EA=1;				//开总中断
    	vdInitialize();
    	vWriteCMD(0x84);	   //写入显示起始地址(第一行第4个位置)
    	vShowChar("voltage");
    	vWriteCMD(0xC9);     
    	vShowChar("(V)");
    	while(1)
    	{
    		if(b_DATransform==1)
    		{
    			b_DATransform=0;
    			vWriteCMD(0xC4);
    			vShowVoltage(uiADTransform());
    		}
    	}
    }
    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器0中断函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    void t0() interrupt 1
    {
    	if(uc_Clock==0)
    	{
    		uc_Clock=5;
    		b_DATransform=1;
    	}
    	else
    		uc_Clock--;
    	TH0=TIME0H;		   //恢复定时器0。
    	TL0=TIME0L;
    }
    
    
    
    

    附:http://www.jh-tec.cn/archives/7315

    更多相关内容
  • 由于ADC0809片内没有时钟,可利用单片机提供的地址锁存信号ALE经D触发器2分频后获得,ALE引脚的频率是单片机时钟频率的1/6,如果单片机时钟频率采用6MHz,则ALE引脚的输出频率为1MHz,再经过2分频后为500kHz,恰好...
  • 描述adc0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。1.主要特性1)8路8位A/D转换器,...

    描述

    adc0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

    1.主要特性

    1)8路8位A/D转换器,即分辨率8位。

    2)具有转换起停控制端。

    3)转换时间为100μs

    4)单个+5V电源供电

    5)模拟输入电压范围0~+5V,不需零点和满刻度校准。

    6)工作温度范围为-40~+85摄氏度

    7)低功耗,约15mW。

    2.内部结构

    adc0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近组成。

    adc0809的内部逻辑结构图如图9-7所示。

    a1312c534ebd731d6a3196b11a5b4706.png

    图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表9-1为通道选择表。

    6150f69d7bbae4e70db6ae0411f67b27.png

    adc0809引脚图及功能

    96ad622c4ffe789c4fbd653334887c4a.png

    3.外部特性(引脚功能)

    adc0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。下面说明各引脚功能。

    IN0~IN7:8路模拟量输入端。

    2-1~2-8:8位数字量输出端。

    ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路

    ALE:地址锁存允许信号,输入,高电平有效。

    START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

    EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

    OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

    CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。

    REF(+)、REF(-):基准电压。

    Vcc:电源,单一+5V。

    GND:地。

    adc0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。

    adc0809与单片机连接电路分析

    MCS-51单片机与adc0809的接口

    adc0809与MCS-51单片机的连接如图9.10所示。

    电路连接主要涉及两个问题。一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。

    ebbb2fa6923d92956d5a520fb39ded58.png

    图9.11 adc0809的部分信号连接

    19f0a6b718002991c3c999ae4bf2f193.png

    2. 转换数据的传送

    A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。

    (1)定时传送方式

    对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如adc0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。

    (2)查询方式

    A/D转换芯片由表明转换完成的状态信号,例如adc0809的EOC端。因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。

    (3)中断方式

    把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。

    不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。

    不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送。所用的指令为MOVX 读指令,仍以图9-17所示为例,

    则有

    MOV DPTR , #FE00H

    MOVX A , @DPTR

    该指令在送出有效口地址的同时,发出有效信号,使0809的输出允许信号OE有效,从而打开三态门输出,是转换后的数据通过数据总线送入A累加器中。

    这里需要说明的示,adc0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,例如与D0~D2相连。这是启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0~IN7相一致。例如当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:

    MOV DPTR, #FE00H ;送入0809的口地址

    MOV A ,#07H ;D2D1D0=111选择IN7通道

    MOVX @DPTR, A ;启动A/D转换

    A/D转换应用举例

    设有一个8路模拟量输入的巡回监测系统,采样数据依次存放在外部RAM 0A0H~0A7H单元中,按图9.10所示的接口电路,adc0809的8个通道地址为0FEF8H~0FEFFH.其数据采样的初始化程序和中断服务程序(假定只采样一次)如下:

    1cd1a330a2e457bbcd4be075e24f93ed.png

    c7435144aabd3e71d7dd16394cb5f792.png

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • ADC0809与单片机的接口电路ADC0809是一款常用的A/D转换芯片。
  • 51总线方式获取adc0809数值

    千次阅读 2018-11-27 22:28:52
    最近单片机有一个实验挺有意思的,使用51单片机以总线的方式读取adc0809的数据 先补充点关于单片机总线的预备知识,我一开始不了解总线的时候做这个实验也是很懵逼的。 单片机的三总线结构 51单片机有三条总线...

    最近单片机有一个实验挺有意思的,使用51单片机以总线的方式读取adc0809的数据

    先补充点关于单片机总线的预备知识,我一开始不了解总线的时候做这个实验也是很懵逼的。

    单片机的三总线结构

    51单片机有三条总线:数据总线、地址总线、控制总线

    从图中可以看出,8位数据总线由P0组成,16位地址总线由P0和P2组成,控制总线由P3和相关引脚组成

    采用总线的方式可以简化编程,节省I/O口,便于外设扩展

    但是数据口和地址口在P0是怎么复用的呢,这就需要看到时序了

    从图中可以看出,P0口是数据/地址分时复用的,这是P0口内部的复用结构完成的

    实操练习

    51单片机与adc0809接线原理图如下

    解释电路

    P2.7口用作adc0809的选择线

    P0.0~P0.2所接的A B C是adc0809的IN0通道选择线

    接下来就是计算adc0809的地址了

    P2 P0

    0xxx xxxx xxxx x000

    因此地址为0x7ff8

    遇到的问题

    本来应该显示5v的位置只显示1.144v,而且在电阻增大的过程中,显示的值先减小后增大又减小,具体情况如图

    实在没有办法的情况下,借别的同学的代码来看,没发现自己的程序在时序、地址上的错误。

    琢磨了单片机的数值变换的现象后,突然觉得是不是保存ad转换数值的变量溢出了,然后就发现我的变量类型是int,而别人的变量类型是long int

    在将保存ad转换的变量类型修改过后,程序就运行正常了

    程序代码

    #include <reg51.h>
    #include <absacc.h>
    
    typedef unsigned char uchar;
    typedef unsigned int uint8;
    typedef unsigned long int uint16;
    
    uchar led_mod[] = {    0x3f,0x06,0x5b,0x4f,    //!< 数码管编码
                        0x66,0x6d,0x7d,0x07,    
                        0x7f,0x6f,0x77,0x7c,
                        0x39,0x5e,0x79,0x71};
    
    #define AD_IN0 XBYTE [0x7ff8]
    
    sbit EOC = P3^5;
    sbit CLK = P3^3;
    
    sbit seg1 = P2^0;
    sbit seg2 = P2^1;
    sbit seg3 = P2^2;
    sbit seg4 = P2^3;
    
    uint16 adc_data = 0;    //> 保存ad转换结果
    
    /**
     * @brief 延迟函数
     * 
     */
    void delay_ms(uint8 time)
    {
        uint8 j;
        for (; time>0; time--)
        {
            for(j=114; j>0; j--);
        }
    }
    
    /**
     * @brief 定时器初始化
     * 
     */
    void timer_init(void)
    {
        TMOD |= 0x02;                                                   
        TH0 = 200;          //> 产生方波周期2us           
        TL0 = 200;                              
    
        ET0 = 1;                                      
        TR0 = 1;                                      
    }
    
    /**
     * @brief 数码管动态显示函数
     * 
     */
    void display(void)
    {
        adc_data = adc_data*1000/51;                //> 分辨率为5/256约为1/51
        P1 = 0x00;
        P1 = led_mod[adc_data/1000]|0x80;
        seg1 = 0;
        delay_ms(2);
        seg1 = 1;
        P1 = 0x00;
        P1 = led_mod[(adc_data%1000)/100];
        seg2 = 0;
        delay_ms(2);
        seg2 = 1;
        P1 = 0x00;
        P1 = led_mod[(adc_data%100)/10];
        seg3 = 0;
        delay_ms(2);
        seg3 = 1;
        P1 = 0x00;
        P1 = led_mod[adc_data%10];
        seg4 = 0;
        delay_ms(2);
        seg4 = 1;
    }
    
    void main()
    {
        timer_init();
        EA = 1;
        while(1)
        {
            AD_IN0 = 0;
            while(EOC == 0);
            adc_data = AD_IN0;
            display();
        }
    }
    
    /**
     * @brief 产生时钟周期
     * 
     */
    void timer0() interrupt 1                   
    {
        CLK = ~CLK;
    }

     

     

     

    展开全文
  • 目录ADC080951八路NTC温度采集系统1.NTC负温度2.ADC08093.51最小系统连接(proteus8)4.Keil代码5.踩坑注意(1)proteus8仿真ADC0809(2) proteus8仿真OLED相应引脚接线5.效果演示 1.NTC负温度 网络上很多NTC...

    ADC0809和51八路NTC温度采集系统

    1.NTC负温度

    网络上很多NTC温度转换方式,有查表之类的。由于我的这个项目对于温度准确度要求并不高,所以用一下公式转化即可满足显示要求,如需要更精确的数值,还请看看数据手册查表分析。
    这里引用这位大佬的经验,转换公式也是从此的来。(所谓站在巨人肩膀上才能看的更远)感激这位大佬的分享。

    https://blog.csdn.net/u013866683/article/details/79391849
    

    2.ADC0809

    仿真替代方案
    proteus仿真里面用ADC0808代替ADC0809,只需要把名字给改一下就可以了,引脚也是适用的。
    在这里插入图片描述

    3.51最小系统连接图(proteus8)

    在这里插入图片描述

    4.Keil代码

    这里放出关键的NTC温度转换代码

    main.c

    /*
    const float Rp =10.0; //10K
    const float Temp2 = (273.15+25.0); //T2
    const float Bx = 3950.0;//B
    const float Ka = 273.15;
    */
    float Get_Temp(uchar channel)
    {
     
    	float Rt;
    	float temp;
    	float vol;
    	float tempBuff=0;//返回值缓存
    	int showTemp; 
    
    	vol = (float)(AD())*(5.04/256); //NTC电压
    	vol = (float)(AD())*(5.04/256); //NTC电压,ad转换要多转换一次,因为第二次读取的数才是本次使用的数值
    	Rt = (vol*10)/(5.04-vol); //当前温度阻值
    	temp = Rt/Rp;            
    	temp = log(temp);//ln(Rt/Rp)
    	temp/=Bx;//ln(Rt/Rp)/B
    	temp+=(1/Temp2);
    	temp = 1/(temp);
    	temp-=Ka+0.5;
    	tempBuff = temp; //返回值缓存
    
    	if(temp<0)
    	{
    		temp = -temp;  //变正取数
    		minFlag=1;     //负值标志位
    	}
    	else
    	{	
    		temp = temp;
    		minFlag=0;
    	}
    	
    	
    	showTemp = 100*temp;         
    	
    	disbuff[channel*4+0]=showTemp/1000;    //分别取千百十个位,后面添加 '+' '-' '.';数据格式+xx.xx(-xx.xx)
    	disbuff[channel*4+1]=showTemp%1000/100;
    	disbuff[channel*4+2]=showTemp%100/10;
    	disbuff[channel*4+3]=showTemp%10;
    		
    	return tempBuff;
    }
    
    链接:https://pan.baidu.com/s/1O64KxTIM1UwWvrY0eVqCQg 
    提取码:qost 
    如果需要代码和仿真源文件,可以留言个邮箱。
    

    5.踩坑注意

    (1)proteus8仿真ADC0809

    这里我就不重复说明了,感激这位大佬的分享。简单说就是ADC0808的输出引脚序号与实际数据的高低位是相反的,即OUT8对应输出数据的最低位(LSB),OUT1对应输出数据的最高位(MSB)
    在这里插入图片描述

    https://blog.csdn.net/weixin_42098782/article/details/86503628
    

    (2) proteus8仿真OLED

    proteus器件输入LY190-128064
    在这里插入图片描述

    相应引脚接线

    特此说明,由于我接的是P0口,所以用上拉电阻。
    在这里插入图片描述
    在这里插入图片描述

    5.效果演示图

    在这里插入图片描述

    展开全文
  • 说在前面一、基本原理介绍二、原器件介绍三、设计及接线四、流程框图五、程序六、项目设计总结七、最后找了两张实物 一、基本原理介绍 adc0809 模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变...
  • 51单片机驱动 adc0804模数转换 ,下面是电路 #include#include "lcd.h"#include#define uint unsigned int#define uchar unsigned charuchar lcd[]="0123456789";sbit rd=P3^6; //IO口定义sbit wr=P3^5;sbit cs=P3...
  • ADC0804单片机的模数转换程序(附仿真),希望对大家有用
  • ,为单片机AD转换器的一种:ADC0804单片集成A/D转换器。它采用CMOS工艺20引脚集成芯片,分辩率为8位,转换时间为100µs,输入电压范围为0~5V。芯片内具有三态输出数据锁存器,可直接接在数据总线上。各引脚名称...
  • 该资料为浊度传感器在51单片机上进行应用的c语言代码。 使用ADC0809模块,可拓展液晶显示屏。 十分适合需要结合水污染探测的人使用。
  • ADC0809转换原理报告

    2011-01-25 21:43:46
    计算机接口技术 AD转换原理报告 ADC0809接线图 51单片机
  • 该设计的方案是基于51单片机,对水源进行采集,将温度传感器DS18B20、水浊度传感器放入水中,水浊度传感器通过A/D转换器adc0832进行模数转换,转变之后的信号传送给单片机。单片机通过LCD1602显示测得的温度值、水浊...
  • 本作品单片机的智能火灾报警系统采用51单片机+MQ-2烟雾传感+ADC0832模数转换芯片+DS18B20温度传感器+数码管显示+按键设定+声光蜂鸣器设计而成。 1、可设置烟雾浓度和高温报警值,遇到紧急突发情况可紧急报警和手动...
  • 模数转换ADC0804 一功能: 程序为数字电压表程序先接上液晶1602输入电压可取自实验板或处接当 电压取自实验板...值数码管显示相应的AD 转换内码(ASCII 码)当输入电压外接时接线端为A-IN 和GND电压取0 到5伏 二电路: 三
  • 一、设计要求 采用AD0809对输入的模拟量进行转化,转化完成后将数字量通过LED进行二进制显示。电路如下。...由上可以看到,AD0809由一个8路模拟量开关、一个地址锁存译码器、一个A/D转换器..
  • 51单片机AD转换电路设计实现关于AD转换的原理,大家在《数字电子技术》中已经学过,这里做过多的介绍,本文介绍一款经典的8位AD转换芯片ADC0804,基于51单片机设计AD转换电路,并完成测量值的转换。1 芯片引脚介绍CS...
  • 按照下图接线,当输入模拟2.5V电压输入时,A/D转换得出数字量7FH,并在数码管中显示 来。 #include "AT89X52.H" main() { while(1) { P2_2=0;P2_2=1;P2_2=0; while(P2_0==0) { P2_1=1;P1=P0; } } }...
  • adc0831使用说明

    2009-03-02 23:20:32
    adc0831的使用手册,让大家对ADC0831在单片机的应用中有一个好的资料
  • 美国国家半导体公司生产的ADC0832是广泛应用的8 位分辨率、双通道A/D转换芯片。ADC0832是双通道输入,并且可以软件配置...ADC0832的工作原理正常情况下ADC0832 单片机的接口应为4条数据线,分别是CS、CLK、DO、DI...
  • 在网上找了很久,大多数都是原理连接,所以自己根据...连接如下,其中③接的是输出端用于传感器接收采集信号,④接的是STM32F4的ADC1的A5引脚,模拟输入 具体STM32F4中GP2Y10粉尘传感器的代码见下篇博客 ...
  • 肺活量监测,原理部分,STC89C51单片机和AD0832,AD转换,加上XGZP6847
  • 51proteus仿真:adc0804实现模数转换

    千次阅读 2019-10-02 01:03:32
    51proteus仿真:adc0804实现模数转换 系统采集到的信号,几乎都是模拟信号。学习单片机的模拟数字ad转换是必须的。 这个仿真就是利用adc0804把模拟电压转换为数字信号,然后再输出到数码管。 由于最大电压不...
  • 也就是对于数码管内部的灯管来说,公共端是地,在中也能看的出来。而且,在单片机控制数码管的引脚都连着上拉电阻,也是就中的RP1。RP1的引脚1是排阻的公共端,连接着电源。这里的作用是当单片机驱动LED时,给...
  • 普中51开发板,用XPT2046芯片实现AD数模转换:让8个动态数码管,第一二位显示AD,后3位转换的数字量,最后3位显示对应电压值 XPT2046芯片使用小结: XPT2046 是一种典型的逐次逼近型模数转换器(SAR ADC),包含了...
  • [实验要求]从ADC0804 的模拟量通道输入0-5V 之间的模拟量,通过ADC0804 转换成数字量送给单片机,经单片机处理后在数码管上以十进制形成显示出来。[实验目的]学习如果用单片机控制ADC0804芯片进行数模转换,掌握...
  • 查看文章 17、模数转换IC ADC0809的使用制做之一……基础知识2008-12-31 13:56我们重在实际制做,太罗嗦的内容我就不说了,只讲些跟制做有关的最精炼的知识。 ADC0809是可以将我们要测量的模拟电压信号量转换为...
  • 系统以51单片机为核心部件,辅以外围电路,实现了对土壤湿度信号采集、处理、显示、以及声光报警、水泵的自动控制功能。
  • 本系列文章讲述了基于proteus仿真的51单片机学习,内容全面,不仅讲解电路原理,还讲解了单片机c语言,实例丰富,内容全面。
  • 随着科学技术电子业技术的不断发展更迭,有机发光二极管如何简易并且有效的实现显示均匀、大面积发光、高亮度高分辨率发光、以及延长有机发光二极管寿命等当前亟需解决的问题,是我们未来要面对的技术挑战。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 400
精华内容 160
关键字:

adc0809与51接线图