社区导航

 

搜索
查看: 332|回复: 1

[分享] 基于msp430f5529的温湿度程序

[复制链接]

110

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2019-7-16 07:51 | 显示全部楼层 |阅读模式

实验项目做的工程,用MSP430F5529为主控,用WiFi模块传输数据,用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.  
  18. int LedStatus;
  19.  
  20. void Menu(){
  21.                 Dogs102x6_stringDraw(0, 0, "Smart Home System", DOGS102x6_DRAW_NORMAL);
  22.                 Dogs102x6_stringDraw(2, 0, "Tem:", DOGS102x6_DRAW_NORMAL);
  23.                 Dogs102x6_stringDraw(2, 46, "C", DOGS102x6_DRAW_NORMAL);
  24.             Dogs102x6_stringDraw(3, 0, "Hum:", DOGS102x6_DRAW_NORMAL);
  25.             Dogs102x6_stringDraw(3, 46, "%", DOGS102x6_DRAW_NORMAL);
  26.             Dogs102x6_stringDraw(4, 0, "Lig:", DOGS102x6_DRAW_NORMAL);
  27.             Dogs102x6_stringDraw(5, 0, "Gas:", DOGS102x6_DRAW_NORMAL);
  28.             Dogs102x6_stringDraw(6, 0, "LED:", DOGS102x6_DRAW_NORMAL);
  29. }
  30.  
  31. void main( void )
  32. {
  33.  
  34.   WDTCTL=WDTPW+WDTHOLD;
  35.   UCSCTL4 |= SELS__DCOCLK ;
  36.  
  37.   Dogs102x6_init();
  38.   Dogs102x6_clearScreen();                     //清屏
  39.  
  40.   Dogs102x6_init();//初始化LCD
  41.   Dogs102x6_backlightInit();
  42.   Dogs102x6_setContrast(15); //设置对比度
  43.   Dogs102x6_setBacklight(11);//设置背光度
  44.  
  45.   WifiConfig();  //wifi初始化(含串口)
  46.  
  47.   while (1)
  48.   {
  49.                 Dogs102x6_clearScreen();//清屏
  50.                 Menu();                                        //重画菜单界面
  51.                 DHT11( );                                //测量温湿度数据,并显示在LCD上
  52.                 light();                                //测量光照情况,并把结果显示在LCD上
  53.                 gas();                                        //测量烟雾情况,并把结果显示在LCD上
  54.                 led();                                        //检测LED状态,并把结果显示在LCD上
  55.                 delay_ms(2000);                        //延时2s,确保温湿度测量时间间隔
  56.   }
  57. }
  58.  
  59.  
  60. // Echo back RXed character, confirm TX buffer is ready first
  61. #pragma vector=USCI_A1_VECTOR
  62. __interrupt void USCI_A1_ISR(void)
  63. {
  64.   switch(__even_in_range(UCA1IV,4))
  65.   {
  66.   case 0:break;                             // Vector 0 - no interrupt
  67.   case 2:                                   // Vector 2 - RXIFG
  68.             if('1' == UCA1RXBUF)
  69.             {
  70.                     P1DIR |= 0x01;
  71.                     P1OUT |= 0x01;                                        //点亮LED灯
  72.                     LedStatus = 1;                                        //LED的FLAG,作为在LCD上显示状态的依据
  73.             }
  74.             else if('0' == UCA1RXBUF)
  75.             {
  76.                     P1DIR |= 0x01;
  77.                     P1OUT &= 0xFE;                                        //熄灭LED灯
  78.                     LedStatus = 0;                                        //LED的FLAG,作为在LCD上显示状态的依据
  79.             }
  80.             else if('2' == UCA1RXBUF)
  81.             {
  82.                     WifiSendMessage();                                //WiFi将测量的数据发送到客户端
  83.             }
  84.     break;
  85.   case 4:break;                             // Vector 4 - TXIFG
  86.   default: break;
  87.   }
  88. }
来源:EEWorld 微控制器 MCU板块,转载请附上链接


回复

使用道具 举报

1354

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2019-7-16 08:34 | 显示全部楼层

分享多些程序就好



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /3 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-8-21 03:06 , Processed in 0.100966 second(s), 16 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表