Mikrocomputertechnik
description
Transcript of Mikrocomputertechnik
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
1
Mikrocomputertechnik
Herzlich WillkommenJürgen Walter
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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.
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
3
Regel 1
Nur dokumentierte Hardware und Software ist existent.
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
4
Regel 2
Durchgängige Verwendung von Registern mit Herstellung des Ausgangszustands.Zuordnung von Tasks (Aufgaben - Prozesse) zu Registerbänken.
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
5
Regel 3
Bei umfangreicher Software unbedingt Hochsprache C / C++ verwenden.
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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 0hjmp INIT ;Sprung auf Initialisierungsroutine;------------------------------------------------------------------------;Interrupt-Vektoren;------------------------------------------------------------------------;;------------------------------------------------------------------------;Initialisierungsteil fuer On-Chip Peripherie;------------------------------------------------------------------------ORG 100H ;Programmstart bei 100HINIT:;------------------------------------------------------------------------;Programmbeginn;------------------------------------------------------------------------ABFRAGE:
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
7
Tabelle 5.3 TMOD BYTE89H GATE C/T# M1 M0 GATE C/T# M1 M0 TMOD
Timer 1
Timer 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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
11
Tabelle 5.4 TCON BITS Timer 0 - Timer 1 Control Bits8FH 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.
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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 Clear
Interrupt6)
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
EF2EXEN2
A/D-Converter IADC
>1
>1
P1.4/INT2
Compare 0
Compare 1
IEX4
IEX2
IEX3
Compare 1
Compare 1
IEX6
IEX5
CONTROL
PT
INTERRU
TCON.2
TCON.5
TCON.6P1.0/INT3/CC0
P1.1/INT4/CC1
P1.2/INT5/CC2
P1.3/INT6/CC3
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
14
Tabelle 5.6 IEN0 Interrupt 0 Control Bits
0A8H EAL WDT ET2 ES ET1 EX1 ET0 EX0 IEN0WDT 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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
15
Tabelle 5.7 Interrupt Control Bits0BFH 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.
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
16
Tabelle 5.8 TCON Interrupt Control Bits8FH 8EH 8DH 8CH 8B 8AH 89H 88H
88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCONBit 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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
17
Abb. 5.4 Zu viele Interrupts
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
TIIEX5
TF2EXF2IEX6
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
CONTROL
PT
INTERRU
PRIORI
Y
REQUEST
T
VectorLocations
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
21
Abb. 5.8 Die Schaltfläche „Zauberstab“ in der Keil Entwicklungsumgebung
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
22
Abb. 5.9 Die Einstellungen für den Simulator
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
24
Abb. 5.11 Blockbild A/D-Wandler im 80535
01234567ADCON (0D8H)
01234567
ADDAT (0D9H)
A/D-WandlerSample
&Hold
Multiplexer
AN7/P 6.7AN6/P 6.6AN5/P 6.5AN4/P 6.4AN3/P 6.3AN2/P 6.2AN1/P 6.1AN0/P 6.0
Internal Reference Voltages
interner Bus
AREF
AGNDVV
01234567DAPR (0DAH)Programmierung
intAREFVProgrammierung
intAGNDV
P6 (0DBH)
Port 6ACMOS
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
25
Abb. 5.12 Anschluss eines Potentiometers an EURO_535
1 K
V
V
GNDV
CC
AREF
AGND
VGA Pin 4
VGA Pin 31
VGA Pin 27
VGA Pin 26
VGA Pin 21
Anschluß EURO_535
+5V
0V
AN0
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
27
Abb. 5.13 Schaltbild ADDA535-Karte
R91K lin
J3
JUMPER
VCC
1B1
ANALOG OUT1R11
1KDB0 1DB1 2DB2 3DB3 4DB4 5DB5 6DB6 7DB7 8
V OUT 16V OUT SENSE 15
V OUT SELECT 14GND 13GND 12
+VCC 11CS 10CE 9
IC1
AD558
P5.0P5.1
DB0 1DB1 2DB2 3DB3 4DB4 5DB5 6DB6 7DB7 8
V OUT 16V OUT SENSE 15
V OUT SELECT 14GND 13GND 12
+VCC 11CS 10CE 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
B14GND
P5.0P5.1P5.2P5.3P5.4P5.5P5.6P5.7
P4.0
A1 1A2 2A3 3A4 4A5 5A6 6A7 7A8 8A9 9A10 10A11 11A12 12A13 13A14 14A15 15A16 16A17 17A18 18A19 19A20 20A21 21A22 22A23 23A24 24A25 25A26 26A27 27A28 28A29 29A30 30A31 31A32 32
C1 41C2 42C3 43C4 44C5 45C6 46C7 47C8 48C9 49
C10 50C11 51C12 52C13 53C14 54C15 55C16 56C17 57C18 58C19 59C20 60C21 61C22 62C23 63C24 64C25 65C26 66C27 67C28 68C29 69C30 70C31 71C32 72
VG1
VG_535Z
VCC+5V VCC VSS X4
1
2D1ZD 5V6
AN2R1
100
PIN3
PIN5
PIN1 1PIN2 2PIN3 3PIN4 4PIN5 5PIN6 6PIN7 7PIN8 8PIN9 9PIN10 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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
30
Abb. 5.14 Anzeige des
ADDAT-Inhalts im Debug-
Programm
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
32
Abb. 5.16 Einstellungen der seriellen Schnittstelle
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
33
Abb. 5.17. Einstellungen der seriellen Schnittstelle am „PC“
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
34
Abb. 5.18 Einstellungen der seriellen Schnittstelle 80535
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
35
Tabelle 5.15 SCON Bits 09FH 09EH 09DH 09CH 09BH 09AH 099H 098H
98H 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.
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
36
SBUF Empfangs- und Senderegister für serielle Schnittstelle
99H SBUF
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
37
Abb. 5.19 Erzeugen der Baudrate
fosc/2
ADCON.7 (BD)
Timer 1
Overflow
SM0
SM1
*1/39
SMOD
*1/2
Baud Rate
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
38
Baudraten im PCON Power Control Register
99H SMOD PCON
Bit Funktion
SMOD
"1" Baudrate wird in Mode 1,2,3 verdoppelt
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
41
Abb. 5.20 Blockschaltbild für Effektivwertmesser
Signalgeneratorµ-Controller
t
Ueff
A/D-Wandler
Zeitgeber
Serielle Schnittstelle
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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 InterruptInterrupts
P1.0/CC0
P1.1/CC1
P1.2/CC2
P1.3/CC3
E/A-
Steuerung
Interner Bus 8 Bit
16 Bit
8
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
45
Tabelle 5.19 Timer 2 Control-Bits0CFH 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.
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
46
Tabelle 5.20 Lösung der Aufgabe mit Interrupts
Aktion Bit Bit ErklärungInterruptfreigabe Timer 2 ET2 Interrupt Timer 2Interruptfreigabe A/D-Wandler EADC Enable Interrupt A/D-ConverterInterruptbestätigung Timer 2 TF2 Timer Flag 2Interruptbestätigung A/D-Wandler IADC Interrupt A/D-Converter
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
50
Abb. 5.26 Speicherinhalt nach A/D-Wandlung von 40 Werten, AD_40
Signal-generator A/D
80535Speicher
2000H2001H2002H
1. Wert
2027H
2. Wert
40. Wert
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
51
Abb. 5.27 Speicherinhalt nach Quadrieren
80535externer 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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
52
Abb. 5.28 Speicherinhalt nach Addition
80535externer 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
Mik
roco
mpu
tert
echn
ik 5
Pro
jekt
e m
it A
ssem
bler
gel
öst
Prof
. J. W
alte
r St
and
Nov
embe
r 20
07
53
Abb. 5.29 Speicherinhalt nach Addition
externer Speicher
2077H 0F2078H A02079H207AH207BH
5802bel.
LB+0LB+1LB+2LB+3