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

作者: 区区&致命伤    时间: 2021-2-7 08:42
标题: 基于AT89C52单片机制作蓝牙智能遥控小车程序
新手制作,简单明了,好了废话不多说!
一、1个基本的小车模型壳。
二、18650可充电锂电池2个。
三、智能小车驱动模块。
四、HC-05蓝牙模块。
五、单片机最小系统。


#include <reg52.h>
sbit ENA=P1^0;
sbit M1A=P1^1;                        
sbit M1B=P1^2;                           
sbit M2A=P1^3;                           
sbit M2B=P1^4;                          
sbit ENB=P1^5;
void tingzhi()         //停止
{
   M1A=0;                                 
   M1B=0;                                 
   M2A=0;                                   
   M2B=0;

}

void qianjin()         //前进
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;
}

void houtui()                    //后退
{
   M1A=0;                                   
   M1B=1;                                   
   M2A=0;                                   
   M2B=1;
}

void zuozhuan()          //左转
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=0;                                   
   M2B=0;
}


void youzhuan()           //右转
{  
   M1A=0;                                   
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;
   
}
void youyuan()           //原地右转
{  
   M1A=0;                                   
   M1B=1;                                   
   M2A=1;                                   
   M2B=0;
   
}
void zuoyuan()           //原地左转
{  
   M1A=1;                                   
   M1B=0;                                   
   M2A=0;                                   
   M2B=1;
   
}

void UART_INIT()
{
        SM0 = 0;
        SM1 = 1;                            //串口工作方式1
        REN = 1;                            //允许串口接收
        EA = 1;                                //开总中断
        ES = 1;                                //开串口中断
        TMOD = 0x20;                    //8位自动重装模式
        TH1 = 0xfd;
        TL1 = 0xfd;                        //9600波特率
        TR1 = 1;                            //启动定时器
}
                                            //串口中断
void UART_SER() interrupt 4
{
        if(RI)
        {
                RI = 0;        //清除接收标志
                switch(SBUF)
                {
                        case 'A': tingzhi(); break;
                        case 'B': qianjin(); break;
                        case 'C': houtui(); break;
                        case 'D': zuozhuan(); break;
                        case 'E': youzhuan(); break;
                        case 'F': zuoyuan(); break;
                        case 'G': youyuan(); break;
                }
        }
}
void main()
{
        UART_INIT();        //串口初始化
        while(1);        
}






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