找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2939|回复: 5
收起左侧

stc15w单片机超声波代码 7脚oled屏幕显示

  [复制链接]
ID:927850 发表于 2021-7-13 15:58 | 显示全部楼层 |阅读模式
超声波使用的是HC-SR04,显示用的是7脚oled屏幕,利用spi协议书写
单片机频率使用11.0592MHZ,可直接添加c文件到任意工程
实物图如下:
IMG_20210713_154324.jpg IMG_20210713_154331.jpg

单片机源程序如下:
  1. //Trig=P3.4
  2. //ECHO=P3.3
  3. #include "mian.h"
  4. u16 xdata Acoustic_Distance;          //定时器值保存,超声波测量结果
  5. u16 xdata Timer1_time;                                                                 //距离保存
  6. //***************************************************************************
  7. // 定时器一的服务函数
  8. //***************************************************************************
  9. void Timer1_Routine() interrupt 3
  10. {
  11.         Timer1_time++;                                                    //测量距离多少毫米
  12.         if(Timer1_time>=500)
  13.         {
  14.                 TR1=0;                                                                                                                //关闭定时器
  15.         }
  16. }        
  17. //***************************************************************************
  18. // 定时器1的配置初始化
  19. //***************************************************************************
  20. void Timer1_Init()
  21. {
  22.         AUXR|=0x40;
  23.         TMOD&=0x0f;                                                                                                        //八位自动重装初值
  24.         TMOD|=0xa0;                                                                                                        //GATE置1
  25.         TH1=0x53;                                                                                                                //定时器初始值
  26.         TL1=0x53;                          
  27.         TF1=0;
  28.         TR1=0;
  29.         ET1=1;
  30.         EA=1;
  31. }
  32. //***************************************************************************
  33. // 超声波初始化
  34. //***************************************************************************
  35. void Acoustic_Init()
  36. {
  37.         Timer1_Init();
  38.         Pulse=0;
  39. }        
  40. //***************************************************************************
  41. // 超声波触发与测量服务
  42. //***************************************************************************
  43. void Acoustic_Amount_Drive()
  44. {
  45.         static xdata u16 count=0;
  46.         switch(count)
  47.         {
  48.                 case 1: Pulse=1;TR1=1;Timer1_time=0; break;
  49.                 case 2: Pulse=0; break;
  50.                 case 100:count=0;Acoustic_Distance=Timer1_time; break;
  51.         }
  52.         count++;
  53. }
复制代码
51hei.png
Keil代码工程文件51hei附件下载:
超声波.zip (87.08 KB, 下载次数: 85)

评分

参与人数 2黑币 +80 收起 理由
咸鱼头 + 30 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:889505 发表于 2021-7-22 20:31 | 显示全部楼层
写得真不错
回复

使用道具 举报

ID:513213 发表于 2021-7-23 09:54 | 显示全部楼层
带仿真原理图吗?
回复

使用道具 举报

ID:973981 发表于 2021-10-21 20:58 | 显示全部楼层
为什么不弄个带返回值的函数
回复

使用道具 举报

ID:634830 发表于 2022-5-23 18:43 | 显示全部楼层
怎么只有程序,没有原理图呢
回复

使用道具 举报

ID:361216 发表于 2022-10-24 19:05 | 显示全部楼层
唉,整了半天都没有整出来,看下高手 的呢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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