53
1 Mikrocomputertechnik Herzlich Willkommen Jürgen Walter

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

Embed Size (px)

Citation preview

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

1

Mikrocomputertechnik

Herzlich WillkommenJürgen Walter

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

2

Tabelle 5.1 Die verwendeten Einheiten in den Projekten

Projekt verwendete Einheiten1. Blinklicht mit BlinkfrequenzTimer 0,1 Interrupt2. A/D-Wandlung A/D-Wandler3. Serielle Schnittstelle Serielle Schnittstelle4. Effektivwertmessung Timer, A/D-Wandler, Serielle

Schnittst.

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

3

Regel 1

Nur dokumentierte Hardware und Software ist existent.

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

4

Regel 2

Durchgängige Verwendung von Registern mit Herstellung des Ausgangszustands.Zuordnung von Tasks (Aufgaben - Prozesse) zu Registerbänken.

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

5

Regel 3

Bei umfangreicher Software unbedingt

Hochsprache C / C++ verwenden.

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

6

Standardkopf$nomod51 ;der Modus fuer 8051 wird abgeschaltet

$debug

$nolist ;es wird kein Listing fuer reg535 erstellt

$include(reg535.pdf) ;die 80535-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:

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

7

Tabelle 5.3 TMOD BYTE

89H GATE C/T# M1 M0 GATE C/T# M1 M0 TMODTimer

1Timer

0  

Bit FunktionGate Gating 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/M00 0 8-bit timer / counter

THx ist ein 8-bit Zähler / Zeitgeber - TLx dient als 5-bit Vorteiler0 1 16-bit timer/counter

"THx" und TLx" ergeben zusammen einen 16-bit-Zähler / Zeitgeber.1 0 8-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 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 1 Timer 1. Zähler / Zeitgeber hält

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

8

Abb. 5.1 Blockbild von Timer 0 und 1 im 16-Bit Modus

TH0 TL0

TF0 Timer overflow flag

Interrupt

Takt

12

OSC

T0 /

C/T#=0

C/T#=1

&TR0

Timer run control bit

Gate

P 3.4

INT0#

interner Bus

>1

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

9

Abb. 5.2 Mode 2, Zähler / Zeitgeber 0,1 mit Wiederladen des TL0 Registers

TH0 TL0

TF0 Timer overflow flag

Interrupt

Takt

12

OSC

T0 /

C/T#=0

C/T#=1

&TR0

Timer run control bit

Gate

P 3.4

INT0#

Reload

im Chip

>1

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

10

Abb. 5.3 Mode 3, Timer 1 Interrupt wird von Timer 0 mitbenutzt

TL0

TF0Timer 0

Interrupt

Takt

12

OSC

T0 /

C/T#=0

C/T#=1

&TR0

Timer run control bit

Gate

P 3.4

INT0#

interner Bus

fosc/12

TR1

TH0

TF1

Interrupt

Takt

Control

Timer 1 overflow flag

overflow flag

>1

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

11

Tabelle 5.4 TCON BITS Timer 0 - Timer 1 Control Bits

8FH 8EH 8DH 8CH 8B 8AH 89H 88H

88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON   

Diese Bits werden nicht zur Kontrolle des Zeitgebers verwendet

 

Bit Funktion

TR0 Timer 0 run control bit. Bit zum Starten und Stoppen des Zeitgebers 0

TF0 Timer 0 overflow flag.Wird hardwaremäßig beim Zeitgeber / Zählerüberlauf gesetzt.Wird bei Aufruf des entsprechenden Interrupts zurückgesetzt.

TR1 Timer 1 run control bit. Bit zum Starten und Stoppen des Zeitgebers 1

TF1 Timer 1 overflow flag.Wird hardwaremäßig beim Zeitgeber / Zählerüberlauf gesetzt.Wird bei Aufruf des entsprechenden Interrupts zurückgesetzt.

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

12

Tabelle 5.5 Interrupt-Vektor-Adressen

PC Adresse Interrupt-Name Erklärung0000H RESET Start Address after Reset1)0003H EXTIO External Interrupt 01)000BH TIMER 0 Timer 0 Overflow Interrupt1)0013H EXTI1 External Interrupt 11)001BH TIMER1 Timer 1 Overflow Interrupt1)0023H SINT

