En mycket god ROBOT med mikrokontroller 89c 51. (5 / 6 steg)

Steg 5: programmering

; P0.0 = M1 FRAMÅT RELAY
; P0.1 = M1 OMVÄND RELAY
; P0.2 = M2 FRAMÅT RELAY
; P0.3 = M2 OMVÄND RELAY
; P0.4 = M3 FRAMÅT RELAY
; P0.5 = M3 OMVÄND RELAY
; P0.6 = M4 FRAMÅT RELAY
; P0.7 = M4 OMVÄND 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 VÄXEL 1
; P2.3 = MOTTAGNA DATA
; P2.4 = MOTTAGNA DATA LSB
; P2.5 = MOTTAGNA DATA LSB + 1
; P2.6 = MOTTAGNA DATA LSB + 2
; P2.7 = MOTTAGNA 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 =

; Programmet börjar här

ORG 0000H; START

MOV P0, #00 H
MOV P2, #OFOH
SETB P2.3

MOV DPTR, #COMM1; KOMMANDOT REGISTER
UPI: CLR. INITIERAS AV COMM1 STRÄNG
MOVC EN,
INC DPTR

CJNE A, #' $', COMMAND1
Här:
MOV, #80 TIM. STARTADRESSEN FÖR LINJE 1
AKALLAR KOMMANDO

MOV DPTR, #DATA 1. VISA DATA
LCALL LINE_DISPLAY_ROLL
HERE1:
MOV, #0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO

MOV DPTR, #DATA2
LCALL LINE_DISPLAY

LCALL CHECK_INPUT

CJNE A, #00 H, NEXT1
MOV P0, #05 H
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, #0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, # UPPGIFTER3
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

COMMAND1: AKALLAR KOMMANDO
AJMP UP1

NEXT1:
CJNE A, #01 H, NEXT2
MOV P0, #0AH
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, ## 0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, #DATA4
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

NEXT2:
CJNE A, #02 H, NEXT3
MOV P0, #09 H
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, #OCOH; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, #DATA5
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

NEXT3:
CJNE A, #03 H, NEXT4
MOV P0, #06 H
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, #0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, #DATA6
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

NEXT4:
CJNE A, #04 H, NEXT5
MOV P0, #10 H
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, #0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, #DATA7
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

NEXT5:
CJNE A, #05 H, NEXT6
MOV P0, #20 H
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, #0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, #DATA8
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

NEXT6:
CJNE A, #06 H, NEXT7
MOV P0, #40 H
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, #0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, #DATA9
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

NEXT7:
CJNE A, #07 H, NEXT8
MOV P0, #80 H
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, #0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, #DATA10
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

NEXT8:
CJNE A, #08 H, NEXT9
SETB P2.0;(CONDITIONAL.. OM LAGT EXTRA FUNKTIONER)
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, #0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, #DATA11
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

NEXT9:
CJNE A, #09 H, NEXTA
CLR P2.0; (VILLKORLIG... OM LAGT EXTRA FUNKTIONER)
LCALL FÖRDRÖJNING
LCALL FÖRDRÖJNING
MOV, #0C0H; STARTADRESSEN FÖR LINJE 2
AKALLAR KOMMANDO
MOV DPTR, #DATA12
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1; LOOP HÄR EFTER VISNING

NEXTA:
LJMP HERE1; LOOP HÄR EFTER VISNING

LINE_DISPLAY:
CLR A
MOVC EN,
INC DPTR
CJNE A, #' $', DISPLAY1
RET

DISPLAY1: AKALLAR DISPLAY
AJMP LINE_DISPLAY

LINE_DISPLAY_ROLL:
LCALL FÖRDRÖJNING
CLR A
MOVC EN,
INC DPTR
CJNE A, #' $', DISPLAY11
RET

DISPLAY11: AKALLAR DISPLAY
AJMP LINE_DISPLAY_ROLL

FÖRSENING: MOV R7, #0FFH
LOOP1: MOV R6, #0FFH
SLINGA: DJNZ R6, LOOP
DJNZ R7, LOOP1
RET

;************************************************************************************************

; LCD-STROBE KOMMANDO

