找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7330|回复: 4
收起左侧

STM32环境检测系统设计 可显示PM2.5及温湿度

  [复制链接]
ID:198608 发表于 2017-10-20 21:51 | 显示全部楼层 |阅读模式
采用dht11温湿度传感器,和pm2.5传感器,用tft液晶屏显示
做出来的实物图:
IMG_20171019_091028.jpg IMG_20171019_091024.jpg

单片机源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "lcd.h"
  4. #include "usart.h"
  5. #include "led.h"
  6. #include "dht11.h"
  7. #include "ds18b20.h"
  8. #include "adc.h"
  9.   unsigned char hjjc[72*6] =              // ASCII
  10. {                                                                                
  11. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE7,0x1F,0x58,0x98,0x00,0x40,0x80,0x00,0x40,0x40,0x00,
  12. 0x40,0x40,0x00,0xC0,0xE3,0x00,0x78,0x60,0x00,0x40,0x50,0x02,0x40,0x50,0x04,0x40,0x48,0x08,0x40,0x46,0x10,0xC0,0x43,0x30,
  13. 0x30,0x42,0x20,0x8C,0x41,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"环",0*/

  14. …………限于本文篇幅 余下代码请从51黑下载附件…………

  15. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xC4,0x00,0x86,0x01,0x86,0x01,0x86,0x01,0x80,0x01,0xC0,0x00,
  16. 0x70,0x00,0x80,0x01,0x00,0x01,0x00,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x84,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"3",4*/
  17. };
  18. //ALIENTEK战舰STM32开发板实验13
  19. //TFTLCD显示实验  
  20. //技术支持:www.openedv.com
  21. //广州市星翼电子科技有限公司
  22. extern u8 Res;
  23. extern u8 Res3;
  24. int tcont,cont=5;;
  25. extern __IO u16 ADC_ConvertedValue[4];
  26. void numstring(uint16_t Xpos, uint16_t Ypos, u32 mun,u16 BL)
  27. {

  28.                  shuzi24(Xpos, Ypos, &ASCII_Table24N[0+48*(mun/10)], BL);
  29.                  shuzi24(Xpos+12*1, Ypos, &ASCII_Table24N[0+48*(mun%10)], BL);
  30.                                                            
  31. }
  32.   void numstrings(uint16_t Xpos, uint16_t Ypos, u32 mun,u16 BL)
  33. {

  34.                  shuzi24(Xpos, Ypos, &ASCII_Table24N[0+48*(mun/1000)], BL);
  35.                  shuzi24(Xpos+12*1, Ypos, &ASCII_Table24N[0+48*(mun%1000/100)], BL);
  36.                  shuzi24(Xpos+12*2, Ypos, &ASCII_Table24N[0+48*(mun%1000%100/10)], BL);
  37.                  shuzi24(Xpos+12*3, Ypos, &ASCII_Table24N[0+48*(mun%1000%100%10)], BL);
  38.                                                            
  39. }
  40.    void zifuchar(uint16_t Xpos, uint16_t Ypos, u8 * mun,u16 BL)
  41. {

  42.                  shuzi24(Xpos,      Ypos, mun, BL);
  43.                  shuzi24(Xpos+12*1, Ypos, mun+48*1, BL);
  44.                  shuzi24(Xpos+12*2, Ypos, mun+48*2, BL);
  45.                  shuzi24(Xpos+12*3, Ypos, mun+48*3, BL);
  46.                  shuzi24(Xpos+12*4, Ypos, mun+48*4, BL);
  47.                                                            
  48. }

  49. int main(void)
  50. {                     
  51.         u8 humidity;   
  52.         u8 temp;

  53.         short temperature;
  54.         delay_init();                     //延时函数初始化         
  55.         NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  56.         uart_init(115200);                 //串口初始化为9600
  57.         LED_Init();
  58.         Adc_Init(); //adc8
  59. //        USART3_Config();
  60.         LCD_Init();
  61.         POINT_COLOR=RED;
  62.         wordstring(40, 10,hjjc,6,RED);        //环境监测系统        
  63.         wordstring(10, 150,wd,2,RED);        //温度
  64.         wordstring(10, 180,sd,2,RED);        // 湿度

  65.         while(DS18B20_Init());
  66.           while(1)
  67.         {
  68.                 temperature=DS18B20_Get_Temp();
  69.                                 if(temperature<0)
  70.                         {
  71.                         shuzi24(55, 150, fh, RED);                                //显示负号
  72.                                 temperature=-temperature;                                        //转为正数
  73.                         }else shuzi24(55, 150, qk, RED);                        //去掉负号
  74. //               
  75.                 DHT11_Read_Data(&temp,&humidity);                //读取温湿度值
  76.                 numstring(70, 150,temperature/10,BRED);                //显示温度         
  77.                 wordstring(100, 150,wd+72*2,1,RED);        //温度符号
  78.                 numstring(70, 180,humidity,BRED);                        //显示湿度
  79.                 shuzi24(100, 180,sdfh,RED);shuzi24(112, 180,sdfh+48,RED);shuzi24(124, 180,sdfh+96,RED);          //湿度符号        
  80.                 zifuchar(5, 210,PM,RED);
  81.                 shuzi24(70, 210,&ASCII_Table24N[0+48*(Get_Adc_Average(1)/620)], BRED);         //毫克量
  82.                 zifuchar(90, 210,MG,RED);
  83.                 delay_ms(200);                                                                          
  84.         }
  85. }
  86.            /*代码说明*/
  87. /*main函数扫描按键显示放电预设值
  88. * 定时器3 放电定时
  89. * 定时器4 ad扫描
  90. */
复制代码

所有资料51hei提供下载:
课设环境监测系统.rar (368.26 KB, 下载次数: 324)
回复

使用道具 举报

ID:295259 发表于 2020-4-18 18:14 | 显示全部楼层
这里面两个工程
回复

使用道具 举报

ID:368810 发表于 2020-5-14 09:05 | 显示全部楼层
有仿真吗
回复

使用道具 举报

ID:819841 发表于 2020-11-10 16:23 来自手机 | 显示全部楼层
粉尘传感器的引脚怎么连接啊?
回复

使用道具 举报

ID:819841 发表于 2020-11-10 16:23 来自手机 | 显示全部楼层
sdsdsdsdsdsd 发表于 2020-4-18 18:14
这里面两个工程

打开lcd的程序
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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