lzh电子论坛

欢迎来到lzh电子论坛:
如果您对电子技术感兴趣就加入我们吧!在这里互相交流互相学习!主要讨论的方向有:单片机,ARM,PCB板设计,FPGA,汇编,C/C++等方面。
-----lzh电子论坛
lzhbbs.top-me.com
lzh电子论坛

电子的道路是孤独的,要懂得左手温暖右手,要懂得把debug当作快乐去欣赏,去享受,那样你才会成功...

欢迎访问lzh电子论坛。可通过【谷歌,SOSO,搜狗】搜索“lzh电子论坛”直接进入论坛。点击了解论坛详细制度


    超声波程序分享

    分享
    avatar
    Admin
    管理员
    管理员

    帖子数 : 869
    威望 : 15
    注册日期 : 12-11-23
    年龄 : 25

    超声波程序分享

    帖子 由 Admin 于 2013-06-09, 1:56 pm

    代码:

    #include "superwave.h"


    uint16 Num = 0;
    uint16 gDistance = 0;

    void Delay(uint16 xms)
    {
       uint16 i,j;
       for(i=0;i<xms;i++)
          for(j=0;j<110;j++);
    }

    void  Delay_15us()
    {
       uint8  a;
        for(a = 6;a > 0;a--);
    }



    void Init_Wave()
    {
        TRIG_L_Head;
        TRIG_H_Head;                                            //15US的高电平
        Delay_15us();
        TRIG_L_Head;
       ECHO_H_Head;
       while(!ECHO);
         Confing_Timer();
       TR0 = 1;
        while(ECHO)                                          //等待回复信号
        {
          
          if((TH0 == 0XFF) && (TL0 > 0XF0))
          {
             break;
          }   
       }
       TR0 = 0;
       Num = (uint16)((double)((TH0 * 256 + TL0) / 12.0) * 11.0592 + 0.5);
        gDistance = (uint16)((double)Num * 0.017);                        //速度为340m/s                                 
       Delay(10);
    }

    void Confing_Timer()
    {
       TH0 = 0X00;
       TL0 = 0X00;    
    }


    代码:

    #ifndef __SUERW***E_H__
    #define __SUERW***E_H__

    #include "reg52.h"
    #include "MyType.h"


    sbit TRIG = P2^1;
    sbit ECHO = P2^2;

    #define  TRIG_H_Head  (TRIG = 1)
    #define  TRIG_L_Head  (TRIG = 0)

    #define  ECHO_H_Head  (ECHO = 1)
    #define  ECHO_L_Head  (ECHO = 0)

    void Init_Wave();
    void Confing_Timer();
    void  GetDistance();

    extern uint16 gDistance;
    extern uint16 Num;
    #endif

    代码:

    #ifndef __MYTYPE_H__
    #define __MYTYPE_H__

    #define uint8 unsigned char
    #define uint16 unsigned int
    #define uint32 unsigned long int

    #define int8 signed char
    #define int16 signed int
    #define int32 signed long int


    #endif


    _________________
    电子的道路是孤独的,要懂得左手温暖右手,要懂得把debug当作快乐去欣赏,去享受,那样你才会成功...

      目前的日期/时间是2018-05-28, 9:19 am