關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > MD600G的Internet無線傳感器網絡設計

        MD600G的Internet無線傳感器網絡設計

        作者: 時間:2010-11-25 來源:網絡 收藏

        2.3 節點溫度軟件設計

          以下為溫度節點的溫度部分代碼:

        #include Mini51B.h//Mini51板頭文件
        #include LCD1602.h//液晶模塊頭文件
        #include ds18b20.h//溫度頭文件
        #include stdio.h//C標準函數庫,系統集成
        #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];//字符緩沖區
          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為低電平觸發方式
          TR1=1;//定時器T1開始計數
          ds18b20_init();//初始化溫度時鐘測試
          Initial_DS1302();//初始化時鐘時間設定,執行一次后刪除該部分
          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數據發送周期
              V=ReadTemperature()/100.0; //溫度部分
              sprintf(str_buff,%2.2f,V); //格式轉換
              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發送數據
          for(n=0;n6;n++) {
            SBUF=a[n];
            while(!TI);
            TI=0;
          }
          delay_ms(1100);
        }
        void receving() interrupt 4 {//串口中斷程序接收數據
          temp=SBUF;
          RI=0;
        }

        結語

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


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 固安县| 广水市| 潮州市| 许昌市| 密云县| 恩平市| 雅江县| 衡阳市| 青龙| 鹰潭市| 南乐县| 响水县| 静乐县| 康乐县| 长寿区| 宁德市| 沿河| 西平县| 读书| 齐河县| 青铜峡市| 鸡泽县| 濮阳县| 新龙县| 米泉市| 天津市| 南京市| 紫金县| 沙湾县| 博乐市| 塔城市| 白银市| 阜新市| 三河市| 宁河县| 子洲县| 饶平县| 高淳县| 临夏县| 大埔县| 杭锦后旗|