Программирование микроконтроллера на ассемблере. Симуляция игральной кости

    Дисциплина: Программирование
    Тип работы: Курсовая
    Тема: Программирование микроконтроллера на ассемблере. Симуляция игральной кости

    Projekt
    W\"urfel
    8051Win- Simulation
    von Ilya Gufan, 4G5
    Heilbronn, Juni 2006
    Inhaltsverzeichnis
    Lastenheft
    Einf\"uhrung
    Aufgaben
    Aufgabe 1. 8051Win-Simulation mit LED-Reihe
    Aufgabe 2. Programmierung der BB-Mikrocontrollerplatine
    Aufgabe 3. 8051Win-Simulation des W\"urfelmodells
    Aufgabe 4. 8051Win-Simulation der 7-Segment-Anzeige
    Aufgabe 5. Programmierung der 7-Segment-Anzeige
    Aufgabe 6. Langsam auslaufender oder nachlaufender Z\"ahler
    Beschreibung der benutzten Befehle
    Quellenangabe
    Anlage: CD
    Lastenheft
    1. 8051Win-Simulation mit LED-Reihe
    a) Dualanzeige des Z\"ahlers /DJNZ-Befehl und CJNE-Befehl
    b) Start-Stopp Schalter / Bitverarbeitung und bedingte Spr\"unge
    c) Ausgabe auf die LPT-Schnittstelle / Parallele Schnittstelle
    d) Ausgabe als Leuchtbalken / Decoder / Unterschied von Wert und Adresse
    e) Vollst\"andige Dokumentation mit Programmablaufpl\"anen, Code,
    Erkl\"arungen, Snapshots
    2. Programmierung der BB-Mikrocontrollerpiatine
    a) EEPROM / Flash-EPROM / Harvard-Struktur / Adressbereiche
    b) Z\"ahlerausgabe auf die LED-Reihe
    c) Zeitprogramm / Unterprogramme / Zeitberechnung / Stackpointer
    d) Befehlsabarbeitung
    e) Vollst\"andige Dokumentation mit Programmablaufpl\"anen, Code,
    Erkl\"arungen, Snapshots
    3 . 8051Win-Simulation
    a) W\"urfelmodell mit integriertem Decoder
    b) W\"urfelmodell ohne Decoder /indirekte Adressierung @R0, @R1 im 8bit-
    Adressraum Code in Adr. 31h ... 36h abspeichern
    c) Vollst\"andige Dokumentation mit Programmablaufpl\"anen, Code,
    Erkl\"arungen, Snapshots
    4. 8051Win-Simulation
    a) Siebensegmentmodell / Indirekte Adressierung @DPTR im 16 bit-
    Adressraum / Define Byte (DB)
    b) \"Ubersicht aller Adressierungsarten.
    c) Vollst\"andige Dokumentation mit Programmablaufpl\"anen, Code,
    Erkl\"arungen, Snapshots
    5. Programmierung der BB-Mikrocontrollerplatine
    a) Ausgabe auf 7-Segment-Anzeige /arbeiten mit CJNE-Befehl / DPTR / DB
    b) Vollst\"andige Dokumentation mit Programmablaufpl\"anen, Code, Erkl\"arungen, Snapshots
    6. Zusatzaufgabe (freiwillig)
    a) Langsam auslaufenden / nachlaufenden Z\"ahler entwickeln
    b) Vollst\"andige Dokumentation mit Programmablaufpl\"anen, Code,
    Erkl\"arungen, Snapshots
    7. Vollst\"andige Projektdokumentation incl. Deckblatt, Inhaltsverzeichnis, Lastenheft, Quellangaben und a51- wie hex-Code auf Diskette / CD
    Bild 1. W\"urfelset f\"ur das Spiel »Dungeons Dragons«
    Einf\"uhrung
    Dieses Projekt wurde im Rahmen des CT-Unterrichts gemacht. Der Projektleiter ist Herr A. Hein. Das Ziel des Projektes war, die Assembler-Programmierung des µC zu meistern. Das zu
    programmierende Objekt war der W\"urfel. Die Ausf\"uhrung der Programme sollte mit 8051win simuliert werden. W\"ahrend des Unterrichts hatte der Sch\"uler auch die M\"oglichkeit, mit dem
    C-Platine das Programm direkt auf dem µC ausf\"uhren zu lassen.
    Bild 2. W\"urfel \"ublicher Form
    Bild 3. Ein falscher W\"urfel
    Ein Spielw\"urfel ist ein als Zufallsgenerator verwendeter Gegenstand, der auf mehrere, voneinander unterscheidbare Arten stabil auf der Ebene zu liegen kommen kann. Die meisten
    W\"urfel sind heute aus Holz oder Kunststoff und haben einen Durchmesser von etwa eineinhalb Zentimetern. Spielw\"urfel werden vor allem in den nach ihnen benannten W\"urfelspielen und in
    Gl\"ucksspielen, gelegentlich auch in Brettspielen und in Rollenspielen (wie z. B. »Dungeons Dragons«) verwendet.
    Die \"ubliche Form ist die eines geometrischen W\"urfels, worauf auch der Begriff Spielw\"urfel zur\"uckgeht. Um seine Rolleigenschaft zu verbessern, sind die Ecken heute h\"aufig
    abgerundet. Die Fl\"achen sind meistens mit ein bis sechs Punkten versehen, die auch als Augen bezeichnet werden, wobei die Augensumme sich gegen\"uberliegendener Seiten in der Regel sieben
    ergibt. Die Orientierung der gegen\"uberliegenden Paare (1,6), (2,5), (3,4) ist im westlichen Kulturkreis so festgelegt, dass die Ziffern 1, 2 und 3 im Gegenuhrzeigersinn gesehen werden,
    w\"ahrend sie im Fernen Osten im Uhrzeigersinn ausgerichtet sind.
    In dem Projekt wird ein W\"urfel \"ublicher Form programmiert.
    Aufgaben
    Dualanzeige des Z\"ahlers
    LED-Reihe
    W\"urfelmodell
    Siebensegmentmodell
    Aufgabe 1. 8051Win-Simulation mit LED-Reihe
    LED-Dualanzeige des Z\"ahlers.
    Bild 4. LED-Dualanzeige in 8051Win-Simulation
    Erkl\"arung:
    Man baut einen einfachen Z\"ahler von 1 bis 6 bzw. von 6 bis 1 auf. Der Schalter wird durch P1 mit der Adresse
    , die Ausgabe auf P2 mit der Adresse
    0A0h
    festgelegt. Danach wird der Wert 6 bzw. 1 ins Register 1 geladen (Programmpunkt „laden“). Dann wird der Schalter \"uberpr\"uft, ob er auf 1 gesetzt ist. Wenn ja, \"uberpr\"uft man wieder.
    Wird er auf Null gesetzt, so l\"asst man das Programm weiter laufen (Programmpunkt „stopp“).
    Danach gibt man den Registerinhalt von R1 auf P2.
    L\"osung mit DJNZ.
    Mit DJNZ wird der Registerinhalt um eins verkleinert, deshalb z\"ahlt man von 6 bis 1. Sobald das Ergebnis Null ist, wird der Code weiter abgearbeitet. Mit dem Befehl SJMP springt
    es zum Programmpunkt „laden“. Ist das Ergebnis keine Null, wird es zum Programmpunkt „stopp“ gesprungen.
    L\"osung mit CJNE.
    Mit INC wird der Registerinhalt um eins erh\"oht. Man z\"ahlt von 1 bis 6. Ist der Inhalt von R1 dem Wert 07h nicht gleich, wird es zum Programmpunkt „stopp“ gesprungen. Im Falle
    der Gleichheit wird zu dem Programmpunkt „laden“ gesprungen.
    Man braucht keine Codierungstabelle, da man keinen Decoder hat.
    Bild 6. Programmablaufplan f\"ur die L\"osung mit
    Programmablaufpl\"ane
    Bild 5. Programmablaufplan f\"ur die L\"osung mit
    DJNZ
    Assemblercode
    ) von 6 bis 1 (mit DJNZ)
    Code at
    0000h
    P1 equ 90h
    Start-Stopp-Schalter
    P2 equ 0A0h
    Ausgabe erfolgt an der Adresse 0A0h
    laden: mov R1, #06h
    Wert 6 wird in R1 geladen
    stopp:
    JB P1.0, stopp
    Bei geschaltetem Schalter (d. h.
    bei gesetztem Bit) wird es zu Stopp
    gesprungen
    count: mov P2, R1
    Hier erfolgt die Ausgabe an die
    Adresse 0A0h (durch
    Register wird um 1 verkleinert und
    verzweigt, wenn Ergebnis
    ungleich
    Null
    sjmp laden
    ; Ende des Programms
    ) von 1 bis 6 (mit INC und CJNE)
    Code at
    0000h
    P1 equ 90h
    Register Start-Stopp-Schalter
    P2 equ 0A0h
    Ausgabe erfolgt an die Adresse
    0A0h
    laden: mov R1, #01h
    Wert 1 wird ins Register R1 geladen
    stopp: JB P1.0, stopp
    Bei geschaltetem Schalter (d. h.
    bei gesetztem Bit) wird
    es zu Stopp
    gesprungen
    count: mov P2, R1
    Hier erfolgt die Ausgabe an die
    Adresse 0A0h d. h. an
    inc R1
    Registerinhalt wird um eins erh\"oht
    Ist Registerinhalt ungleich #07h,
    erfolgt die Verzweigt zu
    Stopp
    sjmp laden
    Es wird zu Laden gesprungen
    ; Ende des Programms
    Ausgabe auf die LPT-Schnittstelle
    Ausgabe equ und mov
    Bild 7. Auswahl der Schnittstelle LPT1
    P2 equ 0A0h
    P2, #data
    Zuerst wird die Adresse
    0A0h
    zugewiesen, danach werden die Daten (
    #data
    ) ausgegeben. Mit dem Befehl
    k\"onnen einer bestimmten Adresse verschiedene Sachen zugeordnet werden z.B. Wert, Daten oder eine andere Adresse.
    Auf diese Weise l\"asst sich auch die Ausgabe auf die LPT Schnittstelle und Parallele Schnittstelle realisieren.
    In dem Programm 8051Win k\"onne...

    Забрать файл

    Похожие материалы:


ПИШЕМ УНИКАЛЬНЫЕ РАБОТЫ
Заказывайте напрямую у исполнителя!


© 2006-2016 Все права защищены