Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen Walter.

Ähnliche Präsentationen


Präsentation zum Thema: "Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen Walter."—  Präsentation transkript:

1 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Mikrocomputertechnik Herzlich Willkommen Jürgen Walter

2 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.1 Die verwendeten Einheiten in den Projekten Projektverwendete Einheiten 1. Blinklicht mit BlinkfrequenzTimer 0,1 Interrupt 2. A/D-WandlungA/D-Wandler 3. Serielle SchnittstelleSerielle Schnittstelle 4. EffektivwertmessungTimer, A/D-Wandler, Serielle Schnittst.

3 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Regel 1 Nur dokumentierte Hardware und Software ist existent.

4 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Regel 2 Durchgängige Verwendung von Registern mit Herstellung des Ausgangszustands. Zuordnung von Tasks (Aufgaben - Prozesse) zu Registerbänken.

5 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Regel 3 Bei umfangreicher Software unbedingt Hochsprache C / C++ verwenden.

6 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Standardkopf $nomod51 ;der Modus fuer 8051 wird abgeschaltet $debug $nolist ;es wird kein Listing fuer reg535 erstellt $include(reg535.pdf) ;die spezifischen Daten $list ;es wird ein Listing erstellt $title () ;bitte ausfüllen ; ;Programmbeschreibung ; ;Programm: ;Datum: ;Programmiert: Teamarbeiter 1 ; ;Verwendete Einspruenge: keine ;Verwendete Unterprogramme: keine ; ;Verwendete Register und Variable: ;Registerbank(0) ; ;Kommentar: ;Aenderungen: ;Datum: ; ;Initialisierungsteil fuer allgemeine Konstanten ; CSEG AT 0H ;Legt absolute Codesegmentadresse auf 0h jmp INIT ;Sprung auf Initialisierungsroutine ; ;Interrupt-Vektoren ; ; ; ;Initialisierungsteil fuer On-Chip Peripherie ; ORG 100H ;Programmstart bei 100H INIT: ; ;Programmbeginn ; ABFRAGE:

7 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.3 TMOD BYTE 89HGATEC/T#M1M0GATEC/T#M1M0TMOD Timer 1 Timer 0 BitFunktion GateGating control "1" durchgeschaltet, wenn INTx#-Pin auf "1" und TRx Kontrollbit gesetzt. "0" => Timer x zählt, wenn TRx Kontrollbit gesetzt ist C/T#Counter or timer select bit. Zähler oder Zeitgeber Auswahlbit "1" Zähler Funktion ( Eingang am TxD Eingangspin vom Prozessor ) "0" Zeitgeber Funktion ( Eingang vom internen System Clock ) M1/M0 0 8-bit timer / counter THx ist ein 8-bit Zähler / Zeitgeber - TLx dient als 5-bit Vorteiler bit timer/counter "THx" und TLx" ergeben zusammen einen 16-bit-Zähler / Zeitgeber bit auto-reload timer / counter 8-bit automatisch ladender Zähler / Zeitgeber. THx enthält den Wert der in TLx bei jedem Überlauf geladen wird. 1 Timer 0: TL0 ist ein 8-bit-Zähler / Zeitgeber der von den Kontrollbits von Timer 0 kontrolliert wird. TH00 ist ein 8 Bit Zeitgeber der nur von den Zeitgeber 1 Kontrollbits kontrolliert wird. 1 Timer 1. Zähler / Zeitgeber hält

8 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb. 5.1 Blockbild von Timer 0 und 1 im 16-Bit Modus

9 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb. 5.2 Mode 2, Zähler / Zeitgeber 0,1 mit Wiederladen des TL0 Registers

10 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb. 5.3 Mode 3, Timer 1 Interrupt wird von Timer 0 mitbenutzt

11 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.4 TCON BITS Timer 0 - Timer 1 Control Bits 8FH8EH8DH8CH8B8AH89H88H TF1TR1TF0TR0IE1IT1IE0IT0TCON Diese Bits werden nicht zur Kontrolle des Zeitgebers verwendet BitFunktion TR0Timer 0 run control bit. Bit zum Starten und Stoppen des Zeitgebers 0 TF0Timer 0 overflow flag. Wird hardwaremäßig beim Zeitgeber / Zählerüberlauf gesetzt. Wird bei Aufruf des entsprechenden Interrupts zurückgesetzt. TR1Timer 1 run control bit. Bit zum Starten und Stoppen des Zeitgebers 1 TF1Timer 1 overflow flag. Wird hardwaremäßig beim Zeitgeber / Zählerüberlauf gesetzt. Wird bei Aufruf des entsprechenden Interrupts zurückgesetzt.

