Hjælp Pic 16f84a

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
Hej har prF8%vet at lave dette program til et diagram, som i fF8%rste
omgang bare skal fE5% en diode til at lyse.
men det virker ikke? er der ikke en af jer, som kan fortE6%lle hvad jeg
gF8%r forkert ? :/

output bennet er RB1 eller ben 7.

Jeg bruger 4 mhz crystal er 2 * 22 pf kondensatorer, som er tilsluttet
pin 15 og 16.
;3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D=
3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%
3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%
;
;       Configuration Bits
;
;3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D=
3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%
3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%3D3D%

_CP_ON                       EQU     H'000F'
_CP_OFF                      EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_PWRTE_OFF                   EQU     H'3FFF'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_LP_OSC                      EQU     H'3FFC'
_XT_OSC                      EQU     H'3FFD'
_HS_OSC                      EQU     H'3FFE'
_RC_OSC                      EQU     H'3FFF'


bsf        03h,8                     ;Skift til Bank 1
movlw        b'00000000'                            ;SE6%tter alle Port b
movwf        86h                     ;benene til output
bcf        03h,8                    ;skifter tilbage til Bank 0

movlw        01h
movwf        06h

HE5%ber virkelig pE5% der er en som vil hjE6%lpe mig lidt :)


Re: Hjælp Pic 16f84a
Quoted text here. Click to load it


Normalt gider jeg ikke læse maskinkode, men du skal tage stilling til
hvad der sker når de viste instruktioner er udført. Enten må du stoppe
processoren, eller sende den i en løkke, hvor den bliver. Ellers ved du
INTET om hvad der sker.

Bo //

Re: Hjælp Pic 16f84a

Quoted text here. Click to load it


I MPLab kan du køre programmet i stepmode med eet step ad gangen og overvåge
statusflag o.s.v.
Svinger x-tal osc.?

--
MVH.
Finni



Re: Hjælp Pic 16f84a

Quoted text here. Click to load it


Men i en RIGTIG processor standser programmet ikke, bare fordi der ikke
er flere instruktioner.

Bo //

Re: Hjælp Pic 16f84a
Hej ...

Det er dejligt at der stadig er nogle der kan se det smarte i at programmere
i maskinkode, selv om det kan være noget af en mundfuld at starte på,
men når man først får det ind under huden så er det svært at komme uden om.
Jeg har ikke lige tid til at analysere hvad du gør forkert i dit eget lille
forsøg men her er et godt lille eksempel der burde virke,
en diode på PORTB 0 og en på PORTB 7, og du skulle gerne se at de blinker
/Carsten




        TITLE "test1"
        list P16%f84
        __config 0x3FFA
 noexpand

 include "p16c84.inc"

 list

 CBLOCK  0C             ; Variabel definering
        Counter         ;
        counter1
 ENDC

    list
;First the powerup code

        org     00h             ;origon i linie 0
        goto    START           ;går til start
        org     06h             ;origon i linie 06
  
; Main program

start
        bsf   STATUS, RP0
        movlw b'00000000'
        movwf TRISA           ;set all port A  som output
        movlw b'00000000'
        movwf TRISB           ;set all port B som output

        movlw 0x00
        movwf counter1          ; counter1 settes to 0

        movlw 0xff
        movwf counter           ;counter settes til 256

loop    decfsz counter, 1       ;counter tælles ned med 1 og næste linje
springes over hvis 0
        goto $-1        

        incf counter1, 1        ;counter1 tælles op med 1
        movf counter1, 0        ;værdien af counter1 plaseres i W
        movwf PORTB            
        goto loop

        end



MHV
Carsten

Re: Hjælp Pic 16f84a

Quoted text here. Click to load it
der har lige sneget sig en lille fejl ind i det første eksempel, den skulle
være rettet nu.
Sådan går det når man skal lave små eksempler som ikke gør brug af makroer.



        TITLE "test1"
        list P16%f84
        __config 0x3FFA
 noexpand

 include "p16c84.inc"

 list

 CBLOCK  0C             ; Variabel difinering
        Counter         ;
        counter1
 ENDC

    list
;First the powerup code

        org     00h             ;origon i linie 0
        goto    START           ;går til start
        org     06h             ;origon i linie 06
  
; Main program

start
        bsf   STATUS, RP0
        movlw b'00000000'
        movwf TRISA           ;set all port A  som output
        movlw b'00000000'
        movwf TRISB           ;set all port B som output
        bcf   STATUS, RP0

        movlw 0x00
        movwf counter1          ; counter1 settes to 0

        movlw 0xff
        movwf counter           ;counter settes til 256

loop    decfsz counter, 1       ;counter tælles ned med 1 og næste linje springes
over hvis 0
        goto $-1        

        incf counter1, 1        ;counter1 tælles op med 1
        movf counter1, 0        ;værdien af counter1 plaseres i W
        movwf PORTB            
        goto loop

        end



