您的位置 首页 应用

51单片机驱动ADC0808电路图C51及汇编程序

这两天刚刚完成了一个用C编写的程序,这是我第一个用C语言编写的程序,并且调试成功。第一个C程序,值得纪念,也值得以后参考。

这两天刚刚完成了一个用C编写的程序,这是我第一个用C言语编写的程序,而且调试成功。

第一个C程序,值得纪念,也值得今后参阅。

本程序的功用是:

1.ADC0808转化功用;

   2.数据16进制显现;

3.串行通讯数据。


C51程序:工程文件下载:http://www.51hei.com/f/0808_c.rar

#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit START=P3^6; //发动转化
sbit OE=P3^5; //输出答应
sbit EOC=P3^7; //转化完毕
sbit WC=P3^4; //通道挑选
sbit WB=P3^3; //通道挑选
sbit WA=P3^2; //通道挑选
uchar data led[12];
signed data data1;
signed data data2;
signed data data3;
signed data data4;
signed data data5;
signed data data6;
signed data data7;
uchar code tv[]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb};
uchar code dc[]={0xC0, //”0″
0xF9, //”1″
0xA4, //”2″
0xB0, //”3″
0x99, //”4″
0x92, //”5″
0x82, //”6″
0xF8, //”7″
0x80, //”8″
0x90, //”9″
0x88, //”A”
0x83, //”B”
0xC6, //”C”
0xA1, //”D”
0x86, //”E”
0x8E, };//”F”};/十六进制显现方法
void delay(void) //延时程序
{
uint i;
for(i=0;i<10;i++);
}
void ledxianshi(void) //显现模块
{
uchar k,i;
led[0]=data1%16; //编码1个位
led[1]=data1/16%16; //编码1十位

led[2]=data2%16; //数据1个位
led[3]=data2/16%16; //数据1十位

led[4]=data3%16; //编码2个位
led[5]=data3/16%16; //编码2十位

led[6]=data4%16; //数据2个位
led[7]=data4/16%16; //数据2十位

led[8]=data5%16; //编码3个位
led[9]=data5/16%16; //编码3十位

led[10]=data6%16; //数据3个位
led[11]=data6/16%16; //数据3十位

for(k=0;k<12;k++)
{
P2=tv[k]; //位选用
i=led[k];
P1=dc[i]; //段码数显现
delay();
}
}

void csh(void)
{
SM0=0;
SM1=1;
REN=1;
TI=0;
RI=0;
PCON=0;
TH1=0xF3;
TL1=0XF3;
TMOD=0X20;
EA=1;
ET1=0;
ES=1;
TR1=1;

TI=0;
SBUF=data1;
while(!TI);
TI=0;
SBUF=data2;
while(!TI);
TI=0;
SBUF=data3;
while(!TI);
TI=0;
SBUF=data4;
while(!TI);
TI=0;
SBUF=data5;
while(!TI);
TI=0;
SBUF=data6;
while(!TI);
TI=0;
}
void ad1(void)
{
WA=0; //通道1
WB=0;
WC=0;
START=1;
START=0; //发动转化
while(EOC==0); //转化完毕信号,为0则阐明转化完毕
OE=1; //输出答应信号,为真,能够输出
data7=P0; //P0口的测量值送到TVDATE
OE=0; //关输出答应
}
void ad2(void)
{
WA=1; //通道1
WB=0;
WC=0;
START=1;
START=0; //发动转化
while(EOC==0); //转化完毕信号,为0则阐明转化完毕
OE=1; //输出答应信号,为真,能够输出
data4=P0; //P0口的测量值送到TVDATE
OE=0; //关输出答应
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/318581.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部