asemblerski kod

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

asemblerski kod

Post by kepos »

Radio sam nesto malo sa asemblerom u zelji da ga naucim, no medjutim zapoe sam odma na pocetku :(

ovaj kod:

Code: Select all

;*****Set up the Constants**** 

STATUS	equ	03h	;Address of the STATUS register
TRISA	equ	85h	;Address of the tristate register for port A
PORTA	equ	05h	;Address of Port A
COUNT1	equ	08h	;First counter for our delay loops
COUNT2	equ	09h	;Second counter for our delay loops 

;****Set up the port**** 

		bsf		STATUS,5	;Switch to Bank 1
		movlw		00h		;Set the Port A pins
		movwf		TRISA		;to output.
		bcf		STATUS,5	;Switch back to Bank 0 

;****Turn the LED on**** 

Start	movlw		02h		;Turn the LED on by first putting
		movwf		PORTA		;it into the w register and then
								;on the port 

;****End of the program**** 

		end					;Needed by some compilers,
								;and also just in case we miss
								;the goto instruction.
sam skinuo sa jednog tutoriala (doduse prepravljen malo :)), i ko sto pise u komentarima trebao bi upaliti jednu ledicu i ostavit ju da svjetli. No medjutim on to ne radi.
shema je ovdje, samo sto sam ja umjesto r i c, spojio kristal na 15 i 16 nozicu.
Program je kompajliran sa mplab-om i namjestio sam za koji uredjaj zelim. Ispravno programiran.

Ako netko moze pomoci, bio bih mu zahvalan. hvala.
User avatar
Elektronicar
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 467
Joined: 19-01-2008, 17:05
Location: Balkan

Re: asemblerski kod

Post by Elektronicar »

Neznam da li ti je ovo ceo kod u svakom slucaju hvali ti par stvari.

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _RC_OSC(ili koji vec koristis)
Ako si spojio kristal onda moras i konfigurisati kristal.

list p=16F84 ; Definise upotrebljeni mikrokontroler
#include <p16F84.inc> ; Ubacuje nazive registra u program

Nigde nije definisan pic koji koristis ?
vbmaster
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 201
Joined: 04-01-2009, 08:28

Re: asemblerski kod

Post by vbmaster »

Ocigledno je da je reco o PIC16F84...Ne znam cemu ti sluze one promenjive count na pocetku, brisi ih...
Dali deo programa je ok, tj prelazak na bank1 zbog upisa u tris registar , zatim upis podatka na port a, to je ok. Kada ga aesmblujes (ASM23000 ili sl) dobijeni HEX fajl upisujes u PIC ali vodi racuna o konfiguracijskom registru odnosno moras upisati koji oscilator koristis...posto si stavljao kristal strikliraj zadnja dva bita u konfiguracijskom registru...trebalo bi posle upisa u PIC da radi...i jos nesto, pozeljno je da MCLR na + spajas preko otpornika 4K7-10K
vbmaster
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 201
Joined: 04-01-2009, 08:28

Re: asemblerski kod

Post by vbmaster »

i jos nesto..brisi onu labelu start...nemas nikakvu petlju, to je vrlo trivijalan programcic...
User avatar
Elektronicar
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 467
Joined: 19-01-2008, 17:05
Location: Balkan

Re: asemblerski kod

Post by Elektronicar »

Odavno nisam radio u asembleru ali evo nesto napamet.

Code: Select all

list p=16F84A ; DefiniÜe upotrebljeni mikrokontroler
#include <p16F84A.inc> ; Ubacuje nazive registra u program

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

org 0x00  ; Pocetak programa

errorlevel -203

bsf STATUS,RP0
movlw 0x00
movwf TRISA
bcf STATUS,RP0

movlw 0x02
movwf PORTA

end
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

Re: asemblerski kod

Post by kepos »

Puno hvala obojici na odgovoru.
@elektronicar - hvala, nisam znao da se kristal mora postavit na pocetku. Naime tutorial i nije tako dobar pa to nisu naveli. a nisam nasao nista korisnije za rpatit (bar ne nesto za djabe). probat cu sad bas ovo ... OVe promenjive gore su ostaci koda koji je prepravljan.. ne bi trebale smetat, samo ztauzimaju prostor... bar tak mislim. al maknit cu ih...

@vbmaster - je rjec je o 16f84a ko sa sheme. malo sam bio ljen pa nisam nacrto svoju shemu, nace uvijek mclr spajam preko 10k. hvala na upozorenju.
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

