標(biāo)題:
藍(lán)牙小車(chē)制作程序
[打印本頁(yè)]
作者:
lfdlt
時(shí)間:
2017-5-24 15:53
標(biāo)題:
藍(lán)牙小車(chē)制作程序
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar a; //串口接收數(shù)據(jù)
uchar flag; //串口標(biāo)志
sbit IN0=P1^0; //左前
sbit IN1=P1^1;
sbit IN2=P1^2; //左后
sbit IN3=P1^3;
sbit IN4=P1^4; //右前
sbit IN5=P1^5;
sbit IN6=P1^6; //右后
sbit IN7=P1^7;
sbit EN0=P0^0; //左前
sbit EN1=P0^1;//左后
sbit EN2=P0^2;//右前
sbit EN3=P0^3;//右后
void system_initial()
{
TMOD = 0x20;
TH1 = 0xfd; //波特率9600
TL1 = 0xfd;
TR1 = 1; //打開(kāi)定時(shí)器1
SCON = 0x50; //允許接受
PCON = 0x80;
EA = 1; //打開(kāi)定時(shí)器
ES = 1; //打開(kāi)串口
}
void delay_us(uint x) //微妙延時(shí)
{
while(x--);
}
/*void delay_ms(uint x) //毫秒延時(shí)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
void SendChar(uchar Char) //發(fā)送一個(gè)字符
{
SBUF = Char;
while(!TI);
TI = 0;
}
void SendString(unsigned char *p) //發(fā)送一個(gè)字符串
{
while(*p)
{
SendChar(*p);
p++;
}
}*/
void qianjin() //前進(jìn)
{
while(1)
{
uint jia=0, T=1000;
EN2=1;EN3=1;// 右輪使能
IN4=1;IN5=0;IN6=1;IN7=0; //右輪正常轉(zhuǎn)
IN0=1;IN1=0;IN2=1;IN3=0;
while(T<jia)
{
EN0=0;EN1=0;
delay_us(jia++);
EN0=1;EN1=1;
delay_us(T-jia);
}
}
}
void houtui()
{
while(1)
{
uint jia=0, T=1000;
EN2=1;EN3=1;// 右輪使能
IN4=0;IN5=1;IN6=0;IN7=1; //右輪正常轉(zhuǎn)
IN0=0;IN1=1;IN2=0;IN3=1;
while(T!=jia)
{
EN0=0;EN1=0;
delay_us(jia++);
EN0=1;EN1=1;
delay_us(T-jia);
}
}
}
void stop() //停止
{
EN0=0;EN1=0;EN2=0;EN3=0; //停止使能端
}
void left_tra() //左轉(zhuǎn)
{
EN0=0;EN1=0;//停止左邊使能
EN2=1;EN3=1; //打開(kāi)右邊使能
IN4=1;IN5=0;IN6=1;IN7=0; //右輪正常轉(zhuǎn)
}
void right_tra()
{
EN2=0;EN3=0; //停止右邊使能
EN0=1;EN1=1;
IN0=0;IN1=1;IN2=0;IN3=1; //左邊輪子轉(zhuǎn)
}
void main()
{
system_initial(); //初始化
while(1);
}
void ser() interrupt 4 //串口中斷
{
if(RI==1)//接受中斷結(jié)束
{
RI=0; //清除接受中斷結(jié)束
a=SBUF; //從單片機(jī)中讀取出數(shù)據(jù)
SBUF=a;//向藍(lán)牙串口發(fā)送一個(gè)消息,證明通信良好
switch(a)
{
case 0: //前進(jìn)
qianjin(); break;
case 1:// 后退
houtui();break;
case 2:
left_tra();break;
case 3:
right_tra();break;
case 4:stop();break;
}
while(!TI) //發(fā)送中斷->結(jié)束不等于1
TI=0;
}
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1