Bascom

Program poglądowy, mówiący jak stosować Bity.
Jeśli wprowadzisz do portów informację w postaci zer, to możesz uzyskać kombinację wejść, tak jak przy wprowadzaniu kodu BCD.

'BCDbity.bas  (Poglądowy)

'Praca na bitach.

'Opracował Henryk Wydmuch.

'Pamięć zajęta w 9%.

'Fusebit ustawiony na 0011, czyli wewnętrzny generator RC 4MHz.

 

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

$crystal = 4000000                                          'Informujemy kompilator o frekwencji 4MHz.

 

 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.0 = Input                                      'Wejście informacji do Portu.

 Config Pind.1 = Input                                      'Wejście informacji do Portu.

 Config Pind.2 = Input                                      'Wejście informacji do Portu.

 Config Pind.3 = Input                                      'Wejście informacji do Portu.

 

 Set Portd.0                                                'Dołącz rezystor podciągający.

 Set Portd.1                                                'Dołącz rezystor podciągający.

 Set Portd.2                                                'Dołącz rezystor podciągający.

 Set Portd.3                                                'Dołącz rezystor podciągający.

 

 Dim A1 As Byte                                             'Zmienne.

 Dim B1 As Byte                                             '

 Dim C1 As Byte                                             '

 Dim D1 As Byte                                             '

 Dim Ind As Byte                                            'Zmienna do zsumowania zawartości A1, B1, C1, D1.

 

 A Alias Pind.0                                             'Pind.0 będzie się nazywał A.

 B Alias Pind.1                                             'Pind.1 będzie się nazywał B.

 C Alias Pind.2                                             'Pind.2 będzie się nazywał C.

 D Alias Pind.3                                             'Pind.3 będzie się nazywał D.

 

 Cls                                                        'Czyść.

 

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

 Do                                                         'Pętla sprawdzająca na którym Porcie jest 0.

    If A = 0 Then                                           'Gdy na Pind.0...

   A1 = 1                                                   'Wtedy zmienna A1 będzie załadowana 1.

End If                                                      '

 

   If B = 0 Then                                            'Gdy na Pind.1...

   B1 = 2                                                   'Wtedy zmienna A1 będzie załadowana 2.

End If                                                      '

 

   If C = 0 Then                                            'Gdy na Pind.2...

   C1 = 4                                                   'Wtedy zmienna A1 będzie załadowana 4.

End If                                                      '

 

   If D = 0 Then                                            'Gdy na Pind.3...

   D1 = 8                                                   'Wtedy zmienna A1 będzie załadowana 8.

End If                                                      '

 

  Ind = Ind + A1                                            'To co jest w zmiennych A1, B1, C1, D1 załaduj do Ind.

   Ind = Ind + B1                                           '

    Ind = Ind + C1                                          '

     Ind = Ind + D1                                         '

   Home                                                     'Pokazuj w jednym miejscu.

   Lcd Ind                                                  'Pokaż sumę A1, B1, C1, D1.

   Exit Do                                                  'Po jednym obrocie pętli i z sumowaniu A1, B1, C1, D1 wyjdź z pętli.

 Loop                                                       '

 End                                                        '

 

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

'Objaśnienie :

  'Do Portów d.0, d.1, d.2, d.3 doprowadzamy 0, jako informację. Pętla Do sprawdza, gdzie jest zero

  'i jeśli jest w A, to wpisuje do zmiennej A1 wartość 1 itd.

  'Na końcu, po jednym obrocie pętli, do zmiennej Ind załaduje zxawartości A1, B1, C1, D1.

  'Po zsumowaniu tych zawartości nastąpi wyjście z pętli, aby nie kopiować czynności.

  'Otrzymaliśmy wynik wpisu kodu BCD do portów d.0 - d.3.

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

'Koniec