用ADC0809进行A/D转换,若输出电源为3V,参考电压为5V,则输出的数字量是( )

大唐ll节度使2022-10-04 11:39:541条回答

用ADC0809进行A/D转换,若输出电源为3V,参考电压为5V,则输出的数字量是( )
列出计算过程

已提交,审核后显示!提交回复

共1条回复
8521 共回答了27个问题 | 采纳率85.2%
你好:
ADC0809是8位的ADC,输出数字量范围在0~255.那么参考电压为5V,输入的模拟电压为3V,所以3/5=0.6,255×0.6=153=10011001.
希望我的回答能帮助到你.
1年前

相关推荐

ADC0809 的输出量怎么计算?比如:VREF(+)=+5V,VREF(-)=0,输入电压为2.9V,输出量怎么表示?
yzcg881年前1
8880424 共回答了11个问题 | 采纳率100%
ADC0809是8位A/D,满量程是255.
那么 5V/255=2.9V/X X=2.9*255/5
ADC0809数字电压表数码管显示出错,求解释!
ADC0809数字电压表数码管显示出错,求解释!

设计图如下

源代码如下

//---------------------------------------

//---------------------------------------

#include "reg51.h"

sbit ST_ALE=P3^0;//START and ALE both connect to P3.0

sbit EOC=P3^1;//EOC connect to P3.1

sbit OE=P3^2;//OE conect to P3.2

sbit CLK=P3^3;//CLK connect to P3.3

unsigned char CHANNEL;//AD channel variable

unsigned char LED[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

//common cathode LED code

unsigned char CHECK[4]={0xFE,0xFD,0xFB,0xF7};//choose LED channel

void delay(unsigned char time)

{

unsigned char i,j;

for(i=time;i>0;i--)

for(j=250;j>0;j--)

;

}

void display()

{

unsigned long temp;

unsigned char DATA,digit[4];

unsigned int k,l;

DATA=P1;//save AD data

temp=DATA;//the temporary variable

temp=temp*1000/51;//AD formula:D=A*5/255

digit[0]=temp/1000;//the thousands place

digit[1]=temp%1000/100; //the hundreds place

digit[2]=temp%1000%100/10; //the tens place

digit[3]=temp%1000%100%10;//the ones place

DATA=P2; //save P2

for(k=0;k<1000;k++)

{

/*lighten each LED and equal the below for loop

P1=LED[digit[0]]+0x80;

P2_4=0;

P2_4=1;

P1=LED[digit[1]];

P2_5=0;

P2_5=1;

P1=LED[digit[2]];

P2_6=0;

P2_6=1;

P1=LED[digit[3]];

P2_7=0;

P2_7=1;

*>

for(l=0;l<4;l++)

{

P2=P2|0x0F;//avoid LED residual

P0=LED[digit[l]]+0x80*(l==0);//LED code

P2=DATA&CHECK[l];//choose LED channel

}

}

P2=DATA;//restore P2

}

void main()

{

ST_ALE=0;//START and ALE default

OE=0;//OE default

TMOD=0x02;//T0 operate in mode 2

EA=1;//all interrupt enable

ET0=1;//T0 interrupt enable

TR0=1;//T0 run

while(1)

{

ST_ALE=1;//lock the AD channel address

ST_ALE=0;//AD run

while(EOC==0);//wait until AD over

OE=1;//enable to transmit AD data

display();//view the AD result and diaplay LED

}

}

void T1_TIME() interrupt 1 using 0

{

CLK=~CLK;//CLK 500 kHz

}

设计已经硬件实现了,但是数码管显示和滑动变阻器的数着完全不符,求大神帮助啊!


就是那么容易1年前1
lojhxx2004 共回答了16个问题 | 采纳率100%
有可能是 0808 的数据线 D7~D0,次序,全接反了.
在我的百度空间里面,有一个正确的电路,可供参考.
另外,你的电压表,没有接地.
这样一来,它显示的数值,并非是 ADC 的电压.
并行ADC0809采集电压,转换公式?
并行ADC0809采集电压,转换公式?
4位数码管显示.求个转换公式.*(我主要想知道他处理完的数据是几位数,) 假如说是5位数.那我 disp(0,getdata/10000); //第零位显示万位、 可是我不知道他处理完的值是几位...数码管显示取值就不知道怎么计算了.
nba9659651年前1
生力 共回答了22个问题 | 采纳率95.5%
哥们啊.你想啊.8位的分辨率啊.那不就是2^8吗.255最高了- -
A/D 模数转换器如ADC0809 ,当它应用于数字电压表 能将多大的直流模拟电压转换为数字电压.
aa护奶1年前1
rose1414 共回答了19个问题 | 采纳率94.7%
嗯,不是这样说.ADC0809转换是将0~VCC(5V)电源电压范围内的模拟输入电压阶梯转换成00000000到11111111的8位数字输出的.它的分辨率是256级.要将更大的直流模拟电压可以通过线性降压,以最小值对应0,最大值对应5V,缩小到电源电压最大范围.
某梯度炉温度变化为1~16000C,经温度变送器输出电压为1~5V,再经ADC0809转换,ADC0809的输入范围为0
某梯度炉温度变化为1~16000C,经温度变送器输出电压为1~5V,再经ADC0809转换,ADC0809的输入范围为0~5V,试计算当采样数值为8AH时,所对应的梯度炉温度是多少?
beipan16681年前1
skcao2580 共回答了14个问题 | 采纳率92.9%
参考
某热处理炉温度变化范围为50~2350度,经温度变送器变换为1~5V电压送至ADC0809,ADC0809的输入范围为0
某热处理炉温度变化范围为50~2350度,经温度变送器变换为1~5V电压送至ADC0809,ADC0809的输入范围为0~5V.某时刻采样得到转换结果为5AH,问此时炉内温度是多少度?写出中间过程.
很急,求解答!!!稍微详细点!!!
fate5201年前1
lw7201512 共回答了25个问题 | 采纳率76%
由;16进制可知:5AH=5*16+10=100
而八位模数转换的取值为:0-255,则有:5AH对应的电压为:U=5*100/256=1.95 v
则:其对应的温度:T=50+(2350-50)1.95/5=50+898.43=948.43 °C
利用ADC0809和STC89C52制作个测量DC0~30V的数字电压表,
屋顶上的小懒猫1年前0
共回答了个问题 | 采纳率
ADC0809的参考电压最大是多少?参考电压可以是6V吗?
ADC0809的参考电压最大是多少?参考电压可以是6V吗?
#include
sbit c=P1^0;
sbit b=P1^1;
sbit a=P1^2;
sbit st=P3^0;
sbit eoc=P3^1;
sbit oe=P3^2;
sbit clk=P3^3;
sbit t=P2^0;
sbit f=P2^1;
sbit p=P2^2;
timer0() interrupt 1 using 1
{clk=!clk;
TH0=(65536-2)/256;
TL0=(65536-2)%256;
}
delay()
{int x,y;
for(x=0;x
伊伊的博客1年前1
冷寻若 共回答了18个问题 | 采纳率88.9%
最高5V