Mikrocomputertechnik Prof. Jürgen Walter Herzlich Willkommen!!

Preview:

Citation preview

 

Mikrocomputertechnik

Prof. Jürgen Walter

Herzlich Willkommen!!

Zusammenfassung 9.10.2014 Modulhandbuch MC

Voraussetzungen Elektrotechnik, Digitaltechnik??,

Physik, Mathematik

Multikopter Mit dem Multikopter durch die

Aula

2

Zusammenfassung

Einführung in Keil Bitte neue Version installieren

8051-Derivat 8051-Kern Core Alle 8051 Befehle werden

ausgeführt Verschiedene Peripherie

3

VORLESUNG 10.10.2014Mikrocomputertechnik

4

Dropbox

www.Hit-karlsruhe.de

www.hit-karlsruhe.de/VC_2

waju0001@web.de

5

Installation 8051-Hilfsprogr. Dateien auf dem Rechner für

8051 Entwicklungsumgebung

PW: ExtraHertz

Configuration Wizard - Überblick www.silabs.com C8051F340

6

8051 Einführung - Hardware REG51.inc beschreibt die

Hardware für die Software

8051-Vorlagen kopieren!Vorlagen für D:/8051/VorlagenBitte zuerst entpacken

7

Assembler

Sprache

Assembler – Programm zum übersetzen des editierten Programmes

$NOMOD51 Befehl für den Assembler

8

Programmieren!!!

PDL Program Design Language

WAS? Soll programmiert werden Zuerst den Kommentar schreiben Erst danach: wie?

Bitte: Software an den Menschen anpassen – nicht umgekehrt ;-)

9

EIN_AUS

Programmieren von EIN_AUS im Simulator

Ablauf im Debugger

10

8051-Quickies

Bis Port-Quickie

Kleine Schwierigkeiten FET nicht bekannt Digitaltechnik nicht bekannt

11

HEXADEZIMAL, REGISTER, 16.10.2014

12

ERKLÄRUNG EIN_AUS_217.10.2014

13

SPEICHERBEREICHEVorlesung 17.10

14

Adressbereiche

Programmspeicher

intern/EA=1 und

Adresse <1000H

extern intern extern

Datenspeicher

/RD-/WR-Signal aktiv

MOVX A,@DPTR

obere 128 Bytes untere 128 Bytes

MOV A,RO

MOV A,PSWMOV A,@RO

SFR

MOV A,@RO

/PSEN aktiv

Abb. 3.21 Adressbereiche 8051 mit den Befehlen zum Ansprechen

Speicher Adressen Größen Interner Speicher

Externer Speicher

16

Register beschreiben

Name: RegBesch

Beschreiben sie die Register R0 bis R7 mit 0 – 7.

17

Indirekte Adressierung

Bsp: mov @R0,A heißt: schiebe den Inhalt aus dem Akkumulator in die Adresse, welche in R0 steht.

18

HA

Name: HA_01

Aufgabenstellung: Beschreiben Sie den Adressbereich von 30h bis 7Fh mit den Zahlen von 0 bis 80 (dezimal)

19

20

Dropbox

SPEICHERBEREICHE24.10.2014

21

Interner Speicher

Der menschliche Körper

Großhirn

Kleinhirn

Rückenmark

22

8051 Speicherbereiche

Interne Speicher Adresse: 00h – FFH Indirekt adressierbaren

Speicherbereich 00H-(7FH) FFH

Direkt adressierbarer Speicherbereich 00H – 7FH die gleichen Speicherzellen

wie indirekt 80H-FFH SFR Special Function

Register23

Hausaufgabe 3

T1 beschreiben Sie den indirekt adressierbaren Speicherbereich ab 30h bis FFH mit Zahlen ab 0 jeweils um 1 erhöht.

T2 Löschen Sie den Speicherbereich

24

Externer Speicher

Mov DPTR,#0000h

Mov A,#05Ah

Movx @DPTR,A

25

Externen Speicher beschreiben Schreiben Sie 256 Zahlen in

den externen Speicher ab X:0x0000h. Beginnen Sie mit 0 und inkrementieren Sie jeweils die Zahl um 1.

26

LABOR30.10.2014

27

Labor

20 weitere VC_2 werden angeschafft

40 Servomotoren

Entwickeln einer Zusatzplatine Kröte: nur ein Board wird bestückt PEP wird geklärt

28

Labor

Kleine Einführung / Vorbereitung zum Entwickeln eines PCB

Printed Circuit Board

29

ZUGRIFF AUF SPEICHERBEREICHE

31.10.2014

30

Wiederholung

