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

📄 irshou1.c

📁 音乐控制程序
💻 C
字号:
#include<AT89x55.H> 
#include <stdio.h>
#include <INTRINS.H> 
//#include  "Uart.h"
#define uint  unsigned int
#define uchar unsigned char
sbit ir=P1^6;
sbit out=P1^7;
uchar irdata[4];
uchar *irdat;
uint count0,count1;
uchar count10,count11;
uchar t;
bit    flag,flag1,flag0;
//*********************************
//t*2us   4.5ms  equ 561   9ms equ 1124  0.56ms equ 69 2.5ms equ 311
//*********************************
void delay(uint t)
     { while(--t);
	 }
//*********************************
//
//*********************************
void checkhead()
     {   while(ir==0)
	        {count0++;
	         }
         if(count0>140)
             {flag0=1;
             }
	      count0=0; 
		  if(flag0==1)
		     { flag0=0;
			   while(ir==1)
	                {count1++;
	                }
	          if(count1>350)
                    {flag1=1;
                    }
	          count1=0; 
			   if(flag1==1)
	               {flag=1; 
		            flag1=0;
                    }
	         
     		 }
	  }
uchar irshou(uchar *data1)
{ //uchar data1,BitCnt,i;
   uchar i,j;
   checkhead();
	    if(flag==1)
          { 
          // out=0;
		   flag=0;
           //t=33;
		   for(i=0;i<4;i++) //共4个字节
		   {   //1
		       *data1=0;
			 for(j=0;j<8;j++)
              { while(ir==0)
	              { count10++;
			      }
				  if(count10>20)
                       {(*data1)<<=1;
					    //out=0;
                        }
			   //0
			   while(ir==1)
	               {count11++;
			         }
			    if(count11<60)
                    {*data1|=1;
					  //out=0;
                     }
				count10=0;
			    count11=0;
				//out=1;
			   }
			   
              data1++;
			   //return(0);
		   }
          
	   }
 
   return 0; 
}


void uart_init()
{

   SCON  = 0xDA;        // SCON: mode 1, 8-bit UART, enable rcvr      */
   TMOD |= 0x20;        // TMOD: timer 1, mode 2, 8-bit reload        */
   TH1   = 0xFD;         // TH1:  reload value for 1200 baud @ 12MHz   */
   TR1   = 1;           // TR1:  timer 1 run                          */
   TI    = 1;           // TI:   set TI to send first char of UART    */
   
}

void send(unsigned char ch)
   {SBUF=ch;
    while(TI==0);
    TI=0;
    }

void main()
{   uchar c1,c2;
    uart_init();
	while(1)
	{ //checkhead();
        irshou(&irdata);
	    //P2=irdata[2];
        //P3=irdata[3];
	  // 
	  if(irdata[2]==~irdata[3])
	     {c1=irdata[2]/10;
	      c2=irdata[2]%10;
	      send('0'+c1);
	      send('0'+c2);
		  //send(irdata[2]);
		 }
     //out=1;
	 }
}

⌨️ 快捷键说明

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