標(biāo)題: 基于msp430f5529的溫濕度程序 [打印本頁]

作者: 幻夢空華    時間: 2018-10-21 04:29
標(biāo)題: 基于msp430f5529的溫濕度程序
一次實驗項目做的工程,用MSP430F5529為主控,用WiFi模塊傳輸數(shù)據(jù),用DHT11模塊檢測溫濕度,同時還檢測光照情況和毒氣檢測功能。

單片機源程序如下:
  1. /*
  2. * light.c
  3. *
  4. *  Created on: 2018年9月27日
  5. *      Author: Wade
  6. *        call:13594729060
  7. */
  8. #include <msp430f5529.h>
  9. #include "HAL_Dogs102x6.h"
  10. #include "NumberShow.h"
  11. #include "delay.h"
  12. #include "DHT11.h"
  13. #include "light.h"
  14. #include "gas.h"
  15. #include "led.h"
  16. #include "wifi.h"

  17. int LedStatus;

  18. void Menu(){
  19.                 Dogs102x6_stringDraw(0, 0, "Smart Home System", DOGS102x6_DRAW_NORMAL);
  20.                 Dogs102x6_stringDraw(2, 0, "Tem:", DOGS102x6_DRAW_NORMAL);
  21.                 Dogs102x6_stringDraw(2, 46, "C", DOGS102x6_DRAW_NORMAL);
  22.             Dogs102x6_stringDraw(3, 0, "Hum:", DOGS102x6_DRAW_NORMAL);
  23.             Dogs102x6_stringDraw(3, 46, "%", DOGS102x6_DRAW_NORMAL);
  24.             Dogs102x6_stringDraw(4, 0, "Lig:", DOGS102x6_DRAW_NORMAL);
  25.             Dogs102x6_stringDraw(5, 0, "Gas:", DOGS102x6_DRAW_NORMAL);
  26.             Dogs102x6_stringDraw(6, 0, "LED:", DOGS102x6_DRAW_NORMAL);
  27. }

  28. void main( void )
  29. {

  30.   WDTCTL=WDTPW+WDTHOLD;
  31.   UCSCTL4 |= SELS__DCOCLK ;

  32.   Dogs102x6_init();
  33.   Dogs102x6_clearScreen();                     //清屏

  34.   Dogs102x6_init();//初始化LCD
  35.   Dogs102x6_backlightInit();
  36.   Dogs102x6_setContrast(15); //設(shè)置對比度
  37.   Dogs102x6_setBacklight(11);//設(shè)置背光度

  38.   WifiConfig();  //wifi初始化(含串口)

  39.   while (1)
  40.   {
  41.                 Dogs102x6_clearScreen();//清屏
  42.                 Menu();                                        //重畫菜單界面
  43.                 DHT11( );                                //測量溫濕度數(shù)據(jù),并顯示在LCD上
  44.                 light();                                //測量光照情況,并把結(jié)果顯示在LCD上
  45.                 gas();                                        //測量煙霧情況,并把結(jié)果顯示在LCD上
  46.                 led();                                        //檢測LED狀態(tài),并把結(jié)果顯示在LCD上
  47.                 delay_ms(2000);                        //延時2s,確保溫濕度測量時間間隔
  48.   }
  49. }


  50. // Echo back RXed character, confirm TX buffer is ready first
  51. #pragma vector=USCI_A1_VECTOR
  52. __interrupt void USCI_A1_ISR(void)
  53. {
  54.   switch(__even_in_range(UCA1IV,4))
  55.   {
  56.   case 0:break;                             // Vector 0 - no interrupt
  57.   case 2:                                   // Vector 2 - RXIFG
  58.             if('1' == UCA1RXBUF)
  59.             {
  60.                     P1DIR |= 0x01;
  61.                     P1OUT |= 0x01;                                        //點亮LED燈
  62.                     LedStatus = 1;                                        //LED的FLAG,作為在LCD上顯示狀態(tài)的依據(jù)
  63.             }
  64.             else if('0' == UCA1RXBUF)
  65.             {
  66.                     P1DIR |= 0x01;
  67.                     P1OUT &= 0xFE;                                        //熄滅LED燈
  68.                     LedStatus = 0;                                        //LED的FLAG,作為在LCD上顯示狀態(tài)的依據(jù)
  69.             }
  70.             else if('2' == UCA1RXBUF)
  71.             {
  72.                     WifiSendMessage();                                //WiFi將測量的數(shù)據(jù)發(fā)送到客戶端
  73.             }
  74.     break;
  75.   case 4:break;                             // Vector 4 - TXIFG
  76.   default: break;
  77.   }
  78. }

復(fù)制代碼

所有資料51hei提供下載:
基于msp430f5529的溫濕度測量程序.rar (1.24 MB, 下載次數(shù): 83)



作者: kurtv    時間: 2019-4-6 22:48
請問你毒氣傳感器,光照,WiFi用的是什么模塊?
作者: kurtv    時間: 2019-4-7 11:35
請問你用的毒氣傳感器和顯示屏以及光照傳感器分別是什么?




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