'Przerwanie16.bas

 'Program poglądowy, przerwanie Int0.

 'Można załączyć Port.

 'Opis pod programem.

 'Opracował Henryk Wydmuch

 'Program zajmuje 7% pamięci.

 

 $regfile = "m8def.dat"                                     'Info dla kompilatora.

$crystal = 16000000                                         'Informujemy kompilator o kwarcu 16MHz.

 

 Config Lcd = 16 * 2                                        'Konfiguracja Lcd.

 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5

 

 

 

 Config Pind.1 = Output                                     'Port wykonawczy.

 Config Pind.2 = Input                                      'Int0.

  Set Portd.2                                               'Ustaw poziom wysoki na wyjściu Portd.2.

  Set Portd.1                                               'Ustaw poziom wysoki na wejściu Portd.1.

 

 

 

 On Int0 Styk                                               'Podprogram Timer0 o nazwie Sekunda.

 

 Enable Interrupts                                          'Zezwalaj na wszystkie przerwania.

 Enable Int0                                                'Odblokowujemy przerwanie.

 

 Cls                                                        'Wyczyść Lcd.

 

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

Do                                                          'Początek pętli głównej programu.

Home                                                        'Pokazuj w jednym miejscu.

If Pind.1 = 0 Then                                          'Jeśli w Port.d1 pojawi się 0 od przerwania...

Lcd "Jest impuls"                                           'Pokaż komunikat.

End If                                                      'Koniec warunku.

Loop                                                        'Powtórz pętlę.

End                                                         'Koniec pętli.

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

Styk:                                                       'Podprogram obsługi przerwania.

  Portd.1 = 0                                               'Załącz Port.

  Return                                                    'Wróć do programu.

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Objaśnienie:

'W Atmega8 przerwanie zewnętrzne INT0 doprowadza się do Portd.2.

'Przerwanie poziomem niskim.

'Po pojawieniu się impulsu w Portd.2, czyli po przerwaniu, w Portd.1 pojawi się 0 i pozostanie

'aż do z resetowania procesora.

'Na Lcd pojawi się komunikat "Jest impuls".

'Koniec.