!"#$
%&"$'()$'*(
+,$())$'*(
-./0$)$'*(
1$"23))$'*(
4-25)676)$'*(4
4)$'*("#$$8(4
4%-25)676")$8/4
4+-25)676,$"94
:;("<=> !"#$4
?@ABCDEAF:
(G(HI&)"$J"KL" ,)"<))$86:
%(G(HI&)"$J"KL" ,)"<) #".:
DM)N(0!0$ $!(O$P-BQ
-B#)RSQ
%T$J"<=>-BQ
+UBV#BVW
-B-XBBAW
7Y)-B0#0$ $!(O$P-BZ
4)[)\]6"<R-B
:..6-B
$ $!(O$P-B4^Q:+
7.)H5 _`+
%V5 _O1$0#*a)7O1$
+V5 _`0#*a)7`
b $P/>0$ $!(O$P-B4^Q::4
DM*K,cQ
47M)d(;"]6OG(>-B4^Q::%%
%4:](,)$ J4
%4Q"$v:
%4WAI$"$v:
Q
?@ABBBCDwABixThDyW
+D)$8/W
+%TJ"(]W
+%\)OJ"N(9 ." 23W
%
+%%.J> !"#$W
+%+2c)67""<$P> !"#$4Z
DxBBiDTzl4
-4%
+
RT$J"<=0<0#O$J"<={e(/Q
R%5J6$6e$$)Z
R+$ $!(O$P-B4^Q::|-B4^Q:0#7.)H5 _`+
RV5 _O1$0$ $!(O$P-B4^Q::
RV5 _`0#*a)7`
R:V5 _K,c\$8(-B4^Q::%Z
R+(eVBWZZ%Q
RV5 _O1$VBWZZ%W
R4;("<=K'"<)9/K$J-BU+
R:;(".9/K$J"$$8"+4
RQ)(f'(fP ,)))>7)(_"`$8"+:
RW." ,)>9/K$J-BUO$)2t$20#0})92u)+Q
R%Z." ,)>9/K$J-BUO$)2t$0#0})92u)+Q
R%)(f'9/*)N() $8+Q
R%%V5 _"M)N(7"8"1)"(67"N()+W
$!(O$P-B4…^Q::n"$J"OJ8"1) $!(O$Pn)$7/H7"K77fn1)
"<,/d2u)"# $8…D<2t).$V †‡
#$ "%&'"%(&
{ˆ`f)5Hu"(fJ">8"1)
{)$'*(n"$J"OJv6 b"8"1)K77f0#1)"<,/
{ˆ`f)6G*)n6G/!/ $!(O$P8"1)
{D$J"OJ8"1)/u Pd`f)/,"H1K#$"#"<'8"1)
{D)$8/0##"$88"1)
)*"&''"%(&
{)$'*("(fJ"0! $!(O$P]6"<R0$ $!(O$P-B4…^Q::
{)$'*(;("<=n"]68(eVBWZZ
{)$'*(;("<=n)(f'." ,)>9/K$JK7Og$n9/K$J
_)).$
{D$J"OJnJ".nv6 b"8"1) $!(O$Pn)$7/H7"K77fn1)"<,/
d2u)"# $8…D<2t).$V †
{]6"<R $!(O$P8"1)
+, /"'"%(&
{DM)N(0!0$ $!(O$P-B4…^Q::
{)$'*(8"1) $!(O$Pn)$7/H7"K77fn1)"<,/
{)$'*("$J"OJnJ".6G*)n6G/!/ $!(O$P8"1)8
"1))$7/H7"K77fn1)"<,/
01" 23''"%(&
{$ $!(O$P0#"(fJ"0! $!(O$P]6"<R0$ $!(O$P-B4…
^Q::
{;("<=n"]68(eVBWZZ
{;("<=0#)(f'." ,)9/K$JK7Og$n9/K$J_)).$
{-25)7"$J"OJnv6 b"n")$8/0#O$P/"<8"1)K77fn
1)"<,/
4,25'676'"%(&
)$86b"<)7)$ R#<;"6MK$Jn‘/)$9/Kc"`[)n"a)
a)H(;" ,)n".<#)gg)$7"<LD<)7)$86"R" ,)
g7"$J"KLH9d(;"<H96‹/C27`f(f!6`.$n g))g$H9
6‹/n78"1)H9H(;"" ,)Žn"<)7)$ R" ,)g 23*)&)
"<)7"$J"KL $8`&)6MK$J2C_$5/ $8n/7f)$b"n/7f $!(YŽ
V67""<$P>" ,)gO•"e(G(0!9K7n$67""<$P0c$
/& ‚)$"a) ,"#>/[$"<2t)H1)0##/0$8n)ab\)#
0$d;(Ds g7"Y#"[)/$< t$0c$78"1)" ,)2C
{D ,) g)/uI
{D ,)K7 ,)q7fnO‚Y<pn1)"<,/r
{D ,) $!(O$P$8" ,
{De‰$7." ,)"<)nd()N()[$#
20]f(G(0!"$J"KL" ,)u7)$86n)$ R#<;"c0#
)#f#)"<u';6"$J"u";"97.$R)$86"sH9d(;"nv6<76n
JK$JH96‹/"c$O$0#7L0&O7
#&G&HI$' "J KL *' <'! -
c$/&"$'( #".)(_`;"23) 76*)(G(>7
)$86n75Hu #".69$$P("L"<2t) ,)n #".\))R/#dƒ
,$ )G(1 ." 23 $!( gn)2t$G69$ 23""]6"<'\)
"$J"KL/[6†)N(7"<RH9d(;"""JR0]fn0$8)$'*(nJ".\)
"$J"KLn _}).f"$J6])G0c$""J#J"H*G"$J"
D<2t).$V†#/,"5Hu #". )"$8 #". ;6n
)#n •0nVV 23 #".)$†$9"(fJ"0#"f)!.$ H17
V<"<2t) !( 76*))f 23f'(G(>H9d(;"G(J"7V !( 23
""]6"<'7"$J"KL#"<2t) G("2/(Hv/b7O"$J"OJJ
".c$H123))#)! ) 23/u<,)2$8fnf'(G(0!"<)"$J"
KL#)"<u';6"$J"bK$8"u/,"H1Og(G(0!7"$J"KLn/[
R $!(O$P" ,)2O$8n$8"I{D$n5O‚nTD’"[
D(f$'0$8"<)KL\)"$J"KLn/[R" ,)OL6"t$n _)K,0c$
7)$86#0$8#/OgOa 1$0c$7"<2t)'#"<2t))#$
Q
&n 1$0c$0$ $!(O$PY)4^n ,#$8([#K$"q"<)O$\$8( 23
"M*"#"s)Kf"ernY 1$0c$O$J"<={e(/n ,#$8([#K,$
H1>Kf"eq\$8( 23"M*"#"s)Kf"erb $P/#f 23/$
&"P"<)R
+)TBU!BU
2 ƒ"<RK#fu"<'nO$J"<=0<#O7$$8//c$5H0c$O$J"<=
{e(/T7$$8/#f 23R"#‘/9$"$J"1 ,""$>/,"0$
$!(O$P
F(0$8"7<t$K,c25)"<R0#K,c\$8(nK(H25)"<R0#K(H
\$8(n-g"P})/,"="<(fd(;"9K,c25)"<R0#K,c\$8(n
)$=6"a)"1 ,dI‚>0$ $!(O$P');6 [$_)"t$;("<=8O[)Y
6&"(,0#;("<=\$8(\/#g"P$ ,) $!(p"}f"eO9a)
0#"1 ,>"s)0$ $!(O$P# P"$J6"&9$"$J"1 ,""$8n"]68
>0$ $!(O$P-B 23"$J"OJH$!(#$/ƒ8([1 Lq0‚&
1$0c$4^dddd$!(#$/ƒ8([#K$"r0#6•6""$8"<)
/,"(OR>d()Oq).$"<s/,"H1"<2t)36 bK$8"289fn8
)$25)"<RŽG$(ORd() _)_r$!(#fg)•"]68>
0$ $!(O$P"(,;("<=0<H•‚"85n)v5n 5)$95 P 76*)
f'(G(/ƒg8K‘)/,"H123)K$";" L
$ $!(O$P 23"M*"eO$J"<=0<Y 23)$#0$ $!(O$P
UBVqUe(eBH"<("$Ve"/6("e<rf0$ $!(O$Pg"]68<=")$
$!(O$P 23"$J"OJ"eO$J"<={e(/Y 23)$#0$ $!(O$P
BVq/6edBH"<("$Ve"/6("e<rf0$ $!(O$Pg"]686*".60R
/ƒ8>gO[)69$#/,"H11 L/#([#K,$H1>QK$"qKf"er
++,B,VBBA
`f‚#5JdI‚8>70$ $!(O$P-B,"(OR8>0$
$!(O$PH•K)_/d()O‚&"HI&)H$"<g"GH1”n"R
d()8H•g"GH1•q(OR8H•#(HrA$9HI"g/," .25)
"<R2H(C
{ -BQddddC ,#$84K$"
C-BgK,cX-Ulqpg4Q#XX-Ulr
^C-BgK,c™H
^C-BgK,c™H." ,)u $876";6
C"25)"2^n `f#O‚$8(•
k'. g/,"H10$ $8(O$PgO‚$8(dd^ddd#XX-UlnJ(g"'/\
u(1$#™Hq0‚&-B4^Q::#XX-UlnY-B4^Q::#™Hr
)#$<Yg"'//,"Y)0$ $!(O$P-B/c$#H-B
Z
$8"/6MK$J;"#70$ $!(O$P-Bƒ)$<$6H9d(;"
7/,"0$ $!(O$P-B6}36C
{ D<2cJ"G= JH1`>0$ $!(O$PG"$J"*)&)g
$!( 0$ $!(O$P-B0c$H123)`O7(n"]/‚g0$ $!(
O$PpgQ`n)#$<Yg70$ $!(O$P%QnZnnŽ`
{ G0$ $!(O$P-BgK,c™H Pg"P.6dg25)"<R
23$!(G5D$J6"eG= J7O1$*a) 23"‚36
Hš"<)0$ $!(O$Pn7(‹)$"$J6K'"<)
{ V(})G= JK,c25)"<R/#0$ $!(O$P6•6
{ )#$</$"[)"$0!70$ $!(O$P-Bg"P 23"R/";f
"<)(1H7“Vee"-B)($e‡#H9d(;"$<$6();6
+4'X'YZ6 <Q,B
)[)\]6"<R-B<;" .))[)\]6"<R;6";6g-k
q 23();6/$•6‚Ku$#H9d(;"$<$6rn7)[)\]6"<R;6
5K)_/nkH$n-HnŽ)#$<Yg/,"H1)[)\]6"<R 23
67""<$P#<$')-B2-BkH$n$O<kH$nŽ
+:--6,B
`f•)#/,"Y)H96‹/<;" .)#0$ $!(O$P-Bg"PHI
&) 7 /. .6 23 () ;6 Ku$ # H9 d(;" # ƒ) $<$6 2C
-BVDUD6(Hn-kB%n-k-+n-UlDXBBg"P})7H9
6‹/#f P.60$ $!(O$PO7"[)N(25)"<R-kY)H9
+
1.5.2. Sơ đồ khối và chức năng các khối
Hình 1. 4. Sơ đồ khối vi điều khiển PIC16F877A.
R#H5 _O1$>-B4^Q::n)_/7O1$C
{ T1$…<$"/e"$)$$"
{ T1$K,c*25)"<R…^H-<)</e/<f
{ T1$K,c*\$8(X-Ul…"X-Ul
{ T1$K,c™$e")$U…U™$eUe)$H"e<
{ T1$)$9$/ƒ80# $!(O$P…BH"<("$ee"<
{ T1$")$ bK$8"
{ T1$).$0$"$/e<
{ T1$)$"$J61$"$J6
{ T1$(fP M$"‚$8("25)"H)H1{
{ T1$76<"d(;"]6
0)U5]^/!(_'7^
Hình 1.5. Sơ đồ chân và chức năng các chân
• `lV|Tq+rC)‰0#OJ"1$0c$ ,)".b)‰0#
]d()O"sK')#$
• `lV%|T%qrC)‰< ,)".b)‰<;6d()O
• ` qrg%*a)
{ C)‰0#<eHe""‚u/*";6
{ 66C)‰0#] $876]6"<RO$]6"<R-B
• `UZ|Zq%rnU|q+rnU%|%q+rCg%*a)
{UZnn%Cd(;"|]6H1
{Znn%C)‰0#"25)">O'"*Znn%
• `U%|%|UX^{|UX^ŸqrCd(;"]6H1|)‰0#"25)">O'
"*%|‰0# $876(‹";6>K,|)‰0# $876‹>K,
• `U+|+|UX^ŸqrCd(;"]6H1|)‰0#"25)"O'+|)‰0#
• `UX%| |:qZrCd(;";6H1|`& $!(O$P6<"H)
H)|)‰0#"25)"O'"*:
• `qn+%r0#VVq%n+rC#7`)(_>-B
0+`"P.>/""&O"P,B4[\::
`f#0$ $!(O$P"(,-B4^ddd0c$"]68)_/+8g ,#$K$"
˜$8 !( 23""$"<)/,"(ORd()OD1 ,." ,)"1$
6•6#%Z•0c$/,"(OR8#%ZZHk,c25)"<RQTdK$"nK,c
\$8(+4QdQKf"eU0#K,c\$8(XX-Ul0c$()23)%4dQKf"eV1
-lUDB|l#0c$++6$B|lgQO'(fP M$|
7 b"‚).$0$K)_/7O1$*a)H(C
{ D$/e<ZCK, J/QK$"0c$K,$"GH1QK$"
{ D$/e<CK, J/4K$"0c$K,$"GH1ng"P"$8*a) J/
0#d()O).$0$)fO$0$ $!(O$P." ,)uJ ,
Hee6
4
{ D$/e<%CK, J/QK$"0c$K,$"GH1nK,6H"e<
{ $K,6"(<e|HH7| $!(J ,<[)d()
{ 7(‹)$"$J61$"$J6VV-qVf<(HVe<$-<"rnV-B0#B%
{ (‹)$"$J61$"$J6VUD0c$WK$" Lp
{ M))$"$J6H)H)-V-q-<eV0e-<"r0c$7` $!(O$P
Un~Un
k'. g#/,"0#$ b"‚O7>0$ $!(O$P2C
{ k,c™H0c$O9a))$dg 23ZZZZZG
{ k,cXX-Ul0c$O9a))$dg 23ZZZZZZG
{ \$8(K,cXX-Ulg"P2("<\"<'Za/
{ T9a)".625)"<R0c$H $!(O$P>6G/!/
{ .6 23 25) "<R )f "<' /. $8 BV- qB $<($" Ve<$
-<)<//$)r"[)N(%`
{ ~")D$/e<0c$K, ,)"<)
{ *a)K9/]"/ƒ25)"<R
cH"O0#O[) 23 LpgKu$
K, J/25) "<R k, cH"O H•
23 !]6&"P"<)6GH(
R4k,c25)"<R
-B4^Q::
%k,c\$8(
k,c\$8(>-B#K,cXX-Ul 23$<#/$!(KO1$0c$
-B4^Q::K,c\$8( 23$<#/KO˜$KOg()23)%Q
Kf"enK)_/7")$g*a) bK$8"V^AqV6e$^("$Ue)$H"e<r
‘/u70}) Lp";60#7")$/& ‚()A-UqAee<-(<6He
Ue)$H"e<r‘/u0}) LpY.$"<)KO7")$V^U"2t)d(f'
23HI&)q0‚&2")$VDDVrH• 23 b"u";"#7KO>K,c
\$8()$=6"(]"$8"<)N(7"<R"<(fd(;"0##/)$9/Kc"8>25)
"<R
V5 _&"P>K,c\$8(-B4^Q::2H(C
W
Hình 1.7. Sơ đồ bộ nhớ dữ liệu PIC16F877A
D)$*a) bK$8"V^U
`f#7")$ 23HI&)Ku$-b 23}) P"$J"]60# $!(
O$P7O1$*a) 23"‚36K'"<)0$ $!(O$Pg"P6`")$
V^U#/$$C")$V^U$'N( J7*a)K'"<)q-r0#
")$VU^}) P"$J"]60# $!(O$P7O1$*a)K')#$q0‚&
%Z
2n-~nŽr-G#fH• !]6 J7")$$'N( J7*
a)K'"<)7")$}) P"$J"]60# $!(O$P7O1$*a)H•
23v JO$" !]6 J7O1$*a) g
D'"UDDUqZ+nQ+nZ+nQ+rC")$*OJ"N(9"$86•6
"7>O1$n"<.)"7$<eHe"0#7K$"KOG"<(fd(;""<)K,c\
$8(
D'"b,DBbcTVAqQnQrC")$#f6•6 0#)$n
"<)/˜$M)g"PO7(k'. gn0$ $!(O$P 23"‚36HšK'
"<)7 b"‚)$"$J6).$0$'K'.*a)#M)d(;"]6"[)
"2t)n/,"H1`d(;"]6Yg"'/7*a)O7 P"P$8H"7
,)>7 b"‚).$0$'("<' 1$0c$"J)$c$K')#$*a)>"s)
`d(;"]6"<)/˜$M)#"#g"P 23d7]60# $!(O$P 23
"[)N(7")$V^U$'N( J`d(;"]6 g
$ $!(O$P-B4^Q::gM)d(;"]6nK)_/-lUDn-lUDkn
-lUDn-lUD0#-lUDX;("<=0#*a)>"s)M)d(;"]6H• 23
!]6&"P"<)6GH(
4-lUD
-lUDqU-rK)_/4B|l6$`f#7`“$$!(‡qK$$<e"$6$rn
)•#g"Pd(;"0#]6 23*a)B|l#f 23 $!(O$PKu$")$
DUBVq LpQr(1d7]6*a)>/,"`"<)-lUD#$6("n"
“He"‡K$" $!(O$P"25)*)0c$` g"<)")$DUBV0#)23.$n/(1
d7]6*a)>/,"`"<)-lUD#("6("n"“e<‡K$" $!(O$P
"25)*)0c$` g"<)")$DUBVD"7#f#"#"25)" 1$
0c$7-lUD0#7")$ $!(O$P"25)*)DUBVq 1$0c$-lUD#
DUBVn 1$0c$-lUDk#DUBVkn 1$0c$-lUD#DUBVn 1$0c$-lUD#
%%
DUBV0# 1$0c$-lUDX#DUBVXr
k'. g-lUDY#)‰<>K,nK,HH7n)‰0#))‰
0#d()O>D$/e<Z0#)‰0#>K,)$"$J6VV-qH"e<Vf<(H
Ve<$-<"rb"‚#fH• 23"<RK#f&"P"<)6GH(
7")$V^U$'N( J-lUDK)_/C
{ -lUDq LpZrC*)$7"<L76$"<)-lUD
{ DUBVq LpQrC*)$7"<L76$"<)-lUD
{ lq LpWrC")$ $!(O$PK,HH7
{ Ulq LpWrC")$ $!(O$PK,HH7 $876
{ lq¥Y¦W^rC")$¥$e#(O$e§K¨
4%-lUDk
{ lC")$ $!(O$PO1$
0:DZ68>/""&O"P,B
8e
=676C~OqZ©O©%rD7&)C,))$7"<LO0#")$~nOJ"N(9
23*"<)")$~
k$""<.)"7$Cnn”
8e[
=676C~^™nqZ©™©%n ªZn«rD7&)C,))$7"<L$")$~0#
")$™TJ"N(9 23*"<)")$~J(¡Zb")$™J(¡
k$""<.)"7$Cnn”
8e
=676C~OqZ©O©%rD7&)C"$86•6"7)$\")$
0#)$7"<LOnOJ"N(9 23*"<)")$~
k$""<.)"7$C”
8e[
=676C~^™nqZ©™©%:n∈ªZn«rD7&)C"$86•6"7)$\
7)$7"<L*"<)$")$~0#™TJ"N(9 23 20#")$~J(
¡Zb")$™J(¡
k$""<.)"7$C”
8f[
=676Ck^™nK qZ©™©%:nZ©K©:rD7&)CdgK$"K"<)")$™0!)$7"<L
Zk$""<.)"7$CO[)g
8fU[
=676CkV^™nKqZ©™©%:nZ©K©:rD7&)CHe"K$"K"<)"<)$™
k$""<.)"7$CO[)g
8fD[UU
=676CkD^VV™nKqZ©™©%:nZ©K©:rD7&)CO$P/"<K$"K"<)")$™J(
K$"KK‘)Zn8"$J6"e 23""$J(K$"KK‘)n8"$J6"e 23K†N(
0#"f0# g#8l-
k$""<.)"7$CO[)g
=676CX^V”™nqZ©™©%:n ªZn«rD7&)C)‚"<L")$™ 23)$9/
50LJ(OJ"N(9H(O$)$9/O7Zn8"$J6"e 23""$nJ(OJ"N(9
K‘)Zn8"$J6"eO[) 23""$0#"f0# g#8l-TJ"N(9 23
20#")$~J(¡Zb")$™J(¡
k$""<.)"7$CO[)g
8AbDb
=676CAlDlOqZ©O©%Z:rD7&)C9f"c$/,"Ke 23 L
)•Ku$"/H1O0#%K$"-D£C+¤
k$""<.)"7$CO[)g
8B[
=676CB^™nqZ©™©%:n ªZn«rD7&)C"a))$7"<L")$™' 5
0LTJ"N(9 23 20#")$~J(¡Zb")$™J(¡
k$""<.)"7$C”
8B[Ug
=676CB^V”™nqZ©™©%:n ªZn«rD7&)C"a))$7"<L")$™'
50LJ(OJ"N(9O7Zn8"$J6"e 23""$nJ(OJ"N(9K‘)Zn8"$J6
"e 23"fK‘)8l-TJ"N(9H• 23 20#")$™J(¡b
")$~J(¡Z
k$""<.)"7$CO[)g
8BbTe
=676CBlU~OqZ©O©%rD7&)C"$86•6"7lU)$\")$~
0#)$7"<LOTJ"N(9 23*"<)")$~
k$""<.)"7$C”
8BbTe[
=676CBlU~^™nqZ©™©%:n ªZn«rD7&)C"$86•6"7lU)$\
$")$~0#™TJ"N(9 23 20#")$~J(¡Zb")$™J(
¡
k$""<.)"7$C”
%