前言
本篇文章将围绕App与单片机的蓝牙通信来说说lz最近进行开发的一些方案与思考
此文分为三部分:
- 单片机的PWM与串口通信
- Android的蓝牙开发
- 单片机与Android App的通信方案
预览
视频观看:
环境
单片机
- 单片机:STC89C52
- c语言
- 编写环境:Keil uVision4
- 烧录:stc-isp-15xx-v6.82
Android
- android sdk 16+
- Android studio 1.0+
单片机的PWM与串口通信
PWM
我相信PWM的概念大家都应该,如果还很模糊也可以去查查,可以看看这篇文章
那么我们这里要说的,就是怎么通过程序去模拟pwm信号(有些单片机自带pwm处理,就无需写程序),从程序的方面讲,我们要模拟PWM,就是让高电平持续一小段时间,然后再让低电平持续一段时间,也就是改变占空比。
那么再单片机中,这种关于频率的事情一般都是通过定时器来实现的,那么我的方案是这样的:
设置一个全局变量t,PWM_T,每当定时器中断的时候使t自增1,当t等于100的时候,使之高电平,并让t等于0,当t等于PWM_T的时候,使之低电平,这样,我们就可以通过改变PWM_T的值来改变占空比,从而实现通过目标的电压,使之达到调节的效果(例如调节led灯的亮度,调节电机的速度等)
/****************************************************
定时器0中断模拟PWM
调节led的亮度
****************************************************/
int t = 0;
int PWM_T = 0; //占空比控制变
void main()
{
TMOD = 0x22; //定时器0,工作模式2,8位定时模式
TH0=210; //写入预置初值(取值1-25