钻石会员 
 
主题
回帖0
积分11931
阅读权限50
注册时间2009-7-18
最后登录1970-1-1
在线时间 小时
 
 
 
 
 | 
 
 本帖最后由 LBQ691477940 于 2011-2-16 23:36 编辑  
 
/******************************************************************** 
                          学习型红外遥控开关程序 
学习范围比较窄,只限于NEC编码方式类型的摇控器,CPU 用STC12C2052系列 晶振12MHZ 
通电后运行指示灯闪烁,按动按钮开关后P1.5输出取反,当输出为低时运行指示灯熄灭 
长按按钮开关约5s以上待运行指示灯点亮时再松开按钮则已进入键值遥控学习状态。 
把NEC编码方式类型的摇控器对准红外头,按下后要学习的键,待运行指示灯转为闪烁时学习完成。 
P1.3  =  OUT控制低电平有效接PNP型三极管驱动继电器 
P1.0  =  BZ输出低电平有效接PNP型三极管驱动蜂鸣器 
P1.7  =  运行指示灯(闪烁)+学习指示灯(长亮) 
P3.2  =  红外一体化接收头接(INT0) 
P3.7  =  按钮开关低电平有效 
    程序设计:LBQ691477940   2011-02-16 
**********************************************************************/ 
#include<reg51.h> 
#include<intrins.h> 
#define uchar unsigned char 
#define uint unsigned int 
#define RdCommand  0x01  //定义ISP的字节读操作命令 
#define PrgCommand 0x02  //定义ISP的字节编程操作命令,前提是该字节是空,0FFh 
#define EraseCommand 0x03 // 定义ISP的扇区擦除操作命令,要某字节为空,要擦一扇区 
#define WaitTime 0x01   //设置等待时间 
/*========================================================================= 
STC89C51 STC89C52内置EEPROM容量起始地址2000~2FFFH      */ 
//#define EEPROM_ADD 0x2000  
/*====================================================================== 
  STC89C54RD ~ STC89C58RD 内置EEPROM容量起始地址8000H~F3FFH    */ 
//#define EEPROM_ADD 0x8000 
//======================================================================= 
/*STC12C0052 ~ STC12C4052  //内置EEPROM容量起始地址0000H~13FFH 
  STC12C5408~16 STC12C5401~06 //内置EEPROM容量起始地址0000H~2FFFH  */ 
#define EEPROM_ADD 0x1000   //STC12C2052系列 
//=======================================================================            
//============STC89C系列==STC12C5410AD系列==STC12C2052AD系列=================== 
sfr ISP_DATA = 0xe2;   //STC89C系列 SP/IAP操作时的数据寄存器。 
sfr ISP_ADDRH = 0xe3; //STC89C系列 ISP/IAP操作时的地址寄存器高八位。 
sfr ISP_ADDRL = 0xe4; //STC89C系列 ISP/IAP操作时的地址寄存器低八位。 
sfr ISP_CMD = 0xe5;  //STC89C系列 ISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。 
sfr ISP_TRIG = 0xe6; //STC89C系列 ISP/IAP操作时的命令触发寄存器。 
sfr ISP_CONTR = 0xe7; //STC89C系列 ISP/IAP控制寄存器。 
//=========================================================================== 
//======================STC12C5A系列======================================== 
//sfr ISP_DATA = 0xC2;   //STC12C5A系列 SP/IAP操作时的数据寄存器。 
//sfr ISP_ADDRH = 0xC3; //STC12C5A系列 ISP/IAP操作时的地址寄存器高八位。 
//sfr ISP_ADDRL = 0xC4; //STC12C5A系列 ISP/IAP操作时的地址寄存器低八位。 
//sfr ISP_CMD = 0xC5;  //STC12C5A系列 ISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。 
//sfr ISP_TRIG = 0xC6; //STC12C5A系列 ISP/IAP操作时的命令触发寄存器。 
//sfr ISP_CONTR = 0xC7; //STC12C5A系列 ISP/IAP控制寄存器。 
//============================================================================ 
 
 
一乐牛啊!百度一下全是 
 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |