找回密码
 立即注册

QQ登录

只需一步,快速开始

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

循迹小车单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:352201 发表于 2018-6-14 22:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
V1.1.rar (34.91 KB, 下载次数: 11)
需要的自取吧~~

  1. #include <REG52.H>
  2. #include <intrins.h>
  3. #include <STDIO.H>

  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. #define true  1
  7. #define false 0

  8. sbit ZEN = P1^0;
  9. sbit ZLA = P1^1;
  10. sbit ZLB = P1^2;
  11. sbit YLA = P1^3;
  12. sbit YLB = P1^4;
  13. sbit YEN = P1^5;


  14. sbit SSz = P2^2;
  15. sbit SSy = P2^1;
  16. sbit BiZ = P2^0;


  17. sbit Mod = P2^3;

  18. uchar temp;                 
  19. uchar Left_pwm_val =0;
  20. uchar Left_push_val =0;
  21. uchar Righ_pwm_val =0;
  22. uchar Righ_push_val =0;


  23. void qianj();
  24. void zuoz();
  25. void yuoz();
  26. void tingz();

  27. void Delay_1ms(uint i)//1ms延时
  28. {
  29.         uint x,j;
  30.         for(j=0;j<i;j++)
  31.         for(x=0;x<=148;x++);
  32. }

  33. void qianj()
  34. {
  35.   Left_push_val  = 10;
  36.   Righ_push_val  = 10;  
  37.   ZLA = 0;
  38.   ZLB = 1;
  39.   YLA = 0;
  40.   YLB = 1;
  41. }

  42. void zuoz()
  43. {
  44.   Left_push_val  = 0;
  45.   Righ_push_val  = 10;  
  46.   ZLA = 0;
  47.   ZLB = 1;
  48.   YLA = 0;
  49.   YLB = 1;
  50. }
  51. void youz()
  52. {
  53.   Left_push_val  = 10;
  54.   Righ_push_val  = 0;  
  55.   ZLA = 0;
  56.   ZLB = 1;
  57.   YLA = 0;
  58.   YLB = 1;
  59. }

  60. void tingz()
  61. {
  62.   ZLA = 0;
  63.   ZLB = 0;
  64.   YLA = 0;
  65.   YLB = 0;
  66. }

  67. void Car_Run(void)
  68. {
  69.         if((SSz == 0)&&(SSy == 0)){
  70.             qianj();
  71.         }
  72.         if((SSz == 1)&&(SSy == 1)){
  73.             tingz();
  74.         }
  75.         if((SSz == 1)&&(SSy == 0)){
  76.             youz();
  77.         }
  78.         if((SSz == 0)&&(SSy == 1)){
  79.             zuoz();
  80.         }               
  81. }

  82. void Left_pwm_moto(void)
  83. {  
  84.     if(Left_pwm_val<=Left_push_val){
  85.            ZEN=1;
  86.         } else {
  87.            ZEN=0;
  88.         }
  89.         if(Left_pwm_val>=10)
  90.            Left_pwm_val=0;
  91. }

  92. void Righ_pwm_moto(void)
  93. {  
  94.     if(Righ_pwm_val<=Righ_push_val){
  95.        YEN=1;        
  96.         } else {
  97.        YEN=0;        
  98.         }
  99.         if(Righ_pwm_val>=10)
  100.            Righ_pwm_val=0;
  101. }

  102. void InitUART(void)
  103. {
  104.     TMOD = 0x21;
  105.     SCON = 0x50;
  106.     TH1 = 0xFA;
  107.     TL1 = TH1;
  108.     PCON = 0x80;
  109.     EA = 1;
  110.     ES = 1;
  111.     TR1 = 1;
  112. }

  113. void PWM_INIT()
  114. {
  115.         TH0= 0XFC;                  //1ms定时
  116.         TL0= 0X18;
  117.         TR0= 1;
  118.         ET0= 1;
  119.         EA = 1;
  120. }

  121. void main (void)
  122. {
  123.     uchar Left_Speed = 0,Righ_Speed = 0;
  124.     bit modflag = 0;

  125.         Left_Speed = 9;
  126.         Righ_Speed = 8;
  127.          
  128.     InitUART();
  129.         PWM_INIT();
  130.         Left_push_val  = Left_Speed;   //PWM 调节参数1-10   1为最慢,10是最快  改这个值可以改变其速度
  131.         Righ_push_val  = Righ_Speed;   //PWM 调节参数1-10   1为最慢,10是最快  改这个值可以改变其速度
  132.         Delay_1ms(500);
  133.         while(1){
  134.             zuoz();
  135.                 //Car_Run();
  136.     }
  137. }

  138. void UARTInterrupt(void) interrupt 4
  139. {
  140.         if(RI) {
  141.                 RI = 0;     
  142.                 temp = SBUF;       
  143.         }
  144. }

  145. void timer0()interrupt 1   using 2
  146. {
  147.      TH0=0XFE;       
  148.          TL0=0X0C;
  149.          Left_pwm_val++;
  150.          Righ_pwm_val++;
  151.          Left_pwm_moto();
  152.          Righ_pwm_moto();
  153. }          
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2018-6-15 02:06 | 只看该作者
补全投文件后可获得积分
回复

使用道具 举报

板凳
ID:7922 发表于 2018-6-15 09:56 | 只看该作者
可以打板测试吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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