KOMMANDO: AKALLAR REDO; SKRIVA NÄR DISPLAYEN INTE ÄR UPPTAGEN
MOV P1, A; KOMMANDOT TECKEN I PORT P1
CLR P3.2; KOMMANDOT REGISTER SOM VALTS
CLR P3.3; SKRIV AKTIVERA
SETB P3.4; STROBE KARAKTÄR ATT VISAS
CLR P3.4
RET; RETURNERA

;************************************************************************************************

DISPLAY: AKALLAR REDO
MOV P1, A; TA DATA SOM SKA VISAS
SETB P3.2; PS = P3.2 = 1 TILL VÄLJ DATAREGISTER
CLR P3.3; SKRIV AKTIVERA
SETB P3.4; STROBE KARAKTÄR ATT VISAS
CLR P3.4
RET; RETURNERA

;************************************************************************************************

KLAR: CLR P3.4; STROBE UPPVISNING
MOV P1, #0FFH; KONFIGURERA P1 FÖR INPUT
CLR P3.2; VÄLJ KOMMANDOT REGISTER
SETB P3.3; LÄS AKTIVERA
VÄNTA: CLR P3.4; STROBE UPPVISNING
SETB P3.4
JB P1.7, VÄNTA; LÄS UPPTAGEN STATUS (BF = 0)
CLR P3.4; SLUTET DISPLAY STROBE.
RET; RETURNERA

; ************************************************************************************************

COMM1: DB 3CH, 0EH, 06, 01H, '$'
DATA1: DB "BEBIL'S-ROBOT, $"
DATA2: DB "INSTRUCTABLES, $"
UPPGIFTER3: DB "FRAMÅT $"
DATA4: DB "BAKÅT $"
DATA5: DB 'VÄNSTER $'
DATA6: DB "RÄTT $"
DATA7: DB "KAMERA VÄNSTER $"
DATA8: DB "KAMERAN RÄTT $"
DATA9: DB "KAMERA UPP $"
DATA10: DB "KAMERA NER$"
DATA11: DB 'VALFRIA $'
DATA12: DB 'VALFRIA $'

CHECK_INPUT:
MOV P2, #0F0H
SETB P2.3
JB P2.3, READ_INPUT
NOP
SJMP CHECK_INPUT

READ_INPUT:
MOV P0, #00 H
LCALL FÖRDRÖJNING
MOV, 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, #00 H
RET

Se Steg
Relaterade Ämnen

Robot med mikrokontroller

kolla för mer instructuions om hur man gör dessa robotar själv med hjälp av fritt tillgängliga grejer...

Hur till spår din Robot med OpenCV

UPPDATERING: Låter göra robotar, mitt hem digital hackerspace, köptes av RobotShop. Jag vill inte gå in, men de nya ägarna förbjudit mig själv och de flesta veteran medlemmarna. Som sagt, de flesta av länkarna där kommer att brytas. Lyckligtvis kunde...

Billiga 4WD invända att undvika Robot med fyra IR närhet sensorer...

Detta är en billig grundläggande fyra motorer, fyra sensorer, programmerbara 8051 objekt att undvika robot med breadboad. Denna robot kan också användas som en linje efter robot bara ändra programmet. Jag installerade två batterier för mer makt, men...

Autonoma Sumo bekämpa Robot med pneumatiska Flipper - hur man

denna Sumo Bot utformad, byggdes, programmerad och testade under en 12 veckors period för en av mitt sista år engineering klasser. Syftet var att konstruera och bygga en lätt helt självständiga sumo kämpar robot för en i klassen Sumo Bot konkurrens....

Cool ROBOT: med magiska LED krafter

VälkommenDetta är min Instructable om hur man bygger en Cool Robot med magiska LED krafter.Denna design är helt min jag inte grundade bort det av någon annans planer. Jag har precis börjat att göra det i Google Sketchup och den utvecklats till vad de...

Bygga en liten Robot: gör världen är minsta hjul Robot med en gripare.

Bygga en 1/20 kubiktum robot med en gripare som kan plocka upp och flytta små objekt. Den styrs av ett Picaxe mikrokontroller. Vid denna tidpunkt, tror jag detta kan vara världens minsta hjulförsedda robot med en gripare. Som utan tvekan kommer att f...

