Summary of Infrared Remote Control with Microcontroller
This article explains how to use NEC IR protocol-based remote controls (TV, DVD, VCR) to operate home appliances via a PIC12F675 microcontroller. It details the NEC protocol's timing structure, including leading pulses, address/command bytes, and repeat codes, while noting an extended protocol variant not utilized in this specific demonstration.
Parts used in Home Appliance Control with NEC IR:
- NEC IR protocol based TV/DVD/VCR remote control
- PIC12F675 Microcontroller
- Infrared Remote Control Relay Board
- Home appliances (fan, bulb)
- Logic Analyser
This little project will demonstrate how you can use NEC IR protocol based TV, DVD or VCR remote control to control you home appliances like fan bulb or virtually anything. There are lots of projects out there to accomplish this task but i have to write my own code because of too many requests on IR infrared Remote Control Relay Board with PIC12F675 Microcontroller. There are a number of consumer Infrared protocols out there and they have been used for every single purpose possible, like PDA laptops and other consumer appliances. RC-5 & RC-6 by Phillips, RCA are few examples of consumer IR protocols.
NEC Infrared ProtocolA 9ms leading pulse burst (16 times the pulse burst length used for a logical data bit)
A 4.5ms space
The 8-bit address for the receiving device
The 8-bit logical inverse of the address
The 8-bit command
The 8-bit logical inverse of the command
Final 562.5µs pulse burst to show end of message transmission.
Logical ‘0’ – a 562.5µs pulse burst followed by a 562.5µs space, with a total transmit time of 1.125ms
Logical ‘1’ – a 562.5µs pulse burst followed by a 1.6875ms space, with a total transmit time of 2.25
The transmission of 0 and 1 is shown in the image blow
There are four bytes of data bits are being sent in least significant bit first order the figure blow shows the format of an NEC IR transmission frame, for a command of 0xB1 (10110001b) and an address of 0x8D (10001101b) .
16 bits for the address (address + inverse) require 27ms to transmit time .and the 16 bits for the command (command + inverse) also require 27ms to transmit time.
because (address + address inverse) or (command+command inverse) will always contain 8 ‘0’s and 8 ‘1’s so (8 * 1.125ms) + (8 * 2.25ms) == 27 ms .
according to this total time required to transmit the frame is (9ms +4.5ms +27ms+27ms) = 67.5 ms.
Logic Analyser shows the timing details
T1 leading pulse at 84.115ms
T2 space on 93.28ms
T3 Address starts at 97.580ms
T4 Address ends , address inverse starts 107.670ms
T5 address inverse ends , command starts at 124.486ms
T6 Command ends, command inverse starts 135.696ms
T7 Command inverse ends and last 562.5µs pulse to show end of transmission
Extended NEC protocol (not used in this demonstration)
The NEC protocol is so widely used that soon all possible addresses were used up. By sacrificing the address redundancy the address range was extended from 256 possible values to approximately 65000 different values. This way the address range was extended from 8 bits to 16 bits without changing any other property of the protocol. The command redundancy is still preserved. Therefore each address can still handle 256 different commands.in extended protocol instead of sending address and address inverse we send address low and address high as shown in the image blow.

If the key on the remote controller is kept depressed, a repeat code will be issued, typically around 40ms after the pulse burst that signified the end of the message. A repeat code will continue to be sent out at 108ms intervals, until the key is finally released. The repeat code consists of the following, in order:
A 9ms leading pulse burst
A 2.25ms space
A 562.5µs pulse burst to mark the end of the space (and hence end of the transmitted repeat code).
the figures give blow show the timing of repeat codes. If user keeps the key depressed the repeat codes keep coming. T8 shows the timing of repeat code.
-
How can you control home appliances like fans or bulbs using a standard remote?
You can use a NEC IR protocol based TV, DVD, or VCR remote control along with a PIC12F675 microcontroller to control these appliances. -
Why was custom code written for this project instead of using existing solutions?
Custom code was written due to too many requests on the Infrared Remote Control Relay Board with PIC12F675 Microcontroller. -
What is the total time required to transmit a standard NEC IR frame?
The total time required to transmit the frame is 67.5 ms, calculated from the sum of the leading pulse, space, address data, and command data transmission times. -
Does the NEC protocol support an extended address range?
Yes, an extended NEC protocol exists that sacrifices address redundancy to extend the address range from 256 values to approximately 65000 different values. -
What happens if a key on the remote controller is kept depressed?
A repeat code is issued typically around 40ms after the end of the message, continuing at 108ms intervals until the key is released. -
How are logical zeros and ones represented in the NEC protocol?
A logical zero consists of a 562.5µs pulse burst followed by a 562.5µs space, while a logical one has a 562.5µs pulse burst followed by a 1.6875ms space. -
Which consumer infrared protocols are mentioned as examples besides NEC?
Rc-5 & Rc-6 by Phillips and RCA are mentioned as examples of other consumer IR protocols used for various purposes.