基于STM32的HC-SRF04超声波测距proteus仿真设计

描述

本设计:

基于STM32的超声波测距proteus仿真 HC-SR04(仿真+源码+讲解视频)

仿真:proteus8.9

程序编译器:keil 5

编程语言:C语言

编号C0037

功能描述:

基于STM32F103C6的HC-SR04超声波测距的Proteus仿真。

使用定时器timer3开发,数据非常准确且稳定,范围0-300左右。

仿真图(源文件):

定时器

仿真测试:

定时器

源程序(提供源文件):

定时器

以下为部分程序,完整程序可在下载链接获取:

 

int main(void)
{
    float SRF04_Value = 123.45;
  
    uint8_t adcxxx[3] = {0, 0, 0};
    uint8_t temp_val = 0;
//    uint8_t temp1[2] = {0, 0};
//    uint8_t temp2[1] = {0};
    
    HAL_Init();                       
    Stm32_Clock_Init(RCC_PLL_MUL9);   
    delay_init(72);                   
    DS18B20_Init();
    
    LCD_init();          


    SRF04_init();
    
    TIM3_Init(1000-1, 72-1);     
        
    LCD_write_string(1, 0, "  HC-SRF04");//第一行显示
    LCD_write_string(0, 1, "Distance:");//第二行显示
    
    while(1)
    {
          temp_val++;
          if(temp_val>200){//计算变量。200次进一次采集
          temp_val = 0;
          SRF04_Value = Hcsr04GetLength();//得到SFR04的实时检测值
          if(SRF04_Value >= 600)
              SRF04_Value = 400;
          
          adcxxx[0] = (uint16_t)SRF04_Value / 100 + 48;
          adcxxx[1] = (uint16_t)SRF04_Value % 100 / 10 + 48;
          adcxxx[2] = (uint16_t)SRF04_Value % 100 % 10 + 48;


          LCD_write_string(11, 1, (char*)adcxxx);
          
          delay_ms(200);   
          }
              
    }
}

 

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分