SINT04)6)Serial Channel 0 Interrupt1)

002BH TIMER2 Timer 2 Overflow/External Reload Interrupt2)-6)

0043H ADCI A/D-Converter Interrupt3).....6)004BH EXTI2 External Interrupt 2/

Compare Event with CC43).....6)Bei 80C515 External Interrupt only

0053H EXTI3 External Interrupt 3 /Compare Event with CRC3).....6)

005BH EXTI4 External Interrupt 4 /Compare Event with CC13).....6)

0063H EXTI5 External Interrupt 5 /Compare Event with CC23).....6)

006BH EXTI6 External Interrupt 6 /Compare Event with CC33).....6)

0083H SINT1 Serial Channel 1 Interrupt4)6)0093H CMINT CMx Compare Register

Interrupt6)

009BH COMPTIMER Compare Timer Overflow4)6)00A3H SETINT Compare Set

Interrupt6)

00ABH CLRINT Compare ClearInterrupt6)

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

13

Abb. 5.4 Erzeugen von Interrupts

P3.2/INT0

TIMER 0Overflow

P3.3/INT1

TIMER 1Overflow

Receiver

SERIAL PORTTransmitter

TIMER 2Overflow

P1.5/T2EX

IE0

TF0

TCON.0

IE1

TF1

RI

TI

TF2

EF2

EXEN2A/D-Converter IADC

>1

>1

P1.4/INT2

Compare 0

Compare 1

IEX4

IEX2

IEX3

Compare 1

Compare 1

IEX6

IEX5

C

O

N

T

R

O

L

P

T

I

N

T

E

R

R

U

TCON.2

TCON.5

TCON.6P1.0/INT3/CC0

P1.1/INT4/CC1

P1.2/INT5/CC2

P1.3/INT6/CC3

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

14

Tabelle 5.6 IEN0 Interrupt 0 Control Bits

 0A8H EAL WDT ET2 ES ET1 EX1 ET0 EX0 IEN0

WDT Wird nicht für Interrupt-Kontrolle genutzt  

Bit FunktionEX0 "0" Externer Interrupt 0 gesperrt

"1" Externer Interrupt 0 freigegebenET0 "0" Überlauf Timer 0 gesperrt

"1" Überlauf Timer 0 freigegebenEX1 "0" Externer Interrupt 1 gesperrt

"1" Externer Interrupt 1 freigegebenET1 "0" Überlauf Timer 1 gesperrt

"1" Überlauf Timer 1 freigegebenES "0" Serieller Schnittstellen Interrupt gesperrt

"1" Serieller Schnittstellen Interrupt freigegebenET2 "0" Überlauf Timer 2 gesperrt

"1" Überlauf Timer 2 freigegebenWDT Wird nicht für Interrupt Kontrolle genutztEAL "0" Kein Interrupt wird erkannt

"1" Jeder Interrupt wird entsprechend seiner Einstellung erkannt

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

15

Tabelle 5.7 Interrupt Control Bits

0BFH 0BEH 0BDH 0BCH 0BBH 0BAH 0B9H 0B8H

0A8H EXEN2 SWDT EX6 EX5 EX4 EX3 EX2 EADC IEN1

Bit FunktionEADC "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.SWDT Wird nicht für Interrupt Kontrolle genutztEXEN2 "0" Externer Reload Interrupt Timer 2 wird gesperrt.

"1" Externer Reload Interrupt Timer 2 wird erkannt.

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

16

Tabelle 5.8 TCON Interrupt Control Bits

8FH 8EH 8DH 8CH 8B 8AH 89H 88H  88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON

Bit FunktionIT0 Interrupt 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

IT1 Interrupt 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

TR0 Timer 0 Run Control - Wird nicht für Interrupt Kontrolle genutzt. TF0 Timer 0 overflow flag.

"1" durch Hardware, wenn Zähler / Zeitgeber Überlauf."0" automatisch durch Interruptausführung

TR1 Timer 1 Run Control - Wird nicht für Interrupt Kontrolle genutztTF1 Timer 1 overflow flag.

"1" durch Hardware, wenn Zähler / Zeitgeber Überlauf."0" automatisch durch Interruptausführung

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

17

Abb. 5.4 Zu viele Interrupts

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

18

