תוכן עניינים:

הסלע: 8 שלבים
הסלע: 8 שלבים

וִידֵאוֹ: הסלע: 8 שלבים

וִידֵאוֹ: הסלע: 8 שלבים
וִידֵאוֹ: שלבים בלימוד שחיית חתירה WEST, תרגילים 7+8 2024, יולי
Anonim
הסלע
הסלע

רובוט זה נשלט על ידי תוכנית בסיסית ויזואלית (דרך היציאה הטורית), והוא יכול לנוע בשלוש מהירויות שונות על ידי אות מאופנן ברוחב הדופק (PWM) שנוצר על ידי מיקרו -בקר PIC (16F877). ניתן להפעיל את הרובוט בשני מצבים, מצבי "שליטה רגילה" ו"עקיבה קלה ". במצב הבקרה הרגיל הרובוט יכול לשאת אובייקטים בגודל 3 - 18 ס"מ ממקום למקום לאחר 150 מ '. ואילו במצב גשש האור הוא עוקב אחר האור בחדר חשוך. השתמשו בחיישנים רבים, כגון חיישני אור; חיישן הטיה, חישת זרם דוכן, חישת רמת סוללה, וכמה מתגי הגבלה וחיישני מגע המשמשים ביד. הוא יכול לשמור על מהירותו קבועה כאשר הוא עולה על גבעה (מוטה) ומדליק את האור באופן אוטומטי כשהוא נהיה חשוך כהה. גם כדי לשמור על בטיחות ה- IC, הוא מנתק את הזרם כשהוא תקוע והיד נעצרת כאשר היא מחזיקה משהו. מנועי DC שימשו בשליטת מיקרו -בקר 16F877 PIC ו -3 מעגלי נהג מנועים. זה לקח בערך 4 חודשים, ומחירו כ -600 $

שלב 1: עיצוב הפרויקט

עיצוב הפרויקט
עיצוב הפרויקט
עיצוב הפרויקט
עיצוב הפרויקט

בשלב הראשוני ניתן עיצוב הפרויקט. בעיקר, הגדרת תרשים הבלוק; ראו את הדמות.

בשלב זה נדרשת תרשים מעגלים מפורט יותר, אולם כדי להקל על זה, המודולים העיקריים שזוהו היו: 1. מיקרו -בקר 2. חיישנים 3. מנועים 4. מעגל אלחוטי 5. תוכנית מחשב. כמו כן נעשה עיצוב תלת מימד, ראה האיור.

שלב 2: בחר את המכשירים והרכיבים

בשלב זה על המעצב לבחור את המכשירים והרכיבים הנדרשים לבניית הרובוט.

זה כולל: המעגל האלחוטי (MAX232, LM331, מודולי משדר ומקלט FM), מנועים (4 מנועי DC), מעגל נהגי מנועים (H-bridge), מיקרו-בקר PIC (16F877), סוללה, וויסות מתח (MC7805), מיקרו-סוויצ'ים, פוטוריסטורים, חיישן הטיה … וכו '. חשוב להבין את יכולת החישוב של מכשירים אלה וכיצד הם פועלים יחד.

שלב 3: המיקרו -בקר

המיקרו -בקר
המיקרו -בקר

שלב זה הוא השלב החשוב ביותר. בהתחלה יש לזהות את הקודים שיתקבלו ויועברו מה- PIC.

התחל לחבר את הרכיבים לפינים המתאימים של ה- PIC, ותכנת את הבקר. זה עשוי לדרוש לבנות מעגלים קטנים באמצעות הרגולטורים, הנגדים, החיישנים … וכו '.

שלב 4: כתוב את תוכנית ה- PC

כתוב את תוכנית ה- PC
כתוב את תוכנית ה- PC
כתוב את תוכנית ה- PC
כתוב את תוכנית ה- PC

התוכנית נכתבה על בסיס בסיסי ויזואלי.

התקשורת הוקמה באמצעות ה- RS-232. שימוש ב- MSComm לשליחת הנתונים למיקרו -בקר על ידי הגדרת ההגדרות (מספר יציאה, קצב שידור, מספר זוגיות של סיביות נתונים, סיביות עצירה). השתמשתי בנתוני 8 סיביות עם ביט עצירה אחד ושוויון בקצב שידור של 9600 bps.

שלב 5: בנה את הגוף

בנה את הגוף
בנה את הגוף
בנה את הגוף
בנה את הגוף

עיצוב טוב של הגוף חשוב. גם בחירת סידור הגלגלים, ראו את האיור.

