找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機通過藍牙將停車位信息發(fā)送到手機APP

查看數(shù): 3865 | 評論數(shù): 5 | 收藏 2
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2019-4-24 16:49

正文摘要:

自己做了一個51單片機的停車位檢測系統(tǒng),51單片機通過藍牙把檢測到剩余空車位發(fā)送給手機APP上?蛻舳送ㄟ^APP可以查看剩余車位跟車位狀態(tài)。

回復

ID:574338 發(fā)表于 2021-1-22 11:04
還不錯,學習了
ID:700161 發(fā)表于 2020-12-16 10:55
51hei小明 發(fā)表于 2019-4-24 18:40
單片機源程序如下:

感謝分享!
ID:530228 發(fā)表于 2019-5-15 08:32
你好  可以留個聯(lián)系方式嗎,有點問題問您,如果用紅外跟超聲有什么區(qū)別呢
ID:290266 發(fā)表于 2019-4-24 18:40
單片機源程序如下:
  1. /********************************************************************
  2. * 文件名  : 串口接收試驗.c
  3. * 描述    :  該文件實現(xiàn)通過單片機從電腦接收數(shù)據(jù)。
  4.              該試驗使用的晶振是11.0592
  5. ***********************************************************************/

  6. #include<reg52.h>
  7. #include<intrins.h>

  8. #define uchar unsigned char
  9. #define uint  unsigned int

  10. uchar uart_receive_buffer[30];  //從串口接收的數(shù)據(jù)
  11. uchar uart_receive_number=0;    //指示串口接收個數(shù)


  12. /********************************************************************
  13. * 名稱 : Delay_1ms()
  14. * 功能 : 延時子程序,延時時間為 1ms
  15. * x * 輸入 : x (延時一毫秒的個數(shù))
  16. * 輸出 : 無
  17. ***********************************************************************/
  18. void Delay_1ms(uint i)//1ms延時
  19. {
  20.   uchar x,j;
  21.   
  22.   for(j=0;j<i;j++)
  23.     for(x=0;x<=148;x++);
  24. }

  25. /********************************************************************
  26. * 名稱 : Com_Int()
  27. * 功能 : 串口中斷子函數(shù)
  28. * 輸入 : 無 * 輸出 : 無
  29. ***********************************************************************/
  30. void Com_Int(void) interrupt 4
  31. {
  32.   static uchar i = 7;  //定義為靜態(tài)變量,當重新進入這個子函數(shù)時 i 的值不會發(fā)生改變
  33.   
  34.   EA = 0;
  35.   if(RI == 1){  //當硬件接收到一個數(shù)據(jù)時,RI會置位
  36.     RI = 0;
  37.     uart_receive_buffer[uart_receive_number] = SBUF;  //這里減去48是因為從電腦中發(fā)送過來的數(shù)據(jù)是ASCII碼。
  38.     uart_receive_number++;
  39.   }
  40.   EA = 1;
  41. }

  42. /********************************************************************
  43. * 名稱 : Com_Init()
  44. * 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中斷
  45. * 輸入 : 無
  46. * 輸出 : 無
  47. ***********************************************************************/
  48. void Com_Init(void) {
  49.   TMOD = 0x20;
  50.   PCON = 0x00;
  51.   SCON = 0x50;
  52.   TH1 = 0xFd;  //設置波特率 9600
  53.   TL1 = 0xFd;
  54.   TR1 = 1;  //啟動定時器1
  55.   ES = 1;  //開串口中斷
  56.   EA = 1;  //開總中斷
  57. }

  58. /********************************************************************
  59. * 名稱 : Main()
  60. * 功能 : 主函數(shù)
  61. * 輸入 : 無
  62. * 輸出 : 無
  63. ***********************************************************************/
  64. void Main()
  65. {
  66.   uchar uart_receive_number_old=0;
  67.   
  68.   Com_Init();
  69.   
  70.   while(1){
  71.    
  72.     if(uart_receive_number_old!=uart_receive_number){
  73.       uart_receive_number_old=uart_receive_number;
  74.     }
  75.    
  76.     //如果單片機接收來自HC-xx模塊不少于1字節(jié)的串口數(shù)據(jù),一定要加延時后再判斷是否
  77.     //還有串口數(shù)據(jù)在發(fā)送,這樣才能完整的接收一幀串口數(shù)據(jù)
  78.     Delay_1ms(30);
  79.    
  80.     //一段時間之后仍然相等,表示上位機發(fā)來的一串數(shù)據(jù)結束
  81.     if(uart_receive_number_old==uart_receive_number){
  82.       if(uart_receive_number)
  83.         break;
  84.     }
  85.   }
  86.   
  87.   if(uart_receive_number){
  88.     //串口有數(shù)據(jù)時,該做些什么就做什么吧
  89.   }
  90.   
  91.   while(1);
  92. }
復制代碼

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表