05 projekte mit assembler geloest

Werbung
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
1
Stand November 2007
Herzlich Willkommen
Jürgen Walter
Prof. J. Walter
Mikrocomputertechnik
2
Stand November 2007
Projekt
verwendete Einheiten
1. Blinklicht mit Blinkfrequenz Timer 0,1 Interrupt
2. A/D-Wandlung
A/D-Wandler
3. Serielle Schnittstelle
Serielle Schnittstelle
4. Effektivwertmessung
Timer, A/D-Wandler, Serielle
Schnittst.
Prof. J. Walter
Mikrocomputertechnik
5 Projekte mit Assembler gelöst
Tabelle 5.1 Die verwendeten Einheiten in den
Projekten
3
Stand November 2007
Nur dokumentierte Hardware und Software ist existent.
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Regel 1
4
Stand November 2007
Durchgängige Verwendung von Registern mit Herstellung des
Ausgangszustands.
Zuordnung von Tasks (Aufgaben - Prozesse) zu Registerbänken.
Prof. J. Walter
Mikrocomputertechnik
5 Projekte mit Assembler gelöst
Regel 2
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
5
Hochsprache C / C++ verwenden.
Stand November 2007
Bei umfangreicher Software unbedingt
Prof. J. Walter
Regel 3
$nomod51
Standardkopf
;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:
;Programmiert:
Stand November 2007
;Datum:
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
6
;-----------------------------------------------------------------------ABFRAGE:
Prof. J. Walter
Mikrocomputertechnik
5 Projekte mit Assembler gelöst
;---------------------------------------------------------------------
Tabelle 5.3 TMOD BYTE
7
C/T#
M1/M0
0 0
0
1
1
0
1
1
1
1
C/T#
Timer
1
M1
M0
GATE
C/T#
Timer
0
M1
M0
TMOD
Funktion
Gating control
"1" durchgeschaltet, wenn INTx#-Pin auf "1" und TRx Kontrollbit gesetzt.
"0" => Timer x zählt, wenn TRx Kontrollbit gesetzt ist
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 )
8-bit timer / counter
THx ist ein 8-bit Zähler / Zeitgeber - TLx dient als 5-bit Vorteiler
16-bit timer/counter
"THx" und TLx" ergeben zusammen einen 16-bit-Zähler / Zeitgeber.
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.
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.
Timer 1. Zähler / Zeitgeber hält
Stand November 2007
Bit
Gate
GATE
Prof. J. Walter
Mikrocomputertechnik
5 Projekte mit Assembler gelöst
89H
Abb. 5.1 Blockbild von Timer 0 und 1 im 16-Bit Modus
C/T#=0
Takt
Timer overflow flag
TH0
TL0
C/T#=1
T0 /
P 3.4
interner Bus
TR0
Tim e r run control bit
INT0#
>1
&
Stand November 2007
TF0
12
Gate
8
Interrupt
Prof. J. Walter
Mikrocomputertechnik
5 Projekte mit Assembler gelöst
OSC
12
TF0
C/T#=0
Takt
Timer overflow flag
TH0
C/T#=1
T0 /
P 3.4
TR0
Tim e r run control bit
Gate
INT0#
9
Interrupt
>1
&
Reload
TL0
Stand November 2007
OSC
im Chip
Prof. J. Walter
Mikrocomputertechnik
5 Projekte mit Assembler gelöst
Abb. 5.2 Mode 2, Zähler / Zeitgeber 0,1 mit
Wiederladen des TL0 Registers
Abb. 5.3 Mode 3, Timer 1 Interrupt wird von Timer 0
mitbenutzt
Interrupt
12
C/T#=0
Takt
Timer 0
overflow flag
TL0
C/T#=1
T0 /
Timer 1
overflow flag
P 3.4
TF1
interner Bus
TR0
Tim e r run control bit
Gate
INT0#
>1
&
f
/12
osc
Takt
Control
10
Stand November 2007
TF0
Interrupt
TR1
TH0
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
OSC
Tabelle 5.4 TCON BITS Timer 0 - Timer 1 Control Bits
11
8DH
8CH
8B
8AH
89H
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.
Stand November 2007
8EH
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
88H
8FH
12
0043H
004BH
ADCI
EXTI2
0053H
EXTI3
005BH
EXTI4
0063H
EXTI5
006BH
EXTI6
0083H
0093H
SINT1
CMINT
009BH
00A3H
COMPTIMER
SETINT
00ABH
CLRINT
Erklärung
Start Address after Reset1)
External Interrupt 01)
Timer 0 Overflow Interrupt1)
External Interrupt 11)
Timer 1 Overflow Interrupt1)
Serial Channel 0 Interrupt1)
Timer 2 Overflow/
External Reload Interrupt2)-6)
A/D-Converter Interrupt3).....6)
External Interrupt 2/
Compare Event with CC43).....6)
Bei 80C515 External Interrupt only
External Interrupt 3 /
Compare Event with CRC3).....6)
External Interrupt 4 /
Compare Event with CC13).....6)
External Interrupt 5 /
Compare Event with CC23).....6)
External Interrupt 6 /
Compare Event with CC33).....6)
Serial Channel 1 Interrupt4)6)
CMx Compare Register
Interrupt6)
Compare Timer Overflow4)6)
Compare Set
Interrupt6)
Compare Clear
Interrupt6)
Stand November 2007
Tabelle 5.5
InterruptVektorAdressen
002BH
Interrupt-Name
RESET
EXTIO
TIMER 0
EXTI1
TIMER1
SINT
SINT04)6)
TIMER2
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
PC Adresse
0000H
0003H
000BH
0013H
001BH
0023H
IE0
P3.2/INT0
TCON.0
TF0
TIMER 0
Overflow
IE1
P3.3/INT1
TIMER 1
Overflow
RI
Receiver
>1
Abb. 5.4
Erzeugen von
Interrupts
SERIAL PORT
Transmitter
TI
TIMER 2
Overflow
TF2
>1
P1.5/T2EX
EF2
EXEN2
P1.4/INT2
IEX2
TCON.5
Compare 0
P1.0/INT3/CC0
IEX3
TCON.6
IEX4
P1.1/INT4/CC1
Compare 1
P1.2/INT5/CC2
IEX5
Compare 1
P1.3/INT6/CC3
C
O
N
T
R
O
L
IADC
A/D-Converter
Compare 1
13
I
N
T
E
R
R
U
P
T
Stand November 2007
TF1
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
TCON.2
IEX6
Tabelle 5.6 IEN0 Interrupt 0 Control Bits
ET2
ES
ET1
EX1
ET0
EX0
IEN0
Wird nicht für Interrupt-Kontrolle genutzt
Bit
Funktion
EX0
"0" Externer Interrupt 0 gesperrt
"1" Externer Interrupt 0 freigegeben
"0" Überlauf Timer 0 gesperrt
"1" Überlauf Timer 0 freigegeben
"0" Externer Interrupt 1 gesperrt
"1" Externer Interrupt 1 freigegeben
"0" Überlauf Timer 1 gesperrt
"1" Überlauf Timer 1 freigegeben
"0" Serieller Schnittstellen Interrupt gesperrt
"1" Serieller Schnittstellen Interrupt freigegeben
"0" Überlauf Timer 2 gesperrt
"1" Überlauf Timer 2 freigegeben
Wird nicht für Interrupt Kontrolle genutzt
"0" Kein Interrupt wird erkannt
"1" Jeder Interrupt wird entsprechend seiner Einstellung erkannt
ET0
EX1
ET1
ES
ET2
WDT
EAL
14
WDT
Stand November 2007
WDT
EAL
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
0A8H
0BEH
0BDH
0BCH
0BBH
0BAH
0B9H
0B8H
EXEN2
SWDT
EX6
EX5
EX4
EX3
EX2
EADC
Bit
Funktion
EADC
"0" A/D-Wandler Interrupt gesperrt.
"1" A/D-Wandler freigegeben.
"0" externer Interrupt 2 gesperrt.
"1" externer Interrupt 2 / Übernahme- / Vergleichs-Interrupt 4 freigegeben.
"0" externer Interrupt 3 gesperrt.
"1" externer Interrupt 3 / Übernahme- / Vergleichs-Interrupt 4 freigegeben.
"0" externer Interrupt 4 gesperrt.
"1" externer Interrupt 4 / Übernahme- / Vergleichs-Interrupt 4 freigegeben.
"0" externer Interrupt 5 gesperrt.
"1" externer Interrupt 5 / Übernahme- / Vergleichs-Interrupt 4 freigegeben.
"0" externer Interrupt 6 gesperrt.
"1" externer Interrupt 6 / Übernahme- / Vergleichs-Interrupt 4 freigegeben.
Wird nicht für Interrupt Kontrolle genutzt
"0" Externer Reload Interrupt Timer 2 wird gesperrt.
"1" Externer Reload Interrupt Timer 2 wird erkannt.
EX2
EX3
EX4
EX5
EX6
SWDT
EXEN2
15
IEN1
Stand November 2007
0A8H
0BFH
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Tabelle 5.7 Interrupt Control Bits
8EH
8DH
8CH
8B
8AH
89H
88H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
Bit
IT0
IE0
IT1
IE1
TR0
TF0
TR1
TF1
16
Funktion
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
"1" Falls externer Interrupt durch Hardware erkannt wird.
"0" automatisch durch Interruptausführung
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
"1" Falls externer Interrupt durch Hardware erkannt wird.
"0" automatisch durch Interruptausführung
Timer 0 Run Control - Wird nicht für Interrupt Kontrolle genutzt.
Timer 0 overflow flag.
"1" durch Hardware, wenn Zähler / Zeitgeber Überlauf.
"0" automatisch durch Interruptausführung
Timer 1 Run Control - Wird nicht für Interrupt Kontrolle genutzt
Timer 1 overflow flag.
"1" durch Hardware, wenn Zähler / Zeitgeber Überlauf.
"0" automatisch durch Interruptausführung
TCON
Stand November 2007
88H
8FH
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Tabelle 5.8 TCON Interrupt Control Bits
17
Prof. J. Walter
Stand November 2007
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.4 Zu viele Interrupts
IP1.0
IP0.0
IEN 0.7 IEN 0.0
IE0
I
Level 3
N
Level 2
T
Level 1
E
R
Level 0
R
U
R
E
Abb. 5.6
Prioritäten /
Anforderungen von
Interrupts
Q
U
E
S
T
IEN 0.1
TF0
IP 1.1
IP 0.1
IEN 1.1
IEX2
P
R
IEN 0.2
IE1
IP 1.2
IP 0.2
IEN 1.2
O
IEX3
R
I
IEN 0.3
TF1
IP 1.3
IP 03
IEN 1.3
C
IEN 0.4
>1
TI
IP 1.4
IP 0.4
IEN 1.4
R
IEN 0.5
18
EXF2
IEX6
>1
IP 1.5
IEN 1.5
O
N
T
IEX5
TF2
T
Y
IEX4
RI
I
IP 0.5
O
L
Vector
Locations
Stand November 2007
IEN 1.0
IADC
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
P
T
19
-
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
Stand November 2007
0A9H
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Tabelle 5.9 IP0 Interrupt Priority Bits
Programmbeschreibung
Initialisierung
TIMER_0
Welche Taste wurde betätigt ?
ja
Taster 1
TR0 aus
Port 3.2
löschen
Licht ein
Taster 2
TR0 aus
Port 3.2
setzen
Licht aus
Register 2 = 0 ?
Taster 3
Blinken
TR0 an
TIMER_0
P 3.2 Komplement
ret
20
Stand November 2007
Assembler Anweisungen
nein
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.7 Struktogramm für Blink-Programm
21
Prof. J. Walter
Stand November 2007
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.8 Die Schaltfläche „Zauberstab“ in der Keil
Entwicklungsumgebung
22
Prof. J. Walter
Stand November 2007
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.9 Die Einstellungen für den Simulator
23
Leuchte 2
AUS
AUS
EIN
EIN
Leuchte 3
AUS
EIN
AUS
EIN
Stand November 2007
Spannung
0V U 2 V
2V< U 3 V
3V< U 4 V
4V< U 5 V
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Tabelle 5.11 Codierung
Abb. 5.11 Blockbild A/D-Wandler im 80535
P6 (0DBH)
ADCON (0D8H) 7 6 5 4 3 2 1 0
ADDAT (0D9H)
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
Multiplexer
Sample
&
Hold
A/D-Wandler
V AREF
V AGND
7
6
5
4
3
2
1
0
Internal Reference Voltages
DAPR (0DAH) 7 6 5 4 3 2 1 0
24
Programmierung
V intAREF
Programmierung
V intAGND
Stand November 2007
Port 6
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
ACMOS
interner Bus
1 K
VCC +5V
VGA Pin 4
VAREF
VGA Pin 26
AN0
VGA Pin 27
VAGND
VGA Pin 31
VGA Pin 21
GND 0V
25
Stand November 2007
Anschluß EURO_535
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.12 Anschluss eines Potentiometers an
EURO_535
26
0
1
U in V
0
0,0196
……
101
102
103
1,9803
2
2,0196
…..
254
255
4,9804
5
Stand November 2007
Zahl
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Tabelle 5.12 Wert – Spannung
VCC
J3
1
2
3
4
5
6
7
8
IC1
DB0
V OUT
DB1
V OUT SENSE
DB2
V OUT SELECT
DB3
GND
DB4
GND
DB5
+VCC
DB6
CS
DB7
CE
AD558
R11
16
15
14
13
12
11
10
9
B1
1
1K
R9
ANALOG OUT1
B13
JUMPER
DA1
VCC
1
1K lin
GND
BNC1
R2
P4.1
P5.0
P5.1
P5.2
P5.3
P5.4
P5.5
P5.6
P5.7
1
2
3
4
5
6
7
8
IC2
DB0
V OUT
DB1
V OUT SENSE
DB2
V OUT SELECT
DB3
GND
DB4
GND
DB5
+VCC
DB6
CS
DB7
CE
AD558
R10
16
15
14
13
12
11
10
9
B2
1
1K
100
D2
ZD 5V6
PIN1
DA0
B14
VCC
1
GND
1
BNC2
R3
AN1
BNC
2
P4.0
Abb. 5.13
Schaltbild
ADDA535Karte
BNC
2
ANALOG OUT2
100
D3
ZD 5V6
PIN3
1
+5V
VCC
VSS
X4
VCC
R1
AN2
PIN5
2
P4.0
P5.0
P5.2
P5.4
P5.6
VCC
AN0
AN2
AN4
AN6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
VG1
A1
C1
A2
C2
A3
C3
A4
C4
A5
C5
A6
C6
A7
C7
A8
C8
A9
C9
A10
C10
A11
C11
A12
C12
A13
C13
A14
C14
A15
C15
A16
C16
A17
C17
A18
C18
A19
C19
A20
C20
A21
C21
A22
C22
A23
C23
A24
C24
A25
C25
A26
C26
A27
C27
A28
C28
A29
C29
A30
C30
A31
C31
A32
C32
VG_535Z
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
100
D1
ZD 5V6
1
R4
AN3
VDD
X3
PIN6
2
P4.1
P5.1
P5.3
P5.5
P5.7
100
D4
ZD 5V6
1
R5
AN4
PIN7
2
100
D5
ZD 5V6
R6
AD/DA Zusatzkarte f uer 80535-Board
AN5
PIN8
8 Analogeingaenge
VCC
2
100
D6
ZD 5V6
2 Analogausgaenge
1
R7
Fachhochschule Karlsruhe, FB F
AN6
PIN9
2
100
D7
ZD 5V6
1
R8
PIN10
2
1
100
D8
ZD 5V6
PIN5
PIN6
PIN7
PIN8
PIN9
PIN10
1
2
3
4
5
6
7
8
9
10
PL1
PIN1
PIN2
PIN3
PIN4
PIN5
PIN6
PIN7
PIN8
PIN9
PIN10
PINLEISTE_10
Joachim Juengst, Januar 1994
AN1
AN3
AN5
AN7
PIN1
PIN3
1
AN7
27
Stand November 2007
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
AN0
Prof. J. Walter
P5.0
P5.1
P5.2
P5.3
P5.4
P5.5
P5.6
P5.7
Tabelle 5.13 ADCON REGISTER
0DCH
0DBH
0DAH
0D9H
0D8H
CLK
BSY
ADM
MX2
MX1
MX0
Bit
MX2 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
Funktion
ADM
"1" Kontinuierliche Wandlung.
"0" Stop nach jeder Wandlung
"1" Busy Flag / Wandlung findet statt.
"0" Wandlung beendet
frei
CLK - Wird nicht für A/D-Wandler verwendet
Baudrate - Wird nicht für A/D-Wandler verwendet
BSY
28
-
CLK
BD
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
ADCON
Stand November 2007
0D8H BD
0DEH 0DDH
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
0DFH
29
7
6
DAPR .3 - .0
DAPR .4 - .7
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
3
VintAGND
0. - 3. Bit
0,0
0,3125
0,625
0,9375
1,25
1,5625
1,875
2,1875
2,5
2,8125
3,125
3,4375
3,75
-
2
VintAREF
4. - 7. Bit
5,0
1,25
1,5625
1,875
2,1875
2,5
2,8125
3,125
3,4375
3,75
4,0625
4,375
4,68754
DAPR
.0 - .3
1
0
DAPR
Stand November 2007
0DAH
DAPR
.4 - .7
5
4
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Tabelle 5.14 Erhöhung der Auflösung durch
Einschränkung des Messbereiches
30
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Prof. J. Walter
Stand November 2007
Abb. 5.14
Anzeige des
ADDAT-Inhalts
im DebugProgramm
0
1
0
0
0
0
0
0
0
Sender
0
0
1
0
0
Empfänger
0
1
1
1
0
1
0
0
31
0
0
1
1
1
zeitlich nacheinander
1 0
Stop Bit
1
1
1
0
1 0
0
0
Start Bit
0
1
1
1
0
1
0
0
Stand November 2007
0
1
1
1
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.15 Umsetzung von parallel in seriell
32
Prof. J. Walter
Stand November 2007
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.16 Einstellungen der seriellen Schnittstelle
33
Prof. J. Walter
Stand November 2007
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.17. Einstellungen der seriellen Schnittstelle am
„PC“
34
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Prof. J. Walter
Stand November 2007
Abb. 5.18
Einstellungen der
seriellen
Schnittstelle
80535
Tabelle 5.15 SCON Bits
REN
TB8
RB8
TI
RI
35
09DH 09CH 09BH 09AH 099H 098H
SM2 REN TB8 RB8 TI
RI
SCON
Symbol
SM1
0
1
0
1
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
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.
Receiver enable.
"1" Gibt den seriellen Empfang durch Software frei.
"0" sperrt den Empfang.
Übertragungsbit 8. Das neunte Bit für Mode 2 und 3
Wird durch Software gesetzt und rückgesetzt.
Empfangsbit 8. Neunte Bit für Empfang in Mode 2 und 3
Ü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.
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.
Stand November 2007
Bit
SM0
0
0
1
1
SM2
09EH
SM1
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
98H
09FH
SM0
36
99H
Stand November 2007
SBUF
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
SBUF Empfangs- und Senderegister für serielle
Schnittstelle
Abb. 5.19 Erzeugen der Baudrate
37
ADCON.7 (BD)
Stand November 2007
Overflow
fosc/2
SM0
SM1
SMOD
*1/39
*1/2
Baud Rate
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Timer 1
38
SMOD
Bit
SMOD
PCON
Funktion
"1" Baudrate wird in Mode 1,2,3
verdoppelt
Stand November 2007
99H
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Baudraten im PCON Power Control Register
Tabelle 5.16 ADCON REGISTER
39
0DDH
CLK
-
0DCH
0DBH
0DAH
0D9H
0D8H
Bit
Funktion
BD
Baudrate - Wird nicht für A/D-Wandler verwendet
ADCON
CLK "1" Der Takt wird nach außen an Pin P1.6/CLKOUT
weitergeleitet
Stand November 2007
0D8H BD
0DEH
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
0DFH
40
fosc(MHz) SMOD
TIMER 1
C/(/T) Mode
Reload Value
62,5 Kbaud
19,5 Kbaud
9,6 Kbaud
4,8 Kbaud
2,4 Kbaud
1,2 Kbaud
110 Baud
110 Baud
12,0
11,059
11,059
11,059
11,059
11,059
6,0
12,0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
2
2
2
2
2
2
2
1
0FFH
0FDH
0FDH
0FAH
0F4H
0E8H
72H
0FEEBH
Stand November 2007
Baud Rate
Mode 1,3
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Tabelle 5.17 Allgemein verwendete Baudraten
41
Signalgenerator
A/D-Wandler
Zeitgeber
Serielle Schnittstelle
Ueff
t
Stand November 2007
µ-Controller
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.20 Blockschaltbild für Effektivwertmesser
Stand November 2007
Sinus mit 100 Hz; abgetastet mit 1000 Hz
3
Prof. J. Walter
2,5
2
Ue
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Bild 5.21. Abgetasteter Sinus
1,5
1
0,5
0
0
5
10
15
20
25
t in ms
42
30
35
40
45
Timer 2
16 Bit
Tim er 2 Interrupt
Interrupts
16 Bit
Komparator
16 Bit
Komparator
16 Bit
Komparator
P1.0/CC0
E/ASteuerung
8
CCH3 CCL3 CCH2 CCL2
CCH1 CCL1
Interner Bus 8 Bit
43
16 Bit
Komparator
CRCH CRCL
P1.1/CC1
P1.2/CC2
P1.3/CC3
Stand November 2007
P1.5/T2EX
Fosc/12(24)
Gegattertes Fosc/12(24)
Fallende Flanke an P1.7/T2
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.22 Blockschaltbild Zeitgeber 2
44
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
Stand November 2007
Abkürzung
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Tabelle 5.18 Verwendetet Abkürzungen
Tabelle 5.19 Timer 2 Control-Bits
Bit
T2I1 T2I0
0
0
0
1
1
0
1
1
T2R1 T2R0
0
X
1
0
1
1
T2CM
I2FR
I3FR
45
T2PS
I2FR
T2R1 T2R0 T2CM T2I1
T2I0
T2CON
Funktion
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.
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
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.
Dieses Bit wird nicht zur Kontrolle des Zeitgebers 2 verwendet
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.
Prescaler select bit / Vorteiler Bit.
"0" für die Zählerfunktion 1/12 der Oszillatorfrequenz
Stand November 2007
0C8H T2PS I3FR
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
0CFH 0CEH 0CDH 0CCH 0CBH 0CAH 0C9H 0C8H
46
Bit Erklärung
Interrupt Timer 2
Enable Interrupt A/D-Converter
Timer Flag 2
Interrupt A/D-Converter
Stand November 2007
Aktion
Bit
Interruptfreigabe Timer 2
ET2
Interruptfreigabe A/D-Wandler
EADC
Interruptbestätigung Timer 2
TF2
Interruptbestätigung A/D-Wandler IADC
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Tabelle 5.20 Lösung der Aufgabe mit Interrupts
Programmbeschreibung
Initialisierung Interrupt A/D Timer2
Interrupt-Unterprogramm
Wert von ADDAT in ext. Speicher
Sind 40 Werte eingelesen ?
Timer 2 sperren
Leuchte 2 ausschalten
47
Stand November 2007
Assembler Anweisungen
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.23 Struktogramm für AD_40T2
Programmbeschreibung
Timer 2 Initialisieren
Warten auf TF2
Warten auf BSY
Wert von ADDAT in ext. Speicher
Sind 40 Werte eingelesen ?
Neue Wandlung / Ende ?
48
Stand November 2007
Assembler-Anweisungen
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.24 Struktogramm für AD_40T2O A/D-Wandlung
ohne Interrupts
Abb. 5.25 Abgetastete Sinus mit Offset
Stand November 2007
Sinus - Offset
Sinus-Offset quadriert
2,5
Prof. J. Walter
2
1,5
1
0,5
0
0
0,005
0,01
0,015
0,02
-0,5
-1
Zeit T / [s]
49
abgetasteter Sinus mit Offset
3
Spannung u / [V]
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abgetasteter Sinus mit Offset
0,025
0,03
0,035
0,04
50
80535
Signalgenerator
2000H
2001H
2002H
1. Wert
2. Wert
2027H
40. Wert
A/D
Stand November 2007
Speicher
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.26 Speicherinhalt nach A/D-Wandlung von 40
Werten, AD_40
51
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
80535
30H
interner
Speicher
57H
2027H
2028H
2029H
40. Wert
1. Wert LB
1. Wert HB
2077H
40. Wert HB
CPU
Quadrieren
Prof. J. Walter
externer Speicher
1. Wert
2000H
2. Wert
2001H
2002H
Stand November 2007
Abb. 5.27 Speicherinhalt nach Quadrieren
Abb. 5.28 Speicherinhalt nach Addition
52
2000H
2001H
2002H
1. Wert
2. Wert
2027H
2028H
2029H
40. Wert
1. Wert LB
1. Wert HB
2077H
2078H
2079H
207AH
207BH
40. Wert HB
1. Wert Addition
2. Wert Addition
3. Wert Addition
4. Wert Addition
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
80535
Stand November 2007
externer Speicher
CPU
Addition
LB+0
LB+1
LB+2
LB+3
53
Stand November 2007
externer Speicher
2077H
2078H
2079H
207AH
207BH
0F
A0
58
02
bel.
LB+0
LB+1
LB+2
LB+3
Prof. J. Walter
5 Projekte mit Assembler gelöst
Mikrocomputertechnik
Abb. 5.29 Speicherinhalt nach Addition
Herunterladen