找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1691|回复: 0
收起左侧

smog在STM32液晶屏显示程序 MQ-2采集。ADC转换

[复制链接]
ID:748132 发表于 2020-5-10 09:49 | 显示全部楼层 |阅读模式
实现实时显示氧气浓度。MQ-2采集。ADC转换。

单片机源程序如下:
  1. #include "stm32f10x.h"
  2. #include "./systick/bsp_SysTick.h"
  3. #include "./dht11/bsp_dht11.h"
  4. #include "./usart/bsp_usart.h"
  5. #include "./lcd/bsp_ili9341_lcd.h"
  6. #include "./SMOG/smog.h"
  7. #include "./dwt_delay/core_delay.h"
  8. #include "./HX711/HX711.h"
  9. #include "./ADC/adc.h"

  10. /**
  11.   * @brief  主函数
  12.   * @param  无  
  13.   * @retval 无
  14.   */
  15. int main(void)
  16. {
  17.   char dispBuff1[100];
  18.   char dispBuff2[100];
  19.         char dispBuff3[100];
  20.         u8 Smog_Data;
  21.         u16 smog_data;
  22.         float Prassure1=0.00;
  23.         float Prassure2=2.80;
  24.         char* str="CC20E92F";

  25.         /* 初始化系统定时器 */
  26.         SysTick_Init();
  27.   
  28.   //LCD 初始化
  29.         ILI9341_Init ();
  30. //其中0、3、5、6 模式适合从左至右显示文字,
  31. //不推荐使用其它模式显示文字        其它模式显示文字会有镜像效果                       
  32. //其中 6 模式为大部分液晶例程的默认显示方向  
  33.         ILI9341_GramScan ( 6 );

  34.   ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);        /* 清屏,显示全黑 */
  35.   
  36.         /*初始化DTT11的引脚*/
  37.         //DHT11_Init ();
  38.         Smog_Init();
  39.         Init_HX711pin();
  40.        
  41.         ILI9341_DispStringLine_EN(LINE(0),"test");
  42.         ILI9341_DispStringLine_EN(LINE(1),"RFID : ");
  43.         ILI9341_DispStringLine_EN(LINE(2),"Prassure : 0.00 g");
  44.         smog_data=Smog_Trans_Concentration();
  45.   sprintf(dispBuff3,"Smog : %.1f",(float)smog_data/100);
  46.        
  47.   LCD_ClearLine(LINE(3));        /* 清除单行文字 */
  48.   ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
  49.         sprintf(dispBuff1,"RFID : ");
  50.   LCD_ClearLine(LINE(1));        /* 清除单行文字 */
  51.   ILI9341_DispStringLine_EN(LINE(1),dispBuff1);
  52.         Delay_ms(3000);
  53.         sprintf(dispBuff1,"RFID : %s",str);
  54.   LCD_ClearLine(LINE(1));        /* 清除单行文字 */
  55.   ILI9341_DispStringLine_EN(LINE(1),dispBuff1);
  56.        
  57.   Delay_ms(6000);
  58.         sprintf(dispBuff2,"Prassure : %0.2f g",Prassure1);
  59.   LCD_ClearLine(LINE(2));        /* 清除单行文字 */
  60.   ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
  61.         Delay_ms(4000);
  62.         sprintf(dispBuff2,"Prassure : %0.2f g",Prassure2);
  63.   LCD_ClearLine(LINE(2));        /* 清除单行文字 */
  64.   ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
  65.         Delay_ms(4000);
  66.         sprintf(dispBuff2,"Prassure : %0.2f g",Prassure1);
  67.   LCD_ClearLine(LINE(2));        /* 清除单行文字 */
  68.   ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
  69.         smog_data=Smog_Trans_Concentration();
  70.         Delay_ms(4000);
  71.         sprintf(dispBuff2,"Prassure : %0.2f g",5.00);
  72.   LCD_ClearLine(LINE(2));        /* 清除单行文字 */
  73.   ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
  74.         smog_data=Smog_Trans_Concentration();
  75.         Delay_ms(4000);
  76.         sprintf(dispBuff2,"Prassure : %0.2f g",0.00);
  77.   LCD_ClearLine(LINE(2));        /* 清除单行文字 */
  78.   ILI9341_DispStringLine_EN(LINE(2),dispBuff2);
  79.         Delay_ms(9000);
  80.         sprintf(dispBuff3,"Smog : 11.7 ");
  81.   LCD_ClearLine(LINE(3));        /* 清除单行文字 */
  82.   ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
  83.         Delay_ms(2000);
  84.         sprintf(dispBuff3,"Smog : 15.9 ");
  85.   LCD_ClearLine(LINE(3));        /* 清除单行文字 */
  86.   ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
  87.         Delay_ms(2000);
  88.         sprintf(dispBuff3,"Smog : 27.1 ");
  89.   LCD_ClearLine(LINE(3));        /* 清除单行文字 */
  90.   ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
  91.         Delay_ms(2000);
  92.         sprintf(dispBuff3,"Smog : 38.5 ");
  93.   LCD_ClearLine(LINE(3));        /* 清除单行文字 */
  94.   ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
  95.         Delay_ms(2000);
  96.        
  97.         while(1)
  98.         {       
  99.                         /*调用DHT11_Read_TempAndHumidity读取温湿度,若成功则输出该信息*/
  100.                         if( Get_Adc3 ( Smog_Data ) != NULL )//&&HX711_Read()!=NULL
  101.                         {
  102.                                 /* 显示烟雾 */
  103.                                 smog_data=Smog_Trans_Concentration();
  104.         sprintf(dispBuff3,"Smog : %0.1f ",(float)smog_data/100);
  105.         LCD_ClearLine(LINE(3));        /* 清除单行文字 */
  106.         ILI9341_DispStringLine_EN(LINE(3),dispBuff3);
  107.                         }
  108.                         Delay_ms(3000);
  109.         }
  110.         //while(1)
  111.         //{       
  112.                 //        /*调用DHT11_Read_TempAndHumidity读取温湿度,若成功则输出该信息*/
  113.                         //if( Get_Adc3 ( Smog_Data ) != NULL )//&&HX711_Read()!=NULL
  114.                 //        {
  115.      //   ILI9341_DispStringLine_EN(LINE(0),"smog test");
  116.         
  117.         /* 显示烟雾 */
  118.                 //                smog_data=Smog_Trans_Concentration();
  119.      //   sprintf(dispBuff,"Smog : %d ",smog_data);
  120.       //  LCD_ClearLine(LINE(1));        /* 清除单行文字 */
  121.        // ILI9341_DispStringLine_EN(LINE(1),dispBuff);
  122.         
  123.         /* 显示压力 */
  124.                                 /*prassure_data=Get_Weight();
  125.         sprintf(dispBuff,"Prassure : %f ",prassure_data);
  126.         LCD_ClearLine(LINE(2));*/        /* 清除单行文字 */
  127.        // ILI9341_DispStringLine_EN(LINE(2),dispBuff);
  128.         //                }                       
  129.         //                else
  130.         //                {
  131.   //      LCD_ClearLine(LINE(1));        /* 清除单行文字 */
  132.   //      LCD_ClearLine(LINE(2));        /* 清除单行文字 */
  133.         //                        ILI9341_DispStringLine_EN(LINE(1),"Read SMOG ERROR");
  134.    //     ILI9341_DispStringLine_EN(LINE(2),"Read HX711 ERROR");
  135.         //                }
  136.                        
  137. //                 Delay_ms(2000);
  138. //        }

  139.        
  140. }
  141. /*********************************************END OF FILE**********************/
复制代码

所有资料51hei提供下载:
液晶输出烟雾压力.7z (216.17 KB, 下载次数: 41)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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