Potřebujete pomoc pro PIC 16F84 program následovníka Line

T

tomch

Guest
Ahoj,
Nedávno jsem začal můj vlastní malý projekt, který mě zaměstnal ve svém volném čase.Nedávno jsem byl dostat se do psaní jednoduchých programů v jazyce C a C .Začal jsem hledat způsoby, jak implimenting písemného programů do elektroniky hardware, jak jsem si docela dost expirence s konstrukcí jednoduchých elektronických obvodů.To je místo, kde jsem narazil na assembleru.Poté, co při pohledu na některé projekty, které impliment programování do elektroniky, rozhodl jsem se, že linka následovník vypadalo jako jednoduchý projekt, který má začít s.
Našel jsem jednoduchý příklad linky následovník, který používá mikrokontrolér známé jako 16f84.Podařilo se mi snadno postavit čidlo obvodu bez jakýchkoli potíží.

http://www.toko-elektronika.com/tutorial/linefollowerpic16f84.htm

Po prohlédnutí přes datový list pro 16f84 jsem schopen pochopit většinu, co se děje.Jde o to, že je házel mě je použití binárního kódu, v kombinaci s zpoždění použité v dolní části kódu.Pomoci s některou z těchto otázek bude velmi oceňována.Níže je kód, který osoba použila.Děkujeme Vám za Váš čas.

# Include p16f84a.inc

start: BSF STATUS, Rp0
MOVLW B'11110000 '
MOVWF TRISB
BCF STATUS, Rp0
clrf PORTB

Opakuji: MOVLW B'000000101 '
MOVWF PORTB
volání zpoždění
btfss PORTB, 5
hovoru vlevo
btfss PORTB, 6
volání právo
goto opakovatprávo MOVLW B'000001000 '
MOVWF PORTB
volání zpoždění
návrat

vlevo MOVLW B'00000010 '
MOVWF PORTB
volání zpoždění
návrat

zpoždění: clrf 0x01
delay0: clrf 0x01
delay1: decfsz 0x01, 1
goto delay1
delay2: decfsz 0x11, 1
goto delay0
návrat
END

 
Ahoj,

To je změna vidět někoho, pohybující se od C do Assembler - se bude snažit a pomáhat dělat věci jasnější.

První 16F84 / čip použít, webové projekty, mnohé je téměř obselete, takže kdykoliv je to možné vyzkoušet a používat 16F628A nebo 16F88, který by měl běžet stejný kód se pouze nejmenší ze změn, které kompilátor by měl brzy uvést na vás.

Použití různých Radix je obyčejný v assembleru, si wil najít Hex, desetinnou čárku a binární často používají ve stejném kusu kódu.
Podívejte se v knize nebo na webu na tabulku hodnot v HEC, binární, desítkové a také ASCII - to stojí za to seznam vytištění jako je pic16 assembler seznam instrukcí našel ke konci čipů datového listu.

Často otevření řádků kódu bude specifikovat Radix = Desítková tak systém automaticky předpokládá, že veškeré hodnoty je desetinné místo, pokud jeho uvedený jako hexadecimální nebo binární

Binární se často používá při nastavování I / O portů, z nichž každý bit představuje každý z 8 port linky, takže její snadné pochopit, jak jste ovládáním - se však můžete stejně tak použít hex, chcete-li.

Zpoždění na konci je to společný problém pro první časovače.

Frekvence oscilátoru, v tomto případě R / C nastavit, je rozdělen do 4, aby systémové hodiny rychlost, takže pokud to bylo 4mhz R / c systémové hodiny je 4mhz / 4 = 1 MHz

Většina assembler instrukce trvat 1 systém hodinovém cyklu vykonat, a tak vytvořit malým zpožděním jsme exectute smyčku, která dekrementuje čítač na každém průchodu, kdy dosáhne 00 to končí a zpoždění došlo - i když je poměrně krátká.

Nechám vás pracovat přesný čas ven, ale říkají každé smyčky je 6 pokyny, a to dekrementuje čítač proměnnou 255 krát před tím, než dosáhne 00 znovu.

Spustíte-li dva nebo více vnořených smyček pak bylo možné vybudovat větší zpoždění-vše závisí na systému, frekvence a počet zpoždění smyček.

Můžete strávil čas pracovat z vás vlastní zpoždění, ale maximálně využít hotové smyčky kalkulačky zpoždění nalézt na webu.

Doufám, že to jasný ..

 
Hurá za pomoc pochopení zpoždění smyčky, mnoho ocenil.Jde o to, že je házel mě stále, je následující dva řádky.Jsem si nejste jisti, proč je 9 číslic.Myslel jsem, že by měl být 8 číslic.
Opakuji: MOVLW B'000000101 '
právo MOVLW B'000001000 '

Níže je schéma zapojení, které jsem byl vybaven.<img src="http://www.tokoelektronika.com/tutorial/linefollowerpic16f84_files/image018.jpg" border="0" alt="Need help for PIC 16F84 Line follower program" title="Potřebujete pomoc pro PIC 16F84 program následovníka Line"/>http://www.tokoelektronika.com/tutorial/linefollowerpic16f84_files/image018.jpg

 
Ahoj,

Je nám líto, zmeškané, že 9 bitů - pro takový starý kód, který není jistý, proč se používají, aby - nepříliš užitečná.

V podstatě ano, máte pravdu, vy byste za normálních okolností pouze kód je s 8 bitů, stačí odstranit levé straně nula a váš kód 8 bitů pro přehlednost.

Věc je, při použití assembleru s 8 bit čipy, co zadáte, když stavíte to, váš kód, a to jak v binární nebo desítkové etc, stále se dostane konvertoval k hexadecimální kód, Zobrazit seznam Disassembley.

Je-li binární nebo desítková hodnota je převedena a přesahuje hex FF nebo DEC 255 nebo b 1111 1111 pak kompilátor umožní chybu

Chcete-li dokázat, změna právo MOVLW B'000001000 'to pravé MOVLW B'100001000' pak stavět znovu a uvidíte Chyba kompilace.

Afaid Nemohl jsem se dostat i když na tuto stránku pro zobrazení jpeg - se bude snažit později.

 

Welcome to EDABoard.com

Sponsor

Back
Top