热带鱼工作室 发表于 2013-3-26 08:54:29

ADC0809仿真时OE口输入1后为什么是高阻态的

如硬件图,用Proteus仿真时,明明OE口输入1了,管脚却是灰色的,说明是高阻态

程序如下:(desplay是用数码管显示AD转换的数,老是显示0,所以我怀疑是OE的问题,注意程序倒数第七行,已经把0E置1了)
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit oe=P0^0;
sbit eoc=P0^1;
sbit start=P0^2;
uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uchar temp;

void delay(uint i)
{       
        while(i--);
}

void deplay(uchar a)
{        P3=0x01;
        P2=table;
        delay(50);
        P3=0x02;
        P2=table;
        delay(50);       
}

void main(void)
{        while(1)
{        uint t=500;
        P1=0xff;
        oe=0;
        start=0;
        start=1;
        start=0;   //给start一个正脉冲启动AD转换
        while(0==eoc);       
        oe=1;
        temp=P1;
        while(1)                                        //说明已经运行到这步了,且oe没成功置1;
        {        deplay(temp);
        }
}
}

yklstudent 发表于 2013-3-26 11:08:24

p0口的上拉电阻呢

barryliu 发表于 2013-3-26 11:11:27

0809。。。。这是哪朝哪代的东西?楼主刚从古玩店回来?

热带鱼工作室 发表于 2013-3-26 16:37:23

barryliu 发表于 2013-3-26 11:11 static/image/common/back.gif
0809。。。。这是哪朝哪代的东西?楼主刚从古玩店回来?

在学校第一次做AD转换,看到adc0809网上资料多,所以就选这个,没想到用proteus仿真出现很多问题。
我后来在程序P1赋给temp后把oe置0,oe就没有出现高阻态了,但还有问题:现在ADC转换的数值全为0,我是用直流2V电压作为模拟输入的如图,可不可帮我看一下是不是信号输入有问题。

热带鱼工作室 发表于 2013-3-26 16:48:15

yklstudent 发表于 2013-3-26 11:08 static/image/common/back.gif
p0口的上拉电阻呢

后来我改了电路,OE口没问题了,但是现在ADC0809输出全是0,能不能帮我看一下是不是仿真哪里错了

热带鱼工作室 发表于 2013-3-26 17:34:13

{:dizzy:}{:dizzy:}{:dizzy:}{:dizzy:}{:dizzy:}{:dizzy:}

热带鱼工作室 发表于 2013-3-26 18:29:56

{:dizzy:}{:dizzy:}{:dizzy:}{:dizzy:}{:dizzy:}{:dizzy:}

qq1136029879 发表于 2013-3-26 23:44:18

用ADC0808试试,貌似09金豪没有vhdl语言

barryliu 发表于 2013-3-26 23:58:15

热带鱼工作室 发表于 2013-3-26 16:37 static/image/common/back.gif
在学校第一次做AD转换,看到adc0809网上资料多,所以就选这个,没想到用proteus仿真出现很多问题。
我后 ...

如果是应付考试,努力研究一下,问题不大的。
如果是为了学习,建议别搞这古董,我最后一次接触这玩意是20年前的事了(1994年),你想想它有多老了吧。

yklstudent 发表于 2013-3-27 11:27:02

转换时钟有吗????
页: [1]
查看完整版本: ADC0809仿真时OE口输入1后为什么是高阻态的