红外遥控器发射板代码和接收板代码

合集下载

史上最全的红外遥控器编码协议(可编辑)

史上最全的红外遥控器编码协议(可编辑)

史上最全的红外遥控器编码协议目录1MIT-C8D8 40k2 MIT-C8D8 33K3SC50560-001003P4M504625M50119P-016M50119L7RECS808M30049LC7464M10LC7461-C1311IRT1250C5D6-0112Gemini-C6-A13Gemini-C614 Gemini-C17 3136K -115KONKA KK-Y26116PD6121G-F17DATA-6BIT18Custum-6BIT19M9148-120SC3010 RC-521 M50560-1 40K22 SC50560-B123C50560-002P24M50119P-0125M50119P-126M50119P27IRT1250C5D6-02 28HTS-C5D6P29Gemini-C1730Gemini-C17 -231data6bit-a32data6bit-c33X-Sat34Philips RECS-80 35Philips RC-MM36Philips RC-637Philips RC-538Sony SIRC39Sharp40Nokia NRC1741NEC42JVC43ITT44SAA3010 RC-536K45SAA3010 RC-538K46NEC2-E247 NEC-E348 RC-5x49 NEC1-X250 _pid006051 UPD1986C52 UPD1986C-A53 UPD1986C-C54 MV500-0155 MV500-0256 Zenith S101 MIT-C8D840KMIT-C8D840K是一种常见的红外遥控编码格式该格式出现在万能遥控器ZC-18A 600-917 中Features 基本特点18位地址码8位数据码结束码2脉宽调制方式PWM3载波400 KHZ4逻辑位时间com msModulation 调制逻辑0Logical0是由935us的无载波间隔和280us的40KHZ载波组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由280us的40KHZ载波和2156us的无载波间隔组成Protocol 协议从上图中可看到 MIT-C8D840K一帧码序列是由8位地址码8位数据码和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期4478ms进行重复2 MIT-C8D8 33KMIT-C8D8 33K 是一种常见的编码格式该格式来源于OMEGA万能遥控器码组号为0138及祝成万能遥控器ZC-18A码组号为644735736Features 基本特点18位地址码8位数据码2脉宽调制方式PWM3载波33KHZ4逻辑位的时间comsModulation 调制隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由280us的33KHZ载波和2156us的无载波间隔组成Protocol 协议从上图可以看到MIT-C8D8 33K 一帧码序列是由8位地址码8位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期501ms进行重复3 SC50560-001003P 分割码未有数据标注SC50560-001003P是一种常见的红外遥控编码格式该格式出现在CL311URC-8910RM-123CRM-139S的062码组ZC-18A600-917ZC-18A400-481RM-301C VT3620AVT3630RM-402C的TV-012码组Features 基本特点1引导码8位地址码分割码未有数据标注 8位数据码结束码2脉宽调制方式PWM3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由520us的38KHZ载波和520us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度隔组成Protocol 协议从上图中可看到 SC50560-001003P一帧码序列是由引导码 8ms 的载波和4ms的间隔 8位地址码分割码8位数据码和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期12002ms进行重复4 M50462M50462是一种常见的红外遥控编码格式该格式出现在RM-123CRM-139SZC-18A600-917RM-301C VT3620AVT3630RM-402C Features 基本特点18位地址码8位数据码结束码2脉宽调制方式PWM3载波38 KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由260us的38KHZ载波和780us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由260us的38KHZ载波和1799us的无载波间隔组成Protocol 协议从上图中可看到 M50462一帧码序列是由8位地址码8位数据码和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期45ms 进行重复5 M50119P-0142K 分割码未有数据标注M50119P-0142K是一种常见的红外遥控编码格式该格式出现在URC-8910CBL-0009 ZC-18A 600-917 的736码组ZC-18A 400-481 VT3630的SAT-001码组Features 基本特点1数据帧4位地址码6位数据码分割码4位地址码相同码6位数据码相同码结束码重复帧用户码相同码结束码2脉宽调制方式PWM3载波418 KHZ4逻辑位时间comsModulation 调制逻辑0Logical0是由967us的418KHZ载波和967us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由967us的418KHZ载波和2901us的无载波间隔组成Protocol 协议从上图中可看到 M50119P-0142K两帧码序列是由数据帧4位地址码6位数据码分割码4位地址码相同码6位数据码相同码结束码重复帧地址码相同码结束码长按键不放后续发出的波形如下长按键不放发出的码波形序列如下图就是将重复帧波形以周期62855ms进行重复M50119LM50119L是一种常见的红外遥控编码格式该格式出现在万能遥控器CL311URC-8910VCR-0041INTER DIGI-SATVT3630中Features 基本特点13位地址码7位数据码结束码2脉宽调制方式PWM3载波379 KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由260us的379KHZ载波和780us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由260us的379KHZ载波和1820us的无载波间隔组成Protocol 协议从上图中可看到 M50119L一帧码序列是由3位地址码7位数据码和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期255ms 进行重复7 RECS8068RECS8068是一种常见的红外遥控编码格式该格式来源于URC8910的CD-0764码组Features 基本特点12位控制码 3位地址码6位数据码结束码2脉宽调制方式PWM3载波33KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由160us的33KHZ载波和5600us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由160us的33KHZ载波和8480us的无载波间隔组成Protocol 协议从上图中可看到RECS8068一帧码序列是由2位控制码 3位地址码6位数据码结束码组成的长按键不放发出的码波形序列如下图整个波形以周期1383ms进行重复8 M3004 CarrierM3004 Carrier是一种常见的红外遥控编码格式该格式出现在遥控器CL311 RM-123CRM-139S148ZC-18A600-917ZC-18A400-481RM-301CINTER-DIG I-SAT VT3620AVT3630RM-402CTV-060中Features 基本特点1引导码1位翻转码 3位地址码6位数据码结束码2脉宽调制方式PWM3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由141us的38KHZ载波和4919us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由141us的38KHZ载波和7449us的无载波间隔组成Protocol 协议从上图中可看到 M3004 Carrier一帧码序列是由1位引导码 1位翻转码 3位地址码6位数据码结束码组成的长按键不放发出的码波形序列如下图整个波形以周期121651ms 进行重复9 LC7464M 校验码怎么算的LC7464M是一种常见的红外遥控编码格式该格式出现在万能遥控器CL311URC-8910 RM-139SZC-18A600-917ZC-18A400-481VT3620AVT3630Features 基本特点1引导码15位地址码4位校验码4位地址码28位数据码8位校验码结束码3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由420us的38KHZ载波和420us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由420us的38KHZ载波和1260us的无载波间隔组成Protocol 协议从上图中可看到 LC7464M一帧码序列是由引导码 com的间隔15位地址码4位校验码4位地址码28位数据码8位校验码结束码组成长按键不放发出的码波形序列如下图整个波形以8297ms的周期进行重复10 LC7461-C13LC7461-C13是一种常见的红外遥控编码格式该格式出现在万能遥控器CL311URC-8910RM-123CRM-139S101ZC-18A600-917RM-301CVT3630RM-402C的TV-131码组Features 基本特点1数据帧引导码13位地址码13位地址码-反码8位数据码8位数据码反码结束码重复帧3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由560us的38KHZ载波和560us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由560us的38KHZ载波和1680us的无载波间隔组成Protocol 协议数据帧从上图中可看到 LC7461-C13一帧码序列是由引导码 9-ms的载波和45ms的间隔 13位地址码13位地址码-反码 8位数据码8位数据码反码结束码组成重复帧由结束码组成长按键不放发出的后续波形如下图其发出的整个码波形序列如下图由重复帧开始以周期10811ms 进行重复11 IRT1250C5D6-010HzIRT1250C5D6-010Hz是一种常见的红外遥控编码格式该格式出现在万能遥控器VT3620A中Features 基本特点1引导码5位地址码6位数据码结束码3载波00 KHZ4逻辑位时间comsModulation 调制逻辑0Logical0是由16us的00KHZ载波和160us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由16us的00KHZ载波和368us的无载波间隔组成Protocol 协议从上图中可看到IRT1250C5D6-010Hz一帧码序列是由引导码0016 ms的载波和0545ms的间隔 5位地址码6位数据码结束码16-54316-593136us组成长按键不放发出的码波形序列如下图即将整个波形以周期596208ms进行重复12 Gemini-C6-A40KGemini-C6-A40K是一种常见的红外遥控编码格式该格式出现在万能遥控器VT3630的SAT-034码组Features 基本特点1地址帧引导码7位地址码2结束码数据帧引导码相同码7位数据码结束码地址帧相同帧数据帧相同帧2脉宽调制方式PWM3载波400 KHZ4逻辑位时间长度是105msModulation 调制逻辑0Logical0是由525us的无载波间隔和525us的40KHZ载波组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由525us的40KHZ载波和525us的无载波间隔组成Protocol 协议从上图中可看到 Gemini-C6-A40K由四帧码组成地址帧码序列由引导码 coms的间隔 7位地址码和结束码组成数据帧码序列由引导码相同码 coms的间隔 7位数据码和结束码组成地址帧相同帧同地址帧数据帧相同帧同数据帧长按键不放发出的码波形序列如下其整个码波形序列如下图就是将第三第四帧波形以周期693ms 进行重复13 Gemini-C63136Gemini-C63136是一种常见的红外遥控编码格式该格式出现在万能遥控器CL311与VT3620A中Features 基本特点1引导码7位数据码结束码2脉宽调制方式PWM3载波310 KHZ4逻辑位时间comsModulation 调制逻辑0Logical0是由496us的无载波间隔和496us的31KHZ载波组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由496us的31KHZ载波和496us的无载波间隔组成Protocol 协议从上图中可看到 Gemini-C63136一帧码序列是由引导码 053ms 的载波和265ms的间隔 7位和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期90724ms进行重复14 Gemini-C17 3136K -1Gemini-C17 3136K -1是一种常见的红外遥控编码格式该格式来源于CL311Features 基本特点1引导帧引导码10位地址码结束码地址帧引导码相同码10位地址码2结束码引导帧相同帧数据帧引导码相同码10位数据码结束码引导帧相同帧2脉宽调制方式PWM3载波304KHZ4逻辑位时间长度是106msModulation 调制逻辑0Logical0是由530us的304KHZ载波和530us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由530us的无载波间隔和530us的304KHZ载波组成Protocol 协议从上图中可看到 Gemini-C17 3136K -1帧码其依次为引导帧码序列是由引导码 com的间隔 10位地址码与结束码206ms组成用户帧码序列是由引导码-相同码 com的间隔 10位地址码2与结束码 1025ms 组成引导帧-相同帧码与引导帧码相同数据帧码序列是由引导码-相同码 com的间隔 10位数据码与结束码 11714ms 组成引导帧-相同帧码与引导帧码相同长按键不放后续发出的波形如下其整个码波形序列如下图就是将第四第五帧波形以周期1653ms 进行重复15 KONKA KK-Y261KONKA KK-Y261是一种常见的红外遥控编码格式该格式来源于RM-123CRM-139S的113码组RM-301C RM-402C的204码组Features 基本特点1引导码8位地址码 8位数据码结束码2脉宽调制方式PWM3载波38KHZ4逻辑位时间长度是3ms或2msModulation 调制逻辑0Logical0是由500us的38KHZ载波和1500us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由500us的38KHZ载波和2500us的无载波间隔组成Protocol 协议从上图中可看到 KONKA KK-Y261一帧码序列是由引导码 3ms的载波和3ms的间隔 8位地址码 8位数据码结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期66ms 进行重复16 PD6121G-FPD6121G-F是一种常见的红外遥控编码格式Features 基本特点1引导码8位地址码8位地址码28位数据码8位数据码反码2脉宽调制方式PWM3载波38KHZ4逻辑位时间comsModulation 调制逻辑0Logical0是由564us的38KHZ载波和564us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由564us的38KHZ载波和1692us的无载波间隔组成Protocol 协议从上图中可看到 PD6121G-F一帧码序列是由引导码 coms的间隔 8位地址码8位地址码2 8位数据码8位数据码反码组成长按键不放发出的码波形序列如下图即将整个波形以周期108ms 进行重复17 DATA-6BITDATA-6BIT是一种常见种常见的红外遥控编码格式该格式来源于RM-301C RM-402C195Features 基本特点16位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由440us的38KHZ载波和1540us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由440us的38KHZ载波和3362us的无载波间隔组成Protocol 协议从上图中可看到DATA-6BIT一帧码序列仅是由6位数据码组成长按键不放发出的码波形序列如下图即将第一帧波形以周期28ms进行重复18 CUSTUM6BITCustum-6BIT是一种常见的红外遥控编码格式该格式出现在CL311URC-8910RM-123CRM-139S148ZC-18A600-917ZC-18A400-481RM-301CINTER-DIGI-SAT VT3620AVT3630RM-402CFeatures 基本特点16位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位时间com19 M9148-1M9148-1是一种常见的编码格式Features 基本特点13位地址码1位控制码8位数据码2脉宽调制方式PWM3载波38168KHZ4逻辑位的时间长度是1848msModulation 调制1逻辑0Logical0是由462us的38168KHZ载波和1386us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由1386us的38168KHZ载波和462us的无载波间隔组成Protocol 协议从上图可以看到M9148-1一帧码序列是由3位地址码1位控制码8位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期56023ms进行重复20 SC3010RC-5SC3010 RC-5是一种常见的编码格式该格式来源于众合万能遥控器RM-139S码组号为013208215216218及万能遥控器祝成ZC-18A码组号为682684685854691709Features 基本特点12位控制码1为翻转码5位地址码6位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间长度是1688msModulation 调制1逻辑0Logical0是由844us的38 KHZ载波和844us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由844us的38KHZ载波和844us的无载波间隔组成Protocol 协议从上图可以看到SC3010 RC-5一帧码序列是由2位控制码1位翻转码5位地址码6位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期127156ms进行重复21 M50560-1 40KM50560-1 40K 是一种常见的编码格式该格式来源于万能遥控器众合RM139-S码组号为040069076083068125127268及万能遥控器众合RM-33C码组号为0016006700720073Features 基本特点18位地址码8位数据码2脉宽调制方式PWM3载波40KHZ4逻辑位的时间长度是1ms或2msModulation 调制1逻辑0Logical0是由500us的40KHZ载波和500us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由500us的40KHZ载波和1500us的无载波间隔组成Protocol 协议从上图可以看到M50560-1 40K 一帧码序列是由8位地址码8位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期678ms进行重复22 SC50560-B1SC50560-B1是一种常见的编码格式Features 基本特点15位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间comModulation 调制1逻辑0Logical0是由520us的38KHZ载波和2080us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由520us的38KHZ载波和4160us的无载波间隔组成Protocol 协议从上图可以看到SC50560-B1一帧码序列是由5位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期120ms进行重复23 C50560-002PC50560-002P是一种常见的编码格式该格式来源于视贝万能DVB遥控器码组号为195Features 基本特点18位地址码8位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间comModulation 调制1逻辑0Logical0是由520us的38KHZ载波和520us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由520us的38KHZ载波和1560us的无载波间隔组成Protocol 协议从上图可以看到M50560-002P 一帧码序列是由8位地址码8位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期36006ms进行重复24 M50119P-01 38KM50119P-01 38K 是一种常见的编码格式Features 基本特点14位地址码4位地址码的相同码6位数据码6位数据码的相同码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间comsModulation 调制1逻辑0Logical0是由967us的38KHZ载波和967us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由967us的38KHZ载波和2901us的无载波间隔组成Protocol 协议从上图可以看到M50119P-01 38K 一数据帧码序列是由4位地址码6位数据码4位地址码相同码6位数据码相同码一重复帧由4位地址码相同码长按键不放发出的码波形序列如下图就是将第一帧波形以周期385156ms进行重复25 M50119P-1 40KM50119P-1 40K 是一种常见的编码格式该格式来源于OMEGA万能遥控器码组号为0041Features 基本特点13位地址码7位数据码2脉宽调制方式PWM3载波40KHZ4逻辑位的时间长度是1ms或2msModulation 调制1逻辑0Logical0是由500us的40KHZ载波和500us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由500us的40KHZ载波和1500us的无载波间隔组成Protocol 协议从上图可以看到M50119P-1 40K 一帧码序列是由3位地址码7位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期275ms进行重复26M50119PM50119P是一种常见的编码格式该格式来源于OMEGA万能遥控器码组号为0384及众合万能遥控器RM-139S码组号为041Features 基本特点13位地址码7位数据码2脉宽调制方式PWM3载波3791KHZ4逻辑位的时间长度是1ms或2msModulation 调制1逻辑0Logical0是由500us的379KHZ载波和500us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由500us的379KHZ载波和1500us的无载波间隔组成Protocol 协议从上图可以看到M50119P一帧码序列是由3位地址码7位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期30ms进行重复27IRT1250C5D6-02 0HzIRT1250C5D6-02 0Hz 是一种常见的编码格式Features 基本特点15位地址码6位数据码2脉宽调制方式PWM3载波无载波4逻辑位的时间comsModulation 调制1逻辑0Logical0是由16us的无载波和224us的无载波间隔组成图中表示的是无载波和无载波间隔的总长度2逻辑1Logical1是由16us的36KHZ载波和480us的无载波间隔组成Protocol 协议从上图可以看到IRT1250C5D6-02 0Hz 一帧码序列是由引导码0016ms的无载波和0732ms的间隔5位地址码6位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期597251ms进行重复28HTS-C5D6PHTS-C5D6P是一种常见的编码格式该格式来源于OMEGA万能遥控器027*********Features 基本特点15位地址码6位数据码1位校验码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间com4624msModulation 调制1逻辑0Logical0是由136us的38KHZ载波和1360us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由136us的38KHZ载波和2856us的无载波间隔组成3逻辑3Logical3是由136us的38KHZ载波和4488us的无载波间隔组成Protocol 协议从上图可以看到HTS-C5D6P一帧码序列是引导码coms的间隔5位地址码6位用户码1位校验码长按键不放后续发出波形如下长按键不放发出的码波形序列如下图就是将第一帧波形以周期89381ms进行重复29Gemini-C17 3136KGemini-C17 3136K 是一种常见的编码格式该格式主要来源于OMEGA万能遥控器码组号分别为013402250289032203970400045104580859Features 基本特点110位地址码引导码的相同码10位数据码2脉宽调制方式PWM3载波304KHZ4逻辑位的时间长度是106msModulation 调制1逻辑0Logical0是由530us的304KHZ载波和530us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由530us的304KHZ载波和530us的无载波间隔组成Protocol 协议从上图可以看到Gemini-C17 3136K 用户帧码序列是由引导码com的间隔10位地址码数据帧码序列由引导码的相同码10位数据码长按键不放后仍发出如下波形长按键不放出码的波形序列如下图就是将第一帧以周期19997ms 进行重复30Gemini-C17 3136K -2Gemini-C17 3136K -2是一种常见的编码格式该格式主要来源于OMEGA万能遥控器码组号分别为01350376Features 基本特点116位地址码 16位数据码2脉宽调制方式PWM3载波31KHZ4逻辑位的时间长度是106msModulation 调制1逻辑0Logical0是由530us的31KHZ载波和530us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由530us的31KHZ载波和530us的无载波间隔组成Protocol 协议从上图可以看到Gemini-C17 3136K -2用户帧码序列是由引导码com的间隔16位地址码数据帧码序列由引导码com的间隔16位数据码长按键不放后仍发出如下波形长按键不放出码的波形序列如下图就是将第一帧以周期21609ms 进行重复31data6bit-adata6bit-a是一种常见的编码格式该格式来源于祝成万能遥控器ZC-18A码组号673Features 基本特点16位数据码2脉宽调制方式PWM3载波333KHZ4逻辑位的时间comsModulation 调制1逻辑0Logical0是由576us的333KHZ载波和1820us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由576us的333KHZ载波和4200us的无载波间隔组成Protocol 协议从上图可以看到data6bit-a一帧码序列是6位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期58092ms进行重复32data6bit-cFeatures 基本特点16位数据码2脉宽调制方式PWM3载波20KHZ4逻辑位的时间长度是2 ms或4msModulation 调制1逻辑0Logical0是由1000us的20KHZ载波和1000us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由1000us的20KHZ载波和3000us的无载波间隔组成Protocol 协议从上图可以看到data6bit-c一帧码序列是6位数据码构成长按键不放发出的码波形序列如下图就是将第一帧波形以周期725ms进行重复33X-Sat ProtocolX-Sat ProtocolI call this the X-Sat protocol because it is used in the X-Sat CDTV 310 Satellite receiver made by the French company Xcom This protocol is probably also used in other X-Sat receivers but I have no means to verify that I havent seen this protocol anywhere else but that doesnt guarantee that it is unique to the X-Sat brandFeatures8 bit address and 8 bit command lengthPulse distance modulationCarrier frequency of 38kHzBit time of 1ms or 2msModulationThe X-Sat protocol uses pulse distance encoding of the bits Each pulse is a 526祍 long 38kHz carrier burst about 20 cycles A logical "1" takes 20ms to transmit while a logical"0" is only 10ms The recommended carrier duty cycle is 14 or 13ProtocolThe picture above shows a typical pulse train of the X-Sat protocol With this protocol the LSB is transmitted first In this case Address 59 and Command 35 is transmitted A message is started by a 8ms AGC burst which was used to set the gain of the earlier IR receivers This AGC burst is then followed by a 4ms space which is then followed by the Address and Command A peculiar property of the X-Sat protocol is the 4ms gap between the address and the command The total transmission time is variable because the bit times are variableAn IR command is repeated 60ms for as long as the key on the remote is held down34Philips RECS-80 Protocol 38kHz carrierThis protocol is designed by Philips and transmitters are produced by Philips SAA3008 and ST M3004 Personally I have never seen this protocol being used in real applications All information on this page is derived from the data sheet of the Philips SAA3008 and the ST M3004 10624pdfThere are 2 small differences between the two competitor ICs The Philips IC has two modes of operation one which iscompatible with the ST chip and one which can handle up to 20 sub-system addresses The ST chip has the capability of switching the modulation carrier offFeatures7 or 20 sub-system addresses 64 commands per sub-system address1 or2 toggle bits to avoid key bouncePulse distance modulationCarrier frequency of 38kHz or unmodulatedBit time logic "0" is 51ms logic "1" is 76ms 455kHz OscillatorCommand repetition rate 1215ms 55296 periods of the main oscillatorManufacturer Philips STModulation 13 duty cycleNormal Protocol The drawing below shows a typical pulse train of a normal RECS-80 message This example transmits command 36 to address 4Usually the first pulse is a reference pulse with a value of "1" The receiver may use this bit to determine the exact bit lengthThe next bit is a toggle bit Its value is toggled whenever akey is released which results in a different code every time a new key is pressed This allows the receiver to discriminate between new key presses and key repetitionsOnly the ST chip M3004 can disable its carrier in which case the REF pulse is interpreted as a second toggle bit The 2-bit toggle value is incremented every time a key is released Thus only in this mode there is no real REF pulseThe next 3 pulses S2 to S0 represent the sub-system address bits sent with MSB first This would allow for 8 different sub-system addresses but both the SAA3008 and the M3004 can only generate 7 sub-system addresses in normal mode Next come the 6 command bits F to A also sent with MSB first allowing for 64 different commands per sub-system addressThe pulse train is terminated by a last pulse otherwise there is no way to know the duration of bit AThe entire command is repeated with unchanged toggle bits for as long as the key is held down The repetition rate is 1215ms 55296 periods of the oscillatorAddress assignments are a bit odd with this protocol You can not simply convert the binary value to a decimal value Below you see a table explaining the relationship between the binary and decimal sub-system address valuesExtended Protocol If you need more than 7 sub-system addresses you can use the extended protocol which allows 13 additional sub-system addresses only if you use the SAA3008 The drawing below shows an extended message This example transmits command 36 to address 10The first two pulses are a special start sequence The total duration of these pulses is equal to a normal "1" period The next bit is a toggle bit Its value is toggled whenever a key is released which results in a different code every time a new key is pressed This allows the receiver to discriminate between new key presses and key repetitionsThe next 4 pulses S3 to S0 represent the sub-system address bits This would allow for an additional 16 different sub-system addresses although the SAA3008 can only generate 13 additional sub-system addresses in this mode Next come the 6 command bits F to A also sent with MSB firstThe pulse train is terminated by a last pulse otherwise there is no way to know the duration of bit AThe entire command is repeated with unchanged toggle bits for as long as the key is held down The repetition rate is 1215ms 55296 periods of the oscillatorAddress assignments are a bit odd with this protocol Youcan not simply convert the binary value to a decimal value Below you see a table explaining the relationship between the binary and decimal sub-system address values35 Philips RC-MM ProtocolRC-MM was defined by Philips to be a multi-media IR protocol to be used in wireless keyboards mice and game pads For these purposes the commands had to be short and have low power requirementsWhether the protocol is actually used for these purposes today is unknown to me What I do know is that some Nokia digital satellite receivers use the protocol 9800 series Features 12 bits or 24 bits per messagePulse position coding sending 2 bits per IR pulseCarrier frequency of 36kHzMessage time ranges from 35 to 65 ms depending on data contentRepetition time 28 ms 36 messages per secondManufacturer PhilipsTransmission timingIn this diagram you see the most important transmission times The message time is the total time of a message counting form the beginning of the first pulse until the end of the lastpulse of the message This time can be 35 to 65 ms depending on the data content and protocol usedThe signal free time is the time in which no signal may be sent to avoid confusion with foreign protocols on the receivers side Philips recommends 1 ms for normal use or 336 ms when used together with RC-5 and RC-6 signals Since you can never tell whether a user has other remote controls in use together with an RC-MM controlled device I would recommend always to use a signal free time of 336 msThe frame time is the sum of the message time and the signal free time which can add up to just about 10 ms per message Finally the repetition time is the recommended repetition time of 27778 ms which allows 36 messages per second This is only a recommendation and is mainly introduced to allow other devices to send their commands during the dead times No provision is made for data collisions between two or more remote controls This means that there is no guarantee that the messages get acrossModulationWith this protocol a 36 kHz carrier frequency is used to transmit the pulses This helps to increase the noise immunity at the receiver side and at the same time it reduces powerdissipated by the transmitter LED The duty cycle of the pulses is 13 or 14Each message is preceded by a header pulse with the duration of 4167 μs 15 pulses of the carrier followed by a space of 2778 μs 10 periods of the carrier This header is followed by 12 or 24 bits of dataBy changing the distance between the pulses two bits of data are encoded per pulse Below you find a table with the encoding timesProtocol RCMM comes in 3 different flavours called modes Each mode is intended for a particular purpose and differs mainly in the number of bits which can be used by the application All data is sent with MSB firstThe 12 bit mode is the basic mode and allows for 2 address bits and 8 data bits per device family There are 3 different device families defined keyboard mouse and game pad The 2 address bits provide for a way to use more than 1 device simultaneously The data bits are the actual payload data The 24 bit mode also know as extended mode allows more data to be transmitted per message For instance for multi-lingual keyboards or a high resolution mouseIn the OEM mode the first 6 bits are always 0 0 0 0 1 1 The。

