资源简介
包括完整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
- 上一篇:基于52单片机LED点阵显示电子钟的设计
- 下一篇:ros单线固定IP 一分钟搞定
相关资源
- 基于52单片机LED点阵显示电子钟的设计
- 项目4基于AT89S52单片机人体反应速度测
- 直流电磁阀控制电路,用89C52单片机汇
- 基于AT89C52单片机的电子密码锁内附电
- 基于AT89C52单片机的智能交通灯系统设
- MFRC522与89C52单片机通信参考例程
- 介绍一种LED小灯控制系统的设计方法
- 80C52单片机最小系统
- DHT11温湿度 1602显示 89C52单片机
- STC89C52单片机最小系统原理图、PCB文件
- 基于AT89S52单片机的数字温度计
- 用光电对管和单片机的智能人数统计
- 基于stc89c52单片机的水温控制系统
- 基于stc89c52单片机的智能计算器代码
- 基于STC89C52单片机的测速计设计
- 基于AT89C852单片机的8位竞赛抢答器原
- STC89C52单片机与HC-06模块下位机测试程
- 恒温水箱温度控制系统设计.zip
- 基于AT89C52单片机的万年历protel原理图
- 基于msp430单片机的红外线遥控解码L
- 步进电机实现的悬挂运动控制系统
- 基于AT89S52单片机数码管显示数字钟含
- 基于AT89S52单片机交通灯控制系统的设
- 基于AT89C52单片机智能小车的设计.pd
- 89C52单片机通过LCD1602显示任意长度字
- AT89C52单片机开发板完整Proteus仿真图
- 智能学习型红外遥控器设计
- 基于AT89S52单片机LCD数字测速仪的设计
- 基于AT89C52单片机的步进电机控制系统
- 基于STC89C52单片机的舵机测试程序
评论
共有 条评论