EXTSPDZ – Zugriff auf externen Speicher

Alle Variablen – Register initialisieren – TIPP am Anfang jeder Schleife

TIPP: ABFRAGE jnb – Taster

Initialisierung der Ports „1“

31

Speicherbereiche - Befehle Interner Speicherbereich von

00h bis FFh

Registerbänke: 4 Stück: Registerbank 0 von 00h bis 07h Registerbank 1 von 08h bis 0Fh Registerbank 2 von 10h bis 17h Registerbank 3 von 18h bis 1Fh

32

Bitadressierbarer Bereich

Bitadressierbarer Bereich von 20h bis 2Fh

Adressierung eines einzelnen Bits Von 20.0h bis 2F.7h

33

Architektur

Harvard – Architektur Programmspeicher +

Datenspeicher

Von – Neumann – Architektur Programme und Daten sind wild

gemischt

34

Der Interrupt

Hardware – Interrupt

DER TIMERMikrocomputertechnik

36

Aufteilung Empfehlung

37

Aufteilung

38

Was ist ein TIMER/Counter

Ein Zeitgeber ;-) – Uhr Der Takt kommt regelmäßig

Ein Zähler ;-) – Schrauben zählen Der Takt kommt nicht regelmäßig

39

INSTALLATION: SILABS13.11.2014

40

Silabs – Keil Vollversion

Vollständige Installation mit allen Treibern.

Vollversion von Keil!

41

LABORÜBUNG20.11.2014

42

Laborübungen

Sie führen die Laborübung jeweils durch und ihr linker Nachbar / Vordermann auf der rechten Seite überprüft die Ergebnisse mit einer Stoppuhr und bestätigt die Ergebnisse.

43

Bestätigung LABOR TIMER

BLIN_INT_1s

BLIN_INT_5s

BLIN_INT_50s

Programmiert von:___________________

Überprüft durch:_____________________

44

BLIN_INT

f=1/T

f=1/(2*n*0,065536s)

n=1/(2*f*0,065536s)

Erstellen Sie mit Excel die Tabelle:f Eingabefeld n Ausgabefeld

45

BLIN_INT_1s

Erstellen Sie das Programm mit der Blink-Frequenz 1s und lassen Sie den gesamten Port 3 blinken.

Ihr Nachbar überprüft die Blinkfrequenz mit einer Stoppuhr über 20 Perioden

46

BLIN_INT_5s

Erstellen Sie das Programm mit der Periodendauer von 5s

47

BLIN_INT50s

Erstellen Sie das Programm mit der Periodendauer von 50sTipp: Zusätzliches Zählregister R3 mit einer bestimmten Zahl laden

48

TIMER, DATENBUCH 8051F34X

Vorlesung Mikrocomputertechnik

49

Silabs Datenbuch

Blockschaltbild

TIMER Blockschaltbild TMOD, TCON

Interrupt IE=IEN0

50

LABORÜBUNG INTERRUPT27.11.2014

51

Laborübungen

Sie führen die Laborübung im Simulator durch und ihr linker Nachbar / Vordermann auf der rechten Seite überprüft und bestätigt die Ergebnisse.

52

Interrupt Priority

Über das IP-Register 0xB8 können Sie die Priorität von Timer 0 Interrupt höher setzen, damit /T0 Interrupt den /INT0-Interrupt unterbrechen kann.

Als Unterlagen können Sie das 8051-Buch Springer oder das Datenbuch 8051F340 nutzen

53

Bestät.: LABOR INTERRUPT /INT0_1

INT0_10MAL

programmiert von:__________________

Überprüft durch:_____________________

54

/INT0_1

MIT T1 lösen Sie Interrupt 0 aus. In der ISR_I0 schalten Sie L1 an

Mit T2 lösen Sie Interrupt 1 aus. In der ISR_I1 schalten Sie L1 aus

55

INT0_10MAL

Mit T1 lösen Sie /Interrupt 0 aus. Danach soll L1 10 Mal blinken - mit Periodendauer 1s - und über TR0 gestoppt werden.

Danach kann das Programm neu gestartet werden.

Ihr Nachbar überprüft die Aufgabe

56

LABOR-ÜBUNG SCHEIBENWISCHER

18.12.2014

57

LABOR-ÜBUNG 3 PWM-PROGRAMME

08.01.2015

58

Organisation

Aufbau der Vorlesung

Noch 4 x Labor

Noch 4 x Vorlesung

Vorbereitung Prüfung Alle behandelten Programme

verstehen Kombination / Änderung der

Programme59

Der rote Faden-Quickie

Architektur 8051

