wifi智能车
/* 这个版本是根据管理员iuviking的51单片机版WIFI小车下位机程序(通信协议版) 版本修改而来,我已经加入了八路舵机控制(p0口),ε咫ヤ涯/ */ #include<reg52.h> #include<math.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int uchar Buffer =0; //从串口接收的数据 uint URTAReceivedCount=0,n=1; uchar data Tempdatatable[5],CommandDatatable[5];//数据包 uchar serVal[2]; uint pwm[]={1120,1190,1382,1382,1382,1382,1382,1382}; //初始90度,(实际是1382.4,取整得1382) uchar pwm_flag=0; uint code ms0_5Con=461; //0.5ms计数 (实际是460.8,取整得461) uint code ms2_5Con=2304; //2.5ms计数 bit key_stime_ok; sbit StatusLight=P2^0; //状态灯 sbit MainLight=P2^1; //主大灯 sbit servo0=P0^0; //舵机控制 sbit servo1=P0^1; sbit servo2=P0^2; sbit servo3=P0^3; sbit servo4=P0^4; sbit servo5=P0^5; sbit servo6=P0^6; sbit servo7=P0^7; /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay_1ms(uint i)//1ms延时 { uchar x,j; for(j=0;j<i;j++) for(x=0;x<=148;x++); } void TurnOnStatusLight() { StatusLight=0; } /******************************************************************** * 名称 : Send_Data() * 功能 : 向上位机传送字符 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void Send_Data(uchar type,uchar cmd,uchar dat) { uchar data Buffer[5];//构建数据包 uchar *p; uint Send_Count=0; p = Buffer; Buffer[0]=0XFF; Buffer[1]=type; Buffer[2]=cmd; Buffer[3]=dat; Buffer[4]=0XFF; while(1) { if(*p==0XFF) { Send_Count++; //0XFF标志统计位 } SBUF = *p; //发送 while(!TI) //如果发送完毕,硬件会置位TI,等待发送完毕 { _nop_(); } p++; TI = 0; if(Send_Count == 2) //当统计到两次出现0XFF,则认为一个数据包发送完毕,跳出循环 { TI = 0; break;
- 1
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助