Pracownia elektryczno-elektroniczna klasa IV

Wielkość: px
Rozpocząć pokaz od strony:

Download "Pracownia elektryczno-elektroniczna klasa IV"

Transkrypt

1 Ćwiczenie nr 2 Cel ćwiczenia: zapoznanie się z nowymi metodami adresowania portów, urządzeń do nich podpiętych (adresowanie pośrednie, bezpośrednie, rejestrowe) oraz poznanie struktury wewnętrznej pamięci RAM układu mikrokontrolera 8051, zapoznanie się z operacjami arytmetycznymi na liczbach jednobajtowych, poznanie różnych formatów danych, użycie wyświetlacza LCD i klawiatury matrycowej przy korzystaniu z podprogramów systemu DSM- 51. zapoznanie się z obszarem pamięci nazywanym stosem oraz ze sposobami wykorzystywania stosu. Pamięć wewnętrzna RAM. W mikrokontroler 8051 jest wbudowana wewnętrzna pamięć RAM, do jej adresowania używany jest adres ośmiobitowy, co pozwala na rozróżnienie 256 komórek pamięci (0..255),każda komórka to 1 bajt pamięci. W rzeczywistości w mikrokontrolerze 8051 umieszczono 128 bajtów pamięci RAM (adresy: 00..7F). Natomiast w obszarze adresów 80..FF umieszczono rejestry specjalne (SFR), które sterują różnymi funkcjami mikrokontrolera. 128 komórek RAM pod adresami 00..7FH. W przeciwieństwie do obszaru rejestrów specjalnych obszar jest ciągły, tzn. pod wszystkimi adresami od 00 do 7FH istnieją kolejne komórki pamięci. Pamięć ta może być wykorzystana dowolnie, ale w pamięci tej zostały wyróżnione pewne obszary, które mogą (ale nie muszą) być wykorzystane w sposób szczególny. Początkowe 32 bajty pamięci stanowią 4 banki rejestrów. Każdy bank zawiera 8 rejestrów: R0..R7. Do tego obszaru można odwołać się podając adresy, ale prościej jest użyć nazwy rejestru R0,..,R7 (np: MOV A,R0). PRZYKŁAD_1 REJESTRY R0..R7 B0R7 EQU 7 ;rejestr R7 z banku 0 B1R7 EQU 8+7 ;rejestr R7 z banku 1 B2R7 EQU 10H+7 ;rejestr R7 z banku 2 B3R7 EQU 18H+7 ;rejestr R7 z banku 3 MOV B0R7,#0 ;wpisz numer banku MOV B1R7,#1 ;do rejestru R7 MOV B2R7,#2 MOV B3R7,#3 ;wyczyść wyświetlacz LCD ;bank 0 MOV A,R7 ;A <- R7=0 ;akumulator na LCD SETB RS0 ;bank 1 MOV A,R7 ;A <- R7=1 SETB RS1 ;bank 3 MOV A,R7 ;A <- R7=3 CLR RS0 ;bank 2 MOV A,R7 ;A <- R7=2 Program 1 opisuje sposób używania rejestrów R0..R7 z banków Wybór banków występuje zgodnie z tabelą: RS1 RS0 BANK ADRESY O8..0F F 1

2 W tym przykładzie przy zapisie danych posłużono się adresowaniem bezpośrednim. Natomiast przy odczycie wykorzystano adresowanie rejestrowe. Na początku rejestrom 7 z każdego z czterech baków nadana jest etykieta(np:b0r7). Następnie do 7 rejestru baku 0, 1, 2, 3 jest wpisywany ich numer (czyli 0,1,2,3). W dalszej części pobierane są do akumulatora wartości liczbowe zapisane w poszczególnych bankach i wyświetlane na wyświetlaczu LCD. Dwa z pośród wyżej wymienionych rejestrów (R0 i R1) z dowolnego banku maja jeszcze jedną ważną cechę. Za ich pomocą można adresować inne komórki pamięci RAM przez tzw. adresowanie pośrednie. Czyli kod rozkazu zawiera określenie rejestru w którym znajduje się adres komórki pamięci zawierającej argument. PRZYKŁAD_2 ADRESOWANIE POŚREDNIE ;wyczyść wyświetlacz LCD MOV 43H,#55H ;do komórki pamięci 43H wpisz liczbę 55H ;(43H) <- 55H MOV A,43H ;do akumulatora przepisz zawartość komórki 43H ;A <- (43H)=55H ;akumulator na LCD MOV R0,#40H ;do R0 wpisz liczbę 40H która będzie adresem MOV R2,#10 ;do R2 wpisz liczbę 10 -licznik pętli LOOP: ;zeruj 10 komórek pamięci ;od adresu 40H czyli obszar 40H..49H ;wpisz liczbę 0 pod adres umieszczony w R0 INC R0 ;zwiększ adres DJNZ R2,LOOP ;powtórz zapis n-razy zgodnie z licznikiem MOV A,43H ;A <- (43H)=0 ;akumulator na LCD W przykładzie tym wykorzystywane są nowe polecenia: INC (DEC) zwiększ (zmniejsz) o jeden. DJNZ złożenie dwóch poleceń: DEC zmniejsz o 1 i polecenie skoku w przypadku gdy zmniejszana wartość nie osiągnęła stanu =0 (np: DJNZ R2,LOOP zmniejsz o 1 wartość rejestru R2 i jeśli nie jest tam zero skocz do pętli LOOP). Program 3.4 korzysta z adresowania pośredniego. Początkowo do komórki pamięci o adresie 43H jest wpisana liczba 53H, która jest przepisana do akumulatora i wyświetlona na wyświetlacz LCD. Następnie do rejestru R0 jest wpisana liczba 40H, która potem będzie traktowana jako adres (poprzez odpowiednie odwołanie się to tego rejestru), a do rejestru R2 jest wpisana liczba 10H liczba pomocnicza licznik pętli. W pętli LOOP komendą do rejestru o adresie umieszczonym w rejestrze R0 (wartość tego rejestru jest zwiększana o 1, w wyniku czego do obszaru od 40H do 49H zostaną wpisane 0 ) będzie wpisywana liczba zero i tak aż 10 razy dopóki rejestr R2 nie osiągnie wartości 0. ZADANIE_1 Wykonaj iloczyn logiczny R1&R3 z banku pamięci nr 2. Wynik zapisz w RAM(11h). ZADANIE_2 Wpisz do komórek pamięci RAM od adresu RAM(32H) do RAM (42H) kolejne liczby całkowite od liczby 1. ZADANIE_3 Przepisz liczby zapisane w pamięci RAM od adresu RAM(40H) do RAM (50H) do pamięci RAM od adresu RAM(60H) Operacje arytmetyczne. Mikrokontroler 8051 jest mikrokontrolerem 8-bitowym. Oznacza to, że możemy wyróżnić w nim 256 różnych stanów, które mogą reprezentować liczby od 0 do 255. Mikrokontroler posiada wbudowaną jednostkę arytmetyczno logiczną (ALU), która potrafi wykonywać operacje na liczbach jednobajtowych. Wszystkie dane do działań oraz wyniki muszą się zawierać w zakresie 0..9, co praktycznie dyskwalifikuje go do szerszych zastosowań. W systemie DSM-51 występuje podprogram WRITE_HEX, który wypisuje na wyświetlaczu LCD bajt z akumulatora w postaci hexadecymalnej, tzn. wypisywana jest liczba z zakresu 0..9, A, B, C, D, E, F. Należy zwrócić uwagę, że zapis szesnastkowy liczb

