51蓝牙小车,通过蓝牙APP发送指令让小车前进后退,左转,右转。
模块化的插件,让你低成本,低基础,完成这个设计。
电路原理图如下:
单片机源程序如下:
#include
#include
#define uchar unsigned char
#define uint unsigned int
unsigned char tmp;
unsigned int c=0;
uint Count;
uint Degree=50;
sbit PWMA=P2^0;
sbit AIN2=P2^1;
sbit AIN1=P2^2;
sbit STBY=P2^3;
sbit BIN1=P2^4;
sbit BIN2=P2^5;
sbit PWMB=P2^6;
sbit beep=P2^7; //蜂鸣器
void init(); //串口初始化
void send(unsigned char a); //单字节发送函数
void ctrl(); //接收处理函数
void delay(unsigned int x)
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void Initialize_time(void)
{
EA=1;
ET0=1; //EA=1;ET0=1;开启总中断、定时器0
// TMOD=0x22; //M1=1,M1=0;方式2
TH0 = 0XA3; //定时时间为100us
TL0 = 0XA3;
TR0=1; //启动定时器0,开始计数
}
void timer0 (void) interrupt 1 //定时中断0子程序
{
Count++;
if(Count>=0 && Count<=Degree)
{
PWMA=0;
PWMB=0;
}
else
{
PWMA=1;
PWMB=1;
}
if(Count==200)
Count=0;
}
void init() //串口初始化
{
ES=0; //关中断
SCON = 0x50; // REN=1允许串行接受状态,串口工作模式1,
//10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可
TMOD = 0x22; // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率
TH1=TL1=0xFD; // 波特率9600 (本次测试采用晶振为11.0592)
PCON &= 0x7f; // 波特率不倍增
TR1 = 1; //定时器1开始工作,产生波特率
//发送标志位置0
TI=0; //接收标志位置0
RI=0;
PT1=1;
ES=1;
}
void send(unsigned char a) //单字节数据发送
{ //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻
TI=0;
SBUF=a;
while(TI==0);
TI=0;
}
void ctrl() //接收处理函数
{
switch(tmp)
{
case '1':
{
AIN1=1;
AIN2=0;
BIN1=1;
BIN2=0;
PWMA=1;
PWMB=1;
send(tmp);
break;
}
case '8':
{
PWMA=0;
PWMB=0;
send(tmp);
}
break;
case '3':
{
AIN1=0;
AIN2=0;
BIN1=1;
BIN2=0;
PWMA=1;
PWMB=1;
send(tmp);
}
break;
case '4':
{
AIN1=1;
AIN2=0;
BIN1=0;
BIN2=0;
PWMA=1;
PWMB=1;
send(tmp);
}
break;
case '5':
{
AIN1=0;
AIN2=1;
BIN1=0;
BIN2=1;
PWMA=1;
PWMB=1;
send(tmp);
}
break;
case '6':
{
beep=0;
delay(50);
beep=1;
send(tmp);
}
break;
case '7':
{
Degree++;
if(Degree==180)
{
Degree=0;
}
send(tmp);
}
break;
}
}
void main()
{
PWMA=1;
PWMB=1;
STBY=1;
init();
// Initialize_time();
while(1)
{
if(RI==1) // 是否有数据到来
{
RI = 0;
tmp = SBUF; // 暂存接收到的数据
ctrl();
}
}
}
上一篇:单片机控制步进电机,LCD1602显示
下一篇:PCF8574 STC15单片机的驱动程序 LCD1602显示
推荐阅读
史海拾趣
随着全球对环境保护和可持续发展的重视,Fullywell也积极响应这一趋势,开始实施绿色转型战略。公司投入大量资源研发环保型半导体材料和生产工艺,致力于降低生产过程中的能耗和排放。同时,Fullywell还加强了与产业链上下游企业的合作,共同推动绿色供应链的建设。这些举措不仅提升了公司的社会责任感,也为公司的可持续发展奠定了坚实的基础。通过绿色转型,Fullywell在行业内树立了良好的企业形象,吸引了更多关注环保和可持续发展的客户和合作伙伴。
随着科技的发展,Equinox意识到数字化对于提升客户体验的重要性。因此,公司开始投入大量资源建设数字平台,提供在线预约、课程购买、健康管理等服务。这些数字化功能不仅方便了客户,还提高了公司的运营效率。
随着国内外市场的不断拓展和客户需求的不断增长,DAQ Electronics LLC公司开始积极探索国际化发展道路。公司积极参加国际展会和技术交流活动,与全球同行建立了广泛的联系和合作。同时,公司也加大了对海外市场的投入力度,不断拓展海外市场份额。这种国际化的发展战略不仅为公司带来了更多的商业机会和合作伙伴也为公司未来的发展提供了更广阔的空间和机遇。
请注意,以上故事均为虚构内容,仅供参考。如有需要,建议直接联系DAQ Electronics LLC公司获取其真实的发展历程和故事。
BETA Transformer Technology Corp公司在成立初期就凭借其创新性的变压器技术,在电子行业中崭露头角。公司研发团队不断突破传统变压器的设计局限,推出了一系列高效、稳定的变压器产品,赢得了客户的广泛认可。随着市场需求的不断增长,BETA公司逐渐扩大了生产规模,提高了产能,成为行业内的领军企业。
【招聘】汇编语言入门图书兼职作者 本公司是业内知名IT图书策划出版公司,正在运作一本汇编语言入门相关图书。想征求关于汇编语言的设计高手参与编写。有意者请将个人介绍和联系方式(QQ或MSN)发到本人邮箱macuilhy@sina.cn。… 查看全部问答∨ |
|
本人刚刚开始学习CC2420,买了一套开发板,安装了IAR软件和ZIGBEE2007协议栈,但不知道该怎么入手学习,怎样更加有效率,少走弯路,就是想弄明白我们应用的时候一般怎么改?改协议栈里的哪些内容? 期待大家的交流学习,谢谢大家!谢谢你的分享!… 查看全部问答∨ |
|
学习了一段时间G2XX的片子,写了一个基于G2553和CC1100E的无线透传程序 测试下来效果还不错,传上来共享一下 串口与RF接收采用中断方法,与CC1100E通信的SPI使用的模拟方式,很容易移植到其他片子 这个是完整的透传程序,不是网上那些掩饰的单收 ...… 查看全部问答∨ |
|