12 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.5 Interrupt- Vektor- Adressen PC AdresseInterrupt-NameErklärung 0000HRESETStart Address after Reset1) 0003HEXTIOExternal Interrupt 01) 000BHTIMER 0Timer 0 Overflow Interrupt1) 0013HEXTI1External Interrupt 11) 001BHTIMER1Timer 1 Overflow Interrupt1) 0023HSINT SINT04)6) Serial Channel 0 Interrupt1) 002BHTIMER2Timer 2 Overflow/ External Reload Interrupt2)-6) 0043HADCIA/D-Converter Interrupt3).....6) 004BHEXTI2External Interrupt 2/ Compare Event with CC43).....6) Bei 80C515 External Interrupt only 0053HEXTI3External Interrupt 3 / Compare Event with CRC3).....6) 005BHEXTI4External Interrupt 4 / Compare Event with CC13).....6) 0063HEXTI5External Interrupt 5 / Compare Event with CC23).....6) 006BHEXTI6External Interrupt 6 / Compare Event with CC33).....6) 0083HSINT1Serial Channel 1 Interrupt4)6) 0093HCMINTCMx Compare Register Interrupt6) 009BHCOMPTIMERCompare Timer Overflow4)6) 00A3HSETINTCompare Set Interrupt6) 00ABHCLRINTCompare Clear Interrupt6)

13 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb. 5.4 Erzeugen von Interrupts

14 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.6 IEN0 Interrupt 0 Control Bits 0A8HEALWDTET2ESET1EX1ET0EX0IEN0 WDT Wird nicht für Interrupt-Kontrolle genutzt BitFunktion EX0"0" Externer Interrupt 0 gesperrt "1" Externer Interrupt 0 freigegeben ET0"0" Überlauf Timer 0 gesperrt "1" Überlauf Timer 0 freigegeben EX1"0" Externer Interrupt 1 gesperrt "1" Externer Interrupt 1 freigegeben ET1"0" Überlauf Timer 1 gesperrt "1" Überlauf Timer 1 freigegeben ES"0" Serieller Schnittstellen Interrupt gesperrt "1" Serieller Schnittstellen Interrupt freigegeben ET2"0" Überlauf Timer 2 gesperrt "1" Überlauf Timer 2 freigegeben WDTWird nicht für Interrupt Kontrolle genutzt EAL"0" Kein Interrupt wird erkannt "1" Jeder Interrupt wird entsprechend seiner Einstellung erkannt

15 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.7 Interrupt Control Bits 0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H 0A8H EXEN 2SWDTEX6EX5EX4EX3EX2EADCIEN1 BitFunktion EADC"0" A/D-Wandler Interrupt gesperrt. "1" A/D-Wandler freigegeben. EX2"0" externer Interrupt 2 gesperrt. "1" externer Interrupt 2 / Übernahme- / Vergleichs-Interrupt 4 freigegeben. EX3"0" externer Interrupt 3 gesperrt. "1" externer Interrupt 3 / Übernahme- / Vergleichs-Interrupt 4 freigegeben. EX4"0" externer Interrupt 4 gesperrt. "1" externer Interrupt 4 / Übernahme- / Vergleichs-Interrupt 4 freigegeben. EX5"0" externer Interrupt 5 gesperrt. "1" externer Interrupt 5 / Übernahme- / Vergleichs-Interrupt 4 freigegeben. EX6"0" externer Interrupt 6 gesperrt. "1" externer Interrupt 6 / Übernahme- / Vergleichs-Interrupt 4 freigegeben. SWDTWird nicht für Interrupt Kontrolle genutzt EXEN2"0" Externer Reload Interrupt Timer 2 wird gesperrt. "1" Externer Reload Interrupt Timer 2 wird erkannt.

16 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.8 TCON Interrupt Control Bits 8FH8EH8DH8CH8B8AH89H88H TF1TR1TF0TR0IE1IT1IE0IT0TCON BitFunktion IT0Interrupt 0 type control bit. Auswahlbit für Arbeitsweise "1" Fallende Flanke löst externen Interrupt aus "0" 0-Pegel löst externen Interrupt aus IE0"1" Falls externer Interrupt durch Hardware erkannt wird. "0" automatisch durch Interruptausführung IT1Interrupt 1 type control bit. Auswahlbit für Arbeitsweise "1" Fallende Flanke löst externen Interrupt aus "0" 0-Pegel löst externen Interrupt aus IE1"1" Falls externer Interrupt durch Hardware erkannt wird. "0" automatisch durch Interruptausführung TR0Timer 0 Run Control - Wird nicht für Interrupt Kontrolle genutzt. TF0Timer 0 overflow flag. "1" durch Hardware, wenn Zähler / Zeitgeber Überlauf. "0" automatisch durch Interruptausführung TR1Timer 1 Run Control - Wird nicht für Interrupt Kontrolle genutzt TF1Timer 1 overflow flag. "1" durch Hardware, wenn Zähler / Zeitgeber Überlauf. "0" automatisch durch Interruptausführung

