51单片机c语言测距,超声波HM55B测距(STC10F08单片机C程序)
名称:超声波测距
作者:Acebit本文引用地址:http://www.eepw.com.cn/article/201611/320529.htm
信息:STC10F08单片机,晶振11.0592MHZ;超声波模块HM55B,测距范围1米;
LCD1602,串行发送数据,显示单位mm;
#include "def.h" //定义管脚
#include "reg51.h"
#include#ifndef OSC110592
#define OSC110592
#endif
unsigned int qian,bai,shi,ge;
unsigned int k;
long result;
void init();
void PULSOUTus(unsigned int port);
bit Read_Port(unsigned int port);
void Write_Port(unsigned int port,bit state);
bdata unsigned char SBUF1;
sbit SBUF1_bit0 = SBUF1^0;
sbit SBUF1_bit1 = SBUF1^1;
sbit SBUF1_bit2 = SBUF1^2;
sbit SBUF1_bit3 = SBUF1^3;
sbit SBUF1_bit4 = SBUF1^4;
sbit SBUF1_bit5 = SBUF1^5;
sbit SBUF1_bit6 = SBUF1^6;
sbit SBUF1_bit7 = SBUF1^7;
void init() //initialization
{
TMOD=0x12;
PCON=00;
TR1=0;
TF1=0;
TR0=0;
TF0=0;
ET1=0;
ET0=0;
EA=0;
}
void delay_ms(unsigned int i)//延时子程序
{
unsigned int j;
for(;i>0;i--)
for(j=0;j<125;j++);
}
void putchar(char input) //模拟串口9600波特率,向LCD发送数据
{
SBUF1=input;
TL0=160;
TH0=160;
TF0=0;
TR0=1;
P26 = 0; //strat
while(!TF0);
TF0=0;
P26 = SBUF1_bit0; //0
while(!TF0);
TF0=0;
P26 = SBUF1_bit1; //1
while(!TF0);
TF0=0;
P26 = SBUF1_bit2; //2
while(!TF0);
TF0=0;
P26 = SBUF1_bit3; //3
while(!TF0);
TF0=0;
P26 = SBUF1_bit4; //4
while(!TF0);
TF0=0;
P26 = SBUF1_bit5; //5
while(!TF0);
TF0=0;
P26 = SBUF1_bit6; //6
while(!TF0);
TF0=0;
P26 = SBUF1_bit7; //7
while(!TF0);
TF0=0;
P26 = 1; //end
while(!TF0);
TF0=0;
TR0=0;
}
void PULSOUTus(unsigned int port)//HM55B启动脉冲
{
Write_Port(port,1);
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
Write_Port(port,0);
}
void Write_Port(unsigned int port,bit state)
{
switch (port)
{
case 0: P00=state;break;
case 1: P01=state;break;
case 2: P02=state;break;
case 3: P03=state;break;
case 4: P04=state;break;
case 5: P05=state;break;
case 6: P06=state;break;
case 7: P07=state;break;
case 8: P20=state;break;
case 9: P21=state;break;
case 10:P22=state;break;
case 11:P23=state;break;
case 12:P24=state;break;
case 13:P25=state;break;
case 14:P26=state;break;
case 15:P27=state;break;
}
}
//main program
void main()
{
init();
while(1)
{
TL1=0;
TH1=0;
Write_Port(15,0);
PULSOUTus(15);
Write_Port(15,1);
while(P27==0); //测回波时间
TR1=1;
while(P27==1);
TR1=0;
result=TH1*256+TL1;
result=result*0.187-150; //距离计算
k=(int)result;
putchar(22);//显示
putchar(12);
delay_ms(100);
qian=k/1000+48;
bai=(k00)/100+48;
shi=(k00)0/10+48;
ge=(k00)0+48;
putchar(qian);
putchar(bai);
putchar(shi);
putchar(ge);
putchar(m);
putchar(m);
delay_ms(500);
}
}
51单片机c语言测距,超声波HM55B测距(STC10F08单片机C程序)相关推荐
- 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc
完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...
- stc15系列c语言pwm编程,STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现.docx...
STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现 STC单片机增强型PWM发生器原理及应用主 讲:何宾Email:hebin@mail.buct.edu.cn2016.03增强 ...
- 用51单片机c语言实现电磁炉功能,电磁炉控制系统单片机模拟
电磁炉控制系统单片机模拟 目 录 引言--------------------------------3 加热原理------------------------------3 工作过程------- ...
- 单片机C语言数据存储原理,学习单片机C语言,必知的数据存储与程序编写知识!...
一.五大内存分区 内存分成5个区,它们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 1.栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区. ...
- 单片机c语言彩灯依次点亮不灭,单片机说课(点亮彩灯).ppt
<单片机应用技术>(中国劳动社会保障出版社),课题二点亮彩灯,,教材贯彻以任务驱动促进以学生为中心的教学方针,把激发学生的学习兴趣,培养学生思考问题.解决问题能力作为教学的根本目标.从实际 ...
- 单片机c语言编译软件6,eUIDE下载-单片机c语言编译器 v1.07.32.23 官方版 - 安下载...
eUIDE是一款专业的单片机c语言编译器,EM78系列集成开发环境是面向项目的ELAN EM78系列微控制器的开发工具,它包括UICE开发在线仿真器和eUIDE软件工具:eUIDE是基于PC端的UIC ...
- 单片机c语言程序设计实训报告,(整理)单片机C语言程序设计实训100例.doc
(整理)单片机C语言程序设计实训100例.doc .单片机C语言程序设计实训100例基于8051Proteus仿真案例第 01 篇 基础程序设计01闪烁的LED/* 名称闪烁的LED说明LED按设定的 ...
- stc单片机c语言 pdf,STC单片机C语言程序设计 第13章 STC单片机C语言指针.pdf
STC单片机C语言指针 主讲:何宾 Email :hebin@mail.buct.edu.cn 2016.03 C51编译器中指针的分类 Cx51编译器支持使用字符"*"声明变量指 ...
- 软件工程-c语言--基于at89c51单片机c语言编写的计算器,基于AT89C1单片机C语言编写的计算器.doc...
基于AT89C1单片机C语言编写的计算器 #include #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; ...
最新文章
- Base64编码算法
- 电脑配置java编译报错_java 编译错误
- 菜鸟学习数据科学家 5 大误区
- Apache的Mod_rewrite学习(RewriteRule重写规则的语法)
- 理论 | 分库分表需要考虑的问题及方案
- 51nod--1212 最小生成树
- 【C语言函数】 - 库函数、自定义函数、函数参数、函数调用、嵌套调用链式访问、递归与迭代、缓冲区
- Linux内核变迁杂谈——感知市场的力量
- Python-英文小说词频统计
- extjs4.0视频教程
- Linux的tar解压命令
- JAVA——【案例】实现计算机系信息管理系统(教师和学生信息管理)
- Linux之DNS篇
- C# 使用NPOI.XSSF对Excel进行操作
- 自动驾驶传感器---毫米波雷达原理(测距、测速、角速度测量),毫米波雷达系统构成
- Python绘制直方图(Histograms)—从文件中读取数据画图update@2017-05-17
- (Java实现) 美元汇率
- 数学建模学习17(最短距离、BP神经网络)
- Windows应急响应
- 8.前端JavaScript之数据类型