3 jest równy zapisowi dziesiętnemu, a więc przy liczbach mniejszych od 10 nie trzeba przeliczać wyniku z zapisu hexadecymalnego na dziesiętny. PRZYKŁAD_1 DODAWANIE LJMP ORG START 100H ;wyczyść wyświetlacz LCD MOV A,#2 ;wpisz do akumulatora liczbę 2 ADD A,#2 ;dodaj do akumulatora liczbę 2 ;wynik w akumulatorze ;akumulator na LCD W przykładzie_1 zostało wykorzystane nowe polecenie ADD, które po wcześniejszym załadowaniu do akumulatora liczby dodaje ją z liczbą umieszczoną przy poleceniu ADD. Wynik dodawania jest Z A W S Z E umieszczany w akumulatorze i wyświetlany na wyświetlacz LCD za pomocą podprogramu WRITE_HEX ( jest to 4). Wartość wskazana przy poleceniu ADD może być liczbą (np: #2), zawartością rejestru (ADD A,R0 lub inny), zawartością komórki adresowanej bezpośrednio lub zawartością komórki adresowanej pośrednio (@Ri). PRZYKŁAD_2 KALKULATOR LCALL WAIT_KEY ;pobierz pierwszy czynnik z klawiatury matrycowej MOV R0,A ;zapamiętaj w R0 ;wyświetl na LCD MOV A,#'+' ;znak sumy wyświetl LCALL WRITE_DATA ;na LCD jako znak LCALL WAIT_KEY ;pobierz drugi czynnik MOV R1,A ;zapamiętaj w R1 ;wyświetl na LCD MOV A,#'=' ;znak równości MOV A,R0 ;pierwszy czynnik do A ADD A,R1 ;dodaj drugi czynnik wynik w akumulatorze ;wyświetl sumę Przykład_2 korzystając z klawiatury możemy sami określić jakie liczby chcemy dodawać. Dzięki podprogramowi WAIT_KAY wczytywane są w akumulator liczby, które odpowiadają kodom naciśnietych klawiszy, podprogramem WRITE_HEX są wypisywane na wyświetlacz liczby albo znaki odpowiadające naciśniętemu klawiszowi. Klawisze [0]..[9] ponumerowane są odpowiednio 0..9, a pozostałe mają kolejne wartości , czyli 0A..0F. Kolejność klawiszy jest następująca: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,,,,, Esc, Enter Program działa następująco: po naciśnięciu klawisza pobierany jest jego kod i przepisywany jest z akumulatora do rejestru R0 i jednocześnie liczba odpowiadająca kodowi wyświetlana jest na LCD, następnie dzieje się to samo z drugim czynnikiem, z tą różnicą, że jego kod jest umieszczony w rejestrze R1, pomiędzy cyframi na wyświetlaczu pojawiają się znaki ( +, = ), są one umieszczane na LCD za pomocą podprogramu WRITE_DATA, który zmienia podany kod liczbowy na znak. Przy obliczaniu sumy ładowany jest do akumulatora najpierw rejestr R0, a następnie komendą ADD do akumulatora dodawana jest zawartość rejestru R1. Wynik z akumulatora na LCD. Dopóki używane są małe liczby, wynik odpowiada zapisowi dziesiętnemu, jeżeli suma liczb jest większa od 9 to na wyświetlaczu wynik jest ;podany w postaci hexadecymalnej. Aby wynik był zrozumiały używa się kodu BCD, który rozkłada liczbę np. 389 na trzy czynniki i zapisuje je w osobnych bajtach: 3 ( ), 8( ), 9( ), jak widać do zapamiętania liczby 0..9 wystarczy tylko 4 bity, reszta jest nie używana 3