Architektur F8051F340

60

Excel - Servoberechnungen Umrechnung ##° in HEX-Werte

von Servomotor

Oszillator Einstellungen

61

Programme - Hausaufgabe Führen und verstehen Sie die

Programme mit ihrem SERVO-MOTOR aus. PWM-SERVO_LR L_25_50_75 DREI_STELLUNGEN_45_90_135

T3Start45° Pause ca. 1s90° Pause ca. 1s135° Pause ca. 1s und wiederholen

62

ADC9.1.2015

63

Imhalt

A/D-Wandler

A/D-Wandlung an Port 1.1 mit 3 Bit codiert.

Projekte teilweise – aber ohne Web!

64

Parallel: Projekte

Besprechen -

65

SERVO - BASTELSTUNDELabor

66

Inhalt

Winkelmesser mit Servo

Programmierung STELLUNG_1_2-HS-53 - Quickie

67

TIMER 2,3Vorlesung 16.1.2015

68

Inhalt

Architektur TIMER 2,3

Programm: Genau alle 40ms abtasten

69

PROJEKTELabor 22.1.2015

70

Projekt: Kriterien Programmablaufpan:

Blockschaltbild:

Portbelegungsplan:

Schaltplan:

Layout:

Quellcode:

Bedienungsanleitung:

Verbesserungen und Weiterentwicklungen:

Linkliste:

71

WEB-SEITEN-FEHLER!!

Keine Links in eigene Seite über Frames einbinden!! Wird strafrechtlich verfolgt / abgemahnt

72

Abb. 4.5 Symbole für Programm-Ablaufpläne / Struktogramme

Struktur-

element

Klassische

Darstellung Struktogramme

<Eingangsgröße>

<Ausgangsgröße>

Schnittstelle

Sequenz

Verzweigung

Wiederholung

Anfang

Ende

<Block 1>

<Block 2>

<Block 2><Block 1>

<Bedingung>?ja nein<Bedingung>?

<Bedingung>?

ja nein

<Block 2>

<Block 3>

b1b2

bn<Block 1>

<Block n><Block 2>

<Block 1>

<Block 1>

für <Bedingung>

<Block>

<Block>

Schleife für <Bedingung>

<Bedingung>?

<Block 1>

<Bedingung>?

ja nein

<Block 2>

<Bedingung>?

<Block>

<Block>

janein

<Block 1>

ja nein<Bedingung>?

<Bedingung>?

<Block 2>

<Block 2>

Sprung ausSchleife

Schleife

<Block 1>

<Block 2>

Leiterplatten-Layout

Jede Gruppe muss ein Layout erstellen!!!

Platine wird für ein tolles Projekt gefertigt

Projekte 1: 21.1.2015

75

Name STAND BEM.LODRIMA ??

Multifunktionswecker Team 1 ??

Velolights-Untergruppe 3 ??

Chipsmaschine ??

Ultraschall-gesteuerte LED-LampeGruppe 1 +, Gruppe 2 -, Gruppe 3-, Gruppe 4-

Standar(d)

LODRIMA-Ausschankeinheit+

RC-CAR

Projekte 2: 21.1.2015

76

Name STAND BEM.WS-14-Robo ??

Velolight ++ Lustig? Eindruck gut

Multifunktionswecker ?? Seite löschen?

Wolkenmesser ?? PEP vorhanden

Block ??? PEP Bewerte Fahrrad

Multifunktionswecker ?? PEP Nutzwert nichts

Roboterarm ?? PEP

Velolights ??

Xylomat ?? PEP --

Ultraschall-gesteuerte LED-Lampe

Blockschaltbild ++

Portbelegung ++

Schaltplan --

77

LODRIMA-Ausschankeinheit Struktogramm ist keines!

Blockschaltbild +++

Portbelegungsplan

Schaltplan ++ ? Leistungstreiber Power Mosfet TTL

Quellcode ++ Warum kein Drehschalter?

Bedienungsanleitung ++

Verbesserungen und Weiterentwicklungen +

Linkliste – in neuem Fenster öffnen!

78

LODRIMA-Bedienterminal Struktogramm ist keines!

Blockschaltbild +++

Portbelegungsplan

Schaltplan ++ ? Taster ++

Quellcode ++ Warum kein Drehschalter?

Bedienungsanleitung ++

Verbesserungen und Weiterentwicklungen +

Linkliste – in neuem Fenster öffnen!

79

LODRIMA-Lineareinheit Struktogramm ist keines!

Blockschaltbild +++

Portbelegungsplan

Schaltplan ++ ? Taster ++

