Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Assembly code(8051) to decode ir rc5 remote control required

Status
Not open for further replies.

kiran06

Newbie level 4
Joined
Apr 3, 2007
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,326
hi frens,
i need assembly level code(8051) to decode ir rc5 remote control.
 

Full working code(I used these code)
**broken link removed**
 
Last edited by a moderator:

Re: Assembly code(8051) to decode ir rc5 remote control requ

backa said:
Full working code(I used these code)
**broken link removed**
That link seems to be wrong and a search page comes up.
Can you give the correct URL?
 
Last edited by a moderator:

The domain spetspribor.com has been sold out :(
 

Re: Assembly code(8051) to decode ir rc5 remote control requ

Alternate link :

:arrow:**broken link removed**
This page describes a solution using a 8051 MCU.
 
Last edited by a moderator:

Full listing programm.
Определения:

SYS .EQU 000H ;Номер системы
CLK_KHZ = 12000 ;Тактовая частота 12 МГц

RC5_DF .EQU B.0 ;Флаг данных
RC5_PF .EQU B.1 ;Флаг периода

RC5_N =(1+2*(CLK_KHZ/188))/2
RC5_N1 =(1+2*(CLK_KHZ/249))/2
RC5_N2 =(1+2*(CLK_KHZ/382))/2
RC5_NT =(1+2*(CLK_KHZ/135))/2

Вектора:

ORG 0000H ;Вектор сброса
LJMP INIT
ORG 0003H ;Вектор прерывания INT0
LJMP RC5

Инициализация системы прерываний:

SETB PX0 ;Высокий приоритет INT0
STB IT0 ;Прерывание INT0 по переходу
SETB EX0 ;Разрешение INT0
SETB EA ;Общее разрешение прерываний

Основная программа:

LOOP: ;анализ кода в ячейке ОЗУ 1FH
SJMP LOOP

Подпрограмма обслуживания прерывания:

RC5: PUSH PSW ;Сохранение PSW
PUSH ACC ;Сохранение аккумулятора
PUSH B ;Сохранение регистра B
SETB RS0 ;Включение регистрового банка 3
SETB RS1
MOV R6,DPH ;Сохранение DPTR
MOV R5,DPL
MOV B,#2 ;Установка флагов
MOV R2,#2 ;Инициализация байта системы для принятия 7 бит
MOV R3,#4 ;Инициализация байта команды для принятия 6 бит
MOV R0,#R32 ;Загруска адреса регистра R2 в банке 3
MOV R1,#RC5_N ;Загрузка величины тайм-аута 2362 мкс
WLOW: JB SER,WHIGH ;Ожидание единицы на входе
MOV R4,#16
DJNZ R4,$
DJNZ R1,WLOW
SJMP NORC5 ;Ошибка, истек тайм-аут
WHIGH: MOV R1,#RC5_N ;Загрузка величины тайм-аута 2362 мкс
SAMPLE: MOV R4,#8 ;Точки входа в цикл SAM1 .. SAM3 предназначены
DJNZ R4,$ ;для выравнивания времени выполнения различных веток
SAM1: MOV R4,#3
DJNZ R4,$
MOV R4,#2
DJNZ R4,$
SAM3: MOV C,SER ;Опрос входа
MOV ACC.0,C
XRL A,B
JNB ACC.0,TRANS ;Ожидание изменения состояния
DJNZ R1,SAMPLE
SJMP NORC5 ;Ошибка, истек тайм-аут
TRANS: CPL RC5_DF ;Изменение состояния входа обнаружено
MOV A,R1
ADD A,#-RC5_N1
JC NORC5 ;Ошибка, время <577.5uS
MOV A,R1
ADD A,#-RC5_N2
JC TRANS1
JB RC5_PF,NORC5 ;Ошибка, время >1200uS
SJMP STDATA
TRANS1: CPL RC5_PF ;Инвертирование флага периода
MOV R1,#RC5_N ;Загрузка величины тайм-аута 2362 мкс
JB RC5_PF,SAM1 ;Прием бита не завершен, переход на опрос
STDATA: MOV C,RC5_DF
MOV A,@R0
RLC A ;Сохранение бита данных
MOV @R0,A
MOV R1,#RC5_N ;Загрузка величины тайм-аута 2362 мкс
JNC SAM2 ;Прием системы не завершен, переход на опрос
INC R0 ;Система принята, начало приема команды
MOV A,R0
MOV R1,#RC5_N ;Загрузка величины тайм-аута 2362 мкс
JNB ACC.2,SAM3 ;Прием команды не завершен, переход на опрос
MOV R1,#RC5_N ;Загрузка величины тайм-аута 2362 мкс
WLW: JB SER,TRM ;Последний бит, ожидание единицы на входе
MOV R4,#16
DJNZ R4,$
DJNZ R1,WLW
SJMP NORC5 ;Ошибка, истек тайм-аут
TRM: MOV R1,#RC5_NT ;Загрузка величины тайм-аута 3000 мкс
TERM: JNB SER,NORC5 ;Ошибка, если на входе обнаружен низкий уровень
MOV R4,#16
DJNZ R4,$
DJNZ R1,TERM
MOV A,R2 ;Номер системы и бит управления в R2
ANL A,#1FH ;Выделение номера системы
CJNE A,#SYS,NORC5 ;Проверка номера системы
MOV DPTR,#RCTAB ;Загрузка адреса таблицы
MOV A,R3 ;Загрузка кода команды
MOVC A,@A+DPTR ;Перекодировка
MOV R3,A ;Сохранение нового кода
MOV A,R2 ;Номер системы и бит управления в R2
ANL A,#20H ;Выделение бита управления
RL A
RL A ;Сдвиг бита управления в разряд D7
ORL A,R3 ;Совмещение кода команды и бита управления
MOV R3,A ;Сохранение результата
MOV A,R7
ANL A,#40H ;Выделение бита управления местной клавиатуры
ORL A,R3 ;Совмещение кода команды и битов управление
MOV R7,A ;Сохранение результата
NORC5: CLR IE0 ;Очистка флага прерывания
MOV DPL,R5 ;Восстановление DPTR
MOV DPH,R6
POP B ;Восстановление регистра B
POP ACC ;Восстановление аккумулятора
POP PSW ;Восстановление PSW
RETI ;Возврат из обработчика прерывания
 

Here is another one with 2051

**broken link removed**


Regards
Nandhu
 

Re: Assembly code(8051) to decode ir rc5 remote control requ

budhy said:
Alternate link :

:arrow:**broken link removed**
This page describes a solution using a 8051 MCU.

The source code is not available :(

This means the 8051 will only be able to do this task and we will not be able to extend it's functionality :(
 
Last edited by a moderator:

Re: Assembly code(8051) to decode ir rc5 remote control requ

Why don't you make it in C ? That's a lot easier. I've done it last year.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top