水下超声波测距c语言程序,51单片机超声波测距C程序
51单片机超声波测距C程序
(2010-01-26 14:09:10) 电子工程师电子资料大学校园
超声波检测原理
超声波测距的程序流程图
程序如下:
//超声波模块程序
#include
#define uchar unsigned char
#define uint unsigned int
//
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//
void delay_20us()
{
uchar a ;
for(a=0;a<100;a++);
}
//***************************************************************
//显示数据转换程序
void display(uint temp)
{
uchar ge,shi,bai;
bai=temp/100;
shi=(temp%100)/10;
ge=temp%10;
wela=1;
P0=0xf7;
wela=0;
dula=1;
P0=table[bai];
dula=0;
delay(1);
dula=1;
P0=0x00; //关位码
dula=0;
wela=1;
P0=0xef;
wela=0;
dula=1;
P0=table[shi];
dula=0;
delay(1);
dula=1;
P0=0x00; //关位码
dula=0;
dula=1;
P0=table[ge];
dula=0;
wela=1;
P0=0xdf;
wela=0;
delay(1);
dula=1;
P0=0x00; //关位码
dula=0;
}
//***************************************************************
void main()
{
uint distance;
test =0;
Trig=0; //首先拉低脉冲输入引脚
EA=1; //打开总中断0
TMOD=0x10; //定时器1,16位工作方式
while(1)
{
EA=0; //关总中断
Trig=1; //超声波输入端
delay_20us(); //延时20us
Trig=0; //产生一个20us的脉冲
while(Echo==0); //等待Echo回波引脚变高电平
succeed_flag=0; //清测量成功标志
EA=1;
EX0=1; //打开外部中断0
TH1=0; //定时器1清零
TL1=0; //定时器1清零
TF1=0; //计数溢出标志
TR1=1; //启动定时器1
delay(20); //等待测量的结果
TR1=0; //关闭定时器1
EX0=0; //关闭外部中断0
if(succeed_flag==1)
{
time=timeH*256+timeL;
distance=time*0.172; //毫米,便于数码管显示
display(distance);
}
if(succeed_flag==0)
{
distance=0; //没有回波则清零
test = !test; //测试灯变化
}
}
}
//***************************************************************
//外部中断0,用做判断回波电平
void exter() interrupt 0 // 外部中断0是0号
{
timeH =TH1; //取出定时器的值
timeL =TL1; //取出定时器的值
succeed_flag=1;//至成功测量的标志
EX0=0; //关闭外部中断
}
//****************************************************************
//定时器1中断,用做超声波测距计时
void timer1() interrupt 3 //
{
TH1=0;
TL1=0;
}
水下超声波测距c语言程序,51单片机超声波测距C程序相关推荐
- 超声波模块c语言编程,51单片机超声波模块的C语言程序.pdf
//超声波模块程序 //超声波模块程序 //Trig P2^0 //Echo P3^2 #include #define uchar unsigned char #define uint unsign ...
- c51c语言编程的音乐程序,51单片机唱歌C51音乐程序.doc
51单片机唱歌C51音乐程序 51单片机唱歌 C51音乐程序 unsigned char n 0; //n为节拍常数变量 unsigned char code music_tab[] 0x18, 0x ...
- 超声波c语言程序,51单片机超声波模块的C语言程序.doc
51单片机超声波模块的C语言程序.doc 超声波模块程序 超声波模块程序 Trig P20 Echo P32 include define uchar unsigned char define uin ...
- 单片机c语言的按键程序,51单片机按键扫描C程序
原标题:51单片机按键扫描C程序 大二上学期做过80 的按键程序,当时项目要求实现按键控制 屏显示并且接收GPRS传来的数据.当时为了节省成本,就去大西电子市场买来8*8的LED块,然后自己一点一点的 ...
- pid控制器c51语言编程,51单片机电机pid控制系统程序
51单片机电机pid控制系统程序 本程序来源网上,小编进行了简单修改,还未验证. /************************* 应用背景:直流电机的额定功率12V,额定转速3000rpm,光码 ...
- 52 8x8点阵c语言程序,51单片机8x8点阵显示程序
<51单片机8x8点阵显示程序>由会员分享,可在线阅读,更多相关<51单片机8x8点阵显示程序(3页珍藏版)>请在人人文库网上搜索. 1.include #include#de ...
- C语言花样霓虹灯程序,51单片机制作霓虹灯的程序+电路图
霓虹灯的电路图: 霓虹灯的51单片机程序: #include #define uchar unsigned char #define uint unsigned int sbit RED_LED ...
- 单片机测距雷达c语言代码,51单片机超声波测距倒车雷达Proteus仿真+源代码
#include #include #include "LCD.H" #include "delay.h" #define uint unsigned int ...
- 8255编程c语言程序,51单片机8255驱动C程序
/*-------------------------------------------------------------------------------------------------- ...
最新文章
- 学好python工资一般多少钱-Python工资多少?就业发展前景怎么样?
- 发展医疗大数据 需捅破各层窗户纸
- pyecharts line_base绘图只有坐标轴,数据不再数轴上显示
- java aop 实例_Spring aop 简单示例
- Thunder团队第三周 - Scrum会议6
- 王淮经验谈:我的码农原则
- python multithreading_操作系统OS,Python - 多进程(multiprocessing)、多线程(multithreading)...
- ECCV 2020 | CV “造车”,生成内容一致的车辆数据集 |
- mysql 开源订阅模式_Canal(增量数据订阅与消费 )快速配置
- Java调用.net开发的webService接口
- 在 Linux 虚拟机中手动安装或升级 VMware Tools
- yolov4训练自己的数据
- VC++中如何让RadioButton分组,并且互斥
- eclipseSVN的安装及使用
- 计算机网络思科DNS配置,Cisco交换机 正确连接和初级配置
- 网站统计系统内容分析
- 大数据培训:Hadoop生态系统圈
- 如何使用 Windows 10 自带的磁盘清理程序?
- xp系统远程桌面关闭计算机,WinXP如何打开远程桌面?WinXP打开远程桌面的命令是什么?...
- java计时器脚本_在倒数计时器脚本中跳过很多秒