جدول المحتويات:

الصخرة: 8 خطوات
الصخرة: 8 خطوات

فيديو: الصخرة: 8 خطوات

فيديو: الصخرة: 8 خطوات
فيديو: TBOIR #8 | الصخرة السرية جدا 2024, يوليو
Anonim
الصخرة
الصخرة

يتم التحكم في هذا الروبوت بواسطة برنامج مرئي أساسي (من خلال المنفذ التسلسلي) ، ويمكنه التحرك بثلاث سرعات مختلفة بواسطة إشارة عرض النبضة المعدلة (PWM) التي تم إنشاؤها بواسطة متحكم PIC (16F877). يمكن تشغيل الروبوت في وضعين ، وضعي "التحكم العادي" و "تعقب الضوء". في وضع التحكم العادي ، يمكن للروبوت أن يحمل أشياء بحجم من 3 إلى 18 سم من مكان إلى آخر في حدود 150 مترًا. بينما في وضع تعقب الضوء ، فإنه يتبع الضوء في غرفة مظلمة. تم استخدام العديد من أجهزة الاستشعار ، مثل مستشعرات الضوء ؛ مستشعر الإمالة ، واستشعار التيار المماطلة ، واستشعار مستوى البطارية ، وبعض مفاتيح التبديل وأجهزة استشعار اللمس المستخدمة في اليد. يمكن أن تحافظ على سرعتها ثابتة عندما تسير على تل (مائل) وتقوم بتشغيل الضوء تلقائيًا عندما تصبح مظلمة. أيضًا للحفاظ على أمان IC ، يقوم بفصل التيار عندما يكون عالقًا وتتوقف اليد عند حمل شيء ما ، تم استخدام 4 محركات DC يتم التحكم فيها بواسطة متحكم PIC 16F877 و 3 دوائر للسائق ، وقد استغرق الأمر حوالي 4 أشهر ، وتكلف حوالي 600 دولار.

الخطوة الأولى: تصميم المشروع

تصميم المشروع
تصميم المشروع
تصميم المشروع
تصميم المشروع

في المرحلة الأولية ، تم تقديم تصميم للمشروع. بشكل أساسي ، تحديد مخطط الكتلة ؛ انظر الشكل.

مطلوب مخطط دائري أكثر تفصيلاً في هذه المرحلة ، ومع ذلك ، لتسهيل ذلك ، فإن الوحدات الرئيسية المحددة كانت: 1. متحكم 2. مستشعرات 3. محركات 4. دائرة لاسلكية 5. برنامج كمبيوتر. تم عمل تصميم ثلاثي الأبعاد أيضًا ، انظر الشكل.

الخطوة 2: اختر الأجهزة والمكونات

في هذه المرحلة ، يجب على المصمم اختيار الأجهزة والمكونات المطلوبة لبناء الروبوت.

وهذا يشمل: الدائرة اللاسلكية (MAX232 ، LM331 ، وحدة إرسال FM وجهاز الاستقبال) ، المحركات (4 محركات DC) ، دائرة محركات المحركات (H-bridge) ، متحكم PIC (16F877) ، البطارية ، منظمات الجهد (MC7805) ، المحولات الدقيقة ، مقاومات الضوء ، مستشعر الإمالة … إلخ. من المهم فهم قابلية حساب هذه الأجهزة وكيفية عملها معًا.

الخطوة 3: المتحكم الدقيق

المتحكم
المتحكم

هذه الخطوة هي أهم خطوة. في البداية ، يجب تحديد الرموز التي سيتم استلامها وإرسالها من الموافقة المسبقة عن علم.

ابدأ في توصيل المكونات بالدبابيس المناسبة للموافقة المسبقة عن علم ، وبرمج المتحكم الدقيق. قد يتطلب ذلك بناء دوائر صغيرة باستخدام المنظمين ، والمقاومات ، وأجهزة الاستشعار … إلخ.

الخطوة 4: اكتب برنامج الكمبيوتر

اكتب برنامج الكمبيوتر
اكتب برنامج الكمبيوتر
اكتب برنامج الكمبيوتر
اكتب برنامج الكمبيوتر

تمت كتابة البرنامج على أساس Visual Basic.

تم إنشاء الاتصال من خلال RS-232. استخدام MSComm لإرسال البيانات إلى وحدة التحكم الدقيقة عن طريق تكوين الإعدادات (رقم المنفذ ، معدل البث بالباود ، عدد تماثل بتات البيانات ، بتات التوقف). لقد استخدمت بيانات 8 بت مع بت توقف واحد وتكافؤ بمعدل باود 9600 بت في الثانية.