4 Przeznaczenie całego bajtu, czyli 8 bitów, na zapamiętanie 1 cyfry jest nie potrzebą stratą miejsca. Dlatego najczęściej stosowany zapis to tzw. upakowane BCD, czyli wykorzystanie jednego bajtu do zapisania w nim dwóch liczb. Przy formacie BCD wyróżnia się tylko liczby Zakłada się, że pozostałe stany w tych bajtach nigdy nie wystąpią. Przypadkowe ich wystąpienie (wynikające z błędu programu) spowoduje dalsze błędy przy ich interpretacji. Jeżeli wyniki obliczeń mają być przedstawione w kodzie BCD, są dwie możliwości postępowania: cały czas w trakcie obliczeń posługiwać się kodem BCD w trakcie obliczeń posługiwać się liczbami binarnym, na koniec zamienić liczby binarne na BCD Pierwszy sposób nadaje się tylko do małych liczb W drugim sposobie w celu zamiany liczby binarnej na BCD najprościej użyć do tego celu dzielenia. W mikrokontrolerze 8051 dzielenie wykonywane jest zawsze na tych samych rejestrach. Przed wykonaniem dzielenia dzielna powinna być umieszczona w akumulatorze, a dzielnik w rejestrze B (rejestr o adresie F0 w obszarze rejestrów specjalnych). Po wykonaniu dzielenia w rejestrze A otrzymywany jest wynik, a w rejestrze B reszta z dzielenia. Zakładając, że liczba jest mniejsza od 100, można zamienić ja na BCD dzieląc ja przez 10. Wynikiem tej operacji będzie liczba dziesiątek (w akumulatorze), natomiast resztą (w rejestrze B) liczba jednostek. PRZYKŁAD_3 ZAMIANA BIN - BCD MOV A,#63 ;wpisz dzielną do A MOV B,#10 ;wpisz dzielnik do B ;dzielenie A/B ;wynik dzielenia w A - cyfra dziesiątek z 63 ;reszta z dzielenia w B czyli cyfra jednostek ;zamień półbajty -liczba dziesiątek do górnej połówki A ;dodaj liczbę jednostek -liczba jednostek do dolnej połówki A ;wypisz liczbę BCD Przykład_3 w bardzo sprytny sposób realizuje zamianę liczby binarnej na BCD. W wyniku dzielenia liczby z akumulatora przez 10 otrzymano rozdzielenie liczby dziesiątek (A) i jednostek (B). Należy te liczby spakować razem do jednego bajtu. Rozkaz SWAP zamienia młodsze 4 bity akumulatora ze starszymi 4 bitami. W ten sposób liczba dziesiątek zostaje umieszczona w 4 bardziej znaczących miejscach. Dodanie do akumulatora reszty (z rejestru B) spowoduje powstanie w akumulatorze z powrotem liczby 63 w formacie upakowane BCD. Zamiana ma następujący przebieg: Kolejne linie kodu MOV A,#63 MOV B,#10 ADDA,B Rejestr A (akumulator) xxxx xxxx = = = = 60 BCD = 63 BCD Rejestr B xxxx xxxx xxxx xxxx = = = = 3 Należy pamiętać, iż liczby w poszczególnych 4 bitowych komórkach, nie mogą być większe od 9, gdyż przy wyświetlaniu na LCD nie pojawią się tam liczby dziesiętne, a hexadecymalne. PRZYKŁAD_4 DODAWANIE MOV A,#250 ;wpisz do A liczbę 250 4

5 ADD A,#10 ;dodaj do A liczbę 10 w A =4 Przykład_4 pokazuje co się stanie gdy suma dodawanych liczb przekroczy 255 (jeden bajt to 255). Na wyświetlaczu zostanie wypisana wartość 4, podczas, gdy wynik dodawania wynosi 260. Prawidłowy wynik to 4 + przeniesienie, które w mikrokontrolerze jest przechowywane w rejestrze stanu PSW, w bicie przeniesienia C (flaga CY - PSW.7) W tym przypadku przeniesienie C jest ustawione na 1, w innych przypadkach równa się 0. W programie bit ten może być wykorzystywany na dwa sposoby. Jeżeli założono, że liczby, na których działamy są zapisywane w 1 bajcie to ustawienie tej flagi sygnalizuje błąd. Jeżeli prowadzone jest dodawanie liczb które spowodują ustawienie tej flagi to bit ten powinien być uwzględniony w dodawaniu. Służy do tego komenda ADDC A,.., która działa tak jak ADD. Dodaje liczby wielobajtowe. PRZYKŁAD_5 ODEJMOWANIE MOV A,#6 ;wpisz do A liczbę 6 CLR C ;zeruj bit przeniesienia SUBB A,#1 ;odejmij z pożyczką A <- A-1-C = = 5 MOV A,#6 ;wpisz do A liczbę 6 SETB C ;ustaw bit przeniesienia SUBB A,#1 ;odejmij z pożyczką A <- A-1-C = = 4 Program_5 wprowadza nowy rozkaz : SUBB, który od zawartości akumulatora odejmuje drugi argument oraz zawartość flagi C. Flaga C przy odejmowaniu pełni rolę pożyczki. Ponieważ nie ma rozkazu odejmowania nie uwzględniającego flagi C, zawsze przed rozpoczęciem odejmowania należy wyzerować flagę C. Program działa następująco: czyszczenie wyświetlacza LCD, zapis 6 do akumulatora, wyzerowanie flagi C, odjęcie od akumulatora 1, wynik na LCD = 5 prawidłowe działanie. Druga część podobna, ale flaga C =1 i w tym przypadku od akumulatora odjęte będzie 1 (SUBB A,#1) i jeszcze 1 z flagi C wynik = 4. Problem pojawia się gdy wynikiem odejmowania jest LICZBA UJEMNA. Do reprezentowania liczb ujemnych powstał kod U2, w formacie tym mogą być zapisane liczby z zakresu Na siedmiu bitach są liczby a jeden bit to znak. PRZYKŁAD_6 LICZBY UJEMNE U2 CLR A ;zeruj A CLR C ;zeruj C SUBB A,#1 ;A <- 0-1 = -1 MOV R0,A ;zapamiętaj w R0 MOV A,R0 ;A <- R0=-1 ADD A,#1 ;A <- A+1 = -1+1 = 0 Program_6 udowadnia istnienie liczb ujemnych w mikrokontrolerze Kolejne liczby ujemne są reprezentowane na jednym bajcie następująco: -1 = FF -2 = FE -3 =FD. Na końcu tego programu użyto rozkazu SJMP, zamiast LJMP, jak widać rozkaz ten zajmuje tylko 2 bajty, podczas gdy LJMP zajmował 3. 5

