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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4108|回復(fù): 1
收起左側(cè)

單收單發(fā)超聲波模塊資料 含k60 LPC54606 RT1021 XS128 單片機(jī)程序

[復(fù)制鏈接]
ID:371455 發(fā)表于 2020-5-15 14:41 | 顯示全部樓層 |閱讀模式
單發(fā)單手超聲波模塊資料,附帶51,arduino等使用例程,非常好用,想要研究的可以學(xué)習(xí)下
捕獲.PNG 51hei.png

單片機(jī)源程序如下:
  1. /********************************************
  2. 軟件版本:KEIL
  3. 目標(biāo)核心:STC89C52RC
  4. ============================================
  5. 有來(lái)有去接線定義:
  6. ------------------------------------
  7.     超聲波模塊管腳      單片機(jī)管腳
  8.         TXD                                    P3.0
  9.     RXD                 不與單片機(jī)連接

  10.     USB轉(zhuǎn)TTL引腳        單片機(jī)管腳
  11.     RXD                 P3.1
  12.     TXD                 不與單片機(jī)連接
  13.    
  14.    
  15.     連接好之后,使用串口助手觀察輸出的信息,即可獲取距離信息
  16. ============================================

  17. *********************************************/  

  18. #include "stc89c52rc.h"





  19. sfr T2CON         =   0xc8;
  20. sbit TF2          =   T2CON^7;
  21. sbit EXF2         =   T2CON^6;
  22. sbit RCLK         =   T2CON^5;
  23. sbit TCLK         =   T2CON^4;
  24. sbit EXEN2        =   T2CON^3;
  25. sbit TR2          =   T2CON^2;
  26. sbit C_T2         =   T2CON^1;
  27. sbit CP_RL2       =   T2CON^0;



  28. sfr RCAP2L        =   0xCA;
  29. sfr RCAP2H        =   0xCB;
  30. sfr TL2           =   0xCC;
  31. sfr TH2           =   0xCD;




  32. void UartInit(void)                //115200bps@11.0592MHz
  33. {
  34.         SCON=0x50; //串口工作方式1,8位UART,波特率可變  
  35.     TH2=0xFF;           
  36.     TL2=0xFD;    //波特率:115200 晶振=11.0592MHz
  37.     RCAP2H=0xFF;   
  38.     RCAP2L=0xFD; //16位自動(dòng)再裝入值

  39.     TCLK=1;   
  40.     RCLK=1;   
  41.     C_T2=0;   
  42.     EXEN2=0; //波特率發(fā)生器工作方式
  43.     TR2=1 ; //定時(shí)器2開(kāi)始
  44.    
  45.     EA = 1;
  46.     ES  = 1;                //串口中斷打開(kāi)
  47. }



  48. unsigned char   dat[3];
  49. unsigned char   num;
  50. int             distance = 0;

  51. unsigned char   flag = 0;
  52. unsigned char   flag_send = 0;
  53. void uart(void) interrupt 4
  54. {
  55.     unsigned char temp_data = 0;
  56.     if(RI)
  57.     {
  58.         RI = 0;
  59.         dat[num] = SBUF;
  60.         
  61.         if(dat[0] != 0xa5)num = 0;        //檢查頭幀是否正確,不正確就重新接收
  62.         else num++;
  63.         if(num==3)                                        //接收完成,開(kāi)始處理數(shù)據(jù)
  64.         {
  65.             num = 0;
  66.             distance = dat[1]<<8 | dat[2];
  67.             flag = 1;
  68.         }
  69.     }
  70.         else if(TI)
  71.         {
  72.                 flag_send = 0;
  73.                 TI = 0;
  74.         }
  75. }

  76. void put_char(unsigned char byte)
  77. {
  78.     SBUF = byte;
  79.     flag_send = 1;
  80.     while(flag_send);
  81. }

  82. void put_str(unsigned char * str)
  83. {
  84.     while('\0' != *str) //持續(xù)發(fā)送直到遇到字符串結(jié)束符
  85.     {
  86.         put_char(*str); //發(fā)送字符
  87.         str++;          //指針加一,準(zhǔn)備發(fā)送下一個(gè)字符
  88.     }
  89. }

  90. void delay(int t)
  91. {
  92.     while(t--);
  93. }


  94. void main(void)
  95. {
  96.     unsigned char message[] = "distance =      mm\n";
  97.    
  98.    
  99.     UartInit();

  100.     while(1)
  101.     {
  102.         
  103.         if(flag)
  104.         {
  105.             message[11] = distance/1000 + '0';
  106.             message[12] = distance/100%10 + '0';
  107.             message[13] = distance%100/10 + '0';
  108.             message[14] = distance%10 + '0';
  109.             
  110.             put_str(message);   //發(fā)送距離信息
  111.             delay(999);         //延時(shí),
  112.         }
  113.     }
  114. }
復(fù)制代碼

所有資料51hei提供下載:
單發(fā)單收模塊資料.7z (4.82 MB, 下載次數(shù): 47)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:836780 發(fā)表于 2020-11-19 15:29 | 顯示全部樓層
想讓我在串口讀出的是16進(jìn)制
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表