超声波测距 C程序_第1页
超声波测距 C程序_第2页
超声波测距 C程序_第3页
超声波测距 C程序_第4页
超声波测距 C程序_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、超声波测距 C程序本探头是自带晶振的那种,只需发出一个脉冲,探头发出方波,等待回波 并计时,液晶显示。能避免超出测量距离的死等待,请大家完善。/超声波模块程序#include <reg52.h> #include <intrins.h>   #define uchar unsigned char#define uint  unsigned intunsigned int time;unsigned int S,s_false;unsigned long num1;bit flag ;sbit Trig =P36;/定义引脚sbit

2、 Echo=P37;sbit lcdrs=P20;/命令数据sbit lcdrw=P21;/读写sbit lcde=P22;/能sbit led=P35;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 write_com(unsigned char com)    

3、0;   lcdrs=0;        P0=com;        delay(5);        lcde=1;        delay(5);        lcde=0;void write_data(unsigned char zifu)        lcdrs=1;        P0=z

4、ifu;        delay(5);        lcde=1;        delay(5);        lcde=0;void write_temp(uint t_emp)        uchar qian,bai,shi,ge;        qian=t_emp/1000;        bai

5、=(t_emp%1000)/100;        shi=(t_emp%100)/10;        ge=t_emp%10;        write_com(0x80);        write_data(0x30+qian);        delay(1);        write_data(0x30+bai);    &

6、#160;   delay(1);        write_data(0x30+shi);        delay(1);        write_data(0x30+ge);                delay(1);        delay(100);/*/void T0_time() interrupt 1   

7、60;              /T0中断用来计数器溢出,超过测距范围              flag=0; /中断溢出标志,失败                 TH0=0;                 TL0=0; 

8、            TR0=0;                                /关闭计数  /*/void T1_timer() interrupt 3 /中断        TH1=(65536-50000)/256;        TL1=(6

9、5536-50000)%256;        num1+;        if (num1=20)                        num1=0;                led=led;        void  StartModule

10、()              /启动模块            Trig=1;                                  /启动一次模块          

11、;_nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_

12、();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_(); &#

13、160;         _nop_();           _nop_();           _nop_();           _nop_();          _nop_();           _nop_();   &#

14、160;       _nop_();           _nop_();          Trig=0;  /*/void Count(void)                 time=TH0*256+TL0;         TH0=0; 

15、;        TL0=0;                 S=(time*1.7)/100;     /算出来是CM                 if(S<8)|(S>=600)|flag=0) /超出测量范围显示“-”失败        

16、0;                                   /                flag=1;                          

17、60;     s_false=1000;                                 write_com(0x80);                                write_data('e&

18、#39;);                                delay(5);        write_data('r');                                delay(5);

19、        write_data('r');                                delay(5);        write_data('o');                     

20、;           delay(5);        write_data('r');                                delay(5);                    

21、    /        write_temp(s_false);                                                          else    &

22、#160;                                              write_temp(S);                             &

23、#160;   /*/*/ void init()        lcde=0;        write_com(0x38);        write_com(0x0c);        write_com(0x06);        write_com(0x01);        lcdrw=0;/*void main() 

24、0;/        unsigned char TempCyc;        delay(500); /启动等待,等LCM讲入工作状态        lcdrw=0;        init(); /LCM初始化        delay(500); /延时片刻(可不要)        while(1)       

25、;          TMOD=0x11;                   /设T0为方式1,GATE=1;         TH0=0;         TL0=0;                  &

26、#160;ET0=1;             /允许T0中断         ET1=1;         TR1=1;         EA=1;   /开启总中断                 Trig=0;&#

27、160;                                                  Echo=0;        while(1)                 &

28、#160;     StartModule();                 flag=1;         /         while(!Echo);                /当echo为零时等待                 while(!Echo)&&flag);   

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论