单片机DA和AD高手进
由于引脚不够,我想把ADC0808和DAC0832的数据口都接在单片机P0口,然后让它们先后工作,这样来实现P0口既能当AD的输出又能做DA的输入,但是这样做却发现ADC...
由于引脚不够,我想把ADC0808和DAC0832的数据口都接在单片机P0口,然后让它们先后工作,这样来实现P0口既能当AD的输出又能做DA的输入,但是这样做却发现ADC0832不能工作了,如果屏蔽掉DA程序的话AD可以工作,谁知道怎么回事?附程序:
void ad_work()
{
START=0;
OE=0;
START=1;
START=0;
while(EOC)
OE=1;
workdata=P0;
OE=0;
}
void da_work()
{
_CS = 1;
_WR1 = 1;
_CS = 0;
P0= 128;
_WR1 = 0;
_CS = 1;
} 展开
void ad_work()
{
START=0;
OE=0;
START=1;
START=0;
while(EOC)
OE=1;
workdata=P0;
OE=0;
}
void da_work()
{
_CS = 1;
_WR1 = 1;
_CS = 0;
P0= 128;
_WR1 = 0;
_CS = 1;
} 展开
4个回答
展开全部
P0= 128;
workdata=P0;
你的da程序这里 给了128 再取到的值 在ad里就运行不对了
workdata=P0;
你的da程序这里 给了128 再取到的值 在ad里就运行不对了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个芯片共用一个端口,肯定只能有一个能工作
你试试,单独DA或AD能工作不?
可能是外部芯片对P0口的影响。
你试试,单独DA或AD能工作不?
可能是外部芯片对P0口的影响。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用74HC244扩展才行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询