關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > MD600G的Internet無線傳感器網(wǎng)絡(luò)設(shè)計

        MD600G的Internet無線傳感器網(wǎng)絡(luò)設(shè)計

        作者: 時間:2010-11-25 來源:網(wǎng)絡(luò) 收藏

        2.3 節(jié)點溫度軟件設(shè)計

          以下為溫度節(jié)點的溫度部分代碼:

        #include Mini51B.h//Mini51板頭文件
        #include LCD1602.h//液晶模塊頭文件
        #include ds18b20.h//溫度頭文件
        #include stdio.h//C標(biāo)準(zhǔn)函數(shù)庫,系統(tǒng)集成
        #include DS1302.h
        #define uchar unsigned char
        uchar n,temp;
        uchar a[6]=000000; //串口字符串
        SYSTEMTIME RTC;
        void main(void) {
          float V; //記錄溫度浮點型
          uchar str_buff[20];//字符緩沖區(qū)
          SCON=0x50;//串口工作在方式1,波特率9600,//晶振為22.1184 MHz
          PCON=0;
          TMOD=0x20;//定時器1工作在方式2
          TH1=0xfa;
          TL1=0xfa;
          IE=0x91;//1001 0001,EA=1,ES=1,EX0=1
          IT0=1;//外部中斷0為低電平觸發(fā)方式
          TR1=1;//定時器T1開始計數(shù)
          ds18b20_init();//初始化溫度時鐘測試
          Initial_DS1302();//初始化時鐘時間設(shè)定,執(zhí)行一次后刪除該部分
          Write1302(DS1302_MINUTE, 0x11);
          Write1302(DS1302_HOUR,0x08);
          Write1302(DS1302_DAY,0x15);
          Write1302(DS1302_MONTH,0x04);
          Write1302(DS1302_YEAR,0x08);
          lcd1602_init();
          lcd_put_xyns(2,1,14,www.stuelab.cn);
          delay_ms(1000);
          while(1) {
            for(n=0;n10;n++) { //10*0.5 s=5 s數(shù)據(jù)發(fā)送周期
              V=ReadTemperature()/100.0; //溫度部分
              sprintf(str_buff,%2.2f,V); //格式轉(zhuǎn)換
              lcd_put_xyns(1,1,11,Temperatur=);
              lcd_put_xyns(12,1,5,str_buff);
              seg7_disp(V*100);
              sprintf(a,%2.2f,V);//送串口字符串
              DS1302_GetTime(RTC);//時間部分
              DateToStr(RTC);
              TimeToStr(RTC);
              lcd_put_xyns(1,2,8,RTC.DateString);
              lcd_put_xyns(9,2,8,RTC.TimeString);
              delay_ms(500);
            }
            for(n=0;n6;n++) {
              SBUF=a[n];
              while(!TI);
              TI=0;
            }
          }
        }
        void external0() interrupt 0{//外部中斷0發(fā)送數(shù)據(jù)
          for(n=0;n6;n++) {
            SBUF=a[n];
            while(!TI);
            TI=0;
          }
          delay_ms(1100);
        }
        void receving() interrupt 4 {//串口中斷程序接收數(shù)據(jù)
          temp=SBUF;
          RI=0;
        }

        結(jié)語

          經(jīng)過實際運行和測試證明,系統(tǒng)穩(wěn)定可靠,系統(tǒng)誤差達到了規(guī)定的要求。本系統(tǒng)雖然是以無線溫度傳感器節(jié)點為例,但同樣也適合其他各種類型的節(jié)點,因此可以推廣到的其他應(yīng)用領(lǐng)域或行業(yè),如電力抄表、配電自動化、路燈監(jiān)控、道路交通等。


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 本溪市| 德惠市| 东城区| 井陉县| 白城市| 彭山县| 泗水县| 页游| 扬中市| 望城县| 泽州县| 新干县| 迭部县| 花莲县| 黑龙江省| 太和县| 白银市| 元江| 海城市| 伊金霍洛旗| 上思县| 饶平县| 铜梁县| 龙泉市| 勃利县| 呼图壁县| 阳高县| 深水埗区| 纳雍县| 禹州市| 视频| 建阳市| 出国| 金寨县| 琼结县| 灵石县| 丁青县| 翁牛特旗| 连州市| 汉源县| 新巴尔虎右旗|