1、基于单片机AT89S52的超声波设计更新啦基于单片机AT89S52的超声波设计更新啦2009年08月13日 星期四 10:40最近在做辆智能小车而其中有超声波测距这一模块,调了几天了还不行啊!就是收不到啊哪位有经验的大哥给我指点指点啊没人帮忙也要解决啊哈哈成功啦下面是超声波模块程序#include#include#define uchar unsigned char#define uint unsigned int#define ulong unsigned longuint c=340;ulong l,time;char i=1,j=1,k=80,aa;char t,tp=10,ts,tg,
2、lb,ls,lg,lsf,fh,cb,cs,cg;sbit RW=P21;sbit RS=P20;sbit E=P22;sbit rece=P33;sbit k2=P11;sbit k1=P10;sbit k3=P12;sbit k4=P13;sbit sg=P37;sbit ctl=P35;void delay(uint i) while(i-);void writercom(uchar q) E=1;RS=0;RW=0;P0=q;E=0;delay(20);void writerdata(uchar o)E=1;RS=1;RW=0;P0=o;E=0;delay(20);void write
3、r_d(uchar *u)while(*u)writerdata(*u+);void xsinit(void)writercom(0x01);writercom(0x38);writercom(0x0c);writercom(0x06);void inptt()while(1)if(k2=0)tp+;if(tp=99)tp=99;delay(7000);if(k1=0)tp-;if(tp=(-30)tp=(-30);delay(7000);t=tp;if(t=10)c=338+(tp-10)*0.6;else c=338+(10-tp)*0.6;cb=c/100;cs=c%100/10;cg=
4、c%100%10;lb=l/1000000;ls=l%1000000/100000;lg=l%1000000%100000/10000;/*显示*/writercom(0x80);if(l=93)writer_d(too long! );else writer_d(L=); writerdata(.); writerdata(ls+0x30); writerdata(lg+0x30); writer_d(m ); writer_d(c=); writerdata(cb+0x30); writerdata(cs+0x30); writerdata(cg+0x30); writer_d(m/s )
5、; void unauto()while(i)while(k-)writercom(0xba); writer_d(Press K4 measure); if(k4=0|k3=0)i=0;break; delay(2000); k=20;while(k-)writercom(0xba); writer_d( ); if(k4=0|k3=0)i=0;break; delay(2000); k=20;i=1;ctl=0;sen();delay(200);ctl=1;void aut()writercom(0xba);writer_d(real time measur);ctl=0;sen();delay(200);ctl=1;ztxz()while(k3=0&aa=0)while(1)if(k3=1)break;aa=1;while(k3=0&aa=1)while(1)if(k3=1)break;aa=0;main()xsinit();inptt();while(1)while(!aa)unauto(); break;while(aa) aut(); break;while(k-) delay(2000); k=20;dataxs();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1