欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

三通道12位模數轉換MAX1241串口傳輸單片機C程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年11月12日   【字體:

今天完成數據傳輸硬件程序,才用8位傳輸,位數太多就拆開,分高8位和低8位,電路圖在這里:http://www.raoushi.com/mcu/2273.html 程序可以參考使用:

#include<reg51.h>
#define uchar unsigned char
#define uint  unsigned int
#define High 1
#define Low 0
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 ;

 }

關閉窗口

相關文章