找回密码
 立即注册

QQ登录

只需一步,快速开始

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

小车循迹

[复制链接]
跳转到指定楼层
楼主
ID:331170 发表于 2018-5-16 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小车程序
  • #include <reg52.h>  
  •   
  • sbit IN1 = P1^0;   
  • sbit IN2 = P1^1;  
  • sbit ENA = P1^2;  
  • sbit IN3 = P1^3;  
  • sbit IN4 = P1^4;  
  • sbit ENB = P1^5;  
  •   
  • sbit left1 = P0^0;  
  • sbit left2 = P0^1;  
  • sbit right1 = P0^2;  
  • sbit right2 = P0^3;  
  •   
  • unsigned char zkb1 = 0;  
  • unsigned char zkb2 = 0;  
  • unsigned char t = 0;  
  •   
  •   
  • void init()  
  • {  
  •     EA = 1;  
  •     TMOD |= 0x01;  
  •     TH0 =(65536 - 100) / 256;  
  •     TL0 = (65536 - 100)% 256;     
  •     ET0 = 1;  
  •     TR0 = 1;  
  • }  
  •   
  • void timer0() interrupt 1  
  • {  
  •   
  •     TH0 = (65536 - 100) / 256;  
  •     TL0 = (65536 - 100) % 256;  
  •          
  •     if(t < zkb1)  
  •     {  
  • //      if(t % 2 == 0)  
  • //      {  
  • //          ENA = 1;  
  • //      }  
  • //      else   
  • //      {  
  • //          ENA = 0;  
  • //      }  
  •         ENA = 1;  
  •     }  
  •     else   
  •     {  
  •         ENA = 0;  
  •     }  
  •     if(t < zkb2)  
  •     {  
  • //      if(t%2 == 0)  
  • //      {  
  • //          ENB = 1;  
  • //      }  
  • //      else   
  • //      {  
  • //          ENB = 0;  
  • //      }  
  •         ENB =1;  
  •     }  
  •     else   
  •     {  
  •         ENB = 0;  
  •     }  
  •     ++t;  
  •     if(t >= 50)  
  •     {  
  •         t = 0;  
  •     }  
  •       
  •       
  •   
  • }  
  •   
  • void turn_left1()  
  • {  
  •     zkb1 = 13;  
  •     zkb2 = 0;  
  •   
  • }  
  •   
  • void turn_left2()  
  • {  
  •   
  •     zkb1 = 13;  
  •     zkb2 = 0;  
  • }  
  •   
  • void turn_right1()  
  • {  
  •     zkb1 = 0;  
  •     zkb2 = 13;  
  • }  
  •   
  • void turn_right2()  
  • {  
  •     zkb1 = 0;  
  •     zkb2 = 13;  
  • }  
  •   
  • void qianjin()  
  • {  
  •     zkb1 = 8;  
  •     zkb2 = 8;  
  • }  
  • void xunji()  
  • {  
  •     unsigned char flag;  
  •     if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))  
  •     {  
  •         flag = 0;  
  •     }  
  •     if((right2 == 0)&&(right1 ==1)&&(left1 == 0)&&(left2 == 0))  
  •     {  
  •         flag = 1;  
  •     }  
  •     if((right2 == 0)&&(right1 == 0)&&(left1 == 1)&&(left2 == 0))  
  •     {  
  •         flag = 2;  
  •     }  
  •     if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 1))  
  •     {  
  •         flag = 3;  
  •     }  
  •     if((right2 == 1)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))  
  •     {  
  •         flag = 4;  
  •     }  
  •     switch(flag)  
  •     {  
  •         case 0:qianjin();break;  
  •          
  •         case 1:turn_right1();break;  
  •          
  •         case 2:turn_left1();break;  
  •          
  •         case 3:turn_left2();break;  
  •          
  •         case 4:turn_right2();break;  
  •          
  •         default:qianjin();break;  
  •     }  
  • }  
  •   
  • void main()  
  • {  
  •     init();  
  • //  zkb1 = 40;  
  • //  zkb2 = 30;  
  •     IN1 = 0;  
  •     IN2 = 1;  
  •     IN3 = 0;  
  •     IN4 = 1;  
  •     while(1)  
  •     {  
  •               
  •             xunji();  
  •          
  •     }  
  • }  
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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