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

📄 incept.c

📁 89S51单片机上开发红外线遥控,开发环境KEIL C51,
💻 C
字号:
/*********************************************************************/
//                     incept.c
//                    遥控接收处理器
//                    LRM 2004.10.22      
/*********************************************************************/
//使用AT89C52单片机,12MHZ晶振,
//
//#pragma src(E:\remote.asm)
#include "reg51.h"
#include "intrins.h"     //_nop_();延时函数用
//
#define uchar unsigned char
#define uint unsigned int
#define qudong P1          
#define ShuJu P2
#define WeiXuan P0
#define qianwei 0xf7
#define baiwei 0xfb
#define shiwei 0xfd
#define gewei 0xfe
#define QianJin 0x0a
#define HouTui  0x05
#define YouZhuan 0x0b
#define ZuoZhuan 0x0e
#define DingZuo  0x06
#define DingYou  0x09	
#define ShaChe  0x0F
//
sbit  remotein=P3^1;         // 遥控输入
sbit  sin=P3^0;              //基准正弦波相位输入
sbit  AA=P0^0;
sbit  BB=P0^1;
sbit  fengming=P3^5;
uchar code tab[]= {0x7b,0x22,0x57,0x37,0x2e,0x3D,0x7D,0x23,0x7F,0x3f,0x4f,0x4d};	 /*后两个为P,F*/

//
uchar a=0,b=0,c=0,d=0,i,j,k,m=0,e=0,f,g;
uchar keynum;               //值存放
//
////
/*********1毫秒延时程序**********/
delay1ms(uchar t)
{
 for(i=0;i<t;i++)
   for(j=0;j<120;j++)
   ;
}



void delay(uchar k)
{uchar idata j;
 uchar i;
for(i=0;i<k;i++)
for(j=0;j<255;j++);
} 

//
/***********初始化函数**********/
clearmen()
{
EX0=1;
EA=1;                 //开总中断
}
//
//

//
/**********函数************/
/*loop()
{
switch(disout&0x07)
{
case 0:{s=1;break;}
case 1:{s=2;break;}
case 2:{s=3;break;}
case 3:{s=4;break;}
case 4:{s=5;break;}
case 5:{s=6;break;}
case 6:{s=7;break;}
case 7:{s=8;break;}
default:break;}
} */
//
//
/***********主函数***************/
main()
{fengming=0;
delay(255);
delay(255);
delay(255);
fengming=1;
clearmen();          //初始化
P2=0xfe;
while(1)
      {	g=0;
       WeiXuan=gewei;
       ShuJu=tab[a];
       delay(5);
	   
       WeiXuan=shiwei;
       ShuJu=tab[b];
       delay(5);
       WeiXuan=baiwei;
       ShuJu=tab[c];
       delay(5);
	  
       WeiXuan=qianwei;
       ShuJu=tab[d];
       delay(5);
	   if(g==1)
	     {fengming=0;
		  delay(200);
		  fengming=1;
	   	  }
	  
	   }
	   
    	

}
//
//
/************外中断遥控接收函数**************/
//外中断0
void intt0(void) interrupt 0 
{EX0=0;keynum=0;
if(remotein==0)
  {delay1ms(1);
   if(remotein==0)
    {while(1)
	    {while(remotein==0);
	     keynum++;k=0;
	     while(remotein==1){delay1ms(1);k++;if(k>2){m++; goto OOUUTT;};}
	   	 }				
					   
					   		   
	   	          
                   OOUUTT:
				     if(m<4)
				   		 switch(m)
						     { 
							    case 1:e=keynum;break;
								//case 2:f=keynum;break;
								//case 3:g=keynum;break;
								default:break;
							 }
				     
					 else {m=0;
					       //if(e==keynum&&f==keynum) 
						   if(e==keynum) 
						   { g=1; 	 	 
	                    switch(keynum)
	                          {
	  							 case 1:{a++;if(a==9) a=0;qudong=YouZhuan;break;}
								 case 2:{b++;if(b==9) b=0;qudong=QianJin;break;}
								 case 3:{c++;if(c==9) c=0;qudong=ZuoZhuan;break;}
    							 case 4:{d++;if(d==9) d=0;qudong=HouTui;break;}
								 case 5:{qudong=ShaChe;break;}
		  					     default:break;
	 						   }
					        }	
					  }
	 }					 
   }
EX0=1;
}
//
//
//*********************结束**************************//

⌨️ 快捷键说明

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