• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > HC-SR04超聲波測距模塊電路設計

    HC-SR04超聲波測距模塊電路設計

    作者: 時間:2016-11-27 來源:網絡 收藏
    超聲波測距模塊參數









    超聲波測距模塊內部電路圖

    本文引用地址:http://www.czjhyjcfj.com/article/201611/322501.htm



    超聲波測距模塊與51單片機連接電路圖


    51單片機C語言參考程序

    #include //調用單片機頭文件
    #define uchar unsigned char//無符號字符型宏定義變量范圍0~255
    #define uintunsigned int//無符號整型 宏定義變量范圍0~65535
    #include
    #include "eeprom52.h"


    sbit c_send= P3^3;//超聲波發射
    sbit c_recive = P3^2;//超聲波接收

    //這三個引腳參考資料
    sbit rs=P1^0;//1602數據/命令選擇引腳 H:數據L:命令
    sbit rw=P1^1;//1602讀寫引腳H:數據寄存器L:指令寄存器
    sbit e =P1^2;//1602使能引腳下降沿觸發
    uchar code table_num[]="0123456789abcdefg";

    sbit beep = P1^4;//蜂鳴器IO口定義
    bit flag_300ms ;

    long distance;//距離
    uint set_d;//距離
    bit flag_csb_juli;//超聲波超出量程
    uintflag_time0;//用來保存定時器0的時候的

    uchar menu_1;//菜單設計的變量



    void delay_1ms(uint q)
    {
    uint i,j;
    for(i=0;i
    for(j=0;j<120;j++);
    }


    void write_eeprom()//保存數據
    {
    SectorErase(0x2000);
    byte_write(0x2000, set_d % 256);
    byte_write(0x2001, set_d / 256);
    byte_write(0x2058, a_a);
    }


    void read_eeprom()//讀出保存數據
    {
    set_d= byte_read(0x2001);
    set_d <<= 8;
    set_d|= byte_read(0x2000);
    a_a= byte_read(0x2058);
    }

    //
    void init_eeprom()////開始初始化保存的數據
    {
    read_eeprom();//讀出保存數據
    if(a_a != 2)//新的單片機初始單片機內問EEPOM
    {
    set_d = 50;
    a_a = 2;
    write_eeprom();//保存數據
    }
    }


    void delay_uint(uint q)
    {
    while(q--);
    }


    void write_com(uchar com)
    {
    e=0;
    rs=0;
    rw=0;
    P0=com;
    delay_uint(25);
    e=1;
    delay_uint(100);
    e=0;
    }


    void write_data(uchar dat)
    {
    e=0;
    rs=1;
    rw=0;
    P0=dat;
    delay_uint(25);
    e=1;
    delay_uint(100);
    e=0;
    }


    void write_string(uchar hang,uchar add,uchar *p)
    {
    if(hang==1)
    write_com(0x80+add);
    else
    write_com(0x80+0x40+add);
    while(1)
    {
    if(*p ==

    主站蜘蛛池模板: 雷波县| 海阳市| 松原市| 二连浩特市| 呼图壁县| 鲜城| 独山县| 新昌县| 莱阳市| 洪洞县| 云南省| 霍林郭勒市| 报价| 澎湖县| 会昌县| 昌宁县| 读书| 东明县| 吉首市| 武城县| 遵义县| 灯塔市| 晋州市| 资源县| 资溪县| 新安县| 泸溪县| 洛南县| 浦东新区| 江源县| 开平市| 长兴县| 平度市| 商都县| 广平县| 唐海县| 余庆县| 马鞍山市| 紫云| 海兴县| 通渭县|