فهرست مطالب:

صخره: 8 قدم
صخره: 8 قدم

تصویری: صخره: 8 قدم

تصویری: صخره: 8 قدم
تصویری: أشارة القدم 2024, جولای
Anonim
صخره
صخره

این ربات توسط یک برنامه اصلی بصری (از طریق پورت سریال) کنترل می شود و می تواند با سه سرعت مختلف توسط سیگنال تعدیل شده در پالس (PWM) تولید شده توسط یک میکروکنترلر PIC (16F877) حرکت کند. این ربات می تواند در دو حالت "کنترل عادی" و "ردیاب نور" کار کند. در حالت کنترل معمولی ، ربات می تواند اشیاء اندازه 3 تا 18 سانتی متر را از محلی به مکان دیگر در فاصله 150 متری حمل کند. در حالی که در حالت ردیاب نور ، نور را در یک اتاق تاریک دنبال می کند. بسیاری از سنسورها مانند سنسورهای نور استفاده شد. سنسور شیب ، تشخیص جریان فعلی ، تشخیص سطح باتری و برخی از سوئیچ های محدود و سنسورهای لمسی که در دست استفاده می شود. هنگامی که بر روی تپه ای حرکت می کند (کج) می تواند سرعت خود را ثابت نگه دارد و هنگامی که تاریک و تاریک می شود ، به طور خودکار نور را روشن می کند. همچنین برای ایمن نگه داشتن IC ، هنگامی که گیر کرده است جریان را قطع می کند و دست هنگام نگه داشتن چیزی متوقف می شود. 4 موتور DC توسط یک میکروکنترلر PIC 16F877 و 3 مدار درایور موتور کنترل می شوند. این حدود 4 ماه طول کشید و هزینه آن حدود 600 دلار است

مرحله 1: طراحی پروژه

طراحی پروژه
طراحی پروژه
طراحی پروژه
طراحی پروژه

در مرحله اولیه ، طراحی پروژه ارائه شد. به طور عمده ، تعریف بلوک نمودار ؛ شکل را ببینید

در این مرحله یک نمودار مدار دقیق تر مورد نیاز است ، اما برای تسهیل این امر ، ماژول های اصلی شناسایی شده عبارتند از: 1. میکروکنترلر 2. سنسورها 3. موتورها 4. مدار بی سیم 5. برنامه کامپیوتر. طراحی سه بعدی نیز انجام شده است ، شکل را ببینید.

مرحله 2: دستگاه ها و قطعات را انتخاب کنید

در این مرحله ، طراح باید دستگاه ها و اجزای مورد نیاز برای ساخت ربات را انتخاب کند.

این شامل موارد زیر است: مدار بی سیم (ماژول های MAX232 ، LM331 ، فرستنده FM و گیرنده) ، موتورها (4 موتور DC) ، مدار رانندگان موتورها (پل H) ، میکروکنترلر PIC (16F877) ، باتری ، تنظیم کننده های ولتاژ (MC7805) ، میکروسوییچ ها ، مقاومت در برابر نور ، سنسور شیب … و غیره درک محاسبه پذیری این دستگاه ها و نحوه عملکرد آنها با یکدیگر مهم است.

مرحله 3: میکروکنترلر

میکروکنترلر
میکروکنترلر

این مرحله مهمترین مرحله است. در ابتدا ، کدهایی که از PIC دریافت و منتقل می شوند باید مشخص شوند.

اتصال قطعات را به پین های مناسب PIC شروع کنید و میکروکنترلر را برنامه ریزی کنید. این ممکن است نیاز به ساخت مدارهای کوچک با استفاده از تنظیم کننده ها ، مقاومت ها ، سنسورها و غیره داشته باشد.

مرحله 4: برنامه PC را بنویسید

برنامه PC را بنویسید
برنامه PC را بنویسید
برنامه PC را بنویسید
برنامه PC را بنویسید

برنامه بر اساس ویژوال بیسیک نوشته شده بود.

این ارتباط از طریق RS-232 برقرار شد. استفاده از MSComm برای ارسال داده ها به میکروکنترلر با پیکربندی تنظیمات (شماره پورت ، نرخ باود ، تعداد برابری بیت های داده ، بیت های توقف). من از داده های 8 بیتی با یک بیت توقف و برابری با نرخ baud 9600 bps استفاده کردم.

مرحله 5: بدن را بسازید

بدن را بسازید
بدن را بسازید
بدن را بسازید
بدن را بسازید

طراحی خوب بدنه مهم است. همچنین با انتخاب چیدمان چرخ ، شکل را ببینید.

او پس از اطمینان از عملکرد خوب برنامه ها ساخته شد. این مرحله را می توان قبل از برنامه نویسی نیز انجام داد.

مرحله 6: ایجاد مدار بی سیم

ساخت مدار بی سیم
ساخت مدار بی سیم

ساخت مدار بی سیم می تواند مستقل باشد. در مرحله اولیه ، من از سیم برای اتصال کامپیوتر با ربات استفاده کردم ، و پس از نهایی شدن ربات ، مدار بی سیم یکپارچه شد.

مرحله 7: ادغام کنید

ادغام کنید
ادغام کنید

این لحظه ای است که ما اجزای خود را یکپارچه کرده و ربات را آزمایش کردیم.

مرحله 8: کد برنامه میکروکنترلر

