找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

帮我看下ADC0834通道选择错在哪里?请高手指点

[复制链接]
admin 发表于 2012-9-2 18:09:05 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我在用C51做一个adc0834模数转换的模拟实验,Protues(89c52+max7219+ADC0834+8seg)发现如题问题,百思不得其解,请高手指教。
下面是我写的ADC0834的子函数,当我无论怎样改变实参,选择不同的通道时,第1、2通道现象总是相同,现象如下,当第二通道输入为0V时,调节第一通道,电压在0~5V变化时,输出显示0~255,好似正常;可是当第二通道为5V电压时,调节第一通道时,输出总是0;此时,若第一通道输入电压为5V时,调节第二通道电压由5V~0V,输出显示为0~255,正好与第一通道反相。
然而,实参为第3、4通道时,还是上述的想象,而调节第3、4模拟输入,输出一点反应都没有。实参里,我送的是单通道方式的参数啊!请问错在哪里?请高手指点。

/*******************
ADC0834的子函数说明:
adclk ADC0834时钟
adcs ADC0834片选
adio ADC0834输入输出
chanel 通道选择形参(1:0x04;2:0x06;3:0x05;4:0x07)
ad_val 读取的数据
******************************/
unsigned char adc0834_change(uchar chanel)
{
uchar temp;
adclk=0;
adcs=0;
temp=chanel; //选择输入通道
temp|=0x08; //附加起始位
for(i=0; i<4; i++) //写入通道数据
{
adio=(temp&0x08);
adclk=1;
adclk=0;
temp<<=1;
}
adclk=1;
adclk=0;
adio=1;
for(ad_val=0, i=0; i<8; i++) //读取转换的数据0~255
{
ad_val=(ad_val<<1)|adio;
adclk=1;
adclk=0;
}
delay(10);//延时约9个时钟
adcs=1;
adclk=0;
adio=1;
return ad_val;
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-29 04:49 , Processed in 0.058844 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表