51单片机超声波测距C程序.doc

上传人:laozhun 文档编号:2384266 上传时间:2023-02-17 格式:DOC 页数:9 大小:183KB
返回 下载 相关 举报
51单片机超声波测距C程序.doc_第1页
第1页 / 共9页
51单片机超声波测距C程序.doc_第2页
第2页 / 共9页
51单片机超声波测距C程序.doc_第3页
第3页 / 共9页
51单片机超声波测距C程序.doc_第4页
第4页 / 共9页
51单片机超声波测距C程序.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《51单片机超声波测距C程序.doc》由会员分享,可在线阅读,更多相关《51单片机超声波测距C程序.doc(9页珍藏版)》请在三一办公上搜索。

1、51单片机超声波测距C程序(2010-01-26 14:09:10) 超声波检测原理超声波测距的程序流程图程序如下:/超声波模块程序/超声波模块程序/Trig = P20/Echo = P32#include #define uchar unsigned char#define uint unsigned int/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/void delay_20us() uchar a ; for(a=0;a100;a+);/*/显示数据转换程序void display(uint temp) uch

2、ar ge,shi,bai; bai=temp/100; shi=(temp%100)/10; ge=temp%10; wela=1; P0=0xf7; wela=0; dula=1; P0=tablebai; dula=0; delay(1); dula=1; P0=0x00; /关位码 dula=0; wela=1; P0=0xef; wela=0; dula=1; P0=tableshi; dula=0; delay(1); dula=1; P0=0x00; /关位码 dula=0; dula=1; P0=tablege; dula=0; wela=1; P0=0xdf; wela=0;

3、 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

4、; /定时器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;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号