⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 38k.c

📁 本篇文章介绍了一种智能小车
💻 C
字号:
#include <reg51.h>
#include <INTRINS.H>
#define uchar unsigned char
#define uint  unsigned int
uchar data red_receive1[10];
uchar bdata rece;
sbit rece_0=rece^0;
uchar idata in_count;
sbit out_38k=P2^1;
sbit in_38K=P0^4;

idata struct count{uchar flag;uchar count[10];}in_38;
/********************************************************************
                    函数说明:延时函数
                              大概延时
                              del1*10(us)
*********************************************************************/
void delay(uchar del1)
 {
    uchar data i,j;
    for(i=del1;i<=0;i--)
       for(j=10;j<=0;j--)
                ;
 }
/********************************************************************
                    函数说明:38k波形发生函数
*********************************************************************/
void send_38k()
   {

         uchar data _38_count;
         EA=0;         //关闭中断,严格保证时间
         red_receive1[0]=0;
         _38_count=20;
         in_38.flag=1;
         _nop_();      //延时,避免冲撞
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
      while(_38_count>10)   //先发送10个方波
        {
             out_38k=0;
             _38_count--;
             _nop_();
             _nop_();
             _nop_();
             _nop_();
             _nop_();
             _nop_();
             _nop_();
             _nop_();



             _nop_();
             _nop_();
             _nop_();
             _nop_();
             _nop_();
             _nop_();
             _nop_();
             out_38k=1;
             _nop_();
       }
       while(_38_count>0)
            {
             out_38k=0;
             _38_count--;
             _nop_();
             _nop_();
              _nop_();
            //  _nop_();
             rece_0=!in_38K;
             red_receive1[0]=red_receive1[0]+rece;

             out_38k=1;
             _nop_();
             _nop_();
             _nop_();
             //_nop_();
             rece_0=!in_38K;
             red_receive1[0]=red_receive1[0]+rece;
            }
            EA=1;
 }

void main()
  {
     uchar idata i,m;
     delay(10);
     while(1)
       {
         send_38k();
         delay(30);
         if(red_receive1[0]>5)
         {
           m++;
         }
       }
 }


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -