'DataCzas1

Bascom



'DataCzas1.bas

'Program, po osiągnięciu założonego czasu załącza Portc.2 i sygnalizuje dżwiękowo do czasu przyciśnięcia Reset w Portc.4.

'Program sygnalizuje dźwiękowo zawsze, gdy w miejscu sekund będzie cyfra 30 (można nastawić inną liczbę).

'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                                      'Reset.

 Set Portc.4                                                '

 Config Pinc.2 = Output                                     'Port wykonawczy.

 Set Portc.2                                                '

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

 Reset Portd.5                                              '

 

 Enable Interrupts                                          'Zezwalaj na przerwania.

 

    Date$ = "02/08/06"                                      'Od tej daty.

    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 _sec = 30 Then                                       'Jeśli pojawi się cyfra 30 w miejscu sekund,

    Sound Portd.5 , 300 , 600                               'Portc.2 załączy się i usłyszymy 3-krotny 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                               '

    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                                                  '

 

 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.