6 PRZYKŁAD_7 MNOŻENIE MOV A,#0F1H ;mnożna MOV B,#2 ;mnożnik MUL AB ;mnożenia A*B ;starsza część wyniku w B młodsza część wyniku w A XCH A,B ;wypisz starszą część MOV A,B ;pobierz młodszą część ;wypisz młodszą część Program_7 wprowadza nowe rozkazy MUL mnożenie i XCH (dokąd, skąd) wymiana. O ile pierwsza komenda jest zrozumiała, o tyle rozkaz XCH nie, jego działanie polega na zamianie dwóch argumentów między sobą, przy czym jednym z nich jest zawsze akumulator. Użycie tej instrukcji w przykładzie pozwala na wyświetlenie w pierwszej kolejności starszej części wyniku, bez wykorzystywania dodatkowych rejestrów. PRZYKŁAD_8 KALKULATOR BCD LCALL WAIT_KEY ;pobierz pierwszy czynnik MOV B,#10 ;zamień liczbę na BCD ;dzieląc przez 10 MOV R0,A ;zapamiętaj w R0 (BCD) ;wypisz na LCD MOV A,#'+' ;znak sumy LCALL WAIT_KEY ;pobierz drugi czynnik MOV B,#10 ;zamień liczbę na BCD ;dzieląc przez 10 MOV R0,A ;zapamiętaj w R1 (BCD) ;wypisz na LCD MOV A,#'=' ;znak równości MOV A,R0 ;pierwszy czynnik do A ADD A,R1 ;dodaj drugi czynnik DA A ;poprawka dodawania liczb BCD ;wypisz wynik na LCD Program_8 jest kalkulatorem liczb BCD. Użyto tu rozkazu poprawki dziesiętnej DA którego działanie polega na zamianie liczby na liczbę dziesiętną, ale należy pamiętać, iż rozkaz tyczy się dodawania i to liczb do 10. PRZYKŁAD_9 KALKULATOR MNOŻENIE BCD<100 6

7 LCALL WAIT_KEY ;pobierz pierwszy czynnik MOV R0,A ;zapamiętaj w R0 MOV B,#10 ;zamień liczbę na BCD ;dzieląc przez 10 ;wypisz na LCD MOV A,#'*' ;znak iloczynu LCALL WAIT_KEY ;pobierz drugi czynnik MOV R1,A ;zapamiętaj w R1 MOV B,#10 ;zamień na BCD ;wypisz na LCD MOV A,#'=' ;znak równości MOV A,R0 ;pierwszy czynnik do A MOV B,R1 ;drugi czynnik do B MUL AB ;pomnóż A*B - wynik w A (liczba <256) MOV B,#10 ;zamień na BCD ;przy założeniu < 100 ;wypisz wynik na LCD Program_9 jest kalkulatorem mnożący liczby BCD, którego działanie opiera się o przykłady z poprzednich programów. Wnioski: Mikrokontroler 8051 pozwala na bezpośrednią realizację działań na liczbach jednobajtowych: 1. Przy liczbach : dodawanie ADD, ADDC odejmowanie SUBB mnożenie MUL dzielenie DIV 2. Przy liczbach : dodawanie ADD, ADDC odejmowanie SUBB 3. Przy liczbach w kodzie BCD: dodawanie ADD, ADDC + rozkaz korekcji dziesiętnej DAA. Stos Stos w mikrokontrolerze 8051 jest to specjalnie wydzierżawiona część pamięci RAM, która działa na zasadzie: ostatnio zapisane, pierwsze wzięte. Do zapisu danych na stos służy rozkaz: PUSH, do zdejmowania ze stosu danych służy rozkaz: POP. Przy używaniu tych komend programista nie musi znać adresów komórek stosowych, wystarczy, że zna je mikrokontroler, który do tego wykorzystuje rejestr zwany wskaźnikiem stosu (SP- stack pointer ), który jest umieszczony w obszarze rejestrów specjalnych (SFR). Wskaźnik stosu wskazuje zawsze adres wierzchołka stosu. Po sygnale RESET wskaźnik stosu jest ustawiony na adres 7, a więc stos umiejscowiony jest od adresu ósmego w górę (jest to miejsce, gdzie znajduj się pierwsze i kolejne banki rejestrów). Programista może sam zadeklarować od jakiego miejsca ma zaczynać się stos np: (MOV SP,#70H). Rozkaz PUSH jest realizowany w dwóch etapach. Najpierw zwiększany jest wskaźnik stosu SP SP + 1, a następnie wartość stojąca przy rozkazie PUSH trafi do komórki pamięci adresowanej bezpośrednio przez wskaźnik stosu. Rozkaz POP działa w odwrotnej kolejności, tzn. najpierw pobierana jest wartość ze stosu, a następnie wskaźnik stosu zmniejszany jest o jeden. PRZYKŁAD_1 PAMIĘĆ PODRĘCZNA LJMP START 7

8 MOV A,#'D' ;wpisz do A kod litery D PUSH ACC ;przechowaj akumulator na stosie czyli litera D MOV A,#'=' ;wpisz znak równości LCALL WRITE_DATA POP ACC ;pobierz wartość ze stosu do akumulatora ;wyświetl jako liczbę - kod litery D = 44H W przykładzie_1 wykorzystano stos do przechowywania akumulatora. Powyższy przykład wypisuje na wyświetlacz LCD wartość z akumulatora, najpierw w postaci znaku, a następnie jako liczbę w zapisie hexadecymalnym. PRZYKŁAD_2 PODPROGRAMY MOV A,#137 ;do A liczba 137 ACALL WRITE_BCD_HEX ;wywołaj podprogram ;************************************** ;podprogram wypisuje liczbę z akumulatora najpierw dziesiętnie a następnie ;szesnastkowo podprogram nie zmienia zawartości rejestrów WRITE_BCD_HEX: PUSH PSW ;przechowaj rejestry PUSH B ;na stosie PUSH ACC ACALL BIN_BCD ;wywołaj podprogram zamiany liczby binarnej na liczbę BCD XCH A,B ;zamień A<->B setki do A dziesiątki i jedn. do B ;wyświetl setki MOV A,B ;dziesiątki i jedn. do A ;wyświetl MOV A,#'=' LCALL WRITE_DATA POP ACC ;odtwórz liczbę binarną PUSH ACC ;-skopiuj ze stosu do A ;czyli pobierz do A i połóż A z powrotem ;wyświetl MOV A,#'H' LCALL WRITE_DATA ;dopisz H do liczby POP ACC ;odtwórz rejestry POP B POP PSW RET ;powrót z podprogramu ;************************************** ;podprogram zamienia liczbę binarną z A ;na liczbę w kodzie upakowane BCD B setki A - dziesiątki i jednostki BIN_BCD: MOV B,#100 ;wydziel setki ;dzieląc przez 100 PUSH ACC ;przechowaj setki MOV A,B ;wydziel dziesiątki MOV B,#10 ;dzieląc przez 10 ;przesuń dziesiątki ORL A,B ;dodaj jednostki POP B ;odtwórz setki do B RET ;koniec podprogramu Przykład_2 wykorzystują podprogramy i stos, który służy tutaj między innymi do umożliwienia powrotu z tych podprogramów. Aby umożliwić powrót z podprogramu, należy zapamiętać adres, pod który należy wrócić. 8

