標題: c51單片機超聲波12864顯示程序 [打印本頁]

作者: 李響    時間: 2020-10-7 16:35
標題: c51單片機超聲波12864顯示程序
#include "12864.h"
#include<reg52.h>

typedef unsigned int u16;
typedef unsigned char u8;
u16 d,q,s;
u16 distance,distance1,distance2,out_TH0,out_TL0,out_TH1,out_TL1,out_TH2,out_TL2;
//TRIG為控制端
sbit TRIG = P1^0;
//ECHO 為接收端
sbit ECHO  = P1^1;
void delay(u16 i)
{
    while(--i);
}

                                 

void xiangshi()
{         

                /*超聲波傳感器的使用方法:
            控制口發(fā)一個10US 以上的高電平,就可以在接收口等待高電平輸出。一有輸出就可以開定時器計時,當此口變?yōu)榈碗娖綍r就可以讀定時器的,此時就為此次測距的時間,方可算出距離。如此不斷的周期測, 就可以達到移動測量的值了*/

        //控制口發(fā)一個10US 以上的高電平
        TRIG = 1;   
        delay(2);
        TRIG = 0;
        //等待接收端出現(xiàn)高電平

        while(ECHO)s++; //等待高電平結(jié)束
         delay(100);
        out_TH0 = s; //取定時器的值               
        distance = out_TH0;   
        distance =34*out_TH0/1000 ;


            
}

void main()
{                        
    v_Lcd12864Init_f();   
    TRIG = 0; // 先給控制端初始化為0               
    while(1)
    {                        
                xiangshi();                        
                v_Lcd12864PutString_f( 0,0, "高度:") ;//顯示字符串  
                v_Lcd12864SetAddress_f(3,0);        
                v_Lcd12864SendData_f(distance/100+0x30);//顯示變量
                v_Lcd12864SetAddress_f(4,0);        
                v_Lcd12864SendData_f(distance/10%10+0x30);//顯示變量
                v_Lcd12864SetAddress_f(5,0);        
                v_Lcd12864SendData_f(distance%10+0x30);//顯示變量
                v_Lcd12864PutString_f(6,0, "cm") ;//顯示字符串
                v_Lcd12864PutString_f( 7,0,'s' ) ;//顯示字符串        
                delay(5000);           
                 
        
                                
                        
        }
}


超聲波12864.zip

30.52 KB, 下載次數(shù): 34, 下載積分: 黑幣 -5

超聲波12864顯示






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1