17 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb. 5.4 Zu viele Interrupts

18 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb. 5.6 Prioritäten / Anforderungen von Interrupts

19 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.9 IP0 Interrupt Priority Bits 0A9H-WDTSIP0.5IP0.4IP0.3IP0.2IP0.1IP0.0IP0 0B9H--IP1.5IP1.4IP1.3IP1.2IP1.1IP1.0IP1 IP1.xIP0.xFunktion 00Priorität 0 (kleinste) 01Priorität 1 10Priorität 2 11Priorität 3

20 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb. 5.7 Struktogramm für Blink-Programm

21 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb. 5.8 Die Schaltfläche Zauberstab in der Keil Entwicklungsumgebung

22 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb. 5.9 Die Einstellungen für den Simulator

23 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.11 Codierung SpannungLeuchte 2Leuchte 3 0V U 2 VAUS 2V< U 3 VAUSEIN 3V< U 4 VEINAUS 4V< U 5 VEIN

24 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Blockbild A/D-Wandler im 80535

25 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Anschluss eines Potentiometers an EURO_535

26 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.12 Wert – Spannung Zahl01…… … U in V00,01961,980322,01964,98045

27 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Schaltbild ADDA535- Karte

28 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.13 ADCON REGISTER 0DFH0DEH0DDH0DCH0DBH0DAH0D9H0D8H BDCLK-BSYADMMX2MX1MX0ADCON BitFunktion MX2 MX1 MX MYMOS ACMOS Anlog Eingang 0 AN0 P6.0 Anlog Eingang 1 AN1 P6.1 Anlog Eingang 2 AN2 P6.2 Anlog Eingang 3 AN3 P6.3 Anlog Eingang 4 AN4 P6.4 Anlog Eingang 5 AN5 P6.5 Anlog Eingang 6 AN6 P6.6 Anlog Eingang 7 AN7 P6.7 ADM"1" Kontinuierliche Wandlung. "0" Stop nach jeder Wandlung BSY"1" Busy Flag / Wandlung findet statt. "0" Wandlung beendet -frei CLKCLK - Wird nicht für A/D-Wandler verwendet BDBaudrate - Wird nicht für A/D-Wandler verwendet

29 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.14 Erhöhung der Auflösung durch Einschränkung des Messbereiches DAPR DAPR DAH DAPR DAPR DAPR VintAGND Bit VintAREF Bit 00000,05, , , , , , , , , , , , , , , ,68754

30 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Anzeige des ADDAT-Inhalts im Debug- Programm

31 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Umsetzung von parallel in seriell

32 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Einstellungen der seriellen Schnittstelle

33 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Einstellungen der seriellen Schnittstelle am PC

34 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Einstellungen der seriellen Schnittstelle 80535

35 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.15 SCON Bits 09FH09EH09DH09CH09BH09AH099H098H 98HSM0SM1SM2RENTB8RB8TIRISCON BitSymbol SM0 SM Mode 0: Synchroner Modus, feste Baudrate fosc/12 Mode 1: 8-Bit UART, variable Baudrate Mode 2: 9-Bit UART, feste Baudrate fosc/64 oder fosc/32 Mode 3: 9-Bit UART, variable Baudrate SM2Ermöglicht Multiprozessor-Kommunikation in Mode 2 und 3 Empfänger-Interrupt wird nicht ausgelöst, falls das neunte Datenbit "0" ist. In Mode 1 und SM2="1" wird der Interrupt ebenfalls nicht aktiviert falls kein gültiges Stopbit empfangen wird. In Mode 0 muß SM2="0" sein. RENReceiver enable. "1" Gibt den seriellen Empfang durch Software frei. "0" sperrt den Empfang. TB8Übertragungsbit 8. Das neunte Bit für Mode 2 und 3 Wird durch Software gesetzt und rückgesetzt. RB8Empfangsbit 8. Neunte Bit für Empfang in Mode 2 und 3 TIÜbertragungsinterrupt. Wird durch die Hardware am Ende des achten Bits in Mode 0 gesetzt, oder am Beginn des Stop-Bits in den anderen Moden. Muss durch Software zurückgesetzt werden. RIEmpfängerinterrupt. Ist das empfangene Interrupt-Flag. Wird am Ende des achten Bits in Mode 0 gesetzt, oder am Beginn des Stop-Bits in den anderen Modi. Muss durch Software zurückgesetzt werden.