Abb. 5.6 Prioritäten / Anforderungen von Interrupts

>1

>1

IP0.0IP1.0

IEN 0.0IEN 0.7

IEN 1.0

IE0

IADC

TF0

IE1

IEX2

RI

IEX3

TF1

TI

IEX5

TF2

EXF2

IEX6

IEX4

IEN 0.3

IEN 1.5

IEN 0.5

IEN 1.3

IEN 0.4

IEN 1.4

IEN 0.2

IEN 1.2

IEN 0.1

IEN 1.1

IP 1.5 IP 0.5

IP 1.4 IP 0.4

IP 1.3 IP 03

IP 1.2 IP 0.2

IP 1.1 IP 0.1

Level 0

Level 1

Level 3

Level 2

C

O

N

T

R

O

L

P

T

I

N

T

E

R

R

U

P

R

I

O

R

I

Y

R

E

Q

U

E

S

T

T

Vector

Locations

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

19

Tabelle 5.9 IP0 Interrupt Priority Bits

0A9H - WDTS IP0.5 IP0.4 IP0.3 IP0.2 IP0.1 IP0.0 IP0

0B9H - - IP1.5 IP1.4 IP1.3 IP1.2 IP1.1 IP1.0 IP1

IP1.x IP0.x Funktion

0 0 Priorität 0 (kleinste)

0 1 Priorität 1

1 0 Priorität 2

1 1 Priorität 3

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

20

Abb. 5.7 Struktogramm für Blink-Programm

Welche Taste wurde betätigt ?

Taster 1 Taster 2 Taster 3

Port 3.2löschenLicht ein

Port 3.2setzenLicht aus

Blinken

Assembler Anweisungen

Programmbeschreibung

Initialisierung

TR0 anTIMER_0

TR0 ausTR0 aus

TIMER_0

Register 2 = 0 ?

ret

ja nein

P 3.2 Komplement

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

21

Abb. 5.8 Die Schaltfläche „Zauberstab“ in der Keil Entwicklungsumgebung

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

22

Abb. 5.9 Die Einstellungen für den Simulator

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

23

Tabelle 5.11 Codierung

Spannung Leuchte 2 Leuchte 30V U 2 V AUS AUS2V< U 3 V AUS EIN3V< U 4 V EIN AUS4V< U 5 V EIN EIN

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

24

Abb. 5.11 Blockbild A/D-Wandler im 80535

01234567ADCON (0D8H)

0

1

2

3

4

5

6

7

ADDAT (0D9H)

A/D-WandlerSample

&Hold

Multiplexer

AN7/P 6.7

AN6/P 6.6

AN5/P 6.5

AN4/P 6.4

AN3/P 6.3

AN2/P 6.2

AN1/P 6.1

AN0/P 6.0

Internal Reference Voltages

interner Bus

AREF

AGNDV

V

01234567DAPR (0DAH)

Programmierung

intAREFVProgrammierung

intAGNDV

P6 (0DBH)

Port 6ACMOS

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

25

Abb. 5.12 Anschluss eines Potentiometers an EURO_535

1 K

V

V

GND

V

CC

AREF

AGND

VGA Pin 4

VGA Pin 31

VGA Pin 27

VGA Pin 26

VGA Pin 21

Anschluß EURO_535

+5V

0V

AN0

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

26

Tabelle 5.12 Wert – Spannung

Zahl 0 1 …… 101 102 103 ….. 254 255

U in V 0 0,0196 1,9803 2 2,0196 4,9804 5

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

27

Abb. 5.13 Schaltbild ADDA535-Karte

R9

1K lin

J3

JUMPER

VCC

1B1

ANALOG OUT1

R11

1K

DB0 1

DB1 2

DB2 3

DB3 4

DB4 5

DB5 6

DB6 7

DB7 8

V OUT 16

V OUT SENSE 15

V OUT SELECT 14

GND 13

GND 12

+VCC 11

CS 10

CE 9

IC1

AD558

P5.0P5.1

DB0 1

DB1 2

DB2 3

DB3 4

DB4 5

DB5 6

DB6 7

DB7 8

V OUT 16

V OUT SENSE 15

V OUT SELECT 14

GND 13

GND 12

+VCC 11

CS 10

CE 9

IC2

AD558

