adc0809与单片机连接图(附程序)
程序
#include《reg51.h》
#include《intrins.h》
sbit CLOCK=P2^7;
sbit OE=P2^6;
sbit START=P2^5;
unsigned char _data;
void init()
{
SM0=0; //SM01组合代表8位uart方式,波特率可变
SM1=1;
REN=1; //允许串行接受
TH1=0xF3; //波特率2400,误差0.12%
TL1=0XF3;
TMOD=0X20; //定时器1工作于8位自动重载模式, 用于产生波特率
EA=1; //总开关中断方式
ET1=0; //定时器1 不允许中断
ES=1; //允许串口中断
TR1=1; //计时器启动控制位
START=0;
OE=0;
}
void wait(unsigned char time) //产生时钟
{
unsigned char i,j;
for(i=0;i《time;i++)
for(j=0;j《125;j++)
{CLOCK=0;_nop_();_nop_();_nop_();_nop_();_nop_();
CLOCK=1;_nop_();_nop_();_nop_();_nop_();_nop_();}
}
void get()//获取数据
{
START=1;wait(10);
START=0;wait(10);
wait(10);
OE=1;
_data=P0;
OE=0;
START=0;
}
void show()//发送到串口与led灯
{
P1=_data;
TI=0;
SBUF=_data;
while(!TI);
TI=0;
}
void main()
{
unsigned char i;
int j=0;
init();//初始化
while(1)
{
P2=0;
j=0;
for(i=0;i《10;i++)//测10次后显示
{get();//获得数据
j+=_data;
}
_data=j/10;
show();//发送数据
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !