找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2536|回复: 0
打印 上一主题 下一主题
收起左侧

STM32模拟液位检测告警源程序

[复制链接]
跳转到指定楼层
楼主
基于STM32f103vet6单片机
模拟液位检测告警,往届蓝桥杯赛题程序,完成基本要求,多有不足,互相学习


单片机源程序如下:
  1. #include "stm32f10x.h"
  2. #include "./lcd/bsp_ili9341_lcd.h"
  3. #include "./usart/bsp_usart.h"
  4. #include "./adc/bsp_adc.h"
  5. #include "./led/bsp_led.h"
  6. #include <stdio.h>

  7. static void LCD_Test(void);       
  8. static void Delay ( __IO uint32_t nCount );
  9. uint16_t TimeDisplay = 0;
  10. u8 ADC_Flag=0;
  11. u32 TimingDelay = 0;
  12. float ADC_VALUE;
  13. float ADC_VALU;
  14. float ADC_VAL;
  15. u8 low=20,mid,high=70;
  16. u8 level;
  17. u8 dispBuff[20];

  18. void Printf_Charater(void)   ;
  19. void ADC_Read(void);
  20. /**
  21.   * @brief  主函数
  22.   * @param  无  
  23.   * @retval 无
  24.   */
  25. int main ( void )
  26. {

  27.         ILI9341_Init ();         //LCD 初始化
  28.         ADCx_Init();
  29.         LED_GPIO_Config();
  30.   ILI9341_GramScan ( 6 );
  31.        
  32.         LCD_SetColors(RED,BLACK);

  33.   ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);        /* 清屏,显示全黑 */
  34.         while ( 1 )
  35.         {
  36.                
  37.                 LCD_SetColors(YELLOW,BLACK);                       
  38.                 ILI9341_DispStringLine_EN(LINE(5),"      STM32 Singlechip     ");               
  39.                 ILI9341_DispStringLine_EN(LINE(7),"  ADC Acquisition experiment  ");
  40.           ADC_Read();               
  41.         }
  42. }

  43. void ADC_Read(void)
  44. {
  45.         ADC_SoftwareStartConvCmd(ADCx, ENABLE);
  46.         ADC_VALUE=ADC_GetConversionValue(ADCx)*3.3/0xfff;
  47.         sprintf((char*)dispBuff,"%s%.2fV        ","         ADC: ", ADC_VALUE);
  48.         ILI9341_DispStringLine_EN(LINE(9),dispBuff);
  49.        
  50.         ADC_VALU =ADC_VALUE*30.303;
  51.         sprintf((char*)dispBuff,"%s%.2f cm      "," Hight:  ",ADC_VALU);
  52.         ILI9341_DispStringLine_EN(LINE(11) ,dispBuff);
  53.        
  54.         ADC_VAL=ADC_VALUE;
  55.         if(ADC_VALU>high)
  56.         {
  57.                 ILI9341_DispStringLine_EN(LINE(13)," Level: 3           ");
  58.                 LED_RED;
  59.         }
  60.         else if(ADC_VALU<high&&ADC_VALU>low)
  61.         {
  62.                 ILI9341_DispStringLine_EN(LINE(13)," Level: 2           ");       
  63.                 LED_YELLOW;
  64.         }
  65.         else if(ADC_VALU<low)
  66.         {
  67.                 ILI9341_DispStringLine_EN(LINE(13)," Level: 1           ");
  68.                 LED_CYAN;
  69.                
  70.         }
  71. }


  72.        
  73. static void Delay ( __IO uint32_t nCount )
  74. {
  75.   for ( ; nCount != 0; nCount -- );
  76.        
  77. }

  78. /* ------------------------------------------end of file---------------------------------------- */
复制代码

所有资料51hei提供下载:
模拟液位检测告警.7z (215.12 KB, 下载次数: 23)




评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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