9 Podprogram BIN_BCD zamienia liczbę binarną, umieszczoną w akumulatorze, na trzycyfrową liczbę w kodzie BCD upakowane). Liczba setek jest umieszczona w rejestrze B, natomiast liczba dziesiątek i jednostek w akumulatorze. Użycie zamiast stosu rejestru lub komórki pamięci zdecydowanie utrudniłoby wykorzystanie tego podprogramu. Przy każdym wywołaniu trzeba by zagwarantować, że w danym miejscu pamięci nie ma aktualnie zapamiętanej informacji. Aby uniknąć przypadkowych błędów, należałoby zarezerwować jedną komórkę pamięci specjalnie dla tego podprogramu. Jest to niepotrzebna strata pamięci. Należy zwrócić uwagę, że w podprogramie użyto rozkazów: PUSH ACC POP B A więc wartość z akumulatora docelowo znalazła się w rejestrze B. Nie zakłóciło to w niczym operacji na stosie jeden bajt został na stos położony i jeden zdjęty. Wewnątrz podprogramu jest jeszcze użyta sekwencja: POP ACC PUSH ACC Pobiera ona wartość ze stosu do akumulatora, a następnie kładzie ją z powrotem na stos. Skutek tego jest taki, że wartość z wierzchołka stosu zostaje skopiowana do akumulatora. PRZYKŁAD_3 KALKULATOR MNOŻENIE BCD LCALL WAIT_KEY ;pobierz pierwszy czynnik MOV R0,A ;zapamiętaj w R0 ACALL WRITE_BCD ;wypisz w postaci BCD MOV A,#'*' ;znak iloczynu LCALL WRITE_DATA LCALL WAIT_KEY ;pobierz drugi czynnik MOV R1,A ;zapamiętaj w R1 ACALL WRITE_BCD ;wypisz w postaci BCD MOV A,#'=' ;znak równości LCALL WRITE_DATA MOV A,R0 ;pomnóż oba czynniki MOV B,R1 MUL AB ACALL WRITE_BCD ;wypisz wynik w postaci BCD ;************************************** ;podprogram wypisuje liczbę z akumulatora ;na wyświetlacz LCD w postaci BCD WRITE_BCD: MOV B,#100 ;wydziel setki JZ ONLY_LOW ;wypisz setki jeśli ;różne od 0 ONLY_LOW: MOV A,B ;wydziel dziesiątki MOV B,#10 ORL A,B ;połącz z jednostkami ;pisz dziesiątki i jedn. RET ;koniec podprogramu Przykład 3 jest kalkulatorem BCD, który wykorzystuje podprogramy WRITE_BCD i, ONLY_LOW wywoływane rozkazem ACALL. 9

Programowanie mikrokontrolera 8051

Programowanie mikrokontrolera 8051 Programowanie mikrokontrolera 8051 Podane poniżej informacje mogą pomóc w nauce programowania mikrokontrolerów z rodziny 8051. Opisane są tu pewne specyficzne cechy tych procesorów a także podane przykłady

Bardziej szczegółowo

Lista rozkazów mikrokontrolera 8051

Lista rozkazów mikrokontrolera 8051 Lista rozkazów mikrokontrolera 8051 Spis treści: Architektura mikrokontrolera Rozkazy Architektura mikrokontrolera Mikrokontroler 8051 posiada trzy typy pamięci: układ zawiera pamięć wewnętrzną (On-Chip

Bardziej szczegółowo

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec) Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01 PRACA KROKOWA MIKROKONTROLERA Cel ćwiczenia: Zapoznanie się ze środowiskiem programowym: poznanie funkcji asemblera, poznanie funkcji symulatora. Operacje na plikach,

Bardziej szczegółowo

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego

Bardziej szczegółowo

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe Ryszard J. Barczyński, 2009 2013 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego

Bardziej szczegółowo

Programowanie mikrokontrolerów (CISC)

Programowanie mikrokontrolerów (CISC) Repertuar instrukcji Operacje arytmetyczne Operacje logiczne Operacje logiczne na bitach Przesyłanie danych Operacje sterujące (skoki) NOTACJA: Rr rejestry R0... R7 direct - wewnętrzny RAM oraz SFR @Ri

Bardziej szczegółowo

Asembler - język maszynowy procesora

Asembler - język maszynowy procesora UWAGA! Treść niniejszego dokumentu powstała na podstawie cyklu artykułów pt. Mikrokontrolery? To takie proste zamieszczonych w czasopiśmie Elektronika dla Wszystkich. Asembler - język maszynowy procesora

Bardziej szczegółowo

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych Ćwiczenie nr 3 Wyświetlanie i wczytywanie danych 3.1 Wstęp Współczesne komputery przetwarzają dane zakodowane za pomocą ciągów zerojedynkowych. W szczególności przetwarzane liczby kodowane są w systemie

Bardziej szczegółowo

Ćwiczenie 3. Konwersja liczb binarnych

Ćwiczenie 3. Konwersja liczb binarnych 1 Laboratorium Architektury Komputerów Ćwiczenie 3 Konwersja liczb binarnych Komputery wykonują operacje przetwarzania danych na wartościach binarnych, podczas gdy współczesna cywilizacja posługuje się

Bardziej szczegółowo

Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51.

Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51. Ćwiczenie nr 4 Cel ćwiczenia: Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51. Wiadomości wstępne: Klawiatura sekwencyjna zawiera tylko sześć klawiszy.

Bardziej szczegółowo

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1 Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1 PODSTAWY TECHNIKI CYFROWEJ I MIKROPROCESOROWEJ EIP KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII WWW.KEIASPE.AGH.EDU.PL AKADEMIA

Bardziej szczegółowo

architektura komputerów w 1 1

architektura komputerów w 1 1 8051 Port P2 Port P3 Transm. szeregowa Timery T0, T1 Układ przerwań Rejestr DPTR Licznik rozkazów Pamięć programu Port P0 Port P1 PSW ALU Rejestr B SFR akumulator 8051 STRUKTURA architektura komputerów

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania

