标题: STM32F103系列,库函数,MQ135空气质量检测+DHT11温湿度检测+OLED汉字显示 [打印本页]

作者: 杨腾龙    时间: 2020-4-16 22:28
标题: STM32F103系列,库函数,MQ135空气质量检测+DHT11温湿度检测+OLED汉字显示
MQ135采用模拟信号,OLED显示采样频率,接PA0或PA3均可;DHT11接PC0或PC13均可,128*64的OLED 做了几个简单的汉字库,自己可以往里面添加24*24,12*12均可

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "adc.h"
  6. //#include "tsensor.h"
  7. #include "oled.h"
  8. #include "dht11.h"
  9. #include "key.h"
  10. #include "dht12.h"
  11. #include "text.h"
  12. #include "stdio.h"
  13. int main(void)
  14. {
  15.          u8 t=0;
  16. //         u8 k=0;            
  17.          u8 temperature;              
  18.          u8 humidity;
  19.          u8 temperature1;              
  20.          u8 humidity1;
  21.          u16 adc1;
  22.          u16 adc2;
  23.    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         
  24.          delay_init();       
  25.          KEY_Init();                    
  26.          uart_init(9600);                 //串口初始化为9600
  27.          LED_Init();                                  //初始化与LED连接的硬件接口
  28.          OLED_Init();
  29.          Adc_Init();
  30.          OLED_Show_hanzi12(0,0,0);        //温
  31.    OLED_Show_hanzi12(12,0,3);        //度
  32.          OLED_ShowString(24,0,"1:",12);
  33.          OLED_Show_hanzi12(48,0,8);         //℃
  34.          OLED_Show_hanzi12(0,12,2);//浓
  35.          OLED_Show_hanzi12(12,12,3);//度
  36.          OLED_ShowString(24,12,"1:",12);
  37.          OLED_Show_hanzi12(70,0,1);//湿
  38.          OLED_Show_hanzi12(82,0,3);        //度
  39.          OLED_ShowString(94,0,"1:",12);
  40.          OLED_ShowString(118,0,"%",12);
  41.    OLED_Show_hanzi12(0,40,0);        //温
  42.    OLED_Show_hanzi12(12,40,3);        //度
  43.          OLED_ShowString(24,40,"2:",12);
  44.          OLED_Show_hanzi12(48,40,8);         //℃
  45.          OLED_Show_hanzi12(0,52,2);//浓
  46.          OLED_Show_hanzi12(12,52,3);//度
  47.          OLED_ShowString(24,52,"2:",12);
  48.          OLED_Show_hanzi12(70,40,1);//湿
  49.          OLED_Show_hanzi12(82,40,3);        //度
  50.          OLED_ShowString(94,40,"2:",12);
  51.          OLED_ShowString(118,40,"%",12);
  52.          OLED_Refresh_Gram();//更新显示到OLED         
  53.          t=' ';  
  54.          DHT11_Init();
  55.          DHT12_Init();//DHT11初始化       
  56.         while(1)
  57.         {
  58.                 OLED_Refresh_Gram();
  59.                 t++;
  60.                 adc1=Get_Adc(0X00);
  61.                 adc2=Get_Adc(0X03);       
  62.                 OLED_ShowNum(36,12,adc1,4,12);//显示ADC的值
  63.                 OLED_ShowNum(36,52,adc2,4,12);//显示ADC的值                       
  64.                 DHT11_Read_Data(&temperature,&humidity);        //读取温湿度值                                            
  65.                 OLED_ShowNum(36,40,temperature,2,12);        //显示温度                             
  66.                 OLED_ShowNum(106,40,humidity,2,12);       
  67.                 DHT12_Read_Data(&temperature1,&humidity1);        //读取温湿度值                                            
  68.                 OLED_ShowNum(36,0,temperature1,2,12);        //显示温度                             
  69.                 OLED_ShowNum(106,0,humidity1,2,12);                                //显示湿度                         
  70.                  delay_ms(250);
  71.         }                                                                                    
  72. }       
复制代码

所有程序51hei提供下载:
双D+汉+浓度.7z (214.08 KB, 下载次数: 296)



作者: 爱骞骞    时间: 2020-4-17 16:24
请问里面有仿真图吗?
作者: nishis    时间: 2020-4-18 07:53
请问有采集dht11数据并显示程序吗
作者: 杨腾龙    时间: 2020-4-18 17:52
nishis 发表于 2020-4-18 07:53
请问有采集dht11数据并显示程序吗

看我第一个帖子
作者: 杨腾龙    时间: 2020-4-18 17:52
爱骞骞 发表于 2020-4-17 16:24
请问里面有仿真图吗?

没有,比较简单就没弄仿真
作者: hj1119    时间: 2020-12-18 15:44
请问可以用stm32f103c8t6最小系统做吗





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1