36 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November SBUF Empfangs- und Senderegister für serielle Schnittstelle 99HSBUF

37 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Erzeugen der Baudrate fosc/2 ADCON.7 (BD) Timer 1 Overflow SM0 SM1 *1/39 SMOD *1/2 Baud Rate

38 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Baudraten im PCON Power Control Register 99HSMODPCON BitFunktion SMOD"1" Baudrate wird in Mode 1,2,3 verdoppelt

39 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.16 ADCON REGISTER 0DFH0DEH0DDH0DCH0DBH0DAH0D9H0D8H BDCLK- ADCON BitFunktion BDBaudrate - Wird nicht für A/D-Wandler verwendet CLK"1" Der Takt wird nach außen an Pin P1.6/CLKOUT weitergeleitet

40 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.17 Allgemein verwendete Baudraten Baud Rate Mode 1,3 fosc(MHz)SMOD C/(/T) TIMER 1 ModeReload Value 62,5 Kbaud12,01020FFH 19,5 Kbaud11, FDH 9,6 Kbaud11, FDH 4,8 Kbaud11, FAH 2,4 Kbaud11, F4H 1,2 Kbaud11, E8H 110 Baud6,000272H 110 Baud12,00010FEEBH

41 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Blockschaltbild für Effektivwertmesser

42 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Bild Abgetasteter Sinus

43 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Blockschaltbild Zeitgeber 2

44 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.18 Verwendetet Abkürzungen AbkürzungBedeutung CRCH, CRCLCompare Reload Capture High / Low Register CCH1, CCL1Compare Capture High / Low Register 1 CCH2, CCL2Compare Capture High / Low Register 2 CCH3, CCL3Compare Capture High / Low Register 3

45 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.19 Timer 2 Control-Bits 0CFH0CEH0CDH0CCH0CBH0CAH0C9H0C8H T2PSI3FRI2FRT2R1T2R0T2CMT2I1T2I0T2CON BitFunktion T2I1 T2I Timer 2 input selection. Auswahl des Eingangs. Kein Eingang gewählt. - Zeitgeber zählt nicht Zeitgeberbetrieb. Frequenz = fosc/12 (T2PS="0" ) - fosc/24 (T2PS="1" ). Zählerbetrieb. An Pin T2/P1.7 muss externes Signal anliegen. Zeitgeberbetrieb mit Gatterfunktion. Gatter wird über Pin T2/P1.7 gesteuert. T2R1 T2R0 0 X Timer 2 reload mode selection. Zeitgeber 2 Wiederladebetrieb Wiederladen gesperrt. Modus 0: Wiederladen bei Timer 2 Überlauf ( TF2 ) Modus 1: Wiederladen bei fallender Flanke an Pin T2EX/P1.5 T2CMCompare mode / Vergleichsmodus für Register CRC, CC1, CC2, CC3. "0" Vergleich bei Überlauf des Timers 2 "1" Fallende Flanke an Pin T2EX/P1.5 löst Vergleich aus. I2FRDieses Bit wird nicht zur Kontrolle des Zeitgebers 2 verwendet I3FRExternal Interrupt 3 falling / rising edge flag. Wird ebenso für die Übernahmefunktion in Kombination mit dem CRC Register benutzt. "0" Übernahme erfolgt bei negativer Flanke an P1.0. "1" Übernahme erfolgt bei Freigabe an positiver Flanke an P1.0. T2PSPrescaler select bit / Vorteiler Bit. "0" für die Zählerfunktion 1/12 der Oszillatorfrequenz "1" Interner Takt mit 1/24 der Oszillatorfrequenz.

46 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Tabelle 5.20 Lösung der Aufgabe mit Interrupts AktionBitBit Erklärung Interruptfreigabe Timer 2ET2Interrupt Timer 2 Interruptfreigabe A/D-WandlerEADCEnable Interrupt A/D-Converter Interruptbestätigung Timer 2TF2Timer Flag 2 Interruptbestätigung A/D-WandlerIADCInterrupt A/D-Converter

47 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Struktogramm für AD_40T2

48 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Struktogramm für AD_40T2O A/D-Wandlung ohne Interrupts

49 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Abgetastete Sinus mit Offset

50 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Speicherinhalt nach A/D-Wandlung von 40 Werten, AD_40

51 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Speicherinhalt nach Quadrieren

52 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Speicherinhalt nach Addition

53 Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November Abb Speicherinhalt nach Addition


Herunterladen ppt "Mikrocomputertechnik 5 Projekte mit Assembler gelöst Prof. J. Walter Stand November 2007 1 Mikrocomputertechnik Herzlich Willkommen Jürgen Walter."

Ähnliche Präsentationen


Google-Anzeigen