#include <reg52.h>
#define uchar unsigned char
sbit ST=P1^0;
sbit EOC=P1^1;
sbit OE=P1^2;
sbit clk=P1^3;
sbit PPA=P1^5;
sbit PPB=P1^6;
sbit PPC=P1^7;
uchar dd,AD_DATA;
void delay(unsigned time)
{
unsigned int x,y;
for(x=time;x>0;x--)
for(y=112;y>0;y--);
}
unsigned char AD(void)
{
PPA=0;PPB=0;PPC=0;
delay(5);
ST=1;
delay(5);
ST=0;
while(EOC==0)
OE=1;
AD_DATA=P0;
OE=0;
return(AD_DATA);
}
void main()
{
EA=1;
ET0=1;
TMOD=0x02;
TH0=0xfd;
TL0=0xfd;
TR0=1;
ST=0;
OE=0;
while(1)
{
dd=AD();
P2=dd;
}
}
void ff0() interrupt 1
{
clk=!clk;
}
本电路简单,这里就不列出来了,本程序是基于51单片机和ad0809芯片。
adc0809是款比较常用的模数转换芯片,8位并行输入,市场 价格6元左右。51单片机8元。其中P1.5、p1.6,p1.7 为输入控制端,若输入信号接在0809的in1上,则P1.5、p1.6,p1.7为0.相应数值可以用8个led灯在单片机的io口中反映出来.电路解法灵活,可以完成单片机A/D 转换实验。
文章评论(0条评论)
登录后参与讨论