Microcomputer Projekt ELEKTRONISCHER KOMPASS WS 2004/2005 Gruppe: Armin Otterstätter Jin Yih Ho
Inhalt Aufgabenstellung Blockschaltbild Portbelegungsplan Schaltplan Layout Struktogramm Programm Verbesserungen
Aufgabenstellung Es ist ein System zu entwickeln, das wie ein Kompass die Himmelsrichtung optisch anzeigt. 16 LEDs sollen dabei als Richtungsanzeige fungieren, wobei Norden durch Leuchten angezeigt wird.
Blockschaltbild
Portbelegunsplan Eingabeeinheit: Port 6.1 - C37 - Magnetfeldsensor Analoges Signal(X-Komponente) Port 6.2 - A28 - Magnetfeldsensor Analoges Signal(Y-Komponente)
Portbelegungsplan Ausgabeeinheit: P3.0 Reset für Sensoren P3.2-C19-Zustandanzeige(Ein/Aus) 16 LEDs Richtungsanzeige: P4.0-C8-LED1 P5.0-A9-LED9 P4.1-A8-LED2 P5.1-C9-LED10 P4.2-C7-LED3 P5.2-A10-LED11 P4.3-A7-LED4 P5.3-C10-LED12 P4.4-C6-LED5 P5.4-A11-LED13 P4.5-A6-LED6 P5.5-C11-LED14 P4.6-C5-LED7 P5.6-A12-LED15 P4.7-A5-LED8 P5.7-C12-LED16
Schaltplan Beschleunigungssensor OpAmp MOSFET Richtungsanzeige Z-Achsen Sensor 2-Achsen Sensor
Layout
Struktogramm
Timer zur Reset Steuerung T0_INTERRUPT: djnz TCOUNT, exit ;ziehe von TCOUNT eins ab bei Interrupt mov R6, #0FFh clr P3.0 ;falls TCOUNT 0 -> P3.0 = 0 break: ;das rücksetzten wird kurz verzögert djnz R6, break ;falls R6 0 gehts weiter setb P3.0 ;P3.0 = 1 mov TCOUNT, #10 ;TCOUNT wird wieder auf 10 gesetzt exit: reti ;Return from the interrupt
Vergleich der Messwerte first_interval: clr C ;Carry löschen cjne R4,#80,bigger1 ;Testen ob R4 größer oder kleiner als untere Grenze jmp R4_big1 ;Wenn R4 == Untere Grenze Springe nach R4_big1 bigger1: jc second_interval ;Wenn R4 < Untere Grenze; CY = 1 spring nächstes Intervall jmp R4_big1 R4_big1: clr C ;Carry Löschen, da wir es gleich wieder brauchen cjne R4,#110,smaller1 ;R4 mit oberer Intervallsgrenze vergleichen jmp verglY1 ;Falls gleich springe zum Y-Komponenten Vergleich smaller1: jc compY1 jmp second_interval ;Falls R4 größer obere Grenze Springe nächstes Intervall compY1: jmp verglY1 ;Springe zum Y-Komponenten Vergleich
Verbesserungen Zusätzliche Achse Beschleunigungssensor I²C Bus zur numerischen Grad Anzeige
Vielen Dank für Ihre Aufmerksamkeit