打印
[经验分享]

(转)关于51单片机蓝牙通信的问题

[复制链接]
742|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
boy1990|  楼主 | 2015-10-23 22:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何能实现用手机,通过蓝牙模块来控制直流电机转速呢?
下面这段程序是自己写的,测试发现用手机发送数据时,我的51开发板上的RXDLED是会亮的,应该可以证明数据是接受到了的吧?但是电机转速并没有改变,但是修改程序中a,b的初值是可以改变电动机转速的。。。求大神看看哪不对。。。我设置的PWM频率是100mhz
各位大神勿喷。。。我真是小白,看不出哪有问题。

#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int

uchar a,b;

sbit moto = P1^0;

void serial_INT() interrupt 4
{
uchar c;
ES = 0;
while(RI == 0);
c = SBUF;
a = c;
b = 100 - a;
RI = 0;
ES = 1;
}

void SCON_init()
{
SCON = 0x50;
TMOD = 0x20;
PCON = 0x00;
TH1 = 0xFD;
TL1 = 0xFD;
TI = 0;
TR1 = 1;
ES = 1;
EA = 1;
}

void timer0() interrupt 1
{
if(moto == 1)
{
TH0=(65536-a)/256;
TL0=(65536-a)%256;
moto = 0;
}
else
{
TH0=(65536-b)/256;
TL0=(65536-b)%256;
moto = 1;
}
}

void TCON_init()
{
TMOD = 0x01;
TH0 = (65536-a)/256;
TL0 = (65536-a)%256;
EA = 1;
ET0 = 1;
TR0 = 1;
}

void main()
{
a = 10;
b = 90;
SCON_init();
TCON_init();
while(1);
}
沙发
毁灭2012| | 2015-10-23 22:20 | 只看该作者
本帖最后由 毁灭2012 于 2015-10-23 22:22 编辑

重贴:Q

使用特权

评论回复
板凳
boy1990|  楼主 | 2015-10-23 22:21 | 只看该作者
额 不好意思,贴子发重了。网速不是很给力哈 哈哈

使用特权

评论回复
地板
bbapple| | 2015-10-23 22:35 | 只看该作者
TMOD 是否可以改写为 TMOD = 0x21,或者TMOD |= 0x20;TMOD |= 0x01;试试!!

使用特权

评论回复
5
boy1990|  楼主 | 2015-10-24 23:05 | 只看该作者
bbapple 发表于 2015-10-23 22:35
TMOD 是否可以改写为 TMOD = 0x21,或者TMOD |= 0x20;TMOD |= 0x01;试试!!

:)问题解决了,多谢。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

1769

帖子

2

粉丝