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

ADC0809问题

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

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

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

×
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int

sfr p0=0x80;
sfr p1=0x90;
sfr p2=0xa0;
sfr p3=0xb0;

sbit st=p2^7;
sbit oe=p2^5;
sbit eoc=p2^6;
sbit p0_7=p0^7;

sbit ge=p2^0;
sbit shi=p2^1;
sbit bai=p2^2; //定义

uint a_data1,a_data2,a_data3,temp;
uchar getdata;

uchar codetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delaynms(uint x);//nms延时程序
void zh_display();//先转换后显示程序
void adcst_0809();//adc启动程序


void main()
{
p1=0x00;
while(1)
{
adcst_0809();//调adc启动程序
zh_display();//调显示程序
}
}

//adc启动程序
void adcst_0809()
{ oe=0;
st=0;
st=1;
st=0;
delaynms(1);
while(!eoc);
oe=1;
getdata=p1;
oe=0;

}

void delaynms(uint x)
{ uchar i;
while(x-->0)
{ for(i=0;i<125;i++)
{;}
}
}

//数据处理并送显程序
void zh_display()

{ uchar a;

temp=getdata*151;
temp=temp/128;
a_data1=temp/100;
a_data2=temp%100/10; //数据处理
a_data3=temp%10;

for(a=0;a<10;a++)
{
bai=0;
shi=1;
ge=1;
p0=codetab[a_data1]; //点亮百位
delaynms(2);
p0=0x00;

bai=1;
shi=0;
ge=1;
p0=codetab[a_data2];//点亮十位
p0_7=0;//点亮第二位的小数点
delaynms(2);
p0=0x00;

bai=1;
shi=1;
ge=0;
p0=codetab[a_data3];//点亮个位
delaynms(2);

}
}




我是用的ADC0809与单片机AT89C51对5伏电压进行采样,并放大6倍后送显,我采用的通0,只对一路信号进行采样,所以我把ADC0809的三个通道选择直接接地,但在实验时,只显示00.0,我在通道0接的是3V电池,照理说应该有显示呀,但还是显示00.0,我采用的是74LS74进行分频,而且也用示波器没了分频后的频率是500KHZ,也没有错,但就是不知道问题在哪儿,我怀疑是程序有问题,我的通道选择是直接接地的,我只对一路信号进行采样,不知道这样有没有问题。由于第一次做这个,真诚的请教高手
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2024-11-29 12:39 , Processed in 0.049922 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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