piątek, 26 kwietnia
Shadow

Odbieranie Transmisji Rc5

Zawarte tutaj procedury dotyczą obsługi odbiornika podczerwieni pracującego na częstotliwości 36KHz (np. układ TSOP1736) a konkretnie odbioru transmisji Rc5 nadawanej z pilota uniwersalnego lub dowolnego innego pracującego w omawianym standardzie.

Język Bascom 8051

Do poprawnej pracy z mikrokontrlerem (np. AT89C4051) wymagane jest odpowiednia konfiguracja przerwania zewnętrznego, tak aby reagowało na zbocze narastające. Do tego właśnie wejścia zostanie podłączony odbiornik podczerwieni:

Config Rc5 = P3.2
Reset Tcon.0 'reaguje na zbocze narastajace
On Int0 Odbierz_rc5

Odczyt będzie dokonywany w obsłudze przerwania zewnętrznego. Po każdym odebraniu kodu Rc5 zmienna bitowa Odebrano przyjmuje wartość 1. Traktując tą zmienną jako flagę bitową w głównej pętli programu możemy napisać procedurę wykonującą odpowiednie czynności zależne od odebranego adresu(0-31) i komendy(0-63):

Odbierz_rc5:
Getrc5(adres , Komenda)
Adres = Adres And &B00011111 'zerowanie bitu 5
Odebrano = 1
Return

Do poprawnej pracy wymagane jest zadeklarowanie na początku programu zmiennych używanych w powyższej procedurze:

Dim Odebrano As Bit
Dim Komenda As Byte , Adres As Byte

Poniżej znajduje się przykład programu odbierającego transmisję Rc5:

$crystal = 12000000 ’12MHz
$regfile = „89C4051.DAT”

Config Rc5 = P3.2
Reset Tcon.0 'reaguje na zbocze narastajace
On Int0 Odbierz_rc5

Enable Int0
Enable Interrupts

Dim Odebrano As Bit
Dim Komenda As Byte , Adres As Byte

Do
If Odebrano = 1 Then
Odebrano = 0
Disable Int0
'**********************************
'czynnosci wykonywane w zaleznosci od zmiennych adres i komenda
'**********************************
Enable Int0
End If
Loop
End

Odbierz_rc5:
Getrc5(adres , Komenda)
Adres = Adres And &B00011111 'zerowanie bitu 5
Odebrano = 1
Return

Język Bascom AVR

Do poprawnej pracy mikrokontrolera AVR, konieczna jest jego konfiguracja (przykład dla ATTiny2313). ustawiony zostanie typ mikrokontrolera, rezonator kwarcowy i funkcje wyprowadzeń. Skonfigurowane zostanie przerwanie zewnętrzne i obsługa Rc5:

$regfile = „attiny2313.dat”
$crystal = 12000000

Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B11111011 : Portd = &B11111111

On Int0 Przzew0 Nosave
Config Int0 = Low Level
Enable Int0

Config Rc5 = Pind.2

Enable Interrupts

Odbieranie kodów z pilota odbywa się w przerwaniu zewnętrznym:

Przzew0:
Disable Int0
Enable Interrupts
Getrc5(adres , Komenda)
Komenda = Komenda And &B01111111
Odebrano = 1
Return

a interpretacja wciśniętego klawisza i adresu pilota następuje w pętli głównej programu:

Do

If Odebrano = 1 Then
If Adres = 0 Then 'pilot o adresie 0

'co się ma dziać w zależności od komendy

End If
Odebrano = 0
Enable Int0
End If

'inne instrukcje ….

Loop
End

Poniżej znajduje się przykład programu odbierającego transmisję Rc5:

'************* Konfiguracja uC *****************
'***********************************************
$regfile = „attiny2313.dat”
$crystal = 12000000

Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B11111011 : Portd = &B11111111

On Int0 Przzew0 Nosave
Config Int0 = Low Level 'Falling
Enable Int0

Config Rc5 = Pind.2
Dioda Alias Portd.6

Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.0 'mirley test board 2
Config Lcd = 16 * 2
Cls
Cursor Off Noblink

Enable Interrupts
'********** Konfiguracja uC Koniec ************

'****************** Zmienne *******************
'***********************************************
Dim Komenda As Byte , Adres As Byte
Dim Odebrano As Bit
'************* Zmienne Koniec ****************

'************** Petla glowna ******************
'***********************************************
Do

If Odebrano = 1 Then
If Adres = 0 Then 'pilot o adresie 0
Reset Dioda

Cls
Lcd Komenda

Waitms 10
Set Dioda
Waitms 10
End If
Odebrano = 0
Enable Int0
End If

Loop
End
'************ Petla glowna Koniec **************

Przzew0:
Disable Int0
Enable Interrupts
Getrc5(adres , Komenda)
Komenda = Komenda And &B01111111
Odebrano = 1
Return
Materiał nadesłał użytkownik : Elektron

5/5 - (1 ocena/y)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.