Labor Mikrocomputertechnik
description
Transcript of Labor Mikrocomputertechnik
Labor Mikrocomputertechnik
Spielzeugsortierer
Dozent: Prof. J. Walter
Betreuer: W. Loes
Gruppe: 12
Teilnehmer: Fadoua Akoucham
Rick Hauschwitz
2
Problemstellung / Aufgabenstellung Black Box Schaltplan Struktogramm Quellcode Vorführung
Gliederung
3
Problemstellung:durch Spielen entsteht Unordnungeinzelne Spielsachen müssen in Handarbeit
voneinander getrennt werden
Aufgabenstellung:Entwicklung eines Geräts zum automatischen
Trennen von 2 unterschiedlichen Spielsachen
4
Blackbox
Spielzeug sortieren
E1el
St1ges
S2mech
St2
S1opt
St3
S2opt
Vcc 5V DC
Restriktionen
Spielzeug unsortiert
Startsignal
Bausteine
Metallautos
Sortierer eingeschaltet
Sortierung
Störgrößen
o mechanische Stößeo elektr./magn. Feldero Verschmutzung
o Euro_535
S3opt
Sortierung fertigS3mech
Stoppsignal
S1mech
Einschalten
5
Schaltplan
6
StruktogrammProgrammkopf
Programmbeschreibung
Interrupt-Vektoren
Initialisierungen
Abfrage „Start“-Tasteja nein
Signalabfrage
Lichtschranke Hallsensor „Stopp“-Taste
Wartezeitneustarten
Weicheverfahren
5s warten
Weichezurückfahren
Sortier-vorgangbeenden
Schleife
Schleife
Ausschalt-Wartezeit
Programmende
7
;-----------------------------------------------------------------------------------------------------------------------------------------------------------
;Programmbeschreibung;----------------------------------------------------------------------------------------------------------------------------------------------------------
Pulsweitenmodulation und 3sec.warten
TIMER 2
Frequenz der Sendediode
TIMER1
Automatisches Ausschalten des Sortierers
TIMER0
8
;Interrupts;----------------------------------------------------------------------------------------------------------------------------------------;------------------------------------------------------------------------;Interrupt Timer0;-----------------------------------------------------------------------ORG 000BH ;Interrupt-Vektor T0clr TF0 ;Flag erkanntcall ENDE ;Rufe Interrupt Service Routine aufreti;------------------------------------------------------------------------;Interrupt Timer1;-------------------------------------------------------------------------ORG 001BH ;interrupt-Vektor T1clr TF1 ;Flag erkanntcall SENDEDIODE ;Rufe Interrupt Service Routine aufreti;------------------------------------------------------------------------;Interrupt Timer2;------------------------------------------------------------------------ORG 002BH ;Interrupt-Vektor T2clr TF2 ;Flag erkanntcall Linksstellung ;Rufe Interrupt Service Routine aufreti
9
StruktogrammProgrammkopf
Programmbeschreibung
Interrupt-Vektoren
Initialisierungen
Abfrage „Start“-Tasteja nein
Signalabfrage
Lichtschranke Hallsensor „Stopp“-Taste
Wartezeitneustarten
Weicheverfahren
5s warten
Weichezurückfahren
Sortier-vorgangbeenden
Schleife
Schleife
Ausschalt-Wartezeit
Programmende
10
;------------------------------------------------------------------------------------------------------------------------------------
;Initialisierung der Timer 0,1,2;--------------------------------------------------------------------------------------------------------------------------------------;-----------------------------------------------------------------------------------------------------------------------;Timer 0 /TIMER 1;-----------------------------------------------------------------------------------------------------------------------mov TMOD,#00100001b ;16 bit timer/counter --> TIMER0
;8 bit reload timer --> TIMER1mov TH0,#00h ;LICHTS_H in TH0 ladenmov TL0,#00h ;LICHTS_L in TL0 laden
clr TF1 ;TIMER1 Flag löschenmov TH1,#0F0h ;FREQUENZ_DIODE in TH1 laden
;------------------------------------------------------------------------------------------------------------------------;TIMER2;------------------------------------------------------------------------------------------------------------------------mov T2CON,#00010001B ;Timer2 Einstellung:Timer mit f=f(osz)/12 ;Mode 0 ->Reload bei Ueberlauf
mov CCEN,#00001000B ;Compare Mode des CC1 freigeben
mov CRCH,#0B1H ;High Byte von Compare Reload Capturemov CRCL,#0E0H ;Low Byte von Compare Reload Capture
mov CCL1,#01EH ;Pulsweitenmodulation Anfangswertmov CCH1,#0FBH
11
Bsp.: TIMER 0
Sortierer soll nach 16sec. Wartezeit stoppen
16 000 000 µsec
16 000 000 µsec/65536 ≈ 245
Anfangswert des TI0 ist #0000h
und des Registers R1 #245d
12
;------------------------------------------------------------------------------------------------------------------------------------
;Initialisierung der Timer 0,1,2;--------------------------------------------------------------------------------------------------------------------------------------;-----------------------------------------------------------------------------------------------------------------------;Timer 0 /TIMER 1;-----------------------------------------------------------------------------------------------------------------------mov TMOD,#00100001b ;16 bit timer/counter --> TIMER0
;8 bit reload timer --> TIMER1mov TH0,#00h ;LICHTS_H in TH0 ladenmov TL0,#00h ;LICHTS_L in TL0 laden
clr TF1 ;TIMER1 Flag löschenmov TH1,#0F0h ;FREQUENZ_DIODE in TH1 laden
;------------------------------------------------------------------------------------------------------------------------;TIMER2;------------------------------------------------------------------------------------------------------------------------mov T2CON,#00010001B ;Timer2 Einstellung:Timer mit f=f(osz)/12 ;Mode 0 ->Reload bei Ueberlauf
mov CCEN,#00001000B ;Compare Mode des CC1 freigeben
mov CRCH,#0B1H ;High Byte von Compare Reload Capturemov CRCL,#0E0H ;Low Byte von Compare Reload Capture
mov CCL1,#01EH ;Pulsweitenmodulation Anfangswertmov CCH1,#0FBH
13
StruktogrammProgrammkopf
Programmbeschreibung
Interrupt-Vektoren
Initialisierungen
Abfrage „Start“-Tasteja nein
Signalabfrage
Lichtschranke Hallsensor „Stopp“-Taste
Wartezeitneustarten
Weicheverfahren
5s warten
Weichezurückfahren
Sortier-vorgangbeenden
Schleife
Schleife
Ausschalt-Wartezeit
Programmende
14
AN:setb TR1 ;Timer 1 startensetb TR0 ;Timer 0 startensetb P4.0 ;LED "Start" anmov CCL2,#0BAH ;Sortierfinger linksmov CCH2,#0FAH ;1,35ms Pulsweite
;--------------------------------------------------------------------------------------------------------------------------------------
-;Start durch Tastendruck;---------------------------------------------------------------------------------------------------------------------------------------
15
Programmkopf
Programmbeschreibung
Interrupt-Vektoren
Initialisierungen
Abfrage „Start“-Tasteja nein
Signalabfrage
Lichtschranke Hallsensor „Stopp“-Taste
Wartezeitneustarten
Weicheverfahren
5s warten
Weichezurückfahren
Sortier-vorgangbeenden
Schleife
Schleife
Ausschalt-Wartezeit
Programmende
Struktogramm
16
;--------------------------------------------------------------------------------------------------------------------------------------
-;Signalabfrage;---------------------------------------------------------------------------------------------------------------------------------------
START:
jb EMPFAENGER,LICHTSCHRANKE
;Signal Empfänger -> Sprung
jnb HALLSENSOR,WEICHE
;Signal Hallsensor -> Sprung
jnb STOPP_TASTE, STOPP
;Signal Stopptaste -> Sprung
jmp START
17
Programmkopf
Programmbeschreibung
Interrupt-Vektoren
Initialisierungen
Abfrage „Start“-Tasteja nein
Signalabfrage
Lichtschranke Hallsensor „Stopp“-Taste
Wartezeitneustarten
Weicheverfahren
5s warten
Weichezurückfahren
Sortier-vorgangbeenden
Schleife
Schleife
Ausschalt-Wartezeit
Programmende
Struktogramm
18
;---------------------------------------------------------------------------------------------------------------------------------------
;Lichtschranke;--------------------------------------------------------------------------------------------------------------------------------------
LICHTSCHRANKE:mov R1,#245d ;245 in Register 1 ladenclr TR0 ;Timer0 stoppenmov TL0,#00H ;Anfangswerte des Timers 0mov TH0,#00Hsetb TR0 ;TIMER 0 wieder startenclr TF0jmp START ;Sprung in Hauptschleife
19
Programmkopf
Programmbeschreibung
Interrupt-Vektoren
Initialisierungen
Abfrage „Start“-Tasteja nein
Signalabfrage
Lichtschranke Hallsensor „Stopp“-Taste
Wartezeitneustarten
Weicheverfahren
5s warten
Weichezurückfahren
Sortier-vorgangbeenden
Schleife
Schleife
Ausschalt-Wartezeit
Programmende
Struktogramm
20
;----------------------------------------------------------------------------------------------------------------------------------------
;HALLSENSOR;---------------------------------------------------------------------------------------------------------------------------------------
WEICHE:
mov CCH2,#0FCh ;Sortierfinger ;rechter
Anschlag
mov CCL2,#018h ;1ms Pulsweite
setb F0 ;Flag setzen
jmp START
21
Linksstellung: ;ISR Timer 2
jnb F0, FERTIG ;Flag gesetzt?
djnz R4, FERTIG
clr F0 ;Flag rücksetzen
mov CCL2,#0BAH ;Sortierfinger links
mov CCH2,#0FAH ;1,35ms Pulsweite
mov R4,#150d ;150 in Register R4
FERTIG:
ret
;-------------------------------------------------------------------------------------------------------------------------------------
;Interrupt Service Routine;--------------------------------------------------------------------------------------------------------------------------------------
22
Programmkopf
Programmbeschreibung
Interrupt-Vektoren
Initialisierungen
Abfrage „Start“-Tasteja nein
Signalabfrage
Lichtschranke Hallsensor „Stopp“-Taste
Wartezeitneustarten
Weicheverfahren
5s warten
Weichezurückfahren
Sortier-vorgangbeenden
Schleife
Schleife
Ausschalt-Wartezeit
Programmende
Struktogramm
23
;----------------------------------------------------------------------------------------------------------------------------------------
;Stopptaste;---------------------------------------------------------------------------------------------------------------------------------------
STOPP:
mov CCL2,#082H ;Anfangsstellung Mitte
mov CCH2,#0FBH ;1,1ms Pulsweite
clr TR0 ;TIMER 0 stoppen
clr TR1 ;TIMER 1 stoppen
clr LED_START ;LED_START aus
clr LED_FERTIG;LED_FERTIG aus
jmp ABFRAGE
24
StruktogrammProgrammkopf
Programmbeschreibung
Interrupt-Vektoren
Initialisierungen
Abfrage „Start“-Tasteja nein
Signalabfrage
Lichtschranke Hallsensor „Stopp“-Taste
Wartezeitneustarten
Weicheverfahren
5s warten
Weichezurückfahren
Sortier-vorgangbeenden
Schleife
Schleife
Ausschalt-Wartezeit
Programmende
25
ENDE: ;ISR Timers 0djnz R1,UP5mov R1,#245d ;245 in Register 1mov CCL2,#082h ;Anfangsstellung Mittemov CCH2,#0FBh ;1,1ms Pulsweiteclr TR1 ;TIMER 1 stoppenclr TR0 ;TIMER 0 stoppenclr P4.0 ;LED_START aussetb P4.1 ;LED_FERTIG anjmp ABFRAGE ;SPRUNGUP5:ret
;-------------------------------------------------------------------------------------------------------------------------
;Interrupt Service Routine;--------------------------------------------------------------------------------------------------------------------------
26
Verbesserungen
Antrieb
stärkere Spannungsversorgung besseren Sensor
z.B.: Induktiver Sensor Aufbewahrung der Spielzeuge
z.B.: Trichter
27
Vielen Dank für die Aufmerksamkeit