找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4660|回复: 6
收起左侧

遥控器控制51智能小车源码

[复制链接]
ID:211349 发表于 2017-7-5 15:09 | 显示全部楼层 |阅读模式
为了方便使用,自己改进了一下遥控器控制智能小车程序,现在分享给大家。
(不同遥控器可能稍有不同,本程序使用的配套遥控器如下图,如果你的和我不同,可以向卖家索要遥控器资料)

本程序使用的配套遥控器

本程序使用的配套遥控器
0.png

单片机源程序如下:
  1. #include<AT89x51.H>

  2. sbit lnfrared_led=P3^2;                //定义红外线接收端

  3. #define Imax  14000          //此处为晶振为11.0592时的取值,
  4. #define Imin  8000           //如用其它频率的晶振时,
  5. #define Inum1 1450          //要改变相应的取值。
  6. #define Inum2 700
  7. #define Inum3 3000

  8. /**********************电机驱动模块设置********************/

  9. #define Left_moto_go      {P1_0=1,P1_1=0,P1_2=1,P1_3=0;}    //左边两个电机向前
  10. #define Right_moto_go     {P1_4=1,P1_5=0,P1_6=1,P1_7=0;}    //右边两个电机向前

  11. #define Right_moto_back   {P1_4=0,P1_5=1,P1_6=0,P1_7=1;}    //右边两个电机向后
  12. #define Left_moto_back    {P1_0=0,P1_1=1,P1_2=0,P1_3=1;}    //左边两个电机向后

  13. #define Right_moto_Stop   {P1_4=0,P1_5=0,P1_6=0,P1_7=0;}    //右边两个电机停转
  14. #define Left_moto_Stop    {P1_0=0,P1_1=0,P1_2=0,P1_3=0;}    //左边两个电机停转


  15. unsigned char f=0;
  16. unsigned char Im[4]={0x00,0x00,0x00,0x00};
  17. unsigned char show[2]={0,0};
  18. unsigned long m,Tc;
  19. unsigned char IrOK;

  20. /***************************延时函数*********************************************/       
  21.    void delay(unsigned int k)
  22. {   
  23.      unsigned int x,y;
  24.          for(x=0;x<k;x++)
  25.            for(y=0;y<2000;y++);
  26. }
  27. /************************外部中断解码程序*****************************************/       
  28. void intersvr0(void) interrupt 1 using 1
  29. {
  30.     Tc=TH0*256+TL0;      //提取中断时间间隔时长
  31.     TH0=0;
  32.     TL0=0;              //定时中断重新置零
  33.     if((Tc>Imin)&&(Tc<Imax))
  34.     {
  35.         m=0;
  36.         f=1;
  37.         return;
  38.     }       //找到启始码

  39.     if(f==1)
  40.     {
  41.         if(Tc>Inum1&&Tc<Inum3)
  42.         {
  43.             Im[m/8]=Im[m/8]>>1|0x80; m++;
  44.         }
  45.         if(Tc>Inum2&&Tc<Inum1)
  46.         {
  47.          Im[m/8]=Im[m/8]>>1; m++; //取码
  48.         }
  49.         if(m==32)
  50.         {
  51.          m=0;  
  52.          f=0;
  53.          if(Im[2]==~Im[3])
  54.         {
  55.            IrOK=1;
  56.         }
  57.         else IrOK=0;   //取码完成后判断读码是否正确
  58.         }
  59.                //准备读下一码
  60.    }

  61. }

  62. /**********************电机运行模式设置*****************************************/

  63. //前速前进
  64.      void  run(void)
  65. {

  66.      Left_moto_go ;   //左电机往前走
  67.      Right_moto_go ;  //右电机往前走
  68. }

  69. //前速后退
  70.      void  back(void)
  71. {
  72.    
  73.      Left_moto_back ;   //左电机往前走
  74.      Right_moto_back ;  //右电机往前走
  75. }

  76. //左转
  77.      void  leftrun(void)
  78. {

  79.      Left_moto_back ;   //左电机往前走
  80.      Right_moto_go ;  //右电机往前走
  81. }

  82. //右转
  83.      void  rightrun(void)
  84. {

  85.      Left_moto_go ;   //左电机往前走
  86.      Right_moto_back ;  //右电机往前走
  87. }

  88. //停
  89.   void  Stop(void)
  90. {

  91.      Left_moto_Stop ;   //左电机往前走
  92.      Right_moto_Stop ;  //右电机往前走
  93.     }


  94. /***********************主函数**********************************************/                 
  95. void main(void)
  96. {
  97.          
  98.     m=0;
  99.     f=0;

  100.     IT0=1;
  101.     EX0=1;

  102.     TMOD=0x11;  
  103.     TH0=0;
  104.         TL0=0;
  105.     TR0=1;
  106.         EA=1;



  107.        
  108.         delay(100);          


  109.         while(1)                                                        /*无限循环*/
  110.         {

  111.             if(IrOK==1)                           //如果处理好后进行红外处理
  112.         {
  113.                    switch(Im[2])
  114.                       {
  115.             case 0x18:  run();                              //前进          2
  116. ……………………

  117. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
红外遥控智能小车.rar (656.55 KB, 下载次数: 70)

评分

参与人数 2黑币 +55 收起 理由
onefrog + 5 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2017-7-10 03:32 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:153199 发表于 2017-7-11 13:25 | 显示全部楼层
不错的资料,值得收藏
回复

使用道具 举报

ID:584662 发表于 2019-8-1 20:20 | 显示全部楼层
你这个电机驱动模块是什么型号,楼主
回复

使用道具 举报

ID:632112 发表于 2020-5-20 16:51 | 显示全部楼层
好资料,51黑有你更精彩
回复

使用道具 举报

ID:830969 发表于 2020-10-20 21:44 | 显示全部楼层

好资料,51黑有你更精彩
回复

使用道具 举报

ID:834074 发表于 2020-10-24 21:36 | 显示全部楼层
perfect
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表