• 大小: 37KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: 其他
  • 标签:

资源简介

里边涉及到了按键,按下不同的键可以发出不同编码的信号。用到的载波是用单片机产生的38k的方波。

资源截图

代码片段和文件信息

#include
#define uint unsigned int
#define uchar unsigned char
sbit freq=P3^0;
sbit P33=P3^3;
uchar mend countdatetempidate;       
void senddate(uchar);
uchar getkey()
{
P1=0xfe;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xee:idate=0xfe;senddate(idate);
break;
case 0xde:idate=0xfd;senddate(idate);
break;
case 0xbe:idate=0xfb;senddate(idate);
break;
case 0x7e:idate=0xf7;senddate(idate);
break;
}
temp=temp&0xf0;
}
}
P1=0xfd;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xed:idate=0xef;senddate(idate);
break;
case 0xdd:idate=0xdf;senddate(idate);
break;
case 0xbd:idate=0xbf;senddate(idate);
break;
case 0x7d:idate=0x7f;senddate(idate);
break;
}
temp=temp&0xf0;
}
}
P1=0xfb;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xeb:date=0xfe;senddate(idate);
break;
case 0xdb:date=0xfd;senddate(idate);
break;
case 0xbb:date=0xfb;senddate(idate);
break;
case 0x7b:date=0xf7;senddate(idate);
break;
}
temp=temp&0xf0;
}
}
P1=0xf7;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xe7:date=0xef;senddate(idate);
break;
case 0xd7:date=0xdf;senddate(idate);
break;
case 0xb7:date=0xbf;senddate(idate);
break;
case 0x77:P3=0x7f;senddate(idate);
break;
}
temp=temp&0xf0;
}
}
return idate;
}
         
void main()

    EA=1;
    ET0=1;
    TR0=1;
    TMOD=0x01;
    TH0=(65536-10)/256;
    TL0=(65536-10)%256;
//P11=1;
    
   /* do
{  date=getkey();
senddate(date);
//date=~date;
}while(1);*/
while(1)
{
date=getkey();
//senddate(date);
}  
}
void timer() interrupt 1
{
    TH0=(65536-5)/256;
    TL0=(65536-5)%256;
m++;
//if(m==1){freq=~freq;m=0;}
freq=~freq;
}
void senddate(uchar date)
{
 uchar adate=datei;
 for(i=0;i<8;i++)
 {
  end=10;
m=0;
P33=0;
while(m if(adate-(adate/2)*2)
{
end=10;
}
else 
{
end=55;
}
//count=0;
m=0;P33=1;
while(m adate=adate>>1;P33=~P33;
 }
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6551  2011-07-30 11:02  代码\38khz的波

     文件       2575  2011-07-30 10:59  代码\38khz的波.c

     文件       1229  2011-07-30 11:02  代码\38khz的波.hex

     文件         66  2011-07-30 11:02  代码\38khz的波.lnp

     文件       8084  2011-07-30 11:02  代码\38khz的波.LST

     文件      10721  2011-07-30 11:02  代码\38khz的波.M51

     文件       6975  2011-07-30 11:02  代码\38khz的波.OBJ

     文件      20806  2011-07-30 08:36  代码\38khz的波.plg

     文件      55674  2011-07-29 21:35  代码\38khz的波.uvopt

     文件      13419  2011-07-29 21:35  代码\38khz的波.uvproj

     文件          0  2011-07-29 10:34  代码\38khz的波_uvproj.bak

     文件       6376  2009-05-07 14:37  代码\STARTUP.A51

     文件      14048  2011-07-30 11:02  代码\STARTUP.LST

     文件        758  2011-07-30 11:02  代码\STARTUP.OBJ

     文件      94134  2011-07-30 10:46  代码\红外通信.DSN

     目录          0  2011-07-30 11:12  代码

----------- ---------  ---------- -----  ----

               241416                    16


评论

共有 条评论

相关资源