|
#include<ioCC2530.h>
#define INA P0_0
#define INB P0_1
#define INC P0_2
#define IND P0_3//P0_0~P0_3
#define uint unsigned int
#define uchar unsigned char
uint i;
/***************初*始*化*****/
void InitIO()
{
P0SEL &=~((1<<0)|(1<<1)|(1<<2)|(1<<3)); //設(shè)置為普通IO
P0DIR |=((1<<0)|(1<<1)|(1<<2)|(1<<3)); //設(shè)置為輸出
}
/********串*口*初*始*化*函*數(shù)*******/
void InitUart()
{
CLKCONCMD &= ~0x40; // 設(shè)置系統(tǒng)時(shí)鐘源為 32MHZ晶振
while(CLKCONSTA & 0x40); // 等待晶振穩(wěn)定
CLKCONCMD &= ~0x47; // 設(shè)置系統(tǒng)主時(shí)鐘頻率為 32MHZ
PERCFG = 0x00;
//P1SEL = 0x0c; //P1_2,P1_3用作串口
//P2DIR &= ~0XC0; //P0 優(yōu)先級
U0CSR |= 0x80; //UART 方式
U0GCR |= 11;
U0BAUD |= 216; // 波特率設(shè)為115200
UTX0IF = 0; //UART0 TX 中斷標(biāo)志初始置位1
U0CSR |= 0X40; //允許接收
IEN0 |= 0x84; // 開總中斷
}
/********* 延*時(shí)*函*數(shù)*********/
void Delay(unsigned int n)
{
unsigned int i;
for(i = 0; i < n; i++)
for(i = 0; i < n; i++);
for(i = 0; i < n; i++)
for(i = 0; i < n; i++);
}
/*******run*函*數(shù)*用*于*藍(lán)*牙*遙*控*******/
void run(void)
{
for(i=0;i<13;i++)
{
INA=1;
INB=1;
INC=1;
IND=1;
}
}
void left(void)
{
for(i=0;i<13;i++)
{
INA=0;
INB=0;
INC=1;
IND=1;
}
}
void right(void)
{
for(i=0;i<13;i++)
{
INA=1;
INB=1;
INC=0;
IND=0;
}
}
void stop()
{
INA=0;
INB=0;
INC=0;
IND=0;
}
/******接*收*藍(lán)*牙*信*號*************/
char uart_receive_byte()
{
while(URX0IF==0);
URX0IF=0;
return U0DBUF;
}
void main()
{
InitIO();
InitUart();
while(1)
{
char tmp=uart_receive_byte();
switch(tmp)
{
case '1':
left();
break;
case '2':
run();
break;
case '3':
right();
break;
case '4':
stop();
break;
default:
stop();
}
}
}
|
|