|
/********************************************************************
学习型红外遥控开关程序
学习范围比较窄,只限于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控制寄存器。
//============================================================================
|
|