找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 1815|回复: 0
收起左侧

89c52单片机超声波红外避障程序 两轮加万向轮小车

[复制链接]
ID:612798 发表于 2019-10-30 10:33 | 显示全部楼层 |阅读模式
两轮加万向轮小车 超声波避障,红外寻迹

单片机源程序如下:
  1. #include <reg52.h>
  2. #include<intrins.h>

  3. sbit INFRARED_RAY_RIGHT = P1^2;
  4. sbit INFRARED_RAY_LEFT = P1^3;
  5. sbit TRIG = P1^0;
  6. sbit ECHO = P1^1;

  7. unsigned char HighRH = 0;
  8. unsigned char HighRL = 0;
  9. unsigned char LowRH = 0;
  10. unsigned char LowRL = 0;

  11. void SupersonicWave();

  12. void main(){

  13.         unsigned int Time;
  14.         double Distance;
  15.         TRIG = 0;
  16.         ECHO = 0;
  17.         EA = 1;
  18.         TMOD = 0x11;
  19.         P0=0x05;
  20.         while( 1 ){               
  21. //                SupersonicWave();
  22. //                Time = TH1 * 256 + TL1;                       
  23. //                Distance = Time * 0.017;                //????,???CM
  24. //                if( Distance < 20 ){
  25. //                        P0 = 0x00;
  26. //                }else{
  27.                         if( INFRARED_RAY_LEFT ==0&& INFRARED_RAY_RIGHT==1 ){                        //???????,??????,????
  28.                                 P0 = 0x01;                                                                                                   
  29.                         }else if( INFRARED_RAY_LEFT==1 && INFRARED_RAY_RIGHT==0 ){        //???????,??????,????
  30.                                 P0 = 0x04;
  31.                         }else{                                                                                                        //??????????????,?????
  32.                                 P0 = 0x05;
  33.                         }
  34.                         
  35. //                }                 
  36.         }        
  37. }



  38. void SupersonicWave(){
  39.         
  40.         TH1 = 0x00;
  41.         TL1 = 0x00;
  42.         ET1 = 0;                                                                                //?????1??

  43.     TRIG = 1;
  44.     _nop_();_nop_();_nop_();_nop_();_nop_();                  //??10us
  45.         _nop_();_nop_();_nop_();_nop_();_nop_();
  46.         TRIG = 0;
  47.         while ( ECHO == 0 );                                                           //??EHCO?????

  48.         TR1 = 1;                                                                                //??T1

  49.         while ( ECHO == 1 );
  50.         TR1 = 0;                                                        //??T1
  51. }
复制代码

所有资料51hei提供下载:
红外超声波.zip (100 KB, 下载次数: 18)


回复

举报

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

本版积分规则

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

Powered by 单片机教程网

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