标题: 自动往返小车程序 [打印本页]

作者: 51黑专家    时间: 2016-5-8 19:50
标题: 自动往返小车程序



全部资料(压缩包)下载:
自动往返小车程序0411定稿.rar (142.65 KB, 下载次数: 93)


还是吐槽下电设赛题出的不严谨,我们做的B题,轴流风机这个坑啊,买了好多个,最后发现都不好用,主要是响应太慢,从通电到满速需要10s。关键我们还在西南地区,顺丰都要一天多才能到。换了无刷电机(无刷确实比轴流风机好控制的多)+桨。
回到正题吧,这个是01年的题,用的主控是51,然后L298N做电机驱动。加了超声波控制小车和墙壁的距离,当时做的只是简单控制,没加PID。使用nokia5110显示速度和时间,51单片机用这个显示屏还是比较方便的,换了STM32之后用OLED更舒服



主程序如下:
  1. #include <reg52.h>
  2. #include <init.h>
  3. #include <interrupt.h>
  4. #include <turn.h>
  5. #include <control.h>
  6. #include <delay.h>
  7. //#include <speed.h>
  8. #include <nokia_5110.h>
  9. #include <display.h>
  10. #include <ultrasonic.h>
  11. //#include <uart.h>

  12. #define uchar unsigned char
  13. #define uint  unsigned int
  14. #define ulong unsigned long
  15. typedef unsigned char BYTE;

  16. sbit light=P3^7;        //探头中
  17. sbit enle1=P2^0;//使能端左,前轮
  18. sbit enle2=P2^1;//左后
  19. sbit enri1=P2^2;//使能端右,前轮
  20. sbit enri2=P2^3;//右后
  21. sbit Trig=P2^6;//  定义HC-SR04发送端
  22. sbit Echo=P2^7;//定义HC-SR04接收端

  23. uchar right;//pwm右边
  24. uchar left;//pwm左边
  25. uchar pwm_time;
  26. uint timer;//总计时,单位是10ms
  27. uchar time_c;//timec -- timecounter
  28. uchar line_counter;//计量通过黑线数目
  29. uchar black;//标记是否通过黑线
  30. uchar circle;//计量轮圈转动圈数
  31. uint w_hole;//wheel hole 计量轮子洞洞数目
  32. uint distance;
  33. uint usonic_time,usonic_flag=0;
  34. float usonic_s;
  35. //BYTE bu_F[3];
  36. //BYTE wan,qian,bai,shi,ge;

  37. /*************
  38. 主函数
  39. **************/

  40. void main()
  41. {
  42.         init();
  43.         straight_full();
  44. //        time_display();
  45. //        delay_ms(500);
  46. //        distance_display();
  47. //        delay_ms(500);
  48.         while(1){       
  49.                 time_display(timer,0);
  50. //                time_display(timer,3);
  51. //                time_display(timer,2);
  52.                 distance =circle*20.72+w_hole*1.18;
  53.                 distance_display();
  54.         //        lenth();
  55.         //        zitai();
  56.                 control();
  57.                 zitai();
  58.         }
  59. }

  60. /*void T0_timer0 () interrupt 1 //定时器0,PWM,记录时间
  61. {
  62.         //pwm();
  63.                 timer++;
  64.        
  65.                 TH0=(65536-10000)/256;//1ms???? 12M   
  66.                 TL0=(65536-10000)%256; //????
  67. }*/
复制代码




作者: zhaoboyuan222    时间: 2017-10-30 15:47
为什么下载不下来呢?
作者: sss1234567    时间: 2018-4-15 20:41
打不开

作者: LT81041667    时间: 2018-4-18 00:29
有没有电路图,和原件清单啊
作者: kangkaixuan666    时间: 2018-4-21 20:33
原件和原理图
作者: 霍特    时间: 2019-3-6 13:28
程序不完整   看不到   最重要的函数
作者: Z12456    时间: 2019-9-12 17:01
感谢感谢。。。。
作者: xmm123    时间: 2020-2-25 12:48
麻烦楼主能给我一份完整文件吗,谢谢了啊
作者: 九月九九    时间: 2020-4-19 11:02
有没有仿真呀?跪求
作者: kukuza    时间: 2020-4-22 11:51
很有用哒




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1