˜Ë(bi¨¡o)î}: †ÎƬ™C(j¨©)³¬Â•²¨œy(c¨¨)¾à³ÌÐò?y¨¤n)éʲô²»ÄÜÓ㿳ÌÐòÔÚÏÂÃæ£¬ÄÄλ´óÀÐŽÍ¿´¿? [´òÓ¡±¾í“(y¨¨)]

×÷Õß: ÉÆÁ¼µÄСÌì    •r(sh¨ª)ég: 2019-4-14 16:21
˜Ë(bi¨¡o)î}: †ÎƬ™C(j¨©)³¬Â•²¨œy(c¨¨)¾à³ÌÐò?y¨¤n)éʲô²»ÄÜÓ㿳ÌÐòÔÚÏÂÃæ£¬ÄÄλ´óÀÐŽÍ¿´¿?
#include "sys.h"
//#include "lcd12864.h"


sbit Trig = P1^1;
sbit Echo = P1^2;

uint cnt = 0;          //•r(sh¨ª)égȦ”µ(sh¨´)


void Timer0_Init(void)
{
        /*¶¨•r(sh¨ª)Æ÷0³õʼ»¯*/
        TMOD |= 0x01; //ßx“ñ¶¨•r(sh¨ª)Æ÷0¹¤×÷ ¹¤×÷·½Ê½žé·½Ê½1
    TH0 = 0; //Ñb³õÖµ0
    TL0 = 0;

    TF0 = 0; //ÖДàÒç³ö˜Ë(bi¨¡o)־λ
    ET0 = 1; //é_(k¨¡i)¶¨•r(sh¨ª)Æ÷ÖДà
    EA = 1; // é_(k¨¡i)¿‚ÖДà
}

float Distance1(void)
{
        uint time_data=0;
        float Distance;
        uint outcomeH=0,outcomeL=0;
               
        /* °l(f¨¡)ËÍ20usÃ}›_ */
        Trig = 0;
        Delay10us();
        Trig = 1;
        Delay20us();
        Trig = 0;

        /* ÅДàÊÇ·ñ½ÓÊܵ½»Ø²¨£¬½ÓÊܵ½»Ø²¨´òé_(k¨¡i)¶¨•r(sh¨ª)Æ÷*/
        while(!Echo);
                TR0 = 1;
        while(Echo);
                TR0 = 0;

        if(cnt < 5)
        {
                time_data = outcomeH*256 + outcomeL ;  
                Distance = time_data  / 58;
        }
        else
        {
                Distance = 0;
        }

        cnt = 0;
        TH0 = TL0 = 0;  
               
        return         Distance;
}

void Timer0() interrupt 1
{
        cnt++;
}

Ö÷³ÌÐò£º
void main()
{

        float uidistance = 0;
        
        EA = 0;
        Timer0_Init();
        LcdInit();

        while(1)
        {

                LED = !LED;        
                uidistance        = Distance1();
               
                LcdShowNum(2,3,uidistance);        
               
                delay_ms(20);        
        }

}



×÷Õß: yzwzfyz    •r(sh¨ª)ég: 2019-4-15 16:39
outcomeHÔÚÄÄÀï¸Ä׃µÄ£¬Èç¹û›](m¨¦i)Óеط½¸Äžé£¬ËüŒ¢ÓÀßh(yu¨£n)=0¡£outcomeLÒ²Ò»˜Ó¡£





šgÓ­¹âÅR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1