Bardziej szczegółowo

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów Operacje na stosie Stos jest obszarem pamięci o dostępie LIFO (Last Input First Output). Adresowany jest niejawnie przez rejestr segmentowy SS oraz wskaźnik wierzchołka stosu SP. Używany jest do przechowywania

Bardziej szczegółowo

Arytmetyka stałopozycyjna

Arytmetyka stałopozycyjna Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 3. Arytmetyka stałopozycyjna Cel dydaktyczny: Nabycie umiejętności wykonywania podstawowych operacji arytmetycznych na liczbach stałopozycyjnych.

Bardziej szczegółowo

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje

Bardziej szczegółowo

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie: Wykład 3 3-1 Reprezentacja liczb całkowitych ze znakiem Do przedstawienia liczb całkowitych ze znakiem stosowane są następujące kody: - ZM (znak-moduł) - U1 (uzupełnienie do 1) - U2 (uzupełnienie do 2)

Bardziej szczegółowo

1. Operacje logiczne A B A OR B

1. Operacje logiczne A B A OR B 1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne

Bardziej szczegółowo

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000 SYSTEMY LICZBOWE I. PODZIAŁ SYSTEMÓW LICZBOWYCH: systemy liczbowe: pozycyjne (wartośd cyfry zależy od tego jaką pozycję zajmuje ona w liczbie): niepozycyjne (addytywne) (wartośd liczby jest sumą wartości

Bardziej szczegółowo

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN): 1. SYSTEMY LICZBOWE UŻYWANE W TECHNICE KOMPUTEROWEJ System liczenia - sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Do zapisu

Bardziej szczegółowo

1.1. Pozycyjne systemy liczbowe

1.1. Pozycyjne systemy liczbowe 1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego

Bardziej szczegółowo

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne

Bardziej szczegółowo

Sprzęt i architektura komputerów

Sprzęt i architektura komputerów Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I

Bardziej szczegółowo

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym SYSTEMY LICZBOWE 1. Systemy liczbowe Najpopularniejszym systemem liczenia jest system dziesiętny, który doskonale sprawdza się w życiu codziennym. Jednak jego praktyczna realizacja w elektronice cyfrowej

Bardziej szczegółowo

DSM51 operacje przesylania danych i operacje arytmetyczne strona 1

DSM51 operacje przesylania danych i operacje arytmetyczne strona 1 DSM51 operacje przesylania danych i operacje arytmetyczne strona 1 Przypomnienie: Plik Otworz (F3) otwieranie pliku z programem.asm Plik Zapisz (F2) zapisywanie pliku z programem.asm do katalogu C:\JAGODA

Bardziej szczegółowo

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit

Bardziej szczegółowo

System Liczbowe. Szesnastkowy ( heksadecymalny)

System Liczbowe. Szesnastkowy ( heksadecymalny) SYSTEMY LICZBOWE 1 System Liczbowe Dwójkowy ( binarny) Szesnastkowy ( heksadecymalny) Ósemkowy ( oktalny) Dziesiętny ( decymalny) 2 System dziesiętny Symbol Wartość w systemie Liczba 6 6 *10 0 sześć 65

Bardziej szczegółowo

Pracownia elektryczno-elektroniczna klasa IV

Pracownia elektryczno-elektroniczna klasa IV Ćwiczenie nr 5 Cel ćwiczenia: Ćwiczenie ma na celu zaznajomienie z metodami odliczania czasu z wykorzystaniem układów czasowo - licznikowych oraz poznanie zasad zgłaszania przerwań i sposobów ich wykorzystywania

Bardziej szczegółowo

SYSTEMY LICZBOWE 275,538 =

SYSTEMY LICZBOWE 275,538 = SYSTEMY LICZBOWE 1. Systemy liczbowe Najpopularniejszym systemem liczenia jest system dziesiętny, który doskonale sprawdza się w życiu codziennym. Jednak jego praktyczna realizacja w elektronice cyfrowej

Bardziej szczegółowo

Opis procedur asemblera AVR

Opis procedur asemblera AVR Piotr Kalus PWSZ Racibórz 10.05.2008 r. Opis procedur asemblera AVR init_lcd Plik: lcd4pro.hvr Procedura inicjuje pracę alfanumerycznego wyświetlacza LCD za sterownikiem HD44780. Wyświetlacz działa w trybie

Bardziej szczegółowo

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci,

Bardziej szczegółowo

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe MIKROKONTROLER RODZINY MCS 5 Cykl rozkazowy mikrokontrolera rodziny MCS 5 Mikroprocesory rodziny MCS 5 zawierają wewnętrzny generator sygnałów zegarowych ustalający czas trwania cyklu zegarowego Częstotliwość

Bardziej szczegółowo

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych.

Bardziej szczegółowo

Systemy liczbowe używane w technice komputerowej

Systemy liczbowe używane w technice komputerowej Systemy liczbowe używane w technice komputerowej Systemem liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach.

Bardziej szczegółowo

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok

Bardziej szczegółowo

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne 1. Bit Pozycja rejestru lub komórki pamięci służąca do przedstawiania (pamiętania) cyfry w systemie (liczbowym)

Bardziej szczegółowo

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP Liczniki, rejestry lab. 08 PODSTAWY TECHNIKI CYFROWEJ I MIKROPROCESOROWEJ EIP KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII WWW.KEIASPE.AGH.EDU.PL AKADEMIA GÓRNICZO-HUTNICZA WWW.AGH.EDU.PL

Bardziej szczegółowo

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia. ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb

Bardziej szczegółowo

Technika mikroprocesorowa I Wykład 2

Technika mikroprocesorowa I Wykład 2 Technika mikroprocesorowa I Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci, -odczyt-zapis urządzenia we-wy,

Bardziej szczegółowo

1259 (10) = 1 * * * * 100 = 1 * * * *1

1259 (10) = 1 * * * * 100 = 1 * * * *1 Zamiana liczba zapisanych w dowolnym systemie na system dziesiętny: W systemie pozycyjnym o podstawie 10 wartości kolejnych cyfr odpowiadają kolejnym potęgom liczby 10 licząc od strony prawej i numerując

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,

