单片机引脚电平问题
我的单片机是89C51型,做AD转换时在仿真器上,各个P口都是正常的,当我接上ADC0809时,接EOC的引脚P口自动至0,在将这个P口至一后也没有用,改P口后也没有用,...
我的单片机是89C51型,做AD转换时在仿真器上,各个P口都是正常的,当我接上ADC0809时,接EOC的引脚P口自动至0,在将这个P口至一后也没有用,改P口后也没有用,请各位大虾帮忙...
展开
展开全部
这很明显,你对ADC0809的转换时序问题没有搞清楚。先仔细看看ADC的资料再说。ADC0809是“大中华”的AD转换IC,单片机驱动不难的。前提是控制时序不要出错。你的问题可以就在这个上。
好好看看这个:
ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。下面说明各引脚功能。
IN0~IN7:8路模拟量输入端。
2-1~2-8:8位数字量输出端。
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路
ALE:地址锁存允许信号,输入,高电平有效。
START: A/D转换启动信号,输入,高电平有效。
EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。
最关键的,我提醒你,它的时钟信号频率很关键。不知道你频率这一块的处理是怎么处理的,我可以给你推荐一个成功的案例,这是我以前做过的一个案例:
我以前做的是:ADC0809的CLK时钟输入信号线的频率直接由单片机的ALE口输出,因ADC内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。在正常工作时,AT89C51的ALE端输出为地址锁存允许信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。当单片机访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器的锁存控制信号。即使不访问外部锁存器,ALE端仍有正脉冲信号输出,此频率为时钟振荡频率fosc的1/6。
因此单片机的时钟振荡频率采用6MHZ,经ALE输出为1MHZ,在经外围74LS74两分频后得到500KHZ,把此信号连接到ADC的clock端,提供ADC工作时所需的频率。但这要求你的单片机晶振必须是6MH的,如果你采用12MHZ,那么,外部你就得进行四分频后得到ADC的CLK时钟频率,这就看你怎么处理,凡事也只能具体情况具体分析。
如查想要程序代码和电路图,你可以访问:http://hi.baidu.com/hjiannew/
但愿对你有帮助!!!!!!!!!!!
好好看看这个:
ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。下面说明各引脚功能。
IN0~IN7:8路模拟量输入端。
2-1~2-8:8位数字量输出端。
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路
ALE:地址锁存允许信号,输入,高电平有效。
START: A/D转换启动信号,输入,高电平有效。
EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。
最关键的,我提醒你,它的时钟信号频率很关键。不知道你频率这一块的处理是怎么处理的,我可以给你推荐一个成功的案例,这是我以前做过的一个案例:
我以前做的是:ADC0809的CLK时钟输入信号线的频率直接由单片机的ALE口输出,因ADC内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。在正常工作时,AT89C51的ALE端输出为地址锁存允许信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。当单片机访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器的锁存控制信号。即使不访问外部锁存器,ALE端仍有正脉冲信号输出,此频率为时钟振荡频率fosc的1/6。
因此单片机的时钟振荡频率采用6MHZ,经ALE输出为1MHZ,在经外围74LS74两分频后得到500KHZ,把此信号连接到ADC的clock端,提供ADC工作时所需的频率。但这要求你的单片机晶振必须是6MH的,如果你采用12MHZ,那么,外部你就得进行四分频后得到ADC的CLK时钟频率,这就看你怎么处理,凡事也只能具体情况具体分析。
如查想要程序代码和电路图,你可以访问:http://hi.baidu.com/hjiannew/
但愿对你有帮助!!!!!!!!!!!
展开全部
EOC的引脚,是ADC0809的输出引脚,它的电平并不受单片机的控制。
ADC0809的AD转换完成后,EOC在ADC0809控制下,才会置一;
数字量被取走后,EOC在ADC0809控制下,会清0。
ADC0809的AD转换完成后,EOC在ADC0809控制下,才会置一;
数字量被取走后,EOC在ADC0809控制下,会清0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
http://zhidao.baidu.com/question/146955512.html
我估计,是没转换成功。看一下,上面的介绍。
是不是adc0809的CLK时钟信号给的不好?
我用的是51的ALE口。
我估计,是没转换成功。看一下,上面的介绍。
是不是adc0809的CLK时钟信号给的不好?
我用的是51的ALE口。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为单片机是双向的IO,也就是他的电平取决于它所接的电路,如果它后面的电路应该是低电平,那么它就是低电平的,
你说的EOC是0809的转换完成标志,你刚接上时是没有转换的状态,所以是低电平,所以单片机的那个引脚也就变成了低电平!
你说的EOC是0809的转换完成标志,你刚接上时是没有转换的状态,所以是低电平,所以单片机的那个引脚也就变成了低电平!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当转换完成时eoc才会置1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是ad转换没成功,eoc没响应,可以试试加下延时。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询