標題: STM32環(huán)境檢測系統(tǒng)設計 可顯示PM2.5及溫濕度 [打印本頁]

作者: 梁光陽    時間: 2017-10-20 21:51
標題: STM32環(huán)境檢測系統(tǒng)設計 可顯示PM2.5及溫濕度
采用dht11溫濕度傳感器,和pm2.5傳感器,用tft液晶屏顯示
做出來的實物圖:


單片機源程序如下:
  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,/*"環(huán)",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戰(zhàn)艦STM32開發(fā)板實驗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位搶占優(yōu)先級,2位響應優(yōu)先級
  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);        //環(huán)境監(jiān)測系統(tǒng)        
  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提供下載:
課設環(huán)境監(jiān)測系統(tǒng).rar (368.26 KB, 下載次數: 324)



作者: sdsdsdsdsdsd    時間: 2020-4-18 18:14
這里面兩個工程

作者: zyy1100    時間: 2020-5-14 09:05
有仿真嗎
作者: 愛羅8    時間: 2020-11-10 16:23
粉塵傳感器的引腳怎么連接?
作者: 愛羅8    時間: 2020-11-10 16:23
sdsdsdsdsdsd 發(fā)表于 2020-4-18 18:14
這里面兩個工程

打開lcd的程序




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