Bardziej szczegółowo

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak TMiK Podstawy Techniki Mikroprocesorowej Materiały pomocnicze do wykładu Lidia Łukasiak 1 Treść przedmiotu Wprowadzenie System mikroprocesorowy Mikroprocesor - jednostka centralna Rodzaje pamięci Mikrokontrolery

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

Bardziej szczegółowo

Operacje arytmetyczne

Operacje arytmetyczne PODSTAWY TEORII UKŁADÓW CYFROWYCH Operacje arytmetyczne Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ Dodawanie dwójkowe Opracował: Andrzej Nowak Ostatni wynik

Bardziej szczegółowo

IV PROGRAMOWANIE MIKROKOMPUTERA Technika Cyfrowa 2. Wykład 4: Programowanie mikrokomputera 8051

IV PROGRAMOWANIE MIKROKOMPUTERA Technika Cyfrowa 2. Wykład 4: Programowanie mikrokomputera 8051 Technika Cyfrowa 2 Wykład 4: Programowanie mikrokomputera 81 dr inż. Jarosław Sugier Jaroslaw.Sugier@pwr.wroc.pl IIAR, pok. 227 C-3 4-1 IV PROGRAMOWANIE MIKROKOMPUTERA 81 1 REJESTRY Oprócz DPTR wszystkie

Bardziej szczegółowo

Systemy zapisu liczb.

Systemy zapisu liczb. Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy. Zdobycie umiejętności wykonywania działań na liczbach w różnych systemach. Zagadnienia:

Bardziej szczegółowo

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE @KEMOR SPIS TREŚCI. SYSTEMY LICZBOWE...3.. SYSTEM DZIESIĘTNY...3.2. SYSTEM DWÓJKOWY...3.3. SYSTEM SZESNASTKOWY...4 2. PODSTAWOWE OPERACJE NA LICZBACH BINARNYCH...5

Bardziej szczegółowo

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED Ćwiczenie 2 Siedmiosegmentowy wyświetlacz LED 2-1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się studentów ze sposobem obsługi wielopozycyjnego 7-segmentowego wyświetlacza LED multipleksowanego programowo

Bardziej szczegółowo

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010 ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010 Do zapisu liczby ze znakiem mamy tylko 8 bitów, pierwszy od lewej bit to bit znakowy, a pozostałem 7 to bity na liczbę. bit znakowy 1 0 1 1

Bardziej szczegółowo

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów Marcin Stępniak Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów 1. Informacje Poniższe laboratoria zawierają podsumowanie najważniejszych informacji na temat

Bardziej szczegółowo

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 = Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,

Bardziej szczegółowo

Kod U2 Opracował: Andrzej Nowak

Kod U2 Opracował: Andrzej Nowak PODSTAWY TEORII UKŁADÓW CYFROWYCH Kod U2 Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System zapisu liczb ze znakiem opisany w poprzednim

Bardziej szczegółowo

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

DZIESIĘTNY SYSTEM LICZBOWY

DZIESIĘTNY SYSTEM LICZBOWY DZIESIĘTNY SYSTEM LICZBOWY Do zapisu dowolnej liczby system wykorzystuje dziesięć symboli (cyfr): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Dowolną liczbę w systemie dziesiętnym możemy przedstawić jako następująca

Bardziej szczegółowo

Logiczny model komputera i działanie procesora. Część 1.

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

Bardziej szczegółowo

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy Informatyka kodowanie liczb dr hab. inż. Mikołaj Morzy plan wykładu definicja informacji sposoby kodowania reprezentacja liczb naturalnych i całkowitych arytmetyka binarna arytmetyka oktalna arytmetyka

Bardziej szczegółowo

Architektura komputerów. Asembler procesorów rodziny x86

Architektura komputerów. Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych

Bardziej szczegółowo

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zapis znak - moduł (ZM) Zapis liczb w systemie Znak - moduł Znak liczby o n bitach zależy od najstarszego bitu b n 1 (tzn. cyfry o najwyższej pozycji): b

Bardziej szczegółowo

Wprowadzenie do informatyki - ć wiczenia

Wprowadzenie do informatyki - ć wiczenia Kod uzupełnień do 2 (U2) dr inż. Izabela Szczęch WSNHiD Ćwiczenia z wprowadzenia do informatyki Reprezentacja liczb całkowitych Jak kodowany jest znak liczby? Omó wimy dwa sposoby kodowania liczb ze znakiem:

Bardziej szczegółowo

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10. ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach

Bardziej szczegółowo

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor. Zadaniem centralnej jednostki przetwarzającej CPU (ang. Central Processing Unit), oprócz przetwarzania informacji jest sterowanie pracą pozostałych układów systemu. W skład CPU wchodzą mikroprocesor oraz

Bardziej szczegółowo

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania Architektura Systemów Komputerowych Jednostka ALU Przestrzeń adresowa Tryby adresowania 1 Jednostka arytmetyczno- logiczna ALU ALU ang: Arythmetic Logic Unit Argument A Argument B A B Ci Bit przeniesienia

Bardziej szczegółowo

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW MIKROKONTROLER 85 - wiadomości podstawowe. Schemat blokowy mikrokontrolera 85 Obszar rejestrów specjalnych

Bardziej szczegółowo

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską: Dodawanie dwójkowe Do wykonywania dodawania niezbędna jest znajomość tabliczki dodawania, czyli wyników sumowania każdej cyfry z każdą inną. W systemie binarnym mamy tylko dwie cyfry 0 i 1, zatem tabliczka

Bardziej szczegółowo

Politechnika Warszawska

Politechnika Warszawska Politechnika Warszawska Wydział Elektryczny Laboratorium Podstaw Techniki Mikroprocesorowej Skrypt do ćwiczenia M.38 Zbieranie pomiarów w czasie rzeczywistym - asembler 1.Wstęp W ćwiczeniach od M.38 do

Bardziej szczegółowo

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Temat: Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy.

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne System binarny Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności October 7, 26 Pojęcie bitu 2 Systemy liczbowe 3 Potęgi dwójki 4 System szesnastkowy 5 Kodowanie informacji 6 Liczby ujemne

Bardziej szczegółowo

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika: PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej

Bardziej szczegółowo

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Komputer jest urządzeniem, którego działanie opiera się na wykonywaniu przez procesor instrukcji pobieranych z pamięci operacyjnej