؛ *************** نهایی ******************************* p = 16f877 شامل ردیس decidlocs "V" << 8 | "1" ؛ نسخه No.config _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 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 MOVWF 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، BS ، 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 BIRF ، BIRF ، BIRF ، BIRF ، BIRS ، PIRB ، BIRS ، PIRT 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 PORTB، 7 BANKSEL PIR1 BCF PIR1، RCIF BANKSEL RCREG MOVF RCREG، 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 MOFF INFUT_VAR، LOFT LOWT، LOVT، LOWT، LOWT، LOFT، LOWT، LOFT، LOWT، LOVE، LOVT، LOVE، LOWT 0؛ MOVE FORWARD SLOW SUBLW 0X66 BTFSC STATUS، Z GOTO FSLOW MOVF INPUT_VAR، 0؛ MOVE RIGHT SLOW SLLOW SUBLW 0X72 BTFSC STATUS، Z GOTO RSLOW MOVF INPUT_VAR، 0؛ MOVE LEFLW SLOW SLOW X6C BTFSC STATUS، Z GOTO LSLOW MOVF INPUT_VAR، 0؛ MOVE BACKWARD SLOW SUBLW 0X62 BTFSC STATUS، Z GOTO BSLOW MOVF INPUT_VAR، 0؛ MOVE FORWARD MEDIUM SUBLW SUBLW MUMX2 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 STATUS، Z GOTB 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 GV، MOTOX، GOFT، GOV BFAST MOVF INPUT_VAR، 0؛ HAND CLOSE SUBLW 0X43 BTFSC STATUS، Z GOTO HCLOSE MOVF INPUT_VAR، 0؛ STANDUS STANDUS SUBLW 0X4F BTFSC، Z GOTO HOPEN MOVF INPUT_VAR، 0، GUP، GUP، MOTOV، GUP، GUP، MOTOV، GUP، MOTOV، GUP، MOTOV، GUP، MOTOV، GUP، GUP، ؛ دستی 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؛ BTFSCV؛ LDET 0 ، 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 MWFW MOV، MWFW 0XCF MOVWF SPEED21 MOVLW 0X66 MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BSF PORTD، 0 BCF PORTD، 1 BSF PORTB، 1 BCF POR سل ، 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؛ 7SS 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 POTBOB POTB، GOTB 1، BCF، POTB، POTB، GF، PB، PB، POTB، PB، POTB، PB، PBB *************************** BSLOW BCF STATUS، RP0 BCF STATUS، RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET، 0؛ CALL BUTTLEVEL؛ BTFSC MSTOP، 1؛ GOTO STOP STAR CALL DARKLIGHT BTFSC LDET، 0؛ BSF PORTB، 7 MOVLW 0XCF MOVWF SPEED11 MOVLW 0X99 MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0X99 PWMBB، CF2، CF2 PORTB ، 2 REP5 BANKSEL PIR1 BTFSC PIR1 ، RCIF GOTO RXDATA GOTO REP5 GOTO CLROE ؛ ******************************** ********** اف MED BCF STATUS، RP0 BCF STATUS، RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET، 0؛ CUT BUTTLEVEL؛ BTFSC MSTOP، 1؛ GOTO STOPS CALL DARKLIGHT BTFSC LDET، 0؛ BSF PORTB 0FW MOV 0W 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 GOTO GOTO GOTO، STOPS GOTO REP6 PLUSEMED MOVLW 0XCF MOVWF SPEED11 MOVLW 0XCC MOVWF SPEED12 MOVLW 0XCF MOVWF SPEED21 MOVLW 0XCC MOVWF SPEED22 CALL PWM1ON CALL PWM2ON BCF PORD، CFF 1، CFF، CFF، CFF 1، CFF 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؛ ب 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 MOVFW MOVW، MVFW 0، MVFW 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؛ REP9 GOTO CLROE ؛ *************************************** 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 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 POTFOB POTFO، POTFO، POTFO، POTFO، POTFO، POTFO، POTFO، POTF، GO، POP، POTB، GO، REP10 REP10 GOTO CLROE ؛ *************************************** FFAST BCF STATUS ، RP0 BCF STATUS، RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET، 0 BSF MSTOP، 4؛ CUT BUTTLEVEL؛ BTFSC MSTOP، 1؛ GOTO STOPS CALL DARKLIGHT BTFSC LDET، 0؛ BSF PORTB MOVW MOV 0 MOVW 0 MOVL 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 STALL1 BTFSC MSTOP ، 0 GOTO STANPS BANKSEL PIR1 BTFSC PIR1 ، RCIF GOTO RXDATA NOP ، RCIFS GOTO RXDATA NOP ، 7 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 PORFORY PORST، 1 BS، PF 1، PF 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 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 POTBOB، CORP، CORP، CORP، CORP، CORP، CORP، CORP GOTO REP13 GOTO CLROE ؛ *************************************** LFAST BCF STATUS، RP0 BCF STATUS، RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET، 0؛ CUT 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 PORTB BCF، 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 PORTD، 1 BSF PORTB، 1 BCF PORTB، 2 REP14 CALL STALL1 BTFSC MSTOP، 0 GOTO GOTO GOTO GOTOB GOTO GOTO **************************************** BFAST BCF STATUS، RP0 BCF STATUS، RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET، 0؛ CUT BUTTLEVEL؛ BTFSC MSTOP، 1؛ GOTO STOPS CALL DARKLIGHT BTFSC LDET، 0؛ BSF PORTB، 7 MOVLW 0XDF MOVWF MOVWW MOVWX MOVLWX MOVLWX MOVLWX MOVLWX MOVLWX MOVLWX 0 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 MOVWALL CX2 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؛ ؛ 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 REPOBT 6، BTFSC PTFSC، BTFSC PORT، 6، BTS 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 0 GOTO CLROE ؛ **************************************** HUP BCF STATUS، RP0 BCF STATUS، RP1 MOVLW 0X00 MOVWF MSTOP BCF LDET، 0؛ CUT BUTTLEVEL؛ BTFSC MSTOP، 1؛ GOTO STOPS CALL DARKLIGHT BTFSC LDET، 0؛ BSF PORTB، 7 BTFSC PORTC، 4 BOTO STOR، 4 GOTO، 4 GOTO BTFSC PORTC ، 4 GOTO STANPS 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 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_REF ، 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؛ ، 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، 0 BTFSC، 0 BTFSC 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؛ CALL BUTFLV، MVFW 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؛ BALL 0، STOCT؛ OPS BANKSEL PIR1 BTFSC PIR1، RCIF GOTO RXDATA CALL LFC1 NOP CALL LFC2 NOP MOVF LR2، 0 SUBWF LR1، 0 BTFSC وضعیت، Z GOTO REPLF CALL LFC1 NOP CALL LFC2 NOP MOVF LR2، 0 SUBWF LR1، 0 BTFSS وضعیت، C GOTO LR1GREP GOTO REPLF LR2G وضعیت BCF، وضعیت RP0 BCF، RP1 MOVLW مقدار 0x00 MOVWF MSTOP؛ BUTTLEVEL CALL؛ 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 BCF PORTD، 0 BSF 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 LV2، LOT2، LOT2، LOT2 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 MOVWFF MSTW؛ 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 FROREP؛ CALL STALL1؛ BTFSC MSTOP، 0؛ GOTO STANPS BANKSEL PIR1 BTFSC PIR1، RCIF GOTO RXDATA؛ CALL LDIN؛ BTFSC MSTOP، 3 NOP CALL LFC2 NOP MOVF LR2 ، 0 SUBWF LR1 ، 0 BTFSC STATUS ، Z GOTO FROREP GOTO REPLF GOTO CLROE ؛ ************************* * 1 CALL SDELAY STOPA BCF STATUS، RP0 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 PWM2، 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 MATOP، 0، BSTF، STP، BSTF، BSTF، STP 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 ADFES، 0، SUB، SF، MUSF، 0، SUB، SF، MUSF، SF، BUSB 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 CF، STF، STF، STF، 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 CALL CONVERT MOVF ADRESH، 0 SUBLW 0XEE BTFSS STV، CVC BONC، CVC، BONCON BCF ADCON0، 7 BSF ADCON0، 6 BSF ADCON0، 0 BSF ADCON0، GO WAITADC BTFSC ADCON0، GOO GOTO WAITADC BCF STATUS، RP1 BCF STATUS، RP0 RETURNPWM1ON BANKSEL PR2 MOVL0، PR2، PR2، PR2 MOVWF CCP1CON MOVF SPEED12، 0 MOVWF CCPR1L BSF وضعیت، وضعیت RP0 BCF، RP1 MOVLW 0XF0 MOVWF TRISC وضعیت BCF، وضعیت RP0 BCF، T2CON RP1 BCF، T2CKPS1 BCF T2CON، T2CKPS0 BSF T2CON، TMR2ON BSF CCP1CON، CCP1CON 2 BSF، 3 RETURNPWM2ON BANKSEL 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 0X، CL2، STP، STP، STP، STP، STP، STP، STP T2CON ، T2CKPS0 BSF T2CON ، TMR2ON BSF CCP2CON ، 2 BSF CCP2CON ، 3 RETURNPW M1OFF CCP1CON BCF، 2 CCP1CON BCF، 3 BSF T2CON، T2CKPS1 BSF T2CON، T2CKPS0 T2CON BCF، TMR2ON MOVLW مقدار 0x00 MOVWF CCP1CON MOVLW مقدار 0x00 MOVWF CCPR1L BANKSEL PR2 MOVLW مقدار 0x00 MOVWF PR2 وضعیت BCF، وضعیت RP1 BCF، RP0 RETURNPWM2OFF BCF CCP2CON، CCP2CON 2 BCF ، 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، وضعیت RP1 BCF، RP0 RETURNLFC1 BANKSEL ADCON0 BSF ADCON0، 3 BCF ADCON0، 4 BSF ADCON0، 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 BSF ADCON0، 4 BFF، ADCON0، 4، BFF، ADCON0، 4 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 STW، STP، STP، STP 0X4C BTFSC STATUS، 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 GOTW، GOT2، GOTW XL3 REPURN NOPEND

جایزه دوم در مسابقه ربات Instructables و RoboGames

توصیه شده: