elet0021 - conjunto de instrucoes pic

Upload: ramon-luiz-santos-goncalves

Post on 19-Feb-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    1/52

    UNIVASFUNIVASFMicroprocessadores eMicroprocessadores e

    MicrocontroladoresMicrocontroladores

    Prof. Rodrigo Ramos

    [email protected]

    Conjunto de Instrues doConjunto de Instrues do

    PIC16F877APIC16F877A

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    2/52

    Tipos de InstruesTipos de Instrues

    A famlia PIC16F87XA possui 35 instruesSo i!iias "asi#amente em $uatro tipos%

    Instrues e transfer&n#ia e aos

    Instrues e pro#essamento e aosInstrues e muana e ireo e e'e#uo

    Instrues e #ontrole

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    3/52

    Tipos de InstruesTipos de InstruesInstrues e transfer&n#ia e aos% limitam(se a mo!er aos a mem)ria

    e pro*rama para o espao e re*istraores e entre re*istraores+ semprepassano pela ,-A.

    -iteral ou enereamento imeiato% aos so parte a instruo.

    A#esso ireto% usa enereo a instruo mais enereamento o"an#o e mem)ria.

    /nereameto ine'ao% atra!0s os re*istraores FS e I2F.

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    4/52

    4 Instrues e pro#essamento e aos% ao sai ore*istraor+ passa pela ,-A unto #om o #onteo o/ e !olta ao re*istraor ou /. 9peraesispon!eis%

    Aio e su"trao

    In#remento e e#remento

    -impar re*istraor :clearing)

    ;it settin* e "it #learin* :resettin*A>,SGP1+PH para enereamento e

    "an#o

    movlw 0x" ; carrega reg% 020 com valor 0x"

    movwf 0x20

    bsf ."., 340 ; seleciona banco 1

    movwf 0x20

    goto *

    Instrues de transferncia de dados (cont.)Instrues de transferncia de dados (cont.)

    ,sar a anela File e*isters para !erifi#ar ofun#ionamento o pro*rama.

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    15/52

    ,so os "its S>A>,SGIP para enereamento

    ine'ao :inireto;.

    9 in#remento e!e o#orrer $uano for ati!ao um "oto

    :push button< #one#tao ao pino AH. Implemente o ispositi!o no protoboard e pro*rame oPIC16F877A #om seu firmware+ testano(o nos MitsiBti#os.

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    29/52

    Exerccio 2Exerccio 2

    /s#re!a um pro*rama $ue realiDe a multipli#ao Z ' 5:note $ue 2 ' 5 W 2 ' Y O 2 ' 1

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    30/52

    Exerccio 3Exerccio 3

    /s#re!a um pro*rama para somar ois nmeros e 16"its.

    ICA% ,tiliDe la"els para espe#ifi#ar os re*istraores $ue*uararo os !alores a serem usaos. i#a% use a ireti!a

    C;-9CL para efinir "lo#os e #onstantes.C;-9CL H'TH

    ar1+ arT+ ar3+ ...+ ar2

    /2C 2o usar es!io #oni#ional+ apenas as operaes etransfer&n#ia e e pro#essamento e aos.

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    31/52

    goto k

    4es!ia pro*rama para o ponto M :*eralmente um la"el:&> .econd!abel; >:&> retorna o bFte mais signif%

    movwf 4-!">

    goto .econd!abel

    org 0x9)B

    movlw (0

    org 0x1G)B ; @ndereco na pagina 9

    .econd!abelE ; @xec$5Do do goto * abaixo

    goto *

    Instrues de desio (cont.)Instrues de desio (cont.)

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    34/52

    call k

    4C=amaa e su"rotina espe#ifi#aa por M.49perao i&nti#a goto+ #om e'#eo e $ue PC 0 sal!ona pil=a.

    4ois #i#los e instruo.

    4Ao fim a su"(rotina+ uma instruo ret$rn:ou e$ui!alenteesta o "it " o re*istraor f e salta pr)'ima instruo se " W 1.

    >empo e e'e#uo%

    41 #i#lo se #onio for falsa :sem es!ioempo e e'e#uo%

    41 #i#lo se resultao no for Dero :no salta pr)'ima instruomovf emp, w

    addlw !=? L$adrado2

    btfsc ."., -

    incf 4-!">, f

    movwf 4-!

    L$adrado2E

    retlw 0

    retlw 1

    %%%

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    46/52

    ExerccioExerccio

    /s#re!a um pro*rama em assemblypara a#ionamentoe um isplaK e 7 se*mentos usano uma ta"ela. 9s "itse a#ionamento os nmeros e H a Z e!em estarispon!eis em uma ta"ela.

  • 7/23/2019 ELET0021 - Conjunto de Instrucoes PIC

    47/52

    trasos (trasos (DelaysDelays))

    ,niae "Bsi#a e tempo 0 o #i#lo e instruo%

    Ci#lo e instruo W Y ` fre$&n#ia e #lo#M

    /'.% Para um #lo#M e TH @JD%

    Ci#lo e instruo W Y ` TH @JD W H+T us.

    Atrasos e tempo poem ser #on!ertios em #i#los einstruo pela e'presso%

    Ci#los e instruo W Atraso e tempo b :Fre$. Clo#M ` Ye#=nolo*K In#.+ THH5.

    PIC16F87'A ata S=eet+ @i#ro#=ip >e#=nolo*K In#.+ THH3.

    @. PreMo+ UPro*rammin* an CustomiDin* t=e PIC@i#ro#ontrollerV+ 3r. /.+ @#ra(Jill+ THH8.

    F. Pereira+ U@i#ro#ontrolaores PIC% >0#ni#as A!anaas 16F6T7 e 16F6T8V+ 5a. /.+ ri#a+ THH8.