找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2642|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

求講解或者畫一下這個的工作流程圖給我,NRF905的發(fā)射段

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:700033 發(fā)表于 2020-3-7 21:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
3黑幣
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

sbit DQ1=P2^0;       //傳感器A定義使用單片機P20端口
sbit DQ2=P2^1;       //傳感器B定義使用單片機P21端口
sbit DQ3=P2^2;       //傳感器C定義使用單片機P22端口
sbit DQ4=P2^3;       //傳感器D定義使用單片機P23端口                                               
sbit DQ5=P2^4;       //傳感器E定義使用單片機P24端口       
                                                                                                                                                               
unsigned char car_num=0;        //車位數(shù)值                                         
unsigned char Set_car_H=5;                 //設(shè)置車數(shù)數(shù)值
signed char   s_car_num=0;        //剩余車位數(shù)值             

uchar flag1,flag2;          //設(shè)置 2 個標志位
uchar flag3,flag4;          //設(shè)置 2 個標志位
uchar flag5,flag6;          //設(shè)置 2 個標志位
uchar flag7,flag8;          //設(shè)置 2 個標志位
uchar flag9,flag10;          //設(shè)置 2 個標志位

uchar N1=0,N11=0;                //有車或者沒有標志
uchar N2=0,N22=0;
uchar N3=0,N33=0;
uchar N4=0,N44=0;
uchar N5=0,N55=0;

#include"nrf905.c"

void  jishu();
void  campare_display();

void delay_us(uint z)                //延時
{
        uint a,b;
        for(a=z;z>0;z--)
        for(b=110;b>0;b--);       
}
///////////////////////////////////////////////////////////////                          
/******************主函數(shù)************************/
void main()
{

           uchar num;
           nRF905Init();   //NRF905的初始化
       Config905();           //配置無線模塊NRF905
           TxBuf[0]=1;          //模塊
            while(1)
            {                                                                                                                                                                                                                                                     
                                jishu();  //車位統(tǒng)計
                        campare_display();           //車位號識別
                                                                 
                            TxBuf[1]=car_num/10;//十位
                          TxBuf[2]=car_num%10;//個位                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                            num++;
                                if(num==2){                 //模塊
                                                num=0;
                                                  TX(); //發(fā)送
                                }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                        
                  }                
}
void campare_display()        //比較
{

                   if((N1==1)||(N2==1)||(N3==1)||(N4==1)||(N5==1)) {
                               if(N1==1){
                                                   TxBuf[3]='A';
                                                  
                                          }
                                else{
                                                   TxBuf[3]=0;       
                                        }
                                        if(N2==1){

                                                        TxBuf[4]='B';
                                                       
                                        } else{

                                                        TxBuf[4]=0;       
                                        }
                                        if(N3==1){
       
                                                        TxBuf[5]='C';       
                                        } else{

                                                        TxBuf[5]=0;       
                                        }
                                        if(N5==1){

                                                        TxBuf[6]='D';               
                                        } else{

                                                        TxBuf[6]=0;
                                        }
                                        if(N4==1){
       
                                                        TxBuf[7]='E';               
                                        } else{

                                                        TxBuf[7]=0;
                                        }                                       
                          }         else{
//                                                Lcd_ShowSring(1,0,"     ");
                                       
                                }
                       
       

               
}