الخطوة الخامسة: بناء الجسم

بناء الجسم
بناء الجسم
بناء الجسم
بناء الجسم

التصميم الجيد للجسم مهم. أيضا اختيار ترتيب العجلة ، انظر الشكل.

تم بناء الروبوت بعد التأكد من أن البرامج تعمل بشكل جيد. يمكن القيام بهذه الخطوة قبل البرمجة أيضًا.

الخطوة السادسة: بناء الدائرة اللاسلكية

قم ببناء الدائرة اللاسلكية
قم ببناء الدائرة اللاسلكية

يمكن أن يكون بناء الدائرة اللاسلكية مستقلاً. في المرحلة الأولية ، استخدمت سلكًا لتوصيل الكمبيوتر بالروبوت ، وبعد الانتهاء من الروبوت ، تم دمج الدائرة اللاسلكية.

الخطوة 7: الدمج

دمج
دمج

هذه هي اللحظة التي دمجنا فيها مكوناتنا واختبرنا الروبوت.

الخطوة 8: رمز برنامج وحدة التحكم الدقيقة

؛***************القائمة النهائية p = 16f877 تتضمن مجموعات decidlocs الجذر "V" << 8 | "1" ؛ رقم الإصدار التكوين _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC ؛ ********** المتغير الرئيسي ***************************** cblock 0x20 ؛ بداية البنك 0 منطقة ذاكرة الوصول العشوائي INPUT_VAR L1 L2 X SPEED11 SPEED12 SPEED21 SPEED22 MSTOP LDET LR1 LR2 endc ؛ ********** بداية البرنامج الرئيسي *************** بدء BSF الحالة ، RP0 حالة BCF ، RP1 MOVLW 0X40 MOVWF ADCON1 MOVLW 0XFF ؛ PORT A IS I MOVWF TRISA MOVLW 0X00 ؛ PORT B هو O MOVWF TRISB MOVLW 0XF0 ؛ PORT C هو I / O MOVWF DISC 0 TRISD MOVLW 0X07؛ PORT 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 ، SPAEN BTFSC RCSTA BSF RCSTA ، SPAEN BTFSC RCSTA BSF 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 GOTO WASTA 4 BCF 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 BTCIR PORTB1 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 SUBFT ، 0X 0؛ MOVE FORWARD SLOW SUBLW 0X66 BTFSC STATUS، Z GOTO FSLOW MOVF INPUT_VAR، 0؛ MOVE RIGHT SLOW SUBLW 0X72 BTFSC STATUS، Z GOTO RSLOW MOVF INPUT_VAR، 0؛ MOVE LEFT SLOW SUBLW 0 حالة X6C BTFSC ، Z GOTO LSLOW MOVF INPUT_VAR ، 0 ؛ MOVE BACKWARD SLOW SLOW SUBLW 0X62 BTFSC STATUS ، Z GOTO BSLOW MOVF INPUT_VAR ، 0 ؛ MOVE FORWARD MEDIUM SUBLW 0X46 BT GFSC INPUT_VAR 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 0X42OV BTFSC STATUS، ZFOTX Z GOTO FFAST MOVF INPUT_VAR، 0؛ MOVE RIGHT FAST SUBLW 0X57 BTFSC STATUS، Z GOTO RFAST MOVF INPUT_VAR، 0؛ MOVE LEFT 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 UP SUBF HOOPT_VAR، 0؛ HAND UP SUBF_HOOPT_VAR، 0؛ ؛ HAND DOWN SUBLW 0X64 BTFSC STATUS ، Z GOTO HDOWN MOVF INPUT_VAR ، 0 ؛ متابعة خفيفة 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 MSTOIGHT STOPS، 1؛ LDET، 0؛ BSF PORTB، 7 NORMALSLOW MOVLW 0XFF MOVWF SPEED11 MOVLW 0X66 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON PORTWM2ON BCF ، RCIF GOTO RXDATA GOTO REP3 GOTO CLROE ؛ ******************************************* ** حالة LSLOW BCF ، RP0 BCF STATUS ، RP1 ؛ CALL BUTTLEVEL ؛ BTFSC MSTOP ، 1 ؛ GOTO STOPS MOVLW 0X00 MOVWF MSTOP BCF LDET ، 0 CALL DARKLIGHT BTFSC LDET ، 0 ؛ BSF POVORB ، 7 MOVLW 0XF 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 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 35 **************************** BSLOW BCF STATUS، RP0 BCF STATUS، RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET، 0؛ CALL BUTTLEVEL؛ BTFSC MSTOP ، 1 ؛ توقف ، CALL DARKLIGHT BTFSC LDET ، 0 ؛ BSF PORTB ، 7 MOVLW 0XCF MOVWF SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0X99 MOVWF SPEED122 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 ؛ توقف CALL DARKLIGHT BTFSC LDET ، 0 ؛ BSF PORTB ، 7 NORMALMED MOVLW 0X 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 STALL 1 BTFSC MSTOP ، 0 GOTO STOPS 1 BANKSEL PORKSEL GOTO REP6 PLUSEMED MOVLW 0XCF MOVWF SPEED11 MOVLW 0XCC MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED 21 MOVLW 0XCC MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD 1 BSFALL 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 11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORTD 0 BSF PORTB ، 1 BCF PORTB 1 BTFSC PIR1 ، RCIF GOTO RXDATA GOTO REP8 GOTO CLROE ؛ ***************************************** **** حالة LMED 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 POVORTB، 7 MOVLW 0XF MSTOP 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 STALL1 ؛ BTFSC MSTOKS ، 0 ؛ BFS 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 SPEED 12 MOVLW 0XFF MOVWF SPEED21 MOVLW 0X7F MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD ، 0 BSF PORTD ، 1 BCF PORTB ، 1 BCF PORTB ، 2 BT10 MOTALL STALL 1 REP10 GOTO CLROE ؛ *********************************************** FFAST BCF حالة ، 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 0XEF7 MOVE MOVWF SPEED21 MOVLW 0X7F MOVWF SPEED22 CALL PWM1ON CALL PWM2ON الأحيائي PORTD، 0 الأحيائي PORTD (1)، البنك السعودي الفرنسي PORTB، 1 البنك السعودي الفرنسي 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 GOT 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 PORTB 1 ، 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 MFFLW 0X 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 REPPS CALL GOTO REP13 GOTO CLROE ؛ ********************************************* LFAST 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 البنك السعودي الفرنسي PORTD، 0 الأحيائي PORTD (1)، البنك السعودي الفرنسي PORTB، 1 BCF PORTB، 2 CALL SDELAY MOVLW عشرية 0xFF MOVWF SPEED11 MOVLW 0X4C MOVWF SPEED12 MOVLW 0XEF MOVWF SPEED21 MOVLW 0XB3 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD ، 0 BCF PORTB ، 1 BSF PORTB ، 1 BCF PORTB ، 2 REPEED 14 CALL STALL1 BTFSC MSTOP ، 0 GOTO STOPS BANKSCEL POR1 ******************************************** 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 MOVWALL SPEED11 MOVLW 0XED12 MOVWALL 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 PORTD ، 0 BSF PORTD ، 1 BCF PORTB ، 1 BCF PORTB ، 2 REP15 CALL STALL 1 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 GOTC PORTD GOTO STOPS CALL SDELAY CALL STALL2 BTFSC MSTOP ، 2 GOTO STOPS BANKSEL PIR1 BTFSC PIR1 ، RCIF GOTO RXDATA GOTO REP16 GOTO CLROE ؛ ************************* ******************** حالة HOPEN 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 BTFSC PORTD، 4 GOTO STOPS BCF PORTD، 2 BSF PORTD، 3 REP17 BTFSC PORTD، 4 GOTO STOPS CALL SDELAY CALL STALL2 BTFSC MSTOP، 2 GOTO STOPS BANKSEL PIR1 BTFSC PIRO، RCIF GOTATA GOTO CLROE ؛ *********************************************** 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 3 BCF PORTC BTFSC PORTC ، 4 GOTO STOPS BANKSEL PIR1 BTFSC PIR1 ، RCIF GOTO RXDATA GOTO REP18 GOTO CLROE ؛ ******************************* ************ حالة HDOWN 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 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 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 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_FREG، 3؛ ، 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 INKSON، PC GONIE ، 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 ، C GOTO LR2G LR1G BCF الحالة ، RP0 BCF الحالة ، RP1 MOVLW 0X00 MOVWF MSTOP ؛ CALL BUTTLEVEL ؛ BT11 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 ؛ 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 BTR2، 0 SUBWF REPLF LR2G الوضع الأحيائي، RP0 الأحيائي الوضع، RP1 MOVLW 0X00 MOVWF MSTOP، CALL BUTTLEVEL، BTFSC MSTOP، 1؛ GOTO مطارات STOPS MOVLW عشرية 0xFF MOVWF SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW عشرية 0xFF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON الأحيائي PORTD، 0 البنك السعودي الفرنسي 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 SUBWFS 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 BTT MSTOP؛ CUTF SPEED 11 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 FROREP؛ CALL STALL 1؛ BTFSC MSTOP، 0؛ GOTO STOPS BANKSEL PIR1 BTFSC PIR1، RCIF GOTO RXDATA؛ CALL LDIN؛ BTFSC MSTOPS، 3 LOTO STOPS NOP CALL LFC2 NOP MOVF LR2 ، 0 SUBWF LR1 ، 0 حالة BTFSC ، Z GOTO FROREP GOTO REPLF GOTO CLROE ؛ ***************************** ***************** توقف BTFSS MSTOP ، 4 GOTO STOPA MOVLW 0XCF MOVWF SPEED11 MOVLW 0XB3 MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XB3 MOVWF SPEED22 CALL PWM1 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 ، 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 CALL CONVERT MOVF ADRESH، 0 SUBLW 0X70 BTFSS STATUS، C BSF MSTUS، 0 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 CALL CONVERT ، MOVF BTF ، 0 SUBF الحالة ، 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 BCF STATUS 0 حالة BTFSS ، C GOTO BL1 GOTO BL2 BL1 BSF MSTOP ، 1 BSF PORTB ، 6 BL2 عودة DARKLIGHT BCF الحالة ، RP0 BCF الحالة ، 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 PORTFONS 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 0XF2 BCF BCF MOVWF CCP1CON MOVF SPEED12، 0 MOVWF CCPR1L BSF STATUS، RP0 BCF STATUS، RP1 MOVLW 0XF0 MOVWF TRISC BCF STATUS، RP0 BCF STATUS، RP1 BCF T2CON، T2CKPS1 BCF2 T2KON، T2CKPS1 BCF2 T2KON، T2CKPS1 الوضع PR2 T2CON ، T2CKPS0 BSF T2CON ، TMR2ON BSF CCP2CON ، 2 BSF CCP2CON ، 3 إرجاع M1OFF CCP1CON الأحيائي، 2 الأحيائي CCP1CON، 3 البنك السعودي الفرنسي T2CON، T2CKPS1 البنك السعودي الفرنسي T2CON، T2CKPS0 الأحيائي T2CON، TMR2ON MOVLW 0X00 MOVWF CCP1CON MOVLW 0X00 MOVWF CCPR1L BANKSEL PR2 MOVLW 0X00 MOVWF PR2 الأحيائي الوضع، RP1 الأحيائي الوضع، RP0 RETURNPWM2OFF الأحيائي CCP2CON، 2 الأحيائي CCP2CON ، 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 BC0 الوضع حالة 5 BCF ، RP0 BCF STATUS ، RP1 CALL CONVERT MOVF ADRESH ، W ANDLW 0XF0 MOVWF LR1 BCF STATUS ، RP0 BCF STATUS ، RP1 العودة LFC2 BANKSEL ADCON0 BCF ADCON0 ، 3 BSF ADCON0 ، 4 ، RP0 BCF STATUS ، RP1 RP1 CALL CONVERT MOVF ADRESH، 0 ANDLW 0XF0 MOVWF LR2 BCF STATUS، RP0 BCF STATUS، RP1 إرجاع LDIN BANKSEL ADCON0 BCF ADCON0، 3 BSF ADCON0، 4 BCF ADCON0، 5 BCF STATUS، RUSP0 BCF 0X4C BTFSC STATUS، C GOTO COMP4 BSF MSTOP، 3 COMP4 BCF STATUS، RP0 BCF STATUS، RP1 إرجاع SDELAY CLRF L2 XL3 CLRF L1 XL2 CLRF TMR0 XL1 MOVLW 0XFF SUBWF TMR0 ، حالة W BTFSS ، C GOTO XL1 MOVLW 0X20 INCF L1 SUBWF L1 ، W BTFSS الحالة ، C GOTO XL2 MOVLW2 XL3 عودة NOP NOPEND

الجائزة الثانية في مسابقة الروبوتات Instructables و RoboGames

موصى به: