您的位置 首页 动态

三通道12位模数转化MAX1241串口传输单片机C程序

今天完成数据传输硬件程序,才用8位传输,位数太多就拆开,分高8位和低8位,电路图在这里:http:www51heicommcu2273html程序可以参

今日完结数据传输硬件程序,才用8位传输,位数太多就拆开,分高8位和低8位,电路图在这里:http://www.51hei.com/mcu/2273.html程序能够参阅运用:

#include
#define uchar unsigned char
#define uint unsigned int
#define High 1
#define Low0
int t1,t2,t3,t4,t5,t6,t7,t11,t12,t21,t22,t31,t32;
int t;
sbit cs=P2^7;
sbit sclk=P2^6;
sbit dout=P2^5;

sbit cs2=P2^4;
sbit sclk2=P2^3;
sbit dout2=P2^2;

sbit cs3=P2^1;
sbit sclk3=P2^0;
sbit dout3=P0^7;

uint dushuju() //界说为能够回来的参数
{
uint voltage_temp=0;
uchar ucloop=12;
cs=High;
sclk=Low;
cs=Low;
while(dout==0);//EOC信号为高表明转化完毕
sclk=High;
sclk=Low;
while(ucloop–)
{
sclk=High;//上升沿数据安稳并读出
voltage_temp<<=1;
if(dout==1)
voltage_temp+=1;
sclk=Low;
}
cs=High;
return voltage_temp; //回来数据
}
uint dushuju2() //界说为能够回来的参数
{
uint voltage_temp2=0;
uchar ucloop=12;
cs2=High;
sclk2=Low;
cs2=Low;
while(dout2==0);//EOC信号为高表明转化完毕
sclk2=High;
sclk2=Low;
while(ucloop–)
{
sclk2=High;//上升沿数据安稳并读出
voltage_temp2<<=1;
if(dout2==1)
voltage_temp2+=1;
sclk2=Low;
}
cs2=High;
return voltage_temp2; //回来数据
}
uint dushuju3() //界说为能够回来的参数
{
uint voltage_temp3=0;
uchar ucloop=12;
cs3=High;
sclk3=Low;
cs3=Low;
while(dout3==0);//EOC信号为高表明转化完毕
sclk3=High;
sclk3=Low;
while(ucloop–)
{
sclk3=High;//上升沿数据安稳并读出
voltage_temp3<<=1;
if(dout3==1)
voltage_temp3+=1;
sclk3=Low;
}
cs3=High;
return voltage_temp3; //回来数据
}

uint dushuju4() //界说为能够回来的参数
{
uint voltage_temp4=0;
uchar ucloop=12;
cs=High;
sclk=Low;
cs=Low;
while(dout==0);//EOC信号为高表明转化完毕
sclk=High;
sclk=Low;
while(ucloop–)
{
sclk=High;//上升沿数据安稳并读出
voltage_temp4<<=1;
if(dout==1)
voltage_temp4+=1;
sclk=Low;
}
cs=High;
return voltage_temp4; //回来数据
}
void shuju(void)
{
t4=dushuju();
t5=dushuju2();
t6=dushuju3();
t12=t4%256;//将数据转化为高8位和低8位
t11=t4/256%256;
t22=t5%256;
t21=t5/256%256;
t32=t6%256;
t31=t6/256%256;
}
void shujul(void)
{
t7=dushuju4();
}
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=1;
while(!TI);
TI=0;
SBUF=t11;
while(!TI);
TI=0;
SBUF=t12;
while(!TI);
TI=0;

SBUF=2;
while(!TI);
TI=0;
SBUF=t21;
while(!TI);
TI=0;
SBUF=t22;
while(!TI);
TI=0;

SBUF=3;
while(!TI);
TI=0;
SBUF=t31;
while(!TI);
TI=0;
SBUF=t32;
while(!TI);
TI=0;
}

void main(void)
{
shuju();
csh();
loop:
shujul();
if ((t7-t4)>=10)
{
shuju();
csh();
goto loop ;
}
else
goto loop ;

}

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部