手机APP开发之MIT Appinventor详细实战教程(一),利用通过蓝牙控制单片机,以及实现单片机与android设备之间的串口通信 |
您所在的位置:网站首页 › 如何制作app漫画 › 手机APP开发之MIT Appinventor详细实战教程(一),利用通过蓝牙控制单片机,以及实现单片机与android设备之间的串口通信 |
目录 (一)前期软件准备和硬件准备 ( 二 ) 实现的思路和操作原理 ( 三) 具体的操作方法 MIT Appinventor 是编程领域较为受欢迎且适用的编程软件 ,因其操作流程和使用方法简单,一直深受广大编程人员的喜爱,所以今天为大家介绍一个实例——手机APP开发之MIT Appinventor详细实战教程(一),利用通过蓝牙控制单片机,以及实现单片机与android设备之间的串口通信。 (一)前期软件准备和硬件准备软件准备主要是keil uvision,stc-isp-15xx-v6.85 硬件准备主要是有一个蓝牙模块 、一个便宜的单片机 、一个蓝牙可以正常使用的手机和编程电脑 ; 蓝牙模块需要和单片机连接,具体的操作方法:VCC接VCC,GND接GND,TXD接P30,RXD接P31 ( 二 ) 实现的思路和操作原理我们知道手机和单片机是两个互不相连的事物 ,所以要实现他们之间的通信,我们需要一个信使来充当中间媒介的作用 。而那个信使就是上面提到的蓝牙模块 。 这个蓝牙模块一方面可以接收到手机APP发送的数据并将它传达给单片机 ,另一方面单片机也可以将反馈数据通过蓝牙模块进而发送到手机App上 。这就实现了单片机和手机之间的交互通信 。 ( 三) 具体的操作方法首先我们需要 MIT Appinventor 制作一个简单的组件页面 ,具体情况如下图所示 : 这个布局还有待优化 ,实现最基本的功能也足够了 接下来是逻辑层面的设计 [ 这个可以用来实现手机APP对蓝牙的选择连接 ] 列表选择框(选择蓝牙)的启用为真,按钮(断开)的启用为假。选择蓝牙时将蓝牙客户端的地址及名称显示出来供用户选择。、 蓝牙所发送的数据相关设置也必不可少 ,本文让蓝牙发送的数据为1或0 ,你来传递给单片机,进而控制LED灯的亮灭。 ![ 较为简单的逻辑设计 ,这只是一个简单的框架,主要设计的是通过按钮的开关来控制灯的亮灭 ] 然后是通过发送零或一来使单片机Led灯发亮或暗 的控制的控制逻辑 [ 在文本框输入1或0,点击确认发送即可完成相应功能 ] 上面的一系列操作完成后,我们已经可以实现手机单方面对单片机进行控制。 在这里我们可以把手机形象化的比喻为命令的发出者 ,发出者通过蓝牙模块将数据传达给单片机 ,单片机又根据内部的程序,从而实现对LED灯的控制 ( 单片机的相关配合程序下文会详细给出 )下面我们来实现单片机对手机反馈数据 这一流程的操作 ,遵循单片机反向反馈数据的原理 ,和相关知识。我们可以有下面的尝试 [ 通过显示框找到蓝牙接收到的数据显示出来 ] **另大一部分便是单片机的配合程序了** #include //51头文件 sbit LED1 = P2^0; //位定义 LED1硬件接口 void delay(unsigned int z)//毫秒级延时 { unsigned int x,y; for(x = z; x > 0; x--) for(y = 114; y > 0 ; y--); } /******************************************************************/ /* 串口中断程序*/ /******************************************************************/ void UART_SER () interrupt 4 { unsigned int n; //定义临时变量 if(RI) //判断是接收中断产生 { RI=0; //标志位清零 n=SBUF; //读入缓冲区的值 switch(n) { case 1: LED1 = 0; break; //亮灯 case 0: LED1 = 1; break; //灭灯 } } } //蓝牙初始化 void boothint(void) { SCON = 0x50; // SCON: 模式1, 8-bit UART, 使能接收 TMOD |= 0x20; TH1=0xfd; //波特率9600 初值 TL1=0xfd; TR1= 1; EA = 1; //开总中断 ES= 1; //打开串口中断 } //串口初始化 void UartConfigurationInit() { TMOD=0x20; //设置定时器1工作方式为方式2 TH1=0xfd; //波特率9600 TL1=0xfd; TR1=1; //启动定时器1 SM0=0;SM1=1; //串口方式1 REN=1; //允许接收 PCON=0x00; //关倍频 ES=1; //开串口中断 EA=1; //开总中断 } void main() { boothint(); while(1) { SBUF=9; //发送单个字符 while(!TI);TI=0; //发送完成标志 } } 到目前为止,软件设计和单片机内部程序的设计的所有细节已经全部讲到 ,然后就是软件下载或者是调试的过程了 ,在整个界面的上面有一个连接(Connect)选项,推荐使用AI侣,这要求手机下载一个Appinventor的app,然后让手机和电脑在同一个局域网下,通过扫描二维码就可以在线调试看效果了,是不是有点小激动呀! 特别注意:测试蓝牙通讯的单片机不要用51单片机!!!会出现乱码,具体原因可以看我的这篇博客,帮你完美实现蓝牙的双向通信功能。 https://blog.csdn.net/weixin_42619971/article/details/107298406 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |