[51单片机] HC-SR04超声波测距仪 基础代码
>_<:超声波测距仪模块:
>_<:51单片机,11.0592MHz晶振,将采集数据发送到串口的基础例子:
>_<:代码:
/***********************************************************************************************************/
//HC-SR04 超声波测距模块 DEMO 程序
//晶振:11。0592
//接线:模块TRIG接 P1.2 ECH0 接P1.1
//串口波特率9600
/***********************************************************************************************************/
#include <AT89X51.H>
#include <intrins.h>
#include <STDIO.H> #define uchar unsigned char
#define uint unsigned int
#define RX P1_1
#define TX P1_2 unsigned int time=;
unsigned int timer=;
float S=;
bit flag =; /********************************************************/
void Conut(void)
{
time=TH0*+TL0;
TH0=;
TL0=;
S=(time*1.87)/; //算出来是CM
if(flag==) //超出测量
{
flag=;
printf("-----\n");
}
printf("S=%f\n",S);
}
/********************************************************/
void delayms(unsigned int ms)
{
unsigned char i=,j;
for(;ms;ms--)
{
while(--i)
{
j=;
while(--j);
}
}
}
/********************************************************/
void zd0() interrupt //T0中断用来计数器溢出,超过测距范围
{
flag=; //中断溢出标志
}
/********************************************************/
void StartModule() //T1中断用来扫描数码管和计800MS启动模块
{
TX=; //800MS 启动一次模块
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
TX=;
}
/********************************************************/
void main(void)
{
TMOD=0x21; //设T0为方式1,GATE=1;
SCON=0x50;
TH1=0xFD;
TL1=0xFD;
TH0=;
TL0=;
TR0=;
ET0=; //允许T0中断
TR1=; //开启定时器
TI=; EA=; //开启总中断 while()
{
StartModule();
while(!RX); //当RX为零时等待
TR0=; //开启计数
while(RX); //当RX为1计数并等待
TR0=; //关闭计数
Conut(); //计算
delayms(); //100MS
}
}
[51单片机] HC-SR04超声波测距仪 基础代码的更多相关文章
- 【零基础】彻底搞懂51单片机各种型号(ATMEL系列)
零.前言 初学者开始学习51单片机时往往先是一愣,说好51单片机啊,咋个型号是AT89C52,这个S52又是咋回事?上学的时候大都懵懵懂懂就这么用着,但始终没整明白,所以今天我们就彻底搞明白这些“51 ...
- 【零基础】入门51单片机图文教程(Proteus+Keil)
参考资料: https://www.jianshu.com/p/88dfc09e7403 https://blog.csdn.net/feit2417/article/details/80890218 ...
- 单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境
在Linux下没有像keli那样好用的IDE来开发51单片机,开发环境只能自己搭建了. 第一步:安装交叉编译工具 a) 安装SDCC sudo apt-get install sdcc b)测试SDC ...
- #51单片机#超声波测距(HC-SR04)的使用方法
#51单片机#超声波测距(HC-SR04)的使用方法
- [新概念51单片机C语言教程·郭天祥] 1、 基础知识必备
目录: 单片机的大致介绍 1-1.通俗定义 1-2.51系列产品 1-3.标号意思 1-4.引脚介绍 1-5.用C语言开 ...
- 51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯
关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储 ...
- 使用内存地址点亮LED—跟51单片机一样写代码教学(初步入门)
51单片机点亮一个小灯 #include <rge52.h> sbit LED = P0^ void main(void) { P0 = 0XFE; // 总线操作 sfr P0 0X80 ...
- 【雕爷学编程】Arduino动手做(58)---SR04超声波传感器
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- [学习笔记]15个QA让你快速入门51单片机开发
一.C语言相关 Q1:sbit与sfr代表是什么?有什么作用? Q2:#define OSC_FREQ 22118400L这句宏命令里的“L”是什么意思? Q3:我粘贴了别人的代码,怎么发现没有un ...
随机推荐
- nginx环境下配置nagiosQL-关于nagiosql配置文件
接上文:nginx环境下配置nagios-关于nginx.conf nagiosql文件应该处于conf/domain/目录下 nagiosql配置如下: ; gzi ...
- 生成prefix.pch文件
(借鉴网络资源)
- HTML基础第二天知识点整合
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- PLAN表
用得较多的PLAN表有以下三个ABPPMGR:MANUFACTURINGPLN.SHIPMENTPLAN.PROCUREMENTPLAN .这三个表都是执行StartFP中的exportFP进行数据导 ...
- scrollview做定时来回滚动时,总出现错位的情况。
方法1:self.edgesForExtendedLayout = UIRectEdgeNone; 方法2: self.automaticallyAdjustsScrollViewInsets ...
- winform调用浏览器
方法1: private void button1_Click(object sender, EventArgs e) .{ . //从注册表中读取默认浏览器可执行文件路径 . RegistryKey ...
- JS中的this对象详解
JS中this关键字很常见,但是它似乎变幻莫测,让人抓狂.这篇文章就来揭示其中的奥秘. 借助阮一峰老师的话:它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.这句话看似平常,可是要非常注意 ...
- strace命令介绍(转)
原文链接:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html 简介 strace常用来跟踪进程执行时的系统调用和所接收的信 ...
- POJ 2175 Evacuation Plan 费用流 负圈定理
题目给了一个满足最大流的残量网络,判断是否费用最小. 如果残量网络中存在费用负圈,那么不是最优,在这个圈上增广,增广1的流量就行了. 1.SPFA中某个点入队超过n次,说明存在负环,但是这个点不一定在 ...
- Top Data Scientists to Follow & Best Data Science Tutorials on GitHub
http://www.analyticsvidhya.com/blog/2015/07/github-special-data-scientists-to-follow-best-tutorials/ ...