|
本帖最后由 robotStudio 于 2014-3-21 13:56 编辑
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- int buffer[3];
- int rec_flag=0;
- /*-------------------------------------------------------------*/
- //串口初始化
- void UART_Init(void)
- {
- TMOD = 0x21;
- PCON = 0x00;
- SCON = 0x50;
- TH1 = 0xFd; //设置波特率 9600
- TL1 = 0xFd;
- TR1 = 1; //启动定时器1
- ES = 1; //开串口中断
- EA = 1; //开总中断
- IT0=0;
- EX0=1;
- }
- /*-------------------------------------------------------------*/
- //主函数
- void main(void)
- {
- UART_Init(); //初始化串口
- while(1)
- {
- }
- }
- void Communication_Decode(void)
- {
- if(buffer[0]==0x00)
- {
- switch(buffer[1])
- {
- case 0x01:P1=0xF6; return;
- case 0x02:P1=0xF9; return;
- case 0x03:P1=0xF5; return;
- case 0x04:P1=0xFA; return;
- case 0x00:P1=0x00; return;
- default: return;
- }
- }
- else
- {
- return;
- }
- }
- /*-------------------------------------------------------------*/
- //串口接收中断函数
- void INT_UartRcv(void) interrupt 4
- {
- static int i;
- if(RI==1)
- {
- RI = 0;
- if(rec_flag==0)
- {
- if(SBUF==0xff)
- {
- rec_flag=1;
- i=0;
- }
- }
- else
- {
- if(SBUF==0xff)
- {
- rec_flag=0;
- if(i==3)
- {
- Communication_Decode();
- }
- i=0;
- }
- else
- {
- buffer[i]=SBUF;
- i++;
- }
- }
- }
- else
- {
- TI = 0;
- }
- }
复制代码
论坛官方淘宝店第二分店:http://dsrobot.taobao.com为您提供优质的服务!
很多车友想用51单片机+L298N驱动板取代我们的驱动板,但是自己又不会改写下位机程序,特将最基本的源码放出。
程序控制协议是参照liuviking的下位机源码编写的,目前只能实现小车移动控制,没有编写超生波和舵机控制功能。有时间我会逐步完善。
|
评分
-
查看全部评分
|