Professional Documents
Culture Documents
Chuong1 - Bo Vi Dieu Khien8051
Chuong1 - Bo Vi Dieu Khien8051
Hîp
Ch−¬ng 1
bé vi ®iÒu khiÓn 8051
Bus d÷ liÖu
CPU
CPU RAM ROM
Cæng
Bé RAM ROM I/O Timer COM
vi xö lý Port nèi
®a n¨ng tiÕp Cæng
I/O Timer COM
nèi
tiÕp
Bus ®Þa chØ
(a) HÖ vi xö lý ®a n¨ng (b) Bé vi ®iÒu khiÓn
nhí ngoµi, cæng vµo ra hoÆc bé ®Þnh thêi ®Ó cho hÖ thèng ho¹t ®éng. Bé vi ®iÒu
khiÓn víi mét dung l−îng RAM, ROM trªn chip vµ cæng vµo - ra ®· trë nªn rÊt
thÝch hîp trong nhiÒu øng dông yªu cÇu gi¸ thµnh h¹ vµ kh«ng gian sö dông h¹n
chÕ. Nh÷ng øng dông, vÝ dô nh− bé ®iÒu khiÓn TV tõ xa, th× kh«ng cÇn c«ng suÊt
tÝnh to¸n lín nh− cña bé vi xö lý 486, thËm chÝ kh«ng cÇn ®Õn møc 8086. Mét sè
øng dông l¹i ®ßi hái kh«ng gian nhá, c«ng suÊt tiªu tèn vµ gi¸ thµnh thÊp. Mét sè
øng dông kh¸c chØ cÇn c¸c thao t¸c vµo - ra ®Ó ®äc tÝn hiÖu vµ t¾t - më nh÷ng bit
nhÊt ®Þnh. Tõ nh÷ng yªu cÇu ®a d¹ng ®ã, mét sè nhµ s¶n xuÊt ®· ®i xa h¬n lµ tÝch
hîp vµo trong bé vi ®iÒu khiÓn c¶ bé chuyÓn ®æi ADC vµ mét sè thiÕt bÞ ngo¹i vi
kh¸c.
B¶ng 1.1: Mét sè s¶n phÈm nhóng sö dông bé vi ®iÒu khiÓn
§å ®iÖn trong nhµ M¸y tÝnh gia ®×nh Nh¹c cô ®iÖn tö
M¸y ®µm tho¹i Tivi M¸y kh©u
M¸y ®iÖn tho¹i TruyÒn h×nh c¸p §iÒu khiÓn ¸nh s¸ng
gia ®×nh
ThiÕt bÞ
®iÖn tö, tr¹m dÞch vô m¹ng hoÆc tr¹m ®Çu cuèi Internet. M¸y tÝnh cã thÓ ch¹y
nhiÒu ch−¬ng tr×nh phÇn mÒm kh¸c nhau. DÜ nhiªn, m¸y tÝnh PC thùc hiÖn ®−îc
nhiÒu c«ng viÖc nh− vËy lµ do cã bé nhí RAM ®ñ lín vµ mét hÖ ®iÒu hµnh. M¸y
tÝnh PC ×86 th−êng cã hoÆc ®−îc nèi tíi c¸c s¶n phÈm nhóng kh¸c nhau, ch¼ng
h¹n nh− bµn phÝm, m¸y in, modem, bé ®iÒu khiÓn ®Üa, thÎ ©m, bé ®iÒu khiÓn CD-
ROM, chuét v.v..... Mçi thiÕt bÞ ngo¹i vi ®Òu cã mét bé vi ®iÒu khiÓn ®Ó thùc
hiÖn chØ mét c«ng viÖc. VÝ dô, bªn trong chuét cã bé vi ®iÒu khiÓn ®Ó thùc thi
c«ng viÖc x¸c ®Þnh vÞ trÝ chuét vµ göi th«ng tin ®Õn m¸y tÝnh. B¶ng 1.1 liÖt kª mét
sè s¶n phÈm nhóng.
4.1.3 øng dông nhóng cña PC×86
Thùc tÕ, c¸c bé vi ®iÒu khiÓn lµ gi¶i ph¸p thÝch hîp cho nhiÒu hÖ thèng
nhóng. Tuy nhiªn, trong nhiÒu tr−êng hîp, bé vi ®iÒu khiÓn kh«ng ®ñ kh¶ n¨ng
®¸p øng nhiÖm vô ®Æt ra. V× lý do ®ã mµ nh÷ng n¨m gÇn ®©y, nhiÒu nhµ s¶n xuÊt
bé vi xö lý ®a n¨ng, ch¼ng h¹n nh− Intel, Motorla, AMD (Advanced Micro
Devices, Inc...) vµ Cyric (mµ b©y giê lµ mét bé phËn cña National Seniconductor,
Inc) ®· h−íng tíi bé vi xö lý cao cÊp cho thÞ tr−êng nhóng. Intel, AMD vµ Cyrix
s¶n xuÊt c¸c bé xö lý ®a n¨ng cho c¶ thÞ tr−êng nhóng vµ thÞ tr−êng m¸y tÝnh PC
®Ó bµn, cßn Motorola vÉn duy tr× hä vi xö lý 68000 chñ yÕu cho c¸c hÖ thèng
nhóng cao cÊp vµ Apple hiÖn kh«ng cßn dïng 680× cho m¸y tÝnh Macintosh n÷a.
Trong nh÷ng n¨m ®Çu thËp kû 90 cña thÕ kû 20, m¸y tÝnh Apple b¾t ®Çu sö dông
c¸c bé vi xö lý Power PC (nh− 603, 604, 620 v.v...) thay cho 680×0. Bé vi xö lý
Power PC lµ kÕt qu¶ liªn kÕt gi÷a IBM vµ Motorola vµ nã ®−îc h−íng cho thÞ
tr−íng nhóng cao cÊp còng nh− cho c¶ thÞ tr−êng m¸y tÝnh PC. CÇn l−u ý r»ng,
khi mét bé vi xö lý ®a n¨ng ®−îc h−íng cho thÞ tr−êng nhóng th× bé vi xö lý ®ã
cÇn tèi −u ho¸ cho c¸c øng dông hÖ nhóng. V× lý do ®ã mµ c¸c bé vi xö lý nµy
th−êng ®−îc gäi lµ c¸c bé xö lý nhóng cao cÊp. Do vËy, thuËt ng÷ bé bé xö lý
nhóng vµ bé vi ®iÒu khiÓn vµ th−êng ®−îc dòng lÉn.
Mét trong nh÷ng yªu cÇu kh¾t khe cña hÖ nhóng lµ gi¶m thiÓu c«ng suÊt tiªu
thô vµ gi¶m kh«ng gian sö dông. Bé xö lý nhóng dùa trªn ×86 vµ 680 ×0, kÓ c¶
CC
khi bæ xung thªm cæng vµo - ra, cæng COM vµ bé nhí ROM trªn chip th× ®Òu cã
c«ng suÊt tiªu thô thÊp. C¸c bé xö lý nhóng cao cÊp cã xu h−íng tÝch hîp thªm
chøc n¨ng trªn chip CPU vµ cho phÐp ng−êi thiÕt kÕ chän nh÷ng ®Æc tÝnh nµo hä
muèn sö dông. ThiÕt kÕ hÖ thèng PC hiÖn còng ®ang theo xu h−íng nµy. Th«ng
th−êng, khi x©y dùng bo m¹ch chñ PC, ta cÇn cã CPU, bé chip-set chøa cæng
vµo - ra, bé ®iÒu khiÓn cache, bé nhí Flash ROM cã BIOS vµ cuèi cïng lµ bé nhí
cache thø cÊp. Nh÷ng thiÕt kÕ míi, vÝ dô, Cyrix tuyªn bè r»ng hä ®ang lµm viÖc
trªn mét chip chøa toµn bé mét m¸y tÝnh PC ngo¹i trõ DRAM, hiÖn còng ®ang
khÈn tr−¬ng ®i vµo s¶n xuÊt c«ng nghiÖp. Cã lÏ trong mét t−¬ng lai gÇn chóng ta
sÏ ®−îc nh×n thÊy m¸y tÝnh PC n»m gän trªn mét chip.
HiÖn nay, MS-DOS vµ Windows ®ang lµ chuÈn cho nhiÒu hÖ m¸y tÝnh vµ c¶
c¸c hÖ nhóng PC ×86 . Trong nhiÒu tr−êng hîp, dïng m¸y tÝnh PC ×86 cho c¸c
øng dông nhóng cao cÊp lµ kh«ng tiÕt kiÖm, song l¹i cho phÐp rót ng¾n ®¸ng kÓ
thêi gian ph¸t triÓn do cã s½n th− viÖn phÇn mÒm phong phó viÕt trªn nÒn DOS vµ
Windows. §©y lµ mét vÊn ®Ò quan träng cÇn l−u ý khi x©y dùng hÖ nhóng trong
thùc tÕ.
1.1.4 Lùa chän bé vi ®iÒu khiÓn
Cã 4 hä vi ®iÒu khiÓn 8 bit chÝnh, ®ã lµ: 6811 cña Motorola, 8051 cña Intel
Z8 cña Zilog vµ PIC 16× cña Microchip Technology. Mçi lo¹i trªn ®Òu cã mét
tËp lÖnh vµ thanh ghi riªng nªn chóng kh«ng t−¬ng thÝch lÉn nhau. Còng cßn cã
c¸c bé vi ®iÒu khiÓn 16 bit vµ 32 bit. VËy tiªu chuÈn ®Ó lùa chän bé vi ®iÒu khiÓn
khi thiÕt kÕ lµ g×? Cã ba tiªu chuÈn chÝnh lµ: 1) §¸p øng yªu cÇu tÝnh to¸n mét
c¸ch hiÖu qu¶ vµ kinh tÕ. 2)Cã s½n c¸c c«ng cô ph¸t triÓn phÇn mÒm, ch¼ng h¹n
nh− c¸c tr×nh biªn dÞch, tr×nh hîp dÞch vµ gì rèi. 3) Nguån cung cÊp bé vi ®iÒu
khiÓn cã nhiÒu vµ tin cËy.
Chóng ta sÏ nghiªn cøu râ h¬n vÒ c¸c tiªu chuÈn nµy.
1. Tiªu chuÈn ®Çu tiªn khi lùa chän mét bé vi ®iÒu khiÓn ®ã lµ ph¶i ®¸p øng yªu
cÇu vÒ tÝnh to¸n mét c¸ch hiÖu qu¶ vµ kinh tÕ. Do vËy, tr−íc hÕt cÇn xem xÐt
bé vi ®iÒu khiÓn 8 bit, 16 bit hay 32 bit lµ thÝch hîp. Mét sè tham sè kü thuËt
cÇn ®−îc c©n nh¾c khi lùa chän lµ:
a. Tèc ®é: Tèc ®é lín nhÊt mµ bé vi ®iÒu khiÓn hç trî lµ bao nhiªu.
b. KiÓu ®ãng vá: Lµ kiÓu 40 ch©n DIP, kiÓu QFP hay lµ kiÓu ®ãng vá kh¸c
(DIP - vá d¹ng 2 hµng ch©n. QFP lµ vá vu«ng dÑt)? KiÓu ®ãng vá quan
träng khi cã yªu cÇu vÒ kh«ng gian, kiÓu l¾p r¸p vµ t¹o mÉu thö cho s¶n
phÈm cuèi cïng.
c. C«ng suÊt tiªu thô: Lµ mét tiªu chuÈn cÇn ®Æc biÖt l−u ý nÕu s¶n phÈm
dïng pin hoÆc ¾c quy.
d. Dung l−îng bé nhí RAM vµ ROM trªn chip.
8051 ®· trë nªn phæ biÕn sau khi Intel cho phÐp c¸c nhµ s¶n xuÊt kh¸c s¶n
xuÊt vµ b¸n bÊt kú d¹ng biÕn thÓ nµo cña 8051 mµ hä muèn víi ®iÒu kiÖn hä ph¶i
®Ó m· ch−¬ng tr×nh t−¬ng thÝch víi 8051. Tõ ®ã dÉn ®Õn sù ra ®êi nhiÒu phiªn
b¶n cña 8051 víi c¸c tèc ®é kh¸c nhau vµ dung l−îng ROM trªn chip kh¸c nhau.
Tuy nhiªn, ®iÒu quan träng lµ mÆc dï cã nhiÒu
biÕn thÓ cña 8051 (nh− kh¸c nhau vÒ tèc ®é vµ B¶ng 1.2: Th«ng sè cña 8051
UU
dung l−îng nhí ROM trªn chip), nh−ng tÊt c¶ §Æc tÝnh Sè l−îng
c¸c lÖnh ®Òu t−¬ng thÝch víi 8051 ban ®Çu. ROM 4K byte
§iÒu nµy cã nghÜa lµ, nÕu ch−¬ng tr×nh ®−îc RAM 128 byte
viÕt cho mét phiªn b¶n 8051 nµo ®ã th× còng sÏ Bé ®Þnh thêi 2
ch¹y ®−îc víi mäi phiªn b¶n kh¸c kh«ng phô Ch©n vao/ra 32
thuéc vµo h·ng s¶n xuÊt. Cæng nèi tiÕp 1
1.2.2 Bé vi ®iÒu khiÓn 8051 Nguån ng¾t 6
Bé vi ®iÒu khiÓn 8051 lµ thµnh viªn ®Çu tiªn cña hä 8051. H·ng Intel ký hiÖu
lµ MCS51. B¶ng 1.2 giíi thiÖu mét sè th«ng sè kü thuËt cña 8051.
Ng¾t ngoµi
ROM
On-Chip ETC
Vµo bé ®Õm
§iÒu khiÓn Timer 0
ch−¬ng RAM
ng¾t
tr×nh On-Chip Timer 1
CPU
P0 P1 P2 P3 TXD RXD
§Þa chØ/D÷ liÖu
Nh− thÊy tõ B¶ng 1.3, 8051 lµ mét tr−êng hîp riªng cña 8052. Mäi ch−¬ng
tr×nh viÕt cho 8051 ®Òu ch¹y ®−îc trªn 8052, nh−ng ®iÒu ng−îc l¹i lµ kh«ng
®óng.
Bé vi ®iÒu khiÓn 8031
8031 lµ mét thµnh viªn kh¸c cña hä 8051. Chip nµy th−êng ®−îc coi lµ 8051
kh«ng cã ROM trªn chip. §Ó cã thÓ dïng ®−îc chip nµy cÇn ph¶i bæ xung ROM
ngoµi chøa ch−¬ng tr×nh cÇn thiÕt cho 8031. 8051 cã ch−¬ng tr×nh ë ROM trªn
chip bÞ giíi h¹n ®Õn 4K byte, cßn ROM ngoµi cña 8031 th× cã thÓ lªn ®Õn 64K
byte. Tuy nhiªn ®Ó cã thÓ truy cËp hÕt bé nhí ROM ngoµi cÇn dïng thªm 2 cæng,
do vËy chØ cßn l¹i 2 cæng ®Ó sö dông . Nh»m kh¾c phôc vÊn ®Ò nµy, chóng ta cã
thÓ bæ xung thªm cæng vµo - ra cho 8031. Chi tiÕt h¬n B¹n cã thÓ tham kh¶o
ch−¬ng 14.
1.2.4. C¸c phiªn b¶n 8051 c¶i biªn
8051 lµ thµnh viªn phæ biÕn nhÊt cña hä 8051, tuy nhiªn chóng ta sÏ kh«ng
thÊy nguyªn phÇn ký hiÖu sè "8051" trªn chip. Së dÜ nh− vËy lµ do 8051 cã nhiÒu
phiªn b¶n, vÝ dô víi c¸c kiÓu bé nhí kh¸c nhau nh− UV-PROM, Flash vµ NV-
RAM vµ chóng ®Òu ®−îc thÓ hiÖn ë ký hiÖu linh kiÖn. VÝ dô, 8051 víi bé nhí
UV-PROM ®−îc ký hiÖu lµ 8751. Phiªn b¶n Flash ROM còng ®−îc nhiÒu h·ng
s¶n xuÊt, ch¼ng h¹n, cña Atmel Corp cã tªn gäi lµ AT89C51. Cßn phiªn b¶n NV-
RAM cña Dalas Semi-Conductor th× gäi lµ DS5000. Ngoµi ra cßn cã phiªn b¶n
OTP (kh¶ tr×nh mét lÇn) còng ®−îc nhiÒu h·ng s¶n xuÊt.
Bé vi ®iÒu khiÓn 8751
Chip 8751 chØ cã 4K byte bé nhí UV-EPROM trªn chip. §Ó sö dông chip
nµy cÇn cã bé ®èt PROM vµ bé xo¸ UV-EPROM. Do ROM trªn chip cña 8751 lµ
UV-EPROM, nªn cÇn ph¶i mÊt 20 phót ®Ó xo¸ 8751 tr−íc khi ®−îc lËp tr×nh. V×
®©y lµ qu¸ tr×nh mÊt nhiÒu thêi gian nªn nhiÒu nhµ s¶n xuÊt ®· cho ra m¾t phiªn
b¶n Flash Rom vµ UV-RAM. Ngoµi ra cßn cã nhiÒu phiªn b¶n víi c¸c tèc ®é
kh¸c nhau.
Bé vi ®iÒu khiÓn AT8951 cña Atmel Corporation
AT8951 lµ phiªn b¶n 8051 cã ROM trªn chip lµ bé nhí Flash. Phiªn b¶n nµy
rÊt thÝch hîp cho c¸c øng dông nhanh v× bé nhí Flash cã thÓ ®−îc xo¸ trong vµi
gi©y (chø kh«ng ph¶i 20 phót nh− 8751). DÜ nhiªn lµ ®Ó dïng AT8951 cÇn ph¶i
cã mét bé ®èt ROM hç trî bé nhí Flash, song l¹i kh«ng cÇn bé xo¸ ROM v× bé
nhí Flash ®−îc xo¸ b»ng bé ®èt PROM. §Ó tiÖn sö dông, hiÖn nay h·ng Atmel
®ang nghiªn cøu mét phiªn b¶n cña AT 89C51 cã thÓ ®−îc lËp tr×nh qua cæng
COM cña m¸y tÝnh IBM PC vµ nh− vËy sÏ kh«ng cÇn bé ®èt PROM
B¶ng 1.4: C¸c phiªn b¶n cña 8051 cña Atmel (Flash ROM)
Ký hiÖu * P ROM RAM Ch©n I/O Timer Ng¾t Vcc
P §ãng vá
AT89C51 4K 128 32 2 6 5V 40
AT89LV51 4K 128 32 2 6 3V 40
AT89C1051 1K 64 15 1 3 3V 20
AT89C2051 2K 128 15 2 6 3V 20
AT89C52 8K 128 32 3 8 5V 40
AT89LV52 8K 128 32 3 8 3V 40
* Ch÷ C trong ký hiÖu AT89C51 lµ CMOS.
Th«ng sè vÒ kiÓu ®ãng vá vµ tèc ®é cña bé vi ®iÒu khiÓn còng ®−îc thÓ hiÖn
ë ký hiÖu. VÝ dô, tõ B¶ng 1.5, ch÷ “C” ®øng tr−íc sè 51 ë ký hiÖu AT 89C51 -
12PC lµ ®Ó chØ c«ng nghÖ CMOS (tiªu thô n¨ng l−îng thÊp), “12” ®Ó chØ tèc ®é
12 MHZ vµ “P” lµ kiÓu ®ãng vá DIP, vµ ch÷ “C” cuèi cïng lµ ký hiÖu cho th−¬ng
m¹i (ng−îc víi ch÷ “M” lµ qu©n sù ). AT89C51 - 12PC rÊt thÝch hîp cho c¸c thö
nghiÖm cña häc sinh, sinh viªn.
B¶ng 1.5: C¸c phiªn b¶n 8051 víi tèc ®é kh¸c nhau cña Atmel.
Ký hiÖu Tèc ®é Sè ch©n §ãng vá Môc ®Ých
AT89C51-12PC 42MHZ 40 DTP Th−¬ng m¹i
L−u ý ®ång hå thêi gian thùc RTC kh¸c víi bé ®Þnh thêi Timer. RTC t¹o vµ
l−u gi÷ thêi gian cña ngµy (giê, phót, gi©y) vµ ngµy th¸ng (ngµy, th¸ng, n¨m) kÓ
c¶ khi t¾t nguån.
Cßn cã nhiÒu phiªn b¶n DS5000 víi nh÷ng tèc ®é vµ kiÓu ®ãng gãi kh¸c
nhau nh− tr×nh bµy ë B¶ng 1.7. VÝ dô, DS5000-8-8 cã 8K NV-RAM vµ tèc ®é
8MHZ. Th«ng th−êng DS5000-8-12 hoÆc DS5000T-8-12 lµ thÝch hîp cho c¸c
nghiªn cøu, thö nghiÖm cña sinh viªn.
B¶ng 1.7:C¸c phiªn b¶n cña DS5000 víi c¸c tèc ®é kh¸c nhau
M· linh kiÖn NV- RAM Tèc ®é
DS5000-8-8 8K 8MHz
DS5000-8-12 8K 12MHz
DS5000-32-8 32K 8MHz
DS5000T-32-12 32K 8MHz (with RTC)