标题:
如何用51单片机来完成超声波测距
[打印本页]
作者:
大宏哥
时间:
2017-4-26 14:32
标题:
如何用51单片机来完成超声波测距
求各路大神前来指导啊,首先我先来单片机控制超声波测距模块的程序,只要有大神来帮忙能完成的活,肯定少不了你的好处的
作者:
美猴王HLM
时间:
2017-4-26 16:30
/***********************************************************************************************************/ //HC-SR04 超声波测距模块 DEMO 程序 //晶振:11。0592 //接线:模块模块 TRIG接 P2.0 ECH0 接P2.1 VCC接单片供电正极5V,GND接单片系统板的GND //蜂鸣器接p2.7 /***********************************************************************************************************/ #include <AT89X51.H> #include <intrins.h> #include <STDIO.H> #define uchar unsigned char #define uint unsigned int #define RX P2_1 #define TX P2_0 #define buzzer P2_7 unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0; /********************************************************/ void delayms(unsigned int ms) { unsigned char i=60,j; for(;ms;ms--) { while(--i) { j=10; while(--j); } } } /********************************************************/ void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; //算出来是CM if((S>=42000)||flag==1) //超出测量 { flag=0; buzzer=1;//printf("S=-----CM\n"); } else { buzzer=1; //delayms(500); delayms(S); //printf("S=%fCM\n",S); buzzer=0; delayms(S); } } /********************************************************/ void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围 { flag=1; //中断溢出标志 } /********************************************************/ void StartModule() //T1中断用来扫描数码管和计800MS启动模块 { TX=1; //800MS 启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; } /********************************************************/ void main(void) { TMOD=0x21; //设T0为方式1,GATE=1; SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0; TR0=0; ET0=1; //允许T0中断 TR1=1; //开启定时器 TI=1; EA=1; //开启总中断 //delayms(100); //printf("超声波串口测量系统\n"); //delayms(100); while(1) { StartModule(); while(!RX); //当RX为零时等待 TR0=1; //开启计数 while(RX); //当RX为1计数并等待 TR0=0; //关闭计数 Conut(); //计算 //delayms(50); } }
作者:
美猴王HLM
时间:
2017-4-26 16:31
复制的时候格式乱了,将就着看吧
作者:
大宏哥
时间:
2017-4-26 16:44
666,我去调试一下,可以的话在联系你
作者:
大宏哥
时间:
2017-4-26 16:45
美猴王HLM 发表于 2017-4-26 16:31
复制的时候格式乱了,将就着看吧
666,我去调试一下,可以的话在联系你
作者:
白羊一只老母猪
时间:
2017-4-26 21:31
楼上有回答了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1