Giáo trình vi xử lý | Trường Đại học Công Nghiệp TPHCM

Giáo trình vi xử lý | Trường Đại học Công Nghiệp TPHCM. Tài liệu gồm 249 trang, giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!




 !""


   !
   



 ! "#"#$"#%$

 !
"#$% !
&'()*+,-!
./01$23425678
&9,&:
;2<$32<=+>?!
+0/ 0@A)22BIntelC<**-DBRockwellInternationalC<E
% ! "%#"#&$"##$

= !
"#$4 !
&'()F+,-)&+,-!
./01$3=5678
&9,&:
;$3G+>?!
+0/ 0@A)4G2%BMosTechnologyC<4=2264=2HBMotorolaC<
=2=26=2=GBIntelC<I=2BZilogC<E
& ! "&#"#'$"'($

$4 !
"#%2D% !
&'()>+,-!
./012<$3$5678
&9,&:
;G3$2+>?!
+0/ 0@A)4=22264=2$2B+))@)C<=2=46=2$=46=2%=4
BJKC<E
' ! "'#"'%$)*$

L%D4 !
"#L% !
&'()>&+,-!
./012<2$32<$578
&9,&:
;%23$22+>?!
+0/ 0@A)4=2%264=2L264=2264=242BMotorolaC<=2L=46
=2=46*KBIntelC<E
()*+,
"M
:NOAPQR@S )@T  U'V1R)
AW!
   !
 !  
:NOA@RXY!
.Z[<Y
*V\BHardwareC ")()R7)AW!
*V]BSoftwareCA^@S!
&*_BCentralProcessingUnitC^"@`!
ab+BRandomAccessMemoryC 07@cdT!
a,+BReadOnlyMemoryC 07#e!
JK@8K&@@()R!
*K@RK@fKKBInputC ")(Bthi"tb$nh%pC!
*K@RK@fKKBOutputC ")(Bthi"tb$xu'tC!
b@K  "#!
f  !
&)@)  ]U!
(-.,
&*_g@h()@)<g[NcN)(01
cN)@T!
&*_0(g0iPR)!:)(0<&*_+,-.APA7
( 2 $j 07<ggk1/-.l]
UA^\7)@)]UU/U0j A7)
gjg()@]U))!
   !
 "  
#1234525$!
#63)-357123635$ 0A^@S6)@m!
/01234156/7846789/746/126:3/51^"Nl]U!
#8-5)9:3;$^"/e)!
8;501820!
.g(<U)(0&*_k1TX%)<-= /-.>0
!
.)<-= 
F0*&AP&*_AT "#B$C!
.i]UeBReadC@(i1B%C!
+lBOpcodeCj 07APAT BLC!
+lAP)@)Ja@)&*_BC!
F0*&OT0^"n "S(RURj 07!
.)/-.>0
+ljJaAPA)^"Nl]U!
^"Nl]Uk1Nl)R)K()@i
]UcQRb9_BRegistersC!
&O\@Ti]U<b9_1)lAP"!
+0oBOpcodeCUPR(710'gMAP
eA^@SBProgramCRV]BSoftwareC!
<=
07 d00RQU@c[@e<A^@S
]APA@) 07!
07 d@)Y
a,+ 07A^@SAA^@S]U)(0)/!
ab+ 07A<0RVA^@S]U/<
\XU[Ni)!
   !
 #  
