1
Mikrocomputertechnik
Herzlich WillkommenJü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.
3
Regel 1
Nur dokumentierte Hardware und Software ist existent.
4
Regel 2
Durchgängige Verwendung von Registern mit Herstellung des Ausgangszustands.Zuordnung von Tasks (Aufgaben - Prozesse) zu Registerbänken.
5
Regel 3
Bei umfangreicher Software unbedingt
Hochsprache C / C++ verwenden.
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:
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
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
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
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
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.
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)
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
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
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.
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
17
Abb. 5.4 Zu viele Interrupts
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
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
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
21
Abb. 5.8 Die Schaltfläche „Zauberstab“ in der Keil Entwicklungsumgebung
22
Abb. 5.9 Die Einstellungen für den Simulator
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
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
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
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
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
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
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
30
Abb. 5.14 Anzeige des
ADDAT-Inhalts im Debug-Programm
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
32
Abb. 5.16 Einstellungen der seriellen Schnittstelle
33
Abb. 5.17. Einstellungen der seriellen Schnittstelle am „PC“
34
Abb. 5.18 Einstellungen der seriellen Schnittstelle 80535
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.
36
SBUF Empfangs- und Senderegister für serielle Schnittstelle
99H SBUF
37
Abb. 5.19 Erzeugen der Baudrate
fosc/2
ADCON.7 (BD)
Timer 1
Overflow
SM0
SM1
*1/39
SMOD
*1/2
Baud Rate
38
Baudraten im PCON Power Control Register
99H SMOD PCON
Bit Funktion
SMOD
"1" Baudrate wird in Mode 1,2,3 verdoppelt
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
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
41
Abb. 5.20 Blockschaltbild für Effektivwertmesser
Signalgeneratorµ-Controller
t
Ueff
A/D-Wandler
Zeitgeber
Serielle Schnittstelle
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
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
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
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.
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
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
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
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
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
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
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
53
Abb. 5.29 Speicherinhalt nach Addition
externer Speicher
2077H 0F2078H A02079H207AH207BH
5802bel.
LB+0LB+1LB+2LB+3