找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3278|回复: 4
打印 上一主题 下一主题
收起左侧

单片机通过蓝牙将停车位信息发送到手机APP

[复制链接]
跳转到指定楼层
楼主
自己做了一个51单片机的停车位检测系统,51单片机通过蓝牙把检测到剩余空车位发送给手机APP上。客户端通过APP可以查看剩余车位跟车位状态。

224e744a8f309e822f448255722aef8.jpg (228.51 KB, 下载次数: 40)

车位检测

车位检测

2445d3402bf552dcaafde2313bb3235.png (63.67 KB, 下载次数: 32)

车位状态

车位状态

b6fb833a910eb87532a4d45c68aacb6.png (62.51 KB, 下载次数: 28)

车位状态

车位状态

bd66871dcfa224d81e45ba62f2830ad.png (63.09 KB, 下载次数: 30)

车位状态

车位状态

f6dcb9481560be56b695fcec912de41.png (94.41 KB, 下载次数: 32)

车位查询

车位查询

安卓源码BTClient客户.rar

80.25 KB, 下载次数: 41, 下载积分: 黑币 -5

APP源码

单片机串口调试程序 (51.stm8.AVR).rar

8.14 KB, 下载次数: 42, 下载积分: 黑币 -5

单片机代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:290266 发表于 2019-4-24 18:40 | 只看该作者
单片机源程序如下:
  1. /********************************************************************
  2. * 文件名  : 串口接收试验.c
  3. * 描述    :  该文件实现通过单片机从电脑接收数据。
  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];  //从串口接收的数据
  11. uchar uart_receive_number=0;    //指示串口接收个数


  12. /********************************************************************
  13. * 名称 : Delay_1ms()
  14. * 功能 : 延时子程序,延时时间为 1ms
  15. * x * 输入 : x (延时一毫秒的个数)
  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. * 功能 : 串口中断子函数
  28. * 输入 : 无 * 输出 : 无
  29. ***********************************************************************/
  30. void Com_Int(void) interrupt 4
  31. {
  32.   static uchar i = 7;  //定义为静态变量,当重新进入这个子函数时 i 的值不会发生改变
  33.   
  34.   EA = 0;
  35.   if(RI == 1){  //当硬件接收到一个数据时,RI会置位
  36.     RI = 0;
  37.     uart_receive_buffer[uart_receive_number] = SBUF;  //这里减去48是因为从电脑中发送过来的数据是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. * 功能 : 主函数
  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字节的串口数据,一定要加延时后再判断是否
  77.     //还有串口数据在发送,这样才能完整的接收一帧串口数据
  78.     Delay_1ms(30);
  79.    
  80.     //一段时间之后仍然相等,表示上位机发来的一串数据结束
  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.     //串口有数据时,该做些什么就做什么吧
  89.   }
  90.   
  91.   while(1);
  92. }
复制代码
回复

使用道具 举报

板凳
ID:530228 发表于 2019-5-15 08:32 | 只看该作者
你好  可以留个联系方式吗,有点问题问您,如果用红外跟超声有什么区别呢
回复

使用道具 举报

地板
ID:700161 发表于 2020-12-16 10:55 来自手机 | 只看该作者
51hei小明 发表于 2019-4-24 18:40
单片机源程序如下:

感谢分享!!
回复

使用道具 举报

5#
ID:574338 发表于 2021-1-22 11:04 | 只看该作者
还不错,学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表