BASCOM


Jak się pracuje z bitami



'Bity.bas

'Działanie na bitach.

'Program poglądowy.

'Opis pod programem.

'Opracował Henryk Wydmuch.

'Pamięć zajęta w 15%.

 

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

 $crystal = 10240000                                        'Informujemy kompilator o frekwencji 10,24MHz.

 

 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 Portb.1 = Input                                     'P1.

 Set Portb.1                                                '

 

 Config Portb.2 = Input                                     'P2.

 Set Portb.2                                                '

 

 Dim B As Word                                              'B może zmieścić max. 65535.

 

 Dim B.0 As Bit                                             '1 lub 0.

 Dim B.1 As Bit                                             '

 Dim B.2 As Bit                                             '

 Dim B.3 As Bit                                             '

 Dim B.4 As Bit                                             '

 Dim B.5 As Bit                                             '

 Dim B.6 As Bit                                             '

 Dim B.7 As Bit                                             '

 Dim B.8 As Bit                                             '

 Dim B.9 As Bit                                             '

 Dim B.10 As Bit                                            '

 Dim B.11 As Bit                                            '

 Dim B.12 As Bit                                            '

 Dim B.13 As Bit                                            '

 Dim B.14 As Bit                                            '

 Dim B.15 As Bit

 Cls                                                        '

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

Do                                                          'Pętla.

 

 If Pinb.1 = 0 Then                                         'Przycisk P1.

 'Przykładowa liczba dziesiętna w zmiennej B:

 B = 54671                                                  '

 Home                                                       '

 Lcd B.0 ; B.1 ; B.2 ; B.3 ; B.4 ; B.5 ; B.6 ; B.7 ; B.8 ; B.9 ; B.10 ; B.11 ; B.12 ; B.13 ; B.14 ; B.15;       '16 bitów.

 Lowerline                                                  '

 Lcd "B w kodzie BCD"                                       '

 End If                                                     '

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

 'Przykładowa liczba w kodzie dwójkowym:

 If Pinb.2 = 0 Then                                         'P2.

 B.0 = 0                                                    'Jesli bity przyjmą takie wartości:

 B.1 = 1                                                    '

 B.2 = 0                                                    '

 B.3 = 0                                                    '

 B.4 = 1                                                    '

 B.5 = 0                                                    '

 B.6 = 0                                                    '

 B.7 = 1                                                    '

 B.8 = 0                                                    '

 B.9 = 0                                                    '

 B.10 = 1                                                   '

 B.11 = 0                                                   '

 B.12 = 0                                                   '

 B.13 = 1                                                   '

 B.14 = 0                                                   '

 B.15 = 0                                                   '

 

 Home                                                       '

 Lcd B                                                      'Pokaże 9362. Taka liczba jest w kodzie dwójkowym.

 End If                                                     '

 

 Loop                                                       'I wracaj ponownie do pętli.

End                                                         '

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

'Objaśnienie:

'Zmienne B.0, B.1...są skonfigurowane jako bity.

'B.0 jest pierwszym bitem o wartości 1.

'Kolejność bitów jest następująca: B.0=1, B.1=2, B.2=4, B.3=8, B.4=16, B.5=32, B.6=64, B.7=128, B.8=256,

'B.9=512, B.10=1024, B.11=2048, B.12=4096, B.13=8192, B.14=16384, B.15=32768.

'Jeśli przykładowo bity: B.1 i B.6 przyjęły wartość 1, to jest to liczba dziesiętna 66 (bo 2+64),

'pozosytałe bity mające wartość 0 nie są brane pod uwagę.

'Więcej bitów nie może już być w tym przykładzie, bo zmienna B jest typu Word (do 65536).

 

'W tym zadaniu, gdy naciśnięto P1, a zmienna B zawiera 54671, Lcd pokaże nam jak wygląda ta liczba w kodzie dwójkowym.

'Gdy naciśnięto P2, a lczba jest w kodzie dwójkowym, Lcd pokaże nam jaka to liczba w kodzie dziesiętnym.

'Koniec.