-^AP]c@pR`)(a,+3ab+
a,+BReadOnlyMemoryC 07#e<'@)a,+kU' "c
NUYcR)a,+U'h!
&c@pa,+
*`)(0/)(a,+
+a,+BMaskROMCa,+(!
*a,+BProgrammableROMCa,+QR@SAP!
q*a,+BEraseablePROMCa,+QR@SgAP!
_rDq*a,+BUltraVioletEPROMCa,+g s1i!
qq*a,+BElectricEPROMCa,+QR@Sg si!
ta,+a,+QR@Sg si!
ab+BRandomAccessMemoryC 07@cdTBb*nh+ghiñ-cC<'
@)ab+k "cUYcR)ab+U'h!!
&c@pab+
*`)(0/)(ab+
fab+BDynamicRAMCab+0
-ab+BStaticRAMCab+M
&"AP 07 d= X)R]U=2G$A
f1)/AP`"#
<3/;:>?/;@%

<7F/AW"# 07!
Víd0:07 d= g$2AW"#!&) AP 07 )Tu
F;$2fAP;%
$2
;A%';*
   !
 $  
f1)l/ 07
+l/BBBB )( 07
%v_rDq*a,+ %=qq*a,+
4$<4%-ab+ 2<$fab+
BBBBAP 07
<3/;:>?/;@BBBB#*C51$)<3/;:>?/;@BBBBDE#*$
Víd0:07gl/%v%G4<AP 07 )Tu
%v07FGH,
%G4fAP;%IJ#*C51$;&%#*$
K-HL#K-MN$
+(  ) R BInterface CircuitryC    " c QR   " )( 
BPeripheralDevicesC()@UNO)R77 T)!0RQ)
R /77 T)AWAPeZBPortC!FA
QwK)j)( ")RgZQRBInputCc'j))
ZcBOutputCA'j@)@)!
.Z[<gL)( "cQR
. "A@7 Oj<Mj<M[<E
. ")R7)AWS< Ri<<E
. "]U6U@ 0Uii< 0N <E
+
QRPRAW`'gw\O!r@c'7
0([&*_SgXL)(  "#<  ]U!
&*_X/ 1)eBREADCBWRITEC'
&*_7 07) ")(!
"#BAddressbusC
N' "#!
9)( $]BCPU
MEMhayI/OC!
" 07) ")(&*_V@)Z'!
"AP 07))(&*_gUNO@c!
BDatabusC
N' !
9)( %]BCPU
MEMhayI/OC!
"/ &*_gUNOw0p!
]UBControlbusC
N' ]UBoAW`0i]U
UC!
9)( $]BCPU
MEM5I/Oho6cMEM5I/O
CPUC!
]UU/U@)Qi]UjU/gR/
PR)(0!
   !
 %  
O(*
R`  0 0]Ug1@T/A
B!31PQ R/:6S5
5TU:V
#!3 35223$
5W5X3Y 5Z/
#!3335$
&*_ x x
a,+ x
ab+ x
+()R/
R
x
+()R)
)
x
+(]Uy
x
&c@pRV\
BHardware
architectureC
&(]U
U
x
zX7<i
)R\(R
x
&\X
BApplicationsC
zXm<i
)^N
x
&U""# F] {&@A
QR
BInstructionset
featureC
0j

K<|)@<f) K})@<
E
<K
,[*K\,(*
]<BWatch5DogTimerC0"W|Df)!
H<HDBOscillatorC0)0BF/VC!
5^820"W!
D<BAnalog/DigitalC0 ZiA^16/!
_8;501820BSpecialFunctionRegisterC&\O !
,,8^62`07!
   !
 &  
26;29^,8^62`07A^@S!
GGH,07qq*a,+!
DH6210&R)@c6QR!
/01234156/<8467820Nl!
^")/e!
443^3:9162.i~!
6/126:6;54]U)!
26;29^63/1820A^@S!
/01234156/0D77280080&6"#!
[(**K*K
&g /e]U'X@T"@AW4=+))@)<=2
JK<I=I)*J&$4+@)R.K))!+o)(]U@T]g0
QR@TTpU'A^id!rQUU0
/X]USV1@TTn)u&g Tni
?@ABC
R\TVi)0[NU!f)Q<
@A7TVRNK• 0]U= <$4 L% iPRc!+0//
U€QVAP`yUe1
D+/07c]Uo@P )T!
EF1U2`fJ*<•t*UgmUBDIP:v8d9nghaihàng
chân,QFP:v8vuôngd?tC!:gm@c[@eUgTV]U'<UyR@R
()d)NRn/w!
2B?G0TnV ANRnwR)
RA7!
fAP 07a,+ab+iPR‚@TR!
-/`)6@ 0"W@TR!
:NOƒ`)c)l'cTX!
„@T0^"U/AP7!rS`c]gNA…
/wNRn!
?@A)C
&g‚'XR@RV]<†(AA^
@S'Rm<@S T"<@SPR"‡@/!
?@A)C
:NOR\]/AP(~A…A^!/
70/USTnQih[@e^NTn@T!


  !"
#$%&'()*+,  -./%001234



  !"# "$%
 !"#$%
#$%&'()*+,-./(0
1'2,-+3.4+5067189
1'2:;<.4+50=$.>89
1'2,-+3.450?67189
1'2:;<.450?67189
6#5+@AB#89$.
=.'CD?.
5E#)E#
1'@FG.89
=%C+H2,ICCJKLC+H.
MNO+56P(
M5+K+5Q&'()#"&A+R,-,-,0
 & '()*+$% ',)*+$% -./0$  1
$%S %71 =$.> =
$%S= %71 =?.> S
$% 671TUV =$.> =
$%= $71TUV =?.> S
$W 671XYTUV =$.> =
$W= $71XYTUV =?.> S
$Z 671[\]^UV =$.> =
$Z= $71[\]^UV =?.> S
 2#& 3$45$#67# &8/9": ;$
 -.8/9": ;$<
$%S'#4./"$%#>,D,I5$%_&UV+4
#`&:a,I#>b#/. (4UV5c,-+3bE5
$%S$%&,-+3,IcdUV+4#.C2E671KQUV5
$%S3&4E?671e>4K&+>B#E.'2UV53b:a4
 89K:5B>JQ& 89(F:fMgh
#fA>KR&. (4 5O+5$%S
 -.8/9": ;$
$%='#4./$%$%=&A/"_()iB$%K5+Q
&4=$.>U]K671UV'.'CD;M,B>K$%=& '=?.>
U]K$71UV..'CD
  !"
#$%&'()*+, 5 -./%001234
=#>$ :? "@ <  
 ! % 6 $
"#! =$ =$ =?
$%&' = = S
() S= S= S=
(*+,   
-./0   ?
M,./_()+4A>$%'+,DI#+4$%=,-+3E
5$%&>,I+4$%=,,I&_R
< -.8/9": ;$A
#$WJ&671.'2XYTUV+4#`(F:f#>b#/&E.C
B#+3TUVE.C@5"XYTUVj5UV+4#$WXYTUVK4b
#/A5/=%#R@5"$W+,2,IB#+33N>!"+3AD
4(/@A5+#4./[(UVXU]
B -.8/9": ;$,C#67,DEF+*&+*7+$
]e$Z#4./$%&UV+4#.'2[(T4./>+AHI#5
"c:f3.'2[(&,I@&+5N>jk4:a]e$Zb
#/&E.CB#+3TUVL+I.'2[(,_bEE.C@&UV3.'2
[(,I@&.gE.CB#+3TUV`<(F:fK<>]4c
'#4./]e$Z&,IB#+3! V">HT,B>(l_
bEE.CB#+3TUV
G !" '() ',) H( DE* %I ## JK# L$
123(4 671 =$ S= =   6%
123564 671 =$ S= =  S 6%
123(4 71 ?6   S S =%
123(4 =71 =$  =  S =%
123(4 $71 =? S= S ?  6%
123564 $71 =? S= S ? S 6%
 -.8/9": ;$MJ#67M7FF7NJED#+$O"#+*
'#4./# .E";$%j%%%j(5:5+1'2
UV+4#j%%%MU]j%%%&/m#,-+35UV+4#
+5&nd+5<)_b#/A>+"o<:a! V
  !"
#$%&'()*+,  -./%001234
">HT`N>'+A,I,'M5+KMU]Q&,<5
#p#> ':U]5q.>_b#/@&E+,2B#+3,.'2
YTUV
G !" '() ',) H( DE* %I ## JK# L$
78492 $71 =$ S= = ?  6%
7849 S=71 =$ S= = ?  6%
784192 $71 =$ S= = ?  6%
78419 S=71 =$ S= = ?  6%
`*.<"#&;res5(G<r%%%s&k#&&EE
4'ttDo81(:#1;#(<9.4+5\,GttDoUe
55"2.'CDe+Ue5,;D>8'=)"9>
"8">;9+4oE>/_&tA#
P -.8/9": ;$CQQ#67 F&N+*&+*7+$
`N>'#4.//E(F:fTX.'$%2Hm,I
+'0:,IUVOU]+4#+A2KSe+?.uv:5e+K=jTeUK
$thKTv8.?#@AA.9KT88####B#9*.<.'2
,- +3 +4 # & H m T 898"?#; ;;9  ]T 89
;;9Kw
RS,
 JT/U: K8V# W#$X$%#2#: K#67# &
  !"
#$%&'()*+,  -./%001234
TX86&3+%6//7&90`-C@FG+NH5"!"
+35'<)
V88/++3&%90:5'5H<@5A#5")+5
#5'
++#5+50`hBH<hq.458-1CD-1C9Kq
.'CD81;#D1;#9q )E#88#9Kb,I,"H<h>E
TX@FG
V++(+(0"",+;:;<"#5+@AOB#K+"
<")+5#+5()!"+35'<)
U]893:%1;6//"61%<901'2:;<+5#,+;":;<
UV 8963: 8+<"61%<90 1'2 ,- +3 +5 # ,+; ,- +3
5'#
OV#5+(8=>8&%&/90"#5+@AOB#<@AB#:;<:,2
:(5(5;+55#_!"#5+T%KTKT=KTS
+#5+0T5+)E#<@AB#:;<:,2:)E#;
+55#_!"Ne@jKU@j
e+%Ke+01'CD%K:aCD5*E(o<8%,;
E.9_!"Ne%Ke
1(5+50`.(5'<).(<:>
_+4<).(
1((>(0^<).(4E")+5#2
 JT/U# L$8V# W#$X$%#2## L$#67# &
  !"
#$%&'()*+,  -./%001234
 +*
T5+%8FGFH9&()NqS=xSZ
T5+%&cm0
T5+@AB#:;<8F9FH9_(F:f.'25
1(CJ.>A#.(:;<I#87G7H9&(F:f.'2
5
?,@%&A3&B+C%&)D&E:F+!&'G/*:H$!&IJ%+.
K.%C
yE'*C8<#?#93"NT5+%8F9FH9,IA3%&)D&
:;<)"NT5+%%&E:;<3b#/B#+3K.g"c5
58;I9EA/".#5++,2.hbB#:;<q#5+8J%K"%LMN
"OP<,,9
7B#+35UV+5#3T5+%&+Qz5:;<87G7H9
E#;?QRS%K.<T24U94!
 +*
T5+8FGFH9&()Nqx$
T5+&'cm0
T5+ @A B#:; < 8F G FH9 (F :f 5* _ (F :f .' 2
5
yE'*C8<#?#93"NT5+8FGFH9,IA3%&)D&
:;<)"NT5+%&E:;<3b#/B#+3K.g"c5
58;I9EA/".#5++,2.hbB#:;<q#5+8J%K"%LMN
"OP<,,9
7B#+35UV+5#3T5+&+Qz5CJ.>A#
8GH9E#;?QRS%K.<T24U94!
< +*
T5+=8FGFH9&()Nq=x=$
T5+=&cm0
T5+@AB#:;<8FGFH9_(F:f.'25
1(CJ.>582G49&(F:f.'25
yE'*C8<#?#93"NT5+=8FGFH9,IA3%&)D&
:;<)"NT5+=%&E:;<3b#/B#+3K.g"c5
58;I9EA/".#5++,2.hbB#:;<q#5+8J%K"%LMN
"OP<,,9
7B#+35UV+5#3T5+=&+Qz5CJ.>582
G9"H<E#;?QRS%K.<T24U94!
B +*<
T5+S8FGFH9&()Nq%xW
T5+S&cm0
T5+@AB#:;<8FGFH9_(F:f.'255*"
cm*.<
"H<&(F:f.'255*"cm*.<
yE'*C8<#?#93"NT5+S8FGFH9,IA3%&)D&
:;<)"NT5+S%&E:;<3b#/B#+3K.g"c5
58;I9EA/".#5++,2.hbB#:;<q#5+8J%K"%LMN
"OP<,,9
  !"
#$%&'()*+, L -./%001234
7B#+35UV+5#3T5+S&+Qz5"H<
E#;?QRS%K.<T24U94!
cm"NT5+S0
1 e4 `CJ. cm
TS% U@j 1%^ NB:;<#5+)E#
TS e@j 1^ N#":;<#5+)E#
TS= Me%{ 1=^ Mz5h5%
TSS Me{ 1S^ Mz5h5
TS6 e% 16^ Mz5.'CDOE%
TS e 1^ Mz5.'CDOE
TS? vU{ 1?^ `5U]5
TSW Uj{ 1W^ `qU]5
  L$JYZ
TYM8%31M&%6N3K+6905#p#.'2,-+3KN()=Z
cm0
\H<5#p#+>@A8O9.'2,-+3895
\H<@AKHocA#
TYM{|%+5DTX3#<qUV5
TYM{|TX(F:fUV+58<V?WAX9
7(F:f.'2,-+3.45KNTYM{,D,I)2NVY{
UV55#p#TX<qUV5
P  L$,[Y
]\Y8;::6//?3&N3K+6905#p#)CJKN()S%
cm0
\H<5#p#)CJo<</I#5.(CJ
.>A#.(:;<I#87G7H9
\H<@AKHoc5
]\Y|%+5D.(]j%]jW&+Q.(j%jW
]\Y|+5D.(]j%]jW&+Q.(]%]W
7B#+35UV+5#3N]\Y&+Qz5@B#+3
8YC9E#;?QRS%K.<T24U94!
?,
?
8(
5Z
B
B =
&:a@55""
\
,[Y
8^}90b()@N]\Y
\
(J
8^}90b():5'+4#8b()9
7<A>:;<qU]586[9,Io<3'@]\Y.C.~!
E#;\%/293?QRS%K.<T24U!
A  L$Y,Z
Y]8N)&63+;6//90+>@A5KN()S
cm0
\H<5#p#+>@A8/*:H9.'2,-+3895
  !"
#$%&'()*+, P -./%001234
\H<B#KHocA#
Y]{|%#$%(F:f,-+3UV5
Y]{|#$%(F:f,-+3UV+5
7B#+35UV+5#3NY]&+Qz5<"#B#+3
86]6GD46S23EE^6S2EED2HEE9E#;?QRS%K.<T24U
94!
?,NY]{#/,I)48,.?WAXL_N`95*)
@)•Mj8,.?WAXL_N`9K_.5D,I#p#.~+)N>
  L$],[^],[
€e]\8("?90KN()$Z
cm0
ja)25*:5'5@5.45K
A#H<@55#5'
€e]\z55@5+5#
€e]\=z+5@5+5#
?,
)_\
`
=
==
=
\
`
8^}90b():C
C  L$'J
Ue896/6&90EB#KN()Z
cm0
\H<5#p#E*#8%a9+".b5<)
\H<B#KHoc5
Ue|%#$%5'.3,D
Ue|#$%,IE*#+".b
?,
#?#
1
×
=
U
8(
#
B
1
=
=
'YJY
8P(90D+( \
(J
8^}90b()
),Y
8P(90•">
  !"
#$%&'()*+,  -./%001234
6bAX:"C•">D+(,-c5q+,DI#
V
|K%Z=^}K
V
|=^}‚
V
|?^}
Y\
V
|K%Z=^}e
]^MY
|K%$P(
UYYe
ƒ=KWP(
V
|=^}e
]^MY
|P(
UYYe
ƒ=P(
V
|?^}e
]^MY
|%KWP(
UYYe
ƒKP(
  L$##^M
K•Mj0tA#<KN()6%=%
cm0
A#t<5#$%5'
|a±
±±
±b•Mj|
c'd(']ce
7/m‚58(),I/b+9"qN#5+#$%0
T5+%0$/ee\
T5+06/ee\
T5+=06/ee\
T5+S06/ee\
?,
7%&A3&B+C%&)D&E3(l_&<+dp54.4+5:%
A/*:H&.1C%!&IJ%+.K.%CE#;RNF!F
yE'*C8<#?#93A/"N"#5+8G9,IA3
%&)D&:;<
)"N#5+#$%%&E:;<3b#/,IB#+3K
.g"c558c9EA/".8)9#5++,2.hbB#:;
<q#5+8J%K"%LMN"OP<,,9
  !"
#$%&'()*+, Q -./%001234
"N+5a'#5+_AE#/&aA38E.Ja
c9Mk+5a'#5+&&N:aB#:;<K&&N:a
@A:;<`>a>'5bfH,DB#+3
„"+3N#5+8E.JAde.)9
„"+3N#5+8cAde.f)9
„"+3.')8<T;Ade.g)9
  !"
#$%&'()*+, R -./%001234
?,<:;<.A•'#5+5&5"+C"a>'
5<(F:f:;<q#5+8E#;;Pce9€/>+<,I
_5)>:5!"+3:;<#$%t!"+3"0h.
N%S)h.N%S$+
2$&'OS%&7(F:f"<"8(T;UUTVj;<B
,I(o<!"+3:F+!!&0I$S%&
2$ &' OKWX&7(F :f" <;Y?T89?T Z9?T?T=YT
UNTU[Y\T[-T?9K&TMN-K&T"8(K&j;<B,I(o<!"+3
:F+!!&0I$KWX&Ade.%i%LMg'%T;Lj%kOh.N
)!Kc_#/:;<<d"N#5+54KEDo<
!"+3:;<"N#5+&.C> m;3:;<…_
,IB#B
-fgS,
1'@FG&_.'25:;<,-+3
,-+3:;<g+4U]+,2,5TXo
1'&_.'2+45:;<,-+3
,-+3:;<g+4+4UVU]+,2,5TXo
e c.'2#$%0
| 1/249

Preview text:

!""
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM. CHƯƠNG 1 GI I THI U CHUNG V B VI X LÝ
I. S PHÁT TRI N C A CÁC B VI X LÝ: 1. Th! h" 1 (1971 $ 1973):
ð c ñi m chung c a các vi x lý th h này: • Bus d li u: 4 bit. • Bus ñ"a ch#: 12 bit. • Công ngh ch t(o: PMOS. •
T/c ñ0 th1c hi n l nh: 10 – 60 5s/l nh v7i fCLOCK = 0,1 – 0,8 MHz.
M0t s/ b0 vi x lý ñ c trưng cho th h này: 4040 (Intel), PPSD4 (Rockwell International), … 2. Th! h" 2 (1974 $ 1977):
ð c ñi m chung c a các vi x lý th h này: • Bus d li u: 8 bit. • Bus ñ"a ch#: 16 bit. •
Công ngh ch t(o: NMOS ho c CMOS. •
T/c ñ0 th1c hi n l nh: 1 – 8 5s/l nh v7i fCLOCK = 1 – 5 MHz.
M0t s/ b0 vi x lý ñ c trưng cho th h này: 6502 (Mos Technology), 6800/6809 (Motorola),
8080/8085 (Intel), Z80 (Zilog), … 3. Th! h" 3 (1978 $ 1982):
ð c ñi m chung c a các vi x lý th h này: • Bus d li u: 16 bit. • Bus ñ"a ch#: 20 D 24 bit. • Công ngh ch t(o: HMOS. •
T/c ñ0 th1c hi n l nh: 0,1 – 1 5s/l nh v7i fCLOCK = 5 – 10 MHz.
M0t s/ b0 vi x lý ñ c trưng cho th h này: 68000 / 68010 (Motorola), 8086 / 80186 / 80286 (Intel), … 4. Th! h" 4 (1983 $ nay):
ð c ñi m chung c a các vi x lý th h này: • Bus d li u: 32 D 64 bit. • Bus ñ"a ch#: 32 bit. • Công ngh ch t(o: HCMOS. •
T/c ñ0 th1c hi n l nh: 0,01 – 0,1 5s v7i fCLOCK = 20 – 100 MHz.
M0t s/ b0 vi x lý ñ c trưng cho th h này: 68020 / 68030 / 68040 / 68060 (Motorola), 80386 / 80486 / Pentium (Intel), …
II. SƠ ð) KH+I C A M T H VI X LÝ: ð"nh nghĩa h vi x lý: •
KhN năng ñưPc lQp trình ñ thao tác trên các d li u mà không cVn s1 can thi p c a con ngưWi.
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM. •
KhN năng lưu tr và phXc hYi d li u. TZng quát, h vi x lý gYm: •
PhVn c\ng (Hardware): các thi t b" ngo(i vi → ñ giao ti p v7i con ngưWi. •
PhVn m]m (Software): chương trình → ñ x lý d li u.
CPU (Central Processing Unit): ñơn v" x lý trung tâm.
RAM (Random Access Memory): b0 nh7 truy xuct ngdu nhiên.
ROM (Read Only Memory): b0 nh7 ch# ñec.
Interface Circuitry: m(ch ñi n giao ti p.
Peripheral Devices (Input): các thi t b" ngo(i vi (thi"t b$ nh%p).
Peripheral Devices (Output): các thi t b" ngo(i vi (thi"t b$ xu't). Address bus: bus ñ"a ch#. Data bus: bus d li u. Control bus: bus ñi]u khi n.
III. ðƠN V- X LÝ TRUNG TÂM:
CPU ñóng vai trò ch ñ(o trong h vi x lý, nó quNn lý tct cN các ho(t ñ0ng c a h và th1c hi n
tct cN các thao tác trên d li u.
CPU là m0t vi m(ch ñi n t có ñ0 tích hPp cao. Khi ho(t ñ0ng, CPU ñ,c mã l nh ñưPc ghi dư7i
d(ng các bit 0 và bit 1 tj b0 nh7, sau ñó nó sk th1c hi n gi/i mã các l nh này thành dãy các xung ñi]u
khi n tương \ng v7i các thao tác trong l nh ñ ñi]u khi n các kh/i khác th0c hi n tjng bư7c các thao
tác ñó và tj ñó t(o ra các xung ñi]u khi n cho toàn h . !
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM.
IR (Instruction Register): thanh ghi l nh.
PC (Program Counter / Instruction Pointer): b0 ñ m chương trình / con trm l nh.
Instruction decode and control unit: ñơn v" giNi mã l nh và ñi]u khi n.
ALU (Arithmetic and Logic Unit): ñơn v" s/ hec và logic. Registers: các thanh ghi.
Tóm l(i, khi ho(t ñ0ng CPU sk th1c hi n liên tXc 2 thao tác: tìm n=p l nh và gi/i mã – th0c hi n l nh. • Thao tác tìm n=p l nh:
N0i dung c a thanh ghi PC ñưPc CPU ñưa lên bus ñ"a ch# (1).
Tín hi u ñi]u khi n ñec (Read) chuy n sang tr(ng thái tích c1c (2).
Mã l nh (Opcode) tj b0 nh7 ñưPc ñưa lên bus d li u (3).
Mã l nh ñưPc chuy n vào trong thanh ghi IR trong CPU (4).
N0i dung c a thanh ghi PC tăng lên m0t ñơn v" ñ chunn b" tìm n(p l nh k ti p tj b0 nh7. •
Thao tác gi/i mã – th0c hi n l nh:
Mã l nh tj thanh ghi IR ñưPc ñưa vào ñơn v" giNi mã l nh và ñi]u khi n.
ðơn v" giNi mã l nh và ñi]u khi n sk th1c hi n giNi mã opcode và t(o ra các tín hi u ñ
ñi]u khi n vi c xuct nhQp d li u gi a ALU và các thanh ghi (Registers).
Căn c\ trên các tín hi u ñi]u khi n này, ALU th1c hi n các thao tác ñã ñưPc xác ñ"nh.
M0t chuoi các l nh (Opcode) k t hPp l(i v7i nhau ñ th1c hi n m0t công vi c có ý nghĩa ñưPc
gei là chương trình (Program) hay phVn m]m (Software). IV. B NH BÁN D=N:
B0 nh7 bán ddn là m0t b0 phQn khác rct quan treng c a h vi x lý, các chương trình và d li u
ñ]u ñưPc lưu gi trong b0 nh7.
B0 nh7 bán ddn trong h vi x lý gYm: •
ROM: b0 nh7 chương trình → lưu gi chương trình ñi]u khi n ho(t ñ0ng c a toàn h th/ng. •
RAM: b0 nh7 d li u → lưu gi d li u, m0t phVn chương trình ñi]u khi n h th/ng, các
\ng dXng và k t quN tính toán. "
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM.
Sơ lưPc v] ccu trúc và phân lo(i ROM – RAM: •
ROM (Read Only Memory): b0 nh7 ch# ñec, thông tin trong ROM sk không b" mct ñi ngay
cN khi nguYn ñi n cung ccp cho ROM không còn. Ccu trúc ROM: Phân lo(i m0t s/ lo(i ROM: MROM (Mask ROM): ROM m t n(.
PROM (Programmable ROM): ROM lQp trình ñưPc.
EPROM (Eraseable PROM): ROM lQp trình và xóa ñưPc.
UVDEPROM (Ultra Violet EPROM): ROM xóa bsng tia c1c tím.
EEPROM (Electric EPROM): ROM lQp trình và xóa bsng tín hi u ñi n.
Flash ROM: ROM lQp trình và xóa bsng tín hi u ñi n. •
RAM (Random Access Memory): b0 nh7 truy xuct ngdu nhiên (b* nh+ ghi ñ-c), thông tin
trong RAM sk b" mct ñi khi nguYn ñi n cung ccp cho RAM không còn.. Ccu trúc RAM: Phân lo(i m0t s/ lo(i RAM: DRAM (Dynamic RAM): RAM ñ0ng SRAM (Static RAM): RAM tĩnh
Cách xác ñ"nh dung lưPng b0 nh7 bán ddn 8 bit s dXng cho chip vi ñi]u khi n 8051 như sau: •
D1a vào s/ lưPng chân ñ"a ch#:
Dung lư?ng = 2N , v7i N là s/ ñưWng ñ"a ch# c a b0 nh7.
Ví d0: B0 nh7 bán ddn 8 bit có 10 ñưWng ñ"a ch#. Cho bi t dung lưPng c a b0 nh7 là bao nhiêu?
N = 10 → Dung lưPng = 210 = 1024 = 1 KB #
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM. • D1a vào mã s/ c a b0 nh7: Mã s/: XX YYYY XX: lo(i b0 nh7 27: UVDEPROM 28: EEPROM 61,62: SRAM 40,41: DRAM YYYY: dung lưPng b0 nh7
Dung lư?ng = YYYY (Kbit) ho c Dung lư?ng = YYYY / 8 (KB)
Ví d0: B0 nh7 có mã s/ 27256, dung lưPng c a b0 nh7 là bao nhiêu ? 27 → B0 nh7 UVFEPROM
256 → Dung lưPng = 256 (Kbit) = 32 (KB)
V. CÁC THIKT B- NGOLI VI (CÁC THIKT B- XUMT NHNP):
M(ch ñi n giao ti p (Interface Circuitry) và các thi t b" xuct nhQp hay thi t b" ngo(i vi
(Peripheral Devices) t(o ra khN năng giao ti p gi a h vi x lý v7i th gi7i bên ngoài. B0 phQn giao
ti p gi a bus h th/ng c a h vi x lý v7i các th gi7i bên ngoài thưWng ñưPc gei là cZng (Port). Như
vQy tùy theo tjng lo(i thi t b" giao ti p mà ta có các cZng nhQp (Input) ñ lcy thông tin tj ngoài vào h
và các cZng xuct (Output) ñ ñưa thông tin tj trong h ra ngoài.
TZng quát, ta có 3 lo(i thi t b" xuct nhQp sau: •
Thi t b" lưu tr l7n: băng tj, ñĩa tj, ñĩa quang, … •
Thi t b" giao ti p v7i con ngưWi: màn hình, bàn phím, máy in, … •
Thi t b" ñi]u khi n / ki m tra: các b0 kích thích, các b0 cNm bi n, … VI. H TH+NG BUS:
Bus là tQp hPp các ñưWng dây mang thông tin có cùng ch\c năng. Vi c truy xuct thông tin t7i
m0t m(ch ñi n xung quanh CPU thì nó s dXng 3 lo(i bus: bus ñ"a ch#, bus d li u và bus ñi]u khi n.
CPU s dXng h th/ng bus này ñ th1c hi n các thao tác ñec (READ) và ghi (WRITE) thông tin gi a
CPU v7i b0 nh7 ho c các thi t b" ngo(i vi. • Bus ñ"a ch# (Address bus):
ð chuy n tNi thông tin c a các bit ñ"a ch#.
Là lo(i bus 1 chi]u (CPU → MEM hay I/O).
ð xác ñ"nh b0 nh7 ho c thi t b" ngo(i vi mà CPU cVn trao ñZi thông tin.
ð xác ñ"nh dung lưPng b0 nh7 ho c ngo(i vi mà CPU có khN năng truy xuct. • Bus d li u (Data bus):
ð chuy n tNi thông tin c a các bit d li u.
Là lo(i bus 2 chi]u (CPU ↔ MEM hay I/O).
ð xác ñ"nh s/ bit d li u mà CPU có khN năng x lý cùng m0t lúc. • Bus ñi]u khi n (Control bus):
ð chuy n tNi thông tin c a các bit ñi]u khi n (moi ñưWng dây là m0t tín hi u ñi]u khi n khác nhau).
Là lo(i bus 1 chi]u (CPU → MEM5I/O ho6c MEM5I/O → CPU).
ð ñi]u khi n các kh/i khác trong h và nhQn tín hi u ñi]u khi n tj các kh/i ñó ñ ph/i hPp ho(t ñ0ng. $
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM.
VII. VI X LÝ – VI ðI U KHI N:
ð phân bi t b0 vi x lý và b0 vi ñi]u khi n ta có th d1a trên các y u t/ như sau: Vi xU lý Vi ñiXu khiZn Y!u tP phân loSi (Microprocessor) (Microcontroller) CPU X X ROM X RAM X M(ch giao ti p n/i Ccu trúc phVn c\ng X ti p (Hardware M(ch giao ti p song architecture) X song M(ch ñi]u khi n ngyt X Các m(ch ñi]u khi n X khác zng dXng l7n, tính X Các \ngdXng toán ph\c t(p (Applications) zng dXng nhm, tính X toán ñơn giNn Các ñ c trưng c a Các ki u ñ"nh ñ"a ch# Nhi]u Ít tQp l nh (Instruction set ð0 dài tj d li u x Byte, Word, Double word, Bit, Byte lý … feature)
VIII. MINH H[A KIKN TRÚC C A M T H VI ðI U KHI N:
WDT (Watch5Dog Timer): B0 ñ"nh thWi WatchDDog.
OSC., OSC/N (Oscillator): B0 dao ñ0ng (N: h s/ chia tVn). Timer: B0 ñ"nh thWi.
A/D (Analog/Digital): B0 bi n ñZi tín hi u tương t1/s/.
SFR Registers (Special Function Register): Các thanh ghi ch\c năng ñ c bi t. RAM Memory: B0 nh7 d li u. %
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM.
Program Memory: B0 nh7 chương trình. EEPROM: B0 nh7 EEPROM.
I/O Ports: Các port xuct/nhQp.
Instruction Decoder: B0 giNi mã l nh.
ALU: ðơn v" logic và s/ hec.
Accumulator: Thanh ghi tích lũy.
Control Logic: ði]u khi n logic.
Program Counter: B0 ñ m chương trình.
Instructions/Addresses: Các l nh / ñ"a ch#.
IX. L A CH[N B VI ðI U KHI N KHI THIKT KK:
Có b/n he vi ñi]u khi n thông dXng trên th" trưWng hi n nay là: 68xxx c a Motorola, 80xxx c a
Intel, Z8xx c a Zilog và PIC16xxx c a Microchip Technology. Moi lo(i vi ñi]u khi n trên ñ]u có m0t
tQp l nh và thanh ghi riêng nên chúng không tương thích ldn nhau. VQy khi ta ti n hành thi t k m0t h
th/ng s dXng vi ñi]u khi n thì ta cVn d1a trên nh ng tiêu chunn nào? Có ba tiêu chnn chính: •
Tiêu chu@n thA nhBt là: ðáp \ng yêu cVu tính toán m0t cách hi u quN và kinh t . Do vQy,
trư7c tiên ta cVn phNi xem xét b0 vi ñi]u khi n 8 bit, 16 bit hay 32 bit là thích hPp nhct. M0t s/ tham s/
k€ thuQt cVn ñưPc cân nhyc khi chen l1a là:
TDc ñ : t/c ñ0 l7n nhct mà vi ñi]u khi n ho trP là bao nhiêu.
KiFu IC: là ki u 40 chân DIP, QFP hay là ki u ñóng vm khác (DIP: v8 d9ng hai hàng
chân, QFP: v8 vuông d?t). Ki u ñóng vm rct quan treng khi có yêu cVu v] không gian, ki u lyp ráp và
t(o mdu th cho sNn phnm cu/i cùng.
Công suBt tiêu thG: là m0t tiêu chunn cVn ñ c bi t lưu ý n u sNn phnm dùng pin ho c ñi n áp lư7i.
Dung lưPng b0 nh7 ROM và RAM tích hPp s‚n trên chip.
S/ chân vào/ra và b0 ñ"nh thWi trên chip.
KhN năng dƒ dàng nâng cao hi u suct ho c giãm công suct tiêu thX.
Giá thành trên m0t ñơn v" khi mua s/ lưPng l7n. Vì ñây là vcn ñ] có Nnh hư…ng ñ n giá
thành cu/i cùng c a sNn phnm. •
Tiêu chu@n thA hai là: Có s‚n các công cX phát tri n phVn m]m, ch†ng h(n như các chương
trình mô phmng, trình biên d"ch, trình hPp d"ch và g‡ r/i. •
Tiêu chu@n thA ba là: KhN năng ñáp \ng v] s/ lưPng … hi n t(i cũng như … tương lai. ð/i
v7i m0t s/ nhà thi t k thì tiêu chunn này thQm chí còn quan treng hơn cN hai tiêu chunn trên. &
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM. CHƯƠNG 2
PH N C NG CHIP VI ðI U KHI N 8051 I. T NG QUÁT: 1. Gi i thi!u chung:
MCS 51 là h vi ñi u khi n c a hãng Intel. Vi m ch t ng quát c a h MCS 51 là chip 8051.
Chip 8051 có m't s) ñ*c trưng cơ b/n sau:
B' nh2 chương trình bên trong: 4 KB (ROM).
B' nh2 d; liB' nh2 chương trình bên ngoài: 64 KB (ROM).
B' nh2 d; li4 port xuAt nhBp (I/O port) 8 bit. 2 b' ñCnh thDi 16 bit. M ch giao tiEp n)i tiEp.
B' xF lý bit (thao tác trên các bit riêng l ).
210 vC trí nh2 ñưIc ñCnh ñCa chJ, mLi vC trí 1 bit. Nhân / Chia trong 4 Ps.
Ngoài ra, trong h MCS 51 còn có m't s) chip vi ñi u khi n khác có cAu trúc tương ñương như: Chip ROM trong RAM trong B. ñ0nh th1i 8031 0 KB 128 byte 2 8032 0 KB 256 byte 3 8051 4 KB PROM 128 byte 2 8052 8 KB PROM 256 byte 3 8751 4 KB UV EPROM 128 byte 2 8752 8 KB UV EPROM 256 byte 3 8951 4 KB FLASH ROM 128 byte 2 8952 8 KB FLASH ROM 256 byte 3
2. Các phiên b5n c6a chip vi ñi9u khi;n 8051: 2.1 B. vi ñi9u khi;n 8031:
8031 là m't phiên b/n khác c a h 8051. Chip này thưDng ñưIc coi là 8051 không có ROM trên
chip. ð có th dùng ñưIc chip này cbn ph/i b sung thêm ROM ngoài chca chương trình cbn thiEt cho
8031. 8051 có chương trình ñưIc chca d ROM trên chip bC gi2i h n ñEn 4KB, còn ROM ngoài c a
8031 thì có th lên ñEn 64KB. Tuy nhiên, ñ có th truy cBp hEt b' nh2 ROM ngoài thì cbn dùng thêm
hai c ng (Port 0 và Port 2) , do vBy chJ còn l i có hai c ng (Port 1 và Port 3) ñ sF dfng. Nhgm khhc
phfc vAn ñ này, chúng ta có th b sung thêm c ng vào/ra cho 8031. 2.2 B. vi ñi9u khi;n 8052:
8052 là m't phiên b/n c a h 8051. 8052 có tAt c/ các thông s) ki thuBt c a 8051, ngoài ra còn
có thêm 128 byte RAM, 4KB ROM và m't b' ñCnh thDi n;a. Như vBy, 8052 có t ng c'ng 256 byte
RAM, 8KB ROM và ba b' ñCnh thDi. Giáo trình Vi x* lý. 8 Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM. ð=c tính k? thu@t 8031 8051 8052 ROM trên chip (KB) 0 4 8 RAM trên chip (byte) 128 128 256 B$ ñ&nh th'i 2 2 3 Chân vào/ra 32 32 32 C*ng n+i ti,p 1 1 1 Ngu/n ng0t 5 5 6
Như b/ng thông s) trên ta thAy 8051 là m't trưDng hIp riêng c a 8052. M i chương trình viEt
cho 8051 ñ u có th ch y ñưIc trên 8052 nhưng ñi u ngưIc l i có th là không ñúng. 2.3 B. vi ñi9u khi;n 8751:
Chip 8751 chJ có 4KB b' nh2 UV EPROM trên chip. ð sF dfng chip này cbn ph/i có thiEt bC
lBp trình PROM và thiEt bC xoá UV EPROM. Do ROM trên chip c a 8751 là UV EPROM, nên cbn
ph/i mAt kho/ng 20 phút ñ xoá 8751 trư2c khi ñưIc lBp trình. Vì ñây là quá trình mAt nhi u thDi gian
nên nhi u nhà s/n xuAt ñã cho ra phiên b/n Flash ROM và UV RAM. 2.4
B. vi ñi9u khi;n AT8951 c6a Atmel Corporation:
AT8951 là phiên b/n 8051 có ROM trên chip là b' nh2 Flash. Phiên b/n này rAt thích hIp cho
các cng dfng nhanh vì b' nh2 Flash có th ñưIc xóa trong vài giây. Dĩ nhiên là ñ dùng AT8951 cbn
ph/i có thiEt bC lBp trình PROM hL trI b' nh2 Flash nhưng không cbn ñEn thiEt bC xóa ROM vì b' nh2
Flash ñưIc xóa bgng thiEt bC lBp trình PROM. ð tim't phiên b/n c a AT8951 có th ñưIc lBp trình qua c ng COM c a máy tính PC và như vBy sl không
cbn ñEn thiEt bC lBp trình PROM. Ký hi!u ROM RAM I/O Timer NgIt Vcc SK chân IC AT89C51 4KB 128 32 2 5 5V 40 AT89LV51 4KB 128 32 2 5 3V 40 AT89C1051 1KB 64 15 1 3 3V 20 AT89C2051 2KB 128 15 2 5 3V 20 AT89C52 8KB 256 32 3 6 5V 40 AT89LV52 8KB 256 32 3 6 3V 40 2.5
B. vi ñi9u khi;n DS5000 c6a Dallas Semiconductor:
M't phiên b/n ph biEn khác n;a c a 8051 là DS5000 c a hãng Dallas Semiconductor. B' nh2
ROM trên chip c a DS5000 là NV RAM. DS5000 có kh/ năng n p chương trình vào ROM trên chip
trong khi nó vnn d trong h< th)ng mà không cbn ph/i lAy ra. Cách thoc hiGiáo trình Vi x* lý. 9 Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
c a máy tính PC. ðây là m't ñi m m nh rAt ñưIc ưa chu'ng. Ngoài ra, NV RAM còn có ưu viphép thay ñ i n'i dung RAM theo tqng byte mà không cbn ph/i xóa hEt trư2c khi lBp trình như b' nh2 EPROM. Ký hi!u ROM RAM I/O Timer NgIt Vcc SK chân IC DS500098 8KB 128 32 2 6 5V 40 DS5000932 32KB 128 32 2 6 5V 40 DS5000T98 8KB 128 32 2 6 5V 40 DS5000T932 32KB 128 32 2 6 5V 40
ði m ñ*c bithêm m't ñtng ht thDi gian thoc (RTC: Real Time Clock) bên trong. Lưu ý ñtng ht thDi gian thoc RTC
hoàn toàn khác v2i b' ñCnh thDi Timer. RTC t o và lưu gi; thDi gian c a ngày (gi'/phút/giây) và ngày
tháng (ngày/tháng/năm) trên thoc tE ngay c/ khi không có ngutn cung cAp. 2.6
B. vi ñi9u khi;n P89V51xx c6a Philips Corporation:
ðây là m't phiên b/n c/i tiEn sF dfng CPU là b' vi ñi u khi n 80C51 v2i nhi u tính năng vưIt
tr'i: dung lưIng ROM/RAM trên chip rAt l2n, 3 Timer 16 bit + 1 Watch dog Timer, 2 thanh ghi DPTR,
8 ngutn nght, PWM (Pulse Width Modulator), SPI (Serial Peripheral Interface) và ñ*c bichương trình trên chip có tính năng ISP (In9System Programming) và IAP (In9Application Programming),… II. CÁC CHÂN CSA CHIP 8051:
1. Sơ ñU khKi và chWc năng các khKi c6a chip 8051: Giáo trình Vi x* lý. 10 Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
CPU (Central Processing Unit): ðơn vC xF lý trung tâm → tính toán và ñi u khi n quá
trình ho t ñ'ng c a h< th)ng.
OSC (Oscillator): M ch dao ñ'ng → t o tín hichip ho t ñ'ng.
Interrupt control: ði u khi n nght → nhBn tín hib' ñCnh thDi (Timer 0, Timer 1) và tq c ng n)i tiEp (Serial port), lbn lưIt ñưa các tín hiCPU ñ xF lý.
Other registers: Các thanh ghi khác → lưu tr; d; lilàm viRAM (Random Access Memory): B' nh2 d; liROM (Read Only Memory): B' nh2 chương trình trong chip → lưu tr; chương trình ho t ñ'ng c a chip.
I/O ports (In/Out ports): Các port xuAt/nhBp → ñi u khi n vid ng song song gi;a trong và ngoài chip thông qua các port P0, P1, P2, P3.
Serial port: Port n)i tiEp → ñi u khi n vitrong và ngoài chip thông qua các chân TxD, RxD.
Timer 0, Timer 1: B' ñCnh thDi 0, 1 → dùng ñ ñCnh thDi gian ho*c ñEm so kixung) thông qua các chân T0, T1.
Bus control: ði u khi n bus → ñi u khi n ho t ñ'ng c a h< th)ng bus và vithông tin trên h< th)ng bus.
Bus system: H< th)ng bus → liên kEt các kh)i trong chip l i v2i nhau.
2. Sơ ñU chân và chWc năng các chân c6a chip 8051: Giáo trình Vi x* lý. 11 Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM. 2.1. Port 0:
Port 0 (P0.0 – P0.7) có s) chân tq 32 – 39. Port 0 có hai chcc năng: • Port xuAt nhBp d; li•
Bus ñCa chJ byte thAp và bus d; lingoài.
Lưu ý: Khi Port 0 ñóng vai trò là port xuDt nhEp dF li!u thì phGi s* dHng các ñi!n trI kéo lên bên ngoài.
y chE ñ' m*c ñCnh (khi reset) thì các chân Port 0 (P0.0 9 P0.7) ñưIc cAu hình là port xuDt
d; licao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; libày O phPn k, ti,p).
Khi lBp trình cho ROM trong chip thì Port 0 ñóng vai trò là ngõ vào c a d; li(xem sách “HS vi ñiKu khiTn 8051” trang 3339352). 2.2. Port 1:
Port 1 (P1.0 – P1.7) có s) chân tq 1 – 8. Port 1 có m't chcc năng: • Port xuAt nhBp d; lingoài.
y chE ñ' m*c ñCnh (khi reset) thì các chân Port 1 (P1.0 – P1.7) ñưIc cAu hình là port xuDt
d; licao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; libày O phPn k, ti,p).
Khi lBp trình cho ROM trong chip thì Port 1 ñóng vai trò là ngõ vào c a ñCa chJ byte thAp
(A0 – A7) (xem sách “HS vi ñiKu khiTn 8051” trang 3339352). 2.3. Port 2:
Port 2 (P2.0 – P2.7) có s) chân tq 21 – 28. Port 2 có hai chcc năng: • Port xuAt nhBp d; li•
Bus ñCa chJ byte cao (A8 – A15) → có sF dfng b' nh2 ngoài.
y chE ñ' m*c ñCnh (khi reset) thì các chân Port 2 (P2.0 – P2.7) ñưIc cAu hình là port xuDt
d; licao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; libày O phPn k, ti,p).
Khi lBp trình cho ROM trong chip thì Port 2 ñóng vai trò là ngõ vào c a ñCa chJ byte cao (A8 – A11) và các tín hi2.4. Port 3:
Port 3 (P3.0 – P3.7) có s) chân tq 10 – 17. Port 3 có hai chcc năng: •
Port xuAt nhBp d; lichcc năng ñ*c bi•
Các tín hiy chE ñ' m*c ñCnh (khi reset) thì các chân Port 3 (P3.0 – P3.7) ñưIc cAu hình là port xuDt
d; licao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; libày O phPn k, ti,p). Giáo trình Vi x* lý. 12 Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
Khi lBp trình cho ROM trong chip thì Port 3 ñóng vai trò là ngõ vào c a các tín hikhi n (xem sách “HS vi ñiKu khiTn 8051” trang 3339352).
Chcc năng c a các chân Port 3: Bit Tên ðCa chJ bit Chcc năng P3.0 RxD B0H Chân nhBn d; liP3.1 TxD B1H Chân phát d; liP3.2 INT0\ B2H Ngõ vào nght ngoài 0. P3.3 INT1\ B3H Ngõ vào nght ngoài 1. P3.4 T0 B4H
Ngõ vào c a b' ñCnh thDi/ñEm 0. P3.5 T1 B5H
Ngõ vào c a b' ñCnh thDi/ñEm 1. P3.6 WR\ B6H
ði u khi n ghi vào RAM ngoài. P3.7 RD\ B7H
ði u khi n ñ c tq RAM ngoài. 2.5. Chân PSEN\:
PSEN (Program Store Enable): cho phép b' nh2 chương trình, chân s) 29. Chcc năng: • Là tín hi•
Là tín hiPSEN\ = 0 → trong thDi gian CPU tìm n p lPSEN\ = 1 → CPU sF dfng ROM trong (không sW dXng ROM ngoài).
Khi sF dfng b' nh2 chương trình bên ngoài, chân PSEN\ thưDng ñưIc n)i v2i chân OE\ c a
ROM ngoài ñ cho phép CPU ñ c mã l2.6. Chân ALE:
ALE (Address Latch Enable): cho phép ch)t ñCa chJ, chân s) 30. Chcc năng: •
Là tín hibyte thAp và bus d; li•
Là tín hiALE = 0 → trong thDi gian bus AD0 AD7 ñóng vai trò là bus D0 D7.
ALE = 1 → trong thDi gian bus AD0 AD7 ñóng vai trò là bus A0 A7.
Khi lBp trình cho ROM trong chip thì chân ALE ñóng vai trò là ngõ vào c a xung lBp trình
(PGM\) (xem sách “HS vi ñiKu khiTn 8051” trang 3339352). Lưu ý: fOSC f
→ có th dùng làm xung clock cho các m ch khác. = ALE 6
fALE (MHz): tbn s) xung t i chân ALE.
fOSC (MHz): tbn s) dao ñ'ng trên chip (tbn s) th ch anh).
Khi l(xem gi\n ñ/ trang 38939 sách “HS vi ñiKu khiTn 8051”). 2.7. Chân EA\:
EA (External Access): truy xuAt ngoài, chân s) 31. Chcc năng: •
Là tín hiGiáo trình Vi x* lý. 13 Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM. •
Là tín hiEA\ = 0 → Chip 8051 sF dfng chương trình c a ROM ngoài.
EA\ = 1 → Chip 8051 sF dfng chương trình c a ROM trong.
Khi lBp trình cho ROM trong chip thì chân EA ñóng vai trò là ngõ vào c a ñi(Vpp = 12V – 12,5V cho hS 89xx; 21V cho hS 80xx, 87xx) (xem sách “HS vi ñiKu khiTn 8051” trang 3339352).
Lưu ý: Chân EA\ ph/i ñưIc n)i lên Vcc (n,u sW dXng chương trình c`a ROM trong) ho*c n)i
xu)ng GND (n,u sW dXng chương trình c`a ROM ngoài), không bao giD ñưIc phép b~ tr)ng chân này. 2.8. Chân XTAL1, XTAL2:
XTAL (Crystal): tinh th th ch anh, chân s) 18 19. Chcc năng: •
Dùng ñ n)i v2i th ch anh ho*c m ch dao ñ'ng t o xung clock bên ngoài, cung cAp tín hi•
XTAL1 → ngõ vào m ch t o xung clock trong chip. •
XTAL2 → ngõ ra m ch t o xung clock trong chip. Lưu ý: f MHz 12 TYP = fTYP (MHz): tbn s) danh ñCnh. 2.9. Chân RST:
RST (Reset): thiEt lBp l i, chân s) 9. Chcc năng: • Là tín hi•
Là tín hiRST = 0 → Chip 8051 ho t ñ'ng bình thưDng.
RST = 1 → Chip 8051 ñưIc thiEt l*p l i tr ng thái ban ñbu. Lưu ý: t 12 ≥ 2 × T Re set Machine T = Machine fOSC tRESET (Ps): thDi gian reset. fOSC (MHz): tbn s) th ch anh. TMACHINE (Ps): chu kỳ máy. Giáo trình Vi x* lý. 14 Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
Ví dX: Xác ñCnh chu kỳ máy và thDi gian reset tương cng cho tqng trưDng hIp fOSC = 11,0592MHz, fOSC = 12MHz và fOSC = 16MHz. Gi\i •
fOSC = 11,0592MHz → TMACHINE = 1,085Ps và tRESET ≥ 2,17Ps. •
fOSC = 12MHz → TMACHINE = 1Ps và tRESET ≥ 2Ps. •
fOSC = 16MHz → TMACHINE = 0,75Ps và tRESET ≥ 1,5Ps 2.10. Chân Vcc, GND:
Vcc, GND: ngutn cAp ñiChcc năng: • Cung cAp ngutn ñi• Vcc = +5V ± 10% và GND = 0V.
III. CcU TRÚC CÁC PORT XUcT NHeP CHIP 8051:
Kh/ năng fanout (s) lưIng t/i ñbu ra) c a các tqng chân port chip 8051 là: • Port 0: 8 t/i TTL. • Port 1: 4 t/i TTL. • Port 2: 4 t/i TTL. • Port 3: 4 t/i TTL. Lưu ý: •
Khi Port 0 ñóng vai trò là port xuDt nhEp thì sl không có ñiñó ngư i s* dHng c n thêm vào ñi!n trI kéo lên bên ngoài (xem Hình III.1). •
y chE ñ' m*c ñCnh (khi reset) thì tAt c/ các chân c a các port (P0 – P3) ñưIc cAu hình là port xuDt d; li•
Mu)n các chân port c a chip 8015 làm port nhEp d; libgng cách ghi mcc logic cao (mcc 1) ñEn tAt c/ các bit (các chân) c a port trư2c khi bht ñbu nhBp d; liGiáo trình Vi x* lý. 15 Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM. •
Các chân trong cùng m't port không nhAt thiEt ph/i có cùng ki u cAu hình (port xuJt hoac
port nhcp). Nghĩa là trong cùng m't port có th có chân dùng ñ nhBp d; lixuAt d; liQuá trình ghi chân port (xuJt dd lieu ra chân port).
Quá trình ñ c chân port (nhcp dd lieu tf chân port).
Quá trình ñ c b' ch)t (kiTm tra dd lieu tgi chân port). Giáo trình Vi x* lý. 16 Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
Lưu ý: Vivào lkhông mong mu)n này là do quá trình ñ c d; litrình ñSc chân port và quá trình ñSc b$ ch+t.
Quá trình ñOc chân port: Khi ta sF dfng các lñưIc sau khi thoc hiQuá trình ñOc bW chXt: Khi ta sF dfng các lDEC, DJNZ, JBC, CLR bit, SETB bit, MOV bit. D; lidF li!u hi!n t0i I các bW chXt (là các dd lieu ñã ñưMc ghi ra port tgi th'i ñiTm trưjc ñó bOi quá trình
ghi chân port), chc không ph/i là d; liquá trình ñ c mà d; liñưIc cBp nhBt.
IV. T CH C Bf NHg CSA CHIP 8051:
B' vi xF lý → có không gian b' nh2 chung cho d; li→ chương trình và d; liB' vi ñi u khi n → có không gian b' nh2 riêng cho d; li→ chương trình và d; liT chcc b' nh2 c a chip 8051: Giáo trình Vi x* lý. 17 Biên so0n: Ph0m Quang Trí