Bascom

Zdalne urządzenie przywoławcze



'Zelichowo.bas

 'Urządzenie do przywoływania.

 'Pamięć zajęta w 21%.

 'Opracował Henryk Wydmuch.

 'Schemat: Zelichowo.png

 $regfile = "2313def.dat"                                   'Dyrektywy dla kompilatora.

 $crystal = 49152000                                        'Zastosujemy kwarc 4MHz.

 

 Config Timer0 = Timer , Prescale = 8                       'Timer0 jako czasomierz z podziałem wstępnym przez 8 (do migania diody).

 

 On Timer0 Sekunda                                          'Podprogram Sekunda dla Timer0 (miganie diody- pamięć alarmu).

 

  Dim Led As Word                                           'Deklarujemy 2 bajty pamięci dla zmiennej przechowującej

                                                            'przepełnienia Timer0.

 Enable Interrupts                                          'Zgoda na wszystkie odblokowania.

 Enable Timer0                                              'Odblokuj Timer0.

 

'Kofiguracja portów z zapasem.

Config Pind.0 = Output                                      '

Config Pind.1 = Output                                      '

Config Pind.2 = Input                                       '

Config Pind.3 = Output                                      '

Config Pind.4 = Input                                       '

Config Pind.5 = Input                                       '

Config Pind.6 = Output                                      '

Config Pinb.0 = Output                                      '

Config Pinb.1 = Output                                      '

Config Pinb.2 = Input                                       '

Config Pinb.3 = Input                                       '

Config Pinb.4 = Input                                       '

 

Set Portd.0                                                 '

Set Portd.1                                                 '

Set Portd.2                                                 '

Set Portd.3                                                 '

Set Portd.4                                                 '

Set Portd.5                                                 '

Reset Portb.0                                               '

Reset Portb.1                                               '

Set Portb.2                                                 '

Set Portb.3                                                 '

Set Portb.4                                                 '

 

  Stop Timer0

'Pierwsza pętla---------------------------------------------------------------------------------------------

Do                                                          'Pętla.

  If Pind.4 = 0 Then                                        'Tu wchodzi poziom zero z bramki.

  Portd.0 = 0                                               'Zaświeć Led.

  Start Timer0                                              '

  Sound Portd.6 , 100 , 100                                 'Dźwięk w Portd.6.

  Waitms 1                                                  '

  Sound Portd.6 , 100 , 100                                 '

 Else                                                       'Gdy Pind.4=1...

   Portd.0 = 1                                              'Zgaś Led

  End If                                                    '

Loop                                                        '

End                                                         '

'----------------------------------------------------------

Sekunda:                                                    'Podprogram Timera0 (miganie alarmowe diody).

   Load Timer0 = 200                                        'Wpisana wartość do Timer0, odliczy 200.

   Incr Led                                                 'Po cyklu powiększ liczbę przepełnień w zmiennej.

   If Led = 80 Then                                         'Jeśli liczba przepełnień równa się 80, to...

   Led = 0                                                  'Wyzeruj zmienną.

   Toggle Portd.1                                           'Zmień stan wyjścia Portd.1 na przeciwny.

   End If                                                   'Koniec warunków.

   Return                                                   'Wróć do programu.

'----------------------------------------------------------

'Objaśnienie:

'Po otrzymaniu kodu z nadajnika 433MHz, dekoder MC145027 poda 1 z wyjścia 11 na bramkę 4011,

'do Portd.4 dotrze poziom 0.

'Zaświeci Led L1. Zgaśnie po ustąpieniu sygnału.

'Wystartuje Timer0 i będzie migać Led L2 aż do Reset.

'Uruchomi się dźwięk dwukrotny po każdym sygnale z nadajnika.

'Jeśli nie było nas przy urządzeniu w czasie alarmu, miga L1 do czasu skasowania.