新闻中心

EEPW首页>嵌入式系统>设计应用> 基于51单片机的无线遥控小车设计

基于51单片机的无线遥控小车设计

作者: 时间:2012-09-15 来源:网络 收藏

//////////////////////////////////////////////////////////***C51程序*******////////////////////////////////////////

#include reg51.h>#define TH0C 0xff#define TL0C 0xf6unsigned int dr_l,dr_r,times; //duty ratio 是占空比的意思。unsigned char flag;sbit leftv=P1^0;sbit leftg=P1^1;sbit rightv =P1^2;sbit rightg =P1^3;sbit ena=P1^4;sbit enb=P1^5;sbit key0=P2^5;sbit key_a=P2^0;sbit key_r=P2^1;sbit key_l=P2^2;sbit key_b=P2^3;void beforeint(void);void main(){while(1){ P2=0xff;if(key0){ena=1;enb=1;if(key_a){flag=1;dr_l=50;dr_r=50;leftv=1;rightv=1;beforeint();}if(key_r){flag=2;dr_l=99;dr_r=1;leftv=1;rightg=1;beforeint();}if(key_l){flag=3;dr_l=1;dr_r=99;leftg=1;rightv=1;beforeint();}if(key_b){flag=4;dr_l=50;dr_r=50;leftg=1;rightg=1;beforeint();}}else{ena=0;enb=0;flag=0;P1=0xff;continue;} }}void beforeint(void){TMOD=0x01;TH0=TH0C;TL0=TL0C;TR0=1;ET0=1;EA=1;}void time0(void) interrupt 1 using 2{times=0;TH0=TH0C;TL0=TL0C;times+=1;if(times>99){times=0;}if(flag==1){if(times=dr_l){leftg=0;}else{leftg=1;}if(times=dr_r){rightg=0;}else{rightg=1;}}else if(flag==2){if(times=dr_l){leftg=0;}else{leftg=1;}if(times=dr_r){rightv=0;}else{rightv=1;} }else if(flag==3){if(times=dr_l){leftv=0;}else{leftv=1;}if(times=dr_r){rightg=0;}else{rightg=1;}}else if(flag==4){if(times=dr_l){leftv=0;} else{leftv=1;}if(times=dr_r){rightv=0;}else{rightv=1;}}}

////////////////////////////////////////////////////******************************///////////////////////////////////
完整的程序代码从这里下:http://www.51hei.com/ziliao/file/xiaoch.rar
小车的演示视频:http://v.youku.com/v_show/id_XMTM3MDkyMDA4.html
程序是根据2272接收到的型号判断该左转右转还是前进后退,这个是四个基本功能,我们的小车也就实现这些功能,对于电源我们处理的不是很好,只是简单的将小车共地。并且把L298的逻辑电压单独接出来,这个小车以后还是会改进的,呵呵。

后记:该说的都说的差不多了,程序很简单,我只用了几个钟头包括仿真(Proteus仿真图就不贴出来了),主要是控制,然后就是产生PWM来进行对小车的调速,不过调试的时候 一次通过,虽然转的比较快,但是不影响转弯。有问题请随意,呵呵。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