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

发布者:upsilon30最新更新时间:2023-10-04 来源: elecfans关键字:STC89C52RC  单片机  超声波测距 手机看文章 扫描二维码
随时随地手机看文章

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


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) 判断是否收到信号

{


关键字:STC89C52RC  单片机  超声波测距 引用地址:基于STC89C52RC单片机的超声波测距程序设计

上一篇:89C2051单片机无线遥控电铃的工作原理
下一篇:AT89C51单片机与74LS164动态显示接口

推荐阅读最新更新时间:2024-11-17 13:35

单片机定时器/计数器综合应用举例
  P1.0、P1.1 经 7407 驱动 LED 交替发光并以每秒一次的频率闪烁。硬件连接见下图(采用 6MHZ 晶振)   分析:闪烁周期为 1S ,亮、灭各占一半,定时时间需要 500mS 。使用 6MHZ 晶振, 单片机 最长定时时间仅为 131mS ,所以需要采用软件记数方法扩展定时时间。   使用定时 / 计数器 0 ,定时方式,工作方式 1 。   设置 TMOD 控制字: TMOD = 01H   使用 6MHZ 晶振,机器周期为 2 s ,设定时时间 100mS ,定时初值 3CB0H 。定时器溢出 5 次为 500mS 。   程序如下:   ORG 0140H   LED1 : MOV T
[单片机]
<font color='red'>单片机</font>定时器/计数器综合应用举例
LPC900系列单片机在射频数传模块中的应用与研究
当前许多应用领域都采用无线方式进行数据传输,在无线抄表、工业数据采集、天线遥控、计算机遥测遥控,医疗卫生自动化、家庭自动化、安防、汽车仪表数据读取等各方面无线射频数传模块都有广泛的应用。 1 射频数传模块开发平台的构建 建立软硬件开发平台是模块开发的首要任务,比较了几种射频数传模块方案,最后决定采用由LPC900系列FLASH单片机和CC1000射频传输芯片为主芯片的开发方案。 1.1 主芯片简介 LPC2900 FLASH单片机是Philips公司推出的一款高性能、微功耗(完全掉电模式功耗低于1μA)、高速率(6倍于普通51单片机)、小封装的5l内核单片机,主要集成了字节方式的I2C总线、SPI总线、增强型UART接口、
[单片机]
新唐n76e003单片机遥控PWM信号检测控制航灯系统
第一次使用学习单片机编程, 使用了n76e003, 主要在检测pwm的信号问题上花了比较多的时间,最后是使用了timer2的0通道来捕捉上升缘,1通道来捕捉下降缘来检测pwm的宽度。 接收机是0-2000us pwm输出,500-1000是基础的pwm, 就是说没有信号也定期输出500(舵机)或1000(油门),这样单片机可以检测到有无信号. timer0来控制led的开关和闪烁,timer0使用10khz, timer2使用16m的时钟. #include N76E003.h #include Common.h #include Delay.h #include SFR_Macro.h #include Fu
[单片机]
PIC单片机实现AD转换的设计方案
pic单片机功能较强,现实中的诸多器件均可借助pic单片机完成。由此可见,pic单片机的使用意义较大。关注本网站的朋友都知道,小编曾带来诸多pic单片机相关文章。如果你对pic单片机比较感兴趣,可在阅读完本文后翻阅往期文章。本文对于pic单片机的讲解,将为大家带来pic单片机的AD转换实例,一起来了解下吧。 AD转换就是模数转换。顾名思义,就是把模拟信号转换成数字信号。主要包括积分型、逐次逼近型、并行比较型/串并行型、Σ-Δ调制型、电容阵列逐次比较型及压频变换型。A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转
[单片机]
PIC<font color='red'>单片机</font>实现AD转换的设计方案
兆易创新推出GD32F5系列Cortex®-M33内核MCU,提供工业高性能应用新选择
中国北京(2024年3月7日)—— 业界领先的半导体器件供应商兆易创新GigaDevice(股票代码 603986)今日宣布,正式 推出基于Arm® Cortex®-M33内核的GD32F5系列高性能微控制器,全面适配于能源电力、光伏储能、工业自动化、PLC、网络通讯设备、图形显示等应用场景。 GD32F5系列高性能MCU具备显著扩容的存储空间、优异的处理能效和丰富的接口资源,该系列MCU符合系统级IEC61508 SIL2功能安全标准,并且提供完整的软硬件安全方案,能够满足工业市场对高可靠性和高安全性的需求。目前,该系列产品已可提供样片,并将于5月正式量产供货。 GD32F5系列Cortex®-M33内核高性能MCU
[嵌入式]
兆易创新推出GD32F5系列Cortex®-M33内核<font color='red'>MCU</font>,提供工业高性能应用新选择
提高MSP430G系列单片机的Flash擦写寿命方法
简介:本文从软件方面,以及安全性方面探讨了使用MSP430G 系列单片机在使用Flash 模拟EEPROM方面的应用,提供了两种不同的方式供选择。两种方式都可以大幅度提高模拟EEPROM 的编写、擦除寿命,并且满足高可靠性的应用设计,用户可以结合具体的应用进行选择。 在嵌入式设计中,许多应用设计都需要使用EEPROM 存储非易失性数据,由于成本原因,某些单片机在芯片内部并没有集成EEPROM。MSP430G 系列处理器是TI 推出的低成本16 位处理器,在MSP430G 系列单片机中并不具备EEPROM。为了存储非易失性数据,MSP430G 系列处理器在芯片内部划分出了256 字节的Flash 空间作为信息Flash,可用于存
[单片机]
提高MSP430G系列<font color='red'>单片机</font>的Flash擦写寿命方法
51单片机汇编:多路延时开关
要求:51单片机,8个按键、8个发光二极管。 ;一个键按下则对应灯亮,3秒后灭,每个键控制一个灯。 ;题目要求的电路,非常简单,用 P1 连接按键、P2 连接 LED 即可。 ;用定时器,定时 7.5 ms,中断 400 遍,即为 3 秒钟。 ;针对每个灯,都要有一个计时单元,用来控制亮灯 3 秒钟的时间。 ;用汇编语言编写程序如下: KEY EQU 30H K_L EQU 31H K_T EQU 32H ORG 0000H AJMP START ORG 000BH ;T0中断入口地址 JMP T0_INT START: MOV TH0, #40 ;定时
[单片机]
51<font color='red'>单片机</font>汇编:多路延时开关
爱特梅尔面向32位MCU应用推出功率管理单元
爱特梅尔 公司(Atmel Corporation)宣布推出“Analog Companion” 功率管理 单元 AT73C224 ,专为基于32位微控制器( MCU )的各种应用而设计。AT73C224可为通用32位MCU应用的主要部分,包括MCU内核、存储器、 I/O 、 USB 主机和各种接口提供所需的电压和电流。 AT73C224具有4个电源通道,对于MCU内核和新一代低电压存储器,它采用了一个逐步降压DC-DC转换器提供0.9V到3.4V的可编程输出电压和500mA输出电流。为了完善输出电压范围,AT73C224还集成了一个逐步升压 DC-DC转换器,提供5.2V或更高的输出电压,并由外部FE
[单片机]
爱特梅尔面向32位<font color='red'>MCU</font>应用推出功率管理单元

推荐帖子

BCSCTl1和BCSCTL2的问题。
我使用MSP430F449在IAR中写入BCSCTL2|=BIT7;BCSCTL2&=~BIT6;//SELM.1=1,SELM.0=0;MCLK时钟源为TX2CLK编译时报错:Error:identifierBCSCTL1isundefinedError:identifierBCSCTL2isundefined这是怎么回事?BCSCTl1和BCSCTL2的问题。您用的1XXX系列的设置方式,4XXX的设置供参考:#includemsp430x44x.h
suo618 微控制器 MCU
Verilog实例代码
给大家学习fpga过程汇总一下代码历程Verilog实例代码谢谢分享呵呵,大家共同学习,共同进步啊回复沙发David_Lee的帖子非常感谢谢谢分享很感谢分享,好好学习一下很感谢分享,好好学习一下谢谢好东西,谢了很好啊谢谢诶拉很好啊谢谢.很不错,有机会学习一下谢谢楼主的分享good谢谢分享谢谢楼主分享,正在学习中。。学习了。。
jjkwz FPGA/CPLD
用示波器可以测量磁芯损耗?
用示波器可以测量磁芯损耗?究竟能不能实现,推荐这篇文章给大家:用示波器可以测量磁芯损耗?谢谢版大分享!
dontium 模拟电子
求助USART收发问题~希望大家帮下【已解决】
利用串口调试助手发送数据没反应~程序如下:#includestm32f10x_lib.hvoidRCC_Configuration(void);voidGPIO_Configuration(void);voidUSART1_Configuration(void);/********************************************************************************函数名:main*函数描述:主
sodapop stm32/stm8
想买个ARM板,请大家帮忙
想买个ARM9的板子用来做嵌入式ARM-linux学习,但是不知道哪个厂家的好。QQ2440,mini2440,还有扬创、优龙的,这些质量都差不多吗?价格如何?想买个ARM板,请大家帮忙优龙网站上有价格阿,我觉得他做工比较好!!虽然贵点,我的就优龙的FS2410也有同样的想法~~用过的说下啊~~给你一个qq,我的一个同学专门卖这种板子的:93618344如果是自己出钱建议QQ2440:)帮顶帮顶引用楼主chongchong8的帖子:想买个ARM9的板子用来做嵌入式A
bawgijfd ARM技术
【2024 DigiKey 创意大赛】基于Raspberry Pi 5的植物生长监管系统—5、组装
现在万事俱备,只差组装,首先拿出花盆和种子。将旧植株搅碎充当肥料。撒入种子,翻拌均匀,放在一旁备用。借助3D打印制作硬件部分的外壳。底部左侧放置电源,右侧放置水电磁阀,上面放洞洞板和继电器。打印完成。将各个部件装入盒子。然后组装浇水模块,给水阀裁剪出长短合适的水管。用电烙铁给瓶盖戳个洞,插入水管。检查气密性,看是否漏水,如果漏水需要用热熔胶或者其他手段加固。所有部件如图。在花盆内安装好土壤湿度
Wenyou DigiKey得捷技术专区
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved