3477


Laboratorium Architektury Komputerów

Rok akademicki

Termin

Rodzaj studiów

Miejscowość studiów

Prowadzący

Grupa

2007/2008

06.04.2008r.

Zaoczne

Dąbrowa Górnicza

Krzysztof Tokarz

2a

13:40-15:10

Numer ćwiczenia

Temat ćwiczenia

1

Ćwiczenie 1: Podstawowe operacje Mikrokontrolera 8051

Skład sekcji:

Nazwisko i Imię: Matusiak Radosław

Nazwisko i Imię: Wykurz Rafał

Nazwisko i Imię: Ziętek Maciej

Nazwisko i Imię: Zyzik Łukasz

Treść sprawozdania:

Co to jest 8051?

8051 - mikrokontroler stworzony przez firmę Intel w 1980 roku. Zapoczątkował rodzinę mikrokontrolerów MCS-51 (od ang. MicroComputer System) będących udoskonalonymi lub wyspecjalizowanymi mikrokontrolerami o tej samej, ośmiobitowej architekturze i kompatybilnej z pierwowzorem liście rozkazów.

Wpisywane komendy:

LJMP START

ORG 100H

START:

MOV A, #10H

ADD A, #04H

MOV A, #80H

ADD A, #81H

MOV A, #0

ADDC A, #0

Spostrzeżenia:

Po wpisaniu podanych wyżej komend zaobserwowaliśmy jak zmieniają się wartości w akumulatorze (ACC),a także w rejestrze stanu programu (PSW - z ang. Program Status Word). Po aktywacji komendy „MOV A, #10H” do ACC została wpisana liczba „10” [1010], a w PSW mieliśmy „1”. Przy komendzie „ADD A, #04H” nastąpiło dodanie do wartości w akumulatorze liczby „4”,co dało nam 10+4=14

[1000 + 0100 = 1110]. W PSW natomiast pojawiło nam się „0”, co oznaczało nieparzystą liczbę jedynek w zapisie uzupełnień do dwóch (U2), natomiast bity 7. i 2. także mają wartość „0”, gdyż nie występuje ani przeniesienie, ani przepełnienie, co daje nam [0000 0000] w PSW.

Następnie, gdy w akumulatorze mamy już liczbę „80”, dodajemy komendą

„ADD A, #81H” liczbę „81”, dzięki czemu w bitach 2. (przepełnienia) i 7. (przeniesienia) pojawia się „1”, a bit 0. wynosi „0”, gdyż „1” [0001], która jest zapisana w akumulatorze i jest nadmiarem (resztą), w zapisie U2 ma nieparzystą liczbę jedynek. W PSW pojawia się liczba „85” [1000 0101].

Następny rozkaz wpisuje „0” do ACC, co nadpisuje naszą „1” z ACC i „85” z PSW zostaje zmniejszone na „84”. Dzieje się tak ponieważ bit 0. (który zmienia swoją wartość w zależności od parzystej, bądź nieparzystej liczby jedynek w zapisie U2) zmienił swoją wartość z „0” na „1”, dlatego otrzymaliśmy liczbę „84” [1000 0100].

Ostatnia komenda - „ADDC A, #0” powoduje dodawanie z przeniesieniem, a dokładniej, dodaje „0” do liczby w akumulatorze, która wynosi również „0”, z tą różnicą, że dodana zostaje także nasza reszta, czyli „1”. W wyniku tej sumy otrzymujemy „0 + 0 + 1 = 1”. Skoro w ACC mamy „1”, to w rejestrze stanu programu będziemy mieli „0”, bo liczba jedynek w zapisie U2 jest nieparzysta - [0001].

Wyjaśnienie:

W wyżej podanym ćwiczeniu występuje przeniesienie i zapisanie „1” w akumulatorze. Dzieje się tak dlatego, że skala posiada 256 liczb, tj. od 0 do 255. W tym przypadku mamy sumę liczb „80” [1000 0000] i „81” [1000 0001]. Należy jednak pamiętać, że są to liczby w systemie heksadecymalnym (szesnastkowym), co oznacza w systemie decymalnym (dziesiątkowym) „128” i „129”. W wyniku tej sumy mamy wynik „128 + 129 = 257”, co w naszym ćwiczeniu daje „256 (przeniesioną jedynkę) +1”, która zostaje umieszczona w ACC.

Wniosek:

Jest to bardzo ciekawe ćwiczenie. Pozwala nam zrozumieć i wykorzystać działanie 8051 w zaledwie podstawowych działaniach. Nie ukrywamy jednak, że sprawiło nam sporo kłopotu.



Wyszukiwarka

Podobne podstrony:
3477
3477
3477
3477
200403 3477
3477
3477
3477
3477 k72 74
3477(1)
LABORKA1id 3477

więcej podobnych podstron