标题: 基于蓝牙的遥控小车制作 附单片机源程序 [打印本页]

作者: 枫树566    时间: 2019-5-14 19:30
标题: 基于蓝牙的遥控小车制作 附单片机源程序
/*
           本程序蓝牙模块接在了串口1,在下载程序时需要拔掉蓝牙模块的RXD和TXD线,下载完成后,在接上。
*/
制作出来的实物图如下:


单片机源程序如下:

#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)





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1