Inhaltsverzeichnis:

Der Felsen - Gunook
Der Felsen - Gunook

Video: Der Felsen - Gunook

Video: Der Felsen - Gunook
Video: Un-Armed Pirates, Intruders, & Thieves:Self Defense for Sailboats (Patrick Childress Sailing #43) 2024, Juli
Anonim
Der Stein
Der Stein

Dieser Roboter wird durch ein visuelles Basisprogramm (über die serielle Schnittstelle) gesteuert und kann sich in drei verschiedenen Geschwindigkeiten durch ein pulsweitenmoduliertes (PWM) Signal bewegen, das von einem PIC-Mikrocontroller (16F877) erzeugt wird. Der Roboter kann in zwei Modi betrieben werden, "normal control" und "light tracker". Im normalen Steuerungsmodus kann der Roboter Objekte mit einer Größe von 3 - 18 cm innerhalb von 150 m von einem Ort zum anderen transportieren. wohingegen es im Light-Tracker-Modus dem Licht in einem dunklen Raum folgt. Es wurden viele Sensoren verwendet, wie z. B. Lichtsensoren; Neigungssensor, Blockierstromerkennung, Batteriestandserkennung und einige Endschalter und Berührungssensoren, die in der Hand verwendet werden. Es kann seine Geschwindigkeit konstant halten, wenn es auf einen Hügel fährt (gekippt) und schaltet automatisch das Licht ein, wenn es dunkel wird. Um die Sicherheit des ICs zu gewährleisten, wird der Strom unterbrochen, wenn er feststeckt und die Hand stoppt, wenn er etwas hält. Es wurden 4 Gleichstrommotoren verwendet, die von einem PIC-Mikrocontroller 16F877 und 3 Motortreiberschaltungen gesteuert wurden. Es dauerte etwa 4 Monate und kostet etwa 600 $

Schritt 1: Entwerfen Sie das Projekt

Entwerfen Sie das Projekt
Entwerfen Sie das Projekt
Entwerfen Sie das Projekt
Entwerfen Sie das Projekt

In der Anfangsphase wurde ein Projektentwurf erstellt. hauptsächlich Definieren des Blockdiagramms; siehe Abbildung.

Zu diesem Zeitpunkt ist ein detaillierterer Schaltplan erforderlich. Um dies zu erleichtern, wurden jedoch die folgenden Hauptmodule identifiziert: 1. Mikrocontroller 2. Sensoren 3. Motoren 4. Drahtlose Schaltung 5. PC-Programm. Ein 3D-Design wurde ebenfalls erstellt, siehe Abbildung.

Schritt 2: Wählen Sie die Geräte und Komponenten

In dieser Phase sollte der Konstrukteur die Geräte und Komponenten auswählen, die zum Bau des Roboters erforderlich sind.

Dazu gehören: die drahtlose Schaltung (MAX232, LM331, FM-Sender- und -Empfängermodule), Motoren (4 DC-Motoren), Motorentreiberschaltung (H-Brücke), der Mikrocontroller PIC (16F877), Batterie, Spannungsregler (MC7805), Mikroschalter, Fotowiderstände, Neigungssensor … etc. Es ist wichtig, die Berechenbarkeit dieser Geräte und ihr Zusammenspiel zu verstehen.

Schritt 3: Der Mikrocontroller

Der Mikrocontroller
Der Mikrocontroller

Dieser Schritt ist der wichtigste Schritt. Zu Beginn sollten die Codes identifiziert werden, die vom PIC empfangen und gesendet werden.

Verbinden Sie die Komponenten mit den entsprechenden Pins des PIC und programmieren Sie den Mikrocontroller. Dies kann es erfordern, kleine Schaltkreise mit den Reglern, Widerständen, Sensoren usw. aufzubauen.

Schritt 4: Schreiben Sie das PC-Programm

Schreiben Sie das PC-Programm
Schreiben Sie das PC-Programm
Schreiben Sie das PC-Programm
Schreiben Sie das PC-Programm

Das Programm wurde auf Visual Basic geschrieben.

Die Kommunikation wurde über die RS-232 hergestellt. Verwenden von MSComm zum Senden der Daten an den Mikrocontroller durch Konfigurieren der Einstellungen (Portnummer, Baudrate, Paritätsanzahl der Datenbits, Stoppbits). Ich habe 8-Bit-Daten mit einem Stoppbit und Parität bei einer Baudrate von 9600 bps verwendet.

Schritt 5: Bauen Sie den Körper

Baue den Körper
Baue den Körper
Baue den Körper
Baue den Körper

Ein gutes Design des Körpers ist wichtig. Wählen Sie auch die Achsanordnung, siehe Abbildung.

er Roboter wurde gebaut, nachdem sichergestellt wurde, dass die Programme gut funktionieren. Dieser Schritt kann auch vor der Programmierung durchgeführt werden.

Schritt 6: Bauen Sie die drahtlose Schaltung auf

Bauen Sie die drahtlose Schaltung
Bauen Sie die drahtlose Schaltung

Der Aufbau der drahtlosen Schaltung kann unabhängig sein. In der Anfangsphase habe ich den PC mit einem Kabel mit dem Roboter verbunden, und nach der Fertigstellung des Roboters wurde die drahtlose Schaltung integriert.

Schritt 7: Integrieren

Integrieren
Integrieren

Dies ist der Moment, in dem wir unsere Komponenten integriert und den Roboter getestet haben.

Schritt 8: Mikrocontroller-Programmcode

;***************Endgültige Liste p=16f877 enthält Radix-Decidlocs "V"<<8 | "1"; Version Nr.config _CP_OFF&_PWRTE_OFF&_WDT_OFF&_XT_OSC;*********** Hauptvariable ************************** cblock 0x20;Beginn von Bank 0 RAM-Bereich INPUT_VAR L1 L2 X SPEED11 SPEED12 SPEED21 SPEED22 MSTOP LDET LR1 LR2 endc;*********** Start des Hauptprogramms **************** Start BSF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X40 MOVWF ADCON1 MOVLW 0XFF;PORT A IS I MOVWF TRISA MOVLW 0X00;PORT B IS O MOVWF TRISB MOVLW 0XF0;PORT C IS I/O MOVWF TRISC MOVLW 0XF0;PORTV D IS I/O; TRISD MOVLW 0X07;PORT E IS I MOVWF TRISE BANKSEL OPTION_REG BCF OPTION_REG, T0CS BCF STATUS, RP1 BCF STATUS, RP0;**************************** *****************;******************************** ************ WAIT BCF PORTD, 1 BCF PORTD, 2 BCF PORTD, 6 CALL PWM1OFF CALL PWM2OFF BCF PORTD, 0 BCF PORTD, 1 BCF PORTD, 2 BCF PORTD, 3 BTFSS LDET, 0 BCF PORTB, 7 MOVLW 0X00 MOVF MSTOP MOVF LDET BANKSEL INTCON BCF INTCON, GIE BANKSEL TXSTA BSF TXSTA, BRGH MOVLW 0X40 MOVWF SPBRG BCF TXSTA, SYNC BANKSEL RCSTA BSF RCSTA, SPEN BTFSC RCSTA, OERR GOTO CROE BANKSEL PIE1 BSF PIE1, RCIE BANKSEL RCSTA BCF RCSTA, RX9 BSF RCSTA, CRENWAIT1 BANKSEL PORTB BSF PORTB, 3 BSF PORTB, 4 BANKSEL PIR1 BTFSS PIR1, RCIF GOTO WAIT1 BCF MSTOP, 3 BCF PORTB, 0 BCF PORTB CALL PWM1OFF CALL PWM2OFF CALL DARKLIGHT BTFSC LDET, 0 BSF PORTB, 7RXDATA;BANKSEL RCSTA;BTFSC RCSTA, OERR;GOTO STOPS CALL PWM1OFF CALL PWM2OFF CALL DUNKELLICHT BTFSC LDET, 0 BSF PORTB, 7 BANKSEL RCREG, MOGF P. 0;********************************************;**** ************************************** MOVWF INPUT_VAR MOVLW 0X00 MOVWF RCREG BCF STATUS, RP0 BCF STATUS, RP1 MOVF INPUT_VAR, 0;STOP SUBLW 0X53 BTFSC STATUS, Z GOTO STOPPT MOVF INPUT_VAR, 0;LICHT EIN SUBLW 0X4E BTFSC STATUS, Z GOTO LON MOVF INPUT_VAR, 0;LICHT AUS SUBLW 0;LICHT AUS SUBLW 0; 1 X6C BTFSC STATUS, Z GOTO LSLOW MOVF INPUT_VAR, 0;BEWEGUNG RÜCKWÄRTS LANGSAM SUBLW 0X62 BTFSC STATUS, Z GOTO BSLOW MOVF INPUT_VAR, 0;BEWEGUNG VORWÄRTS MEDIUM SUBLW 0X46 BTFSC STATUS, Z GOTO FMED MOVFSC 0._MITTELX RECHTS, Z GOTO FMED MOVFSC 0 STATUS, Z GOTO RMED MOVF INPUT_VAR, 0;BEWEGE LINKS MITTEL SUBLW 0X4C BTFSC STATUS, Z GOTO LMED MOVF INPUT_VAR, 0;BEWEGUNG RÜCKWÄRTS MITTEL SUBLW 0X42 BTFSC STATUS, Z GOTO BMED MOVF INPUT_VOR, 0; Z GOTO FFAST MOVF INPUT_VAR, 0;BEWEGUNG NACH RECHTS SCHNELL SUBLW 0X57 BTFSC STATUS, Z GOTO RFAST MOVF INPUT_VAR, 0;BEWEG LINKS SCHNELL SUBLW 0X56 BTFSC STATUS, Z GOTO FLAST MOVF INPUT_VAR, 0; BFAST MOVF INPUT_VAR, 0;HAND SCHLIESSEN SUBLW 0X43 BTFSC STATUS, Z GOTO HCLOSE MOVF INPUT_VAR, 0;HAND OFFEN SUBLW 0X4F BTFSC STATUS, Z GOTO HOPEN MOVF INPUT_VAR, 0;TF HINZUFÜGEN HOCH MOVF 0;HAND DOWN SUBLW 0X64 BTFSC STATUS, Z GOTO HDOWN MOVF INPUT_VAR, 0;LIGHT FOLOWE R SUBLW 0X54 BTFSC-STATUS, Z GOTO LFOLLOW;**************************************** ***;******************************************** GOTO CLROEFSLOW; BANKSEL RCSTA;BCF RCSTA, OERR;BCF RCSTA, CREN;NOP;BSF RCSTA, CREN BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP;BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1 BTFSC OTORK, 1 BALLG LDET, 0;BSF PORTB, 7 NORMALSLOW MOVLW 0XFF MOVWF SPEED11 MOVLW 0X66 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF PORTD, 1 P BSF PORTB, 1 P BSF PORTB, 1 P BSF PORTB, 1 P BSF PORTB, 1 P BSF PORTB, 1 P, RCIF GOTO RXDATA GOTO REP3 GOTO CROE;******************************************** **LSLOW BCF STATUS, RP0 BCF STATUS, RP1;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS MOVLW 0X00 MOVWF MSTOP BCF LDET, 0 CALL DUNKELLICHT BTFSC LDET, 0;BSF PORTEEDB, 7 MOVLW SP 0XWFVWWW SPEED99 MOVWFVWF. 0 0XCF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BCF POR TB, 2 REP4 BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP4 GOTO CROE;************************************ **********RSLOW BCF STATUS, RP0 BCF STATUS, RP1;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS MOVLW 0X00 MOVWF MSTOP BCF LDET, 0 CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 MOVLW 0XCF MOVWF SPEED11 MOVLW 0X66 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BSF PORTB, 2 REP35 BANKSEL PIR1, RC REP REP35 BANKSEL PIR1, GOTO ****************************BSLOW BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 MOVLW 0XCF MOVWF SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PORT PWM2ON BSF PORT BDFDCF, 1 BSF PORT BDFDCF, 1 BSF PORT PORTB, 2 REP5 BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP5 GOTO CROE;************************************ **********F MED BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 NORMALMED MOVLW 0SPX11XFFV MOV SPEED 0SPX11XFFV MOV SPEED 0SPX11XFFV MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BSF PORTB, 2 CALL SDELAY REP6 CALL STALL1 BTFSC MSTOP, 0 GOTO STOPS BANKSEL PIR1 BTFSC PIRDATA, RCD GOTO GOTO REP6 PLUSEMED MOVLW 0XCF MOVWF SPEED11 MOVLW 0XCC MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XCC MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BSF PORTB, 2 CALL M SDELSCOTO STAY, 2 CALL. M SDELSCOTO G1 B7 CALL STOP STAY BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA BTFSS PORTD, 7 GOTO NORMALMED GOTO REP7 GOTO CROE;******************************** ************RMED BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORT B, 7 MOVLW 0XFF MOVWF SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BSF PORTB, 2 REP8 CALL M STALL1STOP BTFSC PIR1, RCIF GOTO RXDATA GOTO REP8 GOTO CROE;**************************************** ****LMED BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 MOVLW 0X11FF MOVVW.66 GESCHW.12 MOVLW 0XFF MOVWF GESCHW21 REP9 GOTO CROE;********************************************BMED BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 MOVLW 0XFF MOVWF SPEED11 MOVLW 0X7F MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X7F MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BCF PORTB, 2 REP10 CALL STALL1 BTFSC MSTOP, 0 GOTOIR PATCH REP10 GOTO CROE;******************************************** FAST BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0 BSF MSTOP, 4;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 MOVLW 0XEF MOWWF 0 MOVWF SPEED21 MOVLW 0X7F MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BSF PORTB, 2 CALL SDELAY NORMALFAST MOVLW 0XCF2 MOVWF GESCHW PORTD, 0 BCF PORTD, 1 BTFSC LDET, 0 BSF PORTB, 7 BSF PORTB, 1 BSF PORTB, 2 REP11 CALL STALL1 BTFSC MSTOP, 0 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA NOP BTFSS PORTD, 7 GOTO REP11 PL AST MOVLW 0XCF MOVWF SPEED11 MOVLW 0XFF MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XFF MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BSF PORTB, 2 REP12 CALL P STALL1 BTF12 CALL P STALL1 BTFSCIR M STALL1, RCIF GOTO RXDATA BTFSS PORTD, 7 GOTO NORMALFAST GOTO REP12 GOTO CROE;************************************ ********SCHNELL BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 MOVLW 0XFF MOVLW. 0XFF MOVLW SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BSF PORTB, 2 REP13 CALL STALL1 BTFSC MSTOP, 0 GOTO REP13 GOTO CROE;******************************************** SCHNELL BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 MOVLW 0XFF MOVWF SPEED11 MOVLW 0X66 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BCF PORTB, 2 SPEEDX SDELAY 12V MOVLW 0WFX SDELAY 0XEF MOVWF SPEED21 MOVLW 0XB3 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BCF PORTB, 2 REP14 CALL STALL1 BTFSC MSTOP, 0 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, GOTO RCIF GOTO REP*14 GOTO; ***************************************** BFAST BCF-STATUS, RP0 BCF-STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 MOVLW 0XDF MOVWF GESCHW.11 MOVLW 0X99 MOVW GESCHW PWM2ON BSF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BCF PORTB, 2 CALL SDELAY MOVLW 0XEF MOVWF SPEED11 MOVLW 0X66 MOVWF SPEED12 MOVLW 0XEF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BCF PORTB, 2 REP15 CALL STALL1 BTFSC MSTOP, 0 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP15 GOTO CLROE;**************** ******************************HCLOSE BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 BTFSC PORTD, 5 GOTO STOPS BTFSC PORTD, 6 GOTO STOPS BSF PORTD, 2 BCF PORTD, 3 REP16 BTFSC PORTD, 5 GOTO PORTD, 5 GOTO PORTD, BTF. SC GOTO STOPS CALL SDELAY CALL STALL2 BTFSC MSTOP, 2 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP16 GOTO CROE;**************************** ******************HOPEN BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 BTFSC PORTD, 4 GOTO STOPS BCF PORTD, 2 BSF PORTD, 3 REP17 BTFSC PORTD, 4 GOTO STOPS CALL SDELAY CALL 2 BTFSC MSTOP, 2 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTOREP 17RXDATA GOTO STOPS GOTO CROE;******************************************** HUP BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 BTFSC PORTC, 4 GOTO STOPS 0 BSF 18. PORTC, 3 BTFSC PORTC, 4 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP18 GOTO CROE;******************************** ************HDOWN BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS CALL DARKLIGHT BTFSC LDET, 0;BSF PORTB, 7 BTFSC PORTC, 5 GOTO STOPS BSF PORTC, 0 BCF PORTC, 3 REP19 BTFSC PORTC, 5 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP19 GOTO CROE;**************** **************************LON BSF PORTB, 7 BSF LDET, 0 GOTO CROE;************ ********************************* LOFF BCF PORTB, 7 BCF LDET, 0 GOTO CROE;***** *************************************LFOLLOW BCF STATUS, RP0 BCF STATUS, RP1 BCF PORTB, 1 BCF PORTB, 2 BCF PORTB, 6 BCF PORTB, 7 CALL PWM1OFF CALL PWM2OFF BCF PORTD, 0 BCF PORTD, 1 BCF PORTD, 2 BCF PORTD, 3 BSF MSTOP, 6 REPLF;BANKSEL OPTION_REG;BSF OPTION_REG, 3;BSF OPTION_REG, 3;BSF OPTION;BCF OPTION, 3;BSF OPTION;, 3;CLRFWDT BCF STATUS, RP0 BCF STATUS, RP1;BANKSEL INTCON;BCF INTCON, T0IE;BCF INTCON, T0IF;BANKSEL PIE1;BCF PIE1, 6;BCF PIE1, 0;BANKSEL INTCON;BCF INTCON, GIECF, 0 BCF PCON, 1 NOP BSF PCON, 0 BSF PCON, 1 BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP CALL SDELAY CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, Z GOTO FRONT SDELAY CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, C GOTO LR2G LR1G BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVVWF MSTOP;CALL BUTTLEVEL; 0X66 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD, 0 BCF PORTD, 1 BSF PORTB, 1 BCF PORTB, 2 LR1GREP;CALL STALL1;BTFSC MSTOP, 0;GOTO ST OPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, Z GOTO REPLF CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSS GOTO REPLF LR2G BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP;CALL BUTTLEVEL;BTFSC MSTOP, 1;GOTO STOPS MOVLW 0XFF MOVWF GESCHW.2 MOVLW 0X99 MOVWF GESCHW.12 MOVLW 0XFF MOVWF1 PWMDALL C. MOVWF 0XFF GESCHW PORTD, 1 BCF PORTB, 1 BSF PORTB, 2 LR2GREP;CALL STALL1;BTFSC MSTOP, 0;GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBTFSC. LR1, 0 B GOTO STATUS, 0 B REPLF CALL LFC1 NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, C GOTO LR2GREP GOTO REPLF FRONT BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP;CALL BUTTLEVEL; SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORT D, 0 BCF PORTD, 1 BSF PORTB, 1 BSF PORTB, 2 CALL SDELAY FOREP;CALL STALL1;BTFSC MSTOP, 0;GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA;CALL LDIN;BTFSC MSTOP, 3;GOTO STOPS NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, Z GOTO FROREP GOTO REPLF GOTO CROE;**************************** ****************STOPS BTFSS MSTOP, 4 GOTO STOPA MOVLW 0XCF MOVWF SPEED11 MOVLW 0XB3 MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XB3 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD, 0 BCF PORTD, 1 CALL SDELAY STOPA BCF STATUS, RP0 BCF STATUS, RP1 BCF PORTB, 1 BCF PORTB, 2 BCF PORTB, 6 BTFSS LDET, 0;BCF PORTB, 7 BCF PORTC, 0 BCF PORTC, 3 CALL PWM1OFF CALL PWM2OFF BCF PORTD, 0 BCF PORTD, 0 BCF PORTD PORTD, 1 BCF PORTD, 2 BCF PORTD, 3 MOVLW 0X00 MOVWF MSTOP;************************************ *********CLROE BANKSEL RCSTA BCF RCSTA, CREN BCF RCSTA, FERR BCF RCSTA, OERR BSF RCSTA, CREN BSF INTCON,GIE BSF INTCON, PEIE GOTO WARTEN1;******************************************** *;********************************************;**** ************************************** STALL1 BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BANKSEL ADCON0 BCF ADCON0, 3 BCF ADCON0, 4 BCF ADCON0, 5 BCF STATUS, RP0 BCF STATUS, RP1 CALL CONVERT MOVF ADRESH, 0 SUBLW 0X70 BTFSS STATUS, C BSF MSTOP, 0 BCF STATUS, RP0 BRP1 BCF STATUS, RP0 BRP1 BCF STATUS STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BANKSEL ADCON0 BSF ADCON0, 3 BCF ADCON0, 4 BCF ADCON0, 5 BCF STATUS, RP0 BCF STATUS, RP1 AUFRUF KONVERTIEREN MOVF ADRESH, 0 SUBLW 0X40 BTFSS MCF STATUS, BTFSS STATUS STATUS, RP0 BCF STATUS, RP1 RETURNBUTTLEVEL BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BANKSEL ADCON0 BCF ADCON0, 3 BCF ADCON0, 4 BSF ADCON0, 5 BCF STATUS, RP0 BCF STATUS, KONTWRP1 MOV BTFSS STATUS, C GOTO BL1 GOTO BL2 BL1 BSF MSTOP, 1 BSF PORTB, 6 BL2 RETURN DARKLIGHT BCF STATUS, RP0 BCF STATUS, RP1 BTFSC LDET, 0 GOTO RETFDL BANKSEL ADCON0 BCF ADCON0, 3 BSF ADCON0, 4 BCF ADCON0, 5 BCF STATUS, RP0 BCF STATUS, RP1 CALL CONVERT MOVF ADRESH, 0 SUBLW 0XEE BTFSS STATUS, C BSF PORTB, 7 RETFDL RETURNCONVERT1 MOVL ADSELW 0 BCF ADCON0, 7 BSF ADCON0, 6 BSF ADCON0, 0 BSF ADCON0, GO WAITADC BTFSC ADCON0, GO GOTO WAITADC BCF STATUS, RP1 BCF STATUS, RP0 RETURNPWM1ON BANKSEL PR2 MOVLW 0RPXFF MOVWF PR2 BCF STATUS, 0 MOVWF CCP1CON MOVF DREHZAHL12, 0 MOVWF CCPR1L BSF STATUS, RP0 BCF STATUS, RP1 MOVLW 0XF0 MOVWF TRISC BCF STATUS, RP0 BCF STATUS, RP1 BCF T2CON, T2CKPS1 BCF T2CON, T2CKCON, T2CKCONP0 BSF2 TSF, C2CK BSF, CMR1ON TREF PR2 MOVLW 0XFF MOVWF PR2 BCF STATUS, RP0 BCF STATUS, RP1 MOVF SPEED21, 0 MOVWF CCP2CON MOVF SPEED22, 0 MOVWF CCPR2L BSF STATUS, RP0 BCF STATUS, RP1 MOVF0 MOVF TRISC BCF STATUS T2CON, T2CKPS0 BSF T2CON, TMR2ON BSF CCP2CON, 2 BSF CCP2CON, 3 RETURNPW M1OFF BCF CCP1CON, 2 BCF CCP1CON, 3 BSF T2CON, T2CKPS1 BSF T2CON, T2CKPS0 BCF T2CON, TMR2ON MOVLW 0X00 MOVWF CCP1CON MOVLW 0X00 MOVWF CPR1L BANKSEL PR2 MOVLW 0X00 MOVCFCP PR2 B1CF STATUS, 3 BSF T2CON, T2CKPS1 BSF T2CON, T2CKPS0 BCF T2CON, TMR2ON MOVLW 0X00 MOVWF CCP2CON MOVLW 0X00 MOVWF CCPR2L BANKSEL PR2 MOVLW 0X00 MOVWF PR2 BCF STATUS, RP1 BCF STATUS, 1 BRP0 RETURCF 5 BCF STATUS, RP0 BCF STATUS, RP1 CALL CONVERT MOVF ADRESH, W ANDLW 0XF0 MOVWF LR1 BCF STATUS, RP0 BCF STATUS, RP1 RETURN LFC2 BANKSEL ADCON0 BCF ADCON0, 3 BRPSF ADCON0, 4 BSF 0 RP1 CALL CONVERT MOVF ADRESH, 0 ANDLW 0XF0 MOVWF LR2 BCF STATUS, RP0 BCF STATUS, RP1 RETURN LDIN BANKSEL ADCON0 BCF ADCON0, 3 BSF ADCON0, 4 BCF ADCON0, 5 BCF STATUS, RP0 BCF STATUS, ADBL 0X4C BTFSC STATUS, C GOTO COMP4 BSF MSTOP, 3 COMP4 BCF STATUS, RP0 BCF STATUS, RP1 RÜCKGABE VERZÖGERUNG CLRF L2 XL3 CLRF L1 XL2 CLRF TMR0 XL1 MOVLW 0XFF SUBWF TMR0, W BTFSS STATUS, C GOTO XL1 MOVLW 0X20 INCF L1 SUBWF L1, W BTFSS STATUS, C GOTO XL2 MOVLW 0X10 INCF L2 SUBOTOSS L2, C GOTO XL3 RÜCKKEHR NOP NOPEND

Zweiter Preis im Roboterwettbewerb Instructables und RoboGames

Empfohlen: