Page 12 - Microcontrolere - Indrumator de laborator
P. 12

Fig. 1.2. Circuitele folosite pentru accesarea memorie de programCircuitele folosite pentru accesarea memorie de program [2, p.15]

                                                                             i
                                             u

                                                                    u
                                               c
                                                           a
                                              n
                                                                       r
                                                            r
                                          i
                                         d
                                                                          o

                                            p
                                                      d

                                                                      u
                                           n

                                                                      t
                                                                  t
                                                  e
                                                                           l
                                                        e
                                                                           o
                                                    v

                                                                  s
                                                                         f
                                                t
                                                     e
                                                        r
                                                                r
                                                                   r
                                                                            s
                                                                e
                                                          h

                                                 d
                                                       e
                                                               a

                                                                        a
              În figura de mai sus este indicată din punct de vedere hardware structura folosittă
                                                             w
                                                            d
                                                                     c
                                                c
                                                                      d
                                               n
                                                     p
                                                               a
                                                                       e
                                                       i
                                                                       r
                                                              e
                                                           l
                                                                              3
                                              r
                                                                           p
                                                                             1

                                              i
                                                                     a
                                                                    i
                                                      r
                                                                         e
                                                                            e

                                                              r
                                                         a
                                                   u
          p
                                                                 u
          pentru adresarea memoriei de program. În principiu, prin aplicarea unei adrese pe 13

                                                    ,
                                                                  n
           n
                                                 i
                                                          p
             r
            t


                                                             a
                                                  i
                                                                   e
           e
                                                 p
                                                            c
                                     g
                                      r
                                    o
                                   r
                        m
                                       a
                d
                      a

                 r
                                        m
                                  p
                           o
                               i
                            r
                              e
                             i
                          m
                         e

                                 e

                                d

                                           n
                                                                        s
                    a
                                          Î
                                                           i
                                                       n
                                             p
                  e
              u
                   s



                    r
               a
                                         .
                     e
          biți pe magistrala de adrese a memoriei program (lb. engl. address bus), se obține pe
                                                                  u
                                                               s
                                                           d
                                                                 b

                                                               s
                                                          a
                                                                   s
                                                              e
                                                             r
                                                            d
                                                                  c
          magistrala de date a acestei memorii (lb. engl. program bus) o instrucțiune codată pe
                                                            o
                                                                t
                                                              n

                                                             i
                                                          )
                                                                 u
                                                                r

                                                               s
                                                      o
                                                              a
                                                       r
                                                                      n

                                                     m
                                                              r

                                                                  p
                                                                           l
                                             i
                                                           r
                                                            o
                                                                        d
                                                                     i

                                              i
                                                                             u
                                                             g

          14 biți. Adresa pentru accesarea unei locații din memoria program provine de la un
                                                               m
                                                                       e
                                                                              n
                                                                    v
                                                                   r
                                                                            a
                                                  m

                                                    e
                                                        i
                                                                         e
                                                        a


                                               d
                                                                   o
                                                i
                                                n
                                                          p
                                                             )
                                                               D

                                                                  p
                                                              .
          registru  numărător  de  program  PC  (lb.  engl.  program  counter).  După  resetarea  sau
                                                                 u
                                                   i
                                                                   z
                                           n
                                          i
                                                            C
                                                           P
                                                 r
                                                                         a
                                                        i

                                                  g
                                             t
                                                                         f
                                                 e
                                              u
                                               l
                                                               s


                                            u
                                                                t
                                                                       ,

                                                     r
                                                       u
                                                                    e
                                                      u
                                                                          p
          realimentarea  microcontrolerului,  conținutul  registrului  PC  este  zero,  fapt  ce
                                                                      o
                                                               e
                                                       l
                                                                     r
                                                                           t
                                                                              e
                                                    s

                                                                             c
                                                                 e

                                                     t
                                               o

                                                r
                                                           C
                                       i
                                        i
                                                            o
          corespunde la accesarea primei locații a memoriei program. Conțținutul numărătorului
                                                             n

                                            e
                                             m
                                           m
                                         a

                                                          .

                                                       a
                                                  i
                                                   p
                                                     o
                                                 e
                                                       r
                                                i
                                                    r
                                                      g
                                                        m
          de program se actualizează prin mai multe modalități.

                                                            a

                                                                      n
               A.  Conținutul  PC  se  incrementează  în  mod  automat,  transparent  față  de
                                                                    a
                                                               t
                                                             t
                                                                 n

                                                                          a
                                                                       t
                                                                     r
                                                                  s
                                                                         f
                                                                   p
                                                                     e
                                                             ,
                                                                r
                                                                a
                                                                     e
                                                              f
                                                              i


                                                                           g
                                                               i

                                                          n
          utilizator,  cu  o  unitate  după  executarea  unei  instrucțiuni,  fiind  astfel  pregătită
                                                                          e
                                                                    s
                                                           i
                                                                        p
                                                               n
                                                                   a
                                                                         r
                                                                d
                                                            ,
                                                         i
                                                                     f
                                                                    t
                                                         u
                                                                      l
                                                        ț
                                                              e
                                                                       e
                                                              t
                                                             s
                                                                  o
                                                                           z

                                                                   d
                                                                          a
                                                                m
                                                                      d
                                                                         b
                                                                    u
                                                                     l
          accesarea  instrucțiunii  următoare.  Se  poate  spune  că  acesta  este  modul  de  bază  de
                                                            e


          adresare a memoriei de program, linie după linie, sau instrucțiune după instrucțiune.
                                                              n

                                                               e
                                                             u
                                                             i
                                                            ț
                                                              u
                                                            u
          Este și modul în care sunt scrise instrucțiunile în cadrul fișierului surssă. Un exemplu
                                                               i
                                                                 u
                                                           e
                                                                s
                                                          i
                                                                  r
                                                             l
                                                            r

                                                         ș
                                                       a
                                                        r
                                                            p
                                                                 m
                                                      o
                                                               g
                                                                a
                                                          d
                                                           e
                                                                r

                                                        e

                                                     t
          pentru cazul de față poate fi observat în secvența următoare de program.
                                                             r
                                                                   .
                                                              o
             ...
                        BANKSEL(VAR1)

                                                                t
                                                                              e
                                                                             s
                                                                         _
                                                                              t
                                                                      a
                                                                    t
                                                                  h
                                                                 c

             adr_1:     MOVLW         10h     ;  se  presupune  că  eticheta  adr_1  este
                                                                          1
                                                                i
                                                                   e
                                                                    a
                                                                            e
                                                               e
                                                                       d
                                                                        r

                                                             ă
                                                              i
                                                                     r

                                                                  d
                                                                        d
                                                            e
                                                                    o
                                                                   i

                                                                           e
                                                                       a
                                                                 e
                                                                          s
                                                                            i
                                                               n
                                              ; atribuită de către link editor adresei cu
                                                                              u

                                                           r
                                                                    t
                                                           t
                                                                k
                                                              l
                                                                         r
                                                                          e
                                                                             c

                                                          ă
             nr.                              ; nr. 100 din memoria de program
                                                                  p
                                                  0
                                                r
                                                                   o
                                                   0
                                                                     r
                                               n

                                                 1
                                                .
                                                                       m
                                                             i
                                                                   r
                                                                      a
                                                                e
                                                        m
                                              ;

                                                            o
                                                               d
                                                          m
                                                         e
                                                              a
                                                                    g


                                                     d

                                                             r
                                                      n

                                                      i
                                               c
                        ADDLW         5h      ; codul acestei instrucțiuni se va găsi în
                                              ;

                                                              c
                                               o
                                                        e
                                                            t
                                                       t
                                                            r
                                                        i
                                                         i
                                                          n

                                                           s
                                                  l

                                                d
                                                 u
                                                             u
                                                     e
                                                      s
                                                    a
                                                    c
                                                                       u
                                                                         d

                                                                        a
                                                                          r
                                                                            s

                                                                           e
                                                                      c
                                                       m

                                                        e
                                                                o
                                                    d

                                                                 g
                                                     e
                                                            i
                                                            r
                                                             e

                                                               r
                                                         m
                                                              p
                                                           o
                                                                  r
                                                  i
                                                                    m
                                                                   a
                                              ; locația de memorie program cu adresaa
                                                   a
                                              ; 101
                        MOVWF         VAR1  ;  instrucțiunea  este  plasatiunea  este  plasată  în  memoria

                                                                        l
                                                          r
                                                          e
                                              ;

                                                                       u
                                                            a
                                                           s
                                              ; program la adresa 102; rezultatul
                                                  r
                                                      a
                                                 g
                                                      l
                                                    m
                                                   a

                                                         d
                                               p

                                                r

                                                        a
                                                o
                                                                     t
                                                                ;
                                                                       t
                                                                  e
                                                                      a

                                                              0
                                                                 r
                                                               2
                                                                    u
                                                             1
                                                                   z
                                                                     l

                                                                e
                                                                          î
                                                       i
                                                        i


                                                      n
                                                                   e
                                                                   t
                                                                     s

                                              ; instrucțiunii anterioare este salvat înn
                                                     u
                                                                 e
                                                     i
                                                                  s
                                                                      a
                                                               r
                                                           t
                                                                       v
                                                          n
                                                                        a
                                                           e
                                                            r
                                                              a
                                                                         t
                                                                       l
                                                         a
                                                             o
                                                             i
                                                                            t
                                                  i
                                                   a
                                                             e

                                                                     c
                                                            r
                                                            i
                                                                       e
                                              ; locația de memorie de date cu etichetaa
                                                                   e
                                                                   t

                                                                        t
                                                         m
                                                       m
                                                                 d

                                                                          h
                                                               e
                                                        e
                                                                         c


                                                    d
                                                                      u
                                                                           e
                                                           o

                                                     e
                                                                  a
                                                                        i
                                                              d
                                              ; VAR1
             ...
                                               9
   7   8   9   10   11   12   13   14   15   16   17