晨怡热管 >> 休闲号外 >> AT89C2051超声波测距程序范例

AT89C2051超声波测距程序范例

晨怡热管 2007-1-3 16:03:10
   超声波测距原理:测出回波和发射脉冲之间的时间间隔,由公式:距离=速度*时间/2计算,输出显示。
    AT89C2051通过P1.6输出10个40kHz脉冲,由非门做电流放大,以推挽形式加到变压器的初级,升压后推动超声波换能器。在发射的同时,P1.7输出一个高电平启动,给电容C4充电,。发射结束时高电平翻转为低电平,C4开始对R2、R3组成的分压器放电并输出到比较器的负端。
    超声波接收换能器将回波送到放大器进行放大后,送入机内比较器的正输入端。发射时P1.7输出的电平用以抑制比较器的翻转,称为渡越时间,抑制发射器发射的超声波直接辐射到接收器。 
   

AT89C2051超声波测距电路原理图


 
    超声波测距系统软件设计采用模块化设计,由主程序、发射子程序、查蟓接收子程序、定时子程序、显示子程序等模块组成。该系统的主程序处于键控循环工作方式,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在液晶屏上显示出来。 由于液晶要使用同一P3口,所以必须使用位操作,否则将导致LCD不能正常显示。在系统还可以加入温度传感器来监测环境温度,可进行温度被偿。为了增强系统的可靠性,应在软硬件上采用抗干扰措施。
    # pragma DB OE CD OT(5,SPEED) ROM(LARGE)IV
    /*连接所需要的库*/
    #include
    #include
    #include
    /*定义数据类型*/
    typedef unsingned char byte;
    typedef unsigned int word
    #define uchar unsigned char
    #define unint unsigned int
    #define ulong unsigned long
    /*定义系统常数*/
    #define TRUE 1
    #define FALSE 0
    #define C=340 /*声速*/
    /*定义功能位*/
    sbit bflag=ACC7;
    sbit VOLCK=P1^5;
    sbit MING=P3^5;
    sbit QUIET=P1^3;
    sbit BACK=P1^2;
    /*定义显示缓冲区*/
    uchar idata ON[16]={’,’L’,’E’,’N’,’G’,’T’,’H’,’=’,’8’,’.’,’8

’8’,’m’,’’,’’,’’};
    /*主程序用延时子程序*/
    woid main-delay(void)
    {
    register i;
    TRO=1;
 &

for(i=0;i<15;i++)
    {
    TH0=0;
    TL0=0;
    Do{}while(!TF0);
    TF0=0;
    }
    TR0=0;
    }
    */通用延时子程序*/
    void delay(void)
    {
    unint i;
    for(i=0;i<200;i++){;}
    }
    /*键盘延时子程序*/
    void key-delay(void)
    {
    unint i;
    for(i=0;i<200;i++){;}
    }
    /*初始化程序*/
    void start_main()
    {
    tegister i;
    uchar a[16]={’’,’L’,’E’,’N’,’G’,’T’,’H’,’=,’8’,’.’,’8’,’8

 

’,’m’,’’,’’,’’};
    for(i=0;<16;i++)
    {ON[i]=a[i];}
    nitlcd();/*初始化液晶*/
    display(ON);/*更新显示*/
    }
    /*主程序*/
    void main()
    {
    register s,keycode;
    long idata t;
    start-main();/*初始化*/
    main-delay();/*延时*/;
    if(keycoed= =true)
    {
    keycode=key-scan-wait();
    /*判断是否有测量键按下*/
    t=measure();*/测量*/
    S=0.5*t*C;*/换算*/
    Decode-bcd(s.0x09);
    /*把测量结果置换入显示缓冲区*/
    init-lcd();/*初始化液晶*/
    display(ON);/*更新显示*/
    }
    }

责任编辑: banye 参与评论
本站地图|热管配套|企业邮局|产品说明

Copyright © 1996-2010 China Harbin DawnHappy Heat Pipe Technology Co., Ltd.
哈尔滨晨怡热管技术有限公司   电话:0451-82589558 82589508 82589538   传真:0451-82552085 技术支持:13704813968
地址:哈尔滨市南岗区南通大街256号  邮编:150001  电子信箱:heatpipe@yahoo.cn   heat-pipe@hotmail.com heat.pipe@yahoo.com.cn 
本站永久域名:http://china-heatpipe.net     http://heatpipe.net.cn    http://rg.nx8.net     http://nx8.net  
中华人民共和国信息产业部ICP/IP地址信息备案:黑ICP备07500228  哈尔滨市公安局国际联网备案登记:哈公网监备2301001146

Powered By: KingCMS 3.0 Beta