--
MHV
Carsten

Re: Hjælp Pic 16f84a
Bo: Hvad mener du ? det lyder interessant ! vil du ikk uddybe det
lidt ?

Finni: hvor vE6%lger jeg det step mode?

Carsten: mange tak for det, jeg vil prF8%ve at brE6%nde og lave print
efter det, og sE5% aflE6%se dine instruktioner nF8%je !

// Kevin



Re: Hjælp Pic 16f84a

Bo: Hvad mener du ? det lyder interessant ! vil du ikk uddybe det
lidt ?

Finni: hvor vælger jeg det step mode?

Carsten: mange tak for det, jeg vil prøve at brænde og lave print
efter det, og så aflæse dine instruktioner nøje !

// Kevin

Stepmode vælger du i MPlab som er et udviklingsværktøj som gratis
kan downloades fra Microchip.
Men det er måske for voldsomt til et lille øveprojekt.
Men prøv at tænke over hvad Bo svarer....
I din kodestump mangler du en "goto loop" og en "end" .
Men jeg er ikke nogen ørn til dette.

--
MVH.
Finni




Re: Hjælp Pic 16f84a
Quoted text here. Click to load it

Hvad er interessant ?

en PIC standser ikke bare fordi du ikke giver den flere instruktioner.

Så enten må du sende den ind i en loop, hvor den bliver, eller osse må
du give den en HALT eller STOP instruktion (ved ikke om en PIC har den
slags??)

Bo //

Re: Hjælp Pic 16f84a
finni: jeg bruger mplap ;) derfor jeg spurgte :)

Bo: ja det der lF8%d interessant var at du vidste hvad jeg gjorde
forkert og derfor vil jeg jo gerne have det uddybet...

Men ja okay hvis jeg skal sE6%tte den ind i et loop, skal jeg sE5% bare
skrive 'go to start' ? og hvis jeg skal stoppe processoren skriver jeg
vel 'end' til sidst i min kode?

 // Kevin

Re: Hjælp Pic 16f84a

Som Bo så rigtigt er inde på mangler du et loop, men jeg er overbevist om at
hvis programmet ellers var skrevet rigtigt ville det ikke betyde noget,
hvis du kikker på det lille eksempel jeg har skrevet og det du kar skrevet
er der en himmel vid forskel i starten, du får aldrig fortalt compileren
hvilken processor den skal compile til du lister forskellige Configuration
Bits, men du vælger ikke et af dem, du får aldrig defineret starten af
programmet.

Hvad har du af udstyr til at programmere/brænde pic processoren med ?


/Carsten

Re: Hjælp Pic 16f84a
Quoted text here. Click to load it

Okay jeg er ogsE5% li startet og er meget forvirret over det hele..
Men det med configurations bits var noget jeg fik af en lE6%rer men han
er ikke til at blive klog pE5%? han sagde bare jeg skulle skrive det ind
i starten og sE5% sagde han ik mere... ?

Skriver i MPlap og min brE6%nder er Picstart plus. sE5% det fejler
ingenting..


Re: Hjælp Pic 16f84a

Quoted text here. Click to load it

Okay jeg er også li startet og er meget forvirret over det hele..
Men det med configurations bits var noget jeg fik af en lærer men han
er ikke til at blive klog på? han sagde bare jeg skulle skrive det ind
i starten og så sagde han ik mere... ?

Skriver i MPlap og min brænder er Picstart plus. så det fejler
ingenting..


Er det en ældre udgave af MPlab?
I så fald ligger stepmode under en knap med to grønne fødder.
Conf. bits sætter du jo i MPlab så sætter den dem selv ind.
Og du kan rette dem lige før du brænder pic´en i brænderprogrammet.
Det kan godt være din lærer er svær at forstå men der findes tonsvis
af vejledninger på nettet, også for os begyndere, du kan læse.
F.eks.

http://www.oz5vf.dk/byggeprojekter/pickreds/pickreds.html



http://www.radiohobby.dk/picprocessor/Pic_kom_igang.pdf


--
MVH.
Finni





Re: Hjælp Pic 16f84a
Quoted text here. Click to load it

"end" fortæller oversætteren, at der ikke er mere tekst at oversætte. et
er ikke en instruktion til procesoren, men et direktiv til oversætteren.
Det svarer lidt til et punktum efter en særning i en bog.

Jeg synes jeg har fortalt hvad du kan gøre:

"Så enten må du sende den ind i en loop, hvor den bliver, eller osse må
du give den en HALT eller STOP instruktion (ved ikke om en PIC har den
slags??)"


Bo //

Re: Hjælp Pic 16f84a
Quoted text here. Click to load it

okay mange tak for hjE6%lpen det vil jeg sE5% prF8%ve :)

og igen tak til jer andre ogsE5% :)

Site Timeline