找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2512|回复: 0
打印 上一主题 下一主题
收起左侧

无线遥控智能小车-可以设定PWM。

[复制链接]
跳转到指定楼层
楼主
ID:79544 发表于 2015-7-28 19:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. /*****************************************************
  2.         用IR2104加IRF3205MOS管做驱动板74HC00作逻辑驱动IR2104
  3.        
  4.         功能:无线遥控智能小车
  5.         单片机;STC12C5608AD
  6.         晶振:12M
  7.         作者:苏义江
  8.         时间:2015-7-18
  9.         其他避障,循迹,超声波 后续
  10. ****************************************************/
  11. #include<reg52.h>
  12. #define uchar unsigned char
  13. #define uint unsigned int
  14. sbit dir1        =P1^0;//左电机端口方向控制
  15. sbit dir2        =P1^1;//左电机端口方向控制
  16. sbit pwm1        =P1^2;//PWM输出
  17. sbit dir3        =P1^3;//右电机端口方向控制
  18. sbit dir4        =P1^4;//右电机端口方向控制

  19. sbit A = P2^0;//无线遥控A键                       
  20. sbit b1= P2^1;//无线遥控B键
  21. sbit C = P2^2;//无线遥控C键
  22. sbit D = P2^3;//无线遥控D键

  23. sbit qian   =P3^0;//按键
  24. sbit hou    =P3^1;//按键
  25. sbit zuo        =P3^4;//按键
  26. sbit you        =P3^5;//按键

  27. uchar t=0,pwm=0;//pwm是%0的占空比
  28.                                 //t是计数器加1的全局变量                                               
  29. void delayms(uint z);
  30. void tim0_init();//初始化
  31. void qianjin();
  32. void houtui();
  33. void zuozhuan();
  34. void youzhuan();
  35. void down();//停止子函数

  36. void wuxian();


  37. void wuxian()//无线函数
  38. {
  39.         if(A==1 && b1!=1 && D!=1&& C!=1)//按下A键
  40.              {
  41.                            qianjin();
  42.                  }
  43.         if(b1==1 && A!=1 && C!=1&& D!=1)//按下B键
  44.              {
  45.                             houtui();
  46.                  }
  47.         if(C==1 && b1!=1 && D!=1&& A!=1)//按下C键
  48.              {
  49.                            zuozhuan();
  50.                  }
  51.         if(D==1 && A!=1 && C!=1&& b1!=1)//按下D键
  52.              {
  53.                            youzhuan();
  54.                  }
  55.         if(A==1 && b1==1)//同时按下A键和B键
  56.              {
  57.                            down();
  58.                  }
  59. }

  60. void qianjin()
  61. {
  62.         dir1=0;//方向
  63.         dir2=1;//方向
  64.         pwm1=10;//PWM
  65.         dir3=0;//方向
  66.         dir4=1;//方向
  67.         pwm1=10;//PWM
  68. }
  69. void houtui()
  70. {
  71.         dir1=1;//方向
  72.         dir2=0;
  73.         pwm1=10;//PWM
  74.         dir3=1;
  75.         dir4=0;
  76.         pwm1=10;//PWM
  77. }
  78. void zuozhuan()
  79. {
  80.         dir1=1;
  81.         dir2=0;
  82.         pwm1=10;
  83.         dir3=0;
  84.         dir4=1;
  85.         pwm1=10;
  86. }
  87. void youzhuan()
  88. {
  89.         dir1=0;
  90.         dir2=1;
  91.         pwm1=10;
  92.         dir3=1;
  93.         dir4=0;
  94.         pwm1=10;
  95. }
  96. void down()//停止子函数
  97. {
  98.         dir1=0;
  99.         dir2=0;
  100.         pwm1=0;
  101.         dir3=0;
  102.         dir4=0;
  103.        
  104. }
  105. void main()
  106. {
  107.         tim0_init();

  108.         while(1)
  109.         {
  110.                 wuxian();
  111.         }
  112. }

  113. void delayms(uint z)
  114. {
  115.         uint s,y;
  116.         for(s=z;s>0;s--)
  117.         for(y=410;y>0;y--);
  118. }

  119. void tim0_init()//初始化
  120. {
  121.         TMOD=0X01;
  122.         TH0=(65536-20)/256;//赋初值0.02MS中断100次是1MS就是1KHZ频率
  123.         TL0=(65536-20)%256;//赋初值0.02MS
  124.         ET0=1;
  125.         EA=1;
  126.         TR0=1;
  127. }
  128. void tim0() interrupt 1
  129. {
  130.         TH0=(65536-20)/256;//赋初值0.02MS中断100次是1MS就是1KHZ频率
  131.         TL0=(65536-20)%256;//赋初值0.02MS
  132.         t++;
  133.         if(t<=98)
  134.         {
  135.                 pwm1=1;       
  136.         }
  137.         else
  138.                 pwm1=0;
  139.         if(t==100)
  140.         {t=0;}       
  141. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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