找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2674|回复: 0
收起左侧

基于蓝牙的遥控小车制作 附单片机源程序

[复制链接]
ID:427492 发表于 2019-5-14 19:30 | 显示全部楼层 |阅读模式
/*
           本程序蓝牙模块接在了串口1,在下载程序时需要拔掉蓝牙模块的RXD和TXD线,下载完成后,在接上。
*/
制作出来的实物图如下:

正面.jpg

正面.jpg

背面.jpg

背面.jpg

蓝牙模块.jpg

蓝牙模块.jpg


单片机源程序如下:

#include "InitFun.h"

u16 flag = 0;               //       左转/右转标志
u8 t = 0;
u8 PWM_T = 0;          //       通过改变PWM_T的值实现直流电机转速的改变
u8 ch = '#';                //        用于接收指令

void main()
{
        PortInit();           //       端口初始化
        UartInit();           //       串口1初始化
        IniTime0();         //       定时器0初始化
        P1=0xff;         
        PWM_T=30;      //        PWM_T划分为30个等级

        while(1)
        {

                if(ch == '1')         //    蓝牙串口助手app给单片机发指令1,减速
                {        
                        up = 0;
                        down = 1;
                }                                
                if(ch == '2')         //     指令2,加速
                {               
                        down = 0;
                        up = 1;
                }
                if(ch == '3')         //     指令3,左转弯
                {
                        flag = 1;
                }

                if(ch == '4')         //    指令4,右转弯
                {
                        flag = 2;
                }

                if(!up)
                {
                        if(PWM_T<250)
                        {
                                PWM_T++;
                        }

                        delay_1ms(10);
                }
                if(!down)
                {
                        if(PWM_T>0)
                        {
                                PWM_T--;
                        }

                        delay_1ms(10);
                }
        }
}
void usart() interrupt 4    //    串口中断函数
{
        if(RI)                   //    接收助手发来的指令
        {
                RI = 0;
                ch = SBUF;
        }
        if(ch != '#')           //   将接收到的指令在串口上显示
        {
                SBUF = ch;
                while(!TI);
                TI = 0;
        }        
}

void timer0() interrupt 1              //      定时器0中断函数
{
        t++;   
        if(t==250)   
        {
                t=0;                           
                P1=0x00;
        }

        if(PWM_T==t)  
        {  
                P1=0xff;

                if(flag == 1)
                {
                        flag = 0;
                        P1 = P1&0xbf;
                        delay_1ms(4500);
                        ch = '2';
                }

                if(flag == 2)
                {
                        flag = 0;
                        P1 = P1&0xdf;
                        delay_1ms(4500);
                        ch = '2';
                }
        }
}

全部资料51hei下载地址:
基于蓝牙的遥控小车.rar (53.96 KB, 下载次数: 13)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表