0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于STC89C52RC单片机的超声波测距程序设计方案

基于STC89C52RC单片机的超声波测距程序设计方案

来源: elecfans
2021-01-12
类别:工业控制
eye 38
文章创建人 拍明

原标题:基于STC89C52RC单片机的超声波测距程序设计方案

  网络上集的STC89C52RC单片机超声波测距程序及电子制作实物,使用单片机最小系统进行试验,超声波部分使用HC-SR04模块,测量范围:4-300cm,实际测量上最长可达到5.70m。下面是实物图,文章后面附源程序。

1.jpg


  4-300cn,实际测量上最长可达到5.7m

  #include ‘AT89X51.H’ //头文件

  unsigned char code fseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

  unsigned char code segbit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

  unsigned char disbuf[8]={0,0,0,0,0,0,0,0};

  //-----------------------------------------------------------------------------

  // 函数原形定义

  #define uchar unsigned char

  #define uint unsigned int

  void main (void); // 主函数

  void LED4_Display (void); // LED显示

  void LED_OUT(uchar X); // LED单字节串行移位函数

  void delayms(uint); //延时子函数 ms

  void jisuan(void);

  unsigned char code LED_0F[]; // LED字模表

  sbit DIO=P1^0; //串行数据输入

  sbit RCLK=P1^1; //时钟脉冲信号——上升沿有效

  sbit SCLK=P1^2; //打入信号————上升沿有效

  sbit echo=P3^2; //echo

  sbit trig=P3^3; //trig

  //-----------------------------------------------------------------------------

  // 全局变量

  uchar LED[8]; //用于LED的8位显示缓存

  uint temp;

  uint temp1;

  uint a,b; //定义一个变量a,b 后者用于判断是否收到信号

  //

  // 主程序

  //

  void main(void) //主函数开始

  {

  uint f;

  echo=0; //先拉低echo,trig引脚

  trig=0;

  f=500;

  while(f》0); //启动延时 消除第一次上电产生的波动

  {

  LED[3]=16;

  LED[2]=15;

  LED[1]=15;

  LED[0]=16;

  f--;

  }

  EA=1; //开总中断

  TMOD=0x11; //设置定时器为方式1

  ET0=1; //允许定时器中断 这里主要是防止超声波模块未发送信号

  ET1=1;

  while(1)

  {

  echo=0;//a赋值

  a=0;

  b=1;

  TH0=0; //定时器装初值

  TL0=0;

  TH1=(65536-25000)/256; //定时器装初值

  TL1=(65536-25000)%6;

  trig=1; //trig送高

  LED4_Display (); // 延时3ms

  LED4_Display ();

  LED4_Display ();

  LED4_Display ();

  LED4_Display ();

  LED4_Display ();

  LED4_Display ();

  trig=0; //trig送低

  TR1=1;

  while(echo==0); //等待echo变为高电平

  if(b==1) 判断是否收到信号

  {


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案