Bardziej szczegółowo

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia

Bardziej szczegółowo

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb. 2. Arytmetyka komputera. Systemy zapisu liczb: dziesietny, dwójkowy (binarny), ósemkowy, szesnatskowy. Podstawowe operacje arytmetyczne na liczbach binarnych. Zapis liczby binarnej ze znakiem. Reprezentacja

Bardziej szczegółowo

MIKROKONTROLERY I MIKROPROCESORY

MIKROKONTROLERY I MIKROPROCESORY PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy

Bardziej szczegółowo

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Publikacja jest dystrybuowana bezpłatnie Program Operacyjny Kapitał Ludzki Priorytet 9 Działanie 9.1 Poddziałanie

Bardziej szczegółowo

Sprzęt i architektura komputerów

Sprzęt i architektura komputerów Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Przerwania laboratorium: 04 autor: mgr inż. Michał Lankosz dr hab. Zbisław Tabor,

Bardziej szczegółowo

6.1. Zastosowanie mikrokontrolera SAB 80C535 do sterowania silnikiem prądu stałego

6.1. Zastosowanie mikrokontrolera SAB 80C535 do sterowania silnikiem prądu stałego 162 Podstawy techniki mikroprocesorowej 6. PRZYKŁADY ZASTOSOWAŃ MIKROKONTROLERA 6.1. Zastosowanie mikrokontrolera SAB 80C535 do sterowania silnikiem prądu stałego Sterowanie silnikiem prądu stałego oparte

Bardziej szczegółowo

Pracownia Komputerowa wykład IV

Pracownia Komputerowa wykład IV Pracownia Komputerowa wykład IV dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada/pk16 1 Reprezentacje liczb i znaków! Liczby:! Reprezentacja naturalna nieujemne liczby całkowite naturalny

Bardziej szczegółowo

organizacja procesora 8086

organizacja procesora 8086 Systemy komputerowe Procesor 8086 - tendencji w organizacji procesora organizacja procesora 8086 " # $ " % strali " & ' ' ' ( )" % *"towego + ", -" danych. Magistrala adresowa jest 20.bitowa, co pozwala

Bardziej szczegółowo

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz] Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową

Bardziej szczegółowo

Laboratorium Wykorzystanie kalkulatora Windows do obliczania adresów sieciowych

Laboratorium Wykorzystanie kalkulatora Windows do obliczania adresów sieciowych Laboratorium Wykorzystanie kalkulatora Windows do obliczania adresów sieciowych Cele Część 1: Dostęp do programu Kalkulator. Część 2: Konwersja między systemami liczbowymi Część 3: Konwersja adresu IPv4

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Podstawy Informatyki

Podstawy Informatyki Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 3 1 / 42 Reprezentacja liczb całkowitych

Bardziej szczegółowo

Pracownia Komputerowa wyk ad IV

Pracownia Komputerowa wyk ad IV Pracownia Komputerowa wykad IV dr Magdalena Posiadaa-Zezula Magdalena.Posiadala@fuw.edu.pl http://www.fuw.edu.pl/~mposiada Magdalena.Posiadala@fuw.edu.pl 1 Reprezentacje liczb i znaków Liczby: Reprezentacja

Bardziej szczegółowo

CPU architektura i rejestry

CPU architektura i rejestry CPU architektura i rejestry C51 (AT83C51SND1C) - ogólny widok wnętrza Źródło: Materiały informacyjne firmy Atmel 2 C51 (AT83C51SND1C) - przestrzeń pamięci kodu Źródło: Materiały informacyjne firmy Atmel

Bardziej szczegółowo

L6.1 Systemy liczenia stosowane w informatyce

L6.1 Systemy liczenia stosowane w informatyce L6.1 Systemy liczenia stosowane w informatyce Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Publikacja jest dystrybuowana bezpłatnie Program Operacyjny Kapitał

Bardziej szczegółowo

Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze

Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Przerwania w architekturze mikrokontrolera X51

Przerwania w architekturze mikrokontrolera X51 Przerwania w architekturze mikrokontrolera X51 (przykład przerwanie zegarowe) Ryszard J. Barczyński, 2009 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku

Bardziej szczegółowo

Wstęp do informatyki- wykład 2

Wstęp do informatyki- wykład 2 MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

Zapis liczb binarnych ze znakiem

Zapis liczb binarnych ze znakiem Zapis liczb binarnych ze znakiem W tej prezentacji: Zapis Znak-Moduł (ZM) Zapis uzupełnień do 1 (U1) Zapis uzupełnień do 2 (U2) Zapis Znak-Moduł (ZM) Koncepcyjnie zapis znak - moduł (w skrócie ZM - ang.

Bardziej szczegółowo

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe ARCHITEKTURA KOMPUTERÓW Systemy liczbowe 20.10.2010 System Zakres znaków Przykład zapisu Dziesiętny ( DEC ) 0,1,2,3, 4,5,6,7,8,9 255 DEC Dwójkowy / Binarny ( BIN ) 0,1 11111 Ósemkowy ( OCT ) 0,1,2,3, 4,5,6,7

Bardziej szczegółowo

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci Laboratorium 1: Wprowadzenie do środowiska programowego oraz podstawowe operacje na rejestrach i komórkach pamięci Zapoznanie się ze środowiskiem programowym: poznanie funkcji asemblera, poznanie funkcji

Bardziej szczegółowo

Pracownia Komputerowa wykład V

Pracownia Komputerowa wykład V Pracownia Komputerowa wykład V dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada/pk16 1 Reprezentacje liczb i znaków! Liczby:! Reprezentacja naturalna nieujemne liczby całkowite naturalny system

Bardziej szczegółowo

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska, Arytmetyka Magdalena Lemańska System dziesiętny System dziesiętny Weźmy liczbę 178. Składa się ona z jednej setki, siedmiu dziesiątek i ośmiu jedności. System dziesiętny System dziesiętny Weźmy liczbę

Bardziej szczegółowo

Dodawanie liczb binarnych

Dodawanie liczb binarnych 1.2. Działania na liczbach binarnych Liczby binarne umożliwiają wykonywanie operacji arytmetycznych (ang. arithmetic operations on binary numbers), takich jak suma, różnica, iloczyn i iloraz. Arytmetyką

Bardziej szczegółowo