P5.2P5.3P5.4P5.5P5.6P5.7

P4.1

1B2

ANALOG OUT2R10

1K

VCC

1

B13

GND

1

2D2ZD 5V6

AN0R2

100

BNC1

BNC

R3

100

BNC2

BNC

PIN1

1

2D3ZD 5V6

AN1

VCC

1

B14

GND

P5.0P5.1P5.2P5.3P5.4P5.5P5.6P5.7

P4.0

A1 1

A2 2

A3 3

A4 4

A5 5

A6 6

A7 7

A8 8

A9 9

A10 10

A11 11

A12 12

A13 13

A14 14

A15 15

A16 16

A17 17

A18 18

A19 19

A20 20

A21 21

A22 22

A23 23

A24 24

A25 25

A26 26

A27 27

A28 28

A29 29

A30 30

A31 31

A32 32

C1 41

C2 42

C3 43

C4 44

C5 45

C6 46

C7 47

C8 48

C9 49

C10 50

C11 51

C12 52

C13 53

C14 54

C15 55

C16 56

C17 57

C18 58

C19 59

C20 60

C21 61

C22 62

C23 63

C24 64

C25 65

C26 66

C27 67

C28 68

C29 69

C30 70

C31 71

C32 72

VG1

VG_535Z

VCC+5V VCC VSS X4

1

2D1ZD 5V6

AN2R1

100

PIN3

PIN5

PIN1 1

PIN2 2

PIN3 3

PIN4 4

PIN5 5

PIN6 6

PIN7 7

PIN8 8

PIN9 9

PIN10 10

PL1

PINLEISTE_10

R4

100

R5

100

PIN6

1

2D4ZD 5V6

AN3

X3VDD

P5.1P5.3P5.5P5.7

P4.1P5.0P5.2P5.4P5.6

P4.0

VCC

AD/DA Zusatzkarte fuer 80535-Board

8 Analogeingaenge

2 AnalogausgaengeVCC

1

2D5ZD 5V6

1

2D6ZD 5V6

AN4

AN5R6

100

PIN1

PIN3

PIN5PIN6PIN7PIN8PIN9PIN10

PIN7

PIN8

R7

100

R8

100

PIN9

1

2D7ZD 5V6

AN6Fachhochschule Karlsruhe, FB F

Joachim Juengst, Januar 1994AN1AN3AN5AN7

AN0AN2AN4AN6

1

2D8ZD 5V6

AN7 PIN10

DA1

DA0

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

28

Tabelle 5.13 ADCON REGISTER

  0DFH 0DEH 0DDH 0DCH 0DBH 0DAH 0D9H 0D8H  

0D8H BD CLK - BSY ADM MX2 MX1 MX0 ADCON

Bit FunktionMX2 MX1 MX0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

MYMOS ACMOSAnlog Eingang 0 AN0 P6.0 Anlog Eingang 1 AN1 P6.1Anlog Eingang 2 AN2 P6.2Anlog Eingang 3 AN3 P6.3Anlog Eingang 4 AN4 P6.4Anlog Eingang 5 AN5 P6.5Anlog Eingang 6 AN6 P6.6Anlog Eingang 7 AN7 P6.7

ADM "1" Kontinuierliche Wandlung. "0" Stop nach jeder Wandlung

BSY "1" Busy Flag / Wandlung findet statt."0" Wandlung beendet

- freiCLK CLK - Wird nicht für A/D-Wandler verwendetBD Baudrate - Wird nicht für A/D-Wandler verwendet

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

29

Tabelle 5.14 Erhöhung der Auflösung durch Einschränkung des Messbereiches

  DAPR .4 - .7

DAPR .0 - .3  

0DAH 7 6 5 4 3 2 1 0 DAPR

DAPR .3 - .0DAPR .4 - .7

VintAGND0. - 3. Bit

VintAREF4. - 7. Bit

0000 0,0 5,00001 0,3125 -0010 0,625 -0011 0,9375 -0100 1,25 1,250101 1,5625 1,56250110 1,875 1,8750111 2,1875 2,18751000 2,5 2,51001 2,8125 2,81251010 3,125 3,1251011 3,4375 3,43751100 3,75 3,751101 - 4,06251110 - 4,3751111 - 4,68754

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

30

Abb. 5.14 Anzeige des