Re: asemblerski kod

Post by kepos »

Cisto da pokazem da ste me nesto naucili i da sam shvatio:

Code: Select all

list p=16F84A ; DefiniÜe upotrebljeni mikrokontroler
#include <p16F84A.inc> ; Ubacuje nazive registra u program

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

ORG 0x00  ;Pocetak programa

errorlevel -203
COUNT1 	EQU	08h
COUNT2 	EQU	09h

BSF 	STATUS,RP0
MOVLW 	0x00		;u W stavljamo sve 0 - output
MOVWF 	TRISA		;podesavamo ulaze i izlaze na portu a
BCF 	STATUS,RP0

;krece program
START	MOVLW	04h		;u w zapisujemo hexa 4
						;u binarnom to znaci treci a izlaz jer je
						;4h 00100 u binarnom (dakle 1 na trecem izlazu)
MOVWF	PORTA			;pustamo signal na port

;delay petlja. potrebna da se ne bi sve dogodilo prebrzo
loop	DECFSZ	COUNT1,1
		GOTO	loop
		DECFSZ	COUNT2,1
		GOTO loop ;255 puta broji do 255

MOVLW	00h		;sve nule
MOVWF	TRISA	;saljemo na port a -> gasimo lampicu

;jos jeda delay
loop1	DECFSZ	COUNT1,1
		GOTO	loop1
		DECFSZ	COUNT2,1
		GOTO	loop1 ;255 puta broji do 255

GOTO START ;vracamo se na pocetak
end
i radi :) lampica na izlazu se pali i gasi.
Attachments
Shema za spoj pica uz moj kod
Shema za spoj pica uz moj kod
pic shema.JPG (11.21 KiB) Viewed 3336 times
vbmaster
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 201
Joined: 04-01-2009, 08:28

Re: asemblerski kod

Post by vbmaster »

Sjajan si, napredujes veoma brzo...pozzz!
User avatar
Elektronicar
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 467
Joined: 19-01-2008, 17:05
Location: Balkan

Re: asemblerski kod

Post by Elektronicar »

Evo jedan korisni link mada verujem da si to vec video ...

http://www.ptt.yu/korisnici/t/r/trifunov/pic/pic.htm" onclick="window.open(this.href);return false;
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

Re: asemblerski kod

Post by kepos »

Nesto vrlo vrlo vrlo slicno u negleskom izdanju da, domaceg nisam nista pronasao. hvala :) :)
User avatar
Elektronicar
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 467
Joined: 19-01-2008, 17:05
Location: Balkan

Re: asemblerski kod

Post by Elektronicar »

http://www.mikroe.com/en/books/picbook/picbook.htm" onclick="window.open(this.href);return false;
http://www.mikroe.com/en/books/picmcubook/" onclick="window.open(this.href);return false;

Evo i ovo mozda ti kasnije bude od pomoci.
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

Re: asemblerski kod

Post by kepos »

Citam jos te razne tutoriajle i ima dobrih stvari. Mnogo tog mi je jasno, ali jedna osnovna stvar nikako da sjedne. ako u kodu imam:

Code: Select all

COUNT1    EQU   08h
...

    ;delay petlja. potrebna da se ne bi sve dogodilo prebrzo
    loop   DECFSZ   COUNT1,1
          GOTO   loop
...
Zasto se gorinji kod izvrsava svaki put 255 puta? Ok jasno mi je za prvi puta, jer je inicijalna vrjednost toga registra jedna hFF odnosno .255, ali dok se petlja izvrsava taj broj se smanjuje i svojevremeno dodje na nula. Ali pri iducem pozivu ona opet krene od 255? Sto joj je vratilo vrijednost? Gdje je resetirana natrag na 255, odnosno zasto nije na tom mjestu 0 ako smo ju konsantno smanjivali?

za konkretni primjer se moze uzet i ovaj kod gore koji sam napisao.
micromatic
Penjem se :)
Penjem se :)
Posts: 58
Joined: 23-02-2005, 14:13
Location: Hrvatska - Cakovec
Contact:

Re: asemblerski kod

Post by micromatic »

U svakom sljedećem prolazu petlja se izvršava 256 puta. 0(ulazna vrijednost prije smanjivanja i testa dali je nula)-1=255 gledano na razini byta.
__________________
http://www.micromatic.hr
__________________
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

Re: asemblerski kod

Post by kepos »

e bravo ja. pa tog se nisam sjetio. hvala :)
Post Reply