欢迎来到天天文库
浏览记录
ID:25801806
大小:188.50 KB
页数:9页
时间:2018-11-22
《超声波测距(lcd显示)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、超声波测距超声波模块有多种、根据模块的不同程序会有些许差异但是大致思路还是一样的、我这种做出来的结果还好可以测3——500cm。可以精确到0.1cm。距离用lcd1602显示出来。1、超声波收发模块电路原理图1、单片机原理图1、源代码#include#include#defineuintunsignedint#defineucharunsignedcharsbitTX=P3^6;sbitRX=P3^7;sbitrw=P1^1;sbitrs=P1^0;sbitlcden=P2^5;sbitdula=P2^6;sbitwela=P2^
2、7;uchartable[9]="Distance=";voiddelay(uintx){uinta,b;for(a=x;a>0;a--)for(b=10;b>0;b--);}voiddelayms(uintx){uinta,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}voidwrite_com(ucharcom){P0=com;rs=0;lcden=0;delay(10);lcden=1;delay(10);lcden=0;}voidwrite_date(uchardate){P0=date;rs=1;lcden=0;delay(10)
3、;lcden=1;delay(10);lcden=0;}voidinit(){rw=0;dula=0;wela=0;write_com(0x38);//显示模式设置:16×2显示,5×7点阵,8位数据接口delay(20);write_com(0x0e);//显示模式设置delay(20);write_com(0x06);//显示模式设置:光标右移,字符不移delay(20);write_com(0x01);//清屏幕指令,将以前的显示内容清除delay(20);}voiddisplay(x){ucharbai,shi,ge,xiao;bai=x/1000;shi=(x
4、%1000)/100;ge=((x%1000)%100)/10;xiao=((x%1000)%100)%10;write_com(0x80+9);write_date(0x30+bai);delay(20);write_date(0x30+shi);delay(20);write_date(0x30+ge);delay(20);write_date('.');delay(20);write_date(0x30+xiao);delay(20);write_date('c');delay(20);write_date('m');delay(20);}voidstart(){
5、TX=1;delay(1);TX=0;}voidConut(void){uinttime,S=0;time=(TH0*256+TL0)*1.09;TH0=0;TL0=0;S=(time*1.7)/10;//算出来是CMdisplay(S);}voidmain(){uchari;init();for(i=0;i<9;i++){write_date(table[i]);delay(20);}while(1){TMOD=0x01;//设T0为方式1,GATE=1;TH0=0;TL0=0;ET0=1;//允许T0中断EA=1;while(1){start();while(!RX
6、);//当RX为零时等待TR0=1;//开启计数while(RX);//当RX为1计数并等待TR0=0;//关闭计数Conut();//计算delayms(80);//80MS}}}1、说明如果收发模块不同、只需改一下促发子程序和促发、接收那里计时的关系。我做的能测1---500cm.精确到0.1cm。
此文档下载收益归作者所有