ADDAT-Inhalts im Debug-Programm

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

31

Abb. 5.15 Umsetzung von parallel in seriell

0111

1

00

0

0111

1

00

00

0 0 0 0 00

00000 11111

0111

1

00

0

0111

1

00

0

Start BitStop Bit

Sender Empfänger

zeitlich nacheinander

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

32

Abb. 5.16 Einstellungen der seriellen Schnittstelle

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

33

Abb. 5.17. Einstellungen der seriellen Schnittstelle am „PC“

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

34

Abb. 5.18 Einstellungen der seriellen Schnittstelle 80535

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

35

Tabelle 5.15 SCON Bits

  09FH 09EH 09DH 09CH 09BH 09AH 099H 098H98H SM0 SM1 SM2 REN TB8 RB8 TI RI SCON

Bit SymbolSM0 SM1 0 0 0 1 1 0 1 1

Mode 0: Synchroner Modus, feste Baudrate fosc/12Mode 1: 8-Bit UART, variable BaudrateMode 2: 9-Bit UART, feste Baudrate fosc/64 oder fosc/32Mode 3: 9-Bit UART, variable Baudrate

SM2 Ermö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.

REN Receiver enable. "1" Gibt den seriellen Empfang durch Software frei. "0" sperrt den Empfang.

TB8 Übertragungsbit 8. Das neunte Bit für Mode 2 und 3Wird durch Software gesetzt und rückgesetzt.

RB8 Empfangsbit 8. Neunte Bit für Empfang in Mode 2 und 3TI Ü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.

RI Empfä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.

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

36

SBUF Empfangs- und Senderegister für serielle Schnittstelle

99H SBUF

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

37

Abb. 5.19 Erzeugen der Baudrate

fosc/2

ADCON.7 (BD)

Timer 1

Overflow

SM0

SM1

*1/39

SMOD

*1/2

Baud Rate

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

38

Baudraten im PCON Power Control Register

99H SMOD PCON

Bit Funktion

SMOD

"1" Baudrate wird in Mode 1,2,3 verdoppelt

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

39

Tabelle 5.16 ADCON REGISTER

  0DFH 0DEH 0DDH 0DCH 0DBH 0DAH 0D9H 0D8H  0D8H BD CLK - ADCON

Bit Funktion

BD Baudrate - Wird nicht für A/D-Wandler verwendet

CLK "1" Der Takt wird nach außen an Pin P1.6/CLKOUT weitergeleitet

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

40

Tabelle 5.17 Allgemein verwendete Baudraten

Baud RateMode 1,3

fosc(MHz) SMODC/(/T)

TIMER 1Mode Reload Value

62,5 Kbaud 12,0 1 0 2 0FFH19,5 Kbaud 11,059 1 0 2 0FDH9,6 Kbaud 11,059 0 0 2 0FDH4,8 Kbaud 11,059 0 0 2 0FAH2,4 Kbaud 11,059 0 0 2 0F4H1,2 Kbaud 11,059 0 0 2 0E8H110 Baud 6,0 0 0 2 72H110 Baud 12,0 0 0 1 0FEEBH

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

41

Abb. 5.20 Blockschaltbild für Effektivwertmesser

Signalgeneratorµ-Controller

t

Ueff

A/D-Wandler

Zeitgeber

Serielle Schnittstelle

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

42

Bild 5.21. Abgetasteter Sinus

Sinus mit 100 Hz; abgetastet mit 1000 Hz

t in ms

Ue

0

0,5

1

1,5

2

2,5

3

0 5 10 15 20 25 30 35 40 45

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

43

Abb. 5.22 Blockschaltbild Zeitgeber 2

16 BitKomparator

16 BitKomparator

16 BitKomparator

16 BitKomparator

CCH1 CCL1 CRCH CRCLCCH3 CCL3 CCL2CCH2

Fallende Flanke an P1.7/T2Gegattertes Fosc/12(24)

Fosc/12(24)P1.5/T2EX

Timer 2

Timer 2 Interrupt

Interrupts

P1.0/CC0

P1.1/CC1

P1.2/CC2

P1.3/CC3

E/A-

Steuerung

Interner Bus 8 Bit

16 Bit

8

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

44

Tabelle 5.18 Verwendetet Abkürzungen

