Ćwiczenie - bramki logiczne
Transkrypt
Ćwiczenie - bramki logiczne
Zespół Szkół Technicznych i Ogólnokształcących Programowalne układy mikroprocesorowe w Jarosławiu stosowane w elektronice i telekomunikacji W ZAWODZIE TECHNIK elektronik i telekomunikacji Specjalizacja Klasa: IV TE Ćwiczenie nr Temat: Bramki logiczne. Napisz program który będzie realizował funkcje bramek logicznych NOT, AND, NAND, OR, NOR, EX-OR, EX-NOR. Stany wejściowe zadawaj przyciskami S1 i S2, a jako wyjście bramki zaświecaj cały jeden wybrany wyświetlacz. Stany przycisków reprezentuj za pomocą zmiennych typu Bit. Do wykonywania operacji uŜyj operatorów logicznych not, and, or, xor, do wykonania operacji NAND, NOR, EX-NOR wykorzystaj kombinację operatorów logicznych. AND A B Y 0 0 0 0 1 0 1 0 0 1 1 1 NOR A B Y 0 0 1 0 1 0 1 0 0 1 1 0 A 0 0 1 1 NAND B 0 1 0 1 A 0 0 1 1 EX-OR B 0 1 0 1 OR B 0 1 0 1 Y 1 1 1 0 A 0 0 1 1 Y 0 1 1 0 EX-NOR A B Y 0 0 1 0 1 0 1 0 0 1 1 1 Y 0 1 1 1 Przycisk wciśnięty – 1, przycisk puszczony – 0; wyświetlacz LED świeci – 1, nie świeci – 0, Dlatego wejścia są zanegowane (polecenie not; wejścia w stanie spoczynku mają stan 1), a stanem aktywnym wyjścia jest 0 -> wyświetlacz świeci (takŜe trzeba zanegować). Przykładowe programy: Bramka AND $regfile = "m162def.dat" $crystal = 8000000 ‘definicja biblioteki procesora ‘ definicja częstotliwości taktowania Config Portd.2 = Output Set Portd.2 Config Portb = Output Reset Portb ‘PORTD.2 jako wyjście ‘ustawienie PORTD.2 na wyjście ‘ustawienie PORTB jako wyjście ‘ustawienie PORTB w stan niski Config Porte.0 = Input Config Porte.2 = Input ‘ustawienie PORTE.0 jako wejście ‘ustawienie PORTE.2 jako wejście Set Porte.0 Set Porte.2 ‘podciągnięcie portu do „1” ‘podciągnięcie portu do „1” Dim A As Bit Dim B As Bit Dim Y As Bit ‘deklaracja zmiennej A typu Bit ‘deklaracja zmiennej B typu Bit ‘deklaracja zmiennej Y typu Bit Do A = Not Pine.0 B = Not Pine.2 Y = A And B Portd.2 = Not Y ‘początek pętli głównej ‘zapisanie do A stanu przycisku z PORTE.0 ‘zapisanie do B stanu przycisku z PORTE.2 ‘zapisanie do Y wyniku operacji A and B ‘wpisanie wyniku operacji na port Loop End ‘koniec pętli głównej ‘koniec programu Bramka NAND $regfile = "m162def.dat" $crystal = 8000000 ‘definicja biblioteki procesora ‘ definicja częstotliwości taktowania Config Portd.2 = Output Set Portd.2 Config Portb = Output Reset Portb ‘PORTD.2 jako wyjście ‘ustawienie PORTD.2 na wyjście ‘ustawienie PORTB jako wyjście ‘ustawienie PORTB w stan niski Config Porte.0 = Input Config Porte.2 = Input ‘ustawienie PORTE.0 jako wejście ‘ustawienie PORTE.2 jako wejście Set Porte.0 Set Porte.2 ‘podciągnięcie portu do „1” ‘podciągnięcie portu do „1” Dim A As Bit Dim B As Bit Dim Y As Bit ‘deklaracja zmiennej A typu Bit ‘deklaracja zmiennej B typu Bit ‘deklaracja zmiennej Y typu Bit Do A = Not Pine.0 B = Not Pine.2 Y = A And B Portd.2 = Y ‘początek pętli głównej ‘zapisanie do A stanu przycisku z PORTE.0 ‘zapisanie do B stanu przycisku z PORTE.2 ‘zapisanie do Y wyniku operacji A and B ‘wpisanie wyniku operacji na port; not not daje proste przypisanie; ‘koniec pętli głównej ‘koniec programu Loop End Bramka OR $regfile = "m162def.dat" $crystal = 8000000 ‘definicja biblioteki procesora ‘ definicja częstotliwości taktowania Config Portd.2 = Output Set Portd.2 Config Portb = Output Reset Portb ‘PORTD.2 jako wyjście ‘ustawienie PORTD.2 na wyjście ‘ustawienie PORTB jako wyjście ‘ustawienie PORTB w stan niski Config Porte.0 = Input Config Porte.2 = Input ‘ustawienie PORTE.0 jako wejście ‘ustawienie PORTE.2 jako wejście Set Porte.0 Set Porte.2 ‘podciągnięcie portu do „1” ‘podciągnięcie portu do „1” Dim A As Bit Dim B As Bit Dim Y As Bit ‘deklaracja zmiennej A typu Bit ‘deklaracja zmiennej B typu Bit ‘deklaracja zmiennej Y typu Bit Do A = Not Pine.0 B = Not Pine.2 Y = A Or B Portd.2 = Not Y ‘początek pętli głównej ‘zapisanie do A stanu przycisku z PORTE.0 ‘zapisanie do B stanu przycisku z PORTE.2 ‘zapisanie do Y wyniku operacji A or B ‘wpisanie wyniku operacji na port Loop End ‘koniec pętli głównej ‘koniec programu Bramka NOR $regfile = "m162def.dat" $crystal = 8000000 ‘definicja biblioteki procesora ‘ definicja częstotliwości taktowania Config Portd.2 = Output Set Portd.2 Config Portb = Output Reset Portb ‘PORTD.2 jako wyjście ‘ustawienie PORTD.2 na wyjście ‘ustawienie PORTB jako wyjście ‘ustawienie PORTB w stan niski Config Porte.0 = Input Config Porte.2 = Input ‘ustawienie PORTE.0 jako wejście ‘ustawienie PORTE.2 jako wejście Set Porte.0 Set Porte.2 ‘podciągnięcie portu do „1” ‘podciągnięcie portu do „1” Dim A As Bit Dim B As Bit Dim Y As Bit ‘deklaracja zmiennej A typu Bit ‘deklaracja zmiennej B typu Bit ‘deklaracja zmiennej Y typu Bit Do A = Not Pine.0 B = Not Pine.2 Y = A Or B Portd.2 = Y ‘początek pętli głównej ‘zapisanie do A stanu przycisku z PORTE.0 ‘zapisanie do B stanu przycisku z PORTE.2 ‘zapisanie do Y wyniku operacji A or B ‘wpisanie wyniku operacji na port; not not daje proste przypisanie; ‘koniec pętli głównej ‘koniec programu Loop End Bramka EX-OR $regfile = "m162def.dat" $crystal = 8000000 ‘definicja biblioteki procesora ‘ definicja częstotliwości taktowania Config Portd.2 = Output Set Portd.2 Config Portb = Output Reset Portb ‘PORTD.2 jako wyjście ‘ustawienie PORTD.2 na wyjście ‘ustawienie PORTB jako wyjście ‘ustawienie PORTB w stan niski Config Porte.0 = Input Config Porte.2 = Input ‘ustawienie PORTE.0 jako wejście ‘ustawienie PORTE.2 jako wejście Set Porte.0 Set Porte.2 ‘podciągnięcie portu do „1” ‘podciągnięcie portu do „1” Dim A As Bit Dim B As Bit Dim Y As Bit ‘deklaracja zmiennej A typu Bit ‘deklaracja zmiennej B typu Bit ‘deklaracja zmiennej Y typu Bit Do A = Not Pine.0 B = Not Pine.2 Y = A Xor B Portd.2 = Not Y ‘początek pętli głównej ‘zapisanie do A stanu przycisku z PORTE.0 ‘zapisanie do B stanu przycisku z PORTE.2 ‘zapisanie do Y wyniku operacji A xor B ‘wpisanie wyniku operacji na port Loop End ‘koniec pętli głównej ‘koniec programu Bramka EX-NOR $regfile = "m162def.dat" $crystal = 8000000 ‘definicja biblioteki procesora ‘ definicja częstotliwości taktowania Config Portd.2 = Output Set Portd.2 Config Portb = Output Reset Portb ‘PORTD.2 jako wyjście ‘ustawienie PORTD.2 na wyjście ‘ustawienie PORTB jako wyjście ‘ustawienie PORTB w stan niski Config Porte.0 = Input Config Porte.2 = Input ‘ustawienie PORTE.0 jako wejście ‘ustawienie PORTE.2 jako wejście Set Porte.0 Set Porte.2 ‘podciągnięcie portu do „1” ‘podciągnięcie portu do „1” Dim A As Bit Dim B As Bit Dim Y As Bit ‘deklaracja zmiennej A typu Bit ‘deklaracja zmiennej B typu Bit ‘deklaracja zmiennej Y typu Bit Do A = Not Pine.0 B = Not Pine.2 Y = A Xor B Portd.2 = Y ‘początek pętli głównej ‘zapisanie do A stanu przycisku z PORTE.0 ‘zapisanie do B stanu przycisku z PORTE.2 ‘zapisanie do Y wyniku operacji A xor B ‘wpisanie wyniku operacji na port; not not daje proste przypisanie; ‘koniec pętli głównej ‘koniec programu Loop End