標(biāo)題: 幫我做一下標(biāo)注 或幫我解讀一下程序 謝謝 [打印本頁]

作者: fly丶丶飛    時間: 2017-1-11 20:59
標(biāo)題: 幫我做一下標(biāo)注 或幫我解讀一下程序 謝謝
無線溫度采集器主控程序   能幫我解讀一下嗎   謝謝
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

sbit key1=P3^6;

uchar count=0,second=0,minut=0,hour=12;
unsigned char count1,count_flag=0;
unsigned char key_mode;

bit key_bit=0,caiji=1;
int set_A_num_H=380,set_A_num_L=100,set_B_num_H=380, set_B_num_L=100;

int tempA=0,tempB=0,tempC=0,tempD=0;
uchar caidan_flag=0;

#include"1602.h"
#include"wuxian.h"


//按鍵掃面
void scant()
  {
                  if(!key1){

                                        while(!key1);                               
                                        if(key_mode<2){                                                 //key_mode 3
                                                        key_mode++;                                                       
                                        }
                                        else{                                                                                               
                                                        key_mode=0;
                                                        Lcd_ShowSring(2,0,"                ");
                                                        caiji=1;
                                                //        caidan_flag=0;                                               
                                        }
                                        switch(key_mode){
                                                        case 0: Lcd_ShowSring(1,15,"0");TxBuf[0]=0;TxBuf[4]=0;tempA=0;tempB=0;break;
                                                /////////////==========AB通道========////////////////////////////////
                                                        case 1: Lcd_ShowSring(1,15,"1"); caiji=0; TxBuf[0]=1;break;
                                                        case 2: Lcd_ShowSring(1,15,"2"); caiji=0; TxBuf[4]=2;break;
                                                //        case 3: Lcd_ShowSring(1,15,"3"); caiji=0; TxBuf[8]=3;caidan_flag=1;Lcd_ShowSring(2,0,"                ");break;
                                               
                                                        default :break;
                                        }
               
                      }

  }

void display()
  {
                   if(key_mode==1){

                         if(caidan_flag==0){
                                write_com(0xc0);
                                write_date('A');
                                write_date(':');
                                Lcd_Display_Three_point_Date(2,2,tempA);
                                write_date('C');
                                }
                         }
                        else if(key_mode==2){

                         if(caidan_flag==0){
                                write_com(0xc0);
                                write_date('A');
                                write_date(':');
                                Lcd_Display_Three_point_Date(2,2,tempA);
                                write_date('C');
                               write_com(0xc8);
                                write_date('B');
                                write_date(':');
                                Lcd_Display_Three_point_Date(2,10,tempB);
                                write_date('C');
                          }
                        }
                /*   else if(key_mode==3){
                        
                         if(caidan_flag==1){
                                   write_com(0xc0);
                                write_date('C');
                                write_date(':');
                                Lcd_Display_Three_point_Date(2,2,tempC);
                                write_date('C');           
                             }

                   } */
  }

/******************主函數(shù)************************/
void main()
{

  lcd1602_init(); //液晶初始化                                                                               
  init_NRF24L01();// 初始化24L01
  Lcd_ShowSring(1,0,"R-temperature");
  Lcd_ShowSring(1,15,"0");
    TxBuf[0]=0;
    TxBuf[4]=0;
    while(1)
    {   
                   if(caiji==0){
                                nRF24L01_RxPacket(TxBuf);  //使用這個語句之后 主函數(shù)掃面的進(jìn)程慢到大概1s一輪
                                if(TxBuf[0]==1)        {  //接收到1說明是模塊a發(fā)送回來的數(shù)據(jù)
       
                                                tempA=TxBuf[1]*100+TxBuf[2]*10+TxBuf[3];                                                 
                                                TxBuf[0]=0;           //一次傳送完畢之后清除等待下一次的數(shù)據(jù)
                                }
          
                          else if(TxBuf[4]==2){  //接收到2說明是模塊b發(fā)送回來的數(shù)據(jù)

                                               tempB=TxBuf[5]*100+TxBuf[6]*10+TxBuf[7];                                                 
                                                TxBuf[4]=0;                //一次傳送完畢之后清除等待下一次的數(shù)據(jù)       
                               
                                }       
                                else{
                                        tempA=0;tempB=0;
                                        TxBuf[0]=0;
                                        TxBuf[4]=0;       
                                }            

                        }                                                                                       
                               
                                  scant();          //按鍵掃描                          
                                  display();         //顯示


          }                
}






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1