Abkürzung Bedeutung

CRCH, CRCL Compare Reload Capture High / Low Register

CCH1, CCL1 Compare Capture High / Low Register 1

CCH2, CCL2 Compare Capture High / Low Register 2

CCH3, CCL3 Compare Capture High / Low Register 3

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

45

Tabelle 5.19 Timer 2 Control-Bits

0CFH 0CEH 0CDH 0CCH 0CBH 0CAH 0C9H 0C8H  0C8H T2PS I3FR I2FR T2R1 T2R0 T2CM T2I1 T2I0 T2CON

Bit FunktionT2I1 T2I0 0 0 0 1 1 0 1 1

Timer 2 input selection. Auswahl des Eingangs.Kein Eingang gewählt. - Zeitgeber zählt nichtZeitgeberbetrieb. 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 1 0 1 1

Timer 2 reload mode selection. Zeitgeber 2 WiederladebetriebWiederladen gesperrt.Modus 0: Wiederladen bei Timer 2 Überlauf ( TF2 )Modus 1: Wiederladen bei fallender Flanke an Pin T2EX/P1.5

T2CM Compare 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.

I2FR Dieses Bit wird nicht zur Kontrolle des Zeitgebers 2 verwendetI3FR External 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.

T2PS Prescaler select bit / Vorteiler Bit."0" für die Zählerfunktion 1/12 der Oszillatorfrequenz"1" Interner Takt mit 1/24 der Oszillatorfrequenz.

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

46

Tabelle 5.20 Lösung der Aufgabe mit Interrupts

Aktion Bit Bit Erklärung

Interruptfreigabe Timer 2 ET2 Interrupt Timer 2

Interruptfreigabe A/D-Wandler EADC Enable Interrupt A/D-Converter

Interruptbestätigung Timer 2 TF2 Timer Flag 2

Interruptbestätigung A/D-WandlerIADC Interrupt A/D-Converter

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

47

Abb. 5.23 Struktogramm für AD_40T2

Sind 40 Werte eingelesen ?

Assembler Anweisungen

Programmbeschreibung

Initialisierung Interrupt A/D Timer2

Wert von ADDAT in ext. Speicher

Interrupt-Unterprogramm

Timer 2 sperren

Leuchte 2 ausschalten

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

48

Abb. 5.24 Struktogramm für AD_40T2O A/D-Wandlung ohne Interrupts

Sind 40 Werte eingelesen ?

Assembler-Anweisungen

Programmbeschreibung

Wert von ADDAT in ext. Speicher

Neue Wandlung / Ende ?

Timer 2 Initialisieren

Warten auf TF2

Warten auf BSY

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

49

Abb. 5.25 Abgetastete Sinus mit Offset

Abgetasteter Sinus mit Offset

Zeit T / [s]

Spa

nnun

g u

/ [V

]

-1

-0,5

0

0,5

1

1,5

2

2,5

3

0 0,005 0,01 0,015 0,02 0,025 0,03 0,035 0,04

abgetasteter Sinus mit Offset

Sinus - Offset

Sinus-Offset quadriert

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

50

Abb. 5.26 Speicherinhalt nach A/D-Wandlung von 40 Werten, AD_40

Signal-generator A/D

80535

Speicher

2000H2001H2002H

1. Wert

2027H

2. Wert

40. Wert

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

51

Abb. 5.27 Speicherinhalt nach Quadrieren

80535

externer Speicher

2000H2001H2002H

1. Wert

2027H

2. Wert

40. Wert

internerSpeicher

30H

57H

QuadrierenCPU

2028H 1. Wert LB

2077H 40. Wert HB

2029H 1. Wert HB

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

52

Abb. 5.28 Speicherinhalt nach Addition

80535

externer Speicher

2000H2001H2002H

1. Wert

2027H

2. Wert

40. Wert

AdditionCPU

2028H 1. Wert LB

2077H 40. Wert HB

2029H 1. Wert HB

2078H 1. Wert Addition2079H207AH207BH

2. Wert Addition3. Wert Addition4. Wert Addition

LB+0LB+1LB+2LB+3

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

53

Abb. 5.29 Speicherinhalt nach Addition

externer Speicher

2077H 0F2078H A02079H207AH207BH

5802bel.

LB+0LB+1LB+2LB+3