小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
楼主: liuviking

最简单的51单片机智能小车下位机源代码工程(C语言编写)

  [复制链接]
发表于 2015-4-23 09:33:50 | 显示全部楼层

完全兼容论坛上位机的基于51单片机版的下位机程序(带8路舵机)
回复 支持 反对

使用道具 举报

发表于 2015-5-28 22:34:20 | 显示全部楼层
下东西会贴
回复 支持 反对

使用道具 举报

发表于 2015-11-15 16:08:44 | 显示全部楼层
  1. /********************************************************************
  2. * 功能 : 舵机PWM中断, //舵机控制函数 周期为20ms 一个循环20MS  = 8*2.5ms
  3. ***********************************************************************/
  4. void SteeringGear() interrupt 1
  5. {
  6. TH0=0Xff;
  7. TL0=0X9c;
  8. t++;
  9. if(t<zkb1)
  10. {
  11. pwm1=1;
  12. }        //当zkbl大于t输出高电平,否则为低电平
  13. else
  14. {
  15. pwm1=0;
  16. }
  17. if(t<zkb2)
  18. {
  19. pwm2=1;
  20. }//当zkbr大于t输出高电平,否则为低电平
  21. else
  22. {
  23. pwm2=0;}//因此占空比就为zkbl/10
  24. //
  25. if(t==10)
  26. {
  27. t=0;
  28. }            
  29.     switch(pwm_flag)
  30.     {
  31.         case 1:  servo0=1; TH0=-pwm[0]>>8; TL0=-pwm[0]; break;
  32.         case 2:  servo0=0; TH0=-(ms2_5Con-pwm[0])>>8; TL0=-(ms2_5Con-pwm[0]); break;
  33.                 case 3:  servo1=1; TH0=-pwm[1]>>8; TL0=-pwm[1]; break;
  34.         case 4:  servo1=0; TH0=-(ms2_5Con-pwm[1])>>8; TL0=-(ms2_5Con-pwm[1]); break;   
  35.                 case 5:  servo2=1; TH0=-pwm[2]>>8; TL0=-pwm[2]; break;
  36.         case 6:  servo2=0; TH0=-(ms2_5Con-pwm[2])>>8; TL0=-(ms2_5Con-pwm[2]); break;
  37.                 case 7:  servo3=1; TH0=-pwm[3]>>8; TL0=-pwm[3]; break;
  38.         case 8:  servo3=0; TH0=-(ms2_5Con-pwm[3])>>8; TL0=-(ms2_5Con-pwm[3]); break;
  39.                 case 9:  servo4=1; TH0=-pwm[4]>>8; TL0=-pwm[4]; break;
  40.         case 10: servo4=0; TH0=-(ms2_5Con-pwm[4])>>8; TL0=-(ms2_5Con-pwm[4]); break;
  41.         case 11: servo5=1; TH0=-pwm[5]>>8; TL0=-pwm[5]; break;
  42.         case 12: servo5=0; TH0=-(ms2_5Con-pwm[5])>>8; TL0=-(ms2_5Con-pwm[5]); break;
  43.                 case 13: servo6=1;TH0=-pwm[6]>>8; TL0=-pwm[6]; break;                     
  44.         case 14: servo6=0;TH0=-(ms2_5Con-pwm[6])>>8; TL0=-(ms2_5Con-pwm[6]); break;  
  45.         case 15: servo7=1;TH0=-pwm[7]>>8;  TL0=-pwm[7]; break;      
  46.         case 16: servo7=0;TH0=-(ms2_5Con-pwm[7])>>8; TL0=-(ms2_5Con-pwm[7]); break;
  47.                 default: TH0=0xff; TL0=0x80; pwm_flag=0;         
  48.   }               
  49.             pwm_flag++;
  50.        
  51.                 }代码中我又写了两路PWM,为什么直接死机了,应该怎么改,这两路是控制运行电机的。
复制代码
回复 支持 反对

使用道具 举报

发表于 2015-11-15 16:10:44 | 显示全部楼层
  1. TH0=0Xff;
  2. TL0=0X9c;
  3. t++;
  4. if(t<zkb1)
  5. {
  6. pwm1=1;
  7. }        //当zkbl大于t输出高电平,否则为低电平
  8. else
  9. {
  10. pwm1=0;
  11. }
  12. if(t<zkb2)
  13. {
  14. pwm2=1;
  15. }//当zkbr大于t输出高电平,否则为低电平
  16. else
  17. {
  18. pwm2=0;}//因此占空比就为zkbl/10
  19. //
  20. if(t==10)
  21. {
  22. t=0;
  23. }            原来的程序中我主要加了这个,因为我的不是L298N,需要PWM控制才能运行,我想产生两路中断。、
复制代码
回复 支持 反对

使用道具 举报

发表于 2015-12-5 23:22:03 | 显示全部楼层
谢谢分享!!!支持一下
回复 支持 反对

使用道具 举报

发表于 2015-12-30 16:19:17 | 显示全部楼层
资料看起来还不错 果断收藏
回复 支持 反对

使用道具 举报

发表于 2016-2-11 07:36:33 | 显示全部楼层
支持一下, 支持一下!
回复 支持 反对

使用道具 举报

发表于 2016-2-14 21:15:43 | 显示全部楼层
分享一下再说
回复 支持 反对

使用道具 举报

发表于 2016-5-20 10:46:07 | 显示全部楼层
很值得借鉴
回复 支持 反对

使用道具 举报

发表于 2017-11-25 21:00:41 | 显示全部楼层
看到了就顶一下!
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-4-25 16:41 , Processed in 1.103430 second(s), 17 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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