/******************************************************************** 学习型红外遥控开关程序 用家庭常用的电视机、空调、VCD/DVD遥控器,CPU 用STC12C2052系列 晶振11.0592~12MHZ 通电后运行指示灯闪烁便于晚上找开关哈哈,按动按钮开关后P1.3输出取反,当负载灯泡点亮时运行指示灯熄灭 长按按钮开关约5s以上待运行指示灯点亮(长亮)时再松开按钮则已进入键值遥控学习状态。 把要学习的遥控器对准红外头,按下后要学习的键,待运行指示灯转为闪烁时学习完成。 P1.3 = OUT控制高电平有效接NPN型三极管驱动继电器 P1.0 = BZ输出低电平有效接PNP型三极管驱动蜂鸣器 P1.7 = 运行指示灯(闪烁)+学习指示灯(长亮) P3.2 = 红外一体化接收头接(INT0) P3.0 = 按钮开关低电平有效 程序设计:LBQ691477940 2011-03-05
**********************************************************************/ #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控制寄存器。 //============================================================================
******************************************************************** STC12C2052学习型2路红外遥控开关
用家庭常用的遥控器,CPU 只能用STC系列 晶振11.0592~12MHZ 通电后运行指示灯闪烁,按动对应通路的按钮开关后其输出取反,当输出为低时运行指示灯熄灭 长按对应通路的按钮开关约5s以上待对应通路的运行指示灯点亮时再松开按钮则已进入键值遥控学习状态。 把要学习的遥控器对准红外头,按下后要学习的键,待运行指示灯转为闪烁时学习完成。 P1.1 = OUT 控制低电平有效接PNP型三极管驱动继电器 P1.3 = OUT1 控制低电平有效接PNP型三极管驱动继电器 P1.0 = BZ 输出低电平有效接PNP型三极管驱动蜂鸣器 P1.1 = BZ1 输出低电平有效接PNP型三极管驱动蜂鸣器 P1.6 = 1路 运行指示灯(闪烁)+学习指示灯(长亮) P1.7 = 2路 运行指示灯(闪烁)+学习指示灯(长亮) P3.2 = 红外一体化接收头接(INT0) P3.0 = 1路 按钮开关低电平有效 P3.1 = 2路 按钮开关低电平有效
程序设计:LBQ691477940 2011-03-05
**********************************************************************/
[此贴子已经被作者于2011-3-6 20:19:42编辑过]
电路原理图如下:
源码暂不分享
hex文件:
:08033F00C102040C00000000E3
:0C030600C2AF53E71843E70143E7802231
:0903120053E77FE4F5E6D2AF22C7
:0602F50053E5F843E501AA
:0B02FB0012030675E64675E6B9002206
:1002E200AD07AC068CE3EDF5E41202F50012031241
:0302F200AFE22256
:1002CD00EE54FEFEF5E3E4F5E453E5F843E50312E1
:0502DD0002FB02031208
:0A022E008C148D158B168A178918A1
:100238008E198F1AE4FDFCC3ED9515EC9514503713
:10024800E519F5E3E51AF5E4AB16AA17A9188D82A6
:100258008C83120282F5E253E5F843E5021202FBB1
:1002680000E4F5E21202F500051AE51A7002051914
:0A0278000DBD00010C80C00203124E
:1002AF00D3EF9400EE940040147D6E7C00ED1D7032
:0D02BF00011CED4C70F7EF1F70E61E80E390
:0102CC00220F
:08031B007FD67E0DDEFEDFFA45
:0103230022B7
:080324007F557E1EDEFEDFFAAC
:01032C0022AE
:08032D007FCE7E22DEFEDFFA26
:0103350022A5
:1000DD00758160E4F50AF50BC293759208D2AFD223
:1000ED00A8D288C201C200758901758C3C758AB091
:1000FD00D2AFD2A9D28C7F14FE1202AF7F037E1035
:10010D001202E28F0820B0547F0A7E001202AFD295
:10011D009720B025050BE50B7002050A7F0A7E00BE
:10012D001202AFD3E50B94D0E50A940740E3D20158
:10013D00C297E4F509C28C80D8D3E50B94D0E50ABB
:10014D0094074007E4F50AF50B8011E4F50AF50B69
:10015D00B293C2907F50FE1202AFD29030001FC2F8
:10016D00007F007E101202CD7B007A0079107D0495
:10017D007C007E1012022E7F031202E28F08E50929
:10018D00C3940A4080E4F509B2972093030201124B
:05019D00D297020112DF
:0300030002000EEA
:10000E00C0E0C0D075D000C000C004C005C006C09E
:01001E0007DA
:10001F00C202C2AFE4FD12031B30B202D2020DBD09
:10002F0004F43002030200CC30B2FD12032D20B2D3
:10003F00030200CC12031B12031BE4FDE4FC30B2DD
:10004F00FD12032420B214740C2DF8C000E6C31364
:10005F00D000F6740C2DF8E6F6801A30B2171203A2
:10006F001B740C2DF8C000E6C313D000F6740C2DD2
:10007F00F8E64480F60CBC08C50DBD04BFE50CF4D2
:10008F00603BE50DF46036E50DF4603130011CC2C4
:10009F0001D200E4FF740C2FF8E6FE74102FF8A6BF
:1000AF00060FBF04F0D297D28C8012E50FB5080D62
:0F00BF00B293C2907F507E001202AFD290D2AFA8
:0F00CE00D007D006D005D004D000D0D0D0E0327B
:03000B00020336B7
:09033600758C3C758AB005093292
:030000000201A258
:0C01A200787FE4F6D8FD7581200201E9A9
:10028200BB010CE58229F582E5833AF583E0225031
:1002920006E92582F8E622BBFE06E92582F8E2227B
:0D02A200E58229F582E5833AF583E4932295
:1001AE000200DDE493A3F8E493A34003F68001F28A
:1001BE0008DFF48029E493A3F85407240CC8C33352
:1001CE00C4540F4420C8834004F456800146F6DF21
:1001DE00E4800B010204081020408090033FE47E6F
:1001EE00019360BCA3FF543F30E509541FFEE49316
:1001FE00A360010ECF54C025E060A840B8E493A3DD
:10020E00FAE493A3F8E493A3C8C582C8CAC583CA07
:10021E00F0A3C8C582C8CAC583CADFE9DEE780BEBF
:0103470000B5
:00000001FF |