久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 單片機(jī)雙機(jī)通訊源代碼 [打印本頁]

作者: txyxyxy    時間: 2016-7-19 22:42
標(biāo)題: 單片機(jī)雙機(jī)通訊源代碼

#include <reg52.h>
#define uchar unsigned char   //用uchar代替unsigned char
#define uint unsigned int     //用unitdaiti unsigned int
sbit P20=P2^0;        //LED輸出管腳
uchar Receive_Data[6],cNumber=0,cFlag=0;  //串口接收數(shù)據(jù)存放
uchar zhentouxulie;
uchar send0;
uchar send1;
uchar position;
uchar yiwei;
uchar biaozhi;
bit zhentou;
bit shuchu;
uchar PPM[41];         //存放一幀的高低電平信息 6個時隙的幀頭+32個時隙的信息
uchar wz;
uint bit1;
uint bit0;                                //位置控制位


void DelayMs(unsigned int Delay_MS)
{
uint iNumber,iValue;
for(iNumber=0;iNumber<Delay_MS;iNumber++)
{
     iValue=107;
     while(iValue--);
}
}

void Init_UART()                //串口初始化
{
    SCON=0x50;      //SCON:串行口工作方式1, 8-bit UART,允許串行接收位(REN=1)
    TMOD=0x21;      //TMOD:定時器1,方式2,8位自動重裝方式
    PCON=0x80;      //SMOD=1;(將串口傳送的波特率加倍)
    TH1=0xfA;       //Baud:9600  fosc=11.0592MHz
        TL1=0xfA;  
        TH0=(65536-500)/256;//賦初值定時
    TL0=(65536-500)%256;//定時500us     
        ET0=1;//開定時器0中斷  
        TR0=1;//啟動定時器0
        TR1=1;          //啟動定時器/計數(shù)器1運(yùn)行
        ES=1;      //開串口中斷
        EA=1;   //開總中斷
        P20=0;
        send0=0;
        send1=0;
}

void tiaozhi()
{
                if((send0==1)&&(send1==1))
                {
                        if(wz<40)
                        {
                                if((wz==0)||(wz==7))       
                                {
                                        PPM[wz]=0;
                                        wz++;
                                }
                                else if((wz>0)&&(wz<7))
                                {
                                        PPM[wz]=1;
                                        wz++;
                                }
                                else if((wz>7)&&(wz<24))  //開始跳入數(shù)據(jù)發(fā)送
                                {         
                                                if(Receive_Data[0]&0x01) //1發(fā)送
                                                {
                                                        PPM[wz]=1;
                                                        PPM[wz+1]=0;
                                                }
                                                else                        //0發(fā)送
                                                {
                                                        PPM[wz]=0;
                                                        PPM[wz+1]=1;       
                                                }
                                        wz=wz+2;
                                        Receive_Data[0]=Receive_Data[1]>>1;               
                                }

                                else if((wz>23)&&(wz<40))  //開始跳入數(shù)據(jù)發(fā)送
                                {         
                                                if(Receive_Data[1]&0x01) //1發(fā)送
                                                {
                                                        PPM[wz]=1;
                                                        PPM[wz+1]=0;
                                                }
                                                else                        //0發(fā)送
                                                {
                                                        PPM[wz]=0;
                                                        PPM[wz+1]=1;       
                                                }
                                        wz=wz+2;
                                        Receive_Data[1]=Receive_Data[1]>>1;               
                                }
                        }
                        else if(wz==40)
                        {
                                PPM[40]=0;//輸出一個保護(hù)電平時隙
                                wz=0;
                                send0=0;
                                send1=1;
                                position=0;
                        }
           }
               
}




void main()
{
DelayMs(50);    //穩(wěn)定系統(tǒng)
Init_UART(); //初始化串口
while(1)
{
        tiaozhi();
        if((send0==0)&&(send1==0))
          {
                send0=1;
                send1=1;          
                Receive_Data[1]=0xff;
                Receive_Data[0]=0x00;
                wz=0;//編碼位置
                DelayMs(1000);
          }
}
}


void timer0() interrupt 1
{  
        TR0=0;//賦初值時,關(guān)閉定時器
           TH0=(65536-500)/256;//賦初值定時 高八位
        TL0=(65536-500)%256;//定時500us  低八位
        TR0=1;//打開定時器
                    
          if((send1==1)&&(send0==0))  //編碼完成
          {
                  if(position<41)
                {
                  if(PPM[position]==1)
                  {
                          P20=0;
                  }
                  else
                  {
                          P20=1;
                  }
                 }
                 else
                 {
                         send1=0;//發(fā)送完成
                        send0=0;
                 }
                 position++;
         }
         else
                 P20=0;//其余點亮燈


}
void UART_Routine() interrupt 4
{
   if(RI==1)//RI為接受中斷標(biāo)志,可能是發(fā)送產(chǎn)生的中斷
{
          ES=0;      //關(guān)串口中斷
          Receive_Data[cNumber++]=SBUF;//將接受數(shù)據(jù)放入預(yù)置數(shù)組
          if(cNumber==2)
          {
                send0=1;
                send1=1;          
                cNumber=0;
                wz=0;//編碼位置
          }
          RI=0;//接受中斷標(biāo)志軟件清零
          ES=1;      //開串口中斷
}
}




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 综合网在线 | 午夜999 | 五月在线视频 | 黄色录像免费观看 | av小说在线观看 | 四虎影视av | 午夜av福利 | 成人动漫免费观看 | 天天射天天 | 欧美日韩国产在线 | 四虎av | аⅴ资源新版在线天堂 | 日韩av资源 | 51调教丨国产调教视频 | 成人激情综合网 | 精品一区二区三区免费 | 在线观看不卡av | 日本特级黄色片 | 在线观看二区 | 欧美日韩在线一区二区 | 欧美国产日韩一区二区 | 国产日韩欧美日韩大片 | 亚洲欧美日本在线 | 免费视频国产 | 九九热在线视频观看 | 日本一级淫片色费放 | 日韩一级黄 | 欧美777| 久久一区| 久久爱综合 | 精品国产一区二区三区久久久蜜月 | 四虎av | 国产又黄又猛 | 欧美在线免费 | 国产精品一区二区三区四区 | 亚洲精品久久久久久久久 | 中文字幕一区在线观看 | 一级a毛片 | 四虎影视最新地址 | 亚洲三级视频 | 精品久久网站 |