红外遥控器按键编码

红外遥控器按键编码
P4M1 = 0X00; P4M0 = 0XFF; P44 = 0; P50=0;
EA = 1;
//允许全局中断
EX0 = 1;
//允许 INT0 中断
PX0 = 0;
//INT0 的中断级别为低
IT0 = 0;
//设定 INT0 上升沿和下降沿都可以中断
/*初始化 T0:16 位自动重装填模式*/
{LED1=ON;LED2=OFF;LED3=OFF;LED4=OFF;LED5=OFF;}
if(temp==IR_2)
{LED1=OFF;LED2=ON;LED3=OFF;LED4=OFF;LED5=OFF;}
if(temp==IR_3)
{LED1=OFF;LED2=OFF;LED3=ON;LED4=OFF;LED5=OFF;}
break;
}
case IR_WordA: {
if((IR_Num%2)==0&&InfraredRayPin==1) {
TH0 = 0x00; TL0 = 0x00; TimeStart; break; } if((IR_Num%2)==1&&InfraredRayPin==0) { TimeStop; IR_Time=TH0; IR_Time<<=8; IR_Time|=TL0; IR_DataA<<=1; if(IR_Time<800) {
1
#define IR_WordB
2
#define IR_End
3
#define TimeStart (TR0=1)
#define TimeStop (TR0=0)
void InfraredRay_Init(void);

史上最全的红外遥控器编码协议(可编辑)

史上最全的红外遥控器编码协议(可编辑)

史上最全的红外遥控器编码协议目录1MIT-C8D8 40k2 MIT-C8D8 33K3SC50560-001003P4M504625M50119P-016M50119L7RECS808M30049LC7464M10LC7461-C1311IRT1250C5D6-0112Gemini-C6-A13Gemini-C614 Gemini-C17 3136K -115KONKA KK-Y26116PD6121G-F17DATA-6BIT18Custum-6BIT19M9148-120SC3010 RC-521 M50560-1 40K22 SC50560-B123C50560-002P24M50119P-0125M50119P-126M50119P27IRT1250C5D6-02 28HTS-C5D6P29Gemini-C1730Gemini-C17 -231data6bit-a32data6bit-c33X-Sat34Philips RECS-80 35Philips RC-MM36Philips RC-637Philips RC-538Sony SIRC39Sharp40Nokia NRC1741NEC42JVC43ITT44SAA3010 RC-536K45SAA3010 RC-538K46NEC2-E247 NEC-E348 RC-5x49 NEC1-X250 _pid006051 UPD1986C52 UPD1986C-A53 UPD1986C-C54 MV500-0155 MV500-0256 Zenith S101 MIT-C8D840KMIT-C8D840K是一种常见的红外遥控编码格式该格式出现在万能遥控器ZC-18A 600-917 中Features 基本特点18位地址码8位数据码结束码2脉宽调制方式PWM3载波400 KHZ4逻辑位时间com msModulation 调制逻辑0Logical0是由935us的无载波间隔和280us的40KHZ载波组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由280us的40KHZ载波和2156us的无载波间隔组成Protocol 协议从上图中可看到 MIT-C8D840K一帧码序列是由8位地址码8位数据码和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期4478ms进行重复2 MIT-C8D8 33KMIT-C8D8 33K 是一种常见的编码格式该格式来源于OMEGA万能遥控器码组号为0138及祝成万能遥控器ZC-18A码组号为644735736Features 基本特点18位地址码8位数据码2脉宽调制方式PWM3载波33KHZ4逻辑位的时间comsModulation 调制隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由280us的33KHZ载波和2156us的无载波间隔组成Protocol 协议从上图可以看到MIT-C8D8 33K 一帧码序列是由8位地址码8位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期501ms进行重复3 SC50560-001003P 分割码未有数据标注SC50560-001003P是一种常见的红外遥控编码格式该格式出现在CL311URC-8910RM-123CRM-139S的062码组ZC-18A600-917ZC-18A400-481RM-301C VT3620AVT3630RM-402C的TV-012码组Features 基本特点1引导码8位地址码分割码未有数据标注 8位数据码结束码2脉宽调制方式PWM3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由520us的38KHZ载波和520us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度隔组成Protocol 协议从上图中可看到 SC50560-001003P一帧码序列是由引导码 8ms 的载波和4ms的间隔 8位地址码分割码8位数据码和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期12002ms进行重复4 M50462M50462是一种常见的红外遥控编码格式该格式出现在RM-123CRM-139SZC-18A600-917RM-301C VT3620AVT3630RM-402C Features 基本特点18位地址码8位数据码结束码2脉宽调制方式PWM3载波38 KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由260us的38KHZ载波和780us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由260us的38KHZ载波和1799us的无载波间隔组成Protocol 协议从上图中可看到 M50462一帧码序列是由8位地址码8位数据码和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期45ms 进行重复5 M50119P-0142K 分割码未有数据标注M50119P-0142K是一种常见的红外遥控编码格式该格式出现在URC-8910CBL-0009 ZC-18A 600-917 的736码组ZC-18A 400-481 VT3630的SAT-001码组Features 基本特点1数据帧4位地址码6位数据码分割码4位地址码相同码6位数据码相同码结束码重复帧用户码相同码结束码2脉宽调制方式PWM3载波418 KHZ4逻辑位时间comsModulation 调制逻辑0Logical0是由967us的418KHZ载波和967us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由967us的418KHZ载波和2901us的无载波间隔组成Protocol 协议从上图中可看到 M50119P-0142K两帧码序列是由数据帧4位地址码6位数据码分割码4位地址码相同码6位数据码相同码结束码重复帧地址码相同码结束码长按键不放后续发出的波形如下长按键不放发出的码波形序列如下图就是将重复帧波形以周期62855ms进行重复M50119LM50119L是一种常见的红外遥控编码格式该格式出现在万能遥控器CL311URC-8910VCR-0041INTER DIGI-SATVT3630中Features 基本特点13位地址码7位数据码结束码2脉宽调制方式PWM3载波379 KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由260us的379KHZ载波和780us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由260us的379KHZ载波和1820us的无载波间隔组成Protocol 协议从上图中可看到 M50119L一帧码序列是由3位地址码7位数据码和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期255ms 进行重复7 RECS8068RECS8068是一种常见的红外遥控编码格式该格式来源于URC8910的CD-0764码组Features 基本特点12位控制码 3位地址码6位数据码结束码2脉宽调制方式PWM3载波33KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由160us的33KHZ载波和5600us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由160us的33KHZ载波和8480us的无载波间隔组成Protocol 协议从上图中可看到RECS8068一帧码序列是由2位控制码 3位地址码6位数据码结束码组成的长按键不放发出的码波形序列如下图整个波形以周期1383ms进行重复8 M3004 CarrierM3004 Carrier是一种常见的红外遥控编码格式该格式出现在遥控器CL311 RM-123CRM-139S148ZC-18A600-917ZC-18A400-481RM-301CINTER-DIG I-SAT VT3620AVT3630RM-402CTV-060中Features 基本特点1引导码1位翻转码 3位地址码6位数据码结束码2脉宽调制方式PWM3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由141us的38KHZ载波和4919us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由141us的38KHZ载波和7449us的无载波间隔组成Protocol 协议从上图中可看到 M3004 Carrier一帧码序列是由1位引导码 1位翻转码 3位地址码6位数据码结束码组成的长按键不放发出的码波形序列如下图整个波形以周期121651ms 进行重复9 LC7464M 校验码怎么算的LC7464M是一种常见的红外遥控编码格式该格式出现在万能遥控器CL311URC-8910 RM-139SZC-18A600-917ZC-18A400-481VT3620AVT3630Features 基本特点1引导码15位地址码4位校验码4位地址码28位数据码8位校验码结束码3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由420us的38KHZ载波和420us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由420us的38KHZ载波和1260us的无载波间隔组成Protocol 协议从上图中可看到 LC7464M一帧码序列是由引导码 com的间隔15位地址码4位校验码4位地址码28位数据码8位校验码结束码组成长按键不放发出的码波形序列如下图整个波形以8297ms的周期进行重复10 LC7461-C13LC7461-C13是一种常见的红外遥控编码格式该格式出现在万能遥控器CL311URC-8910RM-123CRM-139S101ZC-18A600-917RM-301CVT3630RM-402C的TV-131码组Features 基本特点1数据帧引导码13位地址码13位地址码-反码8位数据码8位数据码反码结束码重复帧3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由560us的38KHZ载波和560us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由560us的38KHZ载波和1680us的无载波间隔组成Protocol 协议数据帧从上图中可看到 LC7461-C13一帧码序列是由引导码 9-ms的载波和45ms的间隔 13位地址码13位地址码-反码 8位数据码8位数据码反码结束码组成重复帧由结束码组成长按键不放发出的后续波形如下图其发出的整个码波形序列如下图由重复帧开始以周期10811ms 进行重复11 IRT1250C5D6-010HzIRT1250C5D6-010Hz是一种常见的红外遥控编码格式该格式出现在万能遥控器VT3620A中Features 基本特点1引导码5位地址码6位数据码结束码3载波00 KHZ4逻辑位时间comsModulation 调制逻辑0Logical0是由16us的00KHZ载波和160us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由16us的00KHZ载波和368us的无载波间隔组成Protocol 协议从上图中可看到IRT1250C5D6-010Hz一帧码序列是由引导码0016 ms的载波和0545ms的间隔 5位地址码6位数据码结束码16-54316-593136us组成长按键不放发出的码波形序列如下图即将整个波形以周期596208ms进行重复12 Gemini-C6-A40KGemini-C6-A40K是一种常见的红外遥控编码格式该格式出现在万能遥控器VT3630的SAT-034码组Features 基本特点1地址帧引导码7位地址码2结束码数据帧引导码相同码7位数据码结束码地址帧相同帧数据帧相同帧2脉宽调制方式PWM3载波400 KHZ4逻辑位时间长度是105msModulation 调制逻辑0Logical0是由525us的无载波间隔和525us的40KHZ载波组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由525us的40KHZ载波和525us的无载波间隔组成Protocol 协议从上图中可看到 Gemini-C6-A40K由四帧码组成地址帧码序列由引导码 coms的间隔 7位地址码和结束码组成数据帧码序列由引导码相同码 coms的间隔 7位数据码和结束码组成地址帧相同帧同地址帧数据帧相同帧同数据帧长按键不放发出的码波形序列如下其整个码波形序列如下图就是将第三第四帧波形以周期693ms 进行重复13 Gemini-C63136Gemini-C63136是一种常见的红外遥控编码格式该格式出现在万能遥控器CL311与VT3620A中Features 基本特点1引导码7位数据码结束码2脉宽调制方式PWM3载波310 KHZ4逻辑位时间comsModulation 调制逻辑0Logical0是由496us的无载波间隔和496us的31KHZ载波组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由496us的31KHZ载波和496us的无载波间隔组成Protocol 协议从上图中可看到 Gemini-C63136一帧码序列是由引导码 053ms 的载波和265ms的间隔 7位和结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期90724ms进行重复14 Gemini-C17 3136K -1Gemini-C17 3136K -1是一种常见的红外遥控编码格式该格式来源于CL311Features 基本特点1引导帧引导码10位地址码结束码地址帧引导码相同码10位地址码2结束码引导帧相同帧数据帧引导码相同码10位数据码结束码引导帧相同帧2脉宽调制方式PWM3载波304KHZ4逻辑位时间长度是106msModulation 调制逻辑0Logical0是由530us的304KHZ载波和530us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由530us的无载波间隔和530us的304KHZ载波组成Protocol 协议从上图中可看到 Gemini-C17 3136K -1帧码其依次为引导帧码序列是由引导码 com的间隔 10位地址码与结束码206ms组成用户帧码序列是由引导码-相同码 com的间隔 10位地址码2与结束码 1025ms 组成引导帧-相同帧码与引导帧码相同数据帧码序列是由引导码-相同码 com的间隔 10位数据码与结束码 11714ms 组成引导帧-相同帧码与引导帧码相同长按键不放后续发出的波形如下其整个码波形序列如下图就是将第四第五帧波形以周期1653ms 进行重复15 KONKA KK-Y261KONKA KK-Y261是一种常见的红外遥控编码格式该格式来源于RM-123CRM-139S的113码组RM-301C RM-402C的204码组Features 基本特点1引导码8位地址码 8位数据码结束码2脉宽调制方式PWM3载波38KHZ4逻辑位时间长度是3ms或2msModulation 调制逻辑0Logical0是由500us的38KHZ载波和1500us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由500us的38KHZ载波和2500us的无载波间隔组成Protocol 协议从上图中可看到 KONKA KK-Y261一帧码序列是由引导码 3ms的载波和3ms的间隔 8位地址码 8位数据码结束码组成长按键不放发出的码波形序列如下图即将整个波形以周期66ms 进行重复16 PD6121G-FPD6121G-F是一种常见的红外遥控编码格式Features 基本特点1引导码8位地址码8位地址码28位数据码8位数据码反码2脉宽调制方式PWM3载波38KHZ4逻辑位时间comsModulation 调制逻辑0Logical0是由564us的38KHZ载波和564us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由564us的38KHZ载波和1692us的无载波间隔组成Protocol 协议从上图中可看到 PD6121G-F一帧码序列是由引导码 coms的间隔 8位地址码8位地址码2 8位数据码8位数据码反码组成长按键不放发出的码波形序列如下图即将整个波形以周期108ms 进行重复17 DATA-6BITDATA-6BIT是一种常见种常见的红外遥控编码格式该格式来源于RM-301C RM-402C195Features 基本特点16位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位时间comModulation 调制逻辑0Logical0是由440us的38KHZ载波和1540us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度逻辑1Logical1是由440us的38KHZ载波和3362us的无载波间隔组成Protocol 协议从上图中可看到DATA-6BIT一帧码序列仅是由6位数据码组成长按键不放发出的码波形序列如下图即将第一帧波形以周期28ms进行重复18 CUSTUM6BITCustum-6BIT是一种常见的红外遥控编码格式该格式出现在CL311URC-8910RM-123CRM-139S148ZC-18A600-917ZC-18A400-481RM-301CINTER-DIGI-SAT VT3620AVT3630RM-402CFeatures 基本特点16位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位时间com19 M9148-1M9148-1是一种常见的编码格式Features 基本特点13位地址码1位控制码8位数据码2脉宽调制方式PWM3载波38168KHZ4逻辑位的时间长度是1848msModulation 调制1逻辑0Logical0是由462us的38168KHZ载波和1386us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由1386us的38168KHZ载波和462us的无载波间隔组成Protocol 协议从上图可以看到M9148-1一帧码序列是由3位地址码1位控制码8位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期56023ms进行重复20 SC3010RC-5SC3010 RC-5是一种常见的编码格式该格式来源于众合万能遥控器RM-139S码组号为013208215216218及万能遥控器祝成ZC-18A码组号为682684685854691709Features 基本特点12位控制码1为翻转码5位地址码6位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间长度是1688msModulation 调制1逻辑0Logical0是由844us的38 KHZ载波和844us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由844us的38KHZ载波和844us的无载波间隔组成Protocol 协议从上图可以看到SC3010 RC-5一帧码序列是由2位控制码1位翻转码5位地址码6位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期127156ms进行重复21 M50560-1 40KM50560-1 40K 是一种常见的编码格式该格式来源于万能遥控器众合RM139-S码组号为040069076083068125127268及万能遥控器众合RM-33C码组号为0016006700720073Features 基本特点18位地址码8位数据码2脉宽调制方式PWM3载波40KHZ4逻辑位的时间长度是1ms或2msModulation 调制1逻辑0Logical0是由500us的40KHZ载波和500us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由500us的40KHZ载波和1500us的无载波间隔组成Protocol 协议从上图可以看到M50560-1 40K 一帧码序列是由8位地址码8位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期678ms进行重复22 SC50560-B1SC50560-B1是一种常见的编码格式Features 基本特点15位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间comModulation 调制1逻辑0Logical0是由520us的38KHZ载波和2080us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由520us的38KHZ载波和4160us的无载波间隔组成Protocol 协议从上图可以看到SC50560-B1一帧码序列是由5位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期120ms进行重复23 C50560-002PC50560-002P是一种常见的编码格式该格式来源于视贝万能DVB遥控器码组号为195Features 基本特点18位地址码8位数据码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间comModulation 调制1逻辑0Logical0是由520us的38KHZ载波和520us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由520us的38KHZ载波和1560us的无载波间隔组成Protocol 协议从上图可以看到M50560-002P 一帧码序列是由8位地址码8位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期36006ms进行重复24 M50119P-01 38KM50119P-01 38K 是一种常见的编码格式Features 基本特点14位地址码4位地址码的相同码6位数据码6位数据码的相同码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间comsModulation 调制1逻辑0Logical0是由967us的38KHZ载波和967us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由967us的38KHZ载波和2901us的无载波间隔组成Protocol 协议从上图可以看到M50119P-01 38K 一数据帧码序列是由4位地址码6位数据码4位地址码相同码6位数据码相同码一重复帧由4位地址码相同码长按键不放发出的码波形序列如下图就是将第一帧波形以周期385156ms进行重复25 M50119P-1 40KM50119P-1 40K 是一种常见的编码格式该格式来源于OMEGA万能遥控器码组号为0041Features 基本特点13位地址码7位数据码2脉宽调制方式PWM3载波40KHZ4逻辑位的时间长度是1ms或2msModulation 调制1逻辑0Logical0是由500us的40KHZ载波和500us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由500us的40KHZ载波和1500us的无载波间隔组成Protocol 协议从上图可以看到M50119P-1 40K 一帧码序列是由3位地址码7位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期275ms进行重复26M50119PM50119P是一种常见的编码格式该格式来源于OMEGA万能遥控器码组号为0384及众合万能遥控器RM-139S码组号为041Features 基本特点13位地址码7位数据码2脉宽调制方式PWM3载波3791KHZ4逻辑位的时间长度是1ms或2msModulation 调制1逻辑0Logical0是由500us的379KHZ载波和500us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由500us的379KHZ载波和1500us的无载波间隔组成Protocol 协议从上图可以看到M50119P一帧码序列是由3位地址码7位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期30ms进行重复27IRT1250C5D6-02 0HzIRT1250C5D6-02 0Hz 是一种常见的编码格式Features 基本特点15位地址码6位数据码2脉宽调制方式PWM3载波无载波4逻辑位的时间comsModulation 调制1逻辑0Logical0是由16us的无载波和224us的无载波间隔组成图中表示的是无载波和无载波间隔的总长度2逻辑1Logical1是由16us的36KHZ载波和480us的无载波间隔组成Protocol 协议从上图可以看到IRT1250C5D6-02 0Hz 一帧码序列是由引导码0016ms的无载波和0732ms的间隔5位地址码6位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期597251ms进行重复28HTS-C5D6PHTS-C5D6P是一种常见的编码格式该格式来源于OMEGA万能遥控器027*********Features 基本特点15位地址码6位数据码1位校验码2脉宽调制方式PWM3载波38KHZ4逻辑位的时间com4624msModulation 调制1逻辑0Logical0是由136us的38KHZ载波和1360us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由136us的38KHZ载波和2856us的无载波间隔组成3逻辑3Logical3是由136us的38KHZ载波和4488us的无载波间隔组成Protocol 协议从上图可以看到HTS-C5D6P一帧码序列是引导码coms的间隔5位地址码6位用户码1位校验码长按键不放后续发出波形如下长按键不放发出的码波形序列如下图就是将第一帧波形以周期89381ms进行重复29Gemini-C17 3136KGemini-C17 3136K 是一种常见的编码格式该格式主要来源于OMEGA万能遥控器码组号分别为013402250289032203970400045104580859Features 基本特点110位地址码引导码的相同码10位数据码2脉宽调制方式PWM3载波304KHZ4逻辑位的时间长度是106msModulation 调制1逻辑0Logical0是由530us的304KHZ载波和530us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由530us的304KHZ载波和530us的无载波间隔组成Protocol 协议从上图可以看到Gemini-C17 3136K 用户帧码序列是由引导码com的间隔10位地址码数据帧码序列由引导码的相同码10位数据码长按键不放后仍发出如下波形长按键不放出码的波形序列如下图就是将第一帧以周期19997ms 进行重复30Gemini-C17 3136K -2Gemini-C17 3136K -2是一种常见的编码格式该格式主要来源于OMEGA万能遥控器码组号分别为01350376Features 基本特点116位地址码 16位数据码2脉宽调制方式PWM3载波31KHZ4逻辑位的时间长度是106msModulation 调制1逻辑0Logical0是由530us的31KHZ载波和530us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由530us的31KHZ载波和530us的无载波间隔组成Protocol 协议从上图可以看到Gemini-C17 3136K -2用户帧码序列是由引导码com的间隔16位地址码数据帧码序列由引导码com的间隔16位数据码长按键不放后仍发出如下波形长按键不放出码的波形序列如下图就是将第一帧以周期21609ms 进行重复31data6bit-adata6bit-a是一种常见的编码格式该格式来源于祝成万能遥控器ZC-18A码组号673Features 基本特点16位数据码2脉宽调制方式PWM3载波333KHZ4逻辑位的时间comsModulation 调制1逻辑0Logical0是由576us的333KHZ载波和1820us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由576us的333KHZ载波和4200us的无载波间隔组成Protocol 协议从上图可以看到data6bit-a一帧码序列是6位数据码长按键不放发出的码波形序列如下图就是将第一帧波形以周期58092ms进行重复32data6bit-cFeatures 基本特点16位数据码2脉宽调制方式PWM3载波20KHZ4逻辑位的时间长度是2 ms或4msModulation 调制1逻辑0Logical0是由1000us的20KHZ载波和1000us的无载波间隔组成图中表示的是有载波和无载波间隔的总长度2逻辑1Logical1是由1000us的20KHZ载波和3000us的无载波间隔组成Protocol 协议从上图可以看到data6bit-c一帧码序列是6位数据码构成长按键不放发出的码波形序列如下图就是将第一帧波形以周期725ms进行重复33X-Sat ProtocolX-Sat ProtocolI call this the X-Sat protocol because it is used in the X-Sat CDTV 310 Satellite receiver made by the French company Xcom This protocol is probably also used in other X-Sat receivers but I have no means to verify that I havent seen this protocol anywhere else but that doesnt guarantee that it is unique to the X-Sat brandFeatures8 bit address and 8 bit command lengthPulse distance modulationCarrier frequency of 38kHzBit time of 1ms or 2msModulationThe X-Sat protocol uses pulse distance encoding of the bits Each pulse is a 526祍 long 38kHz carrier burst about 20 cycles A logical "1" takes 20ms to transmit while a logical"0" is only 10ms The recommended carrier duty cycle is 14 or 13ProtocolThe picture above shows a typical pulse train of the X-Sat protocol With this protocol the LSB is transmitted first In this case Address 59 and Command 35 is transmitted A message is started by a 8ms AGC burst which was used to set the gain of the earlier IR receivers This AGC burst is then followed by a 4ms space which is then followed by the Address and Command A peculiar property of the X-Sat protocol is the 4ms gap between the address and the command The total transmission time is variable because the bit times are variableAn IR command is repeated 60ms for as long as the key on the remote is held down34Philips RECS-80 Protocol 38kHz carrierThis protocol is designed by Philips and transmitters are produced by Philips SAA3008 and ST M3004 Personally I have never seen this protocol being used in real applications All information on this page is derived from the data sheet of the Philips SAA3008 and the ST M3004 10624pdfThere are 2 small differences between the two competitor ICs The Philips IC has two modes of operation one which iscompatible with the ST chip and one which can handle up to 20 sub-system addresses The ST chip has the capability of switching the modulation carrier offFeatures7 or 20 sub-system addresses 64 commands per sub-system address1 or2 toggle bits to avoid key bouncePulse distance modulationCarrier frequency of 38kHz or unmodulatedBit time logic "0" is 51ms logic "1" is 76ms 455kHz OscillatorCommand repetition rate 1215ms 55296 periods of the main oscillatorManufacturer Philips STModulation 13 duty cycleNormal Protocol The drawing below shows a typical pulse train of a normal RECS-80 message This example transmits command 36 to address 4Usually the first pulse is a reference pulse with a value of "1" The receiver may use this bit to determine the exact bit lengthThe next bit is a toggle bit Its value is toggled whenever akey is released which results in a different code every time a new key is pressed This allows the receiver to discriminate between new key presses and key repetitionsOnly the ST chip M3004 can disable its carrier in which case the REF pulse is interpreted as a second toggle bit The 2-bit toggle value is incremented every time a key is released Thus only in this mode there is no real REF pulseThe next 3 pulses S2 to S0 represent the sub-system address bits sent with MSB first This would allow for 8 different sub-system addresses but both the SAA3008 and the M3004 can only generate 7 sub-system addresses in normal mode Next come the 6 command bits F to A also sent with MSB first allowing for 64 different commands per sub-system addressThe pulse train is terminated by a last pulse otherwise there is no way to know the duration of bit AThe entire command is repeated with unchanged toggle bits for as long as the key is held down The repetition rate is 1215ms 55296 periods of the oscillatorAddress assignments are a bit odd with this protocol You can not simply convert the binary value to a decimal value Below you see a table explaining the relationship between the binary and decimal sub-system address valuesExtended Protocol If you need more than 7 sub-system addresses you can use the extended protocol which allows 13 additional sub-system addresses only if you use the SAA3008 The drawing below shows an extended message This example transmits command 36 to address 10The first two pulses are a special start sequence The total duration of these pulses is equal to a normal "1" period The next bit is a toggle bit Its value is toggled whenever a key is released which results in a different code every time a new key is pressed This allows the receiver to discriminate between new key presses and key repetitionsThe next 4 pulses S3 to S0 represent the sub-system address bits This would allow for an additional 16 different sub-system addresses although the SAA3008 can only generate 13 additional sub-system addresses in this mode Next come the 6 command bits F to A also sent with MSB firstThe pulse train is terminated by a last pulse otherwise there is no way to know the duration of bit AThe entire command is repeated with unchanged toggle bits for as long as the key is held down The repetition rate is 1215ms 55296 periods of the oscillatorAddress assignments are a bit odd with this protocol Youcan not simply convert the binary value to a decimal value Below you see a table explaining the relationship between the binary and decimal sub-system address values35 Philips RC-MM ProtocolRC-MM was defined by Philips to be a multi-media IR protocol to be used in wireless keyboards mice and game pads For these purposes the commands had to be short and have low power requirementsWhether the protocol is actually used for these purposes today is unknown to me What I do know is that some Nokia digital satellite receivers use the protocol 9800 series Features 12 bits or 24 bits per messagePulse position coding sending 2 bits per IR pulseCarrier frequency of 36kHzMessage time ranges from 35 to 65 ms depending on data contentRepetition time 28 ms 36 messages per secondManufacturer PhilipsTransmission timingIn this diagram you see the most important transmission times The message time is the total time of a message counting form the beginning of the first pulse until the end of the lastpulse of the message This time can be 35 to 65 ms depending on the data content and protocol usedThe signal free time is the time in which no signal may be sent to avoid confusion with foreign protocols on the receivers side Philips recommends 1 ms for normal use or 336 ms when used together with RC-5 and RC-6 signals Since you can never tell whether a user has other remote controls in use together with an RC-MM controlled device I would recommend always to use a signal free time of 336 msThe frame time is the sum of the message time and the signal free time which can add up to just about 10 ms per message Finally the repetition time is the recommended repetition time of 27778 ms which allows 36 messages per second This is only a recommendation and is mainly introduced to allow other devices to send their commands during the dead times No provision is made for data collisions between two or more remote controls This means that there is no guarantee that the messages get acrossModulationWith this protocol a 36 kHz carrier frequency is used to transmit the pulses This helps to increase the noise immunity at the receiver side and at the same time it reduces powerdissipated by the transmitter LED The duty cycle of the pulses is 13 or 14Each message is preceded by a header pulse with the duration of 4167 μs 15 pulses of the carrier followed by a space of 2778 μs 10 periods of the carrier This header is followed by 12 or 24 bits of dataBy changing the distance between the pulses two bits of data are encoded per pulse Below you find a table with the encoding timesProtocol RCMM comes in 3 different flavours called modes Each mode is intended for a particular purpose and differs mainly in the number of bits which can be used by the application All data is sent with MSB firstThe 12 bit mode is the basic mode and allows for 2 address bits and 8 data bits per device family There are 3 different device families defined keyboard mouse and game pad The 2 address bits provide for a way to use more than 1 device simultaneously The data bits are the actual payload data The 24 bit mode also know as extended mode allows more data to be transmitted per message For instance for multi-lingual keyboards or a high resolution mouseIn the OEM mode the first 6 bits are always 0 0 0 0 1 1 The。

红外线遥控解码接收程序-C语言

红外线遥控解码接收程序-C语言

红外线遥控解码接收程序-C语言.txt铁饭碗的真实含义不是在一个地方吃一辈子饭,而是一辈子到哪儿都有饭吃。

就算是一坨屎,也有遇见屎壳郎的那天。

所以你大可不必为今天的自己有太多担忧。

红外线遥控解码接收程序-C语言#include <regx51.h>#define uchar unsigned char#define uint unsigned int#define IR_RE P3_2bit k=0; //红外解码判断标志位,为0那么为有效信号,为1那么为无效uchar date[4]={0,0,0,0}; //date数组为存放地址原码,反码,数据原码,反码/*--------------------------延时1ms程子程序-----------------------*/delay1000(){uchar i,j;i=5;do{j=95;do{j--;}while(j);i--;}while(i);}/*---------------------------延时882us子程序-----------------------*/delay882(){uchar i,j;i=6;do{j=71;do{j--;}while(j);i--;}while(i);}/*--------------------------延时2400us程子程序-----------------------*/delay2400(){uchar i,j;i=5;do{j=237;do{j--;}while(j);i--;}while(i);}//**************************************************************//**************************************************************/*----------------------------------------------------------*//*-----------------------红外解码程序(核心)-----------------*//*----------------------------------------------------------*/void IR_decode(){uchar i,j;while(IR_RE==0);delay2400();{delay1000();delay1000();for(i=0;i<4;i++){for(j=0;j<8;j++){while(IR_RE==0); //等待地址码第1位高电平到来delay882(); //延时882us判断此时引脚电平///CY=IR_RE;if(IR_RE==0){date[i]>>=1;date[i]=date[i]|0x00;}else if(IR_RE==1){delay1000();date[i]>>=1;date[i]=date[i]|0x80;}} //1位数据接收完毕} //32位二进制码接收完毕}}//*****************************************************************//********************************************************************/*------------------------外部中断0程序-------------------------*//*------------------主要用于处理红外遥控键值--------------------*/void int0() interrupt 0{uchar i;k=0;EX0=0; //检测到有效信号关中断,防止干扰for(i=0;i<4;i++){delay1000();if(IR_RE==1){k=1;} //刚开场为9ms的引导码. }if(k==0){// EX0=0; //检测到有效信号关中断,防止干扰IR_decode(); //如果接收到的是有效信号,那么调用解码程序P0=date[1];delay2400();delay2400();delay2400();}EX0=1; //开外部中断,允许新的遥控按键}//*********************************************************************//********************************void main(){SP=0x60; //堆栈指针EX0=1; //允许外部中断0,用于检测红外遥控器按键EA=1; //总中断开while(1);}总结:关于本段程序的准确延时在<<C51中准确的延时与计算的实现>>里的评论有很好的诠释.//在STC12C5410上运用红外线解码程序.主要的问题在于延迟上。

红外接收代码分享

红外接收代码分享

/**********************************************程序设计:红外遥控器接收代码编写时间:2010-8-13**********************************************/#include"reg51.h"#include"1601.h"//需要显示的信息uchar code hello[] = {"KEY_CODE:"};//变量uchar data psCount; //定时器计数器uchar data i,key_no;uchar data j;uchar data temp;uchar data dp[4]; //用来保存红外遥控的码值uchar data dp2[12];//用来显示红外遥控的码值sbit HW = P2^7;void delay(unsigned int y);void check_ir(void);void main(){//初始化LCM_Init();dp[0] = 0x0;dp[1] = 0x0;dp[2] = 0x0;dp[3] = 0x0;TMOD = 0x11; // 定时器0, 1工作模式1, 16位定时方式TH1 = 0xfe; //定时500uSTL1 = 0x33;TCON = 0x01;IE = 0x80;TR1 = 1;DisplayListChar(0,hello);while(1){//报文头ET1 = 0;psCount = 0;while(HW == 1); //初始状态下,红外输出脚一直是高电平,等待遥控按键ET1 = 1;while(HW == 0);if( psCount > 17)//0.5* 17 = 8.5ms约为9.0ms{ET1 = 0;psCount = 0;ET1 = 1;while(HW == 1);if(psCount > 5)//超过0.5*5 = 2.5毫米,检查一下遥控命令是不是连发,不是则执行下面的程序{ET1 = 0;psCount = 0;dp[0] = 0x0;dp[1] = 0x0;dp[2] = 0x0;dp[3] = 0x0;//数据for(i = 0 ; i < 4; i++){for(j = 0; j < 8; j++){while(HW == 0);ET1 = 0;psCount = 0;ET1 = 1;while(HW == 1);if(psCount > 2)//根据波形长度判定码值为0或1temp = 0;elsetemp = 1;dp[i]|=(temp<<j);//dp|=(temp<<j);//保存键值}}}}//停止位while(HW == 1);check_ir();delay(20);DisplayOneChar(13,key_no);delay(20);delay(20);}}//延时子程序void delay(unsigned int y){uchar x;for(;y!=0;y--)for(x=200;x!=0;x--);}//定时器1中断void timer1() interrupt 3{psCount++;TH1 = 0xfe; //定时500uSTL1 = 0x33;}void check_ir(void){switch(dp[3]) //检测{case 0x01:key_no=0x31;delay(20);break;case 0x02:key_no=0x32;delay(20);break;case 0x03:key_no=0x33;delay(20);break;case 0x04:key_no=0x34;delay(20);break;case 0x05:key_no=0x35;delay(20);break;case 0x06:key_no=0x36;delay(20);break;case 0x07:key_no=0x37;delay(20);break;case 0x08:key_no=0x38;delay(20);break;case 0x09:key_no=0x39;delay(20);break;case 0x00:key_no=0x3A;delay(20);break;default: key_no=0x41;//如果没有键按下则关闭中断和数码管}}。

arduino红外控制led(发射与接收)

arduino红外控制led(发射与接收)

arduino红外控制led(发射与接收)⽹上有关红外接收的帖⼦不少,但是关于使⽤arduino⾃制红外发射器的帖⼦却很少,经过⽹上搜索和⾃⼰摸索,给⼤家发个有arduino⾃制红外发射器控制led亮灭的例⼦。

关于本例我使⽤了两块arduino板,⼀块⽤于发射,⼀块⽤于接收。

⼀、红外发射(开发板⼀)1/*2* 发射红外线讯号3* 注意! 红外线发射器(IR LED)必须接到 pin 3, 不能接其它脚位,头⽂件已经定义,所以下⾯不⽤设置pin3⼝的状态4*/5 #include <IRremote.h> // 引⽤ IRRemote 函式库67const int buttonPin = 4; // 按键(pushbutton)接在 pin 48int buttonState = 0; // 按键状态910 IRsend irsend; // 定义 IRsend 物件来发射红外线讯号1112void setup()13 {14 pinMode(buttonPin, INPUT); // 把 buttonPin 设置成输⼊15 }1617void loop()18 {19// 读取按键状态20 buttonState = digitalRead(buttonPin);2122// 检查按键是否被按下23// 有的话 buttonState 会是⾼电平输出24if (buttonState == HIGH) {25// 发射红外线讯号26 irsend.sendNEC(0x4CB3817E, 32); // 这个编码即你按的键(接pin4)的编码,可以随意更改,如果要控制其他设备,只需将此编码改为相应编码就⾏27 }28 }将以上程序烧⼊开发板⼀中,发射部分就制作完毕。

下⾯是红外接收部分。

⼆、红外接收(开发板⼆)1//本例来⾃于红外接收模块的IRremote⾃带范例2//已经作出了修改3//改为当有遥控器的按键按下时,接在数字引脚4上的发光LED就会点亮,再按⼀下按键,led熄灭4/*电路连接5 *红外接收器的VOUT接在数字引脚11上,GND接控制板的GND,VCC接控制板上+5V6*发光⼆极管引脚接在数字引脚4上,通过220欧姆电阻回到控制板的GND7*效果,当遥控器按下按键时,发光⼆极管就会闪烁,同时电脑的串⼝会出现按键的命令编码.8*/91011 #include <IRremote.h>1213int RECV_PIN = 11;//定义红外接收器的引脚为1114int LED_PIN=4;//定义发光LED引脚数字415int a=0;16 IRrecv irrecv(RECV_PIN);1718 decode_results results;1920void setup()21 {22 Serial.begin(9600);23 irrecv.enableIRIn(); // 初始化红外接收器24 pinMode(LED_PIN,OUTPUT);//设置发光LED引脚数字425 }2627void loop() {28if (irrecv.decode(&results)) {29if(results.value==0x4CB3817E &a==0) //此处的32位值与发射部分发射的值要保持⼀致30 {31 digitalWrite(LED_PIN,HIGH);//LED点亮32 a=1;33 }34else if(results.value==0x4CB3817E &a==1)35 {36 digitalWrite(LED_PIN,LOW);//LED熄灭37 a=0;38 }39 irrecv.resume(); // 接收下⼀个值40 }41 }将以上部分程序烧⼊开发板⼆即完成接收部分制作。

NEC码红外遥控完整编码

NEC码红外遥控完整编码

NEC码红外遥控完整编码红外遥控编码程序如下:NEC .SECTION 'DATA'a_REM_CODE DB ? ;KEY DATA CODEa_CUSTOMER_1 DB ? ;遥控器头码(客户码)低八位a_CUSTOMER_2 DB ? ;遥控器头码(客户码)高八位#define CUS_6221_1 00110100b ;1234H#define CUS_6221_2 00010010b;@------------------------------------------------NEC_CODE .SECTION 'CODE';@************* SUBROUTINE[xx]: Send Remote Code ************;;遥控码发送:SEND_REMOTE_CODE:clr WDT ;清除进位标志,检测遥控发送的有效的按键SZ fg_SendActive ;SZ表示以0结尾的字符串JMP READY_SEND ;跳转到READY_SEND模块retREADY_SEND:NEC_CODE:mov A,a_KEY_NUM ;将数值发送到寄存器A中,直接寻址mov M_TBLP,ATABRDL a_REM_CODE ;查表专用指令MOV A,CUS_6221_1 ;读取遥控头码(客户码)低八位数值MOV a_CUSTOMER_1,AMOV A,CUS_6221_2MOV a_CUSTOMER_2,A以上为READY_SEND运行模块,同时是为后面NEC码发送的准备;首先将一个按键的数值已以直接寻址方式发送到寄存器A中,将寄存器A 的是发送到M_TBLP中,然后查表a_REM_CODE,将CUS_6221_1的值发送到寄存器中,在赋值给遥控器头码(客户码)低八位a_CUSTOMER_1,同理,将CUS_6221_2赋值给遥控器头码(客户码)低八位a_CUSTOMER_2,随后即开始发送NEC遥控码。

红外遥控器参考代码

红外遥控器参考代码
void Ircordpro(void)//红外码值处理函数
{
unsigned char i, j, k;
unsigned char cord,value;
if(irdata[0]>=47&&irdata[0]<=50)
{
k=1;
for(i=0;i<4;i++) //处理4个字节
{
for(j=1;j<=8;j++) //处];
if(cord>7)//大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差
{
if(startflag)
{
if(irtime<50&&irtime>=47)//引导码 TC9012的头码,9ms+4.5ms
i=0;
irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1
/* 变量声明 */
/******************************************************************/
unsigned char irtime;//红外用全局变量
{
if(irpro_ok)
{
switch(IRcord[2])//判断第三个数码值
{
case 0x1D:P1=0xFE;break;//1 显示相应的按键值
} irpro_ok=1;//处理完毕标志位置1
}
}
//主程序
void main(void)
{
IT0 = 1; //指定外部中断0下降沿触发,INT0 (P3.2)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文是基于单片机红外通讯的代码,代码分为发射板代码和接收板代码。

指令码是用户发给接收系统的指令,用以控制设备完成相应的操作。

指令码是一串数据流,其构成如图3-2。

一个完整的指令码由10ms高平引导码、3ms低平开始码、1ms脉宽正脉冲、3ms低平结束码、下一个10ms高平引导码组成。

其中引导码、开始码和结束码都是为了系统能够正确接受信号而设置的,能够判断信号是否有效、信号起始和结束。

信号中的脉冲个数才是我们指令码的指令所在,不同的脉冲个数对应不同的指令。

图3-2 指令码的组成3.3 红外遥控发射系统的设计红外遥控发射部分系统框图见图3-3。

发送端采用单片机的定时中断功能,由定时器T1产生周期为26us 的矩形脉冲,即每隔13us定时器T1产生中断输出一个相反的信号使单片机输出端产生周期为38KHz的脉冲信号。

系统通过连着单片机的按键获取用户遥控指令码,经按键扫描确认,然后交由单片机编码生成信息码,再由红外发射二极管将信息码发射出去。

在次设计中用到了T1和T0两个定时器,定时器T0控制T1开启和关闭,T0定时长度由指令码中高低电平维持时间长度决定。

具体发射过程如下:(1)定时器T1打开10ms,发射10ms引导码。

(2)定时器T1关闭3ms,发射3ms低平开始码。

(3)定时器T1打开1ms,发射1ms脉宽高电平脉冲。

(4)定时器T1关闭1ms,发射1ms脉宽低电平。

(5)重复(3)和(4)发射一定数目的脉冲。

(6)最后T1打开2ms和最后一个脉冲的1ms低电平一起构成3ms结束码,最终发射的信号如图3-2。

3.4 红外遥控接收系统的设计红外遥控接收电路框图见图3-4。

红外接收端普遍采用价格便宜,性能可靠的一体化红外接收头(MS0038 , 它接收红外信号频率为38KHz ,周期约26μs)。

它能同时对信号进行放大、检波、整形,得到TTL 电平的编码信号。

当接收头接收到26us周期的脉冲,输出低电平,否则输出高电平。

接收到的信号与发射信号成反码。

如图3-5中的A和图3-6中的E。

红外接收头收到信号后单片机立即产生中断,进入中断程序,同时关闭中断,开始接收红外信号。

先检测开始的低电平是否为10ms,若不是则退出中断程序,打开中断重新接收信号。

若是则检测下个电平是否为3ms高电平,如果不是,则退出中断程序,打开中断重新接收信号。

若是则表明接收信号有效,检测下个电平是否为低电平,若是低电平则脉冲计数器加一,表示检测到了第一个脉冲。

同时等待电平变为高电平,接着延时1ms跳过无用高电平,之后若再检测到低电平,则脉冲计数器继续加一。

再等待电平变为高电平,之后延时1ms 跳过无用高电平,之后若检测到低电平,则脉冲计数器继续加一。

如此重复上面的步奏。

如果1ms延时跳过无用高电平后,检测到仍为高电平,则继续延时1ms,之后再检测,若检测到低电平,也就是最后检测到了2ms高电平,则说明没有接收到3ms结束码,则此次接收的信号无效,退出中断程序,打开中断重新接收信号。

如果2ms高电平后,检测到了高电平,则继续延时1ms,如果检测到高电平,则说明最后接收到了大于3ms的高电平,因此结束码无效,此次接收无效,如果接收到低电平,则此次接收成功,计数器值有效。

同时将有效的计数值传给程序,进行指令分析,根据脉冲的不同个数执行相应操作。

图3-4 红外接收电路框图3.5 红外编解码原理通用红外编码采用不同的脉宽宽度来实现二进制信号的编码,编码由发送单片机来完成。

以间隔0.56ms、脉宽为0.565ms、周期为1.125ms的组合表示二进制的“1”;以间隔1.685ms、脉宽为0.565ms、周期为2.25ms的组合表示二进制的“0”。

本课题采用脉冲个数来进行编码,1ms高电平和1ms低电平组成一个脉冲周期,通过计算接收的不同脉冲个数执行部不同的操作。

3.5.1 指令码的调制指令码信号的调制仍由发送单片机来完成,如图3-5所示,A是指令码信号的编码波形,B 是频率为38KHz (周期为26μs) 的连续脉冲,C 是经调制后的间断脉冲串也就是信息码(相当于C =A ×B) ,也是用于红外发射二极管发送的波形。

图中脉冲个数仅为示意非真实情况。

3.5.2 信息码的解调信息码的解调由一体化红外接收头MS0038来完成,它把接收到的红外信号(图3-6中波形D ,也是图3-5中波形C) 经内部处理并解调复原,在输出脚输出图3-6中波形E (正好是对图3-5中波形A 的取反) ,MS0038的解调可理解为:在有红外脉冲输入时,输出端输出低电平,否则输出高电平,其输出的信号与TTL电平信号兼容,可直接与单片机T1的外部口及外部中断相联,以实现随时接收遥控信号并产生中断,然后由单片机对编码还原。

图3-5指令码信号的调制图3-6 信息码的解调#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit k1=P1^0;sbit k2=P2^4;sbit k3=P2^3;sbit k4=P2^2;sbit k5=P2^1;sbit k6=P2^0;uint flag=0;sbit LED_signer=P3^4;sbit LED=P3^0;void delay_10ms() //延时10ms;{ TH0 =0xd8 ;TL0 =0xf0 ;TR0 = 1;while(!TF0);TF0 = 0;TR0 = 0;}void delay_3ms() //延时3ms; { TH0 =0xf4 ;TL0 =0x48 ;TR0 = 1;while(!TF0);TF0 = 0;TR0 = 0;}void delay_1ms() //延时1ms;{ TH0 =0xfc ;TL0 =0x18 ;TR0 = 1;while(!TF0);TF0 = 0;TR0 = 0;}void Time_Init(){EA=1;//总中断TMOD=0x21;TR1=0;ET0=0;///// 定时器0关闭;TR0=0;ET1=1;TH1=0xf3;TL1=0xf3;///// 定时器1关闭;} /////////////////////////中断初始化;void Time1_Init() interrupt 3{LED_signer=~LED_signer;} //////////////////////定时器1中断函数;void k1_count() ////////////发射2个脉冲;{ flag=1;LED=0;LED_signer=0;TR1=1;delay_10ms();TR1=0;/////////////////////////////// //10ms引导码高电平;while(flag){ uint i=0;LED_signer=0;delay_3ms(); //3ms低电平开始码;////////////////////////////////for(i=0;i<2;i++){TR1=1; ///1ms高电平脉冲delay_1ms(); ///脉冲个数就是循环次数;TR1=0;LED_signer=0;delay_1ms();}///////////////////////////////delay_1ms();delay_1ms(); //2ms结束码;if(k1==0) //如果结束码发射完毕时,若k1还被按住,{ //则发射下一帧的引导码10ms//TR1=1;delay_10ms();TR1=0;}else //若此时k1不为0了,则发射该码的结束引导码10ms;{flag=0;TR1=1;delay_10ms();TR1=0;LED_signer=0;}///////////////////////////////////// 结束码10ms高电平;}LED=1;}void k2_count() ///////////////////发射4个脉冲;{flag=1;LED=0;LED_signer=0;TR1=1;delay_10ms();TR1=0;/////////////////////////////// //10ms引导码高电平;while(flag){ uint i=0;LED_signer=0;delay_3ms(); //3ms低电平开始码;////////////////////////////////for(i=0;i<3;i++){TR1=1; ///1ms高电平脉冲delay_1ms(); ///脉冲个数就是循环次数;TR1=0;LED_signer=0;delay_1ms();}///////////////////////////////delay_1ms();delay_1ms(); //2ms结束码;if(k2==0) //如果结束码发射完毕时,若k还被按住,{ //则发射下一帧的引导码10ms//TR1=1;delay_10ms();TR1=0;}else //若此时k不为0了,则发射该码的结束引导码10ms;{flag=0;TR1=1;delay_10ms();TR1=0;LED_signer=0;}///////////////////////////////////// 结束码10ms高电平;}LED=1;}void k3_count() ////////////////////发射6个脉冲;{flag=1;LED=0;LED_signer=0;TR1=1;delay_10ms();TR1=0;/////////////////////////////// //10ms引导码高电平;while(flag){ uint i=0;LED_signer=0;delay_3ms(); //3ms低电平开始码;////////////////////////////////for(i=0;i<4;i++){TR1=1; ///1ms高电平脉冲delay_1ms(); ///脉冲个数就是循环次数;TR1=0;LED_signer=0;delay_1ms();}///////////////////////////////delay_1ms();delay_1ms(); //2ms结束码;if(k3==0) //如果结束码发射完毕时,若k还被按住,{ //则发射下一帧的引导码10ms//TR1=1;delay_10ms();TR1=0;}else //若此时k不为0了,则发射该码的结束引导码10ms;{flag=0;TR1=1;delay_10ms();TR1=0;}///////////////////////////////////// 结束码10ms高电平;}LED=1;}void k4_count() //////////////发射8个脉冲{flag=1;LED=0;LED_signer=0;TR1=1;delay_10ms();TR1=0;/////////////////////////////// //10ms引导码高电平;while(flag){ uint i=0;LED_signer=0;delay_3ms(); //3ms低电平开始码;////////////////////////////////for(i=0;i<5;i++){TR1=1; ///1ms高电平脉冲delay_1ms(); ///脉冲个数就是循环次数;TR1=0;LED_signer=0;delay_1ms();}///////////////////////////////delay_1ms();delay_1ms(); //2ms结束码;if(k4==0) //如果结束码发射完毕时,若k还被按住,{ //则发射下一帧的引导码10ms//delay_10ms();TR1=0;}else //若此时k不为0了,则发射该码的结束引导码10ms;{flag=0;TR1=1;delay_10ms();TR1=0;LED_signer=0;}///////////////////////////////////// 结束码10ms高电平;}LED=1;}void k5_count() //////////////发射10个脉冲码;{flag=1;LED=0;LED_signer=0;TR1=1;delay_10ms();TR1=0;/////////////////////////////// //10ms引导码高电平;while(flag){ uint i=0;LED_signer=0;delay_3ms(); //3ms低电平开始码;////////////////////////////////for(i=0;i<6;i++){TR1=1; ///1ms高电平脉冲delay_1ms(); ///脉冲个数就是循环次数;TR1=0;LED_signer=0;delay_1ms();}///////////////////////////////delay_1ms();delay_1ms(); //2ms结束码;if(k5==0) //如果结束码发射完毕时,若k还被按住,{ //则发射下一帧的引导码10ms//TR1=1;delay_10ms();TR1=0;}else //若此时k不为0了,则发射该码的结束引导码10ms;{flag=0;TR1=1;delay_10ms();TR1=0;LED_signer=0;}///////////////////////////////////// 结束码10ms高电平;}LED=1;}void k6_count() ////////////////发射12个脉冲码;{flag=1;LED=0;LED_signer=0;TR1=1;delay_10ms();TR1=0;/////////////////////////////// //10ms引导码高电平;while(flag){ uint i=0;LED_signer=0;delay_3ms(); //3ms低电平开始码;////////////////////////////////for(i=0;i<7;i++){TR1=1; ///1ms高电平脉冲delay_1ms(); ///脉冲个数就是循环次数;TR1=0;LED_signer=0;delay_1ms();}///////////////////////////////delay_1ms();delay_1ms(); //2ms结束码;if(k6==0) //如果结束码发射完毕时,若k还被按住,{ //则发射下一帧的引导码10ms//TR1=1;delay_10ms();TR1=0;}else //若此时k不为0了,则发射该码的结束引导码10ms;{flag=0;TR1=1;delay_10ms();TR1=0;LED_signer=0;}///////////////////////////////////// 结束码10ms高电平;}LED=1;}void main(){ P2=0xff;P1=0xff;Time_Init();LED_signer=0;LED=1;while(1){if(k1==0){delay_10ms();if(k1==0)k1_count();}else if(k2==0){delay_10ms();if(k2==0)k2_count();}else if(k3==0){delay_10ms();if(k3==0)k3_count();}else if(k4==0){delay_10ms();if(k4==0)k4_count();}else if(k5==0){delay_10ms();if(k5==0)k5_count();}else if(k6==0){delay_10ms();if(k6==0)k6_count();}else ;}}2.以下是红外遥控接收板的代码#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit LED=P1^0; ///////////接受成功指示灯;uint count=0; ///////////计数脉冲个数;sbit IR=P3^2; ///////////红外接受头引脚;uint endcount=0;void delay_10ms(void) ///////////延迟10ms;{TH0 =0xd8 ;TL0 =0xf0 ;TR0 = 1;while(!TF0);TF0 = 0;TR0 = 0;}void delay_3ms() ////////////延迟3.2ms;{TH0 =0xf3 ;TL0 =0x80 ;TR0 = 1;while(!TF0);TF0 = 0;TR0 = 0;}void delay_1ms() ///////////延迟1.2ms;{TH0 =0xfb ;TL0 =0x50 ;TR0 = 1;while(!TF0);TF0 = 0;TR0 = 0;}void delay_2ms() //////////延迟2ms;{TH0 =0xf8 ;TL0 =0x30 ;TR0 = 1;while(!TF0);TF0 = 0;TR0 = 0;}void Time_Init() /////////中断初始化;{EA=1;EX0=1;IT0=0;/////////// 外部中断0打开;TMOD=0x01;TR0=0;ET0=0; /// 计时器关闭;}void Time_Init0() interrupt 0{ EX0=0; /////外部中断响应时,关闭中断,进入中断函数;count=0;delay_10ms(); /////检测是否为信号10ms低引导码;if(IR==0) /////若不是,则跳出中断函数,继续执行中断;{ EX0=1;return;}delay_3ms(); /////若是引导码,则检验是否为3ms高电平开始码;if(IR==1) //////若不是开始码,则跳出中断函数,继续执行中断函数;{ EX0=1;return;}while(1){count++; //////若是开始码,且检测到IR==0则count加1;while(IR==0);///跳过低电平,delay_1ms(); ///延时1ms后,检测IR是否为低电平;if(IR==1) ///若不是,则结束接受程序,计数器清零;执行中断;{delay_2ms();if(IR==0){ endcount=count;EX0=1;return;}else{ EX0=1;return;}}////若是低电平,则跳回开头,计数器加1;}}void main(){Time_Init();LED=1;while(1){if(endcount==2){LED=1;}else if(endcount==3){LED=1;}else if(endcount==4){LED=1;}else if(endcount==5){LED=1;}else if(endcount==6){LED=1;}else if(endcount==7){LED=0;}else LED=1;}}。

相关文档
最新文档