EINGEBETTETE SYSTEME
description
Transcript of EINGEBETTETE SYSTEME
1M.Milushev
EINGEBETTETE SYSTEME
Beispielmit der MC68HC11Mikrocontrollern
2M.Milushev
Internes Blokschaltbild des Microkontrollers MC68HC11
PROZESSORKERN
Erweiterungsbus Adressen (8-15) Daten/Adressen (0-7)
EEPROM(Tabelle)
ROM oder EPROM(Tabelle)
RAM(Tabelle)
ParalleleSchnittstelle A
ParalleleSchnittstelle B
ParalleleSchnittstelle C
ParalleleSchnittstelle D
ParalleleSchnittstelle E
Synchrone serielle
SchnittstelleSPI
Asynchrone serielleSchnittstelle SCI
Analog/DigitalWandler
Zähler/Zeitgeber
Capture/Compare
Betriebasrt-Steuerung Takt
Unterbrechungs-Steuerung
Analoge EParallele E
Sync.&Async.serielle E/A Parallele E/A
Erweiterungsbus Parallele E/A
Erweiterungsbus Parallele A
Capture/Compare Parallele E/A
Wat
chd
og
Pu
ls.A
kku
mu
lato
r
MODA MODB Quarz IRQ XIRQ Reset
Single Chip Mode, Expanded Mode, Test Mode und Bootsrap Mode
3M.Milushev
MC68HC11- ein einfacher Mikrocontroller
Typ RAM ROM EPROM EEPROM
MC68HC11E0 512 Bytes - - 512 Bytes
MC68HC11E1 512 Bytes - - 512 Bytes
MC68HC11E9 512 Bytes 12 KBytes - 512 Bytes
MC68HC711E9 512 Bytes - 12 KBytes 512 Bytes
MC68HC11E20 768 Bytes 12 KBytes - 512 Bytes
MC68HC711E20 768 Bytes - 20 KBytes 512 Bytes
MC68HC811E2 256 Bytes - - 2 KBytes
4M.Milushev
MC68HC11 Mikrocontrollern
0000
1000
RAM256 – 768 Bytes
Ein-/AusgabeZähler/Zeitgeber
64 Bytes
EEPROM512 -2048 Bytes
EPROM/ROM12 – 20 KBytes
103F
8600
FFFF
A B
D
IX
IY
SP
PC
PSW
16 Bit Akkumulator D oder
8 Bit Akkumulatoren A und B
16 Bit Indexregister IX
16 Bit Indexregister IY
16 Bit Kellerzeiger SP
16 Bit Programmzähler PC
8 Bit Prozessorstatuswort
Programmiermodel des MC68HC11
C - Carry, V - Overflow, Z - Zero, N - Negative,H - Half Carry, S - Stop Disable,X,I – Interrupt Masken
5M.Milushev
Default Ports
0 PORTA 30
1 reserviert 5B
2 PIOC 03
3 PORTC 10
4 PORTB F7
5 PORTCL 00
6 reserviert 00
7 DDRC FF
8 PORTD 01
9 DDRD 3E
10 PORTE 00
11 CFORC 00
12 DC1M 00
13 DC1D 00
14 TCMT BE
15 TCNT 96
16 TIC1 FF
17 TICI FF
18 TIC2 FF
19 TIC2 FF
20 TIC3 FF
21TIC3 FF
22TOC1 FF
23 TOC1 FF
24 TOC2 DD
25 TOC2 00
26 TOC3 FF
27 TOC3 FF
28 TOC4 FF
29 TOC4 FF
30 TOC5 FF
31 TOC5 FF
32 TCTL1 3C
33 TCTL2 00
34 TMSK1 40
35 TTFLG1 98
36 TMSK2 00
37 TFLG2 C0
38 PACTL 00
39 PACMT 00
40 SPCR 00
41 SPSR 00
42 SPDR 00
43 BAUD 30
44 SCCR1 00
45 SCCR2 0C
46 SCSR 90
47 SCDE 00
48 ADCTL 07
49 ADR1 00
50 ADR2 00
51 ADR3 00
52 ADR4 00
53 reserviert 5B
54 reserviert 5B
55 reserviert 5B
56 reserviert 5B
57 OPTION 90
58 COPRST 5B
59 PPROG 00
60 HPRIO D5
61 IMIT 00
62 TEST1 08
63 COMFIG 0D
6M.Milushev
Die Register und ihre gebräuchlichsten Anwendungen
1007h DDRC
1003h PORTC
PC0PC1PC2PC3PC4PC5PC6PC7
Interner Datenbus 8 - Bit
1004h PORTB
PB0PB1PB2PB3PB4PB5PB6PB7
Interner Datenbus 8 - Bit
PORTB - Senzen der Ausgänge von Port BPORTC - I/O-Portzugriff auf Port CDDRC - Data-Direction-Register für Port CPIOC - Parallel I/O-Control-Register
Bit 5 : 0 = Die Port C Ausgänge sind CMOS-TTL, 1 = Die Port C Ausgänge sind Open-Drain.
7M.Milushev
MC68HC11- ein einfacher Mikrocontroller
Die Befehle des 68HC11CLR – Lösche Akku oder SpeicherstelleLDA – Lade AkkuSTA – Akku speichern
Die Steueranweisungen des AssemblersEQU – dient dazu, einem Label einem Wert zuzuweisenORG – diese Anweisung gibt die Startadresse des zu erzeugenden Codes an
a
b
c
e
f
g
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PB0
d
f
d
a
b
ce
g
f
8M.Milushev
MC68HC11- ein einfacher Mikrocontroller
*******************************Kostante und Variable********************* PIOC EQU H’1002’ PORTC EQU H’1003’ PORTB EQU H’1004’ DDRC EQU H’1007’ Quelle EQU H’0100’ *********************************************************************
Anwenderprogramm********************************************************************* ORG H’0000’*********************************************************************
Programmstart - Initialisierung********************************************************************* Start CLR PIOC CLR DDRC
CLR PORTB CLR PORTC LDA A H’20’ ;00100000
STA A PIOC LDA A H’7F’ ;01111111 STA A DDRC ;PC0-PC6-Ausg.
LDA A H’FF’STA A PORTB
9M.Milushev
MC68HC11- ein einfacher Mikrocontroller
********************************************************************* Anwenderprogramm
*********************************************************************main JSR Ziffer
STA A PORTCLDA A H’FE’ ;11111110
STA A PORTB ;Leuchtdioden eingoto mainEND
10M.Milushev
MC68HC11- ein einfacher Mikrocontroller
Konvertierungsprogramm*********************************************************************Ziffer LDX TABL ;(M) IR X und (M+1) IR X
LDA A Quelle ;(M) A SEG1 TST A ;A = 0 ? BEQ SEG 2 ;Sprung nach SEG 2, wenn Z = 1
INX ;IR X +1 IR X DEC A ;A - 1 A BRA SEG1 ;Sprung nach SEG 1
SEG2 LDA A X ;Lade die Speihehrstelle, die IR X zeigtRTS
Sieben-Segment-Code Tabelle *******************************************************************************************************************TABL FCB H’3F’ ;00111111 0
FCB H’06’ ;00000110 1FCB H’5B’ ;01011011 2FCB H’4F’ ;01001111 3FCB H’66’ ;01100110 4FCB H’6D’ ;01101101 5FCB H’7D’ ;01111101 6FCB H’07’ ;00000111 7FCB H’7F’ ;01111111 8FCB H’6F’ ;01101111 9
LDX – Lade Index-Register X mit einem 16-Bit- Wert (Add)TST A – Akku A auf null oder negativ testenBEQ – Wenn das Bit ZERO = 1 ( Das Ergebnis Null ist) relativer SprungINX – Inkrementiere Index-Register XDEC A – Dekrementirre Akku ABRA – Immer verzweigenRTS – Rückkehr aus Unterprogramm JSR – Springe in das Unterprogramm
11M.Milushev
ENDE