'DataCzas2

Bascom



'DataCzas2.bas

'Program, po osiągnięciu założonego czasu, tutaj po 1godz, 1min, 30sek załącza Portc.2

'i sygnalizuje dżwiękowo do czasu przyciśnięcia Reset w Portc.4.

'Prcesor Atmega8.

'Kwarc zegarkowy 32768Hz.

'Pamięć zajęta w 12%.

'Opracował Henryk Wydmuch.

'Fusebit A997 ustawiony na oscylator wewnętrzny 8MHz, 0100.

 

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

 $crystal = 8000000                                         'Oscylator o częstotliwości 8MHz.

 Config Lcd = 16 * 2

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

 

 Config Clock = Soft

 Config Date = Dmy , Separator = /

 Config Pinc.4 = Input                                      'Przycisk Reset.

 Set Portc.4                                                '

 Config Pinc.2 = Output                                     'Port wykonawczy (np. przekaźnik).

 Set Portc.2                                                '

 Config Pind.5 = Output                                     'Głośnik do +.

 Reset Portd.5                                              '

 

 Enable Interrupts                                          'Zezwalaj na przerwania.

 

    Date$ = "02/08/06"                                      'Od tej daty liczy w przód.

    Time$ = "00:00:00"                                      'Początkowy czas po włączeniu procesora.

 Do                                                         'Pętla główna.

    Cls                                                     'Czyść Lcd.

    Lcd Time$                                               'Pobierz aktualny czas.

    Locate 1 , 10                                           'W pierwszej linii na 10 miejscu napisz...

    Lcd "Czas"                                              'Czas

    Lowerline                                               'W drugiej linii.

    Lcd Date$                                               'Pobierz aktualną datę.

    Locate 2 , 10                                           '

    Lcd "Data"                                              '

    Waitms 100                                              'Trzymaj chwilę info na Lcd.                                            

    If _hour = 1 Then                                       'Po jednej godzinie...

    If _min = 1 Then                                        'Po jednej minucie...

    If _sec = 30 Then                                       'I po 30 sekundach...

    Sound Portd.5 , 300 , 600                               'Portc.2 załączy się i usłyszymy sygnał dźwięk.

    Reset Portc.2                                           'Załącz Portc.2.

    Else                                                    'W przciwnym razie...

    If Pinc.2 = 0 Then                                      'Jeśli Portc.2 ma 0, ponownie sygnał dźwiękowy.

    Sound Portd.5 , 300 , 600                               'Jeśli pojawi się ten dźwięk, to będzie trwał do skasowania.

    If Pinc.4 = 0 Then                                      'Jeśli przyciśniemy przycisk Reset w Portc.4...

    Exit Do                                                 'Wyjdź z pętli Do i zatrzymaj liczenie czasu.

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

 

 Loop                                                       'Powtórz pętlę.

 End                                                        'Koniec pętli.

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

 

 '1 min = 60 sek.

 '1 godz = 3600 sek.

 '1 doba = 86400 sek.

 '1 tydz = 604800 sek.