標(biāo)題:
基于AT89C52單片機制作藍牙智能遙控小車程序
[打印本頁]
作者:
區(qū)區(qū)&致命傷
時間:
2021-2-7 08:42
標(biāo)題:
基于AT89C52單片機制作藍牙智能遙控小車程序
新手制作,簡單明了,好了廢話不多說!
一、1個基本的小車模型殼。
二、18650可充電鋰電池2個。
三、智能小車驅(qū)動模塊。
四、HC-05藍牙模塊。
五、單片機最小系統(tǒng)。
#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() //左轉(zhuǎn)
{
M1A=1;
M1B=0;
M2A=0;
M2B=0;
}
void youzhuan() //右轉(zhuǎn)
{
M1A=0;
M1B=0;
M2A=1;
M2B=0;
}
void youyuan() //原地右轉(zhuǎn)
{
M1A=0;
M1B=1;
M2A=1;
M2B=0;
}
void zuoyuan() //原地左轉(zhuǎn)
{
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; //清除接收標(biāo)志
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.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1