Professional Documents
Culture Documents
Living
Outside
Play
Technology
Workshop
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
Image Notes 1. Ckt diagram of the RF transmitter ckt. i.e the remote control.
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
Image Notes 1. Ckt diagram of the receiver ckt. MC89c51 with the LCD interface.
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
Step 5: Programming
; P0.0 = M1 FORWARD RELAY ; P0.1 = M1 REVERSE RELAY ; P0.2 = M2 FORWARD RELAY ; P0.3 = M2 REVERSE RELAY ; P0.4 = M3 FORWARD RELAY ; P0.5 = M3 REVERSE RELAY ; P0.6 = M4 FORWARD RELAY ; P0.7 = M4 REVERSE RELAY ; ; P0.0 = LCD D0 ; P0.0 = LCD D1 ; P0.0 = LCD D2 ; P0.0 = LCD D3 ; P0.0 = LCD D4 ; P0.0 = LCD D5 ; P0.0 = LCD D6 ; P0.0 = LCD D7 ; ; P2.0 = FAN ; P2.1 = ; P2.2 = LIMT SWITCH 1 ; P2.3 = DATA RECEIVED ; P2.4 = RECEIVED DATA LSB ; P2.5 = RECEIVED DATA LSB + 1 ; P2.6 = RECEIVED DATA LSB + 2 ; P2.7 = RECEIVED DATA MSB ; ; P3.0 = ; P3.1 = ; P3.2 = LCD RS ; P3.3 = LCD R/W ; P3.4 = LCD E ; P3.5 = ; P3.6 = ; P3.7 =
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
; Program starts here ORG 0000H ;START MOV P0,#00H MOV P2,#OFOH SETB P2.3 MOV DPTR,#COMM1 ; COMMAND REGISTER UPI : CLR A ; INITIALIZE BY COMM1 STRING MOVC A,@A+DPTR INC DPTR
CJNE A,#$,COMMAND1 HERE: MOV A,#80H ; STARTING ADDRESS OF LINE 1 ACALL COMMAND MOV DPTR,#DATA 1 ; DISPLAY THE DATA LCALL LINE_DISPLAY_ROLL HERE1: MOV A,#0C0H ; STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA2 LCALL LINE_DISPLAY LCALL CHECK_INPUT CJNE A,#00H,NEXT1 MOV P0,#05H LCALL DELAY LCALL DELAY MOV A,#0C0H ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA3 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY COMMAND1: ACALL COMMAND AJMP UP1 NEXT1: CJNE A,#01H,NEXT2 MOV P0,#0AH LCALL DELAY LCALL DELAY MOV A,##0C0H ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA4 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY NEXT2: CJNE A,#02H,NEXT3 MOV P0,#09H LCALL DELAY LCALL DELAY MOV A,#OCOH ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA5 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY NEXT3: CJNE A,#03H,NEXT4 MOV P0,#06H LCALL DELAY LCALL DELAY MOV A,#0C0H ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA6 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY NEXT4: CJNE A,#04H,NEXT5 MOV P0,#10H LCALL DELAY
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
LCALL DELAY MOV A,#0C0H ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA7 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY NEXT5: CJNE A,#05H,NEXT6 MOV P0,#20H LCALL DELAY LCALL DELAY MOV A,#0C0H ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA8 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY NEXT6: CJNE A,#06H,NEXT7 MOV P0,#40H LCALL DELAY LCALL DELAY MOV A,#0C0H ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA9 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY NEXT7: CJNE A,#07H,NEXT8 MOV P0,#80H LCALL DELAY LCALL DELAY MOV A,#0C0H ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA10 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY NEXT8: CJNE A,#08H,NEXT9 SETB P2.0 ;(CONDITIONAL.. IF ADDED EXTRA FEATURES) LCALL DELAY LCALL DELAY MOV A,#0C0H ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA11 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY NEXT9: CJNE A,#09H,NEXTA CLR P2.0 ; (CONDITIONAL.. IF ADDED EXTRA FEATURES) LCALL DELAY LCALL DELAY MOV A,#0C0H ;STARTING ADDRESS OF LINE 2 ACALL COMMAND MOV DPTR,#DATA12 LCALL LINE_DISPLAY LCALL CHECK_KEY_RELEASE LJMP HERE1 ;LOOP HERE AFTER DISPLAY NEXTA: LJMP HERE1 ;LOOP HERE AFTER DISPLAY LINE_DISPLAY: CLR A MOVC A,@A+DPTR INC DPTR CJNE A,#$,DISPLAY1 RET DISPLAY1: ACALL DISPLAY AJMP LINE_DISPLAY LINE_DISPLAY_ROLL: LCALL DELAY CLR A
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
MOVC A,@A+DPTR INC DPTR CJNE A,#$,DISPLAY11 RET DISPLAY11: ACALL DISPLAY AJMP LINE_DISPLAY_ROLL DELAY: MOV R7,#0FFH LOOP1: MOV R6,#0FFH LOOP: DJNZ R6,LOOP DJNZ R7,LOOP1 RET ;************************************************************************************************ ;LCD STROBE COMMAND COMMAND: ACALL READY ;WRITE WHEN DISPLAY IS NOT BUSY MOV P1,A ;COMMAND CHARACTER IN PORT P1 CLR P3.2 ;COMMAND REGISTER CHOSEN CLR P3.3 ;WRITE ENABLE SETB P3.4 ;STROBE CHARACTER TO DISPLAYED CLR P3.4 RET ;RETURN ;************************************************************************************************ DISPLAY: ACALL READY MOV P1,A ;TAKE DATA TO BE DISPLAYED SETB P3.2 ;PS=P3.2=1 TO SELECT DATA REGISTER CLR P3.3 ;WRITE ENABLE SETB P3.4 ;STROBE CHARACTER TO DISPLAYED CLR P3.4 RET ;RETURN ;************************************************************************************************ READY: CLR P3.4 ;STROBE DISPLAY MOV P1,#0FFH ;CONFIGURE P1 FOR INPUT CLR P3.2 ;SELECT COMMAND REGISTER SETB P3.3 ;READ ENABLE WAIT: CLR P3.4 ;STROBE DISPLAY SETB P3.4 JB P1.7,WAIT ;READ BUSY STATUS (BF=0) CLR P3.4 ;END DISPLAY STROBE. RET ;RETURN ; ************************************************************************************************ COMM1: DB 3CH,0EH,06,01H,$ DATA1: DB BEBILS- ROBOT, $ DATA2: DB INSTRUCTABLES , $ DATA3: DB FORWARD $ DATA4: DB BACKWARD $ DATA5: DB LEFT $ DATA6: DB RIGHT $ DATA7: DB CAMERA LEFT $ DATA8: DB CAMERA RIGHT $ DATA9: DB CAMERA UP $ DATA10: DB CAMERA DOWN$ DATA11: DB OPTIONAL $ DATA12: DB OPTIONAL $ CHECK_INPUT: MOV P2,#0F0H SETB P2.3 JB P2.3,READ_INPUT NOP SJMP CHECK_INPUT READ_INPUT: MOV P0,#00H LCALL DELAY MOV A,P2 ANL A,#0F0H SWAP A RET CHECK_KEY_RELEASE: SETB P2.3 NOP JB P2.3,CHECK_KEY_RELEASE SETB P2.3 MOV P0,#00H
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/
RET
Step 6: Conclusion.
That's it guys, I hope you like it. I have not mentioned about how to program the IC, soldering it and assembling. Will publish in detail on demand. Critics are always welcome. Please suggest ideas and comment on the project. Reference BOOKS: Robotics demystified ----By Edwin Wise. 8051 Micro-controller ----By Kenneth.J.Ayala. Electric drives ----By Vedam Subhramanyam. Robot 4 U ----By Ruth Davis. MAGAZINES: ELECTRONICS FOR YOU. WEBSITES: www.epanorama.com www.robotbooks.com www.robothaven.com www.haltekindia.com www.google.com www.epe.mag/uk.org www.efy.com www.electronics.co.in Thank you, Bebil Poovakoot :-D
Related Instructables
http://www.instructables.com/id/A-very-cost-effective-ROBOT-using-microcontroller-/