永发信息网

单片机 AD转换问题

答案:2  悬赏:70  手机版
解决时间 2021-01-28 11:52
  • 提问者网友:不爱我么
  • 2021-01-27 22:14
P1口输出的全是高电平,这是为什么,但是将读进的数据在另外一个IO口显示都是高电平,ADC0804用8个小灯确认了是工作了我用STC89C52和ADC0804。就是我ADC0804接的是P2口,我在P2口另外接了8个小灯,证明ADC0804是工作的,但是我将P2口的数据在P1口输出

t1--);reg52;
}
void inti()
{
csad=0;
wrad=1;
rdad=1;
P2=0xff;
rdad=0;0.h>
sbit csad=P3^5 ;
sbit wrad=P3^6 ;
sbit rdad=P3^7 ;
unsigned char AD_DATA;
void delay(unsigned int z)
{
unsigned int t1,y ;
wrad=1;
for(t1=z;t1>

}
void start()
{
wrad=0;
delay(10);
for(y=110;y>0;y--)#include <
P1=AD_DATA;
delay(100);
AD_DATA=P2;
rdad=1;
}
void main()
{
inti();
while(1)
{
start()
最佳答案
  • 五星知识达人网友:怙棘
  • 2021-01-27 23:41
你要测量下单片机从P2读入的数据是多少,送出P1的数据又是多少。
最好上传程序看看,应该是细节的问题没注意到。
全部回答
  • 1楼网友:风格不统一
  • 2021-01-27 23:53
1,什么是ad转换? a是模拟信号的意思,d是数字信号的意思,ad转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号,例如把电压值转化为数字信号。 2,为什么要ad转换? 单片机(以及其他处理器)只能处理数字信号,当单片机想要获取电路上某一点的电压值时,就得用到ad转换了,如果你直接把单片机的引脚接到电路这个点上,单片机只知道这个点的电压是低电平还是高电平,又怎么能得到他的电压值呢?例如数字式的万用表,它测量电压时,先有一个ad转换电路,把电压值转换成一个数值,然后把这个值送个单片机(当然万用表里的用的处理芯片不是单片机),单片机经过计算处理后,再把这电压值显示到显示到屏幕上。 不过现在有一些比较强的单片机,其内部已经集成了ad转换器,不需要你再外接ad转换芯片。 3,8位16位的ad转换芯片是什么意思? 8位,16位就代表了ad转换芯片的转换分辨率,数字越大,分辨率越高,同时也反映了它的精度,数字越大,精度相对也越高。8位算是最低了,有些单片机里集成的ad转换器一般是10位的。12位和16位的芯片价格就比较贵了。 4,分辨率? 举个简单的例子,8位芯片只能转换最小到0.01v的电压,而12位的芯片却能转换最小到0.001v的电压,如果一个电压为3.359v,8位芯片转出来后的数值是3.35v,12位芯片转换出来后是3.359v,精度比8位就高一个档次了。(注:这里数值不是正确的数值,举例用,切勿实际使用) 5,采样? 采样是ad转换的速度性能指标,通俗的说就是每秒里能采样多少次,采样次数越高芯片性能越好。如果对采样不理解,也可以用另一种方式理解,就是一个ad转换芯把电压值转换成数字值这个过程所需要的时间,时间越短越好。 6,精度? 精度是ad芯片的一个重要参数,表示采集到的数据和真实值之间的相差的程度。例如单片机转换出来的结果是0.3v,而实际可能是0.31v,这样就相差了0.01v。这种误差是不可避免无法消除的。这和在第3点中提到的位数有关,位数越高,这样的误差越小。 7,这些知识点在“数字电路基础”一书中有详细解释,说明你数字电路没学好,自己好好加油了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