资源简介

包括完整proteus仿真。。。。。。。。

资源截图

代码片段和文件信息

#include “reg51.h“
#include “intrins.h“     //延时函数用

#define uchar unsigned char
#define uint unsigned int

sbit  studylamp=P1^6;        //学习状态指示灯
sbit  lamp=P1^7;             //发射指示灯
sbit  studykey=P3^2;         //学习键(中断口)
sbit  remotein=P3^4;         //遥控信号输入口 
sbit  remoteout=P3^5;         // 遥控输出口
sbit  txkey=P1^0   ;           //发射键

uint ijm=255nks;
uchar idata  remotedata[206];//存肪冲宽度数据用
uint   head;           //存起始位用
uint   remdata;

delay1ms(uint t) //1毫秒延时程序
{
for(i=0;i   for(j=0;j<120;j++)
   ;
}

clearmen()//初始化函数
{
studylamp=0;           //关学习灯
lamp=0;                //关发射指示
remoteout=0;           //关遥控输出
remotein=1;            //
for(i=0;i<206;i++)     //清内存
{remotedata[i]=0x00;}
IE=0x00;
IP=0x01;
TMOD=0x22;             //8位自动重装模式
PCON=0X00;
TH1=0xf3;              //40KHZ初值
TL1=0xf3;
IT0=1;
EX0=1;                //外中断允许
EA=1;                 //开总中断
}

keywork()//键功能函数
{
 if(txkey==0)
 {
    while(txkey==0);     //等待键释放
    ET1=1;TR1=1;         //发起始位 
    for(i=head;i>0;i--){;}
remoteout=0;ET1=0;TR1=0;
n=0;
while(1)
{
      if(remotedata[n]==0x00){delay1ms(10);break;}//数据为0结束
  for(i=remotedata[n];i>0;i--){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
  lamp=~lamp;n++;//偶地址不发脉冲
//
  ET1=1;TR1=1;  //奇地址发调制脉冲
      for(i=remotedata[n];i>0;i--){;}
  remoteout=0;ET1=0;TR1=0;n++;
}
  }
}

main()//主函数
{
clearmen();          //初始化 
while(1)
 {
  keywork();       //按键扫描
  }
}

void time_intt1(void) interrupt 3 //定时中断T1
{
 remoteout=~remoteout;
}

void intt0(void) interrupt 0 //外中断0
{
ET1=0;TR1=0;EX0=0;EA=0;
head=0;studylamp=1;lamp=0;
while(studykey==0);           //等待键释放
while(remotein==1);           //等待遥控码输入
head=0;                       //读入起始位
while(remotein==0){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();head++;}
n=0;remdata=0x0000; 
while(1)
 { 
       while(remotein==1){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata++;}
   if(remdata>m)                  //高电平>5毫秒退出
   {remotedata[n]=0x00;EX0=1;EA=1;goto end;}
   remotedata[n]=remdata;n++;     //存高电平脉宽数据
       remdata=0x0000;                  //脉宽计数器清零 
   while(remotein==0){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata++;}  //低电平计数
   remotedata[n]=remdata;n++;remdata=0x00;//存低电平脉宽数据
  }
end: lamp=1;studylamp=0;
}

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

     文件       1205  2009-03-24 23:56  项目17 基于AT89S52学习型红外线遥控器的设计\学习型红外线遥控器

     文件       1917  2009-03-24 23:56  项目17 基于AT89S52学习型红外线遥控器的设计\学习型红外线遥控器.hex

     文件         92  2009-03-24 23:56  项目17 基于AT89S52学习型红外线遥控器的设计\学习型红外线遥控器.lnp

     文件       2903  2009-03-24 23:56  项目17 基于AT89S52学习型红外线遥控器的设计\学习型红外线遥控器.M51

     文件       1085  2009-03-27 18:05  项目17 基于AT89S52学习型红外线遥控器的设计\学习型红外线遥控器.Opt

     文件        246  2009-03-27 18:05  项目17 基于AT89S52学习型红外线遥控器的设计\学习型红外线遥控器.plg

     文件       2078  2009-03-24 23:56  项目17 基于AT89S52学习型红外线遥控器的设计\学习型红外线遥控器.Uv2

     文件       1077  2009-03-24 23:56  项目17 基于AT89S52学习型红外线遥控器的设计\学习型红外线遥控器_Opt.Bak

     文件          0  2009-03-24 23:55  项目17 基于AT89S52学习型红外线遥控器的设计\学习型红外线遥控器_Uv2.Bak

     文件       2815  2009-03-06 21:05  项目17 基于AT89S52学习型红外线遥控器的设计\项目17 基于AT89S52学习型红外线遥控器的设计.c

     文件       5312  2009-03-24 23:56  项目17 基于AT89S52学习型红外线遥控器的设计\项目17 基于AT89S52学习型红外线遥控器的设计.LST

     文件       2524  2009-03-24 23:56  项目17 基于AT89S52学习型红外线遥控器的设计\项目17 基于AT89S52学习型红外线遥控器的设计.OBJ

     目录          0  2011-06-23 19:27  项目17 基于AT89S52学习型红外线遥控器的设计

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

                21254                    13


评论

共有 条评论