赞
踩
目录
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 <reg52.h> //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,然后让手机和电脑在同一个局域网下,通过扫描二维码就可以在线调试看效果了,是不是有点小激动呀!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。