/******************************************************************** 學習型紅外遙控開關程序 用家庭常用的電視機、空調、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控制寄存器。 //============================================================================
cimg0399.jpg (70.68 KB, 下載次數: 341)
下載附件
2011-3-5 21:39 上傳
cimg0402.jpg (115.7 KB, 下載次數: 335)
下載附件
2011-3-5 21:39 上傳
cimg0403.jpg (109.53 KB, 下載次數: 326)
下載附件
2011-3-5 21:39 上傳
cimg0404.jpg (117.85 KB, 下載次數: 328)
下載附件
2011-3-5 21:39 上傳
cimg0405.jpg (114.29 KB, 下載次數: 337)
下載附件
2011-3-5 21:39 上傳
******************************************************************** 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編輯過]
電路原理圖如下:
原理圖.png (119.72 KB, 下載次數: 46)
下載附件
2023-5-31 15:35 上傳
源碼暫不分享
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 |