Lap Trinh Avr

Embed Size (px)

Citation preview

  • 8/18/2019 Lap Trinh Avr

    1/186

    Bài 1 - Làm quen AVR

    1

    • 2

    • 3

    • 4

    • 5

     ( 387 Votes )

    Nội dung Các bài cần tham khảo trước

    1. Giới thiệu.

    2. Công cụ.

    3. Ví dụ.

    4. Mô phỏng.

    Download ví dụ

    V! "tudio.

    Mô phỏng với #$ot%u&.

     

    I. Giới thiệu

      V! l' ()t h* vi +i,u -hin do h/ng t(%l &0n ut t(%l cng l' nh' &0nut d5ng vi +i,u -hin 67C81 (' c9 th :;n +/ t. V! l' chip vi+i,u -hin 6 :it& với cu t$?c t@p lệnh +An gi0n h9aB!"C!%duc%d n&t$uction "%t

    Co(put%$> ()t -iu cu t$?c +ang th hiện Eu th= t$ong cFc :) lí.Tại sao !"# &o với cFc chip vi +i,u -hin 6 :it& -hFc V! c9 nhi,u +Hc tính

    hAn hIn hAn c0 t$ong tính Jng dụng dK & dụng> v' +Hc :iệt l' v, chJc nLng

    http://www.hocavr.com/index.php/vi/lectures/lamquenavrhttp://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://www.hocavr.com/index.php/lectures/lamquenavr#1-gioi-thieuhttp://www.hocavr.com/index.php/lectures/lamquenavr#2-cong-cuhttp://www.hocavr.com/index.php/lectures/lamquenavr#3-vi-duhttp://www.hocavr.com/index.php/lectures/lamquenavr#4-mo-phonghttp://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=5http://www.hocavr.com/index.php/software/avr-studiohttp://www.hocavr.com/index.php/software/protueshttp://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://www.hocavr.com/index.php/lectures/lamquenavr#1-gioi-thieuhttp://www.hocavr.com/index.php/lectures/lamquenavr#2-cong-cuhttp://www.hocavr.com/index.php/lectures/lamquenavr#3-vi-duhttp://www.hocavr.com/index.php/lectures/lamquenavr#4-mo-phonghttp://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=5http://www.hocavr.com/index.php/software/avr-studiohttp://www.hocavr.com/index.php/software/protueshttp://www.hocavr.com/index.php/vi/lectures/lamquenavr

  • 8/18/2019 Lap Trinh Avr

    2/186

    • GNn nhE ch?ng ta -hông cNn (Oc thP( :t -Q linh -iện phụ n'o -hi & dụng

    V! th@( chí -hông cNn nguRn t;o ung cloc- cho chip thESng l' cFc -hTi th;ch

    anh>.

    • Uhi=t : l@p t$Wnh (;ch n;p> cho V! $t +An gi0n c9 lo;i (;ch n;p chX

    cNn v'i +iện t$Y l' c9 th l'( +EZc. ()t &T V! c5n h[ t$Z l@p t$Wnh on \ chip :]ng

     :ootload%$ -hông cNn (;ch n;p^

    • _Pn c;nh l@p t$Wnh :]ng "M cu t$?c V! +EZc thi=t -= tEAng thích C.

    •  `guRn t'i nguPn v, &ou$c% cod% t'i liệu application not%^$t lớn t$Pn

    int%$n%t.

    • bNu h=t cFc chip V! c9 nhng tính nLng %atu$%&> &au

    C9 th & dụng ung cloc- lPn +=n 1eMbf hoHc & dụng ung

    cloc- n)i lPn +=n 6 Mbf &ai &T 3>

    _) nhớ chEAng t$Wnh la&h c9 th l@p t$Wnh l;i $t nhi,u lNn v' dung

    lEZng lớn c9 "!M !a( tnh> lớn v' +Hc :iệt c9 :) nhớ lEu t$ l@p

    t$Wnh +EZc jj#!kM.

     `hi,u ng v'o $a mk #k!U> 2 hEớng :iBdi$%ctional>.

    6 :it& 1e :it& ti(%$mcount%$ tích hZp #M.

    CFc :) chun +Ti nalog \ Digital phn gi0i 1 :it& nhi,u -Pnh.

  • 8/18/2019 Lap Trinh Avr

    3/186

    ChJc nLng nalog co(pa$ato$.

    Giao diện nTi ti=p q"!U tEAng thích churn nTi ti=p !"B232>.

    Giao diện nTi ti=p Uwo \i$% \"%$ial tEAng thích churn 2C>

    Ma&t%$ v' "lav%$.

    Giao diện nTi ti=p "%$ial #%$iph%$al nt%$ac% "#>

    ...

    M)t &T chip V! thông dụng

    U7"12

    U7"2313

    U7"2323 and U7"2343

    U7"2333 and U7"4433

    U7"4414 and U7"6818

    U7"4434 and U7"6838

    U7C6834

    Utin1 Utin11 and Utin12

    Utin18

  • 8/18/2019 Lap Trinh Avr

    4/186

    Utin22

    Utin2e

    Utin26

    U(%ga6m6818m6838

    U(%ga1e

    U(%ga1e1

    U(%ga1e2

    U(%ga1e3

    U(%ga1e7

    U(%ga32

    U(%ga323

    U(%ga13

    U(%gae4m126m28em28e1

    U6e!41.

    ....

      U$ong :'i vi=t n' tôi & dụng chip U(%ga6 + l'( ví dụ tôi ch*n U(%ga6vW + l' lo;i chip thu)c d5ng V! (ới nht n9 c9 +N +s cFc tính nLng csa V!

  • 8/18/2019 Lap Trinh Avr

    5/186

    nhEng l;i nhỏ g*n g9i #D# c9 26 chn> v' low co&t nPn cFc :;n c9 th (ua + t(Wnh t;o Jng dụng.

      Tại sao ss$mb%& '()*# :;n c9 th -hông cNn :i=t v, cu t$?c csa V! vnc9 th l@p t$Wnh cho V! :]ng cFc phNn (,( h[ t$Z ngôn ng cp cao nhE

    _a&co(V! _a&ic> ha Cod%vi&ionV! C> tu nhiPn +9 -hông ph0i l' (ục+ích csa :'i vi=t n'. hiu thu +Fo v, V! :;n ph0i l@p t$Wnh :]ng chính ngônng csa n9 "M. `hE v@ l@p t$Wnh :]ng "M gi?p :;n hiu tESng t@n v, V!v' tt nhiPn + l@p t$Wnh +EZc :]ng "M :;n ph0i hiu v, cu t$?c V!^.M)t ldo -hFc :;n (' tôi -huPn :;n nPn l@p t$Wnh :]ng "M l' cFc t$Wnh dchco(pil%$> "M cho V! l' ho'n to'n (iKn phí v' nguRn &ou$c% cod% cho V!vi=t :]ng "M l' $t lớn. Uu nhiPn ()t -hi :;n +/ th'nh th;o V! v' "M :;nc9 th & dụng cFc ngôn ng cp cao nhE C + vi=t Jng dụng vW Eu +i( csa ngônng cp cao l' gi?p :;n dK d'ng thc hiện cFc phxp toFn +;i &T 1e ha 32 :it vTn

    l' vn +, -h9 -hLn -hi l@p t$Wnh :]ng "M>. II. C+ng c,.

      Tr-nh bin d/ch# c9 $t nhi,u t$Wnh :iPn dch :;n c9 th & dụng += :iPn dchcod% csa :;n th'nh il% int%l h% + n;p v'o chip ()t &T t$Wnh dch yu%n thu)c c9th - +=n nhE &au

    • v$"tudio l' t$Wnh :iPn dch "M chính thJc cung cp :Yi t(%l + l'

    t$Wnh :iPn dch ho'n to'n (iKn phí v' tt nhiPn l' tTt nht cho l@p t$Wnh V! :]ng

    "M. #hiPn :0n hiện t;i l' 4.16 "#1 :;n c9 th download phNn (,( v$"tudio

    t;i t$ang w%: chính thJc csa t(%l hoHc :0n 4.e23 t;i +.

    • av$a&( cng +EZc cung cp :Yi t(%l n9 chính l' ti,n thn csa

    v$"tudio. biện t;i wav$a&( -hông c5n +EZc & dụng nhi,u vW &o với v$"tudio

    t$Wnh :iPn dch n' c9 nhi,u h;ng ch= n=u :;n yuan t( c9 th download t;i +.

    • inV! ha av$Bgcc l' :) t$Wnh dch +EZc phFt t$in :Yi gnu ngôn ng &

    dụng l' C v' c9 th +EZc dzng tích hZp với v$"tudio dzng v$&tudio l'( t$Wnh

     :iPn t@p \ %dito$>. Hc :iệt :) :iPn dch n' cng (iKn phí v' +a &T nguRn &ou$c%

    http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725http://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=15http://www.hocavr.com/docs/softwares/wavrasm.ziphttp://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725http://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=15http://www.hocavr.com/docs/softwares/wavrasm.zip

  • 8/18/2019 Lap Trinh Avr

    6/186

    cod% C +EZc vi=t :]ng :) n' vW v@ n9 $t lí tEYng cho :;n -hi vi=t cFc Jng dụng

    chuPn nghiệp. Việc l@p t$Wnh :]ng av$gcc tôi &{ +, c@p t$ong nhng phNn &au.

    • Cod%Vi&ionv$ ()t chEAng t$Wnh :]ng ngôn ng C $t ha cho V! h[ t$Z nhi,u thE viện l@p t$Wnh. Uu nhiPn l' chEAng t$Wnh thEAng (;i. _;n c9 th

    download :0n d%(o +N +s chJc nLng nhEng nhEng giới h;n dung lEZng :) nhớ 

    chEAng t$Wnh 2|_> t;i %:&it% hpinot%ch

    • CCV! l@p t$Wnh C cho av$ download :0n d%(o.

    • _a&co(V! l@p t$Wnh cho V! :]ng :a&ic + l' t$Wnh :iPn dch -hF ha

    v' dK & dụng h[ t$Z $t nhi,u thE viện. Uu nhiPn $t -h9 d%:ug l[i v' -hông

    thích hZp cho việc tW( hiu V!. VW v@ tôi -hông :;n -hu=n -hích :;n & dụng

    t$Wnh dch n'. _;n c9 th download :0n d%(o 4| li(it>.

    • V' c5n $t nhi,u t$Wnh :iPn dch -hFc cho V! (' tôi -hông - $a + nhWn

    chung tt c0 cFc t$Wnh :iPn dch n' h[ t$Z C hoHc _a&ic hoHc th@( chí #a&cal. Việc

    ch*n 1 t$Wnh :iPn dch tz thu)c v'o (ục +ích v'o (Jc +) Jng dụng v'o -inh

    nghiệ( & dụng v' nhi,u l do -hFc na. Ví dụ tôi thESng dzng v$&tudio v'

    av$gcc -hi h*c & dụng V! v' -hi vi=t thE viện. `hEng -hi cNn vi=t chEAng t$Wnh

    Jng dụng tôi thESng ch*n av$gcc v' Cod%Vi&ionV!.

      U$ong :'i vi=t n' tôi hEớng dn :;n & dụng v$"tudio + vi=t chEAng t$Wnhcho V! :]ng "M.

      Chư0ng tr-nh nạ1 'Chi1 2rogramm$r*# +a &T cFc t$Wnh :iPn dch v$"tudioCod%Vi&ionV! _a&co(^> +,u tích hZp &}n 1 chEAng t$Wnh n;p chip h[ t$Z nhi,u lo;i (;ch n;p nPn :;n -hông yuF lo lOng. U$ong t$ESng hZp -hFc :;n c9 th& dụng cFc chEAng t$Wnh n;p nhE cp$og ha #onp$og^l' cFc chEAng t$Wnh n;p(iKn phí cho V!. Việc ch*n v' & dụng chEAng t$Wnh n;p &{ +EZc giới thiệu t$ongcFc :'i &au.

    http://www.hpinfotech.ro/html/download.htmhttp://www.imagecraft.com/http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54http://www.hpinfotech.ro/html/download.htmhttp://www.imagecraft.com/http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54

  • 8/18/2019 Lap Trinh Avr

    7/186

      )ạch nạ1# tha( -h0o :'i vi=t giới thiệu (;ch n;p V! .

      Chư0ng tr-nh m+ 1h3ng# av$ &i(ulato$ l' t$Wnh (ô phỏng v' d%::ug +EZc tíchhZp &}n t$ong v$&tudio av$ &i(ulato$ cho phxp :;n yuan &Ft t$;ng thFi cFc thanhghi :Pn t$ong V! nPn $t phz hZp + :;n d%:ug chEAng t$Wnh. #$ot%u& l' chEAng

    t$Wnh thJ hai tôi (uTn n9i +=n #$ot%u& -hông nhng (ô phỏng ho;t +)ng :Pnt$ong chip (' c5n (ô phỏng (;ch +iện t. #$ot%u& (ô phỏng $t t$c yuan n9 l' 1công cụ hu ích -hi cFc :;n chEa c9 +i,u -iện l'( cFc (;ch +iện t.

    III. !4 d, 5ầu tin c6a bạn.

      "au -hi download v$"tudio :;n h/ c'i +Lt phNn (,( t$Pn (F csa :;n yuFt$Wnh c'i +Ht $t +An gi0n :;n h/ th%o cFc (Hc +nh v' nhn ~n%t• + c'i +Ht.U$ong :'i +Nu tiPn n' ch?ng ta &{ vi=t th 1 chEAng t$Wnh +An gi0n cho V! &au+9 ch; (ô phỏng :]ng #$ot%u&. C9 th c9 ()t &T cu lệnh cFc :;n &{ -hông hiu

    nhEng +

  • 8/18/2019 Lap Trinh Avr

    8/186

    1722122

    2324282e2‚262733132

    3334383e3‚3637441

    424344484e4‚4647881

    828384888e8‚86

      kqU #k!U_ !1e  !C Dj†

      D !1e _1

      kqU #k!U_ !1e  !C Dj†

      D !1e _1  kqU #k!U_ !1e  !C Dj†

      D !1e _1  kqU #k!U_ !1e  !C Dj†

      D !1e _1  kqU #k!U_ !1e  !C Dj†

      D !1e _1  kqU #k!U_ !1e  !C Dj†

      D !1e _1  kqU #k!U_ !1e  !C Dj†

      D !1e _1  kqU #k!U_ !1e  !C Dj† 

    !„M# M`… Cbqk`G U!`G Ck` Dj† e8838 chu - -hoang e8838u& n%u ung …cloc- ch

    Dj†  D !2   Dj†  D !21   Dj†1  DjC !21  _!`j Dj†1

  • 8/18/2019 Lap Trinh Avr

    9/186

    87ee1

      DjC !2  _!`j Dj†!jU 

    U$Eớc -hi tW( hiu ngha +o;n cod% h/ nhWn 1 lEZt yua +o;n cod%. U$Eớc h=t

    việc vi=t bk ha vi=t thESng l' -hông yuan t$*ng :;n c9 th vi=t +o;n cod% với :t cJ hWnh thJc n'o (iKn +?ng c? phFp t< -h9a l' +EZc. U$ong +o;n cod%

    • _;n th 1 &T t< c9 ('u _qj ví dụ D kqU !„M# !C

    !jU^>+9 l' cFc `"U!qCUik` tJc l' cFc cu lệnh csa ngôn ng "M :;n c9

    th +*c t'i liệu ~V! `"U!qCUk`• + tW( hiu tt c0 cFc `"U!qCUk`.

    CFc `"U!qCUk` &au +9 &{ +EZc t$Wnh dch dch th'nh cFc (/ tEAng Jng.

    • M)t &T t< :Ot +Nu :]ng :]ng du ch( ~.• l' cFc D!jCUVj ví dụ

    .`CqDj ha .k!G >+9 cng l' nhng t< -h9a (Hc +nh csa "M V! cFc

    D!jCUVj -hông ph0i l' (/ lệnh (' chX l' cFc chX dn v, +a chX :) nhớ -hYi

    +)ng :) nhớ +nh ngha (ac$o^v' -hông +EZc t$Wnh dch dch th'nh (/. Chi ti=t

    v, D!jCUVj c9 th tW( th t$ong cFc t'i liệu v, "M V! dEới + tôi t9(

    tOt cFc D!jCUVj v' chJc nLng csa ch?ng nhE &au

    http://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=16http://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=16

  • 8/18/2019 Lap Trinh Avr

    10/186

    • Uhông thESng 1 `"U!qCUk` +EZc th%o &au :Yi 2 toFn h;ng \ op%$and

    tu nhiPn c9 nhi,u t$ESng hZp chX c9 1 toFn h;ng hoHc -hông c9 toFn h;ng> -hi

    +9 toFn h;ng thJ nht &{ l' cFc T7N7 G7I. csa V! nhE +/ +, c@p ch?ng ta

    &{ -h0o &Ft thanh ghi V! t$ong cFc :'i &au> ví dụ ~D !1e …• t$ong +9

    toFn h;ng ~!1e• l' tPn 1 thanh ghi t$ong V! v' ~• l' 1 h]ng &T d;ng

    h%ad%ci(al c9 giF t$ tEAng Jng l' 288 d;ng th@p phn ha 11111111 nh phn.

    • CFc t< th%o &au :Yi du ~• l' cFc nh/n \ la:%l ví dụ )IN8 9:;

    +9 l' t< do ch?ng ta t +Ht n9 thc cht l' 1 v t$í t$ong :) nhớ chEAng t$Wnh c9

    th & dụng nh/n nhE 1 chEAng t$Wnh con.

    • #hNn +i &au du ~…• g*i l' gi0i thích \ co((%nt phNn n' -hông +EZc :iPn

    dch :;n c9 th ghi co((%nt Y :t cJ +u t$ong chEAng t$Wnh với Pu cNu ph0i &

    dụng du ~…• t$Eớc n9.

      Giải th4ch 5oạn cod$#c9 th chia +o;n cod% t$Pn th'nh 4 phNn phNn +Nu chJacFc D!jCUVj v' lệnh !„M# dzng + Fc +nh cFc +a chX :) nhớ chEAng t$Wnh

  • 8/18/2019 Lap Trinh Avr

    11/186

     phNn 2 l' -hYi t;o ()t &T +i,u -iện +Nu cho "tac- #oint%$ v' #k!U phNn 3 l'chEAng t$Wnh chính v' phNn 4 l' chEAng t$Wnh con ch? + chX l' cFch :T t$í csa$iPng tôi ()t -hi +/ yu%n thu)c :;n c9 th :T t$í chEAng t$Wnh th%o cFch $iPng csa

     :;n>.

    • #hNn 1 v' phNn 2

    .C"jG

      ChX th .C"jG Cod% "%g(%nt :Fo cho t$Wnh :iPn dch $]ng phNn cod% th%o &au

    l' phNn chEAng t$Wnh thc thi phNn n' &{ +EZc download v'o :) nhớ chEAng

    t$Wnh csa chip.

    .`CqDj ƒM6Dj.`Cƒ

      ChX th .INC;=9: :Fo cho t$Wnh :iPn dch :Ot +Nu +*c 1 il% +ính -‡( t$ong

    t$ESng hZp t$Pn l' il% ~M6Dj.`C• + l' il% chJa cFc -hai :Fo cho chip

    t(%ga6 nhE thanh ghi ngOt^cho việc t$u ut t$ong chEAng t$Wnh csa :;n +

    l' d5ng :Ot :u)c n=u :;n l@p t$Wnh cho chip -hFc :;n h/ +ˆi tPn il% +ính -‡( ví

    dụ ~(32d%.inc• cho chip U(%ga32^ :;n c9 th tW( th cFc il% n' t$ong thE

    (ục ~C‰#$og$a( il%&‰t(%l‰V! Uool&‰v$&&%(:l%$2‰ppnot%&•.

    .k!G

      ChX th .>"G "%t #$og$a( k$igin &%t v t$í t$ong :) nhớ &{ +EZc tFc +)ng +=n

    t$ong t$ESng hZp t$Pn .k!G Fc +nh phNn cod% th%o nga &au &{ n]( Y +a

    chX v t$í +Nu tiPn t$ong :) nhớ chEAng t$Wnh. V' d5ng lPnh t$ong v t$í +Nu

    tiPn +9 l'

    !„M# _UDq

  • 8/18/2019 Lap Trinh Avr

    12/186

      "?)2# !%lativ% „u(p l' lệnh nh0 -hông +i,u -iện +=n 1 v t$í t$ong :) nhớ

    t$ong t$ESng hZp t$Pn l' nh0 +=n nh/n _UDq v' nh/n _UDq n]( Y v t$í

    2 &T h%ad%ci(al 2 Š32 d%ci(al> vW n9 +EZc -hai :Fo nga &au

    D!jCUVj .k!G 2.

    .k!G 2

    _UDq

      `hE th= phNn :) nhớ chEAng t$Wnh n]( gia v' 2 -hông +EZc & dụng

    t$ong +o;n cod% csa ch?ng ta phNn n' +EZc & dụng cho (ục +ích -hFc +9 l' cFc

    v%ctA ngOt -hông +EZc +, c@p Y +>. Ui=p th%o

    … |bk Uk C‹C Djq |j` Dq

    D !1e bGb!Mj`D>

    D !1‚ k!Mj`D>

    kqU "#b !1e

    kqU "# !1‚

    _Tn d5ng cod% t$Pn -hYi t;o cho "tac- #oint%$ ch?ng ta &{ tW( hiu phNn n'

    t$ong cFc :'i v, "tac- v' chEAng t$Wnh con.

    ;@i khu&n# các bạn nn khAi 5ộng B chư0ng tr-nh th$o cách trn à chDng ta

    sE hiFu chDng r h0n sau nà& H

    D !1e

    kqU DD!_ !1e

  • 8/18/2019 Lap Trinh Avr

    13/186

      _;n ch? 2 d5ng t$Pn v' nhng gW tôi gi0i thích &au + 2 d5ng n' c9 tFc

    dụng -hYi +)ng #k!U_ csa chip U(%ga6 tFc dụng nhE cFc ng ut tín hiệu

    kqU#qU>. U$Eớc h=t h/ yuan &Ft chip U(%ga6 t$ong hWnh &au

    bWnh 1 chip U(%ga6.

      _;n c9 th th chip n' gR( 26 chn t$ông +9 c9 cFc chn +EZc ghi l'

    #_chn 14> #_1chn 18>^#_‚chn 1> +9 l' cFc chn csa #k!U_. #k!U

    l' -hFi niệ( chX cFc ng ut nh@p. U$ong V! #k!U c9 th giao ti=p th%o 2hEớng :i \ di$%ctional> c9 th dzng + ut hoHc nh@n thông tin ([i #k!U c9 6

    chn. Chip t(%ga6 c9 3 #k!U c9 tPn tEAng Jng l' #k!U_ #k!UC v' #k!UD

    ()t &T chip V! -hFc c9 4 hoHc e #k!U>. #k!U +EZc coi l' ~ca ng• th%n chTt

    csa vi +i,u -hin.

      U$ong V! ([i #k!U liPn yuan +=n 3 thanh ghi 6 :it&> c9 tPn tEAng Jng l'

    DD! #` v' #k!U với ~• l' tPn csa #k!U ([i :it t$ong thanh ghi tEAng

    Jng với ([i chn csa #k!U. U$ong t$ESng hZp csa t(%ga6 ~• l' _ C hoHc D.

    Ví dụ ch?ng ta yuan t( +=n #k!U_ thW 3 thanh ghi tEAng Jng c9 tPn l' DD!_

    #`_ v' #k!U_ t$ong +9 2 thanh ghi #k!U_ v' #`_ +EZc nTi t$c ti=p với cFc

  • 8/18/2019 Lap Trinh Avr

    14/186

    chn csa #k!U_ DD!_ l' thanh ghi +i,u -hin hEớng nput hoHc kutput>. Vi=t

    giF t$ 1 v'o ()t :it t$ong thanh ghi DD!_ thW chn tEAng Jng csa #k!U_ &{ l'

    chn ut kutput> ngEZc l;i giF t$ Fc l@p chn tEAng Jng l' ng nh@p. "au

    -hi vi=t giF t$ +i,u -hin v'o DD!_ việc t$u ut #k!U_ +EZc thc hiện thông

    yua 2 thanh ghi #`_ v' #k!U_.

      Œua l;i với 2 d5ng cod% csa ch?ng ta d5ng +Nu ~D !1e • với D \ 

    oaD ((%diat%l d5ng lệnh c9 ngha l' load giF t$ v'o thanh ghi !1e

    !1e l' tPn 1 thanh ghi t$ong :) nhớ csa V! l' 1 h]ng &T c9 d;ng th@p lục

     phn - hiệu ~• n9i lPn +i,u +9 :;n cng c9 th dzng - hiệu -hFc l' ~• +chX 1 &T th@p lục phn ví dụ Ž v' Š288th@p phn>Š_11111111 nh

     phn>. `hE th= &au d5ng +Nu thanh ghi !1e c9 giF t$ l' 11111111 nh phn>. D5ng

    thJ 2 ~kqU DD!_ !1e• ngha l' ut giF t$ t< thanh ghi !1e $a thanh ghi

    DD!_ t9( l;i &au 2 d5ng t$Pn giF t$ DD!_ nhE &au

    1 1 1 1 1 1 1 1

      C9 th :;n &{ hỏi t0i &ao ch?ng -hông & dụng 1 d5ng du nht l' ~D DD!_

    • ha ~kqU DD!_ • ch?ng ta -hông th vW lệnh D chX cho phxp

    thc hiện t$Pn cFc thanh ghi !1e^!31 v' lệnh kqU -hông thc hiện +EZc với

    cFc h]ng &T.

      V' vW DD!_Š11111111 nPn t$ong t$ESng hZp n' tt c0 cFc chn csa #k!U_

    +/ &}n &'ng cho việc ut d liệu. ?c n' thanh ghi #`_ -hông c9 tFc dụng

    thanh ghi #k!U_ &{ l' thanh ghi ut ghi giF t$ v'o thanh ghi n' &{ tFc +)ng +=n

    cFc chn csa #k!U_.1

  • 8/18/2019 Lap Trinh Avr

    15/186

    • #hNn 3 ChEAng t$Wnh chính

    M`

    D !1e _1

    kqU #k!U_ !1e

    !C Dj†

      _;n chX cNn ch? 4 d5ng t$Pn t$ong to'n :) phNn chEAng t$Wnh chính t$Eớc h=t

    ~M`• chX l' 1 nh/n do ch?ng ta t +Ht tPn giTng nhE 1 ~c)t (Tc• t$ong chEAng

    t$Wnh thôi. D5ng ~D !1e _1• thW :;n +/ hiu chX c9 1 -hFc :iệt nhỏ l'

    tôi & dụng h]ng &T d;ng nh phn cho :;n dK hiu hAn. V' d5ng ~kqU #k!U_!1e• + ut giF t$ _1 c9 &}n t$ong !1e $a thanh ghi #k!U_ l?c n'

    chn #_ csa chip &{ lPn 1 8V> v' cFc chn c5n l;i &{ Y (Jc V>. D5ng thJ 3

    ~!C Dj†• l' lệnh g*i chEAng t$Wnh con Dj† t;( ho/n t$Eớc -hi thc

    hiện cFc d5ng lệnh ti=p th%o

    D !1e _1

    kqU #k!U_ !1e

    !C Dj†

      _a d5ng lệnh n' cng giTng :a d5ng t$Pn nhEng giF t$ ut $a l?c n' l'

    _1 chn #_1 &{ lPn 8V v' cFc chn -hFc uTng (Jc V. V' cJ nhE th=

    +=n +o;n cuTi

    D !1e _1

    kqU #k!U_ !1e

    !C Dj†

    !„M# M`

  • 8/18/2019 Lap Trinh Avr

    16/186

    • "au -hi -=t thJc 3 d5ng t$Pn chn #_‚ &{ lPn 8V -=t th?c 1 v5ng oa. CuTi

    czng l' yua v= +Nu chEAng t$Wnh chính :]ng d5ng ~!„M# M`•

    • _ giS chOc :;n +/ +oFn +EZc chEAng t$Wnh csa ch?ng ta thc hiện việc gW+9 l' yuxt oa v5ng cFc chn csa #k!U_ n=u ch?ng ta -=t nTi cFc chn csa

    #k!U_ với cFc jD ch?ng ta &{ c9 1 hiệu Jng yuxt jD oa v5ng ch?ng ta

    thc hiện +i,u n' :]ng phNn (,( #$ot%u&.

    • #hNn 4 chEAng t$inh con Dj† +o;n chEAng t$Wnh n' -hông l'( gW c0

    ngo'i việc t$W ho/n 1 -ho0ng thSi gian tu nhiPn :;n chEa th hiu n9 nga +EZc.

    chX l' 1 ví dụ +An gi0n tôi cT gOng thc hiện n9 th%o cFch dK hiu nht cho

     :;n vW th= +o;n cod% c9 v hAi d'i d5ng :;n h/ thc hiện l;i +o;n chEAng t$Wnh

    chính :]ng +o;n cod% csa :;n.

    2hần cui cJng %à bin d/ch 5oạn cod$ thành Ki%$ int$% h$L 5F 5M ào chi18

    nhn 1h4m OP 5F bin d/ch.

    "au -hi :iPn dch :;n &{ c9 1 il% tPn ~av$1.h%• t$ong thEc (ục p$o€%ct ch?ng ta

    &{ dzng il% n' +ˆ v'o chip &au n'.

    I!. )+ 1h3ng bQng 2rot$us.

      Ch?ng ta h/ th nghiệ( +o;n chEAng t$Wnh csa ch?ng ta :]ng #$ot%u&. `=u :;n thc hiện +?ng -=t yu0 &{ nhE (inh h*a t$ong hWnh 2 bEớng dn cụ th cFchv{ (;ch +iện v' (ô phỏng :]ng phNn (,( #$ot%u& :;n h/ %( :'i ƒMô phỏng#$ot%u&ƒ.

    http://www.hocavr.com/index.php/software/protueshttp://www.hocavr.com/index.php/software/protueshttp://www.hocavr.com/index.php/software/protueshttp://www.hocavr.com/index.php/software/protues

  • 8/18/2019 Lap Trinh Avr

    17/186

    bWnh 2. Mô phỏng.

    Bài 2 - Cấu Trú AVR

    1

    • 2

    • 3

    • 4

    • 5

     ( 58! Votes )

    Nội dung Các bài cần tham khảo trước

    1. Giới thiệu. '( yu%n V!.

     

    http://www.hocavr.com/index.php/vi/lectures/cautrucavrhttp://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://www.hocavr.com/index.php/lectures/cautrucavr#1-gioi-thieuhttp://www.hocavr.com/index.php/lectures/lamquenavrhttp://www.hocavr.com/index.php/vi/lectures/cautrucavrhttp://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://www.hocavr.com/index.php/lectures/cautrucavr#1-gioi-thieuhttp://www.hocavr.com/index.php/lectures/lamquenavr

  • 8/18/2019 Lap Trinh Avr

    18/186

    2. Uˆ chJc V!.

    3. "tac-.

    4. Uhanh ghi t$;ng thFi.

    8. Ví dụ.

    Download ví dụ

    &&%(:l cho V!.

    V! "tudio.

    Mô phỏng với #$ot%u&.

    I. Giới thiệu.

    _'i n' ti=p tục :'i +Nu tiPn t$ong lo;t :'i giới thiệu v, V! n=u &au :'i ƒ'(yu%n V! ƒ :;n +/ phNn n'o :i=t cFch l@p t$Wnh cho V! :]ng V!"tudio thW t$ong

     :'i n' ch?ng ta &{ tW( hiu - hAn v, cu t$?c csa V!. "au :'i n' :;n &{

    • biu +EZc cu t$?c V! cu t$?c :) nhớ v' cFch thJc ho;t +)ng csa chip.

    • biu v, "tac- v' cFch ho;t +)ng.

    • _i=t +EZc ()t &T in&t$uction cA :0n t$u ut :) nhớ.

    • b*c cFc in&t$uction ${ nhFnh v' v5ng lHp.

    • ChEAng t$Wnh con "u:$outin%> v' Mac$o.

    • C0i ti=n ví dụ t$ong :'i 1.

    • Vi=t 1 ví dụ (inh h*a cFch & dụng :) nhớ v' v5ng lHp.

     

    II. TM chRc c6a !".

    V! c9 cu t$?c ba$va$d t$ong +9 +ESng t$u,n cho :) nhớ d liệu data(%(o$ :u&> v' +ESng t$u,n cho :) nhớ chEAng t$Wnh p$og$a( (%(o$ :u&>

    http://www.hocavr.com/index.php/lectures/cautrucavr#2-to-chuchttp://www.hocavr.com/index.php/lectures/cautrucavr#3-stackhttp://www.hocavr.com/index.php/lectures/cautrucavr#4-sreghttp://www.hocavr.com/index.php/lectures/cautrucavr#5-vi-duhttp://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=6http://www.hocavr.com/index.php/software/asmhttp://www.hocavr.com/index.php/software/avr-studiohttp://www.hocavr.com/index.php/software/protueshttp://www.hocavr.com/index.php/lectures/lamquenavrhttp://www.hocavr.com/index.php/lectures/lamquenavrhttp://www.hocavr.com/index.php/lectures/cautrucavr#2-to-chuchttp://www.hocavr.com/index.php/lectures/cautrucavr#3-stackhttp://www.hocavr.com/index.php/lectures/cautrucavr#4-sreghttp://www.hocavr.com/index.php/lectures/cautrucavr#5-vi-duhttp://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=6http://www.hocavr.com/index.php/software/asmhttp://www.hocavr.com/index.php/software/avr-studiohttp://www.hocavr.com/index.php/software/protueshttp://www.hocavr.com/index.php/lectures/lamquenavrhttp://www.hocavr.com/index.php/lectures/lamquenavr

  • 8/18/2019 Lap Trinh Avr

    19/186

    +EZc tFch $iPng. Data (%(o$ :u& chX c9 6 :it v' +EZc -=t nTi với hNu h=t cFc thi=t : ngo;i vi với $%gi&t%$ il%. U$ong -hi +9 p$og$a( (%(o$ :u& c9 +) $)ng 1e :it&v' chX phục vụ cho in&t$uction $%gi&t%$&. bWnh 1 (ô t0 cu t$?c :) nhớ csa V!.  Sộ nhớ chư0ng tr-nh '2rogram m$mor&* ' :) nhớ la&h l@p t$Wnh +EZct$ong cFc chip V! c nhE U7"12 ha U7"2313^> :) nhớ chEAng t$WnhchX gR( 1 phNn l' pplication la&h "%ction nhEng t$ong cFc chip V! (ới ch?ngta c9 thP( phNn _oot la&h &%tion. _oot &%ction &{ +EZc -h0o &Ft t$ong cFc phNn&au t$ong :'i n' -hi n9i v, :) nhớ chEAng t$Wnh ch?ng ta t hiu l' pplication&%ction. Uhc cht application &%ction :ao gR( 2 phNn phNn chJa cFc in&t$uction(/ lệnh cho ho;t +)ng csa chip> v' phNn chJa cFc v%cto$ ngOt int%$$upt v%cto$&>.CFc v%cto$ ngOt n]( Y phNn +Nu csa application &%ction t< +a chX > v' d'i+=n :ao nhiPu tz thu)c v'o lo;i chip. #hNn chJa in&t$uction n]( li,n &au +9chEAng t$Wnh vi=t cho chip ph0i +EZc load v'o phNn n'. ‘%( l;i phNn +Nu csa vídụ t$ong :'i 1

    .k!G !„M# _UDq.k!G 2  U$ong ví dụ n' nga &au -hi &%t v t$í :]ng chX th D!jCUVj>.k!G ch?ng ta dzng in&t$uction !„M# + nh0 +=n v t$í 2 nhE th=

     phNn :) nhớ chEAng t$Wnh t< +=n 1 -hông +EZc & dụng vW t$ong ví dụn' ch?ng ta -hông & dụng cFc v%cto$ ngOt>. ChEAng t$Wnh chính +EZc :Ot +Nu t<+a chX 2 con &T 2 l' do ngESi l@p t$Wnh ch*n th@t $a cFc v%cto$ ngOt csachip UMjG6 chX -xo d'i +=n +a chX 12 vW v@ chEAng t$Wnh chính c9 th

    +EZc :Ot +Nu t< :t cJ v t$í n'o &au +9. :i=t +) d'i cFc v%cto$ ngOt csa t

  • 8/18/2019 Lap Trinh Avr

    20/186

    bWnh 1. Uˆ chJc :) nhớ csa V!.  Sộ nhớ d %iệu 'data m$mor&* l' phNn chJa cFc thanh ghi yuan t$*ngnht csa chip việc l@p t$Wnh cho chip phNn lớn l' t$u c@p :) nhớ n'. _) nhớ dliệu t$Pn cFc chip V! c9 +) lớn -hFc nhau tz th%o ([i chip tu nhiPn v, cA :0n

     phNn :) nhớ n' +EZc chia th'nh 8 phNn  2hần B l' phNn +Nu tiPn t$ong :) nhớ d liệu nhE (ô t0 t$ong hWnh 1 phNnn' :ao gR( 32 thanh ghi c9 tPn g*i l' $%gi&t%$ il% !> ha G%n%$al #u$po&%

    !g%gi&t%$ \ G#! hoHc +An gi0n l' cFc Uhanh ghi. Ut c0 cFc thanh ghi n' +,u l'cFc thanh ghi 6 :it& nhE t$ong hWnh 2.

    bWnh 2. Uhanh ghi 6 :it&.  Ut c0 cFc chip t$ong h* V! +,u :ao gR( 32 thanh ghi !%gi&t%$ il% c9 +a chXtuệt +Ti t< +=n 1. M[i thanh ghi c9 th chJa giF t$ dEAng t< +=n288 hoHc cFc giF t$ c9 du t< B126 +=n 12‚ hoHc (/ "C csa ()t - t n'o+9^CFc thanh ghi n' +EZc +Ht tPn th%o thJ t l' ! +=n !31. Ch?ng +EZc chia

    th'nh 2 phNn phNn 1 :ao gR( cFc thanh ghi t< ! +=n !18 v' phNn 2 l' cFc thanhghi !1e +=n !31. CFc thanh ghi n' c9 cFc +Hc +i( &au

    • EZc t$u c@p t$c ti=p t$ong cFc in&t$uction.

  • 8/18/2019 Lap Trinh Avr

    21/186

    • CFc toFn t phxp toFn thc hiện t$Pn cFc thanh ghi n' chX cNn 1 chu -Q

    ung cloc-.

    • !%gi&t%$ il% +EZc -=t nTi t$c ti=p với :) lí t$ung t( \ C#q csa chip.

    • Ch?ng l' nguRn chJa cFc &T h;ng t$ong cFc phxp toFn v' cng l' +ích chJa

    -=t yu0 t$0 l;i csa phxp toFn.

    (inh h*a h/ xt ví dụ thc hiện phxp c)ng 2 thanh ghi :]ng in&t$uction DDnhE &auDD !1 !2  _;n th t$ong d5ng lệnh t$Pn 2 thanh ghi !1 v' !2 +EZc & dụng t$c ti=pvới tPn csa ch?ng d5ng lệnh t$Pn -hi +EZc dch &ang opcod% + download v'o chip&{ c9 d;ng 1111 t$ong +9 1Š1 tJc thanh ghi !1 v' 1 Š 2chX thanh ghi !2. "au phxp c)ng -=t yu0 &{ +EZc lEu v'o thanh ghi !1.  Ut c0 cFc in&t$uction & dụng ! l'( toFn h;ng +,u c9 th t$u nh@p tt c0 cFc! ()t cFch t$c ti=p t$ong 1 chu -Q ung cloc- ngo;i t$< "_C "q_ C#`D v' D cFc in&t$uction n' chX c9 th t$u nh@p cFc thanh ghi t< !1e +=n!31.  Uhanh ghi ! l' thanh ghi du nht +EZc & dụng t$ong in&t$uction #M oad#$og$a( M%(o$>. CFc thanh ghi !2e !2‚ !26 !27 !3 v' !31 ngo'i chJc

    nLng thông thESng c5n +EZc & dụng nhE cFc con t$ỏ #oint%$ $%gi&t%$> t$ong ()t&T in&t$uction t$u ut giFn ti=p. Ch?ng ta &{ -h0o &Ft vn +, con t$ỏ &au n'. bWnh3 (ô t0 cFc chJc nLng phụ csa cFc thanh ghi.

  • 8/18/2019 Lap Trinh Avr

    22/186

    bWnh 3. !%gi&t%$ il%.  U9( l;i 32 ! csa V! +EZc %( l' 1 phNn csa C#q vW th= ch?ng +EZc C#q& dụng t$c ti=p v' nhanh ch9ng + g*i cFc thanh ghi n' ch?ng ta -hông cNn g*i+a chX (' chX cNn g*i t$c ti=p tPn csa ch?ng. ! thESng +EZc & dụng nhE cFctoFn h;ng op%$and> csa cFc phxp toFn t$ong l?c l@p t$Wnh.  2hần U l' phNn n]( nga &au $%gi&t%$ il% phNn n' :ao gR( e4 thanh ghi+EZc g*i l' e4 thanh ghi nh@pmut e4 mk $%gi&t%$> ha c5n g*i l' vzng nhớ mkmk M%(o$>. Vzng nhớ mk l' ca ng giao ti=p gia C#q v' thi=t : ngo;i vi.Ut c0 cFc thanh ghi +i,u -hin t$;ng thFi^csa thi=t : ngo;i vi +,u n]( Y +.‘%( l;i ví dụ t$ong :'i 1 t$ong +9 tôi c9 +, c@p v, việc +i,u -hin cFc #k!U csa

    V! ([i #k!U liPn yuan +=n 3 thanh ghi DD! #k!U v' #` tt c0 3 thanhghi n' +,u n]( t$ong vzng nhớ mk. ‘a hAn n=u (uTn t$u ut cFc thi=t :ngo;i vi -hFc nhE Ui(%$ chun +ˆi nalogmDigital giao ti=p q"!U^+,u thchiện thông yua việc +i,u -hin cFc thanh ghi t$ong vzng nhớ n'.  Vùng nhớ I/O có thể được truy cập như SRAM hay như các thanh ghi I/O. Nu

     !" #$ng in!tructi%n truy &u't SRAM để truy &u't (ùng nhớ n)y th* đ+a ch, c-a

  • 8/18/2019 Lap Trinh Avr

    23/186

    chng được tnh t0 1&1121 đn 1&1134. Nhưng nu truy &u't như các thanh ghi I/O th* đ+a ch, c-a chng đ56c tnh t0 1&1111 đn 1&1174.  ‘xt ví dụ in&t$uction kqU dzng ut giF t$ $a cFc thanh ghi mk lệnh n' &dụng +a chX -iu thanh ghi cu t$?c csa lệnh nhE &au kqU !$ t$ong +9 l'+a chX csa thanh ghi t$ong vzng nhớ mk !$ l' thanh ghi ! lệnh kqU ut giF t$t< thanh ghi !$ $a thanh ghi mk c9 +a chX l' . Gi0 & ch?ng ta (uTn ut giF t$chJa t$ong !e $a thanh ghi +i,u -hin hEớng csa #k!UD tJc thanh ghi DD!D+a chX tính th%o vzng mk csa thanh ghi DD!D l' 11 nhE th= cu lệnh csach?ng ta &{ c9 d;ng kqU 11 !e. Uu nhiPn t$ong 1 t$ESng hZp -hFc n=u(uTn t$u ut DD!D th%o d;ng "!M ví dụ lệnh "U" ha D" thW ph0i dzng+a chX tuệt +Ti csa thanh ghi n' tJc giF t$ 31 -hi +9 lệnh kqU Y t$Pn+EZc vi=t l;i l' "U" 31 !e.  8ể th9ng nh't cách !" #$ng t0 ng:; t0 chng ta #ùng ?hái ni@ Bđ+ach, I/OC ch% các thanh ghi tr%ng (ùng nhớ I/O để nói đn đ+a ch, ?hDng tnh phEn

     RFgi!tFr 4iGF; ?hái ni@ Bđ+a ch, l' vzng -hông gian cho chJa cFc :i=nt;( thSi hoHc to'n cục> t$ong l?c thc thi chEAng t$Wnh vzng n' tEAng t cFcthanh !M t$ong (F tính nhEng c9 dung lEZng -hF nhỏ -ho0ng v'i |_ tzthu)c v'o lo;i chip>.  2hần X !M ngo;i %t%$nal "!M> cFc chip V! cho phxp ngESi & dụnggOn thP( cFc :) nhớ ngo'i + chJa :i=n vzng n' thc cht chX tRn t;i -hi n'o

    ngESi & dụng gOn thP( :) nhớ ngo'i v'o chip.  2hần Y jj#!kM jl%ct$icall j$%a&a:l% #$og$a((a:l% !kM> l' ()t phNnyuan t$*ng csa cFc chip V! (ới vW l' !kM nPn :) nhớ n' -hông : 9a ngac0 -hi -hông cung cp nguRn nuôi cho chip $t thích hZp cho cFc Jng dụng lEu t$d liệu. `hE t$ong hWnh 1 phNn :) nhớ jj#!kM +EZc tFch $iPng v' c9 +a chXtính t< .  CZu h3i bZ& gi@ %à !" hoạt 5ộng như th[ nào\

  • 8/18/2019 Lap Trinh Avr

    24/186

      bWnh 4 :iu diKn cu t$ong :Pn t$ong csa 1 V!. _;n th $]ng 32 thanh ghit$ong !%gi&t%$ il% +EZc -=t nTi t$c ti=p với $ith(%tic ogic qnit Bq qcng +EZc %( l' C#q csa V!> :]ng 2 lin% vW th= q c9 th t$u ut t$c ti=pczng l?c 2 thanh ghi ! chX t$ong 1 chu -Q ung cloc- vzng +EZc -hoanh t$5n('u +ỏ t$ong hWnh 4>.

    bWnh 4. Cu t$?c :Pn t$ong V!.  CFc in&t$uction +EZc chJa t$ong :) nhớ chEAng t$Wnh la&h (%(o$ dEới d;ngcFc thanh ghi 1e :it. _) nhớ chEAng t$Wnh +EZc t$u c@p t$ong ([i chu -Q ungcloc- v' 1 in&t$uction chJa t$ong p$og$a( (%(o$ &{ +EZc load v'o t$ongin&t$uction $%gi&t%$ in&t$uction $%gi&t%$ tFc +)ng v' la ch*n $%gi&t%$ il% cng nhE!M cho q thc thi. U$ong l?c thc thi chEAng t$Wnh +a chX csa d5ng lệnh+ang thc thi +EZc yu=t +nh :Yi ()t :) +=( chEAng t$Wnh \ #C #$og$a(count%$>. 9 chính l' cFch thJc ho;t +)ng csa V!.  V! c9 Eu +i( l' hNu h=t cFc in&t$uction +,u +EZc thc thi t$ong 1 chu -Qung cloc- vW v@ c9 th nguRn cloc- lớn nht cho V! c9 th nhỏ hAn 1 &T vi+i,u -hin -hFc nhE #C nhEng thSi gian thc thi vn nhanh hAn.

    III. (tack.

  • 8/18/2019 Lap Trinh Avr

    25/186

      "tac- +EZc hiu nhE l' 1 ~thFp• d liệu d liệu +EZc chJa v'o &tac- Y +Xnh~thFp• v' d liệu cng +EZc l $a t< +Xnh. |iu t$u c@p d liệu csa &tac- g*i l'k a&t n i$&t kut \ v'o &au $a t$Eớc>. bWnh 8 th hiện cFch t$u c@p d liệucsa &tac-.

    bWnh 8. "tac-.  |hFi niệ( v' cFch thJc ho;t +)ng csa &tac- c9 th +EZc Fp dụng cho V!

     :]ng cFch -hai :Fo ()t vzng nhớ t$ong "!M l' &tac- ta c9 th & dụng vzng nhớ n' nhE ()t &tac- thc thụ.  -hai :Fo ()t vzng "!M l'( &tac- ch?ng ta cNn Fc l@p +a chX +Nu csa&tac- :]ng cFch Fc l@p con t$ỏ &tac-B"# "tac- #oint%$>. "# l' 1 con t$ỏ 1e :it :ao

    gR( 2 thanh ghi 6 :it "# v' "#b ch l' k chX thanh ghi (ang giF t$ :t%thp csa "# v' b Š bGb> "# v' "#b n]( t$ong vzng nhớ mk. GiF t$ gFn chothanh ghi "# &{ l' +a chX -hYi +)ng csa &tac-. Œua l;i ví dụ Y :'i 1 phNn -hYit;o cFc +i,u -iện +Nu.… |bk Uk C‹C Djq |j` DqD !1e bGb!Mj`D>D !1‚ k!Mj`D>kqU "#b !1ekqU "# !1‚  _Tn d5ng -hai :Fo t$Pn (ục +ích l' gFn giF t$ csa !Mj`D cho con t$ỏ "#

    !Mj`D tJc jnd o !a(> l' :i=n chJa +a chX lớn nht csa !M n)i t$ongV! :i=n n' +EZc +nh ngha t$ong il% M6Dj.`C. `hE th= &au 4 d5ng t$Pncon t$ỏ "# chJa giF t$ cuTi czng csa "!M ha n9i cFch -hFc vzng &tac- :Ot +Nut< v t$í cuTi czng csa :) nhớ "!M. `hEng t;i &ao l' v t$í cuTi czng (' -hôngl' 1 giF t$ -hFc. C9 th gi0i thích nhE &au &tac- t$ong V! ho;t +)ng t< t$PnuTng &au -hi d liệu +EZc +r v'o &tac- "# &{ gi0( giF t$ vW th= -hYi +)ng "# Y v t$í cuTi czng csa "!M &{ t$Fnh +EZc việc (t d liệu do ghi +‡. _;n c9 th

  • 8/18/2019 Lap Trinh Avr

    26/186

    -hYi +)ng &tac- với 1 +a chX -hFc tu nhiPn vW l do an to'n nPn -hYi +)ng &tac- Y !Mj`D.  bai in&t$uction dzng cho t$u c@p &tac- l' #q"b v' #k# t$ong +9 #q"b dzng+r d liệu v'o &tac- v' #k# dzng l d liệu $a -hỏi &tac-. D liệu +EZc +r v'ov' l $a -hỏi &tac- t;i v t$í (' con t$ỏ "# t$ỏ +=n. Ví dụ cho chip UM%ga6!Mj`DŠ48 &au -hi -hYi +)ng con t$ỏ "# t$ỏ +=n v t$í 48 t$ong"!M n=u ta vi=t cFc cu lệnh &au

    D !1e 1#q"b !1eD !1e 8#q"b !1eD !1e 6#q"b !1e

      |hi +9 n)i dung csa &tac- &{ nhE t$ong hWnh e.

    bWnh e. `)i dung &tac- t$ong ví dụ.  "au ([i lNn #q"b d liệu "# &{ gi0( 1 +An v v' t$ỏ v'o v t$í ti=p th%o._ giS n=u ta dzng #k# + l d liệu t< &tac- #k# !2 thW !2 &{ (ang giF t$csa ngLn nhớ 48D tJc !2Š6. U$Eớc -hi in&t$uction #k# +EZc thc hiện cont$ỏ "# +EZc tLng lPn 1 +An v &au +9 d liệu &{ +EZc l $a t< v t$í (' "# t$ỏ +=nt$ong &tac-.  "tac- t$ong V! -hông ph0i l' ~vô +F• ngha l' ch?ng ta chX c9 th #q"bd liệu v'o &tac- Y 1 +) &u nht +nh n'o + phụ thu)c v'o chip>. " dụng &tac- -hông +?ng cFch +ôi -hi &{ l'( chEAng t$Wnh thc thi &ai hoHc tTn thSi gian thc

    thi vô ích. VW th= -hông nPn & dụng &tac- chX + lEu cFc :i=n thông thESng. ’ngdụng phˆ :i=n nht csa &tac- l' & dụng t$ong cFc chEAng t$Wnh con "u:$outin%>-hi ch?ng ta cNn ~nh0• t< ()t v t$í t$ong chEAng t$Wnh chính +=n 1 chEAng t$Wnhcon &au -hi thc hiện chEAng t$Wnh con l;i (uTn yua v, v t$í :an +Nu t$ongchEAng t$Wnh chính thW "tac- l' phEAng cFch tTi Eu dzng + chJa :) +=( chEAngt$Wnh t$ong t$ESng hZp n'. ‘%( l;i ví dụ t$ong :'i 1 t$ong chEAng t$Wnh chínhch?ng ta dzng lệnh !C Dj† + nh0 +=n +o;n chEAng t$Wnh con Dj†

  • 8/18/2019 Lap Trinh Avr

    27/186

    !C l' lệnh nh0 +=n 1 v t$í t$ong :) nhớ chEAng t$Wnh t$Eớc -hi nh0 #C+EZc c)ng thP( 1 v' #q"b ()t cFch t +)ng v'o &tac-. CuTi chEAng t$Wnh conDj† ch?ng ta dzng in&t$uction !jU in&t$uction n' #k# d liệu t< &tac- $a #C()t cFch t +)ng :]ng cFch n' ch?ng ta c9 th yua l;i v t$í t$Eớc +9. Chính vWcFc lệnh !C v' !jU & dụng &tac- ()t cFch t +)ng nPn ta ph0i -hYi +)ng&tac- nga t< +Nu n=u -hông chEAng t$Wnh &{ thc thi &ai chJc nLng.  U9( l;i cNn -hYi +)ng &tac- Y +Nu chEAng t$Wnh v' -hông nPn & dụng &tac- ()t cFch tz thích n=u chEa th@t cNn thi=t.

    I!. Thanh ghi trạng thái ] (":G '(TT=( ":GI(T" chX t$;ng thFi csa :) lí

    tt c0 cFc :it n' +,u : 9a &au -hi $%&%t cFc :it n' cng c9 th +EZc +*c v' ghi :Yi chEAng t$Wnh. ChJc nLng csa t nPn t$ong t$ESng hZp n' giF t$ lEu l;i t$ong !1 thc cht

    chX l' 14 +Rng thSi cS C +EZc &%t lPn 1 vW 2‚Š1111 t$ong +9 6 :it &au

    111 Š14 &{ +EZc lEu l;i t$ong !1>.

    • Sit B _ ` '`$ro O%ag# C@ ^* cS n' +EZc &%t n=u -=t yu0 phxp toFn +;i &T

    ha phxp ogic :]ng .

  • 8/18/2019 Lap Trinh Avr

    28/186

    • Sit U _ N 'N$gati$ O%ag# C@ Zm* cS n' +EZc &%t n=u -=t yu0 phxp toFn

    +;i &T ha phxp ogic l' &T (.

    • Sit W _ ! 'Tos com1%$m$nt >$rK%o O%ag# C@ tràn c6a bJ U* ho;t+)ng csa cS n' c9 v &{ -h9 hiu cho :;n vW n9 liPn yuan +=n -i=n thJc &T nh

     phn phNn :z> ch?ng ta &{ +, c@p +=n -hi n'o th cNn thi=t.

    • Sit X _ ( '(ign Sit# Sit du* _it " l' -=t yu0 phxp ‘k! gia 1 cS ` v' V

    "Š` o$ V.

    • Sit Y _ 7 '7a%K Carr& O%ag# C@ nh@ na* cS b l' cS nhớ t$ong 1 v'i phxp

    toFn +;i &T v' phxp ogic cS n' hiệu yu0 +Ti với cFc phxp toFn với &T _CD.

    • Sit V _ T 'Sit Co1& (torag$* +EZc & dụng t$ong 2 n&t$uction _D _it

    oaD> v' _"U _it "Uo$ag%>. Uôi &{ gi0i thích chJc nLng _it U t$ong phNn giới

    thiệu v, _D v' _"U.

    • Sit P _ I 'G%oba% Int$rru1t :nab%$*   Cho phxp ngOt to'n :)> _it n' ph0i

    +EZc &%t lPn 1 n=u t$ong chEAng t$Wnh c9 & dụng ngOt. "au -hi &%t :it n' :;n

    (uTn -ích ho;t lo;i ngOt n'o cNn &%t cFc :it ngOt $iPng csa ngOt +9. bai in&t$uction

    dzng $iPng + "%t v' Cl%a$ :it l' "j v' C.

      Ch? tt c0 cFc :it t$ong thanh ghi "!jG +,u c9 th +EZc 9a thông yua cFcin&t$uction -hông toFn h;ng C v' &%t :Yi "j t$ong +9 l' tPn csa _it.Ví dụCU l' 9a _it U v' "j l' &%t :it .Uôi chX gi0i thích ngOn g*n chJc nLng csa cFc :it t$ong thanh ghi "!jG cụ thchJc nLng v' cFch & dụng csa t

  • 8/18/2019 Lap Trinh Avr

    29/186

    bWnh 6. “nh hEYng csa cFc phxp toFn lPn "!jG.

    I!. )acro à chư0ng tr-nh con.

      )acro l' -hFi niệ( chX ()t +o;n cod% nhỏ + thc hiện ()t công việc n'o +9n=u c9 1 +o;n cod% n'o +9 (' :;n $t ha & dụng -hi l@p t$Wnh thW :;n nPn dzng(ac$o + t$Fnh việc ph0i vi=t +i vi=t l;i +o;n cod% +9. @p t$Wnh "M cho V! cho

     phxp :;n & dụng Mac$o + t;o 1 Mac$o :;n & dụng D!jCUVj.

    .MC!k d%la4 `k# `k# `k# `k#.j`DMC!k

  • 8/18/2019 Lap Trinh Avr

    30/186

      o;n Mac$o t$Pn c9 tPn d%la4 thc hiện việc d%la 4 chu -Q (F :]ng 4 lệnh `k# n=u t$ong chEAng t$Wnh :;n cNn dzng Mac$o n' thW chX cNn g*i d%la4 Y :t-Q d5ng n'o.”^ … cod% csa :;nD%la4”^ … cod% csa :;n  M[i lNn tPn csa Mac$o +EZc g*i t$Wnh :iPn dch &{ tW( +=n Mac$o +9 v' copto'n :) n)i dung Mac$o v'o v t$í :;n g*i. `hE v@ thc cht con t$ỏ chEAng t$Wnh-hông nh0 +=n Mac$o Mac$o -hông l'( gi0( dung lEAng chEong t$Wnh (' chXl'( cho việc l@p t$Wnh nh– nh'ng hAn. chính l' -hFc :iệt lớn nht csa Mac$ov' "u:$outin% chEAng t$Wnh con>.  Chư0ng tr-nh con cng l' 1 +o;n cod% thc hiện 1 chJc nLng +Hc :iệt n'o +9.Uu nhiPn -hFc với Mac$o ([i -hi g*i chEAng t$Wnh con con t$ỏ chEAng t$Wnhnh0 +=n chEAng t$Wnh con +, thc thi chEAng t$Wnh con v' &au +9 yua v, chEAng

    t$Wnh chính. `hE th= chEAng t$Wnh con chX +EZc :iPn dch 1 lNn v' c9 th & dụngnhi,u lNn n9 l'( gi0( dung lEZng chEong t$Wnh. l' Eu +i( v' cng l' +i(-hFc :iệt lớn nht gia chEAng t$Wnh con v' Mac$o. Uu nhiPn cNn ch? l' việcnh0 +=n chEAng t$Wnh con v' nh0 v, chEAng t$Wnh chính cNn v'i chu -Q (F c9th l'( ch@( chEAng t$Wnh + l' nhEZc +i( csa chEAng t$Wnh con &o với (ac$o.  ChEAng t$Wnh con cho V! luôn +EZc :Ot +Nu :]ng 1 a:%l +9 cng l' tPn v'+a chX csa chEAng t$Wnh con. ChEAng t$Wnh con thESng +EZc -=t th?c với cu lệnh!jU !%tu$n>. Ch?ng ta +/ :i=t v, chEAng t$Wnh con yua ví dụ csa :'i 1 t$ong +9Dj† l' 1 chEAng t$Wnh con.

      g*i chEAng t$Wnh con t< 1 v t$í n'o +9 t$ong chEAng t$Wnh ch?ng ta c9 thdzng lệnh C hoHc !C!%lativ% C> %( l;i ví dụ :'i 1 v, cFch &dụng !C>. M[i -hi cFc lệnh n' +EZc g*i :) +=( chEAng t$Wnh +EZc t +)ng+EZc #q"b v'o &tac- v' -hi chEAng t$Wnh con -=t th?c :]ng lệnh !jU :) +=(chEAng t$Wnh +EZc #k# t$Y $a v' yua v, chEAng t$Wnh chính. ệnh C c9 thg*i 1 chEAng t$Wnh con Y :t -Q v t$í n'o t$ong -hi !C chX g*i t$ong -ho0ng

     :) nhớ 4|_ nhEng !C cNn ít chu -Q ung cloc- hAn -hi thc thi.  bai in&t$uction -hFc c9 th +EZc dzng + g*i chEAng t$Wnh con +9 l' „M#„u(p> v' !„M# !%lativ% „u(p>. |hFc với cFc lệnh call cFc lệnh €u(p -hông cho

     phxp yua l;i vW -hông t +)ng #q"b :) +=( chEAng t$Wnh v'o "tac- + & dụng

    cFc lệnh n' g*i chEAng t$Wnh con :;n cNn ()t &T lệnh €u(p -hFc Y cuTi chEAngt$Wnh con.  U9( l;i :;n nPn vi=t 1 chEAng t$Wnh con +?ng churn v' dzng C hoHc!C + g*i chEAng cFc chEAng t$Wnh n' chX nhng t$ESng hZp +Hc :iệt hoHc

     :;n hiu $t $ v, ch?ng thW c9 th dzng cFc lệnh €u(p.

    !. !4 d, minh ha.

  • 8/18/2019 Lap Trinh Avr

    31/186

      `=u :;n +/ +*c v' hiu +=n thSi +i( n' thW :;n +/ c9 th hiu h=t ho;t +)ngcsa chEAng t$Wnh ví dụ t$ong :'i 1 th@t & ví dụ +9 $t +An gi0n v' dK hiu. UunhiPn :;n c9 th, tTi Eu h9a ví dụ +9 th%o hEớng l'( gi0( dung lEZng chEAngt$Wnh v' tt nhiPn chEAng t$Wnh &{ -h9 hiu hAn cho ngESi -hFc. CFc phNn -hYi+)ng v t$í :) nhớ &tac- v' chEAng t$Wnh con Dj† ch?ng ta -hông tha +ˆi chXtha +ˆi phNn chEAng t$Wnh chính 1 t$ong nhng cFch vi=t chEAng t$Wnh chính nhEcFch &au… Cbqk`G U!`b Cb`b _ 1 V Dq 1 Vj!"k` 2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmD !1e 1 …kD G U! |bk Dk`G Cbk !1eM`kqU #k!U_ !1e … ‘qU G U! U!k`G !1e ! #k!U_!C Dj† … Gk Cbqk`G U!`b Ck` Dj†!k !1e … ‘k† Ub`b Gb !1e "`G U! 1 V U!!„M# M` … `jq !1e — `b† Vj M` Uj# UqC ŒqjU

    …mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm  C9 th -hông cNn gi0i thích :;n cng +/ c9 th hiu +o;n cod% t$Pn + chX l'1 t$ong nhng cFch c9 th :;n h/ vi=t l;i th%o cFch csa $iPng :;n với Pu cNu l'chEAng t$Wnh ph0i thc hiện +?ng chJc nLng v' ngOn g*n.  _ giS ch?ng ta &{ thc hiện ()t ví dụ (inh h*a cho nhng gW ch?ng ta +/h*c t$ong :'i 2 n'. `)i dung csa ví dụ th hiện t$ong (;ch +iện hWnh 7. bo;t+)ng csa (;ch +iện t nhE &au 1 chip UM%ga6 +EZc & dụng nhE ()t count%$c9 th dzng + +=( lPn v' +=( uTng 2 :utton t$ong (;ch +iện tFc +)ng nhE 2~-ic-%$• nhn :utton 1 + +=( lPn v' :utton + +=( uTng giF t$ +=( n]( t$ong

    -ho0ng t< +=n 7. GiF t$ +=( +EZc hin th t$Pn 1 jD ‚ +o;n lo;i anod chungdEAng chung> chip ‚44‚ +EZc dzng + gi0i (/ t< giF t$ _CD ut $a :YiUM%ga6 &ang tín hiệu cho jD ‚ +o;n anod chung ch?ng ta cNn & dụng ‚44‚ vWtín hiệu ut $a t< chip UM%ga6 l' d;ng nh phn hoHc _CD tín hiệu n' -hôngth hin th t$c ti=p t$Pn cFc jD ‚ +o;n chip ‚44‚ c9 nhiệ( vụ chun 1 d liệud;ng digit _CD &ang (/ phz hZp cho jD ‚ +o;n.  thc hiện ví dụ t$Eớc h=t :;n h/ v{ (;ch +iện nhE t$ong hWnh 7 :]ng

     phNn (,( #$ot%u& %( cFch v{ (;ch +iện :]ng #$ot%u&> (;ch +iện chX c9 8 lo;ilinh -iện l' chip UM%ga6 t< -h9a (%ga6> 1 jD ‚ +o;n anod chung với tPn +N+s t$ong #$ot%u& l' ‚"jGBCkMB`BG!` t< -h9a ‚"jG> 1 chip ‚44‚ t< -h9a

    ‚44‚> 1 +iện t$Y 1 ˜ v' 2 :utton t< -h9a :utton>.

    http://www.hocavr.com/index.php/software/protueshttp://www.hocavr.com/index.php/software/protues

  • 8/18/2019 Lap Trinh Avr

    32/186

    bWnh 7. Ví dụ cho :'i 2.  " dụng V!"tudio t;o 1 p$o€%ct (ới với tPn g*i av$2 %( l;i cFch t;o

    #$o€%ct (ới t$ong V!"tudio>. Vi=t l;i phNn cod% :Pn dEới v'o v'o il% av$2.a&(i&t 1. Ví dụ cu t$?c V! 

    12348e‚67111121314181e

    1‚16172212223

    .`CqDj ƒM6Dj.`Cƒ

    .C"jG.

    .k!G   !„M# _UDq.k!G 2_UDq…|bk Dk`G "UC| #k`Uj!   D !1‚ bGb!Mj`D>  D !1e k!Mj`D>  kqU "# !1e  kqU "#b!1‚… |bk Dk`G CC #k!U  C!  !1e … ‘k !1e !1eŠ  kqU DD!_ !1e … DD!_Š #k!U_ `Gk `b# 

    D !1e … "jU UU C CC _U Cq !1e j` 1  kqU #k!U_!1e …DD!_Š #k!U_ Š |jk j` CC Cb` #k!U_

      kqU DD!D !1e …DD!DŠ #k!UD ̀ Gk ‘qU  C!  !28 …‘k !28 !28 Ub`b Gb Dq`G Cbq "k DjM  "j!  !2 … !2 Ub`b Gb UM Cbq G U! U!qkC Dk Cq #`_M`  ` !21#`_ …DkC G U! Uq #`_ UqC Uq CC _qUUk`  !C "k"`b …Gk Cbqk`G U!`b Ck` "k"`b  kqU #k!UD !28 …‘qU G U! DjM ! #k!UD

    http://www.hocavr.com/index.php/software/avr-studiohttp://www.hocavr.com/index.php/software/avr-studio

  • 8/18/2019 Lap Trinh Avr

    33/186

    24282e2‚

    2627331323334383e3‚

    3637441424344484e

    4‚4647881828384888e

    8‚

      "_!" !21 …`jq _U Cq !21 UqC Cb` #_> Š1 Ub _k Œq Dk`G !C U`G …`b† Dj` Cbqk`G U!`b Ck` U`G G U! DjM

      "_!" !211 …`jq _U 1 Cq !21 UqC Cb` #_1> Š1 Ub _k Œq Dk`G !C GM …`b† Dj` Cbqk`G U!`b Ck` GM G U! DjM

      MkV !2!21 …qq U!`G Ub #`_  !„M# M`…™™™™™™™™™™™™™™™™™™™™™™Cbqk`G U!`b Ck`™™™™™™™™™™™™™™™™™™™™™™™™… ™™™™™™™™™™™™™™&u:$outin% -i%( t$a gioi hang tu d%n 7> cua &o d%("k"`b  C# !28 1  _!jŒ !j"jU …`jq G U! DjMŠ1 Ub U! Vj   C# !28 288  _!jŒ !j"jU7 …`jq G U! DjM Š288 Ub U! Vj 7  !„M# Œq†Vj …`b† Dj` `b` Œq†Vj

    !j"jU  D !28 …U! G U! DjM Vj   !„M# Œq†Vj!j"jU7  D !287 …G` 7 Cbk G U! DjMŒq†Vj  !jU… ™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™… ™™™™™™™™™™™™™™&u:$outin% tang &o d%( 1 don vi n%u di%u -i%n thoa

    U`G  "_!" !2  !jU  `C !28  !jU… ™™™™™™™™™™™™™™&u:$outin% gia( &o d%( 1 don vi n%u di%u -i%n thoaGM  "_!" !21  !jU  DjC !28

      !jU  U$ong ví n' n' ch?ng ta & dụng 2 #k!U csa chip UM%ga6 #k!UD dzngut d liệu &T +=(> $a chip ‚44‚ v' &au +9 hin th t$Pn jD ‚ +o;n. #k!U_dzng nhE ng nh@p tín hiệu t< cFc :utton &{ +EZc chip UM%ga6 nh@n thông yua 2chn #_ v' #_1 csa #k!U_.  bo;t +)ng csa cac #k!U v' việc Fc l@p 1 #k!U nhE cFc ng ut ch?ng ta +/-h0o &Ft t$ong :'i 1. š + ch?ng ta -h0o &Ft thP( v, Fc l@p #k!U nhE 1 ng

  • 8/18/2019 Lap Trinh Avr

    34/186

    nh@p t$Eớc h=t :;n h/ yuan &Ft (;ch +iện tEAng +EAng csa 1 chn t$ong cFc#k!U ut nh@p csa V! t$ong hWnh 1.

    bWnh 1. Cu t$?c chn t$ong #k!U csa V!.  U$ong (;ch +iện hWnh 1 cFc diod% v' tụ +iện chX c9 chJc nLng :0o vệ chn#k!U nhEng +iện t$Y !pu ! #ull up> +9ng vai t$5 yuan t$*ng nhE l' +iện t$Y -xolPn -hi chn csa #k!U l'( nhiệ( vụ nh@n tín hiệu ng nh@p>. Uu nhiPn t$ongV! +iện t$Y -xo lPn n' -hông ph0i luôn -ích ho;t ch?ng ta :i=t $]ng ([i #k!Ucsa V! c9 3 thanh ghi DD! #k!U v' #` n=u DD!Š thW #k!U l' ngnh@p l?c n' thanh ghi #` l' thanh ghi chJa d liệu nh@n v, +Hc :iệt thanh ghi#k!U vn +EZc & dụng t$ong (od% n' +9 l' thanh ghi Fc l@p +iện t$Y -xo lPnnhE th= n=u DD!Š v' #k!UŠ thW cFc chn #k!U l' ng nh@p v' +EZc

    -xo lPn :Yi 1 +iện t$Y t$ong chip ngha l' cFc chn csa #k!U luôn Y (Jc cao(uTn -ích + tha +Ri t$;ng thFi chn n' ch?ng ta cNn nTi chn +9 t$c ti=p vớiG`D + l' l do t;i &ao cFc :utton t$ong (;ch +iện csa ch?ng ta c9 1 +Nu nTi vớichn csa chip c5n +Nu -ia +EZc nTi với G`D. cng l' ngha csa -hFi niệ(+iện t$Y -xo lPn #ull up $%&i&to$> t$ong - thu@t +iện t. o;n cod% t$ong phNn~|bk Dk`G CC #k!U• csa ví dụ n' Fc l@p #k!UD l' ng utDD!DŠ> #k!U_ l' ng nh@p c9 & dụng +iện t$Y -xo lPn DD!_Š#k!U_Š>.  Ch?ng ta &{ gi0i thích ho;t +)ng csa +o;n chEAng t$Wnh chính v' cFc +o;nchEAng t$Wnh con. U$Eớc h=t t$ong chEAng t$Wnh n' ch?ng ta & dụng 3 thanh ghichính l' !2 !21 v' !28 t$ong +9 !28 l' thanh ghi chJa &T +=( giF t$ csa thanhghi !28 &{ +EZc ut $a #k!UD csa chip thanh ghi !21 chJa t$;ng thFi csa thanhghi #`_ v' cng l' t$;ng thFi csa cFc :utton thanh ghi !2 -=t hZp với thanh ghi!21 t;o th'nh 1 ~:) +=( c;nh uTng• csa cFc :utton. hiu thu +Fo ho;t +)ng+=( cng l' ho;t +)ng chính csa ví dụ n'> ch?ng ta xt t$;ng thFi chn #_ nhEt$ong hWnh 11.

  • 8/18/2019 Lap Trinh Avr

    35/186

    bWnh 11. Uha +ˆi t$;ng thFi Y cFc chn mk.  U$ong t$;ng thFi :Wnh thESng :utton -hông +EZc nhn> chn #_ Y (Jc caodo +iện t$Y -xo lPn> :) +=( -hông ho;t +)ng giF t$ +=( -hông tha +ˆi : giS n=u nhn :utton chn #_ +EZc nTi t$c ti=p với G`D chn n' &{ : -xo uTng(Jc thp :]ng cFch -i( t$a t$;ng thFi chn #_ n=u #_Š ta tLng giF t$ +=( 1+An v. › tEYng nhE th= c9 v hZp l tu nhiPn n=u Fp dụng thW chEAng t$Wnh &{ho;t +)ng -hông +?ng chJc nLng -hi :;n nhn 1 lNn giF t$ +=( c9 th tLng +=nc0 t$L( hoHc -hông -i( &oFt +EZc hiệu Jng n' tEAng t -hi :;n nhn v' gi 1

     phí( t$Pn :'n phí( (F tính l do l' vW ch?ng ta & dụng phEAng phFp -i( t$a(Jc + +=( thSi gian yuxt csa chEAng t$Wnh $t ngOn &o với thSi gian ch?ng tagi :utton. -hOc phục ch?ng ta dzng phEAng phFp -i( t$a c;nh uTng chX-hi n'o phFt hiện chn #_ tha +ˆi t< 1 uTng thW (ới tLng giF t$ +=( 1 +An v-=t yu0 l' ([i lNn nhn :utton thW giF t$ +=( chX tLng 1 nga c0 -hi ta nhn v' gi

     :utton> thanh ghi !2 +EZc & dụng + lEu t$;ng thFi t$Eớc +9 csa #`_ cng l't$;ng thFi csa cFc :utton>.  U$ong chEAng t$Wnh tôi & dụng 2 i&t$uction (ới l' "_!C v' "_!" + -i( t$at$;ng thFi cFc chn csa #k!U_ :utton>. "_!C \ "-ip i _it in !%gi&t%$ i& Cl%a$lệnh n' &{ :ỏ yua 1 d5ng lệnh nga &au +9 chX :ỏ yua 1 d5ng du nht> n=u 1 :itt$ong thanh ghi Y (Jc "_!C \ "-ip i _it in !%gi&t%$ i& "%tB ho;t +)ng tEAng t

    "_!C nhEng &-ip &{ 0 $a n=u :it t$ong thanh ghi Y (Jc 1. Da v'o + ch?ng tagi0i thích 4 d5ng &au"_!" !21 …`jq _U Cq !21 UqC Cb` #_> Š1 Ub _k ŒqDk`G …Uj# Ubjk!C U`G …`b† Dj` Cbqk`G U!`b Ck` U`G G U! DjM"_!" !211 …`jq _U 1 Cq !21 UqC Cb` #_1> Š1 Ub _k ŒqDk`G …Uj# Ubjk!C GM …`b† Dj` Cbqk`G U!`b Ck` GM G U! DjM  D5ng 1 dzng -i( t$a t$;ng thFi :it t$ong !21 ch? !21 chJa giF t$ csa#`_> n=u :it n' :]ng 1 &%t> tJc chn #_Š1 ha :utton -hông +EZc nhn thWnh0 :ỏ yua d5ng lệnh ti=p th%o + +=n d5ng 3. š d5ng 3 chEAng t$Wnh -i( t$at$;ng thFi chn #_1 :utton thJ 2>. Œua l;i d5ng 1 n=u chEAng t$Wnh -i( t$a

     phFt hiện chn #_Š :utton thJ nht +EZc nhn> thW d5ng lệnh thJ 2 +EZc thcthi -=t yu0 l' chEAng t$Wnh nh0 +=n chEAng t$Wnh con U`G.U`G"_!" !2

  • 8/18/2019 Lap Trinh Avr

    36/186

    !jU`C !28!jU  D5ng +Nu tiPn csa chEAng t$Wnh con U`G l' -i( t$a t$;ng thFi t$Eớc +9 csachn #_ +EZc lEu Y :it t$ong thanh ghi !2> n=u t$;ng thFi n' :]ng nghal' -hông c9 & chun t< 1 uTng Y chn #_ d5ng 2 lệnh !jU> &{ +EZc thcthi + yua v, chEAng t$Wnh chính. `hEng n=u #_ t$Eớc +9 :]ng 1 ngha l' c9 &tha +ˆi t< 1Bœ Y chn n' giF t$ +=( &{ +EZc tLng thP( 1 nhS `C !28 &au +9yua v, chEAng t$Wnh chính.U9( l;i (uTn tLng giF t$ +=( thP( 1 +An v cNn thỏa (/n 2 +i,u -iện chn #_hiện t;i Š :utton +ang +EZc nhn> v' t$;ng thFi t$Eớc +9 csa #_ ph0i l' 1 t$Fnht$ESng hZp tLng liPn tục>. #hEAng phFp n' c9 th Fp dụng cho $t nhi,u t$ESnghZp +=( d;ng +=( ung.  ŒuF t$Wnh gi0( giF t$ +=( +EZc hiu tEAng t phNn c5n l;i csa ví dụ n' :;n

    +*c h/ t gi0i thích th%o nhng gZi t$Pn.Bài 3 - "#$t n#oài

    • 1

    • 2

    • 3

    • 4

    • 5

     ( 138 Votes )

    Nội dung Các bài cần tham khảo trước

    1.  `gOt t$Pn V!.

    2.  `gOt ngo'i.

    3. Ví dụ ngOt ngo'i với C.

    Download ví dụ

    Cu t$?c V! .

    inV! .

    C cho V!.

     

    http://www.hocavr.com/index.php/vi/lectures/ngatngoaihttp://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://www.hocavr.com/index.php/lectures/ngatngoai#1-ngathttp://www.hocavr.com/index.php/lectures/ngatngoai#2-ngat-ngoaihttp://www.hocavr.com/index.php/lectures/ngatngoai#3-vi-duhttp://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=7http://www.hocavr.com/index.php/lectures/cautrucavrhttp://www.hocavr.com/index.php/software/winavrhttp://www.hocavr.com/index.php/software/c-cho-avrhttp://www.hocavr.com/index.php/vi/lectures/ngatngoaihttp://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://void%28null%29/http://www.hocavr.com/index.php/lectures/ngatngoai#1-ngathttp://www.hocavr.com/index.php/lectures/ngatngoai#2-ngat-ngoaihttp://www.hocavr.com/index.php/lectures/ngatngoai#3-vi-duhttp://www.hocavr.com/index.php/thaoluan?func=view&catid=5&id=7http://www.hocavr.com/index.php/lectures/cautrucavrhttp://www.hocavr.com/index.php/software/winavrhttp://www.hocavr.com/index.php/software/c-cho-avr

  • 8/18/2019 Lap Trinh Avr

    37/186

    Mô phỏng với #$ot%u&.

    I. Ngt trn !".  nt%$$upt& thESng +EZc g*i l' ngOt l' ()t tín hiệu -hrn cp gYi +=n :) líPu cNu :) lí t;( ng. U$ong l?c chEAng t$Wnhchính +ang thc thi n=u c9 ()t & tha +ˆi dn +=n ngOt 0 $a Y chn `U chn

    http://www.hocavr.com/index.php/software/protueshttp://www.hocavr.com/index.php/software/protues

  • 8/18/2019 Lap Trinh Avr

    38/186

    4> :) +=( chEAng t$Wnh #$og$a( Count%$> nh0 +=n +a chX 1 gi0 & ngat;i +a chX 1 ch?ng ta c9 +Ht 1 lệnh !„M# +=n ()t t$Wnh phục vụ ngOt !"1chIng h;n> ()t lNn na :) +=( chEAng t$Wnh nh0 +=n !"1 + thc thi t$Wnh phụcvụ ngOt -=t th?c "!1 :) +=( chEAng t$Wnh l;i yua v, v t$í t$Eớc +9 t$ongchEAng t$Wnh chính yuF t$Wnh ngOt -=t th?c. |hông (ang tính :Ot :u)c nhEng tôi-huPn :;n nPn tˆ chJc chEAng t$Wnh ngOt th%o cFch n' + t$Fnh nhng l[i liPnyuan +=n +a chX chEAng t$Wnh.

    bWnh 1. `gOt.

      _0ng 1 t9( tOt cFc v%cto$ ngOt c9 t$Pn chip at(%ga6 cho cFc chip -hFc :;n h/tha( -h0o data&h%%t + :i=t thP(.

    _0ng 1 cFc v%cto$ ngOt v' !%&%t t$Pn chip t(%ga6.

  • 8/18/2019 Lap Trinh Avr

    39/186

    II. Ngt ngoài ':Lt$rna% Int$rru1t*.

      #hNn n' tôi d'nh giới thiệu cFc :;n cFch c'i +Ht v' & dụng ngOt ngo'i vW +l' lo;i ngOt du nht +)c l@p với cFc thi=t : csa chip cFc ngOt -hFc thESng gOnvới ho;t +)ng csa 1 thi=t : n'o +9 nhE Ui(%$mCount%$ giao ti=p nTi ti=p q"!U

  • 8/18/2019 Lap Trinh Avr

    40/186

    chun +ˆi DC^ch?ng ta &{ -h0o &Ft cụ th -hi tW( hiu v, ho;t +)ng csa cFcthi=t : n'.

      `gOt ngo'i l' cFch $t hiệu yu0 + thc hiện giao ti=p gia ngESi dzng v' chip.U$Pn chip at(%ga6 c9 2 ngOt ngo'i c9 tPn l' `U v' `U1 tEAng Jng 2 chn &T 4

    #D2> v' &T 8 #D3>. `hE tôi +/ +, c@p t$ong :'i V!2 -hi l'( việc với cFc thi=t : ngo;i vi csa V! hNu nhE ch?ng ta chX thao tFc t$Pn cFc thanh ghi chJc nLng+Hc :iệt B "! "p%cial unction !%gi&t%$&> t$Pn vzng nhớ k ([i thi=t : :ao gR(()t t@p hZp cFc thanh ghi +i,u -hin t$;ng thFi ngOt^-hFc nhau +i,u n' +Rngngha ch?ng ta ph0i nhớ tt c0 cFc thanh ghi csa V!. ?c n' data&h%%t phFt hutFc dụng :;n ph0i nhanh ch9ng download il% data&h%%t csa chip (Wnh +ang &dụng c9 $t nhi,u nAi + download nhE t;i www.at(%l.co(ha t$Pn cFc t$ang w%:chuPn cung cp C data&h%%t (iKn phí www.alldata&h%%t.co( l' 1 ví dụ>. Œuav, với ngOt ngo'i c9 3 thanh ghi liPn yuan +=n ngOt ngo'i +9 l' MCqC! GC! v'

    G!. Cụ th cFc thanh ghi +EZc t$Wnh :' :Pn dEới.  Thanh ghi 5ieu khiFn )C= _ )C=C"  MCq Cont$ol !%gi&t%$> l' thanh ghiFc l@p ch= +) ngOt cho ngOt ngo'i yuan &Ft hWnh 2 t$Eớc -hi tW( hiu thanh ghin'.

    bWnh 2. |=t nTi ngOt ngo'i cho at(%ga6.

      Gi0 & ch?ng ta -=t nTi cFc ngOt ngo'i t$Pn V! (%ga6 nhE phía t$Fi hWnh 2cFc :utton dzng t;o $a cFc ngOt. C9 4 -h0 nLng t;( g*i l' cFc MkDj"> c9 th 0$a -hi ch?ng ta nhn v' th0 cFc :utton. `=u -hông nhn t$;ng thFi cFc chn `U l'

    bGb do +iện t$Y -xo lPn -hi v

  • 8/18/2019 Lap Trinh Avr

    41/186

    1 t$ong 4 MkDj t$Pn cho cFc ngOt ngo'i. DEới + l' cu t$?c thanh ghi MCqC!+EZc t$ích $a t< data&h%%t csa chip at(%ga6.

      MCqC! l' ()t thanh ghi 6 :it nhEng +Ti với ho;t +)ng ngOt ngo'i ch?ng tachX yuan t( +=n 4 :it thp csa n9 4 :it cao dzng cho #ow%$ (anag%$ v' "l%%pMod%>. _Tn :it thp l' cFc :it nt%$$upt "%n&% Cont$ol "C> t$ong +9 2 :it"C11"C1 dzng cho `U1 v' 2 :it "C1"C dzng cho `U. b/ nhWn v'o

     :0ng t9( tOt :Pn dEới + :i=t chJc nLng csa cFc :it t$Pn + l' :0ng ~chn t$• csa2 :it "C11 "C1. _0ng chn t$ cho cFc :it "C1 "C ho'n to'n tEAng t.

    _0ng 2 `U1 "%n&% Cont$ol

      Uh@t dK d'ng + hiu chJc nLng csa cFc :it "%n&% Cont$ol ví dụ :;n (uTn &%tcho `U1 l' ngOt c;nh uTng alling jdg%> t$ong -hi `U l' ngOt c;nh lPn!i&ing jdg%> h/ +Ht d5ng lệnh MCqC! Š_ _ Š 111 nh phn>t$ong chEAng t$Wnh csa :;n.

      Uhanh ghi +i,u -hin ngOt chung \ GC! G%n%$al nt%$$upt Cont$ol !%gi&t%$>ch? t$Pn cFc chip V! c nhE cFc chip U7" thanh ghi n' c9 tPn l'thanh ghi (Ht n; ngOt thông thESng GM"| :;n tha( -h0o thP( data&h%%t csacFc chip n' n=u cNn & dụng +=n>. GC! cng l' 1 thanh ghi 6 :it nhEng chX c9 2

     :it cao :it e v' :it ‚> l' +EZc & dụng cho +i,u -hin ngOt cu t$?c thanh ghi nhE :Pn dEới t$ích data&h%%t>.

  • 8/18/2019 Lap Trinh Avr

    42/186

      _it ‚ \ `U1 g*i l' :it cho phxp ngOt 1nt%$$upt jna:l%> &%t :it n' :]ng 1ngha :;n cho phxp ngOt `U1 ho;t +)ng tEAng t :it `U +i,u -hin ngOt `U.

      Uhanh ghi cS ngOt chung \ G! G%n%$al nt%$$upt lag !%gi&t%$> c9 2 :it`U1 v' `U l' cFc :it t$;ng thFi ha :it cS B lag> csa 2 ngOt `U1 v' `U.

     `=u c9 1 & -iện ngOt phz hZp 0 $a t$Pn chn `U1 :it `U1 +EZc t +)ng &%t :]ng 1 tEAng t cho t$ESng hZp csa `U> ch?ng ta c9 th & dụng cFc :it n'+ nh@n $a cFc ngOt tu nhiPn +i,u n' l' -hông cNn thi=t n=u ch?ng ta cho phxpngOt t +)ng vW v@ thanh ghi n' thESng -hông +EZc yuan t( -hi l@p t$Wnh ngOt

    ngo'i. Cu t$?c thanh ghi G! +EZc t$Wnh :' t$ong hWnh nga :Pn dEới.

      "au -hi +/ Fc l@p cFc :it &}n &'ng cho cFc ngOt ngo'i iệc sau cJng chDng tacần %àm %à s$t bit I8 tRc bit cho 1hf1 ngt toàn c,c t$ong thanh ghi t$;ng thFi

    chung csa chip thanh ghi "!jG %( l;i :'i V!2>. )ột chD khác %à - cácchZn 29U8 29W %à các chZn ngt nn bạn 1hải s$t các chZn nà& %à In1ut &%tthanh ghi DD!D>. ŒuF t$Wnh thi=t l@p ngOt ngo'i +EZc t$Wnh :' t$ong hWnh 1.

    bWnh 3. Uhi=t l@p ngOt ngo'i.

  • 8/18/2019 Lap Trinh Avr

    43/186

      Ngt ngoài ới ()# DEới + tôi t$Wnh :' cFch vi=t chEAng t$Wnh & dụngngOt ngo'i :]ng ngôn ng "M +Ti với cFc ngOt -hFc :;n chX cNn thP( cFcD!jCUVj + +nh v cFc v%cto$ ngOt tEAng Jng v' vi=t chEAng t$Wnh phục vụngOt tEAng Jng.

    i&t 1. `gOt với "M.12348e‚6

    7111121314181e1‚

    1617221222324282e2‚

    2627331323334

    .C"jG

    .`CqDj ƒM6Dj.`Cƒ

    .k!G … nh v v t$í +Nu tiPn  !„M# _UDq

    .k!G 1… nh v v%cto$ ngOt ngo'i B `U %( :0ng v%cto$>  !„M# `U"! … `h0 +=n `U"! n=u c9 ngOt `U 0 $a.k!G 2 … nh v v%cto$ ngOt ngo'i 1 \ `U1 %( :0ng v%cto$>  !„M# `U1"! … `h0 +=n `U1"! n=u c9 ngOt `U1 0 $a

    …UEAng t +nh v cFc v%cto$ ngOt -hFc Y +^^^^^^..…^^^^^^^^^^^^^^^^^^^^^^^^..

    .k!G 2 … nh v chEAng t$Wnh chính_UDq… -hYi t;o "tac-   D !1e bGb!Mj`D>  D !1‚ k!Mj`D>

      kqU "#b !1e  kqU "# !1‚

    … &%t chn #D2 v' #D3 nhE cFc chn input  D !1e _ … l' t$;ng thFi do :;n t ch*n hoHc 1  kqU DD!D !1e … #D2 v' #D3 l' input  D !1e _11 … l' t$;ng thFi do :;n t ch*n hoHc 1  kqU #k!UD !1e … (Oc +iện t$Y -xo lPn cho #D2 #D3

    … -hYi +)ng ngOt  D !1e _ … _Š111 `U1 ngOt c;nh uTng `U ngOt c;nh lPn  kqU MCqC! !1e … ut giF t$ +i,u -hin $a thanh ghi MCqC!   D !1e C …CŠ11 jna:l% `U1 v' `U  kqU GC! !1e …ut giF t$ +i,u -hin $a thanh ghi GC!   "j …&%t :it cho phxp ngOt to'n cục… ChEAng t$Wnh chính

  • 8/18/2019 Lap Trinh Avr

    44/186

    383e3‚

    3637441424344484e

    4‚

    M`…cFc công việc (' chEAng t$Wnh chính cNn thc hiện^^^^^^…^^^^^^^^^^^^^^^^^^^^^^^^^^.  !„M# M`

    …v' + l' +nh ngha t$Wnh phục vụ ngOt `U"!^^^^^^^`U"!… cFc công việc cNn thc hiện -hi c9 ngOt ^^^^^^^^…^^^^^^^^^^^^^^^^^^^^^^^^.  !jU … ph0i dzng lệnh !jU + yua v, chEAng t$Wnh chính

    …v' + l' +nh ngha t$Wnh phục vụ ngOt `U1"!^^^^^^^`U1"!… cFc công việc cNn thc hiện -hi c9 ngOt ^^^^^^^^

    …^^^^^^^^^^^^^^^^^^^^^^^^.  !jU … ph0i dzng lệnh !jU + yua v, chEAng t$Wnh chính

      _;n th cFc cFc ngOt +EZc +nh v n]( gia v t$í -hi (ới -hYi +)ngt;i ví t$í l' lệnh ~!„M# _UDq• nhE th= cFc lệnh !„M# t;i cFc v%cto$ngOt v' cFc "! +,u -hông +EZc thc hiện ch?ng chX +EZc thc hiện ()t cFch t+)ng -hi c9 ngOt.

      Ngt ngoài ới C# v$Bli:c h[ t$Z ()t thE viện h'( cho ngOt -hF ho'n h0o+ & dụng ngOt t$ong chEAng t$Wnh vi=t :]ng C av$Bgcc> :;n chX cNn includ% il%

    ~int%$$upt.h• n]( t$ong thE (ục con ~av$• l' ong. il% h%ad%$ int%$$upt.h chJa+nh ngha cFc h'( v' phEAng thJc phục vụ cho vi=t t$Wnh phục vụ ngOt cFc v%cto$ ngOt -hông +EZc +nh ngha t$ong il% n' (' t$ong il% io(6.h cho at(%ga6>.

     `=u :;n vô tWnh tW( th 1 chEAng t$Wnh ngOt n'o +9 -hông includ% il% int%$$upt.h(' includ% il% &ignal.h thW :;n +

  • 8/18/2019 Lap Trinh Avr

    45/186

    348e

    "!  v%cto$na(%>mmu&%$ cod% h%$%¡

      U$ong +9 v%cto$na(% l' tPn csa cFc v%cto$ ngOt +nh ngha &}n av$Bli:c "! l'tPn :Ot :u)c :;n -hông +EZc dzng cFc tPn -hFc tz Q nhEng c9 th dzng"G` nhE +/ t$Wnh :' Y t$Pn>. Hc :iệt :;n c9 th +Ht "! Y t$Eớc hoHc &auchEAng t$Wnh chính +,u -hông 0nh hEYng vW th@t $a +/ c9 -hF nhi,u ~công +o;n•+EZc thc hiện -hi :;n g*i "! nhEng :;n -hông th v' cng -hông cNn yuant(>. "! luôn +EZc t$Wnh :iPn dch +Ht Y ngo'i vzng v%cto$ ngOt nhE cFch ch?ngta thc hiện t$ong "M nhE th= ()t chEAng t$Wnh & dụng nhi,u lo;i ngOt &{ ph0ic9 &T lEZng t$Wnh "! tEAng Jng nhEng với v%cto$na(% -hFc nhau ([i -hi c9ngOt 0 $a tz thu)c v'o giF t$ csa v%cto$na(% (' 1 t$ong cFc t$Wnh "! +EZc

    thc thi. Ti với cFc v%cto$na(% + :i=t +EZc v%cto$na(% cho ([i lo;i ngOt :;n cNn tha( -h0o t'i liệu ~av$Bli:c (anual•. _0ng 1 t9( tOt cFc v%cto$na(%csa ()t &T ngOt thông dụng t$Pn at(%ga6 :;n ch? $]ng cFc v%cto$na(% t$ongav$Bli:c +EZc +nh ngha $t -hFc nhau cho t%d $ctor nam$ 9$scri1tion

    DCv%ct "GDC DC Conv%$&ion C

    `CkM#v%ct "GCkM#!Uk! nalog Co(pa$ato

    jj!D†v%ct "Gjj#!kM!jD† jj#!kM !%ad

    `Uv%ct "G`Uj!!q#U jt%$nal nt%$$upt

    `U1v%ct "G`Uj!!q#U1 jt%$nal nt%$$upt !

    "#"UCv%ct "G"# "%$ial U$an&%$ Co(

    "#M!D†v%ct "G"#M!jD† "to$% #$og$a( M%(

    UMj!kVv%ct "GkVj!k Ui(%$mCount%$ kv

    UMj!1C#Uv%ct "G`#qUC#Uq!j1 Ui(%$mCount%$ Cap

    UMj!1CkM#v%ct "GkqU#qUCkM#!j1 Ui(%$mCount%$1 CoUMj!1CkM#_v%ct "GkqU#qUCkM#!j1_ Ui(%$mCount%$1 Co

    UMj!1kVv%ct "GkVj!k1 Ui(%$mCount%$1 kv

    UMj!2CkM#v%ct "GkqU#qUCkM#!j2 Ui(%$mCount%$2 Co

    UMj!2kVv%ct "GkVj!k2 Ui(%$mCount%$2 kv

    Uv%ct "G2!j"j! 2Bwi$% "%$ial nt%$

  • 8/18/2019 Lap Trinh Avr

    46/186

    q"!U3qD!jv%ct "Gq"!U3DU q"!U3 Data $%gi

    III. !4 d, ngt ngoài ới C.

      thc hiện ví dụ & dụng ngOt ngo'i :]ng C tôi &{ vi=t l;i chEAng t$Wnh ví dụ

    csa :'i ƒcu t$?c V! ƒ nhEng :]ng ngôn ng C v' & dụng ngOt. U$ong chEAngt$Wnh ví dụ csa :'i V!2 ch?ng ta thc hiện việc +=( lPn v' +=( uTng dzng 2 :utton ch?ng ta &{ vn thc hiện t$Pn tEYng n' nhEng c9 ch?t tha +ˆi t$ong -=tnTi t$Eớc h=t :;n v{ 1 (;ch +iện (ô phỏng t$ong #$ot%u& nhE hWnh 4.

    bWnh 4. M;ch +iện (ô phỏng ngOt.

      |=t nTi :utton +=( lPn với ngOt `U :utton +=( uTng với `U1 #k!U_+EZc ch*n l'( #k!U ut. b/ ch;#$og$a((%$ `ot%pad t;o 1 #$o€%ct (ới tPnV!2B`U tp% +o;n cod% :Pn dEới v'o 1 il% n%w v' lEu với tPn (ain.c add il%n' v'o #$o€%ct csa :;n &au +9 t;o ()t Ma-%il% cho #$o€%ct.

    i&t 3. ví dụ ngOt ngo'i :]ng C.

    12348e‚6

    žinclud% Ÿav$mio.hœžinclud% Ÿav$mint%$$upt.hœžinclud% Ÿav$md%la.hœ

    volatil%  int6t valŠ… mm-hai :Fo 1 :i=n val 6 :it c9 du v' giF t$ -hYi t;o :]ng .int (ainvoid>

      DD!DŠ… mm-hai :Fo #k!UD l' nput + & dụng 2 chn ngOt.

    http://www.hocavr.com/index.php/lectures/cautrucavrhttp://www.hocavr.com/index.php/software/winavrhttp://www.hocavr.com/index.php/lectures/cautrucavrhttp://www.hocavr.com/index.php/software/winavr

  • 8/18/2019 Lap Trinh Avr

    47/186

    711112

    1314181e1‚161722122

    2324282e2‚2627331

    323334383e

      #k!UDŠ… mm& dụng +iện t$Y n)i -xo lPn.  DD!_Š… mm#k!U_ l' kutput + ut jD ‚ +o;n 

    MCqC!¢Š1ŸŸ"C11>¢1ŸŸ"C1>…  mmc0 2 ngOt l' ngOt c;nh uTng

    GC! ¢Š1ŸŸ`U1>¢1ŸŸ`U>… mmcho phxp 2 ngOt ho;t +)ng  &%i>… mm&%t :it cho phxp ngOt to'n cục 

    DD!CŠ… mm#k!UC l' kutputwhil% 1> mmv5ng lHp vô t@n

    #k!UC££… mmyuxt #k!UC  d%laloop2e>…  ¡  $%tu$n …¡

    mmU$Wnh phục vụ ngOt csa `U"! `Uv%ct>  val££… mmn=u c9 ngOt `U 0 $a tLng val thP( 1  i  valœ7> valŠ… mmgiới h;n -hông vEZt yuF 7  #k!U_Šval…¡

    mmU$Wnh phục vụ ngOt csa `U1

    "! `U1v%ct>  valBB… mmn=u c9 ngOt `U1 0 $a gi0( val +i 1  i  valŸ> valŠ7… mmgiới h;n -hông nhỏ hAn   #k!U_Šval…¡

      C9 l{ +o;n cod% n' -hF dK hiu n=u cFc :;n th%o di t< +Nu :'i h*c tôi chXgi0i thích nhng nxt cA :0n v' ~(ới•. › tEYng l' ch?ng ta & dụng 1 :i=n t;( 6

     :it c9 du + lEu giF t$ +=( tPn :i=n val ([i -hi c9 ngOt t$Pn chn `U tLngval 1 +An v v' ngEZc l;i -hi c9 ngOt t$Pn `U1 gi0( val +i 1 +9 l' n)i dung csa 2

    t$Wnh phục vụ ngOt. U$ong chEAng t$Wnh chính t$Eớc h=t ch?ng ta thc hiện việc Fcl@p ho;t +)ng cho 2 ngOt &au +9 +Ea chEAng t$Wnh v'o 1 v5ng lHp vô t@n whil%1>#k!UC +EZc dzng + -i( t$a $]ng chEAng t$Wnh t$ong v5ng lHp vô t@n vn +angho;t +)ng. C9 l{ phNn -h9 hiu nht t$ong +o;n cod% l' cFch (' tôi dzng + -hai

     :Fo cho 2 thanh ghi +i,u -hin ngOt MCqC! v' GC!.

  • 8/18/2019 Lap Trinh Avr

    48/186

      `=u %( l;i :0ng t9( tOt cFc toFn t csa C toFn t ~ŸŸ• +EZc g*i l' toFn t~dch t$Fi• dzng t$Pn d;ng nh phn csa cFc con &T n=u :;n th Š8ŸŸ3 ngha l'dch cFc :it nh phn csa 8 &ang t$Fi 3 v t$í v' gFn cho nhE (ô t0 nhE &au

      _;n th to'n :) cFc :it csa 8 +/ dch &ang t$Fi 3 v t$í v' giF t$ csa &T (ớithu +EZc l' Š4 ch? 4Š86Š82¤3 . b/ nhWn cu lệnh MCqC!¢Š1ŸŸ"C11>¢1ŸŸ"C1> giS thW :;n +/ hiu 1ŸŸ"C11> ngha l' dch &T 1&ang t$Fi "C11 v t$í v' 1ŸŸ"C1> l' dch &T 1 &ang t$Fi "C1 v t$í nhEng

    "C11 v' "C1 Y +u $a v' giF t$ csa ch?ng l' :ao nhiPu¥ _;n ch? -hi :;ninclud% il% ~io.h• thW il% ~io(6.h• +EZc ch‡n v'o v' t$ong il% n' chJa -hai

     :Fo +a chX cFc thanh ghi csa chip at(%ga6 cFc tPn :it cng +EZc -hai :Fo &}nt$ong il% n' n=u :;n (Y il% io(6.h thESng n]( t$ong thE (ục¦‰inV!‰av$‰includ%‰av$> :]ng 1 chEAng t$Wnh t%t %dito$ nhE not%pad dzngchJc nLng ind :;n &{ th cFc d5ng +nh ngha nhE &au

    m™ MCqC! ™mžd%in% "j ‚žd%in% "M2 e

    žd%in% "M1 8žd%in% "M 4žd%in% "C11 3žd%in% "C1 2žd%in% "C1 1žd%in% "C

      l' +nh ngha v t$í cFc :it t$ong thanh ghi MCqC! v@ l' +/ $"C11Š3 "C1Š1 do +9 1ŸŸ"C11> tEAng +EAng 1ŸŸ3> Š 1_ina$> v' 1ŸŸ"C1> Š 1 :;n h/ tEYng tEZng $]ng :;n +/ (ang&T 1 +=n cFc v t$í csa "C11 v' "C1 t$ong thanh ghi MCqC!. _ giS +=nlEZt toFn t k! :itwi&% ~¢•.

    1ŸŸ"C11> Š 11ŸŸ"C1> Š 1BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB1ŸŸ"C11>¢1ŸŸ"C1> Š 11

  • 8/18/2019 Lap Trinh Avr

    49/186

      GFn giF t$ n' cho MCqC! +Ti chi=u với :0ng cFc giF t$ csa cFc :it "C:0ng 7> :;n &{ th ch?ng ta +ang &%t cho 2 ngOt l' alling %dg%. i,u cuTi czngcsa cu lệnh &%t MCqC! l' cFch $?t g*n cu lệnh MCqC!¢Š1ŸŸ"C11>¢1ŸŸ"C1> thc cht l' MCqC!Š MCqC!¢ 1ŸŸ"C11>¢1ŸŸ"C1>> + l'cFch &%t ()t &T :it t$ong ()t thanh ghi (' -hông (uTn l'( 0nh hEYng +=n cFc :it-hFc nhEng :;n ph0i th@t crn th@n với cFch l'( n' vW c9 th &{ ph0n tFc dụngn=u :;n -hông nO( $> :;n c9 th gFn t$c ti=p MCqC!Š1ŸŸ"C11>¢1ŸŸ"C1> ha nhanh hAn MCqC!Š Š11>. V@ lí do n'o-hi=n tôi :i=n 1 cu lệnh gFn +An gi0n th'nh ()t ~:'i toFn• -h9 hiu cu t$0 lSichính l' tính tˆng yuFt. U$ong cFc chip V! -hFc nhau v t$í cFc :it t$ong cFcthanh ghi l' $t -hFc nhau cu lệnh MCqC!Š +?ng cho at(%ga6 nhEng-hông Fp dụng +EZc cho cFc chip -hFc t$ong -hi cu lệnh MCqC!Š1ŸŸ"C11>¢1ŸŸ"C1> thW ho;t +)ng tTt ()t lí do -hFc l' cFch vi=t giFn ti=p n' gi?p ngESi-hFc ha chính :;n &au n'> -hi +*c cod% c9 th dK d'ng hiu +EZc +R ngESi

    vi=t^  Uôi ngh :;n +/ yuF hiu d5ng lệnh ti=p th%o GC! ¢Š1ŸŸ`U1>¢1ŸŸ`U>.Uôi d

  • 8/18/2019 Lap Trinh Avr

    50/186

    2. Uˆng yuan Ui(%$mCount%$ t$Pn V!.

    3. " dụng Ui(%$mCount%$.

    1. Ui(%$mCount%$

    2. Ui(%$mCount%$1

    Download ví dụ

    inV! .

    C cho V!.

    Mô phỏng với #$ot%u

    I. Giới thiệu.

      U$ong :'i 3 tôi +/ giới thiệu -hFi yuFt phEAng phFp l@p t$Wnh :]ng ngôn ng Ccho V! với inV! v' cFch & dụng ngOt t$ong V!. _'i 4 n' ch?ng ta &{-h0o &Ft cFc ch= +) ho;t +)ng csa phEAng phFp +i,u -hin cFc :) +nh thSi +=(Ui(%$mCount%$> t$ong V!. Công cụ phục vụ cho :'i n' vn l' :) công cụinV! v' phNn (,( (ô phỏng #$ot%u&. Uôi vn dzng chip t(%ga6 + l'( vídụ. M)t +i,u -hông (a (On l' -hông ph0i tt c0 cFc :) Ui(%$mCount%$ t$Pn tt c0cFc d5ng chip V! l' nhE nhau vW th= nhng gW tôi t$Wnh :' t$ong :'i n' c9 th&{ -hông +?ng với cFc d5ng V! -hFc nhE U7"^Uu nhiPn tôi cng &{ cT gOng

    chX $a ()t &T +i( -hFc :iệt cA :0n + cFc :;n c9 th t (Wnh +i,u -hin cFc chip-hFc. `)i dung :'i h*c n' :ao gR(

    •  `O( :Ot cA :0n cFc :) Ui(%$mCount%$ c9 t$Pn V!.

    • " dụng cFc Ui(%$mCount%$ nhE cFc :) +nh thSi.

    • " dụng cFc Ui(%$mCount%$ nhE cFc :) +=(.

    • " dụng cFc Ui(%$mCount%$ nhE cFc :) t;o ung +i,u $)ng #M.

    • Vi=t ()t ví dụ +i,u -hin +)ng cA !C &%$vo :]ng #M.

    II. TMng uan các bộ Tim$rjCount$r trn chi1 tm$ga.

    http://www.hocavr.com/index.php/lectures/timer-counter#2-tong-quanhttp://www.hocavr.com/index.php/lectures/timer-counter#3-su-dunghttp://www.hocavr.com/index.php/lectures/timer-counter#1.1-tc0http://www.hocavr.com/index.php/lectures/timer-counter#1.2-tc1http://www.hocavr.com/index.php/forum/5-cac-bai-hc-cung-hc-avr/8-avr4-timer-counterhttp://www.hocavr.com/index.php/vi/software/winavrhttp://www.hocavr.com/index.php/vi/software/c-cho-avrhttp://www.hocavr.com/index.php/vi/software/protueshttp://www.hocavr.com/index.php/lectures/timer-counter#2-tong-quanhttp://www.hocavr.com/index.php/lectures/timer-counter#3-su-dunghttp://www.hocavr.com/index.php/lectures/timer-counter#1.1-tc0http://www.hocavr.com/index.php/lectures/timer-counter#1.2-tc1http://www.hocavr.com/index.php/forum/5-cac-bai-hc-cung-hc-avr/8-avr4-timer-counterhttp://www.hocavr.com/index.php/vi/software/winavrhttp://www.hocavr.com/index.php/vi/software/c-cho-avrhttp://www.hocavr.com/index.php/vi/software/protues

  • 8/18/2019 Lap Trinh Avr

    51/186

      Ui(%$mCount%$ l' cFc (odul% +)c l@p với C#q. ChJc nLng chính csa cFc :)Ui(%$mCount%$ nhE tPn g*i csa ch?ng l' +nh thW t;o $a ()t -ho0ng thSi gian+=( thSi gian^> v' +=( & -iện. U$Pn cFc chip V! cFc :) Ui(%$mCount%$ c5nc9 thP( chJc nLng t;o $a cFc ung +i,u $)ng #M #ul&% idth Modulation> Y ()t &T d5ng V! ()t &T Ui(%$mCount%$ c5n +EZc dzng nhE cFc :) canh chXnhthSi gian cali:$ation> t$ong cFc Jng dụng thSi gian thc. CFc :) Ui(%$mCount%$ +EZc chia th%o +) $)ng thanh ghi chJa giF t$ +nh thSi ha giF t$ +=( csa ch?ngcụ th t$Pn chip t(%ga6 c9 2 :) Ui(%$ 6 :it Ui(%$mCount%$ v' Ui(%$mCount%$2>v' 1 :) 1e :it Ui(%$mCount%$1>. Ch= +) ho;t +)ng v' phEAng phFp +i,u -hin csat v' kC1_ chn1e> :]ng Ui(%$mCount%$1. CFc :) Ui(%$mCount%$ -iu n' +EZc tích hZp thP( -hFnhi,u t$ong cFc chip V! &au n' ví dụ t(%ga126 c9 2 :) t(%ga28e1 c9 4

     :)^  Tim$rjCount$rU tu l' ()t (odul% 6 :it nhE Ui(%$mCount%$ nhEngUi(%$mCount%$2 c9 +=n 4 ch= +) ho;t +)ng nhE Ui(%$mCount%$1 ngo'i $a n9 n9c5n +EZc & dụng nhE ()t (odul% canh chXnh thSi gian cho cFc Jng dụng thSigian thc ch= +) a&nch$onou&>.  U$ong ph;( vi :'i 4 n' tôi chs =u hEớng dn cFch & dụng 4 ch= +) ho;t+)ng csa cFc Ui(%$mCount%$. Ch= +) a&nch$onou& csa Ui(%$mCount%$2 &{ +EZc :ỏyua vW c9 th ch= +) n' -hông +EZc & dụng phˆ :i=n.U$Eớc -hi -h0o &Ft ho;t +)ng csa cFc Ui(%$mCount%$ ch?ng ta thTng nht cFch g*itOt tPn g*i csa cFc Ui(%$mCount%$ l' UmC ví dụ UmC + chX Ui(%$mCount%$^

    II. (l d,ng Tim$rjCount$r.

      C9 ()t &T +nh ngha yuan t$*ng (' ch?ng ta cNn nO( :Ot t$Eớc -hi & dụngcFc UmC t$ong V!

  • 8/18/2019 Lap Trinh Avr

    52/186

    • _kUUkM l' giF t$ thp nht (' ()t UmC c9 th +;t +EZc giF t$ n' luôn

    l' .

    • M‘ l' giF t$ lớn nht (' ()t UmC c9 th +;t +EZc giF t$ n' +EZc yu+nh :Yi :Yi giF t$ lớn nht (' thanh ghi +=( csa UmC c9 th chJa +EZc. Ví dụ với

    ()t :) UmC 6 :it thW giF t$ M‘ luôn l' tJc 288 t$ong hệ th@p phn> với :)

    UmC 1e :it thW M‘ :]ng e8838>. `hE th= M‘ l' giF t$ -hông +ˆi

    t$ong ([i UmC.

    • Uk# l' giF t$ (' -hi UmC +;t +=n n9 &{ tha +ˆi t$;ng thFi giF t$ n'

    -hông nht thi=t l' &T lớn nht 6 :it ha 1e :it nhE M‘ giF t$ csa Uk# c9 th

    tha +ˆi :]ng cFch +i,u -hin cFc :it +i,u -hin tEAng Jng hoHc c9 th nh@p t$<

    ti=p thông yua ()t &T thanh ghi. Ch?ng ta &{ hiu $ v, giF t$ Uk# t$ong l?c -h0o

    &Ft UmC1.

    B. Tim$rjCount$r^#  Thanh ghi c9 4 thanh ghi +EZc thi=t -= $iPng cho ho;t +)ng v' +i,u -hin

    UmC +9 l'

    • UC`U Ui(%$mCount%$ !%gi&t%$> l' 1 thanh ghi 6 :it chJa giF t$ v@n h'nhcsa UmC. Uhanh ghi n' cho phxp :;n +*c v' ghi giF t$ ()t cFch t$c ti=p.

    • UCC! Ui(%$mCount%$ Cont$ol !%gi&t%$> l' thanh ghi +i,u -hin ho;t +)ngcsa UmC. Uu l' thanh ghi 6 :it nhEng thc cht chX c9 3 :it c9 tFc dụng +9 l'C" C"1 v' C"2.

      CFc :it C" C"1 v' C"2 g*i l' cFc :it ch*n nguRn ung nhp cho UmCCloc- "%l%ct>. ChJc nLng cFc :it n' +EZc (ô t0 t$ong :0ng 1.

    _0ng 1 chJc nLng cFc :it C"‘

  • 8/18/2019 Lap Trinh Avr

    53/186

    • UM"| Ui(%$mCount%$ nt%$$upt Ma&- !%gi&t%$> l' thanh ghi (Ht n; chongOt csa tt c0 cFc UmC t$ong t(%ga6 t$ong +9 chX c9 :it Ukj tJc :it &T :it

    +Nu tiPn> t$ong thanh ghi n' l' liPn yuan +=n UmC :it n' c9 tPn l' :it cho phxpngOt -hi c9 t$'n Y UmC. U$'n kv%$low> l' hiện tEZng 0 $a -hi :) giF t$ t$ongthanh ghi UC`U +/ +;t +=n M‘ 288> v' l;i +=( thP( 1 lNn na.

      |hi :it UkjŠ1 v' :it t$ong thanh ghi t$;ng thFi +EZc &%t %( l;i :'i 3 v,+i,u -hin ngOt> n=u ()t ~t$'n• 0 $a &{ dn +=n ngOt t$'n.

    • U! Ui(%$mCount%$ nt%$$upt lag !%gi&t%$> l' thanh ghi cS nhớ cho tt c0cFc :) UmC. U$ong thanh ghi n' :it &T UkV l' cS chX th ngOt t$'n csa UmC.|hi c9 ngOt t$'n 0 $a :it n' t +)ng +EZc &%t lPn 1. Uhông thESng t$ong +i,u-hin cFc UmC vai t$5 csa thanh ghi U! -hông yuF yuan t$*ng.

      7oạt 5ộng UmC ho;t +)ng $t +An gi0n ho;t +)ng csa UmC +EZc ~-ích• :Yi()t tín hiệu &ignal> cJ ([i lNn ut hiện tín hiệu ~-ích• giF t$ csa thanh ghiUC`U l;i tLng thP( 1 +An v thanh ghi n' tLng cho +=n -hi n9 +;t (Jc M‘ l'288 tín hiệu -ích ti=p th%o &{ l'( thanh ghi UC`U t$Y v, t$'n> l?c n' :it cS 

    t$'n UkV &{ t +)ng +EZc &%t :]ng 1. Với cFch thJc ho;t +)ng nhE th= c9 vUmC vô dụng vW cJ tLng t< +=n 288 $Ri l;i yua v, v' yuF t$Wnh lHp l;i. UunhiPn =u tT t;o & -hFc :iệt chính l' tín hiệu -ích v' ngOt t$'n -=t hZp 2 =u tTn' ch?ng ta c9 th t;o $a 1 :) +nh thSi gian hoHc 1 :) +=( & -iện. U$Eớc h=t

     :;n h/ nhWn l;i :0ng 1 v, cFc :it ch*n ung nhp cho UmC. ‘ung nhp cho UmCchính l' tín hiệu -ích cho UmC. ‘ung nhp n' c9 th t;o :]ng nguRn t;o dao +)ngcsa chip th;ch anh dao +)ng n)i t$ong chip^>. _]ng cFch +Ht giF t$ cho cFc :it

  • 8/18/2019 Lap Trinh Avr

    54/186

    C" C"1 v' C"2 csa thanh ghi +i,u -hin UCC! ch?ng ta &{ yu=t +nh :aolu thW &{ -ích UmC ()t lNn. Ví dụ (;ch Jng dụng csa :;n c9 nguRn dao +)ng cl- Š 1Mbf tJc chu -Q 1 nhp l' 1u& 1 (ic$o gi> :;n +Ht thanh ghi UCC!Š8 tJc"C2Š1 C"1Š C"Š1>. CLn cJ th%o :0ng 1 tín hiệu -ích cho UmC &{ :]ngcl-m124 ngha l' &au 124u& thW UmC (ới +EZc -ích 1 lNn n9i cFch -hFc giF t$csa UC`U tLng thP( 1 &au 124u& ch? l' tNn &T +EZc chia cho 124 thW chu -Q&{ tLng 124 lNn>. Œuan &Ft 2 d5ng cuTi czng t$ong :0ng 1 :;n &{ th $]ng tín hiệu-ích cho UmC c9 th l t< :Pn ngo'i jt%$nal cloc- &ou$c%> + chính l' tEYngcho ho;t +)ng csa chJc nLng +=( & -iện t$Pn UmC. _]ng cFch tha +ˆi t$;ng thFichn U chn e t$Pn chip t(%ga6> ch?ng ta &{ l'( tLng giF t$ thanh ghi UC`Uha n9i cFch -hFc UmC c9 th dzng + +=( & -iện 0 $a t$Pn chn U. DEới +ch?ng ta &{ %( xt cụ th cFch +i,u -hin UmC th%o 1 ch= +) +nh thSi gian v'+=(.

    1.1 Bộ định thời gian. Ch?ng ta c9 th t;o $a 1 :) +nh thW + c'i +Ht ()t -ho0ng thSi gian n'o +9. Ví

    dụ :;n (uTn $]ng cJ &au chính Fc 1(& thW chn #_ tha +ˆi t$;ng thFi 1 lNnnhp nhF> :;n l;i -hông (uTn dzng cFc lệnh d%la nhE t$Eớc na vn dzng vWnhEZc +i( csa d%la l' ~C#q -hông l'( gW c0• t$ong l?c d%la vW th= t$ong nhi,ut$ESng hZp cFc lệnh d%la $t h;n ch= +EZc & dụng. _ giS ch?ng ta dzng UmC+ l'( việc n' tEYng l' ch?ng ta cho :) +=( UmC ho;t +)ng -hi n9 +=( +s1(& thW n9 &{ t -ích ho;t ngOt t$'n t$ong t$Wnh phục vụ ngOt t$'n ch?ng tat ha +ˆit$;ng thFi chn #_. Uôi (inh h*a tEYng nhE t$ong hWnh 1.

    bWnh 1. "o &Fnh 2 cFch l'( việc.  C#q nop t$ong -ho0ng thSi gian n' C#q -hông l'( gW c0>  M)t vn +, n0 &inh l?c n' nhE tôi t$Wnh :' t$ong phNn t$Eớc UmC chX +=(t< +=n 288 $Ri l;i yua v, 0 $a 1 ngOt t$'n> nhE th= dESng nhE ch?ng ta-hông th c'i +Ht giF t$ (ong (uTn :t -Q cho UmC¥ Cu t$0 lSi l' ch?ng ta c9

  • 8/18/2019 Lap Trinh Avr

    55/186

    th :]ng cFch gFn t$Eớc ()t giF t$ cho thanh ghi UC`U -hi UmC &{ +=( t<giF t$ (' ch?ng ta gFn t$Eớc v' -=t th?c Y 288. Uu nhiPn do -hi t$'n 0 $aUC`U l;i +EZc t +)ng t$0 v, do +9 việc gFn giF t$ -hYi t;o cho UC`U ph0i+EZc thc hiện liPn tục &au ([i lNn 0 $a t$'n v t$í tTt nht l' +Ht t$ong t$Wnh

     phục vụ ngOt t$'n.  Việc c5n l;i v' cng l' việc yuan t$*ng nht l' việc tính toFn giF t$ chiap$%&cal%$> cho ung nhp csa UmC v' việc Fc +nh giF t$ -hYi +Nu cNn gFn chothanh ghi UC`U + c9 +EZc 1 -ho0ng thSi gian +nh thW chính Fc nhE (ong(uTn. U$Eớc h=t ch?ng ta &{ ch*n p$%&cal%$ &ao cho hZp lí nht ch*n giF t$ chia

     :]ng cFch &%t 3 :it C"2C"1C">. Gi0 & nguRn ung cloc- ~nuôi• chip csach?ng ta l' cl-mkŠ1Mbf tJc l' 1 nhp (t 1u& n=u ch?ng ta + p$%&cal%$Š1 tJc l'tNn &T csa UmC t;( g*i l' UmC> cng :]ng cl-mkŠ1Mbf cJ 1u& UmC +EZc-ích v' UC`U &{ tLng 1 +An v. |hi +9 giF t$ lớn nht (' UmC c9 th +;t +EZc l'28e 1u&Š28eu& giF t$ n' nhỏ hAn 1(& (' ta (ong (uTn. `=u ch*n

     p$%&cal%$Š6 %( :0ng 1> ngha l' cJ &au 6 nhp 6u&> thW UC`U (ới tLng 1 +Anv -h0 nLng lớn nht (' UmC +=( +EZc l' 28e 6u&Š246u& lớn hAn 1(& v@ taho'n to'n c9 th & dụng p$%&cal%$Š6 + t;o $a ()t -ho0ng +nh thW 1(&. _Eớc ti=pth%o l' Fc +nh giF t$ -hYi +Nu csa UC`U + UmC +=( +?ng 1(& 1u&>. ’ngvới p$%&cal%$Š6 ch?ng ta +/ :i=t l' cJ 6u& thW UC`U tLng 1 +An v dK d'ng tính+EZc :) +=( cNn +=( 1m6Š128 lNn + h=t 1(& do +9 giF t$ :an +Nu csaUC`U ph0i l' 28eB128Š131. _;n c9 th yuan &Ft hWnh 2 + hiu thu +Fo hAn.

    bWnh 2. ŒuF t$Wnh thc hiện.  b/ t;o 1 #$o€%ct :]ng #$og$a((%$ ̀ ot%pad với tPn g*i UMj! v' vi=t +o;ncod% cho #$o€%ct n' nhE t$ong li&t 1.i&t 1. nh thW 1(& với UmC.12348e

    žinclud% Ÿav$mio.hœžinclud% Ÿav$mint%$$upt.hœžinclud% Ÿutilmd%la.hœ

    int (ainvoid>  DD!_Š… mm#k!U_ la output #k!U

  • 8/18/2019 Lap Trinh Avr

    56/186

    ‚671

    11121314181e1‚16172

    21222324

      #k!U_Š…

      UCC!Š1ŸŸC"1>…mm C"2Š C"1Š1 C"Š chon #$%&cal%$ Š 6  UC`UŠ131… mmgan gia t$i -hoi tao cho UmC

      UM"|Š1ŸŸUkj>…mmcho ph%p ngat -hi co t$an o UmC  &%i>… mm&%t :it cho ph%p ngat toan cuc

      whil% 1> mmv5ng lHp vô t@nmmdo nothing

      ¡  $%tu$n …¡

    mmt$inh phuc vu ngat t$an UmC

    "! UMj!kVv%ct >UC`UŠ131… mmgan gia t$i -hoi tao cho UmC #k!U_¤Š1… mmdoi t$ang thai _it #_

    ¡

      o;n cod% $t +An gi0n :;n chX cNn ch? +=n 3 d5ng -hai :Fo cho UmCd5ng 7 1 11>. Với d5ng 7 UCC!Š1ŸŸC"1> l' 1 cFch &%t :it C"1 t$ongthanh ghi +i,u -hin UCC! lPn 1 2 :it C"2 v' C" +EZc + giF t$ :;n %(l;i :'i 3 v, cFch &%t cFc :it +Hc :iệt t$ong cFc thanh ghi> t9( l;i d5ng n' tEAng+EAng UCC!Š2 giF t$ #$%&cal%$ +EZc ch*n :]ng 6 tha( -h0o :0ng 1>. D5ng 1

    ch?ng ta gFn giF t$ -hYi t;o cho thanh ghi UC`U. V' d5ng 11 &%t :it Ukj lPn 1+ cho phxp ngOt 0 $a -hi c9 t$'n Y UmC. U$ong t$Wnh phục vụ ngOt t$'n UmCch?ng ta &{ thc hiện +ˆi t$;ng thFi chn #_ :]ng toFn t< ‘k! ¤> ch? +=n ngha csa toFn t ‘k! n=u ‘k! ()t :it với &T 1 thW :it n' &{ chun t$;ng thFit< &ang 1 v' ngEZc l;i>. CuTi czng v' yuan t$*ng l' ch?ng ta cNn gFn l;i giF t$-hYi t;o cho UmC.  _;n c9 th v{ (ôt (;ch +iện (ô phỏng +An gi0n dzng 1 k&cillo&cop% nhEt$ong hWnh 3 + -i( t$a ho;t +)ng csa +o;n cod%.

  • 8/18/2019 Lap Trinh Avr

    57/186

    bWnh 3. Mô phỏng +nh thW csa UmC.1.2 Bộ đếm sự kiện. 

     `hE tôi t$Wnh :' t$ong phNn ho;t +)ng csa UmC ch?ng ta c9 th dzng UmCnhE ()t :) +=( count%$> + +=( cFc & -iện & tha +ˆi t$;ng thFi> 0 $a t$Pnchn U. _]ng cFch +Ht giF t$ cho thanh ghi UCC! Š e C"2Š1 C"1Š1C"Š> cho phxp +=( ~c;nh uTng• t$Pn chn U n=u UCC! Š ‚ C"2Š1C"1Š1 C"Š1> thW ~c;nh lPn• t$Pn chn U &{ +EZc +=(. C9 & dụng ngOt ha-hông phụ thu)c v'o (ục +ích & dụng. |h0o &Ft 1 ví dụ +An gi0n gNn giTng với vídụ +=( t$ong :'i V!2 nhEng & dụng UmC v' chX +=( 1 chi,u tLng. |=t nTi(;ch +iện nhE t$ong hWnh 4 ([i lNn _utton 1 +EZc nhn giF t$ +=( tLng thP( 1._utton 2 dzng $%&%t giF t$ +=( v, . o;n cod% cho ví dụ thJ 2 n' +EZc t$Wnh :'t$ong i&t 2.

    bWnh 4. =( 1 chi,u :]ng UmC.i&t 2. =( & -iện với UmC

  • 8/18/2019 Lap Trinh Avr

    58/186

    1234

    8e‚67111121314

    181e1‚1617

    žinclud% Ÿav$mio.hœžinclud% Ÿav$mint%$$upt.hœ

    int (ainvoid>

      DD!_Š… mm#k!U_ la output #k!U  #k!U_Š…  DD!DŠ… mm-hai :ao #k!UD la input d% -%t noi _utton -ich vao chan U  #k!UDŠ… mm&u dung di%n t$o -%o l%n cho #k!UD

      UCC!Š1ŸŸC"2>¢1ŸŸC"1>…mm C"2Š1 C"1Š1 C"Š ung nhip tu chan  UC`UŠ…

      whil% 1> mmv5ng lHp vô t@ni UC`UŠŠ1> UC`UŠ…

      #k!U_ŠUC`U… mmuat gia t$i d%( $a l%d ‚ doan  i :iti&cl%a$#`D‚>> UC`UŠ… mm!%&%t :o d%( n%u chan #D‚Š

    ¡  $%tu$n …¡

      `)i dung t$ong chEAng t$Wnh chính l' -hai :Fo cFc hEớng giao ti=p cho cFc#k!U #k!U_ l' ouput + ut -=t yu0 +=( $a l%d ‚ +o;n #k!UD +EZc -hFi :Foinput vW cFc :utton +EZc nTi với #k!U n'. UmC +EZc -hai :Fo & dụng nguRn-ích ngo'i t< U d;ng c;nh uTng thông yua d5ng UCC!Š1ŸŸC"2>¢

    1ŸŸC"1> :;n cng c9 th -hai :Fo tEAng +EAng l' UCC!Še tha( -h0o :0ng1>. GiF t$ csa :) +=( &{ +EZc ut $a #k!U_ + -i( t$a. i( ch? t$ong +o;nchEAng t$Wnh n' l' (ac$o ~:iti&cl%a$• + l' ()t (ac$o +EZc +nh ngha t$ongil% ~&$d%&.h• dzng + -i( t$a 1 :it t$ong ()t thanh ghi +Hc :iệt c9 +EZc 9a:]ng > ha -hông t$ong t$ESng hZp csa +o;n cod% t$Pn~i:iti&cl%a$#`D‚>> UC`UŠ…• ngha l' -i( t$a %( n=u chn #D‚ +EZc-xo uTng :utton 2 +EZc nhn> thW &{ $%&%t :) +=( v, .  `hE v@ việc & dụng UmC l' tEAng +Ti +An gi0n :;n chX cNn -hai :Fo cFcgiF t$ thích hZp cho thanh ghi +i,u -hin UCC! :]ng cFch tha( -h0o :0ng 1 &au+9 -hYi t;o giF t$ cho UC`U n=u cNn thi=t> -hai :Fo c9 & dụng ngOt ha -hông

     :]ng cFch &%t ha -hông &%t :it Ukj t$ong thanh ghi UM"| l' ho'n tt.U. Tim$rjCount$rB#  Ui(%$mCount%$1 l' :) UmC 1e :it& +a chJc nLng. l' :) UmC $t l tEYngcho l@p t$Wnh +o lESng v' +i,u -hin vW c9 +) phn gi0i cao 1e :it&> v' c9 -h0nLng t;o ung +i,u $)ng #M #ul&% idth Modulation \ thESng dzng + +i,u-hin +)ng cA>.

  • 8/18/2019 Lap Trinh Avr

    59/186

      Thanh ghi c9 -hF nhi,u thanh ghi liPn yuan +=n UmC1. VW l' UmC 1e :it& t$ong-hi +) $)ng :) nhớ d liệu csa V! l' 6 :it %( l;i :'i 2> nPn +ôi -hi cNn dzngnhng cHp thanh ghi 6 :it& t;o th'nh 1 thanh ghi 1e :it 2 thanh ghi 6 :it& &{ c9 tPn-=t th?c :]ng cFc - t v' b t$ong +9 l' thanh ghi chJa 6 :it& thp k> v'b l' thanh ghi chJa 6 :it& cao bigh> csa giF t$ 1e :it& (' ch?ng t;o th'nh.

    • UC`U1b v' UC`U1 Ui(%$mCount%$ !%gi&t%$> l' 2 thanh ghi 6 :it t;o

    th'nh thanh ghi 1e :it& UC`U1> chJa giF t$ v@n h'nh csa UmC1. C0 2 thanh ghi

    n' cho phxp :;n +*c v' ghi giF t$ ()t cFch t$c ti=p. 2 thanh ghi +EZc -=t hZp

    nhE &au

    • UCC!1 v' UCC!1_ Ui(%$mCount%$ Cont$ol !%gi&t%$> l' 2 thanh ghi +i,u

    -hin ho;t +)ng csa UmC1. Ut c0 cFc (od% ho;t +)ng csa UmC1 +,u +EZc Fc +nh

    thông yua cFc :it t$ong 2 thanh ghi n'. Uu nhiPn + -hông ph0i l' 2 :t% cao v'

    thp csa ()t thanh ghi (' l' 2 thanh ghi ho'n to'n +)c l@p. CFc :it t$ong 2 thanh

    ghi n' :ao gR( cFc :it ch*n (od% ha ch*n d;ng &9ng av%o$( G%n%$ating

    Mod% \ GM> cFc :it yu +nh d;ng ng $a Co(pa$% kutput Match \ CkM>

    cFc :it ch*n giF t$ chia p$%&cal%$ cho ung nhp Cloc- "%l%ct \ C">^Cu t$?c

    csa 2 thanh ghi +EZc t$Wnh :' nhE :Pn dEới.

  • 8/18/2019 Lap Trinh Avr

    60/186

      `hWn chung + ~thu)c• h=t cFch phTi hZp cFc :it t$ong 2 thanh ghi UCC!1v' UCC!1_ l' tEAng +Ti phJc t;p vW UmC1 c9 $t nhi,u (od% ho;t +)ng ch?ng ta&{ -h0o &Ft ch?ng t$ong phNn cFc ch= +) ho;t +)ng csa UmC1 :Pn dEới. š +t$ong thanh ghi UCC!1_ c9 3 :it -hF yu%n thu)c l' C"1 C"11 v' C"12. l'cFc :it ch*n ung nh