//****************************************************
void  jishu()          //統(tǒng)計車位數(shù)函數(shù)
{

        if(DQ1==0)                                  //車位1
        {
                delay_us(5);         //類似于去抖
                if(DQ1==0)
                {
                                flag1=1; //標志位flag1
                       
                }
        }
               
             if(flag1==1)//  flag1=1 傳感器A 紅外對管檢測到 說明有車
                  {
                                    delay_us(5);
                                        if(N1==0){                                               
                                          car_num++;         //車位數(shù)值加1
                                          N1=1;
                                         }                                          //
                                        flag1=0;          //清標志位
                                        flag2=1;          //啟動標志
                                        N11=0;
                               
                 }
                 if(DQ1==1&&flag2==1) {                 //否則檢測不到車

                          if(N11==0){                                               
                                                 car_num--;                //車位數(shù)值減1
                                                 TxBuf[3]=0;
                                                  N11=1;
                                         }
                     
                               N1=0;
                        }
////////////////////////////////////////////////////////////////////////////////////////////////////////////                               
        if(DQ2==0)                                 //車位2
        {
                delay_us(5);         //類似于去抖
                if(DQ2==0)
                {
                                flag3=1; ////標志位flag3
                       
                }

        }
               
             if(flag3==1)//  傳感器B  紅外對管檢測到 說明有車
                  {
                                    delay_us(5);
                                        if(N2==0){                                               
                                          car_num++;                   //車位數(shù)值加1
                                          N2=1;
                                         }                                         
                                        flag3=0;          //清空標志位
                                        flag4=1;           //啟動標志
                                        N22=0;
                               
                 }
                 if(DQ2==1&&flag4==1) {                 //否則檢測不到車

                          if(N22==0){                                               
                                                 car_num--;                         //車位數(shù)值減1
                                                 TxBuf[4]=0;
                                                  N22=1;
                                         }
                     
                               N2=0;
                        }       
/////////////////////////////////////////////////////////////////////////////////////////////////////////
    if(DQ3==0)                                //車位3
        {
                delay_us(5);         //類似于去抖
                if(DQ3==0)
                {
                                flag5=1; ////標志位flag5
                       
                }

        }
               
             if(flag5==1)//  傳感器C        紅外對管檢測到 說明有車
                  {
                                    delay_us(5);
                                        if(N3==0){                                               
                                          car_num++;                   //車位數(shù)值加1
                                          N3=1;
                                         }                                          //
                                        flag5=0;          //清空標志位
                                        flag6=1;          //啟動標志
                                        N33=0;
                               
                 }
                 if(DQ3==1&&flag6==1) {                  //否則檢測不到車

                          if(N33==0){                                               
                                                 car_num--;
                                                 TxBuf[5]=0;        //車位數(shù)值減1
                                                  N33=1;
                                         }
                     
                               N3=0;
                        }       
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    if(DQ4==0)                                                //車位4
        {
                delay_us(5);         //類似于去抖
                if(DQ4==0)
                {
                                flag7=1; ////標志位flag7
                       
                }

        }
               
             if(flag7==1)//  傳感器D   紅外對管檢測到 說明有車
                  {
                                    delay_us(5);
                                        if(N4==0){                                               
                                          car_num++;                  //車位數(shù)值加1
                                          N4=1;
                                         }                                          //
                                        flag7=0;          //清空標志位
                                        flag8=1;           //啟動標志
                                        N44=0;
                               
                 }
                 if(DQ4==1&&flag8==1) {                 //否則檢測不到車

                          if(N44==0){                                               
                                                 car_num--;                //車位數(shù)值減1
                                                 TxBuf[7]=0;
                                                  N44=1;
                                         }
                     
                               N4=0;
                        }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
         if(DQ5==0)                                        //車位5
        {
                delay_us(5);         //類似于去抖
                if(DQ5==0)
                {
                                flag9=1; //
                       
                }

        }               
             if(flag9==1)//  傳感器E   紅外對管檢測到 說明有車
                  {
                                    delay_us(5);
                                        if(N5==0){                                               
                                          car_num++;
                                          N5=1;
                                         }                                          //
                                        flag9=0;          //清空標志位
                                        flag10=1;           //啟動標志
                                        N55=0;
                               
                 }
                 if(DQ5==1&&flag10==1) {  //否則檢測不到車

                          if(N55==0){                                               
                                                 car_num--;        //車位數(shù)值減1
                                                 TxBuf[6]=0;
                                                  N55=1;
                                         }
                     
                               N5=0;
                        }         
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表