Quellcode ++ Warum kein Drehschalter?

Bedienungsanleitung ++

Verbesserungen und Weiterentwicklungen +

Linkliste – in neuem Fenster öffnen!

80

RC-CAR Antrieb ? Hauptseite? Struktogramm ist keines!

Blockschaltbild sehr Mikrocontroller ausgerichtet

Portbelegungsplan +++ Configuration Wizard

Schaltplan ++

Layout ++++

Quellcode ++ Warum kein Drehschalter?

Bedienungsanleitung ++

Verbesserungen und Weiterentwicklungen +

Linkliste – in neuem Fenster öffnen!

81

RC-CAR Beleuchtung Struktogramm ist keines!

Blockschaltbild sehr Mikrocontroller ausgerichtet

Portbelegungsplan +++ Configuration Wizard

Schaltplan ++

Layout ++++

Quellcode ++ Warum kein Drehschalter?

Bedienungsanleitung ?? Es muss ein Papier vorliegen!

Verbesserungen und Weiterentwicklungen +

Linkliste – in neuem Fenster öffnen!

82

RC-CAR Hauptseite Sehr gut!

Schaltplan Beleuchtung ??

Layout – sehr gut

83

RC-CAR Lenkung Kontinuierlich?

Quellcode???

84

RC-CAR Scheibenwischer Quellcode???

85

Velolight Programmablaufpan – aber sicher nicht nach DIN

Blockschaltbild nicht lesbar

Portbelegungsplan ++

Schaltplan Nach ULN2803 ein weiterer Baustein??Umschaltung Versorgung???????

Layout ++++

Quellcode ++

Bedienungsanleitung ?? Es muss ein Papier vorliegen!

Verbesserungen und Weiterentwicklungen +

Linkliste – in neuem Fenster öffnen! 86

Multifunktionswecker Team 1 Programmablaufpan:

Blockschaltbild:

Portbelegungsplan:

Schaltplan:

Layout:

Quellcode:

Bedienungsanleitung:

Verbesserungen und Weiterentwicklungen:

Linkliste:

87

Projekt: Kriterien Programmablaufpan:

Blockschaltbild:

Portbelegungsplan:

Schaltplan:

Layout:

Quellcode:

Bedienungsanleitung:

Verbesserungen und Weiterentwicklungen:

Linkliste:

88

Vorbereitung Prüfung Quickies

Ausgehend von der Neutralposition soll die Position 0,9ms mit maximaler Geschwindigkeit angefahren werden. Danach soll periodisch innerhalb von ca. 3s zwischen Position 2,1ms und 0,9ms gewechselt werden. Dabei soll mit gleichmäßiger Geschwindigkeit zwischen den Positionen gefahren werden.

89

PRÜFUNG: „SERVO“Vorlesung 23.1.2015

90

Aufgabe zerlegen 1

Ausgehend von der Neutralposition Initialisierung 1,5ms =?????

soll die Position 0,9ms mit maximaler Geschwindigkeit angefahren werden. T2 Start: Fahrt auf 0,9ms =????? mit

vmax

2 Stellungen mov PCA0CPM0, #0CBh ;PWM varieren

91

Aufgabe zerlegen 2

Danach soll periodisch innerhalb von ca. 3s zwischen Position 2,1ms und 0,9ms gewechselt werden. Dabei soll mit gleichmäßiger Geschwindigkeit zwischen den Positionen gefahren werden. T3 Links rechts fahren mit 137

Interrupts und Schrittweite 2692

Aufgabe zerlegen 3

Dabei soll mit gleichmäßiger Geschwindigkeit zwischen den Positionen gefahren werden.

Servo_LR als Grundlage Idee: R3 zählt die 137 Interrupts

jeweils in Teil ADD oder SUBB wird T2 oder T3 auf „0“ gesetzt und nach 137 Interrupts wieder gesetzt

R2 muss 1 sein93

In Prüfung – Aufgabe schwer Zwei Aufgaben

1. Aufgabe T2 Fahren Sie in Neutralposition T3 Fahren Sie auf Stellung 0,9ms

2. Aufgabe T2 Fahren Sie in 3s jeweils

periodisch zwischen 0,9ms und 2,1ms

94

PLATINE – WER?Labor 29.1.2015

95

PRÜFUNG: ADC + EAGLESERVO + TIMER 2

Vorlesung 30.1.2015

96

Packliste Prüfung

PC – IDE

5 Vorlagen - WS14-A1….WS14-A5

Poti

Servo - Kalibrationdaten

Datenbuch

Befehlsliste, Schaltplan, Int_Vector 97

Recommended