הרובוט נבנה לאחר שהבטיח שהתוכניות עובדות מצוין. ניתן לבצע שלב זה גם לפני התכנות.

שלב 6: בנה את המעגל האלחוטי

בנה את המעגל האלחוטי
בנה את המעגל האלחוטי

בניית המעגל האלחוטי יכולה להיות עצמאית. בשלב הראשוני השתמשתי בחוט לחיבור המחשב עם הרובוט ולאחר סיום הרובוט שולב המעגל האלחוטי.

שלב 7: שילוב

לשלב
לשלב

זה הרגע שבו שילבנו את הרכיבים שלנו ובדקנו את הרובוט.

שלב 8: קוד תכנית מיקרו -בקר

; **************** גמר ******************************** רשימה p = 16f877 כוללים radix decidlocs "V" << 8 | "1"; גרסה מס 'הגדרות _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC; ********** משתנה ראשי ************************** cblock 0x20; תחילת אזור בנק RAM 0 INPUT_VAR L1 L2 X SPEED11 SPEED11 SPEED22 SPEED22 MSTOP LDET LR1 LR2 endc; ********** התחלת התוכנית הראשית *************** start BSF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X40 MOVWF ADCON1 MOVLW 0XFF; יציאה A I I MOVWF TRISA MOVLW 0X00; נמל B הוא O MOVWF TRISB MOVLW 0XF0; יציאה C IS I/O MOVWF TRISC MOVL TRISD MOVLW 0X07; יציאה E IS I MOVWF TRISE BANKSEL OPTION_REG BCF OPTION_REG, T0CS BCF STATUS, RP1 BCF STATUS, RP0; ************************* ********************************************* ************ WAIT BCF PORTB, 1 BCF PORTB, 2 BCF PORTB, 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 CLROE 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 GOTF WAIT CALL PWM1OFF CALL PWM2OFF CALL DARKLIGHT BTFSC LDET, 0 BSF PORTB, 7RXDATA; BANKSEL RCSTA; BTFSC RCSTA, OERR; GOTO STOPS CALL PWM1OFF CALL PWM2OFF CALL DARKLIGHT BTFSC LDET, 0 BSF PIRS, RIFF BFFS 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 STOPS MOVF INPUT_VAR, 0; LIGHT ON SUBLW 0X4E BTFSC STATUS, Z GOTO LON MOVF INPUT_VAR, 0; LIGHT OFF SUBLOV, GOSF 5, 0; 0; העבר קדימה איטי SUBLW 0X66 סטטוס BTFSC, Z GOTO FSLOW MOVF INPUT_VAR, 0; הזז ימינה לאט SUBLW 0X72 סטטוס BTFSC, Z GOTO RSLOW MOVF INPUT_VAR, 0; הזז שמאלה איטית SUBLW 0 סטטוס X6C BTFSC, Z GOTO LSLOW MOVF INPUT_VAR, 0; העבר אחורה לאט SUBLW 0X62 סטטוס BTFSC, Z GOTO BSLOW MOVF INPUT_VAR, 0; העבר קדימה מדיום SUBLW 0X46 BTFSC סטטוס, ZVU FM5, ZVO FM5, ZVO FM5, ZGOTO FMX, Z GOTO FMX, Z GOTO FMX, Z GOTO FMX, Z GOTO FMX, Z GOTO FVX STATUS, Z GOTO RMED MOVF INPUT_VAR, 0; MOVE LEFT MEDIUM SUBLW 0X4C BTFSC STATUS, Z GOTO LMED MOVF INPUT_VAR, 0; MOVE BACKWARD MEDIUM SUBLW 0X42 BTFSC STATUS, Z GOTO BMED MOVF, MOVF STVUS, Z GOTO BMED MOVF Z GOTO FFAST MOVF INPUT_VAR, 0; MOVE RIGHT FAST SUBLW 0X57 BTFSC STATUS, Z GOTO RFAST MOVF INPUT_VAR, 0; MOVE LAST FAST SUBLW 0X56 BTFSC STATUS, Z GOTO LFAST MOVF INPUT_VAR BFAST MOVF INPUT_VAR, 0; HAND CLOSE SUBLW 0X43 BTFSC STATUS, Z GOTO HCLOSE MOVF INPUT_VAR, 0; HAND OPEN SUBLW 0X4F BTFSC STATUS, Z GOTO HOPEN MOVF INPUT_VAR, 0;; HAND DOWN SUBLW 0X64 BTFSC STATUS, Z GOTO HDOWN MOVF INPUT_VAR, 0; LIGHT FOLOWE R SUBLW 0X54 סטטוס BTFSC, Z GOTO LFOLLOW; ****; 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 MSTOPL 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 PWB2 PORTBURF, PORTBURN PORTBURF, PORTBURN 1, RCIF GOTO RXDATA GOTO REP3 GOTO CLROE; ***** ***** ** LSLOW 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 0XW MOVW 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 CLROE; ******************************** ********** 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 MOVL 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, 1 BSF PORTB, 1 BSF PORTB, 1 BSF PORTB; ************************** 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 SPEED2 CALL PORTB, 2 REP5 BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP5 GOTO CLROE; ******************************** ********** F MED BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 NORMALMED MOVLWW MOXL 0X MOVW MOX 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 PORTS PORT, BANKSEL PORT 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, 1 BCF PORTBURG, 1 STOPP PORT BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA BTFSS PORTD, 7 GOTO NORMALMED GOTO REP7 GOTO CLROE; ****************************** ************ 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 PORTB, STOPP PORTB, 1 BSF PORTB, 1 BCF PORTB, 1 BSF PORTB, 1 BSF PORTB, 1 BCF PORTB, 1 BSF PORTB, PORTO PORTB, 1 BCF PORTB, 1 BCF PORTB, 1 BF PORT BTFSC PIR1, RCIF GOTO RXDATA GOTO REP8 GOTO CLROE; ******************************* ***** **** 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 0XW MOVW 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 REP9; CALL STOO, BTSO MOTOP, GIRTS, 1; REP9 GOTO CLROE; **************************************** BMED BCF סטטוס, 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 התקשר PWM1ON התקשר PWM2ON BSF PORTD, 0 BSF פורט, 1 BCF פורטבול, 1 BCF פורטקס, 2 תחנות BOTTO 1, BOTTOP POSTER 1, BOTTOP STOPP, 2 REP10 BOTSTOP, 1 BOTS STOPP, BOTSTOP POSS ריפ 10 GOTO CLROE;, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET, 0 BSF MSTOP, 4; CALL BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPPS CALL DARKLIGHT BTFSC LDET, 0; BSF PORTB, 7 MOVLW 0XEF MOVW MOVW MOX 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 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 BTFSC LDET, 0 BSF PORTB, 7 BSF PORTB, 1 BSF PORTB, 2 REP11 CALL STALL 1 BTFSC MSTOP, 0 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA NOP BTFSS PORTD, 7 GOTO AST MOVLW 0XCF MOVWF SPEED11 MOVLW 0XFF MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XFF MOVWF SPEED22 התקשר PWM1ON התקשר PWM2ON BCF PORTD, 0 BCF PORTB, 1 BSF1 PORTBURG, 1 BSF1 PORTBURG, 1 BSF PORTB, 1 BSF PORT, RCIF GOTO RXDATA BTFSS PORTD, 7 GOTO NORMALFAST GOTO REP12 GOTO CLROE; ********************************** ******** RFAST 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 MOVLWX SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 התקשר PWM1ON התקשר PWM2ON BCF PORTD, 0 BSF PORTD, 1 BCF PORTB, 1 BSF PORTB, 2 תחנות BTS 1, BTS 1 BTS 1, BTS 1 BTS 1, BTS 1 PORT, 2 REP13 BOTS STALL, 2 REP13 BOTS STOP GOTO REP13 GOTO CLROE; ***************************************** 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 PWM2ON BSF PWD 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 GIRS, BANKSEL GIRS, BANKSEL GIRS, BANKSEL GIRS, BANKSEL GIRS, BANKSEL GIRK ************************************** 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 SPEED11 MOVLW MOVW MOVW MOVW MOVW MOVW MOV 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 SPEED 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 STOPPS BTFSC PORTD, 6 GOTO STOPS BSF PORTD, 2 BCF PORTD, 3 REP16 BTFSC PORTD, 5 GOTO STOPS GOTO STOPS CALL SDELAY CALL STALL2 BTFSC MSTOP, 2 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP16 GOTO CLROE; ************************* ****************** 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 STOPS GOTO BCF PORTD, 2 BSF PORTD, 3 REP17 BTFSC PORTD, 4 GOTO STOPPS CALL SDELAY CALL STALL2 BTFSC MSTOP, 2 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIFOTO GOTO CLROE; 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 BCF PORTC BTFSC PORTC, 4 GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP18 GOTO CLROE; ***************************** ************ 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, 5 עצירות GOTO BSF פורט, 0 BCF פורט, 3 REP19 BTFSC פורט, 5 בנקים GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA GOTO REP19 GOTO CLROE; **************** ************************** LON BSF PORTB, 7 BSF LDET, 0 GOTO CLROE; ********** ****************************** LOFF BCF PORTB, 7 BCF LDET, 0 GOTO CLROE; ***** *********************************** LFOLLOW BCF STATUS, RP0 BCF STATUS, RP1 BCF PORTB, 1 פורט BCF, 2 BCF פורט, 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_, 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, GIF, 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 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 MOVWF MSTOP; MOVWF MOVO 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; 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 LFS REPLF LR2G BCF STATUS, RP0 BCF STATUS, RP1 MOVLW 0X00 MOVWF MSTOP; Call BUTTLEVEL; BTFSC MSTOP, 1; GOTO STOPS MOVLW 0XFF MOVWF SPEED11 MOVLW 0X99 MOVWF SPEED 12 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOWW MOVW MOVW MOVW MOVW MOVW MOVW MOV 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 SATWF LFS 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; SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED22 שיחה PWM1ON שיחה PWM2ON BCF יציאת D, 0 BCF PORTD, 1 BSF PORTB, 1 BSF PORTB, 2 CALL SDELAY FROREP; CALL STALL1; BTFSC MSTOP, 0; GOTO STOPS BANKSEL PIR1 BTFSC PIR1, RCIF GOTO RXDATA; Call LDIN; BTFSC MSTOP, 3; GOTO STOPPS NOP CALL LFC2 NOP MOVF LR2, 0 SUBWF LR1, 0 BTFSC STATUS, Z GOTO FROREP GOTO REPLF GOTO CLROE; ************************** **************** STOPPS BTFSS MSTOP, 4 GOTO STOPA MOVLW 0XCF MOVWF SPEED11 MOVLW 0XB3 MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XB3 MOVWF SPEED22 CALL 1 שיחת 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 PORT 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 WAIT1; *; **************************************; *********************************** 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 שיחה ממירה MOVF ADRESH, 0 SUBLW 0X70 BTFSS STATUS, C BSF MSTOP, 0 BCF RST 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 CALL CONVERT MOVF ADRESH, 0 SUBL CX 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 STF 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 התקשר ממיר MOVF ADRESH, 0 SUBLW 0XEE BTFSS STATUS, C BSF PORTB, 0 RETON ADCON 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 0XFF MOVW MOVWF CCP1CON MOVF SPEED12, 0 MOVWF CCPR1L BSF STATUS, RP0 BCF STATUS, RP1 MOVLW 0XF0 MOVWF TRISC BCF STATUS, RP1 BCF T2CON, T2CONPS, T2CON 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 MOVLW 0XF0 RF T2CON, T2CKPS0 BSF T2CON, TMR2ON BSF CCP2CON, 2 BSF CCP2CON, 3 RETURNPW M1OFF BCF CCP1CON, 2 BCF CCP1CON, 3 BSF T2CON, T2CKPS1 BSF T2CON, T2CON BCF T2CKPS0, TMR2ON movlw 0X00 movwf CCP1CON movlw 0X00 movwf CCPR1L BANKSEL PR2 movlw 0X00 movwf PR2 STATUS BCF, STATUS BCF RP1, RP0 RETURNPWM2OFF BCF CCP2CON, 2 BCF CCP2CON, 3 BSF T2CON, T2CKPS1 BSF T2CON, T2CKPS0 BCF T2CON, TMR2ON MOVLW 0X00 MOVWF CCP2CON MOVLW 0X00 MOVWF CCPR2L BANKSEL, B03 BC0 STPUS 5 סטטוס BCF, סטטוס RP0 BCF, RP1 שיחת המרה MOVF ADRESH, W ANDLW 0XF0 MOVWF LR1 BCF STATUS, RP0 BCF STATUS, RP1 RETURN LFC2 BANKSEL ADCON0 BCF ADCON0, 3 BSF ADCON0, 4 BSF ADCON0, 4 BSF ADCON0, 4 BSF ADCON0, 4 BSF ADCON0 ממיר שיחות RP1 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 STVUS, RP0 ADF סטטוס 0X4C BTFSC, C GOTO COMP4 BSF MSTOP, 3 COMP4 BCF STATUS, RP0 BCF STATUS, RP1 RETURN SDELAY 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 XL3 החזרה לא תלויים

פרס שני בתחרות הרובוטים Instructables ו- RoboGames

מוּמלָץ: