久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1542|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

51單個(gè)超聲波測(cè)距源碼+串口發(fā)送到上位

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:416059 發(fā)表于 2018-11-3 21:17 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>   
#include <intrins.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char

sbit rs=P3^5; //1602Ö¸áîÑ¡×Å¿ØÖÆ            
sbit rw=P3^6; //1602¶áD′¿ØÖÆ         
sbit en=P3^4; //1602ê1Äü¿ØÖÆ         
sbit trig1=P1^0; //3¬éù1·¢     
sbit echo1=P3^2; //3¬éù1½ó

sbit led1=P1^7;
uchar ii,shuju;
bit flag1;  //′¥·¢±êÖ¾      

uchar count,count1;           
long int distance,distance1;   

unsigned char code table[ ]={"0123456789"}; //1206ÏÔê¾×Ö·û¶¨òå


void delay(uint n)     //Ñóê±oˉêy1                     
{
    uint x,y;  
    for(x=n;x>0;x--)
    for(y=110;y>0;y--);
}


void delayt(uint x) //Ñóê±oˉ2
{
    uchar j;
    while(x-- > 0)
    {
              for(j = 0;j < 125;j++)
        {
          ;
        }
    }
}



void lcd_wcom(uchar com)   //1206D′Ãüáî            
{
    rs=0;               
    rw=0;              
    P0=com;            
    delay(5);        
    en=1;            
    en=0;
}



void lcd_wdat(uchar dat)   //1206D′êy¾Y   
{
    rs=1;            
    rw=0;           
    P0=dat;         
    delay(5);      
    en=1;        
    en=0;
  }



void lcd_init()        //12063õê¼      
{
    lcd_wcom(0x38);         
    lcd_wcom(0x0c);      
    lcd_wcom(0x06);     
    lcd_wcom(0x01);  //ÇåÆá  
}



void lcd_xianshi()       //LCDÏÔê¾      
{
                                lcd_wcom(0x80+0x40);
        lcd_wdat('J');
        lcd_wdat('u');
                                lcd_wdat(' ');
        lcd_wdat('L');
        lcd_wdat('i');
                                lcd_wdat(' ');
        lcd_wdat('L');
        lcd_wdat(':');
        lcd_wcom(0x80+0x4c);
        lcd_wdat('.');
        lcd_wcom(0x80+0x4e);
        lcd_wdat('c');
        lcd_wdat('m');

}



void init_t0()   //¶¨ê±Æ÷3õê¼
{
                        TMOD=0x21;         
                        TL0=0x66;
                        TH0=0xfc;              
                        ET0=1;
                        //TMOD=0X20;       
                  //SCON=0x50;
                        //TCON=0x40;
                        //PCON=0x80;
                        TH1=0xfD;
                        TL1=0xfD;
                        SM0=0;
                        SM1=1;
                        REN=1;
                        TR1=1;
                        ES=1;
                        EA=1;
                        TI=1;
                       
}

void trigger()    //3¬éù·¢
{
                        trig1=0;
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
                  _nop_();
      trig1=1;       
}

void init_measuring()//3¬éù¶Ë¿ú3õê¼
{
        trig1=1;
        echo1=1;
        count=0;
}



void measuring()  //¾ààë2aêÔ
{
        uchar l;
        uint h,y;
        TR0 = 1;
        while(echo1==1)
    {
        ;
    }        
        TR0 = 0;
        l = TL0;
        h = TH0;
        y = (h << 8) + l;
        y = y - 0xfc66;
        distance = y + 1000 * count;
        TL0 = 0x66;
        TH0 = 0xfc;
        delayt(20);//Ô-30
        distance = 3453* distance / 20000;

               
}



void display(uint x) //ÏÔê¾¼ÆËã
{
        uchar qian,bai,shi,ge;
        qian=x/1000;
        bai=(x/100)%10;
        shi=(x/10)%10;
        ge=x%10;
       
        lcd_wcom(0x80+0x49);
        lcd_wdat(table[qian]);
        lcd_wdat(table[bai]);
        lcd_wdat(table[shi]);
        lcd_wcom(0x80+0x4d);
        lcd_wdat(table[ge]);
}


void main()     //Ö÷oˉêy      
{   lcd_init(); //òo¾§3õê¼               
    init_t0();//¶¨ê±Æ÷03õê¼
               
    init_measuring();  //3¬éù¶Ë¿ú3õê¼
        while(1)
        {       
                lcd_xianshi(); //1206×Ô¶¨ÏÔê¾  
                trigger();   //3¬éù′¥·¢Æô¶ˉ
                 while(echo1==0)      
                 {
                           ;
                 }
                                                measuring();
            display(distance);        //ÏÔê¾   
            init_measuring(); //3¬éù¶Ë¿ú3õê¼   
            //delayt(1);  //¼ä¸ô600ms
                                                SBUF= 60;
                                        while(!TI);
                                                TI=0;
                                   SBUF= distance/1000%10+48;
                                        while(!TI);
                                                TI=0;
                                        SBUF= distance/100%10+48;
                                        while(!TI);
                                                TI=0;
                                        SBUF= distance/10%10+48;
                                        while(!TI);
                                                TI=0;
                                        SBUF= distance%10+48;
                                                while(!TI);
                                                TI=0;
                                        SBUF= 62;
                                        while(!TI);
                                                TI=0;
                                        //SBUF=10;
                                //        while(!TI);
                                        //        TI=0;
        }
}

void T_0()interrupt 1       
{
        TF0 = 0;
        TL0 = 0x66;
        TH0 = 0xfc;
        count++;
        if(count==18)
        {
          TR0 =0;
          TL0 = 0x66;
          TH0 = 0xfc;
          count = 0;
        }
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区在线观看 | 男人的天堂亚洲 | 爱爱综合网| 国产一区二区av | 亚洲精品一区中文字幕乱码 | 中文字幕一区二区三区乱码在线 | av在线免费观看网站 | 国产成人精品午夜 | 免费中文字幕 | 亚洲毛片在线 | 一区二区三区四区av | 黄色一级大片在线观看 | 亚洲精品99 | 中文字幕三区 | 欧美日本韩国一区二区三区 | 人人射人人草 | 精品蜜桃一区二区三区 | 好姑娘高清在线观看电影 | 一级全黄少妇性色生活免费看 | 国产高清久久 | 美女黄网站视频免费 | 噜噜噜噜狠狠狠7777视频 | 国产精品自拍视频 | 综合网中文字幕 | 中文字幕亚洲欧美日韩在线不卡 | 国产精品久久久久久影院8一贰佰 | 91 中文字幕 | 99精品欧美一区二区蜜桃免费 | 欧美三级视频在线观看 | 亚洲国产一区二区三区, | 国产一区二区久久 | 欧美精品在线免费观看 | 国产福利视频 | 久久久精品视 | 色综合99 | 精品国产欧美 | 日本福利一区 | 天天干天天插 | 欧美日韩一区二区三区四区 | 我想看一级黄色毛片 | 久久精品国产一区 |