標(biāo)題:
單片機(jī)藍(lán)牙小車程序(帶詳細(xì)注釋)
[打印本頁]
作者:
asdfrebrh
時間:
2019-4-10 15:04
標(biāo)題:
單片機(jī)藍(lán)牙小車程序(帶詳細(xì)注釋)
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit zuo1=P2^0;//定義控制左邊電機(jī)的單片機(jī)引腳
sbit zuo2=P2^1;//定義控制左邊電機(jī)的單片機(jī)引腳
sbit you1=P2^2;//定義控制右邊電機(jī)的單片機(jī)引腳
sbit you2=P2^3;//定義控制右邊電機(jī)的單片機(jī)引腳
uchar a=0;//定義一個變量a用來讀取串口的數(shù)據(jù)
void delay(uint z)//一個帶參數(shù)的延時程序
{
int i,j;
for(i=10;i>0;i--)
for(j=z;j>0;j--);
}
void init()//初始化子程序
{
TMOD=0x20; //設(shè)置定時器T1為工作方式2
TH1=0xfd;
TL1=0xfd;//T1定時器裝初值
TR1=1;//啟動定時器T1
REN=1;//允許串口接收
SM0=0;
SM1=1;//設(shè)置串口工作方式1
EA=1; //開總中斷
ES=1;//開串口中斷
}
void go()
{
zuo1=0;
zuo2=1;//左邊輪子正轉(zhuǎn)
delay(60);//PWM有用值,越大左邊輪子轉(zhuǎn)得越快
zuo1=1;//關(guān)閉左邊輪子
you1=0;
you2=1;//右邊輪子正轉(zhuǎn)
delay(60);//PWM有用值,越大右邊的輪子越快
you1=1;//關(guān)閉6右邊輪子
delay(100);//PWM無用值,越大,小車跑的越慢
}
void hui()
{
zuo1=1;
zuo2=0;//左邊輪子倒轉(zhuǎn)
delay(60);//PWM有用值,越大左邊輪子越快
zuo2=1;//關(guān)閉左邊輪子
you1=1;
you2=0;//右邊輪子倒轉(zhuǎn)
delay(60);//PWM有用值,越大右邊輪子越快
you2=1;//關(guān)閉右邊輪子
delay(100);//PWM無用值,越大,小車跑的越慢
}
void turnleft()//小車左轉(zhuǎn)程序
{
zuo1=1;
zuo2=0; //左輪制動
delay(35);
zuo2=1;
you1=0;
you2=1; //右輪正轉(zhuǎn)
delay(35); //PWM有用值,越大,右輪越快
you1=1; //右輪停止
delay(100);//PWM無用值,越大,小車跑的越慢
}
void turnright()//小車右轉(zhuǎn)程序
{
zuo1=0;
zuo2=1; // 左邊輪子正轉(zhuǎn)
delay(35);//PWM有用值,越大,左邊輪子越快
zuo1=1; // 左輪停止
you1=1;
you2=0; //右輪停止
delay(35);
you2=1;
delay(100);// PWM無用值,越大,小車跑的越慢
}
void down()//停止程序
{
zuo1=1;
zuo2=1;
you1=1;
you2=1;
}
void main()//主程序
{
init();//調(diào)用初始化子程序
while(1) //死循環(huán)
{
switch(a)//判斷a從串口讀取到的數(shù)據(jù)
{
case 0x4f: //0x1f 前進(jìn)
go();
break;
case 0x3f: //0x2f 后退
hui();
break;
case 0x2f: // 0x3f 左轉(zhuǎn)
turnleft();
break;
case 0x1f: //0x4f右轉(zhuǎn)
turnright();
break;
case 0x00: //0x00停止
down();
break;
}
}
}
void chuan()interrupt 4//串口中斷服務(wù)
{
RI=0;//軟件清除串口響應(yīng)
a=SBUF;//讀取單片機(jī)串口接收的藍(lán)牙模塊發(fā)送的數(shù)據(jù)
}
藍(lán)牙小車.zip
2019-4-10 15:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
34.75 KB, 下載次數(shù): 21, 下載積分: 黑幣 -5
作者:
admin
時間:
2019-4-10 18:26
本帖需要重新編輯補全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1