2WD röst kontrollerat Robot med Arduino och BitVoicer Server

I detta Instructable ska jag visa hur man bygger en 2WD röststyrd robot. Även om jag kontrollera endast DC motorer om du vill flytta roboten, samma tillvägagångssätt kan användas till röststyrning stegmotorer och servomotorer, så om du planerar att b...

R2D2 Robot med Bluetooth och ljud

Detta kommer att visa dig hur du skapar din egen bluetooth styrd robot med anpassade ljudeffekter. Så sett över, hederliga jag mig att se ut som R2D2.Reservdelslista1 x Arduino Uno1 x Adafruit Wave sköld (du kommer att behöva löda detta ihop själv)1...

Bygga en enkel Robot med hjälp av en Arduino och L293 (H-brygga)

Hej gott folk, detta är min första instructable, och jag är här för att visa hur man bygger en enkel robot med lite Arduino programmering oroa inte dig, jag har bifogat kodfilen nedan, du kan använda den som referens.De som har ingen aning om en Ardu...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

Baldroid v3 balansera Robot med Actobotics delar och IOIO-OTG

Hej, när du har skapat ett par prototyper med en Android-telefon + IOIO + OTG modul beslöt jag att bygga en färdig produkt med hjälp av delar och komponenter från Actobotics / Servocity.com... Förutom kvaliteten på produkterna som Actobotics gjorde d...

Grundläggande raden efter Robot med Arduino

09/07/2015Det har varit några år eftersom vi Ursprungligen postat denna grundläggande linje följande Robot med Arduino handledning, och det verkar så många människor tyckte att det bra att vi ska skicka en uppdatering som löper nuvarande Arduino bibl...

Mycket enkel robot för nybörjare

Detta instructable visar hur man gör mycket enkel robot. Det kommer att upptäcka hinder och undvika det. Detta är stora projekt för någon som är ny på arduino och vill göra första robot.Varför robot?Eftersom det är bra sätt att lära sig att programme...

Labyrint Problemlösaren Robot, med artificiell intelligens med Arduino

(Om du gillar detta Instructable, glöm inte att rösta på det (ovan: högra hörnet flaggan). Rex, roboten tävlar på ROBOTICS och sensorer tävlingar. Tack så mycket! ;-)Detta Instructable utvecklades på mitt senaste projekt: rad efterföljare Robot - PID...

Bygga en Robot med Perler pärlor

Inte du hatar när en rubrik lovar du något som författaren inte kan leverera senare? Jag antar att jag är skyldig till att. Naturligtvis bygga du inte en robot med perler pärlor. Men du kan bygga något som ser ut som en robot. Så här går vi:Steg 1: V...

Styra din Robot med hjälp av mobiltelefon

Denna hela handledning är också tillgänglig på min hemsidaHej kommer världen i detta inlägg jag att visa dig hur man styr roboten med hjälp av mobiltelefon. Styr en robot med hjälp av mobiltelefon är inte så komplicerat som ditt tänkande det är mycke...

Styra din Robot med en Wii Nunchuck (och en Arduino)

efter bär själv spela Wii boxning jag måste tänka vore det inte bra om jag kunde använda detta för att styra min robot, (ser att min vänstra hand).Titta runt på internet hittade jag en uppsjö av människor som gör liknande saker, (länkar till alla bar...

3D tryckt Sumo Robot med hög dragkraft hjul

Syftet var att konstruera och bygga en lätt helt självständiga sumo kämpar robot för en i universitet Sumo Bot konkurrensen. Roboten var skyldig att skjuta eller lyfta motståndarens robot ut från arenan.Begränsningar:Mindre än 1000gPassar i en 200 mm...

Bygga en Robot med MSP430 Launchpad

I detta Instructable kommer vi att bygga en liten robot med MSP430 Launchpad från TI. Roboten kommer att använda två inriktad likströmsmotorer och kommer att sysselsätta differentiell drivsystem.Intelligens är försedd med en MSP430 Launchpad styrelse...