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

📄 jianpan.c

📁 红外发射
💻 C
字号:
#include<reg51.h>
unsigned char data keyword;
void delay(void);         //消键抖动延时函数
unsigned char keyscan(void);     //键扫描函数
unsigned char keyin(void);          //键输入函数
unsigned char data keyword;     //存放键输入字
sbit p3_5=P3^5;
void delay_nus(unsigned int nus)    ; 延时子程序
{
	unsigned int i;
        for(i=nus;i>0;i--);
}

void data_1(void)                  ;脉冲1
{

	p3_5=0;
	delay_nus(93);
	
	p3_5=1;
	delay_nus(280); 
}
void data_0(void)                   ;脉冲0             
{

	p3_5=0;
	delay_nus(93);
	p3_5=1;
	delay_nus(93); 
}

void header(void)                   ;引导码
{

                      
	p3_5=0;
	delay_nus(750);
	p3_5=1;
	delay_nus(750); 
	data_1();
	data_1();
	data_1();
	data_1();
	data_0();
	data_0();
	data_0();
	data_0();
	data_1();
	data_1();
	data_1();
	data_1();
	data_0();
	data_0();
	data_0();
	data_0();
	
}



main()
{ 
  p3.5=0 ;


keyword=keyin();
switch (keyword)
{



case 0x11:header();         //前进
	data_O(); 
	data_O();
	data_O();
	data_1();
	data_O(); 
	data_O();
	data_O();
	data_1();

	data_1(); 
	data_1();
	data_1();
	date_0();
	data_1(); 
	data_1();
	data_1();
	date_0();
	break; 


case 0x12: header();            //后退
        data_O(); 
	data_O();
	data_O();
	data_1();
	data_O(); 
	data_O();
	data_1();
	date_0();

	data_1(); 
	data_1();
	data_1();
	date_0();
	data_1(); 
	data_1();
	date_0();
	data_1();
        break;


case 0x14: header();            //左转
        data_O(); 
	data_O();
	data_O();
	data_1();
	data_O(); 
	data_1();
	date_0();
	date_0();

	data_1(); 
	data_1();
	data_1();
	date_0();
	data_1(); 
	date_0();
	data_1();
	data_1();
        break;


case 0x18: header();                  //右转
        data_O(); 
	data_O();
	data_O();
	data_1();
	data_1(); 
	date_0();
	date_0();
	date_0();

	data_1(); 
	data_1();
	data_1();
	date_0();
	date_0(); 
	data_1();
	data_1();
	data_1();
        break;

case 0x21:header();                     //转盘左转
	data_O(); 
	data_O();
	data_1();
	date_0();
	data_O(); 
	data_O();
	data_O();
	data_1();

	data_1(); 
	data_1();
	date_0();
	data_1();
	data_1(); 
	data_1();
	data_1();
	date_0();
	break; 

case 0x22:header();                      //转盘右转            
	data_O(); 
	data_O();
	data_1();
	date_0();
	data_O(); 
	data_O();
	data_1();
	date_0();

	data_1(); 
	data_1();
	date_0();
	data_1();
	data_1(); 
	data_1();
	date_0();
	data_1();
	break; 

case 0x24:header();                       //下降
	data_O(); 
	data_O();
	data_1();
	date_0();
	data_O(); 
	data_1();
	date_0();
	date_0();

	data_1(); 
	data_1();
	date_0();
	data_1();
	data_1(); 
	date_0();
	data_1();
	data_1();
	break; 

case 0x28:header();                       //上升
	data_O(); 
	data_O();
	data_1();
	date_0();
	data_1(); 
	date_0();
	date_0();
	date_0();

	data_1(); 
	data_1();
	date_0();
	data_1();
	date_0(); 
	data_1();
	data_1();
	data_1();
	break; 

case 0x41:header();                        //开始
	data_O(); 
	data_1();
	data_O();
	date_0();
	data_O(); 
	data_O();
	data_O();
	data_1();

	data_1(); 
	date_0();
	data_1();
	data_1();
	data_1(); 
	data_1();
	data_1();
	date_0();
	break; 

case 0x42:header();                     //停止
	data_O(); 
	data_1();
	data_O();
	date_0();
	data_O(); 
	data_O();
	data_1();
	date_0();

	data_1(); 
	date_0();
	data_1();
	data_1();
	data_1(); 
	data_1();
	date_0();
	data_1();
	break; 

case 0x44:header();
	data_O(); 
	data_1();
	data_O();
	date_0();
	data_O(); 
	data_1();
	date_0();
	date_0();

	data_1(); 
	date_0();
	data_1();
	data_1();
	data_1(); 
	date_0();
	data_1();
	data_1();
	break; 

case 0x48:header();
	data_O(); 
	data_1();
	data_O();
	date_0();
	data_1(); 
	date_0();
	date_0();
	date_0();

	data_1(); 
	date_0();
	data_1();
	data_1();
	date_0(); 
	data_1();
	data_1();
	data_1();
	break; 
default: break;
}

}


//键消抖动延时函数
void delay(void)
{
unsigned int i;
for(i=2000;i>0;i--);
}

//keyscan(void)键扫描函数
//p1.0-p1.2行线输入p2.0-p2.7列线输入
unsigned char keyscan(void)
{
unsigned char c,d;
do
{
for (c=1;c<=0x08;c<<=1)
{
P2=c;        //发出列信号,使某一列输出为高电平
d=P1&0x07;            // 读行输入
if (d!=0) return(d);
}
}
while(d==0);       //无按键按下,继续键扫描
}
unsigned char keyin(void)   //键输入函数
{
unsigned char t;
do
{
t=keyscan();   //第一次键扫描
delay();       //延时,消除键抖动
}
while (t!=keyscan());   //第二次键扫描,如果两次扫描的结果不一样则重新键扫描
return(t);
}

⌨️ 快捷键说明

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