SlideShare a Scribd company logo
bé gi¸o dôc vµ ®µo t¹o
tr−êng ®¹i häc b¸ch khoa hµ néi
-----------------------------------------
luËn v¨n th¹c sü khoa häc
Nghiªn cøu, thiÕt kÕ hÖ ®iÒu hµnh trªn
bé vi ®iÒu khiÓn 8 bÝt
ngµnh: xö lý th«ng tin vµ truyÒn th«ng
M∙ sè:
vò trung kiªn
Ng−êi h−íng dÉn khoa häc: TS. NguyÔn Linh Giang
hµ néi 2006
-2-
Lêi cam ®oan
T«i xin cam ®oan b¶n luËn v¨n nµy lµ kÕt qu¶ nghiªn cøu cña b¶n th©n d−íi
sù h−íng dÉn cña TS. NguyÔn Linh Giang. NÕu cã g× sai ph¹m, t«i xin hoµn toµn
chÞu tr¸ch nhiÖm.
Ng−êi lµm cam ®oan
Vò Trung Kiªn
-3-
Môc lôc
Lêi cam ®oan.....................................................................................................2
Danh môc c¸c ký hiÖu, c¸c ch÷ viÕt t¾t ..........................................................5
Danh môc c¸c b¶ng ..........................................................................................6
Danh môc c¸c h×nh vÏ, ®å thÞ..........................................................................7
Lêi nãi ®Çu ........................................................................................................9
Ch−¬ng 1 - Tæng quan vÒ hÖ ®iÒu hµnh......................11
1.1. Kh¸i niÖm vÒ hÖ ®iÒu hµnh (OS-Operating System)................................. 11
1.1.1. Kh¸i niÖm................................................................................................. 11
1.1.2. Chøc n¨ng cña hÖ ®iÒu hµnh. ................................................................... 11
1.1.3. C¸c thµnh phÇn cña hÖ ®iÒu hµnh............................................................. 13
1.2. Qu¶n lý tiÕn tr×nh......................................................................................... 16
1.2.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh.............................................................. 16
1.2.2. Kh¸i niÖm vÒ tµi nguyªn “g¨ng” vµ ®o¹n tíi h¹n .................................... 17
1.2.3. HiÖn t−îng bÕ t¾c..................................................................................... 19
1.3. LËp lÞch cho CPU ......................................................................................... 20
1.3.1. Kh¸i niÖm giê CPU.................................................................................. 20
1.3.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU................................ 20
1.3.3. LËp lÞch cho CPU..................................................................................... 22
1.4. Qu¶n lý bé nhí ............................................................................................. 25
1.4.1. Yªu cÇu ph¶i qu¶n lý bé nhí ................................................................... 25
1.4.2. C¸c s¬ ®å qu¶n lý bé nhí......................................................................... 26
Ch−¬ng 2 - Vi ®iÒu khiÓn vµ ng«n ng÷ lËp tr×nh
cho vi ®iÒu khiÓn ......................................................................28
2.1. Vi ®iÒu khiÓn........................................................................................28
2.1.1. Vi xö lý vµ vi ®iÒu khiÓn.......................................................................... 28
2.1.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn............................................................ 30
2.1.3. C¸c bé ®Þnh thêi....................................................................................... 35
2.1.4. Bé xö lý ng¾t............................................................................................ 37
2.2. Ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn......................................................... 39
-4-
2.2.1. Tæng quan vÒ c¸c ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn. ......................... 39
2.2.2. Nh÷ng vÊn ®Ò víi ng«n ng÷ C viÕt cho c¸c bé vi ®iÒu khiÓn................... 42
Ch−¬ng 3 - thiÕt kÕ hÖ vi ®iÒu khiÓn ............................49
3.1. X¸c ®Þnh yªu cÇu thiÕt kÕ. ........................................................................... 50
3.2. Lùa chän cÊu h×nh cho hÖ thèng................................................................. 51
3.2.1. Lùa chän bé ®iÒu khiÓn trung t©m........................................................... 51
3.2.2. Giao diÖn ng−êi sö dông.......................................................................... 52
3.2.3. C¸c thiÕt bÞ m« pháng qu¸ tr×nh ho¹t ®éng cña tiÕn tr×nh. ...................... 53
3.3. ThiÕt kÕ m¹ch ®iÖn....................................................................................... 58
3.4. §o thö vµ kiÓm tra lçi.................................................................................. 59
Ch−¬ng 4 - ThiÕt kÕ hÖ ®iÒu hµnh.....................................60
4.1.1. Môc ®Ých vµ yªu cÇu thiÕt kÕ. .................................................................. 60
4.1.2. Môc ®Ých. ................................................................................................. 60
4.1.2. Yªu cÇu .................................................................................................... 63
4.2. Tr×nh tù thiÕt kÕ hÖ ®iÒu hµnh.................................................................... 64
4.3. X©y dùng c¸c tiÕn tr×nh. .............................................................................. 65
4.3.1. X©y dùng c¸c t¸c vô t−¬ng øng c¸c tiÕn tr×nh.......................................... 65
4.3.2. Gi¶i quyÕt bµi to¸n tµi nguyªn g¨ng ........................................................ 69
4.4. LËp lÞch cho CPU. ........................................................................................ 71
4.4.1. Sù kiÖn vµ chuyÓn tr¹ng th¸i gi÷a c¸c tiÕn tr×nh. ..................................... 71
4.4.2. LËp lÞch cho CPU..................................................................................... 80
4.5. Qu¶n lý bé nhí. ............................................................................................ 83
KÕt luËn vµ kiÕn nghÞ.....................................................................................86
Tµi liÖu tham kh¶o .........................................................................................87
-5-
Danh môc c¸c ký hiÖu, c¸c ch÷ viÕt t¾t
STT Ch÷ viÕt t¾t Ch÷ ®Çy ®ñ
1 FCFS First Come First Served
2 FIFO First In First Out
3 LIFO Last In First Out
4 MCS Micro Controller System
5 OS Operating System
6 RTOS Real Time Operating System
7 RR Round Robbin
8 SJF Shortest Job First
9 SRT Shortest Remain Time
10 uC Micro Controller
-6-
Danh môc c¸c b¶ng
B¶ng 1.1. Tr¹ng th¸i cña c¸c tiÕn tr×nh............................................................... 19
B¶ng 1.2. Thêi gian thùc hiÖn cña c¸c tiÕn tr×nh................................................ 25
B¶ng 1.3. Thêi gian chê cña c¸c tiÕn tr×nh......................................................... 25
B¶ng 2.1. Bé nhí d÷ liÖu tr a AT89S
ªn chÝp cñ 52 .............................................. 33
-7-
Danh môc c¸c h×nh vÏ, ®å thÞ
H×nh 1.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh........................................................ 17
H×nh 1.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU.......................... 20
H×nh 1.3. S¬ ®å thùc hiÖn tiÕn tr×nh ................................................................... 21
H×nh 1.4. S¬ ®å tæ chøc hµng ®îi c¸c tiÕn tr×nh ................................................. 22
H×nh 1.5. S¬ ®å Grant......................................................................................... 25
H×nh 2.1. S¬ ®å khèi cña bé vi ®iÒu khiÓn AT89S52......................................... 29
H×nh 2.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn ...................................................... 30
H×nh 2.3. S¬ ®å ghÐp nèi AT89S52 víi EPROM............................................... 31
H×nh 2.4. S¬ ®å ghÐp nèi AT89S52 víi RAM .................................................. 34
H×nh 2.5. Gi¶i m· ®Þa chØ cho c¸c vi m¹ch nhí ................................................. 34
H×nh 2.6. Bé nhí d÷ liÖu ®äc nh− bé nhí ch−¬ng tr×nh..................................... 35
H×nh 2.7. Ho¹t ®éng cña Timer0 vµ Timer1 ë chÕ ®é 1..................................... 36
H×nh 2.8. C¸c nguån ng¾t cña AT89S52............................................................ 38
H×nh 3.1. Tr×nh tù thiÕt kÕ phÇn cøng cho hÖ thèng.......................................... 49
H×nh 3.2. S¬ ®å khèi cña hÖ vi ®iÒu khiÓn ......................................................... 51
H×nh 3.3. GhÐp nèi vi ®iÒu khiÓn víi RAM ngoµi. ............................................ 52
H×nh 3.4. Giao diÖn ng−êi sö dông trªn hÖ vi ®iÒu khiÓn................................... 53
H×nh 3.5. HiÓn thÞ trªn LED 7 ®o¹n b»ng kü thuËt quÐt .................................... 54
H×nh 3.6. GhÐp nèi ma trËn LED trªn hÖ vi ®iÒu khiÓn ..................................... 57
H×nh 3.7. Nguyªn t¾c xÕp ch÷ trªn ma trËn LED............................................... 58
H×nh 4.1. C¸c t¸c vô ®−îc thùc hiÖn ®ång thêi (song song) .............................. 62
H×nh 4.2. C¸c t¸c vô ®−îc thùc hiÖn lu©n phiªn liªn tôc.................................... 62
H×nh 4.3. Gi¶n ®å xung trªn P1.......................................................................... 69
H×nh 4.4. Chèt l¹i gi¸ trÞ cña P1......................................................................... 70
-8-
H×nh 4.5. C¸c tiÕn tr×nh ®−îc ph©n bæ thêi gian CPU b»ng nhau...................... 71
H×nh 4.6. ChuyÓn gi÷a c¸c tiÕn tr×nh b»ng sù kiÖn time out.............................. 73
H×nh 4.7. C¸c tiÕn tr×nh ®−îc ph©n bæ thêi gian CPU kh¸c nhau ...................... 74
H×nh 4.8. Ng−êi sö dông ra lÖnh vµo c¸c thêi ®iÓm kh¸c nhau ......................... 75
H×nh 4.9. ChuyÓn gi÷a c¸ tiÕn tr×nh b»ng sù kiÖn interrupt ............................... 76
H×nh 4.9. M« t¶ tr¹ng th¸i cña c¸c tµi nguyªn cña tiÕn tr×nh............................. 77
H×nh 4.10. C¸c tµi nguyªn cÇn l u khi dõng mét
− tiÕn tr×nh............................... 78
H×nh 4.11. Ph©n bæ ng¨n xÕp cho c¸c tiÕn tr×nh ................................................ 79
H×nh 4.12. LËp lÞch cho 8 tiÕn tr×nh thùc hiÖn quÐt ch÷ trªn ma trËn LED ....... 81
H×nh 4.13. LËp lÞch cho 4 tiÕn tr×nh quÐt c¸c sè trªn 4 LED 7 ®o¹n ................. 81
H×nh 4.14. LËp lÞch cho tiÕn tr×nh ®iÒu khiÓn LCD........................................... 82
H×nh 4.15. LËp lÞch cho tiÕn tr×nh thêi gian thùc.............................................. 82
H×nh 4.16. Tæ chøc bé nhí ROM cña hÖ vi ®iÒu khiÓn ..................................... 83
H×nh 4.17. Thay ®æi vÞ trÝ ®Æt c¸c ch−¬ng tr×nh con phôc vô ng¾t..................... 84
H×nh 4.18. Ph©n bæ bé nhí ROM....................................................................... 85
H×nh 4.19. Ph©n bæ bé nhí RAM....................................................................... 85
-9-
Lêi nãi ®Çu
Cïng víi sù ph¸t triÓn cña khoa häc kü thuËt, côm tõ “tù ®éng ho¸” ®· trë
nªn hÕt søc phæ th«ng. Tõ c¸c m¸y mãc tù ®éng trong c¸c nhµ m¸y xÝ nghiÖp
thay thÕ cho søc lao ®éng cña c«ng nh©n, tõ c¸c ®å gia dông tù ®éng trong gia
®×nh gióp Ých cho ng−êi néi trî...nãi chung c¸c thiÕt bÞ cã kh¶ n¨ng tù ®éng ho¸
xuÊt hiÖn ë kh¾p mäi n¬i. Mét c©u hái ®Æt ra víi kh¸ nhiÒu ng−êi lµ nhê ®©u mµ
c¸c thiÕt bÞ cã kh¶ n¨ng tù ®éng ®−îc? §Ó tr¶ lêi c©u hái nµy chóng ta cÇn ph¶i ®i
tõ khi cã côm tõ “tù ®éng ho¸” ra ®êi.
Tr−íc kia, khi ch−a cã c«ng nghÖ b¸n dÉn, c¸c phÇn tö cã tiÕp ®iÓm nÕu
®−îc ®Çu nèi víi nhau theo mét m¹ch logic nµo ®ã th× vÉn cã thÓ t¹o ra mét hÖ
thèng tù ®éng, tuy nhiªn kh¶ n¨ng ®¸p øng vµ tÝnh tù ®éng c¶ hÖ thèng nµy
kh«ng cao. C«ng nghÖ b¸n dÉn ra ®êi, nã gi¶i quyÕt ®−îc h¹n chÕ vÒ ®¸p øng (tèc
®é) cña c¸c phÇn tö cã tiÕp ®iÓm tuy nhiªn còng ph¶i chê ®Õn khi cã sù xuÊt hiÖn
cña c¸c bé vi xö lý, c¸c hÖ thèng cã tÝnh tù ®éng ho¸ cao míi ra ®êi. §Æc tr−ng
cña c¸c hÖ thèng nµy ®−îc m« t¶ b»ng mét c«ng thøc ®¬n gi¶n: PhÇn cøng +
PhÇn mÒm = øng dông. Theo c«ng thøc nµy th× khi tuú biÕn mét trong 2 thµnh
phÇn lµ phÇn cøng hoÆc phÇn mÒm th× sÏ cho ra øng dông kh¸c. Th«ng th−êng
phÇn mÒm lµ thµnh phÇn ®−îc tuú biÕn.
Mét hÖ thèng víi c¸c bé vi xö lý cã thÓ gi¶ c¸c suy nghÜ vµ hµnh ®éng cña
con ng−êi v× lý do ®¬n gi¶n lµ chóng ho¹t ®éng theo mét ch−¬ng tr×nh cña ng−êi
thiÕt kÕ ®−a vµo mµ ch−¬ng tr×nh chÝnh lµ c¸c thuËt to¸n lµ ý nghÜ cña ng−êi lËp
tr×nh. Nh− vËy ®Ó mét hÖ thèng cã tÝnh th«ng minh, tù ®éng ho¸ cao th× phÇn
mÒm viÕt cho nã lµ vÊn ®Ò hÕt søc quan träng.
Mét hÖ thèng víi cïng mét phÇn cøng nh−ng nÕu nã ®−îc viÕt hÖ ®iÒu hµnh
th× kh¶ n¨ng cña nã sÏ trë nªn m¹nh h¬n rÊt nhiÒu so víi mét hÖ thèng chØ cã
mét ch−¬ng tr×nh tuÇn tù. Víi môc ®Ých kh«ng ngõng ®¸p øng c¸c nhu cÇu cña
-10-
x· héi, hiÖn nay c¸c m«n häc vÒ hÖ nhóng ®· vµ ®ang ® a vµo gi¶ng d¹y t¹i
−îc ®−
c¸c tr−êng Cao ®¼ng vµ §¹i häc. Tuy nhiªn ®Ó cã mét hiÖu qña gi¶ng d¹y tèt
nhÊt th× cÇn cã mét ph−¬ng ph¸p nghiªn cøu vµ thiÕt kÕ ®óng chÝnh t¾c vµ còng
cÇn ph¶i cã mét thiÕt bÞ phôc vô qua tr×nh thÝ nghiÖm.
Tr−êng §¹i häc C«ng nghiÖp Hµ néi lµ mét tr−êng ®µo t¹o c¸c cö nh©n vµ
c¸c kü s− thùc hµnh. Trong ch−¬ng tr×nh ®µo t¹o còng ®· cã m«n kü thuËt vi ®iÒu
khiÓn, ®©y cã thÓ coi lµ nÒn t¶ng ®Ó tiÕp cËn víi c¸c hÖ thèng nhóng sö dông vi
®iÒu khiÓn cã hÖ ®iÒu hµnh. ViÖc nghiªn cøu ®Ó ®−a vµo gi¶ng d¹y m«n thiÕt kÕ
hÖ ®iÒu hµnh cho c¸c hÖ vi ®iÒu khiÓn lµ phï hîp víi yªu cÇu hiÖn t¹i.
Víi sù h−íng dÉn cña TS NguyÔn Linh Giang, trong khu«n khæ luËn v¨n
nµy, t«i m¹nh d¹n nghiªn cøu vÒ c¸c nguyªn t¾c c¬ b¶n khi thiÕt kÕ mét hÖ ®iÒu
hµnh trªn hÖ vi ®iÒu khiÓn.
Néi dung cña luËn v¨n bao gåm 4 ch−¬ng, trong ®ã:
Ch−¬ng 1: Giíi thiÖu tæng quan hÖ ®iÒu hµnh.
Ch−¬ng 2: Giíi thiÖu bé vi ®iÒu khiÓn ®−îc sö dông ®Ó viÕt hÖ ®iÒu hµnh vµ
ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn.
Ch−¬ng 3. ThiÕt kÕ phÇn cøng hÖ vi ®iÒu khiÓn.
Ch−¬ng 4. ThiÕt kÕ hÖ ®iÒu hµnh cho hÖ vi ®iÒu khiÓn
Do thêi gian vµ kh¶ n¨ng cã h¹n nªn luËn v¨n nµy sÏ cßn nhiÒu thiÕu sãt.
RÊt mong ®−îc sù gãp ý vµ th«ng c¶m cña c¸c thÇy gi¸o, c« gi¸o.
Hµ néi, ngµy 30 th¸ng 10 n¨m 2006
Häc viªn
Vò Trung Kiªn
-11-
Ch−¬ng 1 - Tæng quan vÒ hÖ ®iÒu hµnh
1.1. Kh¸i niÖm vÒ hÖ ®iÒu hµnh (OS-Operating System)
1.1.1. Kh¸i niÖm
Khã cã mét kh¸i niÖm hay ®Þnh nghÜa chÝnh x¸c vÒ hÖ ®iÒu hµnh, v× hÖ ®iÒu
hµnh lµ mét bé phËn ® îng khai th¸c nhÊt, hä cã thÓ lµ ng
−îc nhiÒu ®èi t− −êi sö
dông th«ng th−êng, cã thÓ lµ lËp tr×nh viªn, cã thÓ lµ ng−êi qu¶n lý hÖ thèng vµ
tuú theo møc ®é khai thøc hÖ ®iÒu hµnh mµ hä cã thÓ ®−a ra nh÷ng kh¸i niÖm
kh¸c nhau.
Kh¸i niÖm 1: HÖ ®iÒu hµnh lµ hÖ thèng ch−¬ng tr×nh víi c¸c chøc n¨ng gi¸m
s¸t ®iÒu khiÓn viÖc thùc hiÖn c¸c ch− −
¬ng tr×nh cña ng êi sö dông qu¶n lý vµ ph©n
chia tµi nguyªn cho nhiÒu ch−¬ng tr×nh ng−êi sö dông ®ång thêi sao cho viÖc
khai th¸c chøc n¨ng cña hÖ thèng m¸y tÝnh cña ng−êi sö dông lµ thuËn lîi vµ hiÖu
qu¶ nhÊt.
Kh¸i niÖm 2: HÖ ®iÒu hµnh lµ mét ch−¬ng tr×nh ®ãng vai trß nh− giao diÖn
gi÷a ng n lý vµ ®iÒu khiÓn phÇn cøng
−êi sö dông vµ phÇn cøng m¸y tÝnh nã qu¶
còng nh− sù thùc hiÖn cña tÊt c¶ c¸c ch−¬ng tr×nh.
Kh¸i niÖm thø hai rÊt gÇn víi c¸c hÖ ®iÒu hµnh ®ang sö dông trªn c¸c m¸y
tÝnh hiÖn nay trong khi kh¸i niÖm thø nhÊt l¹i gÇn víi c¸c hÖ thèng ®o l−êng ®iÒu
khiÓn trong c«ng nghiÖp sö dông c¸c bé ®iÒu khiÓn kh¶ tr×nh (VÝ dô nh− vi ®iÒu
khiÓn).
1.1.2. Chøc n¨ng cña hÖ ®iÒu hµnh.
Cã thÓ nãi hÖ ®iÒu hµnh lµ 1 hÖ thèng c¸c ch−¬ng tr×nh ®ãng vai trß trung
gian gi÷a ng−êi sö dông vµ phÇn cøng. NhiÖm vô chÝnh cña nã lµ cung cÊp mét
m«i tr êng thuËn lîi ®Ó ng
− −êi sö dông dÔ dµng thùc hiÖn c¸c ch−¬ng tr×nh øng
dông cña hä trªn m¸y tÝnh vµ khai th¸c triÖt ®Ó c¸c chøc n¨ng cña phÇn cøng.
-12-
§Ó ®¹t ®−îc môc tiªu trªn hÖ ®iÒu hµnh ph¶i thùc hiÖn 2 chøc n¨ng chÝnh
sau ®©y:
- T¹o ra mét hÖ th«ng më réng bao gåm c¸c thµnh phÇn vËt lý vµ c¸c thµnh
phÇn logic:
Nh− chóng ta biÕt, mét hÖ thèng kh¶ tr×nh (vÝ dô nh− m¸y tÝnh) gåm c¸c bé
phËn chÝnh nh−: Processor, Memory, I/O Device, Bus, vv, do ®ã ®Ó ®èi tho¹i
hoÆc khai th¸c m¸y tÝnh ng−êi sö dông ph¶i hiÓu ®−îc c¬ chÕ ho¹t ®éng cña c¸c
bé phËn nµy vµ ph¶i t¸c ®éng trùc tiÕp vµo nã tÊt nhiªn lµ b»ng nh÷ng con sè 0,1
(ng«n ng÷ m¸y). §iÒu nµy lµ qu¸ khã ®èi víi ng êi sö dông hÖ ®iÒu hµnh ph¶i
−
che ®Ëy c¸c chi tiÕt phÇn cøng m¸y tÝnh bëi mét m¸y tÝnh më réng, m¸y tÝnh më
réng nµy cã ®Çy ®ñ c¸c chøc n¨ng cña mét m¸y tÝnh thùc nh−ng ®¬n gi¶n vµ dÔ
sö dông h¬n. Theo ®ã khi cÇn t¸c ®éng vµo m¸y tÝnh thùc ng−êi sö dông chØ cÇn
t¸c ®éng vµo m¸y tÝnh më réng mäi sù chuyÓn ®æi th«ng tin ®iÒu khiÓn tõ m¸y
tÝnh. Môc ®Ých cña chøc n¨ng nµy kµ: Gióp ng−êi sö dông khai thøc c¸c chøc
n¨ng cña phÇn cøng m¸y tÝnh dÔ dµng vµ hiÖu qu¶ h¬n.
- Qu¶n lý tµi nguyªn cña hÖ thèng:
Tµi nguyªn hÖ thèng cã thÓ lµ: prrocessor, Memory, I/O Device..., ®©y lµ
nh÷ng tµi nguyªn mµ hÖ ®iÒu hµnh dïng ®Ó cÊp ph¸t cho c¸c tiÕn tr×nh, ch−¬ng
tr×nh trong qu¸ tr×nh ®iÒu khiÓn sù ho¹t ®éng cña hÖ thèng. Khi ng−êi sö dông
cÇn thùc hiÖn mét ch−¬ng tr×nh hay mét ch−¬ng tr×nh cÇn n¹p thªm mét tiÕn
tr×nh míi vµo bé nhí th× hÖ ®iÒu hµnh ph¶i cÊp ph¸t kh«ng gian nhí cho ch−¬ng
tr×nh, tiÕn tr×nh ®ã ®Ó ch−¬ng tr×nh, tݪn tr×nh ®ã n¹p ®−îc vµo bé nhí vµ ho¹t
®éng ®−îc. Trong m«i tr−êng hÖ ®iÒu hµnh ®a nhiÖm cã thÓ cã nhiÒu ch−¬ng
tr×nh, tiÕn tr×nh ®ång thêi cÇn ®−îc n¹p vµo bé nhí nh−ng kh«ng gian l−u tr÷ cñ©
bé nhí cã giíi h¹n do ®ã hÖ ®iÒu hµnh ph¶i tæ chøc cÊp ph¸t bé nhí sao cho hîp
lý ®Ó ®¶m b¶o tÊt c¶ c¸c ch−¬ng tr×nh tiÕn tr×nh khi cÇn ®Ó ®−îc n¹p vµo bé nhí
®Ó ho¹t ®éng. Ngoµi ra hÖ ®iÒu hµnh cßn ph¶i tæ chøc b¶o vÖ c¸c kh«ng gian nhí
®· cÊp cho c¸c ch−¬ng tr×nh tiÕn tr×nh ®Ó tr¸nh sù truy cËp bÊt hîp lÖ vµ sù tranh
-13-
chÊp bé nhí gi÷a c¸c ch−¬ng tr×nh, tiÕn tr×nh, ®Æc biÖt lµ c¸c tiÕn tr×nh ®ång thêi
ho¹t ®éng trªn hÖ thèng. §©y lµ mét trong nh÷ng nhiÖm vô quan träng cña hÖ
®iÒu hµnh.
Trong qu¸ tr×nh ho¹t ®éng cña hÖ thèng ®Æc bÖt lµ c¸c hÖ thèng ®a ng−êi
dïng ®a ch−¬ng tr×nh, ®a tiÕn tr×nh. Cßn xuÊt hiÖn mét hiÖn t−îng kh¸c, ®ã lµ
nhiÒu ch−¬ng tr×nh, tiÕn tr×nh ®ång thêi sö dông mét kh«ng gian nhí hau mét tËp
tin (d÷ liÖu, ch−¬ng tr×nh) nµo ®ã. Trong tr−êng hîp nµy hÖ ®iÒu hµnh ph¶i tæ
chøc viÖc chia sÎ vµ gi¸m s¸t viÖc truy xuÊt ®ång thêi trªn c¸c tµi nguyªn nãi
trªn sao cho viÖc sö dông tµi nguyªn cã hiÖu qu¶ nh− −
ng tr¸nh ® îc sù mÊt m¸t d÷
liÖu vµ lµm háng c¸c tËp tin.
Hai dÉn chøng ®iÓn h×nh gióp chóng ra thÊy vai trß cña hÖ ®iÒu hµnh trong
viÖc qu¶n lý tµi nguyªn hÖ thèng sau nµy chóng ra sÏ thÊy viÖc cÊp ph¸t, chia sÎ,
b¶o vÖ tµi nguyªn cña hÖ ®iÒu hµnh lµ mét trong nh÷ng c«ng viÖc khã kh¨n vµ
phøc t¹p nhÊt. HÖ ®iÒu hµnh ®· chi phÝ nhiÒu cho c«ng viÖc nãi trªn ®Ó ®¸t ®−îc
môc tiªu: Trong mäi tr−êng hîp tÊt c¶ c¸c ch−¬ng tr×nh, tiÕn tr×nh nÕu cÇn ®−îc
cÊp ph¸t tµi nguyªn ®Ó ho¹t ®éng th× sím muén nã ®Òu ®−îc cÊp ph¸t vµ ®−îc
®−a vµo tr¹ng th¸i ho¹t ®éng.
1.1.3. C¸c thµnh phÇn cña hÖ ®iÒu hµnh
1.1.3.1. Thµnh phÇn qu¶n lý tiÕn tr×nh.
HÖ ®iÒu hµnh ph¶i cã nhiÖm vô t¹o lËp tiÕn tr×nh vµ ®−a nã vµo danh s¸ch
qu¶n lý tݪn tr×nh cña hÖ thèng. Khi tiÕn tr×nh kÕt thóc hÖ ®iÒu hµnh ph¶i lo¹i bá
tiÕn tr×nh ra lhái danh s¸c qu¶n lý tiÕn tr×nh cña hÖ thèng.
HÖ ®iÒu hµnh ph¶i cung cÊp ®Çy ®ñ tµi nguyªn ®Ó tiÕn tr×nh ®i vµo ho¹t ®éng
vµ ph¶i ®¶m b¶o ®ñ tµi nguyªn ®Ó duy tr× sù ho¹t ®éng cña tiÕn tr×nh cho ®Õn khi
tiÕn tr×nh kÕt thóc. Khi tiÕn tr×nh kÕt thóc hÖ ®iÒu hµnh ph¶i thu håi nh÷ng tµi
nguyªn mµ hÖ ®iÒu hµnh ®· cÊp cho tiÕn tr×nh.
-14-
Trong qu¸ tr×nh ho¹t ®éng nÕu v× mét lý do nµo ®ã tiÕn tr×nh kh«ng thÓ tiÕp
rôc ho¹t ®éng ®−îc th× hÖ ®iÒu hµnh ph¶i t¹m dõng tiÕn tr×nh thu håi tµi nguyªn
mµ tiÕn tr×nh ®ang chiÕm gi÷, sau ®ã nÕu diÒu kiÖn thuËn lîi th× hÖ ®iÒu hµnh
ph¶i t¸i kÝch ho¹t tiÕn tr×nh ®Ó tiÕn tr×nh tiÕp tôc ho¹t ®éng cho ®Õn khi kÕt thóc.
Trong c¸c hÖ thèng cã nhiÒu tiÕn tr×nh ho¹t ®éng song song hÖ ®iÒu hµnh
ph¶i gi¶i quyÕt vÊn ®Ò tranh chÊp tµi nguyªn gi÷a c¸c tiÕn tr×nh, ®Òu phèi
processor cho c¸c tiÕn tr×nh, gióp c¸c tiÕn tr×nh trao ®æi th«ng tin vµ ho¹t ®éng
®ång bé víi nhau, ®¶m b¶o nguyªn t¾c tÊt c¶ c¸c tiÕn tr×nh ®· ®−îc khëi t¹o ph¶i
®−îc thùc hiÖn vµ kÕt thóc ®−îc.
Tãm l¹i, bé phËn qu¶n lý tiÕn tr×nh cña hÖ ®iÒu hµnh ph¶i thùc hiÖn nhøng
nhiÖm vô sau ®©y:
T¹o lËp, huû bá tiÕn tr×nh.
T¹m dõng, t¸i kÝch ho¹t ®éng tiÕn tr×nh.
T¹o c¬ chÕ th«ng tin liªn l¹c gi÷a c¸c tiÕn tr×nh.
T¹o c¬ chÕ ®ång bé ho¸ gi÷a c¸c tiÕn tr×nh.
1.1.3.2. Thµnh phÇn qu¶n lý bé nhí.
Bé nhí chÝnh lµ mét trong nh÷ng tµi nguyªn quan träng cña hÖ thèng, ®©y lµ
thiÕt bÞ l−u tr÷ duy nhÊt mµ CPU cã thÓ truy xuÊt trùc tiÕp ®−îc.
C¸c ch−¬ng tr×nh cña ng−êi sö dông muèn thùc hiÖn ®−îc bëi CPU th×
trwocs hÕt nã ph¶i ® îc hÖ ®iÒu hµnh n¹p vµo bé n
− hí chÝnh, chuyÓn ®æi c¸c ®Þa
chØ sö dông trong ch−¬ng tr×nh thµnh nh÷ng ®Þa chØ mµ CPU cã thÓ truy xuÊt
®−îc.
Khi ch−¬ng tr×nh, tiÕn tr×nh cã yªu cÇu ®−îc n¹p vµo bé nhí th× hÖ ®iÒu
hµnh ph¶i cÊp ph¸t kh«ng gian nhí cho nã. Khi ch−¬ng tr×nh, tiÕn tr×nh kÕt thóc
th× hÖ ®iÒu hµnh ph¶i thi håi l¹i kh«ng gian nhí ®· cÊp ph¸t cho ch−¬ng tr×nh,
tiÕn tr×nh tr−íc ®ã.
-15-
Trong c¸c hÖ thèng ®a ch−¬ng hay ®a tiÕn tr×nh, trong bé nhí tån t¹i nhiÒu
ch−¬ng tr×nh/ nhiÒu tiÕn tr×nh, hÖ ®iÒu hµnh ph¶i thùc hiÖn nhiÖm vô b¶o vÖ c¸c
vïng nhí ®· cÊp ph¸t cho c¸c ch−¬ng tr×nh/tiÕn tr×nh, tr¸nh sù vi ph¹m trªn c¸c
vïng nhí cña nhau.
Tãm l¹i, bé phËn qu¶n lý bé nhí chÝnh cña hÖ ®iÒu hµnh thùc hiÖn nh÷ng
nhiÖm vô sau:
CÊp ph¸t, thu håi vïng nhí.
Chi nhËn tr¹ng th¸i bé nhí.
B¶o vÖ bé nhí.
QuyÕt ®Þnh tiÕn tr×nh nµo ® îc n¹p vµo bé nhí.
−
1.1.3.3. Thµnh phÇn qu¶n lý vµo ra.
Mét trong nh÷ng môc tiªu cña hÖ ®iÒu hµnh lµ gióp ng−êi sö dông khai thøc
hÖ thèng m¸y tÝnh dÔ dµng vµ hiÖu qu¶, do ®ã c¸c thao t¸c trao ®æi th«ng tin trªn
thiÕt bÞ xuÊt / nhËp ph¶i trong suèt ®èi víi ng−êi sö dông.
§Ó thùc hiÖn ®−îc ®iÒu nµy hÖ ®iÒu hµnh ph¶i tån t¹i mét bé phËn ®iÒu
khiÓn thiÕt bÞ, bé phËn nµy phèi hîp cïng CPU ®Ó qu¶n lý sù ho¹t ®éng vµ trao
®æi th«ng tin gi÷a hÖ thãng, ch−¬ng tr×nh ng−êi sö dông vµ ng−êi sö dông víi c¸c
thiÕt bÞ xu©ts/nhËp.
Bé phËn ®iÒu khiÓn thiÕt bÞ thùc hiÖn nh÷ng nhiÖm vô sau:
Gëi m· lÖnh ®iÒu khiÓn ®Õn thiÕt bÞ: HÖ ®iÒu hµnh ®iÒu khiÓn c¸c thiÕt bÞ
b»ng c¸c m· ®iÒu khiÓn, do ®ã tr−íc khi b¾t ®Çu mét qu¸ tr×nh trao ®æi d÷ liÖu
víi thiÕt bÞ th× hÖ ®iÒu hµnh ph¶i gëi m· ®iÓu khiÓn ®Õn thiÕt bÞ.
TiÕp nhËn yªu cÇn ng¾t (Interrupt) tõ c¸c thiÕt bÞ khi cÇn trao ®æi víi hÖ
thèng khi nã ph¸t ra mét tÝn hiÖu yªu cÇu ng¾t, hÖ ®iÒu hµnh tiÕp nhËn yªu cÇu
ng¾t tõ c¸c thiÕt bÞ, xem xÕt vµ thùc hiÖn mét thñ tôc ®Ó ®¸p øng yªu cÇu c¸c
thiÕt bÞ.
-16-
Ph¸t hiÖn vµ xö lý lçi: qu¸ tr×nh trao ®æi d÷ liÖu th−êng x¶y ra c¸c lçi nh−:
thiÕt bÞ vµo/ra ch−a s½n sµng, ®−êng truyÒn háng, vv, do ®ã hÖ ®iÒu hµnh ph¶i t¹o
ra c¸c c¬ chÕ thÝch hîp ®Ó ph¸t hiÖn lçi sím nhÊt vµ kh»c phôc c¸c lçi võa x¶y ra
nÕu cã thÓ.
1.2. Qu¶n lý tiÕn tr×nh
TiÕn tr×nh lµ mét ch−¬ng tr×nh ®ang xö lý, nã së h÷u mét con trá lÖnh, lËp
c¸c thanh ghi vµ c¸c biÕn. §Ó hoµn thµnh nhiÖm vô cña m×nh, c¸c tiÕn tr×nh cã
thÓ cßn yªu cÇu mét sè tµi nguyªn hÖ thèng nh−: CPU, bé nhí vµ c¸c thiÕt bÞ.
1.2.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh
Tr¹ng th¸i cña tiÕn tr×nh t¹i mçi thêi ®iÓm ®−îc x¸c ®Þnh bëi ho¹t ®éng
hiÖn thêi cña tiÕn tr×nh t¹i thêi ®iÓm ®ã. Trong suèt kho¶ng thêi gian tån t¹i trong
hÖ thèng, mét tiÕn tr×nh cã thÓ thay ®æi tr¹ng th¸i do rÊt nhiÒu nguyªn nh©n nh−:
Chê ®îi sù kiÖn nµo ®ã x¶y ra, ®îi mét thao t¸c vµo/ra hoµn tÊt, hÕt thêi gian xö
lý...
T¹i mçi thêi ®iÓm, tiÕn tr×nh cã thÓ nhËn mét trong c¸c tr¹ng th¸i sau:
- Khëi t¹o (new): TiÕn tr×nh ®ang ®−îc t¹o lËp.
- S½n sµng (ready): TiÕn tr×nh chê ®−îc cÊp ph¸t CPU ®Ó xö lý.
- Thùc hiÖn (runing): TiÕn tr×nh ®−îc xö lý.
- §îi (waiting): TiÕn tr×nh ph¶i dõng v× thiÕu tµi nguyªn hoÆc chê mét sù
kiÖn nµo ®ã.
- KÕt thóc (halt): TiÕn tr×nh ®· hoµn tÊt c«ng viÖc xö lý.
C¸c tr¹ng th¸i cña tiÕn tr×nh cã thÓ ®−îc biÓu diÔn qua s¬ ®å (h×nh 1.1)
-17-
H×nh 1.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh
HÖ ®iÒu hµnh qu¶n lý ho¹t ®éng cña c¸c tiÕn tr×nh trong hÖ thèng th«ng
qua khèi m« t¶ tiÕn tr×nh (process control block - PCB). Khèi m« t¶ tiÕn tr×nh bao
gåm c¸c thµnh phÇn:
- Sè thø tù cña tiÕn tr×nh
- Con trá tr¹ng th¸i cña tiÕn tr×nh (cho biÕt tr¹ng th¸i hiÖn t¹i cña tiÕn
tr×nh).
- Vïng nhí l−u tr÷ gi¸ trÞ c¸c thanh ghi mµ tiÕn tr×nh ®ang sö dông.
- Th«ng tin vÒ tµi nguyªn tiÕn tr×nh ®ang sö dông hoÆc ®−îc phÐp sö dông.
1.2.2. Kh¸i niÖm vÒ tµi nguyªn “g¨ng” vµ ®o¹n tíi h¹n
Chóng ta cïng xem thuËt to¸n sau:
Type ltem = ...;
Var Buffer: array [0..n-1] of ltem;
In. Out: 0..n-1
Counter: 0..n
Begin
(TiÕn tr×nh P)
Repeat
...
New Ready Runing Halt
Waiting
-18-
S¶n xuÊt th«ng tin vµ chøa trong NextP;
...
While Counter = n do Skip;
Buffer [In]:=NextP;
In:= In + 1 mod n;
Until false;
(TiÕn tr×nh C)
Repeat
While Counter = 0 do Skip;
NextC:= Buffer [Out];
Out:= Out + 1 mod n;
...
LÊy th«ng tin trong chøa trong NextC
...
Until false;
End;
NhËn xÐt: V× hai tiÕn tr×nh P vµ C song hµnh nªn cã thÓ x¶y ra tr−êng hîp
trong cïng 1 thêi ®iÓm, tiÕn tr×nh P t¨ng biÕn Counter lªn 1 (Counter:= Counter
+ 1) cßn tiÕn tr×nh C l¹i gi¶m biÕn Counter ®i 1 (Counter:= Counter – 1) dÉn tíi
kÕt qu¶ sai. Nh− vËy biÕn Counter trong tr−êng hîp nµy ®−îc gäi lµ tµi nguyªn
“g¨ng”. §o¹n tr×nh sö dông biÕn Counter gäi lµ ®o¹n tíi h¹n.
§Þnh nghÜa:
- C¸c tµi nguyªn logic vµ vËt lý ph©n bæ cho c¸c tiÕn tr×nh song hµnh lµ tµi
nguyªn “g¨ng”.
C¸c ®o¹n tr×nh sö dông tµi nguyªn g¨ng gäi lµ ®o¹n tíi h¹n (Critical
Section).
-19-
1.2.3. HiÖn t−îng bÕ t¾c
1.2.3.1. Kh¸i niÖm vÒ bÕ t¾c
Gi¶ sö cã hai tiÕn tr×nh P1 vµ P song hµnh sö dông c¸c tµi nguyªn r1 vµ r,
®−îc ®iÒu khiÓn bëi hai ®Ìn hiÖu S1 vµ S. T¹i mçi thêi ®iÓm, mçi tµi nguyªn chØ
phôc vô cho sù ho¹t ®éng cña mét tiÕn tr×nh. XÐt tr¹ng th¸i:
B¶ng 1.1. Tr¹ng th¸i cña c¸c tiÕn tr×nh
P1 Thêi ®iÓm P2
Wait (S1) t1 Wait (S2)
... t2 ...
Wait (S2) t3 ...
t4 Wait (S1)
NhËn xÐt: T¹i vÞ trÝ trªn, sau thêi ®iÓm t3, tiÕn tr×nh P1 r¬i vµo tr¹ng th¸i
chê tµi nguyªn r2 ®ang ®−îc P2 sö dông; Sau thêi ®iÓm t4, tiÕn tr×nh P2 r¬i vµo
tr¹ng th¸i chê tµi nguyªn r1 ®ang ®−îc tiÕn tr×nh P1 sö dông vµ b¾t ®Çu tõ ®©y, c¶
hai tiÕn tr×nh r¬i vµo tr¹ng th¸i chê ®îi v« h¹n vÒ hÖ thèng gÆp bÕ t¾c.
Nh− vËy bÕ t¾c lµ tr¹ng th¸i khi hai hoÆc nhiÒu tiÕn tr×nh cïng chê ®îi mét
sè sù kiÖn nµo ®ã vµ nÕu kh«ng cã t¸c ®éng ®Æc biÖt tõ bªn ngoµi th× sù chê ®îi
®ã lµ v« h¹n.
1.2.3.2. §iÒu kiÖn x¶y ra bÕ t¾c trong hÖ thèng.
HiÖn t−îng bÕ t¾c x¶y ra khi vµ chØ khi trong hÖ thèng tån t¹i 4 ®iÒu kiÖn:
- Cã tµi nguyªn g¨ng
- Cã hiÖn t−îng gi÷ vµ ®îi, cã mét tiÕn tr×nh ®ang gi÷ mét sè tµi nguyªn vµ
®îi tµi nguyªn bæ sung ®ang ®−îc gi÷ bëi c¸c tiÕn tr×nh kh¸c.
- Kh«ng cã hÖ thèng ph©n phèi l¹i tµi nguyªn: ViÖc sö dông tµi nguyªn
kh«ng bÞ ng¾t.
-20-
- Cã hiÖn t−îng chê ®îi vßng trßn.
1.2.3.3. C¸c møc phßng tr¸nh bÕ t¾c
§Ó tr¸nh hiÖn t−îng bÕ t¾c, th«ng th−êng hÖ thèng ¸p dông ba møc:
- Ng¨n chÆn: ¸p dông c¸c biÖn ph¸p ®Ó hÖ thèng r¬i vµo tr¹ng th¸i bÕ t¾c.
- Dù b¸o vµ tr¸nh bÕ t¾c: ¸p dông c¸c biÖn ph¸p ®Ó kiÓm tra c¸c tiÕn tr×nh
xem cã bÞ r¬i vµo tr¹ng th¸i bÕ t¾c hay kh«ng. NÕu cã th× th«ng b¸o tr−íc khi bÕ
t¾c x¶y ra.
- NhËn biÕt vµ kh¾c phôc: T×m c¸ch ph¸t hiÖn vµ gi¶i quyÕt.
1.3. LËp lÞch cho CPU
1.3.1. Kh¸i niÖm giê CPU
CPU lµ mét lo¹i tµi nguyªn quan träng cña m¸y tÝnh. Mäi tiÕn tr×nh muèn
ho¹t ®éng ®−îc ®Òu ph¶i cã sù phôc vô cña CPU (®Ó xö lý, tÝnh to¸n...). Thêi gian
mµ CPU phôc vô cho tiÕn tr×nh ho¹t ®éng ®−îc gäi lµ giê CPU.
T¹i mçi thêi ®iÓm nhÊt ®Þnh, chØ cã mét tiÕn tr×nh ®−îc ph©n phèi giê CPU
®Ó ho¹t ®éng (thùc hiÖn c¸c lÖnh cña m×nh).
1.3.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU
Trong chÕ ®é ®a ch−¬ng tr×nh, cã ba tr¹ng th¸i cña tiÕn tr×nh liªn quan mËt
thiÕt ®Õn giê CPU bao gåm:
H×nh 1.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU
Ready Runing
Waiting
-21-
- S½n sµng (ready): Lµ tr¹ng th¸i mµ tiÕn tr×nh ®−îc ph©n phèi ®Çy ®ñ mäi
tµi nguyªn cÇn thiÕt vµ ®ang chê giê CPU.
- Thùc hiÖn (running): Lµ tr¹ng th¸i mµ tiÕn tr×nh ®−îc ph©n phèi ®Çy ®ñ
mäi tµi nguyªn cÇn thiÕt vµ giê CPU.
- §îi (waiting): Lµ tr¹ng th¸i tiÕn tr×nh kh«ng thùc hiÖn ®−îc v× thiÕu mét
vµi ®iÒu kiÖn nµo ®ã (®îi d÷ liÖu vµo/ra, ®îi tµi nguyªn bæ sung...). Khi sù kiÖn
mµ nã chê ®îi xuÊt hiÖn, tiÕn tr×nh sÏ quay trë l¹i tr¹ng th¸i s½n sµng.
Nh− vËy, trong suèt thêi gian tån t¹i cña m×nh, c¸c tiÕn tr×nh sÏ tu©n thñ
theo s¬ ®å thùc hiÖn sau:
H×nh 1.3. S¬ ®å thùc hiÖn tiÕn tr×nh
Mét tiÕn tr×nh ®ang trong tr¹ng th¸i thùc hiÖn, nã cã thÓ rêi khái tr¹ng th¸i
bëi mét trong ba lý do:
- TiÕn tr×nh ®· hoµn thµnh c«ng viÖc vµ chuyÓn sang tr¹ng th¸i kÕt thóc, nã
tr¶ l¹i giê CPU cho hÖ thèng.
- TiÕn tr×nh tù ng¾t: Khi tiÕn tr×nh chê ®îi mét sù kiÖn nµo ®ã, tiÕn tr×nh sÏ
®−îc chuyÓn sang tr¹ng th¸i thùc hiÖn khi xuÊt hiÖn sù kiÖn nã ®ang chê.
- TiÕn tr×nh sö dông hÕt giê CPU dµnh cho nã, khi ®ã nã sÏ ®−îc chuyÓn
sang tr¹ng th¸i s½n sµng.
ViÖc chuyÓn tiÕn tr×nh sang tr¹ng th¸i s½n sµng vÒ b¶n chÊt lµ thùc hiÖn
viÖc ph©n phèi l¹i giê CPU.
B¾t ®Çu
§îi I/O
Sö dông CPU Sö dông CPU
§îi I/O KÕt thóc
Sö dông CPU
-22-
1.3.3. LËp lÞch cho CPU
1.3.3.1. Kh¸i niÖm
§Ó ®iÒu khiÓn tiÕn tr×nh ë nhiÒu tr¹ng th¸i kh¸c, hÖ thèng th−êng tæ chøc
c¸c tõ tr¹ng th¸i (thùc chÊt lµ c¸c khèi ®iÒu khiÓn tiÕn tr×nh) ®Ó ghi nhËn t×nh
tr¹ng sö dông tµi nguyªn vµ tr¹ng th¸i tiÕn tr×nh. C¸c tõ tr¹ng th¸i ® îc tæ chøc
−
theo kiÓu ®îi nh− sau:
H×nh 1.4. S¬ ®å tæ chøc hµng ®îi c¸c tiÕn tr×nh
Nh− vËy, lËp lÞch cho CPU cã nghÜa lµ tæ chøc mét hµng ®îi c¸c tiÕn tr×nh
s½n sµng ®Ó ph©n phèi giê CPU cho chóng dùa trªn ®é −u tiªn cña c¸c tiÕn tr×nh
sao cho hiÖu suÊt sö dông CPU lµ tèi −u nhÊt.
Mçi tiÕn tr×nh ë tr¹ng th¸i s½n sµng ®−îc g¾n víi mét thø tù −u tiªn. Thø tù
− − −
u tiªn nµy ® îc x¸c ®Þnh dùa vµo c¸c yÕu tè nh : Thêi ®iÓm h×nh thµnh tiÕn
tr×nh, thêi gian thùc hiÖn tiÕn tr×nh, thêi gian kÕt thóc tiÕn tr×nh...
Ready queue CPU
I/O I/O queue
I/O I/O queue
I/O I/O queue
M M
-23-
1.3.3.2. Mét sè thuËt to¸n lËp lÞch cho CPU
1. First Come First Served (FCFS)
Trong thuËt to¸n nµy, ®é u tiªn phôc vô tiÕn tr×nh
− c¨n cø vµo thêi ®iÓm
h×nh thµnh tiÕn tr×nh. Hµng ®îi c¸c tiÕn tr×nh ®−îc tæ chøc theo kiÓu FIFO. Mäi
tiÕn tr×nh ®Òu ®−îc phôc vô theo tr×nh tù xuÊt hiÖn cho ®Õn khi kÕt thóc hoÆc bÞ
ng¾t.
2. Shortest Job First (SJF).
ThuËt to¸n SJF x¸c ®Þnh thø tù −u tiªn thùc hiÖn tiÕn tr×nh dùa vµo tæng
thêi gian thùc hiÖn tiÕn tr×nh. TiÕn tr×nh nµo cã tæng thêi gian thùc hiÖn ng¾n sÏ
®−îc −u tiªn phôc vô tr−íc.
3. Shortest Remain Time (SRT)
T− − − −
¬ng tù nh SJF nh ng trong thuËt to¸n nµy, ®é u tiªn thùc hiÖn c¸c tiÕn
tr×nh dùa vµo thêi gian cÇn thiÕt ®Ó thùc hiÖn nèt tiÕn tr×nh (b»ng tæng thêi gian =
thêi gian ®· thùc hiÖn). Nh− vËy trong thuËt to¸n nµy cÇn ph¶i th−êng xuyªn cËp
nhËt th«ng tin vÒ thêi gian ®· thùc hiÖn tiÕn tr×nh. §ång thêi chÕ ®é ph©n bæ l¹i
giê CPU còng ph¶i ®−îc ¸p dông nÕu kh«ng sÏ lµm mÊt tÝnh −u viÖt cña thuËt
to¸n.
4. Round Robin (RR)
Trong thuËt to¸n nµy, hÖ thèng quy ®Þnh mét l îng tö thêi gian (time
−
quantum) kho¶ng tõ 10-100 mili gi©y. Mçi tiÕn tr×nh trong hµng ®îi lÇn l−ît ®−îc
ph©n phèi mét l−îng tö thêi gian ®Ó thùc hiÖn. Sau kho¶ng thêi gian ®ã, nÕu tiÕn
tr×nh ch−a kÕt thóc hoÆc kh«ng r¬i vµo tr¹ng th¸i ®îi th× nã ®−îc chuyÓn vÒ cuèi
hµng ®îi.
Hµng ®îi c¸c tiÕn tr×nh ®−îc tæ chøc theo kiÓu vßng trßn vµ c¸c tiÕn tr×nh
lu«n lu«n ®¶m b¶o ®−îc phôc vô. Khi cã tiÕn tr×nh míi ph¸t sinh, nã sÏ ®−îc ®−a
-24-
vµo hµng ®îi vßng trßn vµ ®−îc ®Æt ë vÞ trÝ phôc vô ngay. C¸c tiÕn tr×nh dï ng¾n
hay dµi ®Òu cã ®é −u tiªn phôc vô nh− nhau.
Trªn thùc tÕ, ®Ó ®¶m b¶o ®é −u tiªn cho c¸c tiÕn tr×nh dµi, hÖ thèng sÏ
ph©n chia c¸c tiÕn tr×nh thµnh m líp. Sè lÇn ®−îc phôc vô vµ thêi gian mét lÇn
phôc vô tiÕn tr×nh t¹i mçi líp kh¸c nhau (gi¶ sö ë líp thø i, tiÕn tr×nh ®−îc phôc
vô k lÇn vµ mçi lÇn víi thêi gian qi).
NÕu sau kho¶ng thêi gian ®· ®−îc ph©n phèi mµ tiÕn tr×nh ch−a kÕt thóc
hoÆc kh«ng bÞ ng¾t th× nã ®−îc chuyÓn sang líp thø i+1 (víi ki+1 vµ qi+1 lín h¬n).
L−îng tõ thêi gian sÏ t¨ng dÇn cho ®Õn khi tiÕn tr×nh r¬i vµo líp ngoµi cïng (líp
m). ë ®ã nã sÏ ®−îc phôc vô víi l−îng tö qm kh«ng ®æi. Nh− vËy thø tù −u tiªn
cña c¸c tiÕn tr×nh sÏ t¨ng dÇn theo thêi gian xÕp hµng ®îi.
¦u ®iÓm cña ph−¬ng ph¸p phôc vô ®ång møc theo líp sÏ cho phÐp hÖ
thèng −u tiªn nh÷ng tiÕn tr×nh ng¾n (v× nã kÕt thóc sím) nh−ng kh«ng g©y tæn h¹i
lín cho c¸c tiÕn tr×nh dµi.
Nh−îc ®iÓm lµ do ph¶i th−êng xuyªn ph©n phèi l¹i giê CPU nªn thêi gian
chê ®îi trung b×nh cña Round Robin cã thÓ lín h¬n so víi FCFS.
Chó ý: Trong thô©t to¸n, cÇn chän gi¸ trÞ l−îng tö thêi gian (time
quantum) thÝch hîp. NÕu chän gi¸ trÞ time quantum lín th× viÖc bæ sung tiÕn tr×nh
míi hoÆc kÝch ho¹t tiÕn tr×nh bÞ ng¾t sÏ lµm t¨ng thêi gian chê ®îi trung b×nh
nh−ng ng−îc l¹i nÕu chän gi¸ trÞ time quantum nhá th× nã sÏ lµm cho c¸c tiÕn
tr×nh ph¶i liªn tôc chuyÓn tr¹ng th¸i dÉn ®Õn gi¶m hÖ sè h÷u Ých cña CPU.
Th«ng th−êng gi¸ trÞ time quantum ®−îc chän theo c«ng thøc: q = t/n hoÆc
q=t/n – s. Trong ®ã: t lµ thêi gian khèng chÕ tr−íc; n lµ sè tiÕn tr×nh; s thêi gian
chuyÓn tõ tiÕn tr×nh nµy sang tiÕn tr×nh kh¸c.
VÝ dô: Cho d·y tiÕn tr×nh víi thêi gian thùc hiÖn t−¬ng øng theo b¶ng 1.2
vµ time quantum cã gi¸ trÞ q= 4
-25-
B¶ng 1.2. Thêi gian thùc hiÖn cña c¸c tiÕn tr×nh
TiÕn tr×nh T thùc hiÖn
P1 24
P2 3
P3 3
S¬ ®å Grant biÓu thÞ thø tù thùc hiÖn c¸c tiÕn tr×nh nh− h×nh 1.5.
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
H×nh 1.5. S¬ ®å Grant
Theo s¬ ®å nµy chóng ta thÊy thêi chê ®îi cña c¸c tiÕn tr×nh nh− b¶ng 1.2.
B¶ng 1.3. Thêi gian chê cña c¸c tiÕn tr×nh
Processes T thùc hiÖn T ®îi
P1 24 6
P3 3 1
P1 3 7
Tæng 30 17
DÉn ®Õn thêi gian chê ®îi trung b×nh cña c¸c tiÕn tr×nh lµ 17/3 = 5.66
1.4. Qu¶n lý bé nhí
1.4.1. Yªu cÇu ph¶i qu¶n lý bé nhí
Bé nhí lµ thiÕt bÞ l−u tr÷ duy nhÊt mµ th«ng qua ®ã CPU cã thÓ trao ®æi
th«ng tin víi m«i tr−êng bªn ngoµi. Do vËy, nhu cÇu tæ chøc, qu¶n lý bé nhí lµ
mét trong nh÷ng nhiÖm vô c¬ b¶n hµng ®Çu cña hÖ ®iÒu hµnh. Bé nhí ®−îc tæ
chøc nh− m¶ng mét chiÒu c¸c tõ nhí (word), mçi tõ nhí cã mét ®Þa chØ. ViÖc
trao ®æi th«ng tin víi m«i tr− −
êng bªn ngoµi ® îc thùc hiÖn th«ng qua c¸c thao t¸c
®äc/ghi d÷ liÖu vµo mét ®Þa chØ cô thÓ nµo ®ã trong bé nhí.
-26-
HÖ ®iÒu hµnh chÞu tr¸ch nhiÖm cÊp ph¸t kh«ng gian nhí cho c¸c tiÕn tr×nh
khi cã yªu cÇu. §Ó thùc hiÖn tèt nhiÖm vô nµy, hÖ ®iÒu hµnh cÇn ph¶i xem xÐt
mét sè khÝa c¹nh sau:
- Sù t−¬ng øng gi÷a ®Þa chØ logic vµ ®Þa chØ vËt lý: Lµm thÕ nµo ®Ó chuyÓn
®æi mét ®Þa chØ logic thµnh mét ®Þa chØ vËt lý.
- Qu¶n lý bé nhí vËt lý bao gåm: Ph©n bæ kh«ng gian nhí cho c¸c tiÕn
tr×nh ho¹t ®éng, thu håi kh«ng gian nhí khi tiÕn tr×nh kÕt thóc, qu¶n lý ®−îc
kh«ng gian nhí tù do.
- Chia sÎ th«ng tin: Cho phÐp c¸c tiÕn tr×nh ®ang ho¹t ®éng trong bé nhí
cã thÓ chia sÎ th«ng tin víi nhau.
- B¶o vÖ bé nhí: Ng¨n chÆn c¸c tiÕn tr×nh x©m ph¹m ®Õn vïng nhí ®−îc
cÊp ph¸t cho c¸c tiÕn tr×nh kh¸c.
1.4.2. C¸c s¬ ®å qu¶n lý bé nhí
1.4.2.1. S¬ ®å ph©n ho¹ch cè ®Þnh
Bé nhí ®−îc chia thµnh n phÇn kh«ng nhÊt thiÕt ph¶i b»ng nhau vµ mçi phÇn
®−îc sö dông nh− mét bé nhí ®éc lËp gäi lµ mét ph©n ho¹ch. Mçi ph©n ho¹ch cã
thÓ n¹p ®− −
îc mét ch ¬ng tr×nh vµ tæ chøc thùc hiÖn mét c¸ch ®ång thêi. Nh− vËy
trªn lý thuyÕt nÕu cã n ph©n ho¹ch th× sÏ cã thÓ n¹p ®−îc n ch−¬ng tr×nh vµ thùc
hiÖn mét c¸ch ®ång thêi (n ®−îc gäi lµ hÖ sè song song cña hÖ thèng).
1.4.2.2. S¬ ®å ph©n ho¹ch ®éng
Trong s¬ ®å nµy, bé nhí cã mét b¶ng qu¶n lý kh«ng gian nhí tù do thèng
nhÊt. Khi thùc hiÖn ch−¬ng tr×nh, hÖ thèng dùa vµo kÝch th−íc ch−¬ng tr×nh ®Ó
ph©n bæ kh«ng gian nhí thÝch hîp, t¹o thµnh mét vïng nhí ®éc lËp vµ t¹o b¶ng
qu¶n lý riªng. Khi c¸c ch−¬ng tr×nh kÕt thóc, bé nhí giµnh cho nã sÏ bÞ thu håi.
-27-
1.4.2.3. S¬ ®å ho¸n ®æi (swapping)
S¬ ®å ho¸n ®æi dùa trªn nguyªn t¾c néi dung ch−¬ng tr×nh ë tr¹ng th¸i chê
®îi trong mét kho¶ng thêi gian dµi sÏ ®−îc t¹m thêi chuyÓn ra bé nhí ngoµi
(swap out) ®Ó gi¶i phãng vïng nhí cÊp ph¸t cho ch−¬ng tr×nh kh¸c ho¹t ®éng.
Khi ch−¬ng tr×nh kÕt thóc tr¹ng th¸i chê nã sÏ ®−îc n¹p trë l¹i bé nhí trong
(swap in) ®Ó tiÕp tôc thùc hiÖn.
-28-
Ch−¬ng 2 - Vi ®iÒu khiÓn vµ ng«n ng÷ lËp tr×nh
cho vi ®iÒu khiÓn
2.1. Vi ®iÒu khiÓn
2.1.1. Vi xö lý vµ vi ®iÒu khiÓn.
Bé vi xö lý ®· cã lÞch sö ra ®êi tõ 1971 khi Intel giíi thiÖu bé 8080 dïng
cho m¸y tÝnh ®¬n board. KÓ tõ khi ra ®êi, qua nhiÒu thÕ hÖ, cã nhiÒu c¶i tiÕn
nh−ng lÜnh vùc cña c¸c bé vi xö lý vÉn lµ c¸c hÖ thèng m¸y tÝnh. Trong hÖ thèng
m¸y tÝnh, bé vi xö lý cïng víi bé nhí, c¸c thiÕt bÞ vµo/ra...,hîp thµnh mét hÖ
thèng cã kh¶ n¨ng xö lý, ®iÒu khiÓn, l−u tr÷... cùc m¹nh.
Mét hÖ thèng m¸y tÝnh nÕu dïng cho mét øng dông lín yªu cÇu xö lý
nhanh, l u tr÷ lín... th× kh«ng cã vÊn ®Ó g×
− ®Ó bµn. Tuy nhiªn nÕu mang hÖ thèng
nµy vµo dïng cho c¸c øng dông nhá th× l¹i trë thµnh l·ng phÝ. Tõ thùc tÕ nµy c¸c
nhµ s¶n xuÊt ®· nghiªn cøu vµ ®−a ra c¸c hÖ m¸y tÝnh nhá víi mét bé xö lý nhá,
mét bé nhí ch−¬ng tr×nh vµ d÷ liÖu nhá, mét sè c¸c thµnh phÇn vµo ra c¬ b¶n.
TÊt c¶ c¸c thµnh phÇn nµy ®−îc gãi gän trong mét chip ®¬n vµ ®©y ch×nh lµ bé vi
®iÒu khiÓn.
Nh− vËy ®Ó ph©n biÖt hai kh¸i niÖm vi xö lý vµ vi ®iÒu khiÓn th× cÇn ph¶i
xem xÐt trªn 2 ph−¬ng diÖn: KiÕn tróc phÇn cøng vµ lÜnh vùc øng dông. PhÇn
cøng cña mét bé vi ®iÒu khiÓn lµ mét bé vi xö lý, bé nhí, c¸c thiÕt bÞ vµo/ra. Vi
®iÒu khiÓn cã ®ñ nh÷ng thµnh phÇn c¬ b¶n cña mét hÖ m¸y tÝnh nªn bé vi ®iÒu
khiÓn cã thÓ ho¹t ®éng ®éc lËp ®−îc cßn vi xö lý th× kh«ng. XuÊt ph¸t tõ nh÷ng
®Æc tr−ng võa nªu nªn bé vi ®iÒu khiÓn ®−îc t×m thÊy trong c¸c øng dông nhá cßn
vi xö lý n»m trong c¸c hÖ thèng m¸y tÝnh.
AT89S52 lµ bé vi ®iÒu khiÓn 8 bit, ®−îc chÕ t¹o bëi h·ng ATMEL theo kiÕn
tróc cña 8051.
-29-
H×nh 2.1. S¬ ®å khèi cña bé vi ®iÒu khiÓn AT89S52
Trªn h×nh 2.1 lµ s¬ ®å khèi cña bé vi ®iÒu khiÓn nµy, theo ®ã bé vi ®iÒu
khiÓn cã ®Çy ®ñ c¸c phÇn cøng cÇn thiÕt cho mét hÖ ®iÒu hµnh thêi gian thùc nh−
bé xö lý trung t©m, bé nhí, c¸c bé timer ®Ó t¹o c¸c time tick, bé xö lý ng¾t ®Ó
thùc hiÖn chuyÓn m¹ch gi÷a c¸c tiÕn tr×nh, khèi vµo ra ®Ó thùc hiÖn c¸c thao t¸c
trong c¸c tiÕn tr×nh...Nh− vËy chØ cÇn mét bé vi ®iÒu khiÓn AT89S52víi gi¸ thµnh
kh¸ rÎ lµ ®· cã thÓ thùc hiÖn c¸c øng dông thêi gian thùc víi chi phÝ rÊt thÊp. §©y
còng chÝnh lµ lý do ®Ó t¸c gi¶ ®Ò tµi chän nghiªn cøu vi ®iÒu khiÓn vµ øng dông
vµo hÖ thèng thêi gian thùc.
Memory
Intermal Devices
CPU
Memory
ROM
8Kb
RAM
256
byte
I/O devices
Timer0
Timer1
Timer2
(16 bit)
UART Interrupt
Controller
System Bus
ROM
64Kb
RAM
64Kb
I/O devices
....
.... ...
Extermal Devices
Oscilla-
tior
-30-
2.1.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn.
AT89S52 coù boä nhôù theo caáu truùc Harvard: coù nhöõng vuøng cho boä nhôù
rieâng bieät cho chöông trình vaø döõ lieäu. Nhö ñaõ noùi ôû treân, caû boä nhôù chöôn
trình vaø döõ lieäu coù saün ôû treân chip tuy nhieân dung löôïng cuûa caùc boä nhôù tr
chip laø haïn cheá. Khi thieát keá caùc öùng duïng ñoøi hoûi boä nhôù lôùn ngöôøi ta coù
duøng boä nhôù ngoaøi vôùi dung löôïng leân tôùi 64 Kbytes cho boä nhôù chöông trình
vaø cho 64 Kbytes boä nhôù döõ lieäu (hình 2.2).
H×nh 2.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn
2.1.2.1. Bé nhí ch−¬ng tr×nh.
AT89S52 cã 8Kb Flash Rom trªn chip, khi ch©n EA (ch©n sè 31) ®−îc ®Æt ë
møc logic cao (+5V), bé vi ®iÒu khiÓn sÏ thùc hiÖn ch−¬ng tr×nh trong Rom néi
b¾t dÇu tõ ®Þa chØ 0000H. Sè lÇn lËp tr×nh (ghi) cho bé nhí nµy lµ kho¶ng 1000
lÇn.
Khi ch©n EA ®−îc ®Æt ë møc logic thÊp, bé vi ®iÒu khiÓn sÏ thùc hiÖn
ch−¬ng tr×nh ë bé nhí ch−¬ng tr×nh ngoµi (EPPOM ngoµi), tuy nhiªn ®Ó cã ®−îc
Boä nhôù ngoaøi
Boä nhôù trong
Boä nhôù
chöông
trình
(8Kb) 256
bytes
Boä nhôù
chöông
trình
(64Kb)
Boä nhôù
döõ lieäu
(64Kb)
0000H
00FFH
FFFFH
1FFFH
-31-
®iÒu nµy th× cÇn ph¶i cã mét m¹ch phèi ghÐp AT89S52 víi EPROM ®−îc lùa
chän.
Trªn h×nh 2.3: Mét vi m¹ch chèt (Latch) sÏ t¸ch riªng Bus ®a hîp ®Þa chØ vµ
d÷ liÖu AD0-AD7; Tuú theo dung l−îng cña EPROM sÏ cã sè ®−êng ®Þa chØ
t−¬ng øng ®−îc dïng; EPROM ®−îc ®äc nhê tÝn hiÖu PSEN.
H×nh 2.3. S¬ ®å ghÐp nèi AT89S52 víi EPROM
2.1.2.2. Bé nhí d÷ liÖu.
a.Bé nhí d÷ liÖu trªn chip.
AT89S52 cã 256 bytes Ram nh− baûng 2.1 ñöôïc phaân chia nhö sau:
- Caùc bank thanh ghi coù ñòa chæ töø 00H ñeán 1FH.
32 byte thaáp cuûa boä nhôù noäi ñöôïc daønh cho caùc bank thanh ghi. Boä leänh
AT89S52 hoå trôï 8 thanh ghi coù teân laø R0 -R7 vaø theo maëc ñònh sau khi reset
heä thoáng, caùc thanh ghi naøy coù caùc ñòa chæ töø 00H - 07H.
89S52
-32-
Caùc leänh duøng caùc thanh ghi RO - R7 seõ ngaén hôn vaø nhanh hôn so vôùi
caùc leänh coù chöùc naêng töông öùng duøng kieåu ñòa chæ tröïc tieáp. Caùc döõ lieäu ñö
duøng thöôøng xuyeân neân duøng moät trong caùc thanh ghi naøy.
Do coù 4 bank thanh ghi neân taïi moät thôøi ñieåm chæ coù moät bank thanh ghi
ñöôïc truy xuaát bôûi caùc thanh ghi RO - R7 ñeåà chuyeån ñoåi vieäc truy xuaát caùc
bank thanh ghi ta phaûi thay ñoåi caùc bit choïn bank trong thanh ghi traïng thaùi.
- RAM ñòa chæ hoùa töøng bit coù ñòa chæ töø 20H ñeán 2FH.
AT89S52 coù 128 bit coù chöùa caùc byte ñònh ñòa chæ theo bit töø 20H ñeán
2FH.
YÙ töôûng truy xuaát töøng bit baèng phaàn meàm laø caùc ñaêëc tính maïnh cuûa c
boä vi ñieàu khieån noùi chung. Caùc bit coù theå ñöôïc ñaët, xoùa, AND, OR, ... , vôùi 1
leänh ñôn.
- RAM ña duïng töø 30H ñeán FFH.
-Caùc thanh ghi chöùc naêng ñaëc bieät töø 80H ñeán FFH.
-33-
B¶ng 2.1. Bé nhí d÷ liÖu trªn chÝp cña AT89S52
FF
30
Vuøng RAM ña duïng
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40
27 3F 3E 3D 3C 3B 3A 39 38
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18
22 17 16 15 14 13 12 11 10
21 0F 0E 0D 0C 0B 0A 09 08
20 07 06 05 04 03 02 01 00
1F Bank 3
18
17 Bank 2
10
0F Bank 1
08
07 Bank thanh ghi 0
00 (maëc ñònh cho R0 -R7)
FF
80
Daønh cho caùc thanh ghi ñaëc bieät (SFR)
RAM Caùc thanh ghi chöùc naêng
-34-
b. Bé nhí d÷ liÖu ngoµi.
H×nh 2.4. S¬ ®å ghÐp nèi AT89S52 víi RAM
H×nh 2.5. Gi¶i m∙ ®Þa chØ cho c¸c vi m¹ch nhí
8051 RAM
A0-A7
Port 0 D0-D7
EA
74HC373
ALE
RD
WR
OE
WE
O
G
D
Port 2 A8-A15
RAM
RAM
text
Address Bus (A0- A15)
Data Bus (D0-D7)
74HC138
C
B
A
E
E
E
7
6
5
4
3
2
1
0
CS
CS
CS
CS
CS
CS
A0-A12 A0-A12
D0-D7
D0-D7
OE OE
WE
WR RD
PSEN
RAM
8KBytes
EPROM
8KBytes
2764 6264
Select another EPROM/RAM
Tíi c¸c vi m¹ch
ROM/RAM kh¸c
-35-
Boä nhôù döõ lieäu ngoaøi laø boä nhôù RAM ñöôïc ñoïc hoaëc ghi bôûi tín hieäu /R
vaø WR.Caùc RAM coù theå giao tieáp vôùi AT89S52 töông töï caùch thöùc nhö
EPROM ngoaïi tröø chaân /RD cuûa AT89S52 noái vôùi chaân /OE (Output Enable)
cuûa RAM vaø /chaân WR cuûa AT89S52 noái vôùi chaân /WE cuûa RAM (hình 2.10).
Neáu coù nhieàu vi maïch ROM vaø RAM cuøng ñöôïc gheùp noái vôùi AT89S52
thì coù theå duøng theâm vi maïch giaûi maõ 74LS138 (hình 2.5).
Nhö ñaõ noùi ôû treân, boä nhôù chöông trình vaø boä nhôù döõ lieäu cuûa AT89S5
coù theå truøng ñòa chæ, ñieàu naøy cho pheùp ngöôøi thieát keá coù theå xaây döïng moä
nhôù döõ lieäu chöùa chöông trình thöïc thi (boä nhôù döõ lieäu ñoïc nhö boä nhôù chöông
trình) nhö hình 2.6.
H×nh 2.6. Bé nhí d÷ liÖu ®äc nh− −
bé nhí ch ¬ng tr×nh
2.1.3. C¸c bé ®Þnh thêi.
Caùc boä ñònh thôøi (Timer) coù theå hieåu laø moät chuoãi caùc flip-flop chia
ñoâi taàn soá noái tieáp vôùi nhau, chuùng nhaän tín hieäu vaøo laøm nguoàn xung nhòp
ngoõ ra cuûa taàn soá cuoái laøm nguoàn xung nhòp cho flip-flop baùo traøn cuûa
Timer (flip-flop côø). Giaù trò nhò phaân trong caùc flip-flop cuûa Timer coù theå
RAM
W
OE
W
RD
PSEN
-36-
xem nhö soá ñeám soá xung nhòp (hoaëc caùc söï kieän) töø khi khôûi ñoäng Timer.
Ví duï Timer 16 bit seõ ñeám leân töø 0000H ñeán FFFFH, côø baùo traøn seõ leân 1
khi soá ñeám traøn töø FFFFH ñeán 0000H.
AT89S52 coù 3 Timer 16 bit, moãi Timer coù boán cheá ñoä hoaït ñoäïng. Ngöôøi
ta söû duïng caùc Timer ñeå: Ñònh khoaûng thôøi gian, ñeám söï kieän hoaëc taïo toác ño
baud cho port noái tieáp trong.
H×nh 2.7. Ho¹t ®éng cña Timer0 vµ Timer1 ë chÕ ®é 1.
Nguyªn t¾c ho¹t ®éng cña c¸c bé ®Þnh thêi nh− sau:
Nguån xung clock ®−îc ®−a tíi Timer tõ mét trong c¸ch phô thuéc vµo bit
C-T trong thanh ghi TMOD:
• NÕu C-/T = 1, xung clock sÏ ®−îc lÊy tõ bé t¹o xung bªn ngoµi qua
ch©n Tx(T0,T1 hoÆc T2).
• NÕu C-/T = 0, xung clock sÏ ®−îc lÊy tõ bé chia tÇn trong chip, tÇn
sè cña xung ë ®©y lµ 1/12 tÇn sè cña bé dao ®éng th¹ch anh (Fosc).
Nguån xung clock nãi trªn sÏ ®−îc ®iÒu khiÓn ®Ó ®−a tíi c¸c Timer b»ng
c¸c bit: TR, GATE vµ møc logic trªn c¸c ch©n INTx:
• NÕu TRx=0, c¸c Timer sÏ bÞ cÊm mµ kh«ng cÇn quan t©m tíi GATE
vµ møc logic trªn c¸c ch©n INTx (thÓ hiÖn b»ng “cæng AND”).
-37-
• NÕu TRx=1, c¸c Timer sÏ ho¹t ®éng víi mét trong 2 ®iÒu kiÖn sau
x¶y ra (thÓ hiÖn b»ng cæng ‘OR”): Thø nhÊt: bit GATE=1; thø hai: trªn ch©n
INTx cã møc logic 1.
Gi¸ trÞ lín nhÊt mµ c¸c Timer chøa ®−îc lµ 65535 (t−¬ng øng FFFF(H)), khi
®Õm qu¸ gi¸ trÞ nµy sÏ x¶y ra trµn, khi cê trµn TF sÏ ®−îc ®Æt b»ng 1 vµ g©y ra
ng¾t do bé ®Þnh thêi. C¨n cø vµo sù kiÖn nµy bé xö lý ng¾t sÏ n¹p dÞa chØ cña
vector ng¾t cho con trá PC, bé vi ®iÒu khiÓn sÏ thùc hÖn ch−¬ng tr×nh ë ®©y.
Trong hÖ ®iÒu hµnh thêi gian thùc, bé ®Þnh thêi lµ mét trong nh÷ng tµi
nguyªn phÇn cøng kh«ng thÓ thiÕu. Bé ®Þnh thêi dïng ®Ó x¸c ®Þnh c¸c kho¶ng
thêi gian thÝch hîp cho mçi tiÕn tr×nh ho¹t ®éng (gäi lµ timer tick). Kho¶ng thêi
gian nµy cã thÓ thay ®æi dÏ dµng nhê viÖc n¹p c¸c gi¸ trÞ kh¸c nhau cho bé timer.
Kho¶ng thêi gian nµy còng thay ®æi tuú theo c¸c øng dông thêi gian thùc sao cho
nã lu«n nhá h¬n thêi gian ®¸p øng cña hÖ thèng víi c¸c kÝch thÝch bªn ngoµi.
2.1.4. Bé xö lý ng¾t.
Ng¾t cã thÓ hiÓu ®¬n gi¶n lµ t¹m dõng mét ho¹t ®éng A nµo ®ã vµ chuyÓn
sang mét ho¹t ®éng B kh¸c cã nhu cÇu cÊp thiÕt h¬n. Khi x¶y ra ng¾t, toµn bé c¸c
c«ng viÖc, tr¹ng th¸i cña ho¹t ®éng A sÏ ®−îc cÊt vµo ng¨n xÕp ®Ó lµm c¨n cø
tiÕp diÔn khi bé vi xö lý ®· hoµn thµnh xong ho¹t ®éng B vµ quay trë l¹i víi ho¹t
®éng A.
AT89S52 cã 6 nguån ng¾t:
- Ng¾t ngoµi ®Õn tõ ch©n /INT0.
- Ng¾t ngoµi ®Õn tõ ch©n /INT1.
- Ng¾t do bé timer 0.
- Ng¾t do bé timer 1.
- Ng¾t do bé timer 2.
-38-
- Ng¾t do Port nèi tiÕp.
6 nguån ng¾t nµy ®−îc xo¸ khi Reset vµ ®−îc ®Æt riªng b»ng phÇn mÒm bëi
c¸c bit trong c¸c thanh ghi cho phÐp ng¾t (IE), thanh ghi −u tiªn ng¾t (IP).
H×nh 2.8. C¸c nguån ng¾t cña AT89S52
Nh− ®· tr×nh bµy ë môc 2.3, c¸c bé ®Þnh thêi t¹o ra c¸c kho¶ng thêi gian
(time tick), theo ®ã c¸c mét tiÕn tr×nh ph¶i ®−îc t¹m dõng vµ mét tiÕn tr×nh kh¸c
sÏ ®−îc thùc hiÖn. Sù chuyÓn m¹ch sang tiÕn tr×nh míi kÐo theo viÖc ph¶i l−u l¹i
c¸c c«ng viÖc cña tiÕn tr×nh cò. Ng¾t do bé ®Þnh thêi chÝnh lµ c¬ së ®Ó cã thÓ thùc
hiÖn viÖc chuyÓn m¹ch gi÷a c¸c tiÕn tr×nh.
-39-
Ngoµi ra trªn vi ®iÒu khiÓn cßn cã mét sè c¸c nguån ng¾t kh¸c. C¸c nguån
ng¾t nµy khi ®−îc ®Æt ë c¸c thø tù −u tiªn thÝch hîp sÏ lµ con ®−êng ®Ó mét hÖ
thèng thêi gian thùc cã thÓ ph¶n øng kÞp thêi víi c¸c kÝch thÝch tõ bªn ngoµi.
2.2. Ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn
2.2.1. Tæng quan vÒ c¸c ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn.
Cho ®Õn nay khi lËp tr×nh cho c¸c bé vi ®iÒu khiÓn ng−êi ta th−êng sö dông
2 ng«n ng÷ chÝnh ®ã lµ hîp ng÷ vµ C. Hîp ng÷ (assembly) lµ ng«n ng÷ lËp tr×nh
bËc thÊp (chØ ®øng trªn ng«n ng÷ m¸y mét bËc). Hîp ng÷ sö dông chÝnh ngay tËp
lÖnh cña bé vi ®iÒu khiÓn t−¬ng øng ®Ó viÕt nªn mét ch−¬ng tr×nh. §Ó biªn dÞch
thµnh m· m¸y cã thÓ sö dông tr×nh dÞch hîp ng÷ (assembler) hoÆc cã thÓ dïng
chÝnh b¶ng m· lÖnh do nhµ s¶n xuÊt cung cÊp ®Ó m· ho¸ c¸c lÖnh vµ tæng hîp
thµnh m· (code) cña ch−¬ng tr×nh. Chóng ta cïng xem xÐt vÝ dô sau:
MOV AL,80H ; chuyÓn sè 80H vµo AL
MOV BL,12H ; chuyÓn sè 12H vµo BL
ADD AL,BL ; céng hai sè víi nhau.
Trong ®o¹n ch−¬ng tr×nh trªn nÕu tra b¶ng m· sÏ cã ®−îc m· cña 3 lÖnh lÇn
l−ît lµ:
B0 80
B3 12
80 C0
NÕu tæng hîp l¹i th× m· cña ®o¹n ch−¬ng tr×nh trªn sÏ lµ B0 80 B3 12
80 C0.
C¸ch tra b¶ng m· lÖnh vµ ho¸ lÖnh sau ®ã tæng hîp thµnh m· ch−¬ng tr×nh
cã thÓ g©y ra nhÇm lÉn vµ mÊt rÊt nhiÒu thêi gian chÝnh v× vËy mµ tr×nh dÞch hîp
ng÷ ra ®êi. Cã trong tay tr×nh dÞch hîp ng÷ ng−êi lËp tr×nh cã thÓ ®· gi¶m bít
-40-
®−îc kh¸ nhiÒu c«ng søc khi lËp tr×nh cho vi ®iÒu khiÓn. Tuy nhiªn chóng ta cïng
xem xÐt vÝ dô sau:
Thùc hiÖn phÐp to¸n AX=7 * 9 + 12 * 8.
Hîp ng÷:
MOV AL,7 ;sè h¹ng thø nhÊt chøa trong AL
MOV BL,9 ;sè h¹ng thø hai chøa trong BL
MUL BL ;nh©n 2 sè, kÕt qu¶ chøa trong AX
MOV CX,AX ;chuyÓn kÕt qu¶ vµo thanh ghi kh¸c ®Ó
chuÈn bi cho phÐp ;nh©n thø hai
MOV AL,12
MOV BL,8
MUL BL
ADD AX,CX ;céng hai tÝch víi nhau
AINSI C:
AX=7*9+12*8;
Râ rµng víi cïng mét nhiÖm vô nh−ng AINSI C chØ cÇn 1 dßng lÖnh trong
khi hîp ng÷ cÇn tíi 8 dßng lÖnh vµ c¶ 8 dßng lÖnh trªn ®Òu ph¶i thao t¸c trªn c¸c
thanh ghi (phÇn cøng). Tõ lý do nµy mµ ng−êi ta nghÜ ®Õn viÖc nªn sö dông mét
ng«n ng÷ cÊp cao h¬n ®Ó thay thÕ cho hîp ng÷ vµ x©y dùng tr×nh dÞch (compiler)
cho ng«n ng÷ cÊp cao ®ã.
Khi thiÕt kÕ phÇn mÒm cho mét hÖ thèng nhóng nhá sö dông 8085, viÖc
sö dông m· hîp ng÷ (assembly code) ®Ó ph¸t triÓn toµn bé s¶n phÈm ®· trë thµnh
chuyÖn b×nh th−êng. §èi víi nhiÒu ®Ò tµi, ®©y lµ tiÕp cËn kh¶ thi v× l−îng m· cÇn
®−îc t¹o ra th−êng nhá h¬n 8 Kbyte vµ t−¬ng ®èi ®¬n gi¶n vÒ b¶n chÊt. NÕu mét
kü s− phÇn cøng ®−îc giao nhiÖm vô thiÕt kÕ c¶ phÇn cøng lÉn phÇn mÒm, ng−êi
nµy th−êng cã khuynh h−íng viÕt phÇn mÒm b»ng hîp ng÷. Ng−êi kü s− phÇn
-41-
cøng th−êng kh«ng quen víi mét ng«n ng÷ cÊp cao nh− C ch¼ng h¹n hoÆc ng−êi
nµy kh«ng quan t©m ®Õn ng«n ng÷ cÊp cao.
KhuyÕt ®iÓm cña c¸c ®Ò tµi ®−îc viÕt b»ng hîp ng÷ cã thÓ lµ khã ®äc vµ
khã b¶o tr×, ®Æc biÖt khi c¸c ch−¬ng tr×nh cho c¸c ®Ò tµi nµy kh«ng ®−îc chó
thÝch tèt. Ngoµi ra, l−îng m· cã thÓ sö dông l¹i tõ mét ®Ò tµi viÕt b»ng hîp ng÷
th−êng rÊt thÊp. ViÖc sö dông ng«n ng÷ cÊp cao nh− C cã thÓ gi¶i quyÕt c¸c vÊn
®Ò nµy.
Mét ch−¬ng tr×nh ®−îc viÕt b»ng C sÏ dÔ ®äc h¬n so víi ch−¬ng tr×nh ®−îc
viÕt b»ng hîp ng÷. Do ch−¬ng tr×nh viÕt b»ng C së h÷u c¸c cÊu tróc lín h¬n, ta
dÔ dµng hiÓu vµ b¶o tr× ch−¬ng tr×nh. Do tÝnh cã module cña ng«n ng÷ C, mét
ch−¬ng tr×nh viÕt b»ng C cã thÓ sö dông l¹i m· mét c¸ch tèt h¬n khi ®i tõ ®Ò tµi
kh¸c. ViÖc chia ch−¬ng tr×nh thµnh nhiÒu hµm sÏ thóc ®Èy cÊu tróc phÇn mÒm tèt
h¬n vµ dÉn ®Õn c¸c hµm cã thÓ ®−îc lÊy ra tõ mét ®Ò tµi vµ sö dông vµo ®Ò tµi
kh¸c, nh− vËy sÏ gi¶m tæng thêi gian ph¸t triÓn.
Mét ng«n ng÷ cÊp cao ch¼ng h¹n nh− C cho phÐp ng−êi ph¸t triÓn viÕt
ch−¬ng tr×nh t−¬ng ®ång nhiÒu h¬n víi suy nghÜ cña con ng−êi so víi ch−¬ng
tr×nh viÕt b»ng hîp ng÷. Ng−êi ph¸t triÓn cã thÓ tËp trung nhiÒu thêi gian h¬n vµo
viÖc thiÕt kÕ c¸c gi¶i thuËt cña hÖ thèng thay v× ph¶i tËp trung vµo viÖc thùc hiÖn
riªng rÏ c¸c gi¶i thuËt. §iÒu nµy sÏ lµm gi¶m mét c¸ch ®¸ng kÓ thêi gian ph¸t
triÓn vµ lµm gi¶m thêi gian gì rèi v× ch−¬ng tr×nh sÏ dÔ hiÓu h¬n.
B»ng c¸ch sö dông ng«n ng÷ gièng nh− C, ng−êi lËp tr×nh kh«ng cÇn ph¶i
am t−êng kiÕn tróc cña bé vi ®iÒu khiÓn. §iÒu nµy cã nghÜa lµ mét ng−êi ch−a
quen víi mét bé vi ®iÒu khiÓn cho s½n cã thÓ x©y dùng mét ®Ò tµi nhanh h¬n v× tæ
chøc bªn trong cña bé vi ®iÒu khiÓn ®Ých cã thÓ kh«ng cÇn nghiªn cøu. Ngoµi ra
ch−¬ng tr×nh ®−îc ph¸t triÓn b»ng C sÏ dÔ dµng sö dông víi c¸c hÖ thèng kh¸c so
víi ch−¬ng tr×nh ®−îc ph¸t triÓn b»ng hîp ng÷.
-42-
NhiÒu bé vi ®iÒu khiÓn cã c¸c tr×nh dÞch ng«n ng÷ C, c¸c tr×nh dÞch nµy hç
trî AINSI C.
TÊt c¶ c¸c ®iÒu nµy kh«ng cã ý muèn nãi r»ng hîp ng÷ kh«ng cã vai trß
cña m×nh. Trªn thùc tÕ nhiÒu hÖ thèng nhóng (®Æc biÖt lµ c¸c hÖ thèng thêi gian
thùc) kÕt hîp ch−¬ng tr×nh C vµ ch−¬ng tr×nh hîp ng÷.
§èi víi c¸c thao t¸c cã thêi gian tíi h¹n, ch−¬ng tr×nh hîp ng÷ th−êng lµ
ph−¬ng ph¸p duy nhÊt ®−îc lùa chän. Tuy nhiªn theo kinh nghiÖm, phÇn cßn l¹i
cña ®Ò tµi (bao gåm nhiÒu giao diÖn phÇn cøng) cã thÓ vµ nªn ®−îc ph¸t triÓn
b»ng C. Mét trong nh÷ng ®iÒu quan träng nhÊt vÒ ng«n ng÷ C lµ ng«n ng÷ nµy
cho phÐp ta thùc hiÖn c¸c thao t¸c møc thÊp cña phÇn cøng nÕu cÇn, l¹i cßn cung
cÊp cho ta chøc n¨ng vµ kh¸i niÖm trõu t−îng cña ng«n ng÷ cÊp cao.
2.2.2. Nh÷ng vÊn ®Ò víi ng«n ng÷ C viÕt cho c¸c bé vi ®iÒu khiÓn.
Ng«n ng÷ lËp tr×nh C lµ mét ng«n ng÷ lËp tr×nh ®−îc sö dông réng r·i trªn
thÕ giíi. NhiÒu ng−êi cho r»ng ®©y lµ ng«n ng÷ lËp tr×nh bËc cao v× C cã kh¸
nhiÒu thuéc tÝnh gièng c¸c ng«n ng÷ lËp tr×nh bËc cao, vÝ dô nh−: cÊu tróc cña
ch−¬ng tr×nh, c¸ch ®Þnh nghÜa vµ gäi c¸c thñ tôc...,tuy nhiªn søc m¹nh thùc sù
cña C kh«ng ph¶i ë ®ã mµ chÝnh lµ kh¶ n¨ng truy nhËp phÇn cøng, thao t¸c trªn
c¸c bit, byte, word cña phÇn cøng ®èi t−îng. Còng chÝnh bëi lý do nµy mµ C
®−îc rÊt nhiÒu nhµ thiÕt kÕ hÖ ®iÒu hµnh sö dông lµ ng«n ng÷ lËp tr×nh bªn c¹nh
hîp ng÷, cã thÓ kÓ ra c¸c hÖ ®iÒu hµnh cã sö dông C ®Ó lËp tr×nh nh−: UNIX,
LINUX, MS-Windows...
Trªn bé vi ®iÒu khiÓn 8bit, dÔ hiÓu lµ kh«ng thÓ ®em so s¸nh vÒ tµi nguyªn
®èi víi c¸c bé vi xö lý ®−îc chän ®Ó viÕt hÖ ®iÒu hµnh LINUX hay Windows. Cã
thÓ kÓ ra mét sè dÉn chøng: tµi nguyªn vÒ bé nhí cña vi ®iÒu khiÓn chØ vµi Kbyte
®èi víi bé nhí ch−¬ng tr×nh vµ vµi tr¨m byte ®èi víi bé nhí d÷ liÖu; kh«ng gian
®Þa chØ còng chØ lµ vµi chôc Kbyte...
-43-
Tr×nh dÞch C cã kh¶ n¨ng nhËn m· nguån C (C source code) cña ng−êi lËp
tr×nh vµ t¹o ra m· ®èi t îng (object code) ®
− −îc tèi −u ho¸ cao tõ m· nguån nµy.
Tuy nhiªn cã nhiÒu ®iÒu mµ chóng ta, víi t− c¸ch lµ ng−êi thiÕt kÕ, cã thÓ thùc
hiÖn ®Ó gióp cho tr×nh dÞch t¹o ra m· tèt h¬n ®Ó cã thÓ tiÕt kiÖm ®îc tèi ®a c¸c tµi
nguyªn cña vèn h¹n chÕ cña bé vi ®iÒu khiÓn.
2.2.2.1. Gi¶m kÝch th−íc biÕn.
Mét trong nh÷ng ®iÒu c¬ b¶n nhÊt mµ ta cÇn ph¶i lµm ®Ó c¶i thiÖn ch−¬ng
tr×nh cña ta lµ ®Æc biÖt l−u ý ®Õn kÝch th−íc cña c¸c biÕn. §èi víi ng−êi th−êng
lËp tr×nh b»ng C trªn c¸c m¸y ch¼ng h¹n nh− mét mainframe hoÆc PC, viÖc khai
b¸o nh÷ng ®iÒu nh− lµ c¸c bé ®Õm vßng lÆp d−íi d¹ng c¸c sè nguyªn lµ rÊt b×nh
th−êng, ngay c¶ ®èi víi c¸c biÕn mµ gi¸ trÞ cña chóng kh«ng bao giê v−ît qu¸
255. Trªn mét m¸y 8 – bit nh− 8051, viÖc sö dông réng r·i c¸c kiÓu d÷ liÖu cã
kÝch th−íc lín h¬n 8 bÝt sÏ g©y ra sù hoang phÝ lín vÒ kh¶ n¨ng xö lý vµ bé nhí.
Ta cÇn ph¶i cÈn thËn xem xÐt tÇm gi¸ trÞ ®èi víi biÕn mµ ta khai b¸o vµ kÕ ®Õn
chän kiÓu nhá nhÊt tho¶ yªu cÇu. HiÓn nhiªn kiÓu ®− −
îc a chuéng nhÊt ®èi víi
c¸c biÕn sÏ lµ unsigned char, do kiÓu nµy chØ sö dông 1 byte.
2.2.2.2. Sö dông kiÓu unsigned.
§Õn ®©y, ta cã thÓ ng¹c nhiªn v× kiÓu ®− −
îc a chuéng lµ kiÓu unsigned
char thay v× lµ kiÓu char. LËp luËn ®»ng sau ®iÒu nµy lµ 8051 kh«ng hç trî sè häc
cã dÊu vµ ®o¹n m· phô ®−îc yªu cÇu bëi mét gi¸ trÞ cã dÊu, tr¸i ng îc víi mét
−
gi¸ trÞ kh«ng dÊu, sÏ lÊy ®i toµn bé c¸c tµi nguyªn cña bé vi ®iÒu khiÓn. Nh− vËy
cïng víi viÖc chän lùa c¸c kiÓu biÕn t−¬ng øng víi tÇm gi¸ trÞ, ta còng ph¶i xem
xÐt xem cã ph¶i biÕn sÏ ®−îc sö dông cho mét thao t¸c nµo ®ã sÏ yªu cÇu c¸c sè
©m. NÕu kh«ng, ta cÇn ®¶m b¶o r»ng ta chØ ra biÕn cã kiÓu unsigned. Ta cÇn lo¹i
bá c¸c sè ©m ra khái mét hµm hoÆc toµn bé øng dông cña ta.
-44-
2.2.2.3. Kh«ng sö dông sè dÊu chÊm ®éng.
ViÖc thùc hiÖn c¸c phÐp to¸n sè dÊu chÊm ®éng trªn c¸c gi¸ trÞ 32-bit víi
mét bé vi ®iÒu khiÓn 8 bit còng gièng nh− ta c¾t mét b·i cá b»ng c¸c ®å dïng c¾t
mãng tay. Ta cã thÓ thùc hiÖn ®−îc ®iÒu nµy nh−ng sÏ hoang phÝ mét l−îng thêi
gian lín khñng khiÕp. BÊt kú lóc nµo ta dù ®Þnh sö dông dông sè dÊu chÊm ®éng
trong mét øng dông, ta cÇn ph¶i tù hái xem cã ph¶i ®iÒu nµy lµ tuyÖt ®èi cÇn thiÕt
hay kh«ng? Th«ng th−êng, c¸c sè dÊu chÊm ®éng cã thÓ ®−îc lo¹i bá b»ng c¸ch
t¨ng cÊp tÊt c¶ c¸c gi¸ trÞ b»ng mét cÆp cïng bËc vÒ ®é lín vµ sö dông c¸c phÐp
to¸n sè nguyªn. Ta sÏ xö lý tèt h¬n c¸c sè kiÓu int vµ long so víi c¸c sè kiÓu
double vµ float. Ch−¬ng tr×nh cña ta sÏ thùc thi nhanh h¬n vµ c¸c th−êng tr×nh sè
dÊu chÊm ®éng sÏ kh«ng ®−îc liªn kÕt vµo trong øng dông cña ta. Ngoµi ra nÕu
ta cÇn ph¶i sö dông sè dÊu chÊm ®éng, ta cÇn xem xÐt viÖc sö dông c¸c phiªn b¶n
cña 8051, c¸c phiªn b¶n nµy ®· ®−îc tèi −u ho¸ ®èi víi c¸c phÐp to¸n sè häc
ch¼ng h¹n nh− Siemens 80517, 80537 hoÆc Dallas Semiconductor 80320.
Cã nhiÒu khi ta bÞ Ðp buéc ph¶i liªn kÕt chÆt chÏ víi viÖc sö dông c¸c sè
dÊu chÊm ®éng trong hÖ thèng cña ta. Ta ®· biÕt nh÷ng bÊt lîi vÒ kÝch th−íc
ch−¬ng tr×nh vµ tèc ®é mµ ta ph¶i ®èi phã. Ngoµi ra, ta cÇn ý thøc ®−îc r»ng nÕu
ta sö dông c¸c phÐp to¸n sè dÊu chÊm ®éng trong mét th−êng tr×nh mµ th−êng
tr×nh nµy cã thÓ bÞ ng¾t, ta ph¶i ®¶m b¶o r»ng th−êng tr×nh ng¾t (interrupting
routine) kh«ng ® îc sö dông c¸c phÐp to¸n sè
− dÊu chÊm ®éng ë bÊt kú n¬i nµo
trong c©y gäi (calling tree) cña th−êng tr×nh, hoÆc ta ph¶i l−u gi÷ tr¹ng th¸i cña
hÖ thèng sè dÊu chÊm ®éng ë n¬i b¾t ®Çu cña ISR b»ng c¸ch sö dông “fpsave” vµ
phôc håi l¹i tr¹ng th¸i ban ®Çu cña hÖ thèng sè dÊu chÊm ®éng ë n¬i kÕt thóc ISR
b»ng c¸ch sö dông “fprestore”. Mét ph−¬ng ph¸p kh¸c lµ bao bäc lêi gäi ®Õn c¸c
ch−¬ng tr×nh sè dÊu chÊm ®éng ch¼ng h¹n nh− sin() cïng víi mét hµm v« hiÖu
ho¸ c¸c ng¾t tr−íc lêi gäi ®Õn hµm to¸n häc vµ cho phÐp c¸c ng¾t trë l¹i sau lêi
gäi.
-45-
include <math.h>
void timer0_isr(void) interrupt 1 {
struct FPBUF fpstate;
// ®o¹n m· khëi ®éng hoÆc ®o¹n m·
// Kh«ng sö dông sè dÊu chÊm ®éng nµo ®ã
fpsave(&fpstate); // L−u tr¹ng th¸i cña
// hÖ thèng sè dÊu chÊm ®éng
// ®o¹n m· ISR bÊt kú, bao gåm
// ®o¹n m· sè dÊu chÊm ®éng.
fprestore (&fpstate); // kh«i phôc tr¹ng th¸i
cña hÖ thèng
// sè dÊu chÊm ®éng
// ®o¹n m· ISR bÇt kú kh«ng sö dông
// sè dÊu chÊm ®éng
}
float my_sin(float arg) {
float retval;
bit old_ea;
old_ea = EA; // l u tr¹ng th¸i ng¾t hiÖn hµnh
−
EA = 0; // cÊm c¸c ng¾t
Retval = sin(arg); /* thùc hiÖn lêi gäi hµm
sè dÊu chÊm ®éng*/
EA = old_ea; /* ®Æt trë l¹i tr¹ng
th¸i ng¾t*/
return retval;
}
-46-
NÕu ta ph¶i sö dông sè dÊu chÊm ®éng trong ch−¬ng tr×nh cña ta, ta cÇn nç
lùc x¸c ®Þnh ®é chÝnh x¸c cùc ®¹i cÇn cã. Mét khi ®· tÝnh ®−îc sè bit cùc ®¹i cña
®é chÝnh x¸c cÇn cã trong viÖc tÝnh to¸n sè dÊu chÊm ®éng, ta h·y ®−a sè nµy vµo
trong hép tho¹i c¸c lùa chän cña tr×nh dÞch bªn d−íi ®iÒu khiÓn “Bit to round for
float compare”. §iÒu nµy sÏ cho phÐp c¸c th−êng tr×nh sè dÊu chÊm ®éng giêi
h¹n l−îng c«ng viÖc mµ chóng thùc hiÖn chØ ®Õn ®é chÝnh x¸c cã ý nghÜa ®èi víi
hÖ thèng cña ta.
2.2.2.4. Sö dông biÕn bit
Khi ta dù ®Þnh sö dông c¸c cê (flag) chØ cã hai tr¹ng th¸i 0 vµ 1, ta nªn sö
dông kiÓu bit thay v× sö dông kiÓu unsigned char. §iÒu nµy nh»m môc ®Ých ®Ó
dµnh bé nhí cho sau nµy v× ta kh«ng hoang phÝ 7 bit kia. Ngoµi ra, c¸c biÕn bit
lu«n lu«n ®−îc cÊt ë RAM bªn trong vµ do vËy sÏ ®−îc truy cËp trong mét chu
kú.
3.8.5. Sö dông biÕn côc bé thay cho biÕn toµn côc
C¸c biÕn ®−îc khai b¸o lµ d÷ liÖu toµn côc (global data) sÏ sö dông kÐm
hiÖu qu¶ h¬n so víi c¸c biÕn ®−îc khai b¸o lµ d÷ liÖu côc bé (local data). Lý do
cho ®iÒu nµy lµ tr×nh dÞch lu«n cè g¾ng g¸n c¸c biÕn côc bé cho c¸c thanh ghi
bªn trong, trong khi ®ã d÷ liÖu toµn côc cã thÓ hoÆc kh«ng thÓ ë trong c¸c thanh
ghi bªn trong tuú thuéc vµ khai b¸o cña ta. Trong nh÷ng tr−êng hîp mµ c¸c biÕn
toµn côc ®−îc g¸n mÆc ®Þnh cho XDATA (ch¼ng h¹n nh− c¸c ch−¬ng tr×nh theo
m« h×nh bé nhí lín), ta ®· tõ bá viÖc truy cËp nhanh. Lý do kh¸c ®Ó tr¸nh c¸c
biÕn toµn côc lµ ta ph¶i phèi hîp viÖc truy cËp ®Õn c¸c biÕn nh− vËy gi÷a c¸c qu¸
tr×nh trong hÖ thèng cña ta. §iÒu nµy sÏ lµ mét vÊn ®Ò trong c¸c hÖ thèng ng¾t
hoÆc c¸c hÖ thèng ®a t¸c vô, trong ®ã cã thÓ cã nhiÒu h¬n mét qu¸ tr×nh sÏ cè
g¾ng sö dông biÕn toµn côc. NÕu ta cã thÓ tr¸nh c¸c biÕn toµn côc vµ sö dông c¸c
biÕn côc bé, tr×nh dÞch sÏ qu¶n lý ch−¬ng tr×nh cña ta mét c¸ch cã hiÖu qu¶ nhÊt.
-47-
2.2.2.6. Sö dông bé nhí bªn trong cho c¸c biÕn.
C¸c biÕn toµn côc vµ côc bé cã thÓ bÞ buéc ë trong mét vïng nhí bÊt kú mµ
ta muèn. Nh− ta ®· biÕt qua c¸c th¶o luËn ë trªn vÒ c¸c tho¶ hiÖp gi÷a c¸c ®o¹n
nhí, ta cÇn thÊy râ r»ng ta cã thÓ tèi −u ho¸ tèc ®é cña ch−¬ng tr×nh b»ng c¸ch
®Æt c¸c biÕn ®−îc sö dông th−êng xuyªn ë RAM bªn trong. Ngoµi ra ch−¬ng
tr×nh cña ta sÏ nhá h¬n do cã Ýt lÖnh h¬n vµ cung cÊp viÖc truy cËp c¸c biÕn ë
RAM bªn trong nhanh h¬n so víi ch−¬ng tr×nh ph¶i truy cËp c¸c biÕn ë RAm
ngoµi. Nh»m t¨ng tèc ®é thùc thi ch−¬ng tr×nh, ta sÏ muèn lÊp ®Çy c¸c ®o¹n nhí
theo thø tù sau: DATA, IDATA, PDATA, XDATA. Mét lÇn n÷a ta cÇn cÈn thËn
®Ó dµnh ®ñ kh«ng gian nhí trong ®o¹n nhí DATA cho vïng xÕp chång bªn trong
cña bé vi ®iÒu khiÓn.
2.2.2.7. Sö dông c¸c con trá bé nhí cô thÓ.
NÕu ch−¬ng tr×nh cña ta dù ®Þnh sö dông c¸c con trá cho c¸c thao t¸c nµo
®ã, ta cã thÓ muèn kh¶o s¸t c¸ch sö dông chóng vµ l−u gi÷ chóng trong mét vïng
nhí cô thÓ ch¼ng h¹n nh− kh«ng gian XDATA hoÆc CODE. NÕu ta cã thÓ thùc
hiÖn ®iÒu nµy, ta sÏ sö dông c¸c con trá bé nhí cô thÓ. Nh− ®· ®Ò cËp tr−íc ®©y,
c¸c con trá bé nhí cô thÓ sÏ kh«ng cÇn ®Õn mét bé chän vµ ch−¬ng tr×nh sö dông
chóng sÏ chÆt chÏ h¬n do tr×nh dÞch cã thÓ bæ sung chóng ®Ó ¸p dông mét tham
chiÕu ®Õn mét ®o¹n nhí cho tr−íc thay v× ph¶i x¸c ®Þnh ®o¹n nhí nµo con trá
nh¾m ®Õn.
2.2.2.8. Sö dông hµm néi t¹i
§èi víi nh÷ng hµm ®¬n gi¶n ch¼ng h¹n nh− quay bit c¸c biÕn (bit – wise
rotation of variables), tr×nh dÞch cung cÊp cho ta c¸c hµm néi t¹i (intrinsic
function), c¸c hµm nµy cã thÓ ®−îc gäi. NhiÒu hµm néi t¹i t−¬ng øng trùc tiÕp víi
c¸c lÖnh cña hîp ng÷ trong khi nh÷ng hµm kh¸c ®−îc yªu cÇu nhiÒu h¬n vµ cung
cÊp tÝnh t−¬ng thÝch cña ANISI. TÊt c¶ c¸c hµm néi t¹i lµ hµm reentrant vµ do vËy
cã thÓ ®−îc gäi mét c¸ch an toµn tõ bÊt kú n¬i nµo trong ch−¬ng tr×nh.
-48-
§«i víi c¸c thao t¸c quay trªn mét byte, c¸c hµm néi t¹i _crol_ (quay
tr¸i) _cror_ (quay ph¶i) t−¬ng øng trùc tiÕp víi ’ vµ
c¸c lÖnh hîp ng÷ ‘RL A
‘RR A’. NÕu ta muèn thùc hiÖn phÐp quay bÝt trªn c¸c ®èi t−îng lín h¬n ch¼ng
h¹n nh− mét ®èi t−îng cã kiÓu int hoÆc long, hµm néi t¹i sÏ phøc t¹p h¬n
vµ do vËy sÏ dµi h¬n. C¸c phÐp quay nµy cã thÓ ®−îc gäi b»ng c¸ch sö dông c¸c
hµm néi t¹i _irol, _iror_ cho c¸c kiÓu int vµ c¸c hµm näi t¹i _lrol,
_lror_ cho c¸c kiÓu long.
LÖnh “nh¶y vµ xo¸ bÝt nÕu bÝt ®−îc thiÕt lËp b»ng 1” (“jump and clear bit
if set”) JBC tõ còng ®−îc thùc hiÖn d−íi d¹ng mét hµm néi t¹i ®Ó sö dông trong
C. Hµm nµy ®−îc gäi bëi _testbit_. Hµm néi t¹i nµy tr¶ vÒ gi¸ trÞ ®óng nÕu bÝt
th«ng sè ® êng h÷u dông
−îc thiÕt lËp b»ng 1 vµ sai nÕu ng−îc l¹i. §iÒu nµy th−
khi kiÓm tra c¸c cê ch¼ng h¹n nh− RI, TI hoÆc c¸c cê trµn cña bé ®Þnh thêi vµ
dÉn ®Õn ch−¬ng tr×nh viÕt b»ng C dÔ ®äc h¬n nhiÒu. Hµm nµy cã thÓ dÞch trùc
tiÕp thµnh lÖnh JBC. VÝ dô sau ®©y sÏ minh ho¹ râ h¬n ®iÒu nµy
#include<instrins.h>
void serial_intr(void) interrupt 4 {
if (!_testbit_(TI)){ /* nÕu ®©y lµ ng¾t truyÒn*/
P0 = 1; // ®æi tr¹ng th¸i P0.0.
_nop_(); // chê 1 chu kú
P0 = 0;
.... /* thùc hiÖn c¸c c©u lÖnh kh¸c...*/
}
if (!_testbit_(RI)){
test = _cror_(SBUF,1);
..../* thùc hiÖn c¸c thao t¸c kh¸c*/.
}
}
-49-
X¸c yªu cÇu thiÕt kÕ
Lùa chän cÊu h×nh cho hÖ thèng
theo yªu cÇu thiÕt kÕ
ThiÕt kÕ m¹ch ®iÖn vµ l¾p r¸p linh
kiÖn
§o thö vµ kiÓm tra lçi
Ch−¬ng 3 - thiÕt kÕ hÖ vi ®iÒu khiÓn
ThiÕt kÕ phÇn cøng lµ thiÕt kÕ m¹ch ®iÖn tö bao gåm c¸c linh kiÖn, phô kiÖn
phï hîp t¹o thµnh mét hÖ vi ®iÒukhiÓn hîp nhÊt. Nãi chung mét hÖ vi ®iÒu khiÓn
còng t−¬ng ®−¬ng víi mét hÖ m¸y tÝnh, tøc lµ nã ph¶i cã ®ñ 03 khèi chÝnh: Khèi
xö lý trung t©m, khèi bé nhí vµ khèi vµo ra. Chi tiÕt vÒ tõng khèi nµy nh− thÕ nµo
lµ tuú thuéc vµo tõng øng dông cô thÓ. Cã nh÷ng øng dông yªu cÇu xö lý tÝnh
to¸n nhanh th× cÇn mét bé xö lý m¹nh, cã øng dông yªu cÇu l−u tr÷ lín th× cÇn
ph¶i cã bé nhí cã dung l−îng lín...Khèi cÇn ph¶i tuú biÕn nhiÒu nhÊt chÝnh lµ
khèi vµo ra bëi lÏ khèi nµy chÝnh lµ khèi giao tiÕp víi thÕ giíi thùc ®Ó t¹o ra c¸c
øng dông thùc. Nãi chung ®Ó thiÕt kÕ ®−îc mét hÖ vi ®iÒu khiÓn cã kh¶ n¨ng ho¹t
®éng tèt, ®é tin cËy cao th× ng−êi thiÕt kÕ cÇn ph¶i ®i theo mét tr×nh tù nhÊt ®Þnh,
còng cã thÓ gäi lµ nguyªn t¾c thiÕt kÕ. Cã 2 nhãm nguyªn t¾c chÝnh ®ã lµ ®i tõ
trªn xuèng vµ ®i tõ d−íi lªn. Nguyªn t¾c ®i tõ trªn xuèng th−êng ®−îc ¸p dông
víi c¸c hÖ nhóng nhá, cô thÓ trong tr−êng hîp thiÕt kÕ mét hÖ vi ®iÒu khiÓn th×
tr×nh tù thiÕt kÕ nh− sau:
H×nh 3.1. Tr×nh tù thiÕt kÕ phÇn cøng cho hÖ thèng
-50-
3.1. X¸c ®Þnh yªu cÇu thiÕt kÕ.
HÖ thèng nhóng gåm phÇn cøng vµ hÖ ®iÒu hµnh thêi gian thùc ®−îc thiÕt kÕ
víi môc ®Ých lµm thiÕt bÞ thÝ nghiÖm ë tr−êng §¹i häc C«ng nghiÖp Hµ néi, v×
vËy hÖ thèng ph¶i ®¸p øng ®−îc mét sè yªu cÇu sau:
-TÝnh s− ph¹m:
Kh¸c víi c¸c thiÕt bÞ mang tÝnh th−¬ng m¹i, thiÕt bÞ d¹y häc ph¶i ®¶m b¶o
®−îc c¸c yªu cÇu vÒ s− ph¹m nh−:
+Phï hîp víi néi dung, ch−¬ng tr×nh häc.
+Phï hîp víi ®èi t−îng häc.
-TÝnh trùc quan:
TÝnh trùc quan lµ mét trong nh÷ng yªu cÇu quan träng nhÊt cña mét thiÕt bÞ
d¹y häc. Mét thiÕt bÞ cã tÝnh trùc quan sÏ gióp sinh dÔ thÝ nghiÖm h¬n vµ t¹o
høng thó cho sinh viªn trong qua tr×nh häc. Trong thiÕt bÞ nµy th× tÝnh trùc quan
ph¶i ®−îc thÓ hiÖn ë mét sè khÝa c¹nh sau:
+ C¸c thiÕt bÞ vµo/ra ph¶i lµ c¸c thiÕt bÞ dÔ nh×n, dÔ quan s¸t, dÔ x¸c ®Þnh kÕt
qu¶ vµ dÔ ®o ®¹c, kiÓm tra.
+Giao diÖn ng−êi sö dông ph¶i ®¬n gi¶n dÔ t−¬ng t¸c víi hÖ thèng nhÊt.
-TÝnh khoa häc:
ThiÕt bÞ ® nh khoa häc cña mét s¶n phÈm kü
−îc thiÕt kÕ ph¶i ®¶m b¶o tÝ
thuËt, c¸c kh©u thiÕt kÕ, vËt t− linh kiÖn sö dông ph¶i ®¶m b¶o c¸c yªu cÇu kü
thuËt.
-TÝnh thùc tiÔn.
-TÝnh thÈm mü.
-TÝnh kinh tÕ.
-51-
3.2. Lùa chän cÊu h×nh cho hÖ thèng.
C¨n cø vµo yªu cÇu thiÕt kÕ th× hÖ thèng cã thÓ gåm c¸c thµnh phÇn nh−
sau:
- Bé ®iÒu khiÓn trung t©m (bao gåm : Bé xö lý (CPU), bé nhí, khèi ®iÒu
khiÓn vµo ra).
- Giao diÖn ng−êi sö dông.
- C¸c thiÕt bÞ m« pháng cho qua tr×nh thùc hiÖn cña c¸c tiÕn tr×nh.
H×nh 3.2. S¬ ®å khèi cña hÖ vi ®iÒu khiÓn
3.2.1. Lùa chän bé ®iÒu khiÓn trung t©m.
Trªn thÞ tr−êng hiÖn nay cã kh¸ nhiÒu bé vi xö lý cã thÓ cho phÐp viÕt hÖ
®iÒu hµnh tuy nhiªn ®Ó ®¶m b¶o c¸c yªu cÇu nh− môc 1 ®· nªu th× cã thÓ chän bé
vi ®iÒu khiÓn AT89S52 lµ bé xö lý trung t©m nh÷ng lý do sau:
-AT89S52 lµ mét bé vi ®iÒu khiÓn, trªn bé vi ®iÒu khiÓn nµy ®· tÝch hîp s½n
bé nhí ROM, bé nhí RAM, c¸c bé ®Þnh thêi, bé xö lý ng¾t, khèi ®iÒu khiÓn
vµo/ra, ®©y lµ nh÷ng tµi nguyªn c¬ b¶n dïng ®Ó viÕt mét hÖ ®iÒu hµnh. NÕu chän
mét bé vi xö lý th× hÖ thèng vÉn cÇn thªm bé nhí, bé ®Þnh thêi... nh− vËy sÏ tèn
kÐm kinh phÝ vµ hÖ thèng sÏ kång kÒnh h¬n.
Vi ®iÒu
khiÓn
Bé
nhí
Vµo/
Ra
M« pháng c¸c tiÕn tr×nh
ho¹t ®éng
Giao diÖn ng−êi sö dông
Bé ®iÒu khiÓn trung t©m
-52-
-AT89S52 lµ bé vi ®iÒu khiÓn 8bit ®−îc ph¸t triÓn trªn c¬ së bé vi ®iÒu
khiÓn 8051, ®©y lµ bé vi ®iÒu khiÓn víi cÊu tróc vµ tËp lÖnh c¬ b¶n, dÔ dµng tiÕp
cËn ®èi víi nh÷ng ®èi t−îng nh− häc sinh sinh viªn.
-Gi¸ thµnh cña AT89S52 lµ kh¶ rÎ so víi c¸c bé vi ®iÒu khiÓn cã cïng tÝnh
n¨ng h¬n n÷a bé vi ®iÒu khiÓn nµy cã tÝch hîp s¾n m¹ch n¹p ROM trªn chip nªn
cã thÓ thÝ nghiÖm mµ kh«ng cÇn tèn chi phÝ ®Ó mua s¾m mét bé n¹p ROM.
H¹n chÕ duy nhÊt cña bé vi ®iÒu khiÓn mµy lµ dung l−îng bé nhí RAM nhá
(256 byte). §Ó kh¾c phôc vi m¹ch SRAM ngoµi cã
h¹n chÕ nµy cã thÓ dïng mét
dung l−îng 8 Kb ghÐp nèi theo s¬ h×nh 3.3.
A5
A4
AD4
10K
CS4
A9
A8
X2
AD3
X1
WR
AD6
VCC
X2
A12
A14
WR
A15
A6
AD1
AD5
RTS
CS1
10uf
A8
WR
AD2
IC2
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
AD5
AD0
JP1 SEL
1
2
3
PSEN
WR
A10
IC1
29
30
31
19
18
9
39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17 PSEN
ALE
EA
X1
X2
RST
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
A2
CS7
CS1
WR
A2
VCC
A14
AD1
WR
11.0592MHz
EA
AD0
CP2
0.1uF
AD7
CS2
CS5
RTS
AD2
AD6
EA
AD0
WR
A1
SW1
AD3
VCC
A3
IC3
MC74F138
1
2
3
15
14
13
12
11
10
9
7
6
4
5
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
RD
WR
RD
VCC
AD3
A1
TX
A0
WR
A15
AD2
A5
CS3
6264
10
9
8
7
6
5
4
3
25
24
21
23
2
11
12
13
15
16
17
18
19
22
27
20
26
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
D0
D1
D2
D3
D4
D5
D6
D7
OE
WE
CS1
CS2
ALE
A13
AD4
C2
33P
A7
CP1
0.1uF
CS0
A3
A7
WR
A11
AD4 A4
VCC
A10
A6
AD1
AD6
C1
33P
CS6
AD7
AD5
A0
ALE
A12
RX
A13
WR
CS1
AD7
A9
A11
H×nh 3.3. GhÐp nèi vi ®iÒu khiÓn víi RAM ngoµi.
3.2.2. Giao diÖn ng−êi sö dông.
Víi tÝnh chÊt lµ mét thiÕt bÞ d¹y häc, ng−êi sö dông lµ sinh viªn, häc sinh v×
vËy giao diÖn ng−êi sö dông ph¶i ®¬n gi¶n vµ hiÖu qu¶ nhÊt. Mµn h×nh m¸y tÝnh,
mµn h×nh tinh thÓ láng, LED... lµ c¸c thiÕt bÞ ®−a tin ra hay ®−îc sö dông trong
-53-
c¸c hÖ thèng nhóng. Bµn phÝm, c¸c contact, nót nhÊn, c¶m biÕn... lµ c¸c thiÕt bÞ
®−a tin vµo hay ®−îc sö dông. Trong ®iÒu kiÖn thùc tÕ vµ c¨n cø vµo c¸c yªu cÇu
thiÕt kÕ hÖ thèng th× cã thÓ chän mµn h×nh tinh thÓ láng vµ hÖ thèng c¸c nót nhÊn
®Ó lµm giao diÖn ng−êi sö dông, tõ ®©y ng−êi sö dông cã thÓ t¸c ®éng vµo hÖ
®iÒu hµnh trong mét giíi h¹n nµo ®ã (h×nh 3.4).
CONTACT1
D0
D6
Y1
12MHz
VCC
D6
EN_LCD
RW
D4
C1
C_LCD
D5
D7
VCC
VCC
D5
VCC
VCC
RW
10K
VR_LCD
20K
D2
SW1
D3
C2
33P
D1
D4
RS
D7
IC1
8051
29
30
31
19
18
9
39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17 PSEN
ALE
EA
X1
X2
RST
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
D2
VCC
D1
10K
C1 33P
D0
C3
C
VCC
D3
CONTACT2
ULCD
LCD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
RS
EN_LCD
H×nh 3.4. Giao diÖn ng−êi sö dông trªn hÖ vi ®iÒu khiÓn.
3.2.3. C¸c thiÕt bÞ m« pháng qu¸ tr×nh ho¹t ®éng cña tiÕn tr×nh.
TÝnh trùc quan lµ yªu cÇu ®Çu tiªn khi lùa chän c¸c thiÕt bÞ m« pháng cho
qu¸ tr×nh ho¹t ®éng cña tiÕn tr×nh trong hÖ ®iÒu hµnh. Trªn mét thiÕt bÞ d¹y häc
th× kh«ng thÓ ®−a c¸c thiÕt bÞ m¸y mãc kång kÒnh vµo ®−îc, h¬n n÷a tiªu chÝ
chÝnh cña thiÕt bÞ d¹y häc nµy lµ hÖ nhóng vµ hÖ ®iÒu hµnh trªn bé vi ®iÒu khiÓn
v× vËy cã thÓ chän hÖ thèng c¸c LED ®Ó m« pháng lµ ®¶m b¶o ®−îc tÝnh trùc
quan vµ kinh tÕ nhÊt.
-54-
VCC
R2
1K
QL3
A1013
QLED2
LED7SEGMENT
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
g
dp
Vcc
R1
1K
VCC
QLED3
LED7SEGMENT
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
g
dp
Vcc
QL2
A1013
C1
33P
10K
C3
C
QL1
A1013
R3
1K
VCC
IC1
8051
29
30
31
19
18
9
39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17 PSEN
ALE
EA
X1
X2
RST
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
R3
1K
C2
33P
SW1
QLED1
LED7SEGMENT
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
g
dp
Vcc
Y1
12MHz
LE
H×nh 3.5. HiÓn thÞ trªn LED 7 ®o¹n b»ng kü thuËt quÐt
-56-
Trªn hÖ thèng cã 2 thiÕt bÞ chÝnh ®ã lµ 03 ma trËn LED dïng ®Ó hiÓn thÞ
c¸c ký tù bÊt kú vµ 04 LED 7 ®o¹n dïng ®Ó hiÓn thÞ thêi gian thùc cña hÖ
thèng.
3.2.3.1. Kü thuËt quÐt hiÓn thÞ trªn LED 7 ®o¹n.
§Ó hiÓn thÞ trªn 1 LED 7 ®o¹n th× cÇn 8 ®−êng ®iÒu khiÓn theo c¸ch hiÓn
thÞ th«ng th−êng hoÆc cÇn 4 ®−êng nÕu dïng vi m¹ch 74xx47. Víi c¶ hai c¸ch
võa nªu nÕu cÇn ®iÒu khiÓn mét sè l−îng lín c¸c LED 7 ®o¹n th× t−¬ng øng sÏ
cÇn mét sè l−îng lín c¸c ®−êng ®iÒu khiÓn trong khi sè l−îng c¸c ®−êng ®iÒu
khiÓn trªn bé vi ®iÒu khiÓn lµ cã h¹n.
NÕu dïng c¸ch hiÓn thÞ theo nguyªn t¾c quÐt (h×nh 3.5) th× n LED 7 ®o¹n
sÏ cÇn 8+n ®−êng khiÓn khiÓn, tiÕt kiÖm c¸c ®−êng dÉn ®iÒu khiÓn h¬n nhiÕu
so víi hai c¸ch trªn.
3.2.3.1. Kü thuËt quÐt hiÓn thÞ trªn ma trËn LED.
CÊu t¹o cña ma trËn LED bao gåm 64 m¾t DIODE, mçi m¾t gåm 1 led
mµu ®á . Trªn MCS toµn bé c¸c hµng cña 3 ma trËn LED ®−îc ®iÒu khiÓn bëi
P3, c¸c cét cña 3 ma trËn led ®−îc ®iÒu khiÓn bëi P0,P1,P2 th«ng qua c¸c bé
ph©n kªnh 74HC138 (h×nh 3.6).
Nguyªn t¾c xÕp ch÷ trªn ma trËn LED:
Gi¶ sö ta cÇn xÕp ch÷ H mµu ®á trªn ma trËn led (h×nh 3.7).
V× kh«ng thÓ t¹i mét thêi ®iÓm tÊt c¶ c¸c m¾t xÕp theo h×nh ch÷ H ®Òu
s¸ng ®−îc nªn cã thÓ chia ch÷ H thµnh 3 phÇn:
PhÇn 1 gåm 6 m¾t, ®Ó 6 m¾t nµy s¸ng chóng ta g¸n: P0=00100010B;
P1=00011111B
PhÇn 2 gåm 5 m¾t, ®Ó 5 m¾t nµy s¸ng chóng ta g¸n: P0=00111110B;
P1=11101111B
PhÇn 3 gåm 8 m¾t, ®Ó 8 m¾t nµy s¸ng chóng ta g¸n: P0=00100010B;
P1=11110000B
-57-
C5
1
2
3
15
14
13
12
11
10
9
7
6
4
5
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
R1
C11
C23
C12
P35
X2
P35
C18
10K
P27
P11
L6
P00
CP1
0.1uF
C6
L8
C23
P13
L7
C11
P27
R6
P37
C21
P21
C5
P34
P16 P06
VCC
P24
VCC
EA
11.0592MHz
VCC
P36
C7
C8
VCC
IC1
29
30
31
19
18
9
39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17 PSEN
ALE
EA
X1
X2
RST
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
C13
JP1 SEL
1
2
3
C8
R4
P04
C15
P12
P24
P22
C2
C20
P36
C9
R3
P20
C20
C19
10uf
P10
P25
R7
P22
R5
1
2
3
15
14
13
12
11
10
9
7
6
4
5
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
C7
C17
C6
P03
C24
C16
P31
1
2
3
15
14
13
12
11
10
9
7
6
4
5
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
C12
X2
C1
33P
C14
C22
1
2
3
15
14
13
12
11
10
9
7
6
4
5
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
P05
C19
VCC
P30
C3
P23
RTS
P15
R8
P26
RTS
P37
L1
C10
P23
P34
C2
P02
C16
C3
C22
C21
P14
L2
C2
33P
SW1
VCC
C10
C1
C1
P25
C15
X1
L3
C17
C4
P01
P30
C4
1
2
3
4
5
6
7
8
1
2
3
4
5
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
L1
L2
L3
L4
L5
L6
L7
L8
C1
C2
C3
C4
C5
C7
C8
C9
C10
C11
C12
C13
C14
C15
C16
C17
C18
C19
C20
C21
C22
C23
C24
P26
C18
L4
C13
C14
P07
P17
R2
P31
L5
VCC
EA
C9
H×nh 3.6. GhÐp nèi ma trËn LED trªn hÖ vi ®iÒu khiÓn
-58-
H×nh 3.7. Nguyªn t¾c xÕp ch÷ trªn ma trËn LED.
§Ó cã thÓ hiÓn thÞ c¸c dßng ch÷ bÊt kú trªn ma trËn LED th× cÇn cã mét
bé nhí ®Ó l−u l¹i font cña tÊt c¶ c¸c ch÷. Font cña c¸c ch÷ cã thÓ hiÓu lµ c¸c
byte d÷ liÖu cÇn xuÊt ra trªn c¸c Port ®Ó ma trËn s¸ng theo ch÷ ®ã. Trong
khu«n khæ luËn v¨n nµy t«i chØ x©y dùng mét bé font ch÷ ®¬n gi¶n gåm 26
ch÷ c¸i kh«ng dÊu, bé font nµy ®−îc n¹p vµo ROM, khi cÇn thay ®æi kiÓu ch÷
cã thÓ x©y dùng vµ n¹p l¹i cho ROM.
3.3. ThiÕt kÕ m¹ch ®iÖn.
§Ó ®¶m b¶o ®−îc c¸c yªu cÇu vÒ kü thuËt, mü thuËt th× m¹ch ®iÖn cña
thiÕt bÞ ph¶i ®−îc thiÕt kÕ trªn m¸y b»ng c¸c phÇn mÒm vÏ m¹ch chuyªn dông.
Trªn thùc tÕ hiÖn nay cã kh¸ nhiÒu phÇn mÒm thiÕt kÕ m¹ch nh− Protel,
Orcad, Circuit Maker...mçi phÇn mÒm nµy ®Òu cã nh÷ng ®iÓm m¹nh riªng,
tuy nhiªn ®Ó thiÕt kÕ hÖ thèng nµy th× Protel tá ra cã −u thÓ h¬n c¶ v× th− viÖn
phÇn mÒm nµy cã ®ñ c¸c linh kiÖn cÇn cho hÖ thèng, ®èi víi m¹ch 2 líp trë
lªn th× phÇn mÒm nµy tá ra tèi −u ho¸ c¸c ®−êng m¹ch tèt h¬n.
Nh− ®· ®Ò cËp trong môc 2, c«ng viÖc thiÕt kÕ ®−îc chia thµnh 3 h¹ng
môc lµ; ThiÕt kÕ bé xö lý trung t©m, thiÕt kÕ giao diÖn ng−êi sö dông vµ thiÕt
kÕ c¸c thiÕt bÞ m« pháng sù ho¹t ®éng cña c¸c tiÕn tr×nh.
P17
P16
P15
P14
P13
P12
P11
P10
P00 P01 P02 P03 P04 P05 P06 P07
-59-
3.4. §o thö vµ kiÓm tra lçi.
§èi víi mét ®èi t−îng nh− hÖ vi ®iÒu khiÓn th× ®o thö vµ kiÓm tra lçi
b»ng c¸c dông cô th«ng th−êng nh− ®ång hå, m¸y hiÖn sãng lµ ch−a ®ñ v× lý
do ®©y lµ mét hÖ thèng kh¶ tr×nh. C¸ch tèt nhÊt ®Ó kiÓm tra lµ viÕt c¸c ®o¹n
ch−¬ng tr×nh cho tõng khèi trªn hÖ thèng vµ kiÓm tra ho¹t ®éng cña tõng khèi
®ã. Qu¸ tr×nh kiÓm tra ph¸t hiÖn khèi nµo cã lçi th× kh¾c phôc ngay trªn khèi
®ã.
-60-
Ch−¬ng 4 - ThiÕt kÕ hÖ ®iÒu hµnh
4.1.1. Môc ®Ých vµ yªu cÇu thiÕt kÕ.
4.1.2. Môc ®Ých.
Trªn thùc tÕ, trong c¸c hÖ thèng nhóng cã thÓ cã mét hoÆc mét sè c«ng
viÖc cÇn ph¶i thùc hiÖn lÆp ®i lÆp l¹i liªn tôc, chóng ta cïng xem xÐt 3 vÝ dô
sau ®©y:
VÝ dô 1:
int counter;
void main (void)
{
counter = 0;
while (1) /* lÆp v« tËn */
{
counter++; /* t¨ng biÕn counter */
}
}
VÝ dô 2:
int counter;
void main (void)
{
counter = 0;
while (1) /* lÆp v« tËn */
{
check_serial_io ();
process_serial_cmds ();
check_kbd_io ();
process_kbd_cmds ();
-61-
}
}
VÝ dô 3:
#include <rtx51tny.h>
int counter0;
int counter1;
void job0 (void) _task_ 0
{
os_create (1); /* tr¹ng th¸i s½n
®Æt task 1 ë
sµng */
while (1) { /* lÆp v« tËn */
counter0++; /* t¨ng biÕn counter */
}
}
void job1 (void) _task_ 1
{
while (1) { /* lÆp v« tËn */
counter1++; /* t¨ng biÕn counter */
}
}
Trong vÝ dô 1, c©u lÖnh counter++ ®−îc ®Æt trong mét vßng lÆp v« tËn
trong ch−¬ng tr×nh chÝnh. Khi thùc hiÖn ch−¬ng tr×nh nµy, bé vi ®iÒu khiÓn chØ
thùc hiÖn mét t¸c vô duy nhÊt lµ t¨ng gi¸ trÞ cña biÕn counter lªn. Ch−¬ng
tr×nh nµy minh ho¹ cho c¸c ch−¬ng tr×nh ®¬n t¸c vô.
Trong vÝ dô 2, cã tíi 4 t¸c vô ® îc lu©n phiªn thùc hiÖn lÆp vµ lÆp ®i lÆp
−
l¹i liªn tôc. C¸ch viÕt nh− vÝ dô 2 cã thÓ më réng ®−îc kh¶ n¨ng cña bé vi
®iÒu khiÓn h¬n tuy nhiªn cã mét vÊn ®Ò tån t¹i lµ tÝnh ®¸p øng cña hÖ thèng.
Gi¶ thiÕt khi ch−¬ng tr×nh ®ang ®−îc thùc thi ë t¸c vô check_kbd_io()th×
cã c¸c byte d÷ liÖu ®Õn tõ cæng nèi tiÕp vµ hÖ thèng ph¶i xö lý c¸c byte d÷ liÖu
-62-
®ã nghÜa lµ cÇn ph¶i thùc hiÖn t¸c vô process_serial_cmds().H¹n chÕ
nµy sÏ ®−îc kh¾c phôc b»ng c¸ch viÕt ë vÝ dô 3.
Trong vÝ dô 3, ®Çu tiªn vi ®iÒu khiÓn sÏ thùc thi ë t¸c vô cã tªn lµ job0,
t¸c vô nµy khëi t¹o cho 2 t¸c vô job1 vµ job2 ®ång thêi lµ nhiÖm vô cña chÝnh
nã lµ t¨ng biÕn counter0. Sau khi thùc hiÖn xong task 0, CPU sÏ chuyÓn sang
thùc hiÖn task 1 vµ task 2 sau ®ã l¹i quay trë l¹i thùc hiÖn task 0. ý t−ëng chia
thêi gian xö lý cña CPU thµnh c¸c khe thêi gian mét c¸c thÝch hîp vµ lu©n
phiªn thùc hiÖn c¸c t¸c vô chÝnh lµ ý t−ëng cña hÖ ®iÒu hµnh ®a nhiÖm (h×nh
4.2). Trªn thùc tÕ nÕu tæ chøc c¸c t¸c vô mét c¸ch hîp lý vµ ph©n chia thêi
gian cña CPU mét c¸c hîp lý cho c¸c t¸c vô sao cho khi ®ang thùc thi ë t¸c vô
nµy, c¸c t¸c vô kh¸c kh«ng bÞ ¶nh h−ëng th× c¶m gi¸c d−êng nh− tÊt c¶ c¸c t¸c
vô ®ang ®−îc thùc hiÖn ®ång thêi (h×nh 4.1).
H×nh 4.1. C¸c t¸c vô ®−îc thùc hiÖn ®ång thêi (song song)
H×nh 4.2. C¸c t¸c vô ®−îc thùc hiÖn lu©n phiªn liªn tôc
Trong thùc tÕ chóng ta gÆp rÊt nhiÒu c¸c hÖ thèng ®o l−êng ®iÒu khiÓn tù
®éng ho¸ mµ c¸c hÖ thèng nµy th−êng ph¶i xö lý nhiÒu c«ng viÖc cïng mét
t1 t2 ... tn time
task 0
task 1
task 2
t1 t2 ... tn time
task 0
task 1
task 2
-63-
lóc víi ®¸p øng kh¾t khe vª thêi gian. Víi c¸c hÖ thèng nµy th× c¸c ch−¬ng
tr×nh ®iÒu khiÓn viÕt theo cÊu tróc tuÇn tù ®¬n gi¶n (vÝ dô 1, vÝ dô 2) tá ra
kh«ng thÓ ®¸p øng ®−îc. VÊn ®Ò ®ã chØ cã thÓ ®−îc gi¶i quyÕt nÕu hÖ thèng cã
mét hÖ ®iÒu hµnh.
Tr−êng §¹i häc C«ng nghiÖp lµ mét trong nh÷ng c¬ së ®µo t¹o cã sù g¾n
kÕt gi÷a ho¹t ®éng ®µo t¹o vµ thùc tiÔn x· héi cao. ViÖc ®−a vµo gi¶ng d¹y
m«n “thiÕt kÕ hÖ ®iÒu hµnh trªn vi ®iÒu khiÓn” lµ mét viÖc hÕt søc cÇn thiÕt
vµo thêi ®iÓm khi mµ c«ng nghÖ tù ®éng ho¸ ®ang ph¸t triÓn m¹nh nh− hiÖn
nay.
4.1.2. Yªu cÇu
Do ®Æc thï lµ mét hÖ ®iÒu hµnh thêi gian thùc (RTOS - Real Time
Operating System) ®−îc thiÕt kÕ trªn mét hÖ vi ®iÒu khiÓn 8 bÝt vµ thiÕt kÕ ®Ó
phôc vô c«ng t¸c thÝ nghiÖm ë mét c¬ së ®µo t¹o nªn hÖ ®iÒu hµnh ph¶i cã mét
sè yªu cÇu cô thÓ sau:
- Ph¶i thùc thi ®ång thêi ®− −
îc nhiÒu ch ¬ng tr×nh n¹p trong bé nhí ROM
nh− chøc n¨ng cña mét hÖ ®iÒu hµnh ®a nhiÖm.
- Ph¶i cã ®¸p øng tøc th× víi c¸c t¸c ®éng cña ng−êi sö dông nh− yªu cÇu
cña mét hÖ ®iÒu hµnh thêi gian thùc.
- KÝch th−íc cña nh©n hÖ ®iÒu hµnh vµ c¸c ch−¬ng tr×nh ®−îc n¹p s½n
trong bé nhí ROM kh«ng ®−îc v−ît qu¸ 8 Kb. Bé nhí RAM dµnh cho hÖ
®iÒu hµnh tèi ®a lµ 8 Kb – 256 byte.
- HÖ ®iÒu hµnh ®−îc viÕt b»ng 2 ng«n ng÷ chÝnh lµ C vµ hîp ng÷ nhóng
trong tr×nh dÞch C, ®©y lµ 2 ng«n ng÷ häc sinh ®· ®−îc häc tr−îc khi häc m«n
“thiÕt kÕ hÖ ®iÒu hµnh trªn vi ®iÒu khiÓn”. C¸c thµnh phÇn cña hÖ ®iÒu hµnh
®−îc viÕt thµnh c¸c module, thuËn tiÖn cho ng−êi häc cã thÓ so¸t lçi vµ thay
®æi.
§øng trªn gãc ®é ng−êi sö dông th× hÖ thèng ph¶i thùc hiÖn ®−îc 3
nhiÖm vô ®ång thêi lµ quÐt hiÓn thÞ th«ng tin trªn ma trËn LED; quÐt hiÓn thÞ
-64-
thêi gian trªn LED 7 ®o¹n vµ hiÓn thÞ c¸c th«ng tin cÇn thiÕt trªn mµn h×nh
tinh thÓ láng. Khi cã t¸c ®éng cña ng−êi sö dông trªn c¸c phÝm nhÊn, hÖ thèng
ph¶i cã ®¸p øng tøc th× b»ng viÖc th«ng b¸o lªn LCD vµ thay ®æi c¸c th«ng tin
theo phÝm nhÊn trªn c¸c LED.
4.2. Tr×nh tù thiÕt kÕ hÖ ®iÒu hµnh.
Do ®Æc tr−ng hÖ vi ®iÒu khiÓn 8 bit lµ mét mét hÖ thèng nhá chØ phôc vô
qu¸ tr×nh thÝ nghiÖm nªn hÖ ®iÒu hµnh viÕt cho nã còng kh«ng qua phøc t¹p.
Víi nh÷ng hÖ ®iÒu hµnh kiÓu nµy chóng ta cã thÓ thiÕt kÕ theo nguyªn t¾c
Module ho¸, nghÜa lµ liÖt kª c¸c module cã trong hÖ ®iÒu hµnh, thiÕt kÕ chóng,
sau ®ã liªn kÕt chóng l¹i. C¸c b−íc tiÕn hµnh cã thÓ nh− sau:
-B−íc 1: Tõ môc ®Ých yªu cÇu thiÕt kÕ, liÖt kª c¸c module cÇn thiÕt cho hÖ
®iÒu hµnh.
-B−íc 2: ThiÕt kÕ c¸c module ®ång thêi cã thÓ ch¹y thö c¸c module ®Ó ®¶m
b¶o tÝnh chÝnh x¸c cña chóng tr−íc khi ®−îc liªn kÕt.
- B−íc 3: Liªn kÕt c¸c module cña hÖ ®iÒu hµnh.
- B−íc 4: Ch¹y thö vµ kiÓm tra kÕt qu¶.
B−íc 2 vµ b−íc 3 chÝnh lµ hai b−íc quan träng nhÊt. Th«ng th−êng th× hai
b−íc nµy ®«i khi ®−îc thùc hiÖn ®ång thêi v× cã nh÷ng module c«ng viÖc
chÝnh cña nã lµ liªn kÕt c¸c module kh¸c.
C«ng viÖc cña b−íc 2 vµ b−íc 3 gåm 2 phÇn chÝnh:
- ThiÕt kÕ c¸c ch−¬ng tr×nh th−êng tró trong bé nhí ROM, khi hÖ ®iÒu hµnh
hoµn tÊt c¸c ch−¬ng tr×nh nµy sÏ trë thµnh c¸c tiÕn tr×nh song song. C«ng viÖc
nµy bao gåm c¶ viÖc gi¶i quyÕt tµi nguyªn g¨ng vµ ®o¹n tíi h¹n. C«ng viÖc
nµy cã thÓ gäi lµ “x©y dùng c¸c tiÕn tr×nh”
- ThiÕt kÕ nh©n cña hÖ ®iÒu hµnh. C«ng viÖc nµy thùc chÊt lµ lµm thÕ nµo ®Ó
cã thÓ qu¶n lý, ph©n bæ tµi nguyªn cho c¸c tiÕn tr×nh ho¹t ®éng. Hai tµi
nguyªn quan träng nhÊt ®ã chÝnh lµ thêi gian cña CPU vµ bé nhí. Ph©n bæ
-65-
thêi gian CPU mét c¸ch hîp lý ®Ó tËn dông tèi ®a kh¶ n¨ng lµm viÖc cña CPU;
ph©n bæ bé nhí cho c¸c tiÕn tr×nh mét c¸ch khoa häc ®Ó kh«ng bÞ xung ®ét lµ
môc ®Ých chÝnh cña phÇn nµy. C«ng viÖc cña phÇn nµy chÝnh lµ 2 c«ng viÖc:
LËp lÞch cho CPU vµ qu¶n lý bé nhí.
4.3. X©y dùng c¸c tiÕn tr×nh.
4.3.1. X©y dùng c¸c t¸c vô t−¬ng øng c¸c tiÕn tr×nh.
4.3.1.1. Nguyªn t¾c x©y dùng c¸c t¸c vô trªn tr×nh dÞch C.
Tr×nh dÞch C cho phÐp x©y dùng tíi 16 t¸c vô, 16 t¸c vô nµy cã thÓ lu©n
phiªn thùc hiÖn, khi ®ã hÖ thèng cã thÓ cã tíi 16 tiÕn tr×nh.
C¸c t¸c vô ®−îc tr×nh dÞch C ®Þnh nghÜa nh− sau :
void name (void) _task_ task ID
Trong ®ã:
name lµ tªn c¸c t¸c vô.
task ID lµ sè hiÖu cña c¸c t¸c vô (task ID- 0 ®Õn 15).
VÝ dô:
void init (void) _task_ task 0
Khi thùc hiÖn, CPU lu«n thùc hiÖn ë task 0 tr−íc tiªn, chÝnh v× vËy task 0
lu«n ®−îc dïng ®Ó khëi t¹o hoÆc kh«ng khëi t¹o cho c¸c task kh¸c.
§Ó khëi t¹o cho mét task, tr×nh dÞch C cung cÊp s¾n hµm
os_create(task ID).
VÝ dô cÇn khëi t¹o task 5 th× c©u lÖnh t−¬ng øng sÏ lµ: os_create(5)
§Ó kh«ng khëi t¹o mét task nµo ®ã (®−a task ®ã vµo tr¹ng th¸i dõng-
halt), tr×nh dÞch C cung cÊp s½n hµm os_delete (task ID).
VÝ dô cÇn dõng task 5 th× c©u lÖnh t−¬ng øng sÏ lµ: os_delete (5)
-66-
4.3.1.2. X©y dùng c¸c t¸c vô.
Nh− ®· ®Ò cËp trong ch−¬ng 3, hÖ thèng phÇn cøng ®−îc thiÕt kÕ víi c¸c
thµnh phÇn chÝnh bao gåm (1):
- HÖ thèng hiÓn thÞ th«ng tin trªn ma trËn LED bao gåm 3 ma trËn LED.
- §ång hå thêi gian thùc hiÓn thÞ b»ng 4 LED 7 thanh.
- Giao diÖn ng−êi sö dông gåm 1 mµn h×nh tinh thÓ láng LCD vµ c¸c
phÝm nhÊn.
Víi hÖ th«ng nµy th× cã thÓ chia thµnh c¸c t¸c vô nh− sau:
- T¸c vô 0 (task 0) : Dïng ®Ó khëi t¹o cho c¸c t¸c vô kh¸c
- T¸c vô 1 (task 1): Dïng ®Ó nhËn lÖnh ®iÒu khiÓn tõ ng−êi sö dông, tõ ®ã
göi tÝn hiÖu ®iÒu khiÓn cho c¸c t¸c vô kh¸c.
- T¸c vô 2 (task 2): Dïng ®Ó hiÓn thÞ c¸c th«ng b¸o trªn LCD phôc vô
ng−êi ®iÒu khiÓn.
- T¸c vô 3 (task 3): T¸c vô thêi gian, t¸c vô nµy cung cÊp thêi gian thùc
cho c¸c t¸c vô 4
- T¸c vô 4 (task 4) : Dïng ®Ó quÐt c¸c th«ng sè phót, gi©y theo thêi gian
thùc lªn 4 LED 7 thanh.
- T¸c vô 5 (task 5) : Dïng ®Ó quÐt c¸c th«ng tin cÇn hiÓn thÞ trªn ma trËn
LED.
Gi¶i thuËt cña c¸c t¸c vô nh− sau:
T¸c vô 4 (task 4):
while (1) /* lÆp v« tËn */
{
TrÔ 1 gi©y (dïng bé ®Þnh thêi);
T¨ng biÕn gi©y lªn 1 ®¬n vÞ;
if (biÕn gi©y == 60)
-67-
{
biÕn gi©y = 0;
T¨ng biÕn phót lªn 1 ®¬n vÞ;
if (biÕn phót == 60)
{
BiÕn phót = 0;
T¨ng biÕn giê lªn 1 ®¬n vÞ;
if (biÕn giê == 24)
{
biÕn giê=0;
}
}
}
}
T¸c vô 5 (task 5):
Gi¶ thiÕt cÇn hiÓn thÞ x phót vµ y gi©y:
while(1) /*lÆp v« tËn*/
{
cËp nhËt thêi gian thùc vµo hai biÕn x vµ y;
phut_hang_don_vi=x%10;
phut_hang_chuc =x/10;
giay_hang_don_vi=y%10;
giay_hang_chuc =x/10;
P1=M[x/10]; //xuÊt m· cña chØ sè hµng chôc lªn
LED thø nhÊt.
P2.0=1; //cÊp nguån ®Ó LED thø nhÊt s¸ng
TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y.
-68-
P1=M[x%10]; //xuÊt m· cña chØ sè hµng ®¬n vÞ lªn
LED thø hai.
P2.1=1; //cÊp nguån ®Ó LED thø hai s¸ng
TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y.
P1=M[y/10]; //xuÊt m· cña chØ sè hµng chôc lªn
LED thø ba.
P2.2=1; //cÊp nguån ®Ó LED thø ba s¸ng
TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y.
P1=M[y/%0]; //xuÊt m· cña chØ sè ®¬n vÞ cña LED
thø t−.
P2.3=1; //cÊp nguån ®Ó LED thø t− s¸ng
TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y.
}
-T¸c vô 5 (task 5) :
while(1) //lÆp v« tËn
{
XuÊt m· cña dßng ch÷ thø nhÊt lªn c¸c cét cña ma
trËn LED (Port 0,2,3);
Dßng thø nhÊt s¸ng;
TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y.
XuÊt m· cña dßng ch÷ thø hai lªn c¸c cét cña ma
trËn LED (Port 0,2,3);
Dßng thø hai s¸ng;
TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y.
XuÊt m· cña dßng ch÷ thø ba lªn c¸c cét cña ma
trËn LED (Port 0,2,3);
Dßng thø ba s¸ng;
TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y.
...
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf
Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf

More Related Content

Similar to Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf

[Phần 1] Giáo trình động vật học không xương sống - Thái Trần Bái
[Phần 1] Giáo trình động vật học không xương sống - Thái Trần Bái  [Phần 1] Giáo trình động vật học không xương sống - Thái Trần Bái
[Phần 1] Giáo trình động vật học không xương sống - Thái Trần Bái
Tài liệu sinh học
 
BAI GIANG XAC SUAT THONG KE.pdf
BAI GIANG XAC SUAT THONG KE.pdfBAI GIANG XAC SUAT THONG KE.pdf
BAI GIANG XAC SUAT THONG KE.pdf
TuNguyen519122
 
He thong dieu khien thuy khi tran xuan tuy
He thong dieu khien thuy khi  tran xuan tuy He thong dieu khien thuy khi  tran xuan tuy
He thong dieu khien thuy khi tran xuan tuy
Nguyễn Hải Sứ
 
Giao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatGiao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatDang Hong
 
Giao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatGiao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatPham Minh Hai
 
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]bookbooming1
 
Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...
Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...
Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...
Dịch Vụ Viết Thuê Khóa Luận Zalo/Telegram 0917193864
 
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít nămđồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
nataliej4
 
Cau truc du_lieu_va_giai_thuat_moi
Cau truc du_lieu_va_giai_thuat_moiCau truc du_lieu_va_giai_thuat_moi
Cau truc du_lieu_va_giai_thuat_moi
Tuan Van
 
Đánh giá thực trạng phát triển nguồn nhân lực vùng đồng bằng sông Cửu Long
Đánh giá thực trạng phát triển nguồn nhân lực vùng đồng bằng sông Cửu LongĐánh giá thực trạng phát triển nguồn nhân lực vùng đồng bằng sông Cửu Long
Đánh giá thực trạng phát triển nguồn nhân lực vùng đồng bằng sông Cửu Long
nataliej4
 
Luận văn: Một số giải pháp nâng cao chất lượng sử dụng phần mềm kế toán doanh...
Luận văn: Một số giải pháp nâng cao chất lượng sử dụng phần mềm kế toán doanh...Luận văn: Một số giải pháp nâng cao chất lượng sử dụng phần mềm kế toán doanh...
Luận văn: Một số giải pháp nâng cao chất lượng sử dụng phần mềm kế toán doanh...
Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Luận văn: Phát triển nghiệp vụ quyền chọn tiền tệ tại Ngân hàng Thương mại cổ...
Luận văn: Phát triển nghiệp vụ quyền chọn tiền tệ tại Ngân hàng Thương mại cổ...Luận văn: Phát triển nghiệp vụ quyền chọn tiền tệ tại Ngân hàng Thương mại cổ...
Luận văn: Phát triển nghiệp vụ quyền chọn tiền tệ tại Ngân hàng Thương mại cổ...
Dịch Vụ Viết Thuê Khóa Luận Zalo/Telegram 0917193864
 
Luận án: Quá trình phát triển loại hình lớp ghép tiểu học, HAY
Luận án: Quá trình phát triển loại hình lớp ghép tiểu học, HAYLuận án: Quá trình phát triển loại hình lớp ghép tiểu học, HAY
Luận án: Quá trình phát triển loại hình lớp ghép tiểu học, HAY
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Luan van tien si kinh te quoc dan neu (26)
Luan van tien si kinh te quoc dan neu (26)Luan van tien si kinh te quoc dan neu (26)
Luan van tien si kinh te quoc dan neu (26)Nguyễn Công Huy
 
Luận văn: Quản trị rủi ro Tín dụng tại Ngân hàng Vietinbank, 9d
Luận văn: Quản trị rủi ro Tín dụng tại Ngân hàng Vietinbank, 9dLuận văn: Quản trị rủi ro Tín dụng tại Ngân hàng Vietinbank, 9d
Luận văn: Quản trị rủi ro Tín dụng tại Ngân hàng Vietinbank, 9d
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Luan van tien si kinh te quoc dan neu (15)
Luan van tien si kinh te quoc dan neu (15)Luan van tien si kinh te quoc dan neu (15)
Luan van tien si kinh te quoc dan neu (15)Nguyễn Công Huy
 
[Www.vnmath.com].on thi lop 10 theo chuyen de
[Www.vnmath.com].on thi lop 10 theo chuyen de[Www.vnmath.com].on thi lop 10 theo chuyen de
[Www.vnmath.com].on thi lop 10 theo chuyen deTam Vu Minh
 
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Tailieu.vncty.com ky thuat-mang_noron_va_giai_thuat_di_truyen_trong_khai_ph...
Tailieu.vncty.com   ky thuat-mang_noron_va_giai_thuat_di_truyen_trong_khai_ph...Tailieu.vncty.com   ky thuat-mang_noron_va_giai_thuat_di_truyen_trong_khai_ph...
Tailieu.vncty.com ky thuat-mang_noron_va_giai_thuat_di_truyen_trong_khai_ph...
Trần Đức Anh
 

Similar to Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf (20)

[Phần 1] Giáo trình động vật học không xương sống - Thái Trần Bái
[Phần 1] Giáo trình động vật học không xương sống - Thái Trần Bái  [Phần 1] Giáo trình động vật học không xương sống - Thái Trần Bái
[Phần 1] Giáo trình động vật học không xương sống - Thái Trần Bái
 
La0214
La0214La0214
La0214
 
BAI GIANG XAC SUAT THONG KE.pdf
BAI GIANG XAC SUAT THONG KE.pdfBAI GIANG XAC SUAT THONG KE.pdf
BAI GIANG XAC SUAT THONG KE.pdf
 
He thong dieu khien thuy khi tran xuan tuy
He thong dieu khien thuy khi  tran xuan tuy He thong dieu khien thuy khi  tran xuan tuy
He thong dieu khien thuy khi tran xuan tuy
 
Giao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatGiao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuat
 
Giao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatGiao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuat
 
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
 
Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...
Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...
Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...
 
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít nămđồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
 
Cau truc du_lieu_va_giai_thuat_moi
Cau truc du_lieu_va_giai_thuat_moiCau truc du_lieu_va_giai_thuat_moi
Cau truc du_lieu_va_giai_thuat_moi
 
Đánh giá thực trạng phát triển nguồn nhân lực vùng đồng bằng sông Cửu Long
Đánh giá thực trạng phát triển nguồn nhân lực vùng đồng bằng sông Cửu LongĐánh giá thực trạng phát triển nguồn nhân lực vùng đồng bằng sông Cửu Long
Đánh giá thực trạng phát triển nguồn nhân lực vùng đồng bằng sông Cửu Long
 
Luận văn: Một số giải pháp nâng cao chất lượng sử dụng phần mềm kế toán doanh...
Luận văn: Một số giải pháp nâng cao chất lượng sử dụng phần mềm kế toán doanh...Luận văn: Một số giải pháp nâng cao chất lượng sử dụng phần mềm kế toán doanh...
Luận văn: Một số giải pháp nâng cao chất lượng sử dụng phần mềm kế toán doanh...
 
Luận văn: Phát triển nghiệp vụ quyền chọn tiền tệ tại Ngân hàng Thương mại cổ...
Luận văn: Phát triển nghiệp vụ quyền chọn tiền tệ tại Ngân hàng Thương mại cổ...Luận văn: Phát triển nghiệp vụ quyền chọn tiền tệ tại Ngân hàng Thương mại cổ...
Luận văn: Phát triển nghiệp vụ quyền chọn tiền tệ tại Ngân hàng Thương mại cổ...
 
Luận án: Quá trình phát triển loại hình lớp ghép tiểu học, HAY
Luận án: Quá trình phát triển loại hình lớp ghép tiểu học, HAYLuận án: Quá trình phát triển loại hình lớp ghép tiểu học, HAY
Luận án: Quá trình phát triển loại hình lớp ghép tiểu học, HAY
 
Luan van tien si kinh te quoc dan neu (26)
Luan van tien si kinh te quoc dan neu (26)Luan van tien si kinh te quoc dan neu (26)
Luan van tien si kinh te quoc dan neu (26)
 
Luận văn: Quản trị rủi ro Tín dụng tại Ngân hàng Vietinbank, 9d
Luận văn: Quản trị rủi ro Tín dụng tại Ngân hàng Vietinbank, 9dLuận văn: Quản trị rủi ro Tín dụng tại Ngân hàng Vietinbank, 9d
Luận văn: Quản trị rủi ro Tín dụng tại Ngân hàng Vietinbank, 9d
 
Luan van tien si kinh te quoc dan neu (15)
Luan van tien si kinh te quoc dan neu (15)Luan van tien si kinh te quoc dan neu (15)
Luan van tien si kinh te quoc dan neu (15)
 
[Www.vnmath.com].on thi lop 10 theo chuyen de
[Www.vnmath.com].on thi lop 10 theo chuyen de[Www.vnmath.com].on thi lop 10 theo chuyen de
[Www.vnmath.com].on thi lop 10 theo chuyen de
 
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
 
Tailieu.vncty.com ky thuat-mang_noron_va_giai_thuat_di_truyen_trong_khai_ph...
Tailieu.vncty.com   ky thuat-mang_noron_va_giai_thuat_di_truyen_trong_khai_ph...Tailieu.vncty.com   ky thuat-mang_noron_va_giai_thuat_di_truyen_trong_khai_ph...
Tailieu.vncty.com ky thuat-mang_noron_va_giai_thuat_di_truyen_trong_khai_ph...
 

More from Man_Ebook

TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTETL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
Man_Ebook
 
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdfTừ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Man_Ebook
 
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdfTRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
Man_Ebook
 
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Man_Ebook
 
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
Man_Ebook
 
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
Man_Ebook
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
Man_Ebook
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Man_Ebook
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Man_Ebook
 
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Man_Ebook
 
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Man_Ebook
 
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfGiáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Man_Ebook
 
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfGiáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Man_Ebook
 
Giáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfGiáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdf
Man_Ebook
 
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfGiáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Man_Ebook
 
Giáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfGiáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdf
Man_Ebook
 
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfGiáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Man_Ebook
 
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfGiáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Man_Ebook
 
Giáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfGiáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdf
Man_Ebook
 
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình web  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
Man_Ebook
 

More from Man_Ebook (20)

TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTETL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
TL NỘI SAN KHOA CƠ KHÍ ĐỘNG LỰC 2023 - UTE
 
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdfTừ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
 
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdfTRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
TRÁCH NHIỆM PHÁP LÝ CỦA CÁN BỘ, CÔNG CHỨC TRONG HOẠT ĐỘNG CÔNG VỤ.pdf
 
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
Addressing Transport Issues in Non-Aqueous Li–air Batteries to Achieving High...
 
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
An Analysis of International Tourist Motivations Towards Phuket Food Attracti...
 
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
 
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
 
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
 
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfGiáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
 
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfGiáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
 
Giáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfGiáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdf
 
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfGiáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
 
Giáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfGiáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdf
 
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfGiáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
 
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfGiáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
 
Giáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfGiáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdf
 
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình web  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
 

Recently uploaded

trắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxdddddddddddddddddtrắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxddddddddddddddddd
my21xn0084
 
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docxVăn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
metamngoc123
 
SLIDE BÀI GIẢNG MÔN THƯƠNG MẠI ĐIỆN TỬ.pdf
SLIDE BÀI GIẢNG MÔN THƯƠNG MẠI ĐIỆN TỬ.pdfSLIDE BÀI GIẢNG MÔN THƯƠNG MẠI ĐIỆN TỬ.pdf
SLIDE BÀI GIẢNG MÔN THƯƠNG MẠI ĐIỆN TỬ.pdf
UyenDang34
 
Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
AnhPhm265031
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
SmartBiz
 
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
NguynDimQunh33
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
Nguyen Thanh Tu Collection
 
Cau-Trắc-Nghiệm-TTHCM-Tham-Khảo-THI-CUỐI-KI.pdf
Cau-Trắc-Nghiệm-TTHCM-Tham-Khảo-THI-CUỐI-KI.pdfCau-Trắc-Nghiệm-TTHCM-Tham-Khảo-THI-CUỐI-KI.pdf
Cau-Trắc-Nghiệm-TTHCM-Tham-Khảo-THI-CUỐI-KI.pdf
HngMLTh
 
insulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyetinsulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyet
lmhong80
 
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docxBÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
HngL891608
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
Nguyen Thanh Tu Collection
 
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
QucHHunhnh
 
FSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptxFSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptx
deviv80273
 
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptxLỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
12D241NguynPhmMaiTra
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
hieutrinhvan27052005
 
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀNGiải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
linh miu
 
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
lamluanvan.net Viết thuê luận văn
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
khanhthy3000
 

Recently uploaded (18)

trắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxdddddddddddddddddtrắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxddddddddddddddddd
 
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docxVăn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
 
SLIDE BÀI GIẢNG MÔN THƯƠNG MẠI ĐIỆN TỬ.pdf
SLIDE BÀI GIẢNG MÔN THƯƠNG MẠI ĐIỆN TỬ.pdfSLIDE BÀI GIẢNG MÔN THƯƠNG MẠI ĐIỆN TỬ.pdf
SLIDE BÀI GIẢNG MÔN THƯƠNG MẠI ĐIỆN TỬ.pdf
 
Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
 
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
 
Cau-Trắc-Nghiệm-TTHCM-Tham-Khảo-THI-CUỐI-KI.pdf
Cau-Trắc-Nghiệm-TTHCM-Tham-Khảo-THI-CUỐI-KI.pdfCau-Trắc-Nghiệm-TTHCM-Tham-Khảo-THI-CUỐI-KI.pdf
Cau-Trắc-Nghiệm-TTHCM-Tham-Khảo-THI-CUỐI-KI.pdf
 
insulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyetinsulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyet
 
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docxBÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
 
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
 
FSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptxFSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptx
 
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptxLỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
 
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀNGiải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
 
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
 

Nghiên cứu, thiết kế hệ điều hành trên bộ vi điều khiển 8 bít.pdf

  • 1. bé gi¸o dôc vµ ®µo t¹o tr−êng ®¹i häc b¸ch khoa hµ néi ----------------------------------------- luËn v¨n th¹c sü khoa häc Nghiªn cøu, thiÕt kÕ hÖ ®iÒu hµnh trªn bé vi ®iÒu khiÓn 8 bÝt ngµnh: xö lý th«ng tin vµ truyÒn th«ng M∙ sè: vò trung kiªn Ng−êi h−íng dÉn khoa häc: TS. NguyÔn Linh Giang hµ néi 2006
  • 2. -2- Lêi cam ®oan T«i xin cam ®oan b¶n luËn v¨n nµy lµ kÕt qu¶ nghiªn cøu cña b¶n th©n d−íi sù h−íng dÉn cña TS. NguyÔn Linh Giang. NÕu cã g× sai ph¹m, t«i xin hoµn toµn chÞu tr¸ch nhiÖm. Ng−êi lµm cam ®oan Vò Trung Kiªn
  • 3. -3- Môc lôc Lêi cam ®oan.....................................................................................................2 Danh môc c¸c ký hiÖu, c¸c ch÷ viÕt t¾t ..........................................................5 Danh môc c¸c b¶ng ..........................................................................................6 Danh môc c¸c h×nh vÏ, ®å thÞ..........................................................................7 Lêi nãi ®Çu ........................................................................................................9 Ch−¬ng 1 - Tæng quan vÒ hÖ ®iÒu hµnh......................11 1.1. Kh¸i niÖm vÒ hÖ ®iÒu hµnh (OS-Operating System)................................. 11 1.1.1. Kh¸i niÖm................................................................................................. 11 1.1.2. Chøc n¨ng cña hÖ ®iÒu hµnh. ................................................................... 11 1.1.3. C¸c thµnh phÇn cña hÖ ®iÒu hµnh............................................................. 13 1.2. Qu¶n lý tiÕn tr×nh......................................................................................... 16 1.2.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh.............................................................. 16 1.2.2. Kh¸i niÖm vÒ tµi nguyªn “g¨ng” vµ ®o¹n tíi h¹n .................................... 17 1.2.3. HiÖn t−îng bÕ t¾c..................................................................................... 19 1.3. LËp lÞch cho CPU ......................................................................................... 20 1.3.1. Kh¸i niÖm giê CPU.................................................................................. 20 1.3.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU................................ 20 1.3.3. LËp lÞch cho CPU..................................................................................... 22 1.4. Qu¶n lý bé nhí ............................................................................................. 25 1.4.1. Yªu cÇu ph¶i qu¶n lý bé nhí ................................................................... 25 1.4.2. C¸c s¬ ®å qu¶n lý bé nhí......................................................................... 26 Ch−¬ng 2 - Vi ®iÒu khiÓn vµ ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn ......................................................................28 2.1. Vi ®iÒu khiÓn........................................................................................28 2.1.1. Vi xö lý vµ vi ®iÒu khiÓn.......................................................................... 28 2.1.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn............................................................ 30 2.1.3. C¸c bé ®Þnh thêi....................................................................................... 35 2.1.4. Bé xö lý ng¾t............................................................................................ 37 2.2. Ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn......................................................... 39
  • 4. -4- 2.2.1. Tæng quan vÒ c¸c ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn. ......................... 39 2.2.2. Nh÷ng vÊn ®Ò víi ng«n ng÷ C viÕt cho c¸c bé vi ®iÒu khiÓn................... 42 Ch−¬ng 3 - thiÕt kÕ hÖ vi ®iÒu khiÓn ............................49 3.1. X¸c ®Þnh yªu cÇu thiÕt kÕ. ........................................................................... 50 3.2. Lùa chän cÊu h×nh cho hÖ thèng................................................................. 51 3.2.1. Lùa chän bé ®iÒu khiÓn trung t©m........................................................... 51 3.2.2. Giao diÖn ng−êi sö dông.......................................................................... 52 3.2.3. C¸c thiÕt bÞ m« pháng qu¸ tr×nh ho¹t ®éng cña tiÕn tr×nh. ...................... 53 3.3. ThiÕt kÕ m¹ch ®iÖn....................................................................................... 58 3.4. §o thö vµ kiÓm tra lçi.................................................................................. 59 Ch−¬ng 4 - ThiÕt kÕ hÖ ®iÒu hµnh.....................................60 4.1.1. Môc ®Ých vµ yªu cÇu thiÕt kÕ. .................................................................. 60 4.1.2. Môc ®Ých. ................................................................................................. 60 4.1.2. Yªu cÇu .................................................................................................... 63 4.2. Tr×nh tù thiÕt kÕ hÖ ®iÒu hµnh.................................................................... 64 4.3. X©y dùng c¸c tiÕn tr×nh. .............................................................................. 65 4.3.1. X©y dùng c¸c t¸c vô t−¬ng øng c¸c tiÕn tr×nh.......................................... 65 4.3.2. Gi¶i quyÕt bµi to¸n tµi nguyªn g¨ng ........................................................ 69 4.4. LËp lÞch cho CPU. ........................................................................................ 71 4.4.1. Sù kiÖn vµ chuyÓn tr¹ng th¸i gi÷a c¸c tiÕn tr×nh. ..................................... 71 4.4.2. LËp lÞch cho CPU..................................................................................... 80 4.5. Qu¶n lý bé nhí. ............................................................................................ 83 KÕt luËn vµ kiÕn nghÞ.....................................................................................86 Tµi liÖu tham kh¶o .........................................................................................87
  • 5. -5- Danh môc c¸c ký hiÖu, c¸c ch÷ viÕt t¾t STT Ch÷ viÕt t¾t Ch÷ ®Çy ®ñ 1 FCFS First Come First Served 2 FIFO First In First Out 3 LIFO Last In First Out 4 MCS Micro Controller System 5 OS Operating System 6 RTOS Real Time Operating System 7 RR Round Robbin 8 SJF Shortest Job First 9 SRT Shortest Remain Time 10 uC Micro Controller
  • 6. -6- Danh môc c¸c b¶ng B¶ng 1.1. Tr¹ng th¸i cña c¸c tiÕn tr×nh............................................................... 19 B¶ng 1.2. Thêi gian thùc hiÖn cña c¸c tiÕn tr×nh................................................ 25 B¶ng 1.3. Thêi gian chê cña c¸c tiÕn tr×nh......................................................... 25 B¶ng 2.1. Bé nhí d÷ liÖu tr a AT89S ªn chÝp cñ 52 .............................................. 33
  • 7. -7- Danh môc c¸c h×nh vÏ, ®å thÞ H×nh 1.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh........................................................ 17 H×nh 1.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU.......................... 20 H×nh 1.3. S¬ ®å thùc hiÖn tiÕn tr×nh ................................................................... 21 H×nh 1.4. S¬ ®å tæ chøc hµng ®îi c¸c tiÕn tr×nh ................................................. 22 H×nh 1.5. S¬ ®å Grant......................................................................................... 25 H×nh 2.1. S¬ ®å khèi cña bé vi ®iÒu khiÓn AT89S52......................................... 29 H×nh 2.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn ...................................................... 30 H×nh 2.3. S¬ ®å ghÐp nèi AT89S52 víi EPROM............................................... 31 H×nh 2.4. S¬ ®å ghÐp nèi AT89S52 víi RAM .................................................. 34 H×nh 2.5. Gi¶i m· ®Þa chØ cho c¸c vi m¹ch nhí ................................................. 34 H×nh 2.6. Bé nhí d÷ liÖu ®äc nh− bé nhí ch−¬ng tr×nh..................................... 35 H×nh 2.7. Ho¹t ®éng cña Timer0 vµ Timer1 ë chÕ ®é 1..................................... 36 H×nh 2.8. C¸c nguån ng¾t cña AT89S52............................................................ 38 H×nh 3.1. Tr×nh tù thiÕt kÕ phÇn cøng cho hÖ thèng.......................................... 49 H×nh 3.2. S¬ ®å khèi cña hÖ vi ®iÒu khiÓn ......................................................... 51 H×nh 3.3. GhÐp nèi vi ®iÒu khiÓn víi RAM ngoµi. ............................................ 52 H×nh 3.4. Giao diÖn ng−êi sö dông trªn hÖ vi ®iÒu khiÓn................................... 53 H×nh 3.5. HiÓn thÞ trªn LED 7 ®o¹n b»ng kü thuËt quÐt .................................... 54 H×nh 3.6. GhÐp nèi ma trËn LED trªn hÖ vi ®iÒu khiÓn ..................................... 57 H×nh 3.7. Nguyªn t¾c xÕp ch÷ trªn ma trËn LED............................................... 58 H×nh 4.1. C¸c t¸c vô ®−îc thùc hiÖn ®ång thêi (song song) .............................. 62 H×nh 4.2. C¸c t¸c vô ®−îc thùc hiÖn lu©n phiªn liªn tôc.................................... 62 H×nh 4.3. Gi¶n ®å xung trªn P1.......................................................................... 69 H×nh 4.4. Chèt l¹i gi¸ trÞ cña P1......................................................................... 70
  • 8. -8- H×nh 4.5. C¸c tiÕn tr×nh ®−îc ph©n bæ thêi gian CPU b»ng nhau...................... 71 H×nh 4.6. ChuyÓn gi÷a c¸c tiÕn tr×nh b»ng sù kiÖn time out.............................. 73 H×nh 4.7. C¸c tiÕn tr×nh ®−îc ph©n bæ thêi gian CPU kh¸c nhau ...................... 74 H×nh 4.8. Ng−êi sö dông ra lÖnh vµo c¸c thêi ®iÓm kh¸c nhau ......................... 75 H×nh 4.9. ChuyÓn gi÷a c¸ tiÕn tr×nh b»ng sù kiÖn interrupt ............................... 76 H×nh 4.9. M« t¶ tr¹ng th¸i cña c¸c tµi nguyªn cña tiÕn tr×nh............................. 77 H×nh 4.10. C¸c tµi nguyªn cÇn l u khi dõng mét − tiÕn tr×nh............................... 78 H×nh 4.11. Ph©n bæ ng¨n xÕp cho c¸c tiÕn tr×nh ................................................ 79 H×nh 4.12. LËp lÞch cho 8 tiÕn tr×nh thùc hiÖn quÐt ch÷ trªn ma trËn LED ....... 81 H×nh 4.13. LËp lÞch cho 4 tiÕn tr×nh quÐt c¸c sè trªn 4 LED 7 ®o¹n ................. 81 H×nh 4.14. LËp lÞch cho tiÕn tr×nh ®iÒu khiÓn LCD........................................... 82 H×nh 4.15. LËp lÞch cho tiÕn tr×nh thêi gian thùc.............................................. 82 H×nh 4.16. Tæ chøc bé nhí ROM cña hÖ vi ®iÒu khiÓn ..................................... 83 H×nh 4.17. Thay ®æi vÞ trÝ ®Æt c¸c ch−¬ng tr×nh con phôc vô ng¾t..................... 84 H×nh 4.18. Ph©n bæ bé nhí ROM....................................................................... 85 H×nh 4.19. Ph©n bæ bé nhí RAM....................................................................... 85
  • 9. -9- Lêi nãi ®Çu Cïng víi sù ph¸t triÓn cña khoa häc kü thuËt, côm tõ “tù ®éng ho¸” ®· trë nªn hÕt søc phæ th«ng. Tõ c¸c m¸y mãc tù ®éng trong c¸c nhµ m¸y xÝ nghiÖp thay thÕ cho søc lao ®éng cña c«ng nh©n, tõ c¸c ®å gia dông tù ®éng trong gia ®×nh gióp Ých cho ng−êi néi trî...nãi chung c¸c thiÕt bÞ cã kh¶ n¨ng tù ®éng ho¸ xuÊt hiÖn ë kh¾p mäi n¬i. Mét c©u hái ®Æt ra víi kh¸ nhiÒu ng−êi lµ nhê ®©u mµ c¸c thiÕt bÞ cã kh¶ n¨ng tù ®éng ®−îc? §Ó tr¶ lêi c©u hái nµy chóng ta cÇn ph¶i ®i tõ khi cã côm tõ “tù ®éng ho¸” ra ®êi. Tr−íc kia, khi ch−a cã c«ng nghÖ b¸n dÉn, c¸c phÇn tö cã tiÕp ®iÓm nÕu ®−îc ®Çu nèi víi nhau theo mét m¹ch logic nµo ®ã th× vÉn cã thÓ t¹o ra mét hÖ thèng tù ®éng, tuy nhiªn kh¶ n¨ng ®¸p øng vµ tÝnh tù ®éng c¶ hÖ thèng nµy kh«ng cao. C«ng nghÖ b¸n dÉn ra ®êi, nã gi¶i quyÕt ®−îc h¹n chÕ vÒ ®¸p øng (tèc ®é) cña c¸c phÇn tö cã tiÕp ®iÓm tuy nhiªn còng ph¶i chê ®Õn khi cã sù xuÊt hiÖn cña c¸c bé vi xö lý, c¸c hÖ thèng cã tÝnh tù ®éng ho¸ cao míi ra ®êi. §Æc tr−ng cña c¸c hÖ thèng nµy ®−îc m« t¶ b»ng mét c«ng thøc ®¬n gi¶n: PhÇn cøng + PhÇn mÒm = øng dông. Theo c«ng thøc nµy th× khi tuú biÕn mét trong 2 thµnh phÇn lµ phÇn cøng hoÆc phÇn mÒm th× sÏ cho ra øng dông kh¸c. Th«ng th−êng phÇn mÒm lµ thµnh phÇn ®−îc tuú biÕn. Mét hÖ thèng víi c¸c bé vi xö lý cã thÓ gi¶ c¸c suy nghÜ vµ hµnh ®éng cña con ng−êi v× lý do ®¬n gi¶n lµ chóng ho¹t ®éng theo mét ch−¬ng tr×nh cña ng−êi thiÕt kÕ ®−a vµo mµ ch−¬ng tr×nh chÝnh lµ c¸c thuËt to¸n lµ ý nghÜ cña ng−êi lËp tr×nh. Nh− vËy ®Ó mét hÖ thèng cã tÝnh th«ng minh, tù ®éng ho¸ cao th× phÇn mÒm viÕt cho nã lµ vÊn ®Ò hÕt søc quan träng. Mét hÖ thèng víi cïng mét phÇn cøng nh−ng nÕu nã ®−îc viÕt hÖ ®iÒu hµnh th× kh¶ n¨ng cña nã sÏ trë nªn m¹nh h¬n rÊt nhiÒu so víi mét hÖ thèng chØ cã mét ch−¬ng tr×nh tuÇn tù. Víi môc ®Ých kh«ng ngõng ®¸p øng c¸c nhu cÇu cña
  • 10. -10- x· héi, hiÖn nay c¸c m«n häc vÒ hÖ nhóng ®· vµ ®ang ® a vµo gi¶ng d¹y t¹i −îc ®− c¸c tr−êng Cao ®¼ng vµ §¹i häc. Tuy nhiªn ®Ó cã mét hiÖu qña gi¶ng d¹y tèt nhÊt th× cÇn cã mét ph−¬ng ph¸p nghiªn cøu vµ thiÕt kÕ ®óng chÝnh t¾c vµ còng cÇn ph¶i cã mét thiÕt bÞ phôc vô qua tr×nh thÝ nghiÖm. Tr−êng §¹i häc C«ng nghiÖp Hµ néi lµ mét tr−êng ®µo t¹o c¸c cö nh©n vµ c¸c kü s− thùc hµnh. Trong ch−¬ng tr×nh ®µo t¹o còng ®· cã m«n kü thuËt vi ®iÒu khiÓn, ®©y cã thÓ coi lµ nÒn t¶ng ®Ó tiÕp cËn víi c¸c hÖ thèng nhóng sö dông vi ®iÒu khiÓn cã hÖ ®iÒu hµnh. ViÖc nghiªn cøu ®Ó ®−a vµo gi¶ng d¹y m«n thiÕt kÕ hÖ ®iÒu hµnh cho c¸c hÖ vi ®iÒu khiÓn lµ phï hîp víi yªu cÇu hiÖn t¹i. Víi sù h−íng dÉn cña TS NguyÔn Linh Giang, trong khu«n khæ luËn v¨n nµy, t«i m¹nh d¹n nghiªn cøu vÒ c¸c nguyªn t¾c c¬ b¶n khi thiÕt kÕ mét hÖ ®iÒu hµnh trªn hÖ vi ®iÒu khiÓn. Néi dung cña luËn v¨n bao gåm 4 ch−¬ng, trong ®ã: Ch−¬ng 1: Giíi thiÖu tæng quan hÖ ®iÒu hµnh. Ch−¬ng 2: Giíi thiÖu bé vi ®iÒu khiÓn ®−îc sö dông ®Ó viÕt hÖ ®iÒu hµnh vµ ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn. Ch−¬ng 3. ThiÕt kÕ phÇn cøng hÖ vi ®iÒu khiÓn. Ch−¬ng 4. ThiÕt kÕ hÖ ®iÒu hµnh cho hÖ vi ®iÒu khiÓn Do thêi gian vµ kh¶ n¨ng cã h¹n nªn luËn v¨n nµy sÏ cßn nhiÒu thiÕu sãt. RÊt mong ®−îc sù gãp ý vµ th«ng c¶m cña c¸c thÇy gi¸o, c« gi¸o. Hµ néi, ngµy 30 th¸ng 10 n¨m 2006 Häc viªn Vò Trung Kiªn
  • 11. -11- Ch−¬ng 1 - Tæng quan vÒ hÖ ®iÒu hµnh 1.1. Kh¸i niÖm vÒ hÖ ®iÒu hµnh (OS-Operating System) 1.1.1. Kh¸i niÖm Khã cã mét kh¸i niÖm hay ®Þnh nghÜa chÝnh x¸c vÒ hÖ ®iÒu hµnh, v× hÖ ®iÒu hµnh lµ mét bé phËn ® îng khai th¸c nhÊt, hä cã thÓ lµ ng −îc nhiÒu ®èi t− −êi sö dông th«ng th−êng, cã thÓ lµ lËp tr×nh viªn, cã thÓ lµ ng−êi qu¶n lý hÖ thèng vµ tuú theo møc ®é khai thøc hÖ ®iÒu hµnh mµ hä cã thÓ ®−a ra nh÷ng kh¸i niÖm kh¸c nhau. Kh¸i niÖm 1: HÖ ®iÒu hµnh lµ hÖ thèng ch−¬ng tr×nh víi c¸c chøc n¨ng gi¸m s¸t ®iÒu khiÓn viÖc thùc hiÖn c¸c ch− − ¬ng tr×nh cña ng êi sö dông qu¶n lý vµ ph©n chia tµi nguyªn cho nhiÒu ch−¬ng tr×nh ng−êi sö dông ®ång thêi sao cho viÖc khai th¸c chøc n¨ng cña hÖ thèng m¸y tÝnh cña ng−êi sö dông lµ thuËn lîi vµ hiÖu qu¶ nhÊt. Kh¸i niÖm 2: HÖ ®iÒu hµnh lµ mét ch−¬ng tr×nh ®ãng vai trß nh− giao diÖn gi÷a ng n lý vµ ®iÒu khiÓn phÇn cøng −êi sö dông vµ phÇn cøng m¸y tÝnh nã qu¶ còng nh− sù thùc hiÖn cña tÊt c¶ c¸c ch−¬ng tr×nh. Kh¸i niÖm thø hai rÊt gÇn víi c¸c hÖ ®iÒu hµnh ®ang sö dông trªn c¸c m¸y tÝnh hiÖn nay trong khi kh¸i niÖm thø nhÊt l¹i gÇn víi c¸c hÖ thèng ®o l−êng ®iÒu khiÓn trong c«ng nghiÖp sö dông c¸c bé ®iÒu khiÓn kh¶ tr×nh (VÝ dô nh− vi ®iÒu khiÓn). 1.1.2. Chøc n¨ng cña hÖ ®iÒu hµnh. Cã thÓ nãi hÖ ®iÒu hµnh lµ 1 hÖ thèng c¸c ch−¬ng tr×nh ®ãng vai trß trung gian gi÷a ng−êi sö dông vµ phÇn cøng. NhiÖm vô chÝnh cña nã lµ cung cÊp mét m«i tr êng thuËn lîi ®Ó ng − −êi sö dông dÔ dµng thùc hiÖn c¸c ch−¬ng tr×nh øng dông cña hä trªn m¸y tÝnh vµ khai th¸c triÖt ®Ó c¸c chøc n¨ng cña phÇn cøng.
  • 12. -12- §Ó ®¹t ®−îc môc tiªu trªn hÖ ®iÒu hµnh ph¶i thùc hiÖn 2 chøc n¨ng chÝnh sau ®©y: - T¹o ra mét hÖ th«ng më réng bao gåm c¸c thµnh phÇn vËt lý vµ c¸c thµnh phÇn logic: Nh− chóng ta biÕt, mét hÖ thèng kh¶ tr×nh (vÝ dô nh− m¸y tÝnh) gåm c¸c bé phËn chÝnh nh−: Processor, Memory, I/O Device, Bus, vv, do ®ã ®Ó ®èi tho¹i hoÆc khai th¸c m¸y tÝnh ng−êi sö dông ph¶i hiÓu ®−îc c¬ chÕ ho¹t ®éng cña c¸c bé phËn nµy vµ ph¶i t¸c ®éng trùc tiÕp vµo nã tÊt nhiªn lµ b»ng nh÷ng con sè 0,1 (ng«n ng÷ m¸y). §iÒu nµy lµ qu¸ khã ®èi víi ng êi sö dông hÖ ®iÒu hµnh ph¶i − che ®Ëy c¸c chi tiÕt phÇn cøng m¸y tÝnh bëi mét m¸y tÝnh më réng, m¸y tÝnh më réng nµy cã ®Çy ®ñ c¸c chøc n¨ng cña mét m¸y tÝnh thùc nh−ng ®¬n gi¶n vµ dÔ sö dông h¬n. Theo ®ã khi cÇn t¸c ®éng vµo m¸y tÝnh thùc ng−êi sö dông chØ cÇn t¸c ®éng vµo m¸y tÝnh më réng mäi sù chuyÓn ®æi th«ng tin ®iÒu khiÓn tõ m¸y tÝnh. Môc ®Ých cña chøc n¨ng nµy kµ: Gióp ng−êi sö dông khai thøc c¸c chøc n¨ng cña phÇn cøng m¸y tÝnh dÔ dµng vµ hiÖu qu¶ h¬n. - Qu¶n lý tµi nguyªn cña hÖ thèng: Tµi nguyªn hÖ thèng cã thÓ lµ: prrocessor, Memory, I/O Device..., ®©y lµ nh÷ng tµi nguyªn mµ hÖ ®iÒu hµnh dïng ®Ó cÊp ph¸t cho c¸c tiÕn tr×nh, ch−¬ng tr×nh trong qu¸ tr×nh ®iÒu khiÓn sù ho¹t ®éng cña hÖ thèng. Khi ng−êi sö dông cÇn thùc hiÖn mét ch−¬ng tr×nh hay mét ch−¬ng tr×nh cÇn n¹p thªm mét tiÕn tr×nh míi vµo bé nhí th× hÖ ®iÒu hµnh ph¶i cÊp ph¸t kh«ng gian nhí cho ch−¬ng tr×nh, tiÕn tr×nh ®ã ®Ó ch−¬ng tr×nh, tݪn tr×nh ®ã n¹p ®−îc vµo bé nhí vµ ho¹t ®éng ®−îc. Trong m«i tr−êng hÖ ®iÒu hµnh ®a nhiÖm cã thÓ cã nhiÒu ch−¬ng tr×nh, tiÕn tr×nh ®ång thêi cÇn ®−îc n¹p vµo bé nhí nh−ng kh«ng gian l−u tr÷ cñ© bé nhí cã giíi h¹n do ®ã hÖ ®iÒu hµnh ph¶i tæ chøc cÊp ph¸t bé nhí sao cho hîp lý ®Ó ®¶m b¶o tÊt c¶ c¸c ch−¬ng tr×nh tiÕn tr×nh khi cÇn ®Ó ®−îc n¹p vµo bé nhí ®Ó ho¹t ®éng. Ngoµi ra hÖ ®iÒu hµnh cßn ph¶i tæ chøc b¶o vÖ c¸c kh«ng gian nhí ®· cÊp cho c¸c ch−¬ng tr×nh tiÕn tr×nh ®Ó tr¸nh sù truy cËp bÊt hîp lÖ vµ sù tranh
  • 13. -13- chÊp bé nhí gi÷a c¸c ch−¬ng tr×nh, tiÕn tr×nh, ®Æc biÖt lµ c¸c tiÕn tr×nh ®ång thêi ho¹t ®éng trªn hÖ thèng. §©y lµ mét trong nh÷ng nhiÖm vô quan träng cña hÖ ®iÒu hµnh. Trong qu¸ tr×nh ho¹t ®éng cña hÖ thèng ®Æc bÖt lµ c¸c hÖ thèng ®a ng−êi dïng ®a ch−¬ng tr×nh, ®a tiÕn tr×nh. Cßn xuÊt hiÖn mét hiÖn t−îng kh¸c, ®ã lµ nhiÒu ch−¬ng tr×nh, tiÕn tr×nh ®ång thêi sö dông mét kh«ng gian nhí hau mét tËp tin (d÷ liÖu, ch−¬ng tr×nh) nµo ®ã. Trong tr−êng hîp nµy hÖ ®iÒu hµnh ph¶i tæ chøc viÖc chia sÎ vµ gi¸m s¸t viÖc truy xuÊt ®ång thêi trªn c¸c tµi nguyªn nãi trªn sao cho viÖc sö dông tµi nguyªn cã hiÖu qu¶ nh− − ng tr¸nh ® îc sù mÊt m¸t d÷ liÖu vµ lµm háng c¸c tËp tin. Hai dÉn chøng ®iÓn h×nh gióp chóng ra thÊy vai trß cña hÖ ®iÒu hµnh trong viÖc qu¶n lý tµi nguyªn hÖ thèng sau nµy chóng ra sÏ thÊy viÖc cÊp ph¸t, chia sÎ, b¶o vÖ tµi nguyªn cña hÖ ®iÒu hµnh lµ mét trong nh÷ng c«ng viÖc khã kh¨n vµ phøc t¹p nhÊt. HÖ ®iÒu hµnh ®· chi phÝ nhiÒu cho c«ng viÖc nãi trªn ®Ó ®¸t ®−îc môc tiªu: Trong mäi tr−êng hîp tÊt c¶ c¸c ch−¬ng tr×nh, tiÕn tr×nh nÕu cÇn ®−îc cÊp ph¸t tµi nguyªn ®Ó ho¹t ®éng th× sím muén nã ®Òu ®−îc cÊp ph¸t vµ ®−îc ®−a vµo tr¹ng th¸i ho¹t ®éng. 1.1.3. C¸c thµnh phÇn cña hÖ ®iÒu hµnh 1.1.3.1. Thµnh phÇn qu¶n lý tiÕn tr×nh. HÖ ®iÒu hµnh ph¶i cã nhiÖm vô t¹o lËp tiÕn tr×nh vµ ®−a nã vµo danh s¸ch qu¶n lý tݪn tr×nh cña hÖ thèng. Khi tiÕn tr×nh kÕt thóc hÖ ®iÒu hµnh ph¶i lo¹i bá tiÕn tr×nh ra lhái danh s¸c qu¶n lý tiÕn tr×nh cña hÖ thèng. HÖ ®iÒu hµnh ph¶i cung cÊp ®Çy ®ñ tµi nguyªn ®Ó tiÕn tr×nh ®i vµo ho¹t ®éng vµ ph¶i ®¶m b¶o ®ñ tµi nguyªn ®Ó duy tr× sù ho¹t ®éng cña tiÕn tr×nh cho ®Õn khi tiÕn tr×nh kÕt thóc. Khi tiÕn tr×nh kÕt thóc hÖ ®iÒu hµnh ph¶i thu håi nh÷ng tµi nguyªn mµ hÖ ®iÒu hµnh ®· cÊp cho tiÕn tr×nh.
  • 14. -14- Trong qu¸ tr×nh ho¹t ®éng nÕu v× mét lý do nµo ®ã tiÕn tr×nh kh«ng thÓ tiÕp rôc ho¹t ®éng ®−îc th× hÖ ®iÒu hµnh ph¶i t¹m dõng tiÕn tr×nh thu håi tµi nguyªn mµ tiÕn tr×nh ®ang chiÕm gi÷, sau ®ã nÕu diÒu kiÖn thuËn lîi th× hÖ ®iÒu hµnh ph¶i t¸i kÝch ho¹t tiÕn tr×nh ®Ó tiÕn tr×nh tiÕp tôc ho¹t ®éng cho ®Õn khi kÕt thóc. Trong c¸c hÖ thèng cã nhiÒu tiÕn tr×nh ho¹t ®éng song song hÖ ®iÒu hµnh ph¶i gi¶i quyÕt vÊn ®Ò tranh chÊp tµi nguyªn gi÷a c¸c tiÕn tr×nh, ®Òu phèi processor cho c¸c tiÕn tr×nh, gióp c¸c tiÕn tr×nh trao ®æi th«ng tin vµ ho¹t ®éng ®ång bé víi nhau, ®¶m b¶o nguyªn t¾c tÊt c¶ c¸c tiÕn tr×nh ®· ®−îc khëi t¹o ph¶i ®−îc thùc hiÖn vµ kÕt thóc ®−îc. Tãm l¹i, bé phËn qu¶n lý tiÕn tr×nh cña hÖ ®iÒu hµnh ph¶i thùc hiÖn nhøng nhiÖm vô sau ®©y: T¹o lËp, huû bá tiÕn tr×nh. T¹m dõng, t¸i kÝch ho¹t ®éng tiÕn tr×nh. T¹o c¬ chÕ th«ng tin liªn l¹c gi÷a c¸c tiÕn tr×nh. T¹o c¬ chÕ ®ång bé ho¸ gi÷a c¸c tiÕn tr×nh. 1.1.3.2. Thµnh phÇn qu¶n lý bé nhí. Bé nhí chÝnh lµ mét trong nh÷ng tµi nguyªn quan träng cña hÖ thèng, ®©y lµ thiÕt bÞ l−u tr÷ duy nhÊt mµ CPU cã thÓ truy xuÊt trùc tiÕp ®−îc. C¸c ch−¬ng tr×nh cña ng−êi sö dông muèn thùc hiÖn ®−îc bëi CPU th× trwocs hÕt nã ph¶i ® îc hÖ ®iÒu hµnh n¹p vµo bé n − hí chÝnh, chuyÓn ®æi c¸c ®Þa chØ sö dông trong ch−¬ng tr×nh thµnh nh÷ng ®Þa chØ mµ CPU cã thÓ truy xuÊt ®−îc. Khi ch−¬ng tr×nh, tiÕn tr×nh cã yªu cÇu ®−îc n¹p vµo bé nhí th× hÖ ®iÒu hµnh ph¶i cÊp ph¸t kh«ng gian nhí cho nã. Khi ch−¬ng tr×nh, tiÕn tr×nh kÕt thóc th× hÖ ®iÒu hµnh ph¶i thi håi l¹i kh«ng gian nhí ®· cÊp ph¸t cho ch−¬ng tr×nh, tiÕn tr×nh tr−íc ®ã.
  • 15. -15- Trong c¸c hÖ thèng ®a ch−¬ng hay ®a tiÕn tr×nh, trong bé nhí tån t¹i nhiÒu ch−¬ng tr×nh/ nhiÒu tiÕn tr×nh, hÖ ®iÒu hµnh ph¶i thùc hiÖn nhiÖm vô b¶o vÖ c¸c vïng nhí ®· cÊp ph¸t cho c¸c ch−¬ng tr×nh/tiÕn tr×nh, tr¸nh sù vi ph¹m trªn c¸c vïng nhí cña nhau. Tãm l¹i, bé phËn qu¶n lý bé nhí chÝnh cña hÖ ®iÒu hµnh thùc hiÖn nh÷ng nhiÖm vô sau: CÊp ph¸t, thu håi vïng nhí. Chi nhËn tr¹ng th¸i bé nhí. B¶o vÖ bé nhí. QuyÕt ®Þnh tiÕn tr×nh nµo ® îc n¹p vµo bé nhí. − 1.1.3.3. Thµnh phÇn qu¶n lý vµo ra. Mét trong nh÷ng môc tiªu cña hÖ ®iÒu hµnh lµ gióp ng−êi sö dông khai thøc hÖ thèng m¸y tÝnh dÔ dµng vµ hiÖu qu¶, do ®ã c¸c thao t¸c trao ®æi th«ng tin trªn thiÕt bÞ xuÊt / nhËp ph¶i trong suèt ®èi víi ng−êi sö dông. §Ó thùc hiÖn ®−îc ®iÒu nµy hÖ ®iÒu hµnh ph¶i tån t¹i mét bé phËn ®iÒu khiÓn thiÕt bÞ, bé phËn nµy phèi hîp cïng CPU ®Ó qu¶n lý sù ho¹t ®éng vµ trao ®æi th«ng tin gi÷a hÖ thãng, ch−¬ng tr×nh ng−êi sö dông vµ ng−êi sö dông víi c¸c thiÕt bÞ xu©ts/nhËp. Bé phËn ®iÒu khiÓn thiÕt bÞ thùc hiÖn nh÷ng nhiÖm vô sau: Gëi m· lÖnh ®iÒu khiÓn ®Õn thiÕt bÞ: HÖ ®iÒu hµnh ®iÒu khiÓn c¸c thiÕt bÞ b»ng c¸c m· ®iÒu khiÓn, do ®ã tr−íc khi b¾t ®Çu mét qu¸ tr×nh trao ®æi d÷ liÖu víi thiÕt bÞ th× hÖ ®iÒu hµnh ph¶i gëi m· ®iÓu khiÓn ®Õn thiÕt bÞ. TiÕp nhËn yªu cÇn ng¾t (Interrupt) tõ c¸c thiÕt bÞ khi cÇn trao ®æi víi hÖ thèng khi nã ph¸t ra mét tÝn hiÖu yªu cÇu ng¾t, hÖ ®iÒu hµnh tiÕp nhËn yªu cÇu ng¾t tõ c¸c thiÕt bÞ, xem xÕt vµ thùc hiÖn mét thñ tôc ®Ó ®¸p øng yªu cÇu c¸c thiÕt bÞ.
  • 16. -16- Ph¸t hiÖn vµ xö lý lçi: qu¸ tr×nh trao ®æi d÷ liÖu th−êng x¶y ra c¸c lçi nh−: thiÕt bÞ vµo/ra ch−a s½n sµng, ®−êng truyÒn háng, vv, do ®ã hÖ ®iÒu hµnh ph¶i t¹o ra c¸c c¬ chÕ thÝch hîp ®Ó ph¸t hiÖn lçi sím nhÊt vµ kh»c phôc c¸c lçi võa x¶y ra nÕu cã thÓ. 1.2. Qu¶n lý tiÕn tr×nh TiÕn tr×nh lµ mét ch−¬ng tr×nh ®ang xö lý, nã së h÷u mét con trá lÖnh, lËp c¸c thanh ghi vµ c¸c biÕn. §Ó hoµn thµnh nhiÖm vô cña m×nh, c¸c tiÕn tr×nh cã thÓ cßn yªu cÇu mét sè tµi nguyªn hÖ thèng nh−: CPU, bé nhí vµ c¸c thiÕt bÞ. 1.2.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh Tr¹ng th¸i cña tiÕn tr×nh t¹i mçi thêi ®iÓm ®−îc x¸c ®Þnh bëi ho¹t ®éng hiÖn thêi cña tiÕn tr×nh t¹i thêi ®iÓm ®ã. Trong suèt kho¶ng thêi gian tån t¹i trong hÖ thèng, mét tiÕn tr×nh cã thÓ thay ®æi tr¹ng th¸i do rÊt nhiÒu nguyªn nh©n nh−: Chê ®îi sù kiÖn nµo ®ã x¶y ra, ®îi mét thao t¸c vµo/ra hoµn tÊt, hÕt thêi gian xö lý... T¹i mçi thêi ®iÓm, tiÕn tr×nh cã thÓ nhËn mét trong c¸c tr¹ng th¸i sau: - Khëi t¹o (new): TiÕn tr×nh ®ang ®−îc t¹o lËp. - S½n sµng (ready): TiÕn tr×nh chê ®−îc cÊp ph¸t CPU ®Ó xö lý. - Thùc hiÖn (runing): TiÕn tr×nh ®−îc xö lý. - §îi (waiting): TiÕn tr×nh ph¶i dõng v× thiÕu tµi nguyªn hoÆc chê mét sù kiÖn nµo ®ã. - KÕt thóc (halt): TiÕn tr×nh ®· hoµn tÊt c«ng viÖc xö lý. C¸c tr¹ng th¸i cña tiÕn tr×nh cã thÓ ®−îc biÓu diÔn qua s¬ ®å (h×nh 1.1)
  • 17. -17- H×nh 1.1. C¸c tr¹ng th¸i cña mét tiÕn tr×nh HÖ ®iÒu hµnh qu¶n lý ho¹t ®éng cña c¸c tiÕn tr×nh trong hÖ thèng th«ng qua khèi m« t¶ tiÕn tr×nh (process control block - PCB). Khèi m« t¶ tiÕn tr×nh bao gåm c¸c thµnh phÇn: - Sè thø tù cña tiÕn tr×nh - Con trá tr¹ng th¸i cña tiÕn tr×nh (cho biÕt tr¹ng th¸i hiÖn t¹i cña tiÕn tr×nh). - Vïng nhí l−u tr÷ gi¸ trÞ c¸c thanh ghi mµ tiÕn tr×nh ®ang sö dông. - Th«ng tin vÒ tµi nguyªn tiÕn tr×nh ®ang sö dông hoÆc ®−îc phÐp sö dông. 1.2.2. Kh¸i niÖm vÒ tµi nguyªn “g¨ng” vµ ®o¹n tíi h¹n Chóng ta cïng xem thuËt to¸n sau: Type ltem = ...; Var Buffer: array [0..n-1] of ltem; In. Out: 0..n-1 Counter: 0..n Begin (TiÕn tr×nh P) Repeat ... New Ready Runing Halt Waiting
  • 18. -18- S¶n xuÊt th«ng tin vµ chøa trong NextP; ... While Counter = n do Skip; Buffer [In]:=NextP; In:= In + 1 mod n; Until false; (TiÕn tr×nh C) Repeat While Counter = 0 do Skip; NextC:= Buffer [Out]; Out:= Out + 1 mod n; ... LÊy th«ng tin trong chøa trong NextC ... Until false; End; NhËn xÐt: V× hai tiÕn tr×nh P vµ C song hµnh nªn cã thÓ x¶y ra tr−êng hîp trong cïng 1 thêi ®iÓm, tiÕn tr×nh P t¨ng biÕn Counter lªn 1 (Counter:= Counter + 1) cßn tiÕn tr×nh C l¹i gi¶m biÕn Counter ®i 1 (Counter:= Counter – 1) dÉn tíi kÕt qu¶ sai. Nh− vËy biÕn Counter trong tr−êng hîp nµy ®−îc gäi lµ tµi nguyªn “g¨ng”. §o¹n tr×nh sö dông biÕn Counter gäi lµ ®o¹n tíi h¹n. §Þnh nghÜa: - C¸c tµi nguyªn logic vµ vËt lý ph©n bæ cho c¸c tiÕn tr×nh song hµnh lµ tµi nguyªn “g¨ng”. C¸c ®o¹n tr×nh sö dông tµi nguyªn g¨ng gäi lµ ®o¹n tíi h¹n (Critical Section).
  • 19. -19- 1.2.3. HiÖn t−îng bÕ t¾c 1.2.3.1. Kh¸i niÖm vÒ bÕ t¾c Gi¶ sö cã hai tiÕn tr×nh P1 vµ P song hµnh sö dông c¸c tµi nguyªn r1 vµ r, ®−îc ®iÒu khiÓn bëi hai ®Ìn hiÖu S1 vµ S. T¹i mçi thêi ®iÓm, mçi tµi nguyªn chØ phôc vô cho sù ho¹t ®éng cña mét tiÕn tr×nh. XÐt tr¹ng th¸i: B¶ng 1.1. Tr¹ng th¸i cña c¸c tiÕn tr×nh P1 Thêi ®iÓm P2 Wait (S1) t1 Wait (S2) ... t2 ... Wait (S2) t3 ... t4 Wait (S1) NhËn xÐt: T¹i vÞ trÝ trªn, sau thêi ®iÓm t3, tiÕn tr×nh P1 r¬i vµo tr¹ng th¸i chê tµi nguyªn r2 ®ang ®−îc P2 sö dông; Sau thêi ®iÓm t4, tiÕn tr×nh P2 r¬i vµo tr¹ng th¸i chê tµi nguyªn r1 ®ang ®−îc tiÕn tr×nh P1 sö dông vµ b¾t ®Çu tõ ®©y, c¶ hai tiÕn tr×nh r¬i vµo tr¹ng th¸i chê ®îi v« h¹n vÒ hÖ thèng gÆp bÕ t¾c. Nh− vËy bÕ t¾c lµ tr¹ng th¸i khi hai hoÆc nhiÒu tiÕn tr×nh cïng chê ®îi mét sè sù kiÖn nµo ®ã vµ nÕu kh«ng cã t¸c ®éng ®Æc biÖt tõ bªn ngoµi th× sù chê ®îi ®ã lµ v« h¹n. 1.2.3.2. §iÒu kiÖn x¶y ra bÕ t¾c trong hÖ thèng. HiÖn t−îng bÕ t¾c x¶y ra khi vµ chØ khi trong hÖ thèng tån t¹i 4 ®iÒu kiÖn: - Cã tµi nguyªn g¨ng - Cã hiÖn t−îng gi÷ vµ ®îi, cã mét tiÕn tr×nh ®ang gi÷ mét sè tµi nguyªn vµ ®îi tµi nguyªn bæ sung ®ang ®−îc gi÷ bëi c¸c tiÕn tr×nh kh¸c. - Kh«ng cã hÖ thèng ph©n phèi l¹i tµi nguyªn: ViÖc sö dông tµi nguyªn kh«ng bÞ ng¾t.
  • 20. -20- - Cã hiÖn t−îng chê ®îi vßng trßn. 1.2.3.3. C¸c møc phßng tr¸nh bÕ t¾c §Ó tr¸nh hiÖn t−îng bÕ t¾c, th«ng th−êng hÖ thèng ¸p dông ba møc: - Ng¨n chÆn: ¸p dông c¸c biÖn ph¸p ®Ó hÖ thèng r¬i vµo tr¹ng th¸i bÕ t¾c. - Dù b¸o vµ tr¸nh bÕ t¾c: ¸p dông c¸c biÖn ph¸p ®Ó kiÓm tra c¸c tiÕn tr×nh xem cã bÞ r¬i vµo tr¹ng th¸i bÕ t¾c hay kh«ng. NÕu cã th× th«ng b¸o tr−íc khi bÕ t¾c x¶y ra. - NhËn biÕt vµ kh¾c phôc: T×m c¸ch ph¸t hiÖn vµ gi¶i quyÕt. 1.3. LËp lÞch cho CPU 1.3.1. Kh¸i niÖm giê CPU CPU lµ mét lo¹i tµi nguyªn quan träng cña m¸y tÝnh. Mäi tiÕn tr×nh muèn ho¹t ®éng ®−îc ®Òu ph¶i cã sù phôc vô cña CPU (®Ó xö lý, tÝnh to¸n...). Thêi gian mµ CPU phôc vô cho tiÕn tr×nh ho¹t ®éng ®−îc gäi lµ giê CPU. T¹i mçi thêi ®iÓm nhÊt ®Þnh, chØ cã mét tiÕn tr×nh ®−îc ph©n phèi giê CPU ®Ó ho¹t ®éng (thùc hiÖn c¸c lÖnh cña m×nh). 1.3.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU Trong chÕ ®é ®a ch−¬ng tr×nh, cã ba tr¹ng th¸i cña tiÕn tr×nh liªn quan mËt thiÕt ®Õn giê CPU bao gåm: H×nh 1.2. C¸c tr¹ng th¸i cña tiÕn tr×nh liªn quan ®Õn giê CPU Ready Runing Waiting
  • 21. -21- - S½n sµng (ready): Lµ tr¹ng th¸i mµ tiÕn tr×nh ®−îc ph©n phèi ®Çy ®ñ mäi tµi nguyªn cÇn thiÕt vµ ®ang chê giê CPU. - Thùc hiÖn (running): Lµ tr¹ng th¸i mµ tiÕn tr×nh ®−îc ph©n phèi ®Çy ®ñ mäi tµi nguyªn cÇn thiÕt vµ giê CPU. - §îi (waiting): Lµ tr¹ng th¸i tiÕn tr×nh kh«ng thùc hiÖn ®−îc v× thiÕu mét vµi ®iÒu kiÖn nµo ®ã (®îi d÷ liÖu vµo/ra, ®îi tµi nguyªn bæ sung...). Khi sù kiÖn mµ nã chê ®îi xuÊt hiÖn, tiÕn tr×nh sÏ quay trë l¹i tr¹ng th¸i s½n sµng. Nh− vËy, trong suèt thêi gian tån t¹i cña m×nh, c¸c tiÕn tr×nh sÏ tu©n thñ theo s¬ ®å thùc hiÖn sau: H×nh 1.3. S¬ ®å thùc hiÖn tiÕn tr×nh Mét tiÕn tr×nh ®ang trong tr¹ng th¸i thùc hiÖn, nã cã thÓ rêi khái tr¹ng th¸i bëi mét trong ba lý do: - TiÕn tr×nh ®· hoµn thµnh c«ng viÖc vµ chuyÓn sang tr¹ng th¸i kÕt thóc, nã tr¶ l¹i giê CPU cho hÖ thèng. - TiÕn tr×nh tù ng¾t: Khi tiÕn tr×nh chê ®îi mét sù kiÖn nµo ®ã, tiÕn tr×nh sÏ ®−îc chuyÓn sang tr¹ng th¸i thùc hiÖn khi xuÊt hiÖn sù kiÖn nã ®ang chê. - TiÕn tr×nh sö dông hÕt giê CPU dµnh cho nã, khi ®ã nã sÏ ®−îc chuyÓn sang tr¹ng th¸i s½n sµng. ViÖc chuyÓn tiÕn tr×nh sang tr¹ng th¸i s½n sµng vÒ b¶n chÊt lµ thùc hiÖn viÖc ph©n phèi l¹i giê CPU. B¾t ®Çu §îi I/O Sö dông CPU Sö dông CPU §îi I/O KÕt thóc Sö dông CPU
  • 22. -22- 1.3.3. LËp lÞch cho CPU 1.3.3.1. Kh¸i niÖm §Ó ®iÒu khiÓn tiÕn tr×nh ë nhiÒu tr¹ng th¸i kh¸c, hÖ thèng th−êng tæ chøc c¸c tõ tr¹ng th¸i (thùc chÊt lµ c¸c khèi ®iÒu khiÓn tiÕn tr×nh) ®Ó ghi nhËn t×nh tr¹ng sö dông tµi nguyªn vµ tr¹ng th¸i tiÕn tr×nh. C¸c tõ tr¹ng th¸i ® îc tæ chøc − theo kiÓu ®îi nh− sau: H×nh 1.4. S¬ ®å tæ chøc hµng ®îi c¸c tiÕn tr×nh Nh− vËy, lËp lÞch cho CPU cã nghÜa lµ tæ chøc mét hµng ®îi c¸c tiÕn tr×nh s½n sµng ®Ó ph©n phèi giê CPU cho chóng dùa trªn ®é −u tiªn cña c¸c tiÕn tr×nh sao cho hiÖu suÊt sö dông CPU lµ tèi −u nhÊt. Mçi tiÕn tr×nh ë tr¹ng th¸i s½n sµng ®−îc g¾n víi mét thø tù −u tiªn. Thø tù − − − u tiªn nµy ® îc x¸c ®Þnh dùa vµo c¸c yÕu tè nh : Thêi ®iÓm h×nh thµnh tiÕn tr×nh, thêi gian thùc hiÖn tiÕn tr×nh, thêi gian kÕt thóc tiÕn tr×nh... Ready queue CPU I/O I/O queue I/O I/O queue I/O I/O queue M M
  • 23. -23- 1.3.3.2. Mét sè thuËt to¸n lËp lÞch cho CPU 1. First Come First Served (FCFS) Trong thuËt to¸n nµy, ®é u tiªn phôc vô tiÕn tr×nh − c¨n cø vµo thêi ®iÓm h×nh thµnh tiÕn tr×nh. Hµng ®îi c¸c tiÕn tr×nh ®−îc tæ chøc theo kiÓu FIFO. Mäi tiÕn tr×nh ®Òu ®−îc phôc vô theo tr×nh tù xuÊt hiÖn cho ®Õn khi kÕt thóc hoÆc bÞ ng¾t. 2. Shortest Job First (SJF). ThuËt to¸n SJF x¸c ®Þnh thø tù −u tiªn thùc hiÖn tiÕn tr×nh dùa vµo tæng thêi gian thùc hiÖn tiÕn tr×nh. TiÕn tr×nh nµo cã tæng thêi gian thùc hiÖn ng¾n sÏ ®−îc −u tiªn phôc vô tr−íc. 3. Shortest Remain Time (SRT) T− − − − ¬ng tù nh SJF nh ng trong thuËt to¸n nµy, ®é u tiªn thùc hiÖn c¸c tiÕn tr×nh dùa vµo thêi gian cÇn thiÕt ®Ó thùc hiÖn nèt tiÕn tr×nh (b»ng tæng thêi gian = thêi gian ®· thùc hiÖn). Nh− vËy trong thuËt to¸n nµy cÇn ph¶i th−êng xuyªn cËp nhËt th«ng tin vÒ thêi gian ®· thùc hiÖn tiÕn tr×nh. §ång thêi chÕ ®é ph©n bæ l¹i giê CPU còng ph¶i ®−îc ¸p dông nÕu kh«ng sÏ lµm mÊt tÝnh −u viÖt cña thuËt to¸n. 4. Round Robin (RR) Trong thuËt to¸n nµy, hÖ thèng quy ®Þnh mét l îng tö thêi gian (time − quantum) kho¶ng tõ 10-100 mili gi©y. Mçi tiÕn tr×nh trong hµng ®îi lÇn l−ît ®−îc ph©n phèi mét l−îng tö thêi gian ®Ó thùc hiÖn. Sau kho¶ng thêi gian ®ã, nÕu tiÕn tr×nh ch−a kÕt thóc hoÆc kh«ng r¬i vµo tr¹ng th¸i ®îi th× nã ®−îc chuyÓn vÒ cuèi hµng ®îi. Hµng ®îi c¸c tiÕn tr×nh ®−îc tæ chøc theo kiÓu vßng trßn vµ c¸c tiÕn tr×nh lu«n lu«n ®¶m b¶o ®−îc phôc vô. Khi cã tiÕn tr×nh míi ph¸t sinh, nã sÏ ®−îc ®−a
  • 24. -24- vµo hµng ®îi vßng trßn vµ ®−îc ®Æt ë vÞ trÝ phôc vô ngay. C¸c tiÕn tr×nh dï ng¾n hay dµi ®Òu cã ®é −u tiªn phôc vô nh− nhau. Trªn thùc tÕ, ®Ó ®¶m b¶o ®é −u tiªn cho c¸c tiÕn tr×nh dµi, hÖ thèng sÏ ph©n chia c¸c tiÕn tr×nh thµnh m líp. Sè lÇn ®−îc phôc vô vµ thêi gian mét lÇn phôc vô tiÕn tr×nh t¹i mçi líp kh¸c nhau (gi¶ sö ë líp thø i, tiÕn tr×nh ®−îc phôc vô k lÇn vµ mçi lÇn víi thêi gian qi). NÕu sau kho¶ng thêi gian ®· ®−îc ph©n phèi mµ tiÕn tr×nh ch−a kÕt thóc hoÆc kh«ng bÞ ng¾t th× nã ®−îc chuyÓn sang líp thø i+1 (víi ki+1 vµ qi+1 lín h¬n). L−îng tõ thêi gian sÏ t¨ng dÇn cho ®Õn khi tiÕn tr×nh r¬i vµo líp ngoµi cïng (líp m). ë ®ã nã sÏ ®−îc phôc vô víi l−îng tö qm kh«ng ®æi. Nh− vËy thø tù −u tiªn cña c¸c tiÕn tr×nh sÏ t¨ng dÇn theo thêi gian xÕp hµng ®îi. ¦u ®iÓm cña ph−¬ng ph¸p phôc vô ®ång møc theo líp sÏ cho phÐp hÖ thèng −u tiªn nh÷ng tiÕn tr×nh ng¾n (v× nã kÕt thóc sím) nh−ng kh«ng g©y tæn h¹i lín cho c¸c tiÕn tr×nh dµi. Nh−îc ®iÓm lµ do ph¶i th−êng xuyªn ph©n phèi l¹i giê CPU nªn thêi gian chê ®îi trung b×nh cña Round Robin cã thÓ lín h¬n so víi FCFS. Chó ý: Trong thô©t to¸n, cÇn chän gi¸ trÞ l−îng tö thêi gian (time quantum) thÝch hîp. NÕu chän gi¸ trÞ time quantum lín th× viÖc bæ sung tiÕn tr×nh míi hoÆc kÝch ho¹t tiÕn tr×nh bÞ ng¾t sÏ lµm t¨ng thêi gian chê ®îi trung b×nh nh−ng ng−îc l¹i nÕu chän gi¸ trÞ time quantum nhá th× nã sÏ lµm cho c¸c tiÕn tr×nh ph¶i liªn tôc chuyÓn tr¹ng th¸i dÉn ®Õn gi¶m hÖ sè h÷u Ých cña CPU. Th«ng th−êng gi¸ trÞ time quantum ®−îc chän theo c«ng thøc: q = t/n hoÆc q=t/n – s. Trong ®ã: t lµ thêi gian khèng chÕ tr−íc; n lµ sè tiÕn tr×nh; s thêi gian chuyÓn tõ tiÕn tr×nh nµy sang tiÕn tr×nh kh¸c. VÝ dô: Cho d·y tiÕn tr×nh víi thêi gian thùc hiÖn t−¬ng øng theo b¶ng 1.2 vµ time quantum cã gi¸ trÞ q= 4
  • 25. -25- B¶ng 1.2. Thêi gian thùc hiÖn cña c¸c tiÕn tr×nh TiÕn tr×nh T thùc hiÖn P1 24 P2 3 P3 3 S¬ ®å Grant biÓu thÞ thø tù thùc hiÖn c¸c tiÕn tr×nh nh− h×nh 1.5. P1 P2 P3 P1 P1 P1 P1 P1 0 4 7 10 14 18 22 26 30 H×nh 1.5. S¬ ®å Grant Theo s¬ ®å nµy chóng ta thÊy thêi chê ®îi cña c¸c tiÕn tr×nh nh− b¶ng 1.2. B¶ng 1.3. Thêi gian chê cña c¸c tiÕn tr×nh Processes T thùc hiÖn T ®îi P1 24 6 P3 3 1 P1 3 7 Tæng 30 17 DÉn ®Õn thêi gian chê ®îi trung b×nh cña c¸c tiÕn tr×nh lµ 17/3 = 5.66 1.4. Qu¶n lý bé nhí 1.4.1. Yªu cÇu ph¶i qu¶n lý bé nhí Bé nhí lµ thiÕt bÞ l−u tr÷ duy nhÊt mµ th«ng qua ®ã CPU cã thÓ trao ®æi th«ng tin víi m«i tr−êng bªn ngoµi. Do vËy, nhu cÇu tæ chøc, qu¶n lý bé nhí lµ mét trong nh÷ng nhiÖm vô c¬ b¶n hµng ®Çu cña hÖ ®iÒu hµnh. Bé nhí ®−îc tæ chøc nh− m¶ng mét chiÒu c¸c tõ nhí (word), mçi tõ nhí cã mét ®Þa chØ. ViÖc trao ®æi th«ng tin víi m«i tr− − êng bªn ngoµi ® îc thùc hiÖn th«ng qua c¸c thao t¸c ®äc/ghi d÷ liÖu vµo mét ®Þa chØ cô thÓ nµo ®ã trong bé nhí.
  • 26. -26- HÖ ®iÒu hµnh chÞu tr¸ch nhiÖm cÊp ph¸t kh«ng gian nhí cho c¸c tiÕn tr×nh khi cã yªu cÇu. §Ó thùc hiÖn tèt nhiÖm vô nµy, hÖ ®iÒu hµnh cÇn ph¶i xem xÐt mét sè khÝa c¹nh sau: - Sù t−¬ng øng gi÷a ®Þa chØ logic vµ ®Þa chØ vËt lý: Lµm thÕ nµo ®Ó chuyÓn ®æi mét ®Þa chØ logic thµnh mét ®Þa chØ vËt lý. - Qu¶n lý bé nhí vËt lý bao gåm: Ph©n bæ kh«ng gian nhí cho c¸c tiÕn tr×nh ho¹t ®éng, thu håi kh«ng gian nhí khi tiÕn tr×nh kÕt thóc, qu¶n lý ®−îc kh«ng gian nhí tù do. - Chia sÎ th«ng tin: Cho phÐp c¸c tiÕn tr×nh ®ang ho¹t ®éng trong bé nhí cã thÓ chia sÎ th«ng tin víi nhau. - B¶o vÖ bé nhí: Ng¨n chÆn c¸c tiÕn tr×nh x©m ph¹m ®Õn vïng nhí ®−îc cÊp ph¸t cho c¸c tiÕn tr×nh kh¸c. 1.4.2. C¸c s¬ ®å qu¶n lý bé nhí 1.4.2.1. S¬ ®å ph©n ho¹ch cè ®Þnh Bé nhí ®−îc chia thµnh n phÇn kh«ng nhÊt thiÕt ph¶i b»ng nhau vµ mçi phÇn ®−îc sö dông nh− mét bé nhí ®éc lËp gäi lµ mét ph©n ho¹ch. Mçi ph©n ho¹ch cã thÓ n¹p ®− − îc mét ch ¬ng tr×nh vµ tæ chøc thùc hiÖn mét c¸ch ®ång thêi. Nh− vËy trªn lý thuyÕt nÕu cã n ph©n ho¹ch th× sÏ cã thÓ n¹p ®−îc n ch−¬ng tr×nh vµ thùc hiÖn mét c¸ch ®ång thêi (n ®−îc gäi lµ hÖ sè song song cña hÖ thèng). 1.4.2.2. S¬ ®å ph©n ho¹ch ®éng Trong s¬ ®å nµy, bé nhí cã mét b¶ng qu¶n lý kh«ng gian nhí tù do thèng nhÊt. Khi thùc hiÖn ch−¬ng tr×nh, hÖ thèng dùa vµo kÝch th−íc ch−¬ng tr×nh ®Ó ph©n bæ kh«ng gian nhí thÝch hîp, t¹o thµnh mét vïng nhí ®éc lËp vµ t¹o b¶ng qu¶n lý riªng. Khi c¸c ch−¬ng tr×nh kÕt thóc, bé nhí giµnh cho nã sÏ bÞ thu håi.
  • 27. -27- 1.4.2.3. S¬ ®å ho¸n ®æi (swapping) S¬ ®å ho¸n ®æi dùa trªn nguyªn t¾c néi dung ch−¬ng tr×nh ë tr¹ng th¸i chê ®îi trong mét kho¶ng thêi gian dµi sÏ ®−îc t¹m thêi chuyÓn ra bé nhí ngoµi (swap out) ®Ó gi¶i phãng vïng nhí cÊp ph¸t cho ch−¬ng tr×nh kh¸c ho¹t ®éng. Khi ch−¬ng tr×nh kÕt thóc tr¹ng th¸i chê nã sÏ ®−îc n¹p trë l¹i bé nhí trong (swap in) ®Ó tiÕp tôc thùc hiÖn.
  • 28. -28- Ch−¬ng 2 - Vi ®iÒu khiÓn vµ ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn 2.1. Vi ®iÒu khiÓn 2.1.1. Vi xö lý vµ vi ®iÒu khiÓn. Bé vi xö lý ®· cã lÞch sö ra ®êi tõ 1971 khi Intel giíi thiÖu bé 8080 dïng cho m¸y tÝnh ®¬n board. KÓ tõ khi ra ®êi, qua nhiÒu thÕ hÖ, cã nhiÒu c¶i tiÕn nh−ng lÜnh vùc cña c¸c bé vi xö lý vÉn lµ c¸c hÖ thèng m¸y tÝnh. Trong hÖ thèng m¸y tÝnh, bé vi xö lý cïng víi bé nhí, c¸c thiÕt bÞ vµo/ra...,hîp thµnh mét hÖ thèng cã kh¶ n¨ng xö lý, ®iÒu khiÓn, l−u tr÷... cùc m¹nh. Mét hÖ thèng m¸y tÝnh nÕu dïng cho mét øng dông lín yªu cÇu xö lý nhanh, l u tr÷ lín... th× kh«ng cã vÊn ®Ó g× − ®Ó bµn. Tuy nhiªn nÕu mang hÖ thèng nµy vµo dïng cho c¸c øng dông nhá th× l¹i trë thµnh l·ng phÝ. Tõ thùc tÕ nµy c¸c nhµ s¶n xuÊt ®· nghiªn cøu vµ ®−a ra c¸c hÖ m¸y tÝnh nhá víi mét bé xö lý nhá, mét bé nhí ch−¬ng tr×nh vµ d÷ liÖu nhá, mét sè c¸c thµnh phÇn vµo ra c¬ b¶n. TÊt c¶ c¸c thµnh phÇn nµy ®−îc gãi gän trong mét chip ®¬n vµ ®©y ch×nh lµ bé vi ®iÒu khiÓn. Nh− vËy ®Ó ph©n biÖt hai kh¸i niÖm vi xö lý vµ vi ®iÒu khiÓn th× cÇn ph¶i xem xÐt trªn 2 ph−¬ng diÖn: KiÕn tróc phÇn cøng vµ lÜnh vùc øng dông. PhÇn cøng cña mét bé vi ®iÒu khiÓn lµ mét bé vi xö lý, bé nhí, c¸c thiÕt bÞ vµo/ra. Vi ®iÒu khiÓn cã ®ñ nh÷ng thµnh phÇn c¬ b¶n cña mét hÖ m¸y tÝnh nªn bé vi ®iÒu khiÓn cã thÓ ho¹t ®éng ®éc lËp ®−îc cßn vi xö lý th× kh«ng. XuÊt ph¸t tõ nh÷ng ®Æc tr−ng võa nªu nªn bé vi ®iÒu khiÓn ®−îc t×m thÊy trong c¸c øng dông nhá cßn vi xö lý n»m trong c¸c hÖ thèng m¸y tÝnh. AT89S52 lµ bé vi ®iÒu khiÓn 8 bit, ®−îc chÕ t¹o bëi h·ng ATMEL theo kiÕn tróc cña 8051.
  • 29. -29- H×nh 2.1. S¬ ®å khèi cña bé vi ®iÒu khiÓn AT89S52 Trªn h×nh 2.1 lµ s¬ ®å khèi cña bé vi ®iÒu khiÓn nµy, theo ®ã bé vi ®iÒu khiÓn cã ®Çy ®ñ c¸c phÇn cøng cÇn thiÕt cho mét hÖ ®iÒu hµnh thêi gian thùc nh− bé xö lý trung t©m, bé nhí, c¸c bé timer ®Ó t¹o c¸c time tick, bé xö lý ng¾t ®Ó thùc hiÖn chuyÓn m¹ch gi÷a c¸c tiÕn tr×nh, khèi vµo ra ®Ó thùc hiÖn c¸c thao t¸c trong c¸c tiÕn tr×nh...Nh− vËy chØ cÇn mét bé vi ®iÒu khiÓn AT89S52víi gi¸ thµnh kh¸ rÎ lµ ®· cã thÓ thùc hiÖn c¸c øng dông thêi gian thùc víi chi phÝ rÊt thÊp. §©y còng chÝnh lµ lý do ®Ó t¸c gi¶ ®Ò tµi chän nghiªn cøu vi ®iÒu khiÓn vµ øng dông vµo hÖ thèng thêi gian thùc. Memory Intermal Devices CPU Memory ROM 8Kb RAM 256 byte I/O devices Timer0 Timer1 Timer2 (16 bit) UART Interrupt Controller System Bus ROM 64Kb RAM 64Kb I/O devices .... .... ... Extermal Devices Oscilla- tior
  • 30. -30- 2.1.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn. AT89S52 coù boä nhôù theo caáu truùc Harvard: coù nhöõng vuøng cho boä nhôù rieâng bieät cho chöông trình vaø döõ lieäu. Nhö ñaõ noùi ôû treân, caû boä nhôù chöôn trình vaø döõ lieäu coù saün ôû treân chip tuy nhieân dung löôïng cuûa caùc boä nhôù tr chip laø haïn cheá. Khi thieát keá caùc öùng duïng ñoøi hoûi boä nhôù lôùn ngöôøi ta coù duøng boä nhôù ngoaøi vôùi dung löôïng leân tôùi 64 Kbytes cho boä nhôù chöông trình vaø cho 64 Kbytes boä nhôù döõ lieäu (hình 2.2). H×nh 2.2. Tæ chøc bé nhí cña vi ®iÒu khiÓn 2.1.2.1. Bé nhí ch−¬ng tr×nh. AT89S52 cã 8Kb Flash Rom trªn chip, khi ch©n EA (ch©n sè 31) ®−îc ®Æt ë møc logic cao (+5V), bé vi ®iÒu khiÓn sÏ thùc hiÖn ch−¬ng tr×nh trong Rom néi b¾t dÇu tõ ®Þa chØ 0000H. Sè lÇn lËp tr×nh (ghi) cho bé nhí nµy lµ kho¶ng 1000 lÇn. Khi ch©n EA ®−îc ®Æt ë møc logic thÊp, bé vi ®iÒu khiÓn sÏ thùc hiÖn ch−¬ng tr×nh ë bé nhí ch−¬ng tr×nh ngoµi (EPPOM ngoµi), tuy nhiªn ®Ó cã ®−îc Boä nhôù ngoaøi Boä nhôù trong Boä nhôù chöông trình (8Kb) 256 bytes Boä nhôù chöông trình (64Kb) Boä nhôù döõ lieäu (64Kb) 0000H 00FFH FFFFH 1FFFH
  • 31. -31- ®iÒu nµy th× cÇn ph¶i cã mét m¹ch phèi ghÐp AT89S52 víi EPROM ®−îc lùa chän. Trªn h×nh 2.3: Mét vi m¹ch chèt (Latch) sÏ t¸ch riªng Bus ®a hîp ®Þa chØ vµ d÷ liÖu AD0-AD7; Tuú theo dung l−îng cña EPROM sÏ cã sè ®−êng ®Þa chØ t−¬ng øng ®−îc dïng; EPROM ®−îc ®äc nhê tÝn hiÖu PSEN. H×nh 2.3. S¬ ®å ghÐp nèi AT89S52 víi EPROM 2.1.2.2. Bé nhí d÷ liÖu. a.Bé nhí d÷ liÖu trªn chip. AT89S52 cã 256 bytes Ram nh− baûng 2.1 ñöôïc phaân chia nhö sau: - Caùc bank thanh ghi coù ñòa chæ töø 00H ñeán 1FH. 32 byte thaáp cuûa boä nhôù noäi ñöôïc daønh cho caùc bank thanh ghi. Boä leänh AT89S52 hoå trôï 8 thanh ghi coù teân laø R0 -R7 vaø theo maëc ñònh sau khi reset heä thoáng, caùc thanh ghi naøy coù caùc ñòa chæ töø 00H - 07H. 89S52
  • 32. -32- Caùc leänh duøng caùc thanh ghi RO - R7 seõ ngaén hôn vaø nhanh hôn so vôùi caùc leänh coù chöùc naêng töông öùng duøng kieåu ñòa chæ tröïc tieáp. Caùc döõ lieäu ñö duøng thöôøng xuyeân neân duøng moät trong caùc thanh ghi naøy. Do coù 4 bank thanh ghi neân taïi moät thôøi ñieåm chæ coù moät bank thanh ghi ñöôïc truy xuaát bôûi caùc thanh ghi RO - R7 ñeåà chuyeån ñoåi vieäc truy xuaát caùc bank thanh ghi ta phaûi thay ñoåi caùc bit choïn bank trong thanh ghi traïng thaùi. - RAM ñòa chæ hoùa töøng bit coù ñòa chæ töø 20H ñeán 2FH. AT89S52 coù 128 bit coù chöùa caùc byte ñònh ñòa chæ theo bit töø 20H ñeán 2FH. YÙ töôûng truy xuaát töøng bit baèng phaàn meàm laø caùc ñaêëc tính maïnh cuûa c boä vi ñieàu khieån noùi chung. Caùc bit coù theå ñöôïc ñaët, xoùa, AND, OR, ... , vôùi 1 leänh ñôn. - RAM ña duïng töø 30H ñeán FFH. -Caùc thanh ghi chöùc naêng ñaëc bieät töø 80H ñeán FFH.
  • 33. -33- B¶ng 2.1. Bé nhí d÷ liÖu trªn chÝp cña AT89S52 FF 30 Vuøng RAM ña duïng 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 27 3F 3E 3D 3C 3B 3A 39 38 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 22 17 16 15 14 13 12 11 10 21 0F 0E 0D 0C 0B 0A 09 08 20 07 06 05 04 03 02 01 00 1F Bank 3 18 17 Bank 2 10 0F Bank 1 08 07 Bank thanh ghi 0 00 (maëc ñònh cho R0 -R7) FF 80 Daønh cho caùc thanh ghi ñaëc bieät (SFR) RAM Caùc thanh ghi chöùc naêng
  • 34. -34- b. Bé nhí d÷ liÖu ngoµi. H×nh 2.4. S¬ ®å ghÐp nèi AT89S52 víi RAM H×nh 2.5. Gi¶i m∙ ®Þa chØ cho c¸c vi m¹ch nhí 8051 RAM A0-A7 Port 0 D0-D7 EA 74HC373 ALE RD WR OE WE O G D Port 2 A8-A15 RAM RAM text Address Bus (A0- A15) Data Bus (D0-D7) 74HC138 C B A E E E 7 6 5 4 3 2 1 0 CS CS CS CS CS CS A0-A12 A0-A12 D0-D7 D0-D7 OE OE WE WR RD PSEN RAM 8KBytes EPROM 8KBytes 2764 6264 Select another EPROM/RAM Tíi c¸c vi m¹ch ROM/RAM kh¸c
  • 35. -35- Boä nhôù döõ lieäu ngoaøi laø boä nhôù RAM ñöôïc ñoïc hoaëc ghi bôûi tín hieäu /R vaø WR.Caùc RAM coù theå giao tieáp vôùi AT89S52 töông töï caùch thöùc nhö EPROM ngoaïi tröø chaân /RD cuûa AT89S52 noái vôùi chaân /OE (Output Enable) cuûa RAM vaø /chaân WR cuûa AT89S52 noái vôùi chaân /WE cuûa RAM (hình 2.10). Neáu coù nhieàu vi maïch ROM vaø RAM cuøng ñöôïc gheùp noái vôùi AT89S52 thì coù theå duøng theâm vi maïch giaûi maõ 74LS138 (hình 2.5). Nhö ñaõ noùi ôû treân, boä nhôù chöông trình vaø boä nhôù döõ lieäu cuûa AT89S5 coù theå truøng ñòa chæ, ñieàu naøy cho pheùp ngöôøi thieát keá coù theå xaây döïng moä nhôù döõ lieäu chöùa chöông trình thöïc thi (boä nhôù döõ lieäu ñoïc nhö boä nhôù chöông trình) nhö hình 2.6. H×nh 2.6. Bé nhí d÷ liÖu ®äc nh− − bé nhí ch ¬ng tr×nh 2.1.3. C¸c bé ®Þnh thêi. Caùc boä ñònh thôøi (Timer) coù theå hieåu laø moät chuoãi caùc flip-flop chia ñoâi taàn soá noái tieáp vôùi nhau, chuùng nhaän tín hieäu vaøo laøm nguoàn xung nhòp ngoõ ra cuûa taàn soá cuoái laøm nguoàn xung nhòp cho flip-flop baùo traøn cuûa Timer (flip-flop côø). Giaù trò nhò phaân trong caùc flip-flop cuûa Timer coù theå RAM W OE W RD PSEN
  • 36. -36- xem nhö soá ñeám soá xung nhòp (hoaëc caùc söï kieän) töø khi khôûi ñoäng Timer. Ví duï Timer 16 bit seõ ñeám leân töø 0000H ñeán FFFFH, côø baùo traøn seõ leân 1 khi soá ñeám traøn töø FFFFH ñeán 0000H. AT89S52 coù 3 Timer 16 bit, moãi Timer coù boán cheá ñoä hoaït ñoäïng. Ngöôøi ta söû duïng caùc Timer ñeå: Ñònh khoaûng thôøi gian, ñeám söï kieän hoaëc taïo toác ño baud cho port noái tieáp trong. H×nh 2.7. Ho¹t ®éng cña Timer0 vµ Timer1 ë chÕ ®é 1. Nguyªn t¾c ho¹t ®éng cña c¸c bé ®Þnh thêi nh− sau: Nguån xung clock ®−îc ®−a tíi Timer tõ mét trong c¸ch phô thuéc vµo bit C-T trong thanh ghi TMOD: • NÕu C-/T = 1, xung clock sÏ ®−îc lÊy tõ bé t¹o xung bªn ngoµi qua ch©n Tx(T0,T1 hoÆc T2). • NÕu C-/T = 0, xung clock sÏ ®−îc lÊy tõ bé chia tÇn trong chip, tÇn sè cña xung ë ®©y lµ 1/12 tÇn sè cña bé dao ®éng th¹ch anh (Fosc). Nguån xung clock nãi trªn sÏ ®−îc ®iÒu khiÓn ®Ó ®−a tíi c¸c Timer b»ng c¸c bit: TR, GATE vµ møc logic trªn c¸c ch©n INTx: • NÕu TRx=0, c¸c Timer sÏ bÞ cÊm mµ kh«ng cÇn quan t©m tíi GATE vµ møc logic trªn c¸c ch©n INTx (thÓ hiÖn b»ng “cæng AND”).
  • 37. -37- • NÕu TRx=1, c¸c Timer sÏ ho¹t ®éng víi mét trong 2 ®iÒu kiÖn sau x¶y ra (thÓ hiÖn b»ng cæng ‘OR”): Thø nhÊt: bit GATE=1; thø hai: trªn ch©n INTx cã møc logic 1. Gi¸ trÞ lín nhÊt mµ c¸c Timer chøa ®−îc lµ 65535 (t−¬ng øng FFFF(H)), khi ®Õm qu¸ gi¸ trÞ nµy sÏ x¶y ra trµn, khi cê trµn TF sÏ ®−îc ®Æt b»ng 1 vµ g©y ra ng¾t do bé ®Þnh thêi. C¨n cø vµo sù kiÖn nµy bé xö lý ng¾t sÏ n¹p dÞa chØ cña vector ng¾t cho con trá PC, bé vi ®iÒu khiÓn sÏ thùc hÖn ch−¬ng tr×nh ë ®©y. Trong hÖ ®iÒu hµnh thêi gian thùc, bé ®Þnh thêi lµ mét trong nh÷ng tµi nguyªn phÇn cøng kh«ng thÓ thiÕu. Bé ®Þnh thêi dïng ®Ó x¸c ®Þnh c¸c kho¶ng thêi gian thÝch hîp cho mçi tiÕn tr×nh ho¹t ®éng (gäi lµ timer tick). Kho¶ng thêi gian nµy cã thÓ thay ®æi dÏ dµng nhê viÖc n¹p c¸c gi¸ trÞ kh¸c nhau cho bé timer. Kho¶ng thêi gian nµy còng thay ®æi tuú theo c¸c øng dông thêi gian thùc sao cho nã lu«n nhá h¬n thêi gian ®¸p øng cña hÖ thèng víi c¸c kÝch thÝch bªn ngoµi. 2.1.4. Bé xö lý ng¾t. Ng¾t cã thÓ hiÓu ®¬n gi¶n lµ t¹m dõng mét ho¹t ®éng A nµo ®ã vµ chuyÓn sang mét ho¹t ®éng B kh¸c cã nhu cÇu cÊp thiÕt h¬n. Khi x¶y ra ng¾t, toµn bé c¸c c«ng viÖc, tr¹ng th¸i cña ho¹t ®éng A sÏ ®−îc cÊt vµo ng¨n xÕp ®Ó lµm c¨n cø tiÕp diÔn khi bé vi xö lý ®· hoµn thµnh xong ho¹t ®éng B vµ quay trë l¹i víi ho¹t ®éng A. AT89S52 cã 6 nguån ng¾t: - Ng¾t ngoµi ®Õn tõ ch©n /INT0. - Ng¾t ngoµi ®Õn tõ ch©n /INT1. - Ng¾t do bé timer 0. - Ng¾t do bé timer 1. - Ng¾t do bé timer 2.
  • 38. -38- - Ng¾t do Port nèi tiÕp. 6 nguån ng¾t nµy ®−îc xo¸ khi Reset vµ ®−îc ®Æt riªng b»ng phÇn mÒm bëi c¸c bit trong c¸c thanh ghi cho phÐp ng¾t (IE), thanh ghi −u tiªn ng¾t (IP). H×nh 2.8. C¸c nguån ng¾t cña AT89S52 Nh− ®· tr×nh bµy ë môc 2.3, c¸c bé ®Þnh thêi t¹o ra c¸c kho¶ng thêi gian (time tick), theo ®ã c¸c mét tiÕn tr×nh ph¶i ®−îc t¹m dõng vµ mét tiÕn tr×nh kh¸c sÏ ®−îc thùc hiÖn. Sù chuyÓn m¹ch sang tiÕn tr×nh míi kÐo theo viÖc ph¶i l−u l¹i c¸c c«ng viÖc cña tiÕn tr×nh cò. Ng¾t do bé ®Þnh thêi chÝnh lµ c¬ së ®Ó cã thÓ thùc hiÖn viÖc chuyÓn m¹ch gi÷a c¸c tiÕn tr×nh.
  • 39. -39- Ngoµi ra trªn vi ®iÒu khiÓn cßn cã mét sè c¸c nguån ng¾t kh¸c. C¸c nguån ng¾t nµy khi ®−îc ®Æt ë c¸c thø tù −u tiªn thÝch hîp sÏ lµ con ®−êng ®Ó mét hÖ thèng thêi gian thùc cã thÓ ph¶n øng kÞp thêi víi c¸c kÝch thÝch tõ bªn ngoµi. 2.2. Ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn 2.2.1. Tæng quan vÒ c¸c ng«n ng÷ lËp tr×nh cho vi ®iÒu khiÓn. Cho ®Õn nay khi lËp tr×nh cho c¸c bé vi ®iÒu khiÓn ng−êi ta th−êng sö dông 2 ng«n ng÷ chÝnh ®ã lµ hîp ng÷ vµ C. Hîp ng÷ (assembly) lµ ng«n ng÷ lËp tr×nh bËc thÊp (chØ ®øng trªn ng«n ng÷ m¸y mét bËc). Hîp ng÷ sö dông chÝnh ngay tËp lÖnh cña bé vi ®iÒu khiÓn t−¬ng øng ®Ó viÕt nªn mét ch−¬ng tr×nh. §Ó biªn dÞch thµnh m· m¸y cã thÓ sö dông tr×nh dÞch hîp ng÷ (assembler) hoÆc cã thÓ dïng chÝnh b¶ng m· lÖnh do nhµ s¶n xuÊt cung cÊp ®Ó m· ho¸ c¸c lÖnh vµ tæng hîp thµnh m· (code) cña ch−¬ng tr×nh. Chóng ta cïng xem xÐt vÝ dô sau: MOV AL,80H ; chuyÓn sè 80H vµo AL MOV BL,12H ; chuyÓn sè 12H vµo BL ADD AL,BL ; céng hai sè víi nhau. Trong ®o¹n ch−¬ng tr×nh trªn nÕu tra b¶ng m· sÏ cã ®−îc m· cña 3 lÖnh lÇn l−ît lµ: B0 80 B3 12 80 C0 NÕu tæng hîp l¹i th× m· cña ®o¹n ch−¬ng tr×nh trªn sÏ lµ B0 80 B3 12 80 C0. C¸ch tra b¶ng m· lÖnh vµ ho¸ lÖnh sau ®ã tæng hîp thµnh m· ch−¬ng tr×nh cã thÓ g©y ra nhÇm lÉn vµ mÊt rÊt nhiÒu thêi gian chÝnh v× vËy mµ tr×nh dÞch hîp ng÷ ra ®êi. Cã trong tay tr×nh dÞch hîp ng÷ ng−êi lËp tr×nh cã thÓ ®· gi¶m bít
  • 40. -40- ®−îc kh¸ nhiÒu c«ng søc khi lËp tr×nh cho vi ®iÒu khiÓn. Tuy nhiªn chóng ta cïng xem xÐt vÝ dô sau: Thùc hiÖn phÐp to¸n AX=7 * 9 + 12 * 8. Hîp ng÷: MOV AL,7 ;sè h¹ng thø nhÊt chøa trong AL MOV BL,9 ;sè h¹ng thø hai chøa trong BL MUL BL ;nh©n 2 sè, kÕt qu¶ chøa trong AX MOV CX,AX ;chuyÓn kÕt qu¶ vµo thanh ghi kh¸c ®Ó chuÈn bi cho phÐp ;nh©n thø hai MOV AL,12 MOV BL,8 MUL BL ADD AX,CX ;céng hai tÝch víi nhau AINSI C: AX=7*9+12*8; Râ rµng víi cïng mét nhiÖm vô nh−ng AINSI C chØ cÇn 1 dßng lÖnh trong khi hîp ng÷ cÇn tíi 8 dßng lÖnh vµ c¶ 8 dßng lÖnh trªn ®Òu ph¶i thao t¸c trªn c¸c thanh ghi (phÇn cøng). Tõ lý do nµy mµ ng−êi ta nghÜ ®Õn viÖc nªn sö dông mét ng«n ng÷ cÊp cao h¬n ®Ó thay thÕ cho hîp ng÷ vµ x©y dùng tr×nh dÞch (compiler) cho ng«n ng÷ cÊp cao ®ã. Khi thiÕt kÕ phÇn mÒm cho mét hÖ thèng nhóng nhá sö dông 8085, viÖc sö dông m· hîp ng÷ (assembly code) ®Ó ph¸t triÓn toµn bé s¶n phÈm ®· trë thµnh chuyÖn b×nh th−êng. §èi víi nhiÒu ®Ò tµi, ®©y lµ tiÕp cËn kh¶ thi v× l−îng m· cÇn ®−îc t¹o ra th−êng nhá h¬n 8 Kbyte vµ t−¬ng ®èi ®¬n gi¶n vÒ b¶n chÊt. NÕu mét kü s− phÇn cøng ®−îc giao nhiÖm vô thiÕt kÕ c¶ phÇn cøng lÉn phÇn mÒm, ng−êi nµy th−êng cã khuynh h−íng viÕt phÇn mÒm b»ng hîp ng÷. Ng−êi kü s− phÇn
  • 41. -41- cøng th−êng kh«ng quen víi mét ng«n ng÷ cÊp cao nh− C ch¼ng h¹n hoÆc ng−êi nµy kh«ng quan t©m ®Õn ng«n ng÷ cÊp cao. KhuyÕt ®iÓm cña c¸c ®Ò tµi ®−îc viÕt b»ng hîp ng÷ cã thÓ lµ khã ®äc vµ khã b¶o tr×, ®Æc biÖt khi c¸c ch−¬ng tr×nh cho c¸c ®Ò tµi nµy kh«ng ®−îc chó thÝch tèt. Ngoµi ra, l−îng m· cã thÓ sö dông l¹i tõ mét ®Ò tµi viÕt b»ng hîp ng÷ th−êng rÊt thÊp. ViÖc sö dông ng«n ng÷ cÊp cao nh− C cã thÓ gi¶i quyÕt c¸c vÊn ®Ò nµy. Mét ch−¬ng tr×nh ®−îc viÕt b»ng C sÏ dÔ ®äc h¬n so víi ch−¬ng tr×nh ®−îc viÕt b»ng hîp ng÷. Do ch−¬ng tr×nh viÕt b»ng C së h÷u c¸c cÊu tróc lín h¬n, ta dÔ dµng hiÓu vµ b¶o tr× ch−¬ng tr×nh. Do tÝnh cã module cña ng«n ng÷ C, mét ch−¬ng tr×nh viÕt b»ng C cã thÓ sö dông l¹i m· mét c¸ch tèt h¬n khi ®i tõ ®Ò tµi kh¸c. ViÖc chia ch−¬ng tr×nh thµnh nhiÒu hµm sÏ thóc ®Èy cÊu tróc phÇn mÒm tèt h¬n vµ dÉn ®Õn c¸c hµm cã thÓ ®−îc lÊy ra tõ mét ®Ò tµi vµ sö dông vµo ®Ò tµi kh¸c, nh− vËy sÏ gi¶m tæng thêi gian ph¸t triÓn. Mét ng«n ng÷ cÊp cao ch¼ng h¹n nh− C cho phÐp ng−êi ph¸t triÓn viÕt ch−¬ng tr×nh t−¬ng ®ång nhiÒu h¬n víi suy nghÜ cña con ng−êi so víi ch−¬ng tr×nh viÕt b»ng hîp ng÷. Ng−êi ph¸t triÓn cã thÓ tËp trung nhiÒu thêi gian h¬n vµo viÖc thiÕt kÕ c¸c gi¶i thuËt cña hÖ thèng thay v× ph¶i tËp trung vµo viÖc thùc hiÖn riªng rÏ c¸c gi¶i thuËt. §iÒu nµy sÏ lµm gi¶m mét c¸ch ®¸ng kÓ thêi gian ph¸t triÓn vµ lµm gi¶m thêi gian gì rèi v× ch−¬ng tr×nh sÏ dÔ hiÓu h¬n. B»ng c¸ch sö dông ng«n ng÷ gièng nh− C, ng−êi lËp tr×nh kh«ng cÇn ph¶i am t−êng kiÕn tróc cña bé vi ®iÒu khiÓn. §iÒu nµy cã nghÜa lµ mét ng−êi ch−a quen víi mét bé vi ®iÒu khiÓn cho s½n cã thÓ x©y dùng mét ®Ò tµi nhanh h¬n v× tæ chøc bªn trong cña bé vi ®iÒu khiÓn ®Ých cã thÓ kh«ng cÇn nghiªn cøu. Ngoµi ra ch−¬ng tr×nh ®−îc ph¸t triÓn b»ng C sÏ dÔ dµng sö dông víi c¸c hÖ thèng kh¸c so víi ch−¬ng tr×nh ®−îc ph¸t triÓn b»ng hîp ng÷.
  • 42. -42- NhiÒu bé vi ®iÒu khiÓn cã c¸c tr×nh dÞch ng«n ng÷ C, c¸c tr×nh dÞch nµy hç trî AINSI C. TÊt c¶ c¸c ®iÒu nµy kh«ng cã ý muèn nãi r»ng hîp ng÷ kh«ng cã vai trß cña m×nh. Trªn thùc tÕ nhiÒu hÖ thèng nhóng (®Æc biÖt lµ c¸c hÖ thèng thêi gian thùc) kÕt hîp ch−¬ng tr×nh C vµ ch−¬ng tr×nh hîp ng÷. §èi víi c¸c thao t¸c cã thêi gian tíi h¹n, ch−¬ng tr×nh hîp ng÷ th−êng lµ ph−¬ng ph¸p duy nhÊt ®−îc lùa chän. Tuy nhiªn theo kinh nghiÖm, phÇn cßn l¹i cña ®Ò tµi (bao gåm nhiÒu giao diÖn phÇn cøng) cã thÓ vµ nªn ®−îc ph¸t triÓn b»ng C. Mét trong nh÷ng ®iÒu quan träng nhÊt vÒ ng«n ng÷ C lµ ng«n ng÷ nµy cho phÐp ta thùc hiÖn c¸c thao t¸c møc thÊp cña phÇn cøng nÕu cÇn, l¹i cßn cung cÊp cho ta chøc n¨ng vµ kh¸i niÖm trõu t−îng cña ng«n ng÷ cÊp cao. 2.2.2. Nh÷ng vÊn ®Ò víi ng«n ng÷ C viÕt cho c¸c bé vi ®iÒu khiÓn. Ng«n ng÷ lËp tr×nh C lµ mét ng«n ng÷ lËp tr×nh ®−îc sö dông réng r·i trªn thÕ giíi. NhiÒu ng−êi cho r»ng ®©y lµ ng«n ng÷ lËp tr×nh bËc cao v× C cã kh¸ nhiÒu thuéc tÝnh gièng c¸c ng«n ng÷ lËp tr×nh bËc cao, vÝ dô nh−: cÊu tróc cña ch−¬ng tr×nh, c¸ch ®Þnh nghÜa vµ gäi c¸c thñ tôc...,tuy nhiªn søc m¹nh thùc sù cña C kh«ng ph¶i ë ®ã mµ chÝnh lµ kh¶ n¨ng truy nhËp phÇn cøng, thao t¸c trªn c¸c bit, byte, word cña phÇn cøng ®èi t−îng. Còng chÝnh bëi lý do nµy mµ C ®−îc rÊt nhiÒu nhµ thiÕt kÕ hÖ ®iÒu hµnh sö dông lµ ng«n ng÷ lËp tr×nh bªn c¹nh hîp ng÷, cã thÓ kÓ ra c¸c hÖ ®iÒu hµnh cã sö dông C ®Ó lËp tr×nh nh−: UNIX, LINUX, MS-Windows... Trªn bé vi ®iÒu khiÓn 8bit, dÔ hiÓu lµ kh«ng thÓ ®em so s¸nh vÒ tµi nguyªn ®èi víi c¸c bé vi xö lý ®−îc chän ®Ó viÕt hÖ ®iÒu hµnh LINUX hay Windows. Cã thÓ kÓ ra mét sè dÉn chøng: tµi nguyªn vÒ bé nhí cña vi ®iÒu khiÓn chØ vµi Kbyte ®èi víi bé nhí ch−¬ng tr×nh vµ vµi tr¨m byte ®èi víi bé nhí d÷ liÖu; kh«ng gian ®Þa chØ còng chØ lµ vµi chôc Kbyte...
  • 43. -43- Tr×nh dÞch C cã kh¶ n¨ng nhËn m· nguån C (C source code) cña ng−êi lËp tr×nh vµ t¹o ra m· ®èi t îng (object code) ® − −îc tèi −u ho¸ cao tõ m· nguån nµy. Tuy nhiªn cã nhiÒu ®iÒu mµ chóng ta, víi t− c¸ch lµ ng−êi thiÕt kÕ, cã thÓ thùc hiÖn ®Ó gióp cho tr×nh dÞch t¹o ra m· tèt h¬n ®Ó cã thÓ tiÕt kiÖm ®îc tèi ®a c¸c tµi nguyªn cña vèn h¹n chÕ cña bé vi ®iÒu khiÓn. 2.2.2.1. Gi¶m kÝch th−íc biÕn. Mét trong nh÷ng ®iÒu c¬ b¶n nhÊt mµ ta cÇn ph¶i lµm ®Ó c¶i thiÖn ch−¬ng tr×nh cña ta lµ ®Æc biÖt l−u ý ®Õn kÝch th−íc cña c¸c biÕn. §èi víi ng−êi th−êng lËp tr×nh b»ng C trªn c¸c m¸y ch¼ng h¹n nh− mét mainframe hoÆc PC, viÖc khai b¸o nh÷ng ®iÒu nh− lµ c¸c bé ®Õm vßng lÆp d−íi d¹ng c¸c sè nguyªn lµ rÊt b×nh th−êng, ngay c¶ ®èi víi c¸c biÕn mµ gi¸ trÞ cña chóng kh«ng bao giê v−ît qu¸ 255. Trªn mét m¸y 8 – bit nh− 8051, viÖc sö dông réng r·i c¸c kiÓu d÷ liÖu cã kÝch th−íc lín h¬n 8 bÝt sÏ g©y ra sù hoang phÝ lín vÒ kh¶ n¨ng xö lý vµ bé nhí. Ta cÇn ph¶i cÈn thËn xem xÐt tÇm gi¸ trÞ ®èi víi biÕn mµ ta khai b¸o vµ kÕ ®Õn chän kiÓu nhá nhÊt tho¶ yªu cÇu. HiÓn nhiªn kiÓu ®− − îc a chuéng nhÊt ®èi víi c¸c biÕn sÏ lµ unsigned char, do kiÓu nµy chØ sö dông 1 byte. 2.2.2.2. Sö dông kiÓu unsigned. §Õn ®©y, ta cã thÓ ng¹c nhiªn v× kiÓu ®− − îc a chuéng lµ kiÓu unsigned char thay v× lµ kiÓu char. LËp luËn ®»ng sau ®iÒu nµy lµ 8051 kh«ng hç trî sè häc cã dÊu vµ ®o¹n m· phô ®−îc yªu cÇu bëi mét gi¸ trÞ cã dÊu, tr¸i ng îc víi mét − gi¸ trÞ kh«ng dÊu, sÏ lÊy ®i toµn bé c¸c tµi nguyªn cña bé vi ®iÒu khiÓn. Nh− vËy cïng víi viÖc chän lùa c¸c kiÓu biÕn t−¬ng øng víi tÇm gi¸ trÞ, ta còng ph¶i xem xÐt xem cã ph¶i biÕn sÏ ®−îc sö dông cho mét thao t¸c nµo ®ã sÏ yªu cÇu c¸c sè ©m. NÕu kh«ng, ta cÇn ®¶m b¶o r»ng ta chØ ra biÕn cã kiÓu unsigned. Ta cÇn lo¹i bá c¸c sè ©m ra khái mét hµm hoÆc toµn bé øng dông cña ta.
  • 44. -44- 2.2.2.3. Kh«ng sö dông sè dÊu chÊm ®éng. ViÖc thùc hiÖn c¸c phÐp to¸n sè dÊu chÊm ®éng trªn c¸c gi¸ trÞ 32-bit víi mét bé vi ®iÒu khiÓn 8 bit còng gièng nh− ta c¾t mét b·i cá b»ng c¸c ®å dïng c¾t mãng tay. Ta cã thÓ thùc hiÖn ®−îc ®iÒu nµy nh−ng sÏ hoang phÝ mét l−îng thêi gian lín khñng khiÕp. BÊt kú lóc nµo ta dù ®Þnh sö dông dông sè dÊu chÊm ®éng trong mét øng dông, ta cÇn ph¶i tù hái xem cã ph¶i ®iÒu nµy lµ tuyÖt ®èi cÇn thiÕt hay kh«ng? Th«ng th−êng, c¸c sè dÊu chÊm ®éng cã thÓ ®−îc lo¹i bá b»ng c¸ch t¨ng cÊp tÊt c¶ c¸c gi¸ trÞ b»ng mét cÆp cïng bËc vÒ ®é lín vµ sö dông c¸c phÐp to¸n sè nguyªn. Ta sÏ xö lý tèt h¬n c¸c sè kiÓu int vµ long so víi c¸c sè kiÓu double vµ float. Ch−¬ng tr×nh cña ta sÏ thùc thi nhanh h¬n vµ c¸c th−êng tr×nh sè dÊu chÊm ®éng sÏ kh«ng ®−îc liªn kÕt vµo trong øng dông cña ta. Ngoµi ra nÕu ta cÇn ph¶i sö dông sè dÊu chÊm ®éng, ta cÇn xem xÐt viÖc sö dông c¸c phiªn b¶n cña 8051, c¸c phiªn b¶n nµy ®· ®−îc tèi −u ho¸ ®èi víi c¸c phÐp to¸n sè häc ch¼ng h¹n nh− Siemens 80517, 80537 hoÆc Dallas Semiconductor 80320. Cã nhiÒu khi ta bÞ Ðp buéc ph¶i liªn kÕt chÆt chÏ víi viÖc sö dông c¸c sè dÊu chÊm ®éng trong hÖ thèng cña ta. Ta ®· biÕt nh÷ng bÊt lîi vÒ kÝch th−íc ch−¬ng tr×nh vµ tèc ®é mµ ta ph¶i ®èi phã. Ngoµi ra, ta cÇn ý thøc ®−îc r»ng nÕu ta sö dông c¸c phÐp to¸n sè dÊu chÊm ®éng trong mét th−êng tr×nh mµ th−êng tr×nh nµy cã thÓ bÞ ng¾t, ta ph¶i ®¶m b¶o r»ng th−êng tr×nh ng¾t (interrupting routine) kh«ng ® îc sö dông c¸c phÐp to¸n sè − dÊu chÊm ®éng ë bÊt kú n¬i nµo trong c©y gäi (calling tree) cña th−êng tr×nh, hoÆc ta ph¶i l−u gi÷ tr¹ng th¸i cña hÖ thèng sè dÊu chÊm ®éng ë n¬i b¾t ®Çu cña ISR b»ng c¸ch sö dông “fpsave” vµ phôc håi l¹i tr¹ng th¸i ban ®Çu cña hÖ thèng sè dÊu chÊm ®éng ë n¬i kÕt thóc ISR b»ng c¸ch sö dông “fprestore”. Mét ph−¬ng ph¸p kh¸c lµ bao bäc lêi gäi ®Õn c¸c ch−¬ng tr×nh sè dÊu chÊm ®éng ch¼ng h¹n nh− sin() cïng víi mét hµm v« hiÖu ho¸ c¸c ng¾t tr−íc lêi gäi ®Õn hµm to¸n häc vµ cho phÐp c¸c ng¾t trë l¹i sau lêi gäi.
  • 45. -45- include <math.h> void timer0_isr(void) interrupt 1 { struct FPBUF fpstate; // ®o¹n m· khëi ®éng hoÆc ®o¹n m· // Kh«ng sö dông sè dÊu chÊm ®éng nµo ®ã fpsave(&fpstate); // L−u tr¹ng th¸i cña // hÖ thèng sè dÊu chÊm ®éng // ®o¹n m· ISR bÊt kú, bao gåm // ®o¹n m· sè dÊu chÊm ®éng. fprestore (&fpstate); // kh«i phôc tr¹ng th¸i cña hÖ thèng // sè dÊu chÊm ®éng // ®o¹n m· ISR bÇt kú kh«ng sö dông // sè dÊu chÊm ®éng } float my_sin(float arg) { float retval; bit old_ea; old_ea = EA; // l u tr¹ng th¸i ng¾t hiÖn hµnh − EA = 0; // cÊm c¸c ng¾t Retval = sin(arg); /* thùc hiÖn lêi gäi hµm sè dÊu chÊm ®éng*/ EA = old_ea; /* ®Æt trë l¹i tr¹ng th¸i ng¾t*/ return retval; }
  • 46. -46- NÕu ta ph¶i sö dông sè dÊu chÊm ®éng trong ch−¬ng tr×nh cña ta, ta cÇn nç lùc x¸c ®Þnh ®é chÝnh x¸c cùc ®¹i cÇn cã. Mét khi ®· tÝnh ®−îc sè bit cùc ®¹i cña ®é chÝnh x¸c cÇn cã trong viÖc tÝnh to¸n sè dÊu chÊm ®éng, ta h·y ®−a sè nµy vµo trong hép tho¹i c¸c lùa chän cña tr×nh dÞch bªn d−íi ®iÒu khiÓn “Bit to round for float compare”. §iÒu nµy sÏ cho phÐp c¸c th−êng tr×nh sè dÊu chÊm ®éng giêi h¹n l−îng c«ng viÖc mµ chóng thùc hiÖn chØ ®Õn ®é chÝnh x¸c cã ý nghÜa ®èi víi hÖ thèng cña ta. 2.2.2.4. Sö dông biÕn bit Khi ta dù ®Þnh sö dông c¸c cê (flag) chØ cã hai tr¹ng th¸i 0 vµ 1, ta nªn sö dông kiÓu bit thay v× sö dông kiÓu unsigned char. §iÒu nµy nh»m môc ®Ých ®Ó dµnh bé nhí cho sau nµy v× ta kh«ng hoang phÝ 7 bit kia. Ngoµi ra, c¸c biÕn bit lu«n lu«n ®−îc cÊt ë RAM bªn trong vµ do vËy sÏ ®−îc truy cËp trong mét chu kú. 3.8.5. Sö dông biÕn côc bé thay cho biÕn toµn côc C¸c biÕn ®−îc khai b¸o lµ d÷ liÖu toµn côc (global data) sÏ sö dông kÐm hiÖu qu¶ h¬n so víi c¸c biÕn ®−îc khai b¸o lµ d÷ liÖu côc bé (local data). Lý do cho ®iÒu nµy lµ tr×nh dÞch lu«n cè g¾ng g¸n c¸c biÕn côc bé cho c¸c thanh ghi bªn trong, trong khi ®ã d÷ liÖu toµn côc cã thÓ hoÆc kh«ng thÓ ë trong c¸c thanh ghi bªn trong tuú thuéc vµ khai b¸o cña ta. Trong nh÷ng tr−êng hîp mµ c¸c biÕn toµn côc ®−îc g¸n mÆc ®Þnh cho XDATA (ch¼ng h¹n nh− c¸c ch−¬ng tr×nh theo m« h×nh bé nhí lín), ta ®· tõ bá viÖc truy cËp nhanh. Lý do kh¸c ®Ó tr¸nh c¸c biÕn toµn côc lµ ta ph¶i phèi hîp viÖc truy cËp ®Õn c¸c biÕn nh− vËy gi÷a c¸c qu¸ tr×nh trong hÖ thèng cña ta. §iÒu nµy sÏ lµ mét vÊn ®Ò trong c¸c hÖ thèng ng¾t hoÆc c¸c hÖ thèng ®a t¸c vô, trong ®ã cã thÓ cã nhiÒu h¬n mét qu¸ tr×nh sÏ cè g¾ng sö dông biÕn toµn côc. NÕu ta cã thÓ tr¸nh c¸c biÕn toµn côc vµ sö dông c¸c biÕn côc bé, tr×nh dÞch sÏ qu¶n lý ch−¬ng tr×nh cña ta mét c¸ch cã hiÖu qu¶ nhÊt.
  • 47. -47- 2.2.2.6. Sö dông bé nhí bªn trong cho c¸c biÕn. C¸c biÕn toµn côc vµ côc bé cã thÓ bÞ buéc ë trong mét vïng nhí bÊt kú mµ ta muèn. Nh− ta ®· biÕt qua c¸c th¶o luËn ë trªn vÒ c¸c tho¶ hiÖp gi÷a c¸c ®o¹n nhí, ta cÇn thÊy râ r»ng ta cã thÓ tèi −u ho¸ tèc ®é cña ch−¬ng tr×nh b»ng c¸ch ®Æt c¸c biÕn ®−îc sö dông th−êng xuyªn ë RAM bªn trong. Ngoµi ra ch−¬ng tr×nh cña ta sÏ nhá h¬n do cã Ýt lÖnh h¬n vµ cung cÊp viÖc truy cËp c¸c biÕn ë RAM bªn trong nhanh h¬n so víi ch−¬ng tr×nh ph¶i truy cËp c¸c biÕn ë RAm ngoµi. Nh»m t¨ng tèc ®é thùc thi ch−¬ng tr×nh, ta sÏ muèn lÊp ®Çy c¸c ®o¹n nhí theo thø tù sau: DATA, IDATA, PDATA, XDATA. Mét lÇn n÷a ta cÇn cÈn thËn ®Ó dµnh ®ñ kh«ng gian nhí trong ®o¹n nhí DATA cho vïng xÕp chång bªn trong cña bé vi ®iÒu khiÓn. 2.2.2.7. Sö dông c¸c con trá bé nhí cô thÓ. NÕu ch−¬ng tr×nh cña ta dù ®Þnh sö dông c¸c con trá cho c¸c thao t¸c nµo ®ã, ta cã thÓ muèn kh¶o s¸t c¸ch sö dông chóng vµ l−u gi÷ chóng trong mét vïng nhí cô thÓ ch¼ng h¹n nh− kh«ng gian XDATA hoÆc CODE. NÕu ta cã thÓ thùc hiÖn ®iÒu nµy, ta sÏ sö dông c¸c con trá bé nhí cô thÓ. Nh− ®· ®Ò cËp tr−íc ®©y, c¸c con trá bé nhí cô thÓ sÏ kh«ng cÇn ®Õn mét bé chän vµ ch−¬ng tr×nh sö dông chóng sÏ chÆt chÏ h¬n do tr×nh dÞch cã thÓ bæ sung chóng ®Ó ¸p dông mét tham chiÕu ®Õn mét ®o¹n nhí cho tr−íc thay v× ph¶i x¸c ®Þnh ®o¹n nhí nµo con trá nh¾m ®Õn. 2.2.2.8. Sö dông hµm néi t¹i §èi víi nh÷ng hµm ®¬n gi¶n ch¼ng h¹n nh− quay bit c¸c biÕn (bit – wise rotation of variables), tr×nh dÞch cung cÊp cho ta c¸c hµm néi t¹i (intrinsic function), c¸c hµm nµy cã thÓ ®−îc gäi. NhiÒu hµm néi t¹i t−¬ng øng trùc tiÕp víi c¸c lÖnh cña hîp ng÷ trong khi nh÷ng hµm kh¸c ®−îc yªu cÇu nhiÒu h¬n vµ cung cÊp tÝnh t−¬ng thÝch cña ANISI. TÊt c¶ c¸c hµm néi t¹i lµ hµm reentrant vµ do vËy cã thÓ ®−îc gäi mét c¸ch an toµn tõ bÊt kú n¬i nµo trong ch−¬ng tr×nh.
  • 48. -48- §«i víi c¸c thao t¸c quay trªn mét byte, c¸c hµm néi t¹i _crol_ (quay tr¸i) _cror_ (quay ph¶i) t−¬ng øng trùc tiÕp víi ’ vµ c¸c lÖnh hîp ng÷ ‘RL A ‘RR A’. NÕu ta muèn thùc hiÖn phÐp quay bÝt trªn c¸c ®èi t−îng lín h¬n ch¼ng h¹n nh− mét ®èi t−îng cã kiÓu int hoÆc long, hµm néi t¹i sÏ phøc t¹p h¬n vµ do vËy sÏ dµi h¬n. C¸c phÐp quay nµy cã thÓ ®−îc gäi b»ng c¸ch sö dông c¸c hµm néi t¹i _irol, _iror_ cho c¸c kiÓu int vµ c¸c hµm näi t¹i _lrol, _lror_ cho c¸c kiÓu long. LÖnh “nh¶y vµ xo¸ bÝt nÕu bÝt ®−îc thiÕt lËp b»ng 1” (“jump and clear bit if set”) JBC tõ còng ®−îc thùc hiÖn d−íi d¹ng mét hµm néi t¹i ®Ó sö dông trong C. Hµm nµy ®−îc gäi bëi _testbit_. Hµm néi t¹i nµy tr¶ vÒ gi¸ trÞ ®óng nÕu bÝt th«ng sè ® êng h÷u dông −îc thiÕt lËp b»ng 1 vµ sai nÕu ng−îc l¹i. §iÒu nµy th− khi kiÓm tra c¸c cê ch¼ng h¹n nh− RI, TI hoÆc c¸c cê trµn cña bé ®Þnh thêi vµ dÉn ®Õn ch−¬ng tr×nh viÕt b»ng C dÔ ®äc h¬n nhiÒu. Hµm nµy cã thÓ dÞch trùc tiÕp thµnh lÖnh JBC. VÝ dô sau ®©y sÏ minh ho¹ râ h¬n ®iÒu nµy #include<instrins.h> void serial_intr(void) interrupt 4 { if (!_testbit_(TI)){ /* nÕu ®©y lµ ng¾t truyÒn*/ P0 = 1; // ®æi tr¹ng th¸i P0.0. _nop_(); // chê 1 chu kú P0 = 0; .... /* thùc hiÖn c¸c c©u lÖnh kh¸c...*/ } if (!_testbit_(RI)){ test = _cror_(SBUF,1); ..../* thùc hiÖn c¸c thao t¸c kh¸c*/. } }
  • 49. -49- X¸c yªu cÇu thiÕt kÕ Lùa chän cÊu h×nh cho hÖ thèng theo yªu cÇu thiÕt kÕ ThiÕt kÕ m¹ch ®iÖn vµ l¾p r¸p linh kiÖn §o thö vµ kiÓm tra lçi Ch−¬ng 3 - thiÕt kÕ hÖ vi ®iÒu khiÓn ThiÕt kÕ phÇn cøng lµ thiÕt kÕ m¹ch ®iÖn tö bao gåm c¸c linh kiÖn, phô kiÖn phï hîp t¹o thµnh mét hÖ vi ®iÒukhiÓn hîp nhÊt. Nãi chung mét hÖ vi ®iÒu khiÓn còng t−¬ng ®−¬ng víi mét hÖ m¸y tÝnh, tøc lµ nã ph¶i cã ®ñ 03 khèi chÝnh: Khèi xö lý trung t©m, khèi bé nhí vµ khèi vµo ra. Chi tiÕt vÒ tõng khèi nµy nh− thÕ nµo lµ tuú thuéc vµo tõng øng dông cô thÓ. Cã nh÷ng øng dông yªu cÇu xö lý tÝnh to¸n nhanh th× cÇn mét bé xö lý m¹nh, cã øng dông yªu cÇu l−u tr÷ lín th× cÇn ph¶i cã bé nhí cã dung l−îng lín...Khèi cÇn ph¶i tuú biÕn nhiÒu nhÊt chÝnh lµ khèi vµo ra bëi lÏ khèi nµy chÝnh lµ khèi giao tiÕp víi thÕ giíi thùc ®Ó t¹o ra c¸c øng dông thùc. Nãi chung ®Ó thiÕt kÕ ®−îc mét hÖ vi ®iÒu khiÓn cã kh¶ n¨ng ho¹t ®éng tèt, ®é tin cËy cao th× ng−êi thiÕt kÕ cÇn ph¶i ®i theo mét tr×nh tù nhÊt ®Þnh, còng cã thÓ gäi lµ nguyªn t¾c thiÕt kÕ. Cã 2 nhãm nguyªn t¾c chÝnh ®ã lµ ®i tõ trªn xuèng vµ ®i tõ d−íi lªn. Nguyªn t¾c ®i tõ trªn xuèng th−êng ®−îc ¸p dông víi c¸c hÖ nhóng nhá, cô thÓ trong tr−êng hîp thiÕt kÕ mét hÖ vi ®iÒu khiÓn th× tr×nh tù thiÕt kÕ nh− sau: H×nh 3.1. Tr×nh tù thiÕt kÕ phÇn cøng cho hÖ thèng
  • 50. -50- 3.1. X¸c ®Þnh yªu cÇu thiÕt kÕ. HÖ thèng nhóng gåm phÇn cøng vµ hÖ ®iÒu hµnh thêi gian thùc ®−îc thiÕt kÕ víi môc ®Ých lµm thiÕt bÞ thÝ nghiÖm ë tr−êng §¹i häc C«ng nghiÖp Hµ néi, v× vËy hÖ thèng ph¶i ®¸p øng ®−îc mét sè yªu cÇu sau: -TÝnh s− ph¹m: Kh¸c víi c¸c thiÕt bÞ mang tÝnh th−¬ng m¹i, thiÕt bÞ d¹y häc ph¶i ®¶m b¶o ®−îc c¸c yªu cÇu vÒ s− ph¹m nh−: +Phï hîp víi néi dung, ch−¬ng tr×nh häc. +Phï hîp víi ®èi t−îng häc. -TÝnh trùc quan: TÝnh trùc quan lµ mét trong nh÷ng yªu cÇu quan träng nhÊt cña mét thiÕt bÞ d¹y häc. Mét thiÕt bÞ cã tÝnh trùc quan sÏ gióp sinh dÔ thÝ nghiÖm h¬n vµ t¹o høng thó cho sinh viªn trong qua tr×nh häc. Trong thiÕt bÞ nµy th× tÝnh trùc quan ph¶i ®−îc thÓ hiÖn ë mét sè khÝa c¹nh sau: + C¸c thiÕt bÞ vµo/ra ph¶i lµ c¸c thiÕt bÞ dÔ nh×n, dÔ quan s¸t, dÔ x¸c ®Þnh kÕt qu¶ vµ dÔ ®o ®¹c, kiÓm tra. +Giao diÖn ng−êi sö dông ph¶i ®¬n gi¶n dÔ t−¬ng t¸c víi hÖ thèng nhÊt. -TÝnh khoa häc: ThiÕt bÞ ® nh khoa häc cña mét s¶n phÈm kü −îc thiÕt kÕ ph¶i ®¶m b¶o tÝ thuËt, c¸c kh©u thiÕt kÕ, vËt t− linh kiÖn sö dông ph¶i ®¶m b¶o c¸c yªu cÇu kü thuËt. -TÝnh thùc tiÔn. -TÝnh thÈm mü. -TÝnh kinh tÕ.
  • 51. -51- 3.2. Lùa chän cÊu h×nh cho hÖ thèng. C¨n cø vµo yªu cÇu thiÕt kÕ th× hÖ thèng cã thÓ gåm c¸c thµnh phÇn nh− sau: - Bé ®iÒu khiÓn trung t©m (bao gåm : Bé xö lý (CPU), bé nhí, khèi ®iÒu khiÓn vµo ra). - Giao diÖn ng−êi sö dông. - C¸c thiÕt bÞ m« pháng cho qua tr×nh thùc hiÖn cña c¸c tiÕn tr×nh. H×nh 3.2. S¬ ®å khèi cña hÖ vi ®iÒu khiÓn 3.2.1. Lùa chän bé ®iÒu khiÓn trung t©m. Trªn thÞ tr−êng hiÖn nay cã kh¸ nhiÒu bé vi xö lý cã thÓ cho phÐp viÕt hÖ ®iÒu hµnh tuy nhiªn ®Ó ®¶m b¶o c¸c yªu cÇu nh− môc 1 ®· nªu th× cã thÓ chän bé vi ®iÒu khiÓn AT89S52 lµ bé xö lý trung t©m nh÷ng lý do sau: -AT89S52 lµ mét bé vi ®iÒu khiÓn, trªn bé vi ®iÒu khiÓn nµy ®· tÝch hîp s½n bé nhí ROM, bé nhí RAM, c¸c bé ®Þnh thêi, bé xö lý ng¾t, khèi ®iÒu khiÓn vµo/ra, ®©y lµ nh÷ng tµi nguyªn c¬ b¶n dïng ®Ó viÕt mét hÖ ®iÒu hµnh. NÕu chän mét bé vi xö lý th× hÖ thèng vÉn cÇn thªm bé nhí, bé ®Þnh thêi... nh− vËy sÏ tèn kÐm kinh phÝ vµ hÖ thèng sÏ kång kÒnh h¬n. Vi ®iÒu khiÓn Bé nhí Vµo/ Ra M« pháng c¸c tiÕn tr×nh ho¹t ®éng Giao diÖn ng−êi sö dông Bé ®iÒu khiÓn trung t©m
  • 52. -52- -AT89S52 lµ bé vi ®iÒu khiÓn 8bit ®−îc ph¸t triÓn trªn c¬ së bé vi ®iÒu khiÓn 8051, ®©y lµ bé vi ®iÒu khiÓn víi cÊu tróc vµ tËp lÖnh c¬ b¶n, dÔ dµng tiÕp cËn ®èi víi nh÷ng ®èi t−îng nh− häc sinh sinh viªn. -Gi¸ thµnh cña AT89S52 lµ kh¶ rÎ so víi c¸c bé vi ®iÒu khiÓn cã cïng tÝnh n¨ng h¬n n÷a bé vi ®iÒu khiÓn nµy cã tÝch hîp s¾n m¹ch n¹p ROM trªn chip nªn cã thÓ thÝ nghiÖm mµ kh«ng cÇn tèn chi phÝ ®Ó mua s¾m mét bé n¹p ROM. H¹n chÕ duy nhÊt cña bé vi ®iÒu khiÓn mµy lµ dung l−îng bé nhí RAM nhá (256 byte). §Ó kh¾c phôc vi m¹ch SRAM ngoµi cã h¹n chÕ nµy cã thÓ dïng mét dung l−îng 8 Kb ghÐp nèi theo s¬ h×nh 3.3. A5 A4 AD4 10K CS4 A9 A8 X2 AD3 X1 WR AD6 VCC X2 A12 A14 WR A15 A6 AD1 AD5 RTS CS1 10uf A8 WR AD2 IC2 74HC573 2 3 4 5 6 7 8 9 11 1 19 18 17 16 15 14 13 12 D0 D1 D2 D3 D4 D5 D6 D7 LE OE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 AD5 AD0 JP1 SEL 1 2 3 PSEN WR A10 IC1 29 30 31 19 18 9 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 PSEN ALE EA X1 X2 RST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD A2 CS7 CS1 WR A2 VCC A14 AD1 WR 11.0592MHz EA AD0 CP2 0.1uF AD7 CS2 CS5 RTS AD2 AD6 EA AD0 WR A1 SW1 AD3 VCC A3 IC3 MC74F138 1 2 3 15 14 13 12 11 10 9 7 6 4 5 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B RD WR RD VCC AD3 A1 TX A0 WR A15 AD2 A5 CS3 6264 10 9 8 7 6 5 4 3 25 24 21 23 2 11 12 13 15 16 17 18 19 22 27 20 26 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 D0 D1 D2 D3 D4 D5 D6 D7 OE WE CS1 CS2 ALE A13 AD4 C2 33P A7 CP1 0.1uF CS0 A3 A7 WR A11 AD4 A4 VCC A10 A6 AD1 AD6 C1 33P CS6 AD7 AD5 A0 ALE A12 RX A13 WR CS1 AD7 A9 A11 H×nh 3.3. GhÐp nèi vi ®iÒu khiÓn víi RAM ngoµi. 3.2.2. Giao diÖn ng−êi sö dông. Víi tÝnh chÊt lµ mét thiÕt bÞ d¹y häc, ng−êi sö dông lµ sinh viªn, häc sinh v× vËy giao diÖn ng−êi sö dông ph¶i ®¬n gi¶n vµ hiÖu qu¶ nhÊt. Mµn h×nh m¸y tÝnh, mµn h×nh tinh thÓ láng, LED... lµ c¸c thiÕt bÞ ®−a tin ra hay ®−îc sö dông trong
  • 53. -53- c¸c hÖ thèng nhóng. Bµn phÝm, c¸c contact, nót nhÊn, c¶m biÕn... lµ c¸c thiÕt bÞ ®−a tin vµo hay ®−îc sö dông. Trong ®iÒu kiÖn thùc tÕ vµ c¨n cø vµo c¸c yªu cÇu thiÕt kÕ hÖ thèng th× cã thÓ chän mµn h×nh tinh thÓ láng vµ hÖ thèng c¸c nót nhÊn ®Ó lµm giao diÖn ng−êi sö dông, tõ ®©y ng−êi sö dông cã thÓ t¸c ®éng vµo hÖ ®iÒu hµnh trong mét giíi h¹n nµo ®ã (h×nh 3.4). CONTACT1 D0 D6 Y1 12MHz VCC D6 EN_LCD RW D4 C1 C_LCD D5 D7 VCC VCC D5 VCC VCC RW 10K VR_LCD 20K D2 SW1 D3 C2 33P D1 D4 RS D7 IC1 8051 29 30 31 19 18 9 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 PSEN ALE EA X1 X2 RST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD D2 VCC D1 10K C1 33P D0 C3 C VCC D3 CONTACT2 ULCD LCD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 RS EN_LCD H×nh 3.4. Giao diÖn ng−êi sö dông trªn hÖ vi ®iÒu khiÓn. 3.2.3. C¸c thiÕt bÞ m« pháng qu¸ tr×nh ho¹t ®éng cña tiÕn tr×nh. TÝnh trùc quan lµ yªu cÇu ®Çu tiªn khi lùa chän c¸c thiÕt bÞ m« pháng cho qu¸ tr×nh ho¹t ®éng cña tiÕn tr×nh trong hÖ ®iÒu hµnh. Trªn mét thiÕt bÞ d¹y häc th× kh«ng thÓ ®−a c¸c thiÕt bÞ m¸y mãc kång kÒnh vµo ®−îc, h¬n n÷a tiªu chÝ chÝnh cña thiÕt bÞ d¹y häc nµy lµ hÖ nhóng vµ hÖ ®iÒu hµnh trªn bé vi ®iÒu khiÓn v× vËy cã thÓ chän hÖ thèng c¸c LED ®Ó m« pháng lµ ®¶m b¶o ®−îc tÝnh trùc quan vµ kinh tÕ nhÊt.
  • 55. -56- Trªn hÖ thèng cã 2 thiÕt bÞ chÝnh ®ã lµ 03 ma trËn LED dïng ®Ó hiÓn thÞ c¸c ký tù bÊt kú vµ 04 LED 7 ®o¹n dïng ®Ó hiÓn thÞ thêi gian thùc cña hÖ thèng. 3.2.3.1. Kü thuËt quÐt hiÓn thÞ trªn LED 7 ®o¹n. §Ó hiÓn thÞ trªn 1 LED 7 ®o¹n th× cÇn 8 ®−êng ®iÒu khiÓn theo c¸ch hiÓn thÞ th«ng th−êng hoÆc cÇn 4 ®−êng nÕu dïng vi m¹ch 74xx47. Víi c¶ hai c¸ch võa nªu nÕu cÇn ®iÒu khiÓn mét sè l−îng lín c¸c LED 7 ®o¹n th× t−¬ng øng sÏ cÇn mét sè l−îng lín c¸c ®−êng ®iÒu khiÓn trong khi sè l−îng c¸c ®−êng ®iÒu khiÓn trªn bé vi ®iÒu khiÓn lµ cã h¹n. NÕu dïng c¸ch hiÓn thÞ theo nguyªn t¾c quÐt (h×nh 3.5) th× n LED 7 ®o¹n sÏ cÇn 8+n ®−êng khiÓn khiÓn, tiÕt kiÖm c¸c ®−êng dÉn ®iÒu khiÓn h¬n nhiÕu so víi hai c¸ch trªn. 3.2.3.1. Kü thuËt quÐt hiÓn thÞ trªn ma trËn LED. CÊu t¹o cña ma trËn LED bao gåm 64 m¾t DIODE, mçi m¾t gåm 1 led mµu ®á . Trªn MCS toµn bé c¸c hµng cña 3 ma trËn LED ®−îc ®iÒu khiÓn bëi P3, c¸c cét cña 3 ma trËn led ®−îc ®iÒu khiÓn bëi P0,P1,P2 th«ng qua c¸c bé ph©n kªnh 74HC138 (h×nh 3.6). Nguyªn t¾c xÕp ch÷ trªn ma trËn LED: Gi¶ sö ta cÇn xÕp ch÷ H mµu ®á trªn ma trËn led (h×nh 3.7). V× kh«ng thÓ t¹i mét thêi ®iÓm tÊt c¶ c¸c m¾t xÕp theo h×nh ch÷ H ®Òu s¸ng ®−îc nªn cã thÓ chia ch÷ H thµnh 3 phÇn: PhÇn 1 gåm 6 m¾t, ®Ó 6 m¾t nµy s¸ng chóng ta g¸n: P0=00100010B; P1=00011111B PhÇn 2 gåm 5 m¾t, ®Ó 5 m¾t nµy s¸ng chóng ta g¸n: P0=00111110B; P1=11101111B PhÇn 3 gåm 8 m¾t, ®Ó 8 m¾t nµy s¸ng chóng ta g¸n: P0=00100010B; P1=11110000B
  • 56. -57- C5 1 2 3 15 14 13 12 11 10 9 7 6 4 5 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B R1 C11 C23 C12 P35 X2 P35 C18 10K P27 P11 L6 P00 CP1 0.1uF C6 L8 C23 P13 L7 C11 P27 R6 P37 C21 P21 C5 P34 P16 P06 VCC P24 VCC EA 11.0592MHz VCC P36 C7 C8 VCC IC1 29 30 31 19 18 9 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 PSEN ALE EA X1 X2 RST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD C13 JP1 SEL 1 2 3 C8 R4 P04 C15 P12 P24 P22 C2 C20 P36 C9 R3 P20 C20 C19 10uf P10 P25 R7 P22 R5 1 2 3 15 14 13 12 11 10 9 7 6 4 5 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B C7 C17 C6 P03 C24 C16 P31 1 2 3 15 14 13 12 11 10 9 7 6 4 5 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B C12 X2 C1 33P C14 C22 1 2 3 15 14 13 12 11 10 9 7 6 4 5 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B P05 C19 VCC P30 C3 P23 RTS P15 R8 P26 RTS P37 L1 C10 P23 P34 C2 P02 C16 C3 C22 C21 P14 L2 C2 33P SW1 VCC C10 C1 C1 P25 C15 X1 L3 C17 C4 P01 P30 C4 1 2 3 4 5 6 7 8 1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 L1 L2 L3 L4 L5 L6 L7 L8 C1 C2 C3 C4 C5 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 P26 C18 L4 C13 C14 P07 P17 R2 P31 L5 VCC EA C9 H×nh 3.6. GhÐp nèi ma trËn LED trªn hÖ vi ®iÒu khiÓn
  • 57. -58- H×nh 3.7. Nguyªn t¾c xÕp ch÷ trªn ma trËn LED. §Ó cã thÓ hiÓn thÞ c¸c dßng ch÷ bÊt kú trªn ma trËn LED th× cÇn cã mét bé nhí ®Ó l−u l¹i font cña tÊt c¶ c¸c ch÷. Font cña c¸c ch÷ cã thÓ hiÓu lµ c¸c byte d÷ liÖu cÇn xuÊt ra trªn c¸c Port ®Ó ma trËn s¸ng theo ch÷ ®ã. Trong khu«n khæ luËn v¨n nµy t«i chØ x©y dùng mét bé font ch÷ ®¬n gi¶n gåm 26 ch÷ c¸i kh«ng dÊu, bé font nµy ®−îc n¹p vµo ROM, khi cÇn thay ®æi kiÓu ch÷ cã thÓ x©y dùng vµ n¹p l¹i cho ROM. 3.3. ThiÕt kÕ m¹ch ®iÖn. §Ó ®¶m b¶o ®−îc c¸c yªu cÇu vÒ kü thuËt, mü thuËt th× m¹ch ®iÖn cña thiÕt bÞ ph¶i ®−îc thiÕt kÕ trªn m¸y b»ng c¸c phÇn mÒm vÏ m¹ch chuyªn dông. Trªn thùc tÕ hiÖn nay cã kh¸ nhiÒu phÇn mÒm thiÕt kÕ m¹ch nh− Protel, Orcad, Circuit Maker...mçi phÇn mÒm nµy ®Òu cã nh÷ng ®iÓm m¹nh riªng, tuy nhiªn ®Ó thiÕt kÕ hÖ thèng nµy th× Protel tá ra cã −u thÓ h¬n c¶ v× th− viÖn phÇn mÒm nµy cã ®ñ c¸c linh kiÖn cÇn cho hÖ thèng, ®èi víi m¹ch 2 líp trë lªn th× phÇn mÒm nµy tá ra tèi −u ho¸ c¸c ®−êng m¹ch tèt h¬n. Nh− ®· ®Ò cËp trong môc 2, c«ng viÖc thiÕt kÕ ®−îc chia thµnh 3 h¹ng môc lµ; ThiÕt kÕ bé xö lý trung t©m, thiÕt kÕ giao diÖn ng−êi sö dông vµ thiÕt kÕ c¸c thiÕt bÞ m« pháng sù ho¹t ®éng cña c¸c tiÕn tr×nh. P17 P16 P15 P14 P13 P12 P11 P10 P00 P01 P02 P03 P04 P05 P06 P07
  • 58. -59- 3.4. §o thö vµ kiÓm tra lçi. §èi víi mét ®èi t−îng nh− hÖ vi ®iÒu khiÓn th× ®o thö vµ kiÓm tra lçi b»ng c¸c dông cô th«ng th−êng nh− ®ång hå, m¸y hiÖn sãng lµ ch−a ®ñ v× lý do ®©y lµ mét hÖ thèng kh¶ tr×nh. C¸ch tèt nhÊt ®Ó kiÓm tra lµ viÕt c¸c ®o¹n ch−¬ng tr×nh cho tõng khèi trªn hÖ thèng vµ kiÓm tra ho¹t ®éng cña tõng khèi ®ã. Qu¸ tr×nh kiÓm tra ph¸t hiÖn khèi nµo cã lçi th× kh¾c phôc ngay trªn khèi ®ã.
  • 59. -60- Ch−¬ng 4 - ThiÕt kÕ hÖ ®iÒu hµnh 4.1.1. Môc ®Ých vµ yªu cÇu thiÕt kÕ. 4.1.2. Môc ®Ých. Trªn thùc tÕ, trong c¸c hÖ thèng nhóng cã thÓ cã mét hoÆc mét sè c«ng viÖc cÇn ph¶i thùc hiÖn lÆp ®i lÆp l¹i liªn tôc, chóng ta cïng xem xÐt 3 vÝ dô sau ®©y: VÝ dô 1: int counter; void main (void) { counter = 0; while (1) /* lÆp v« tËn */ { counter++; /* t¨ng biÕn counter */ } } VÝ dô 2: int counter; void main (void) { counter = 0; while (1) /* lÆp v« tËn */ { check_serial_io (); process_serial_cmds (); check_kbd_io (); process_kbd_cmds ();
  • 60. -61- } } VÝ dô 3: #include <rtx51tny.h> int counter0; int counter1; void job0 (void) _task_ 0 { os_create (1); /* tr¹ng th¸i s½n ®Æt task 1 ë sµng */ while (1) { /* lÆp v« tËn */ counter0++; /* t¨ng biÕn counter */ } } void job1 (void) _task_ 1 { while (1) { /* lÆp v« tËn */ counter1++; /* t¨ng biÕn counter */ } } Trong vÝ dô 1, c©u lÖnh counter++ ®−îc ®Æt trong mét vßng lÆp v« tËn trong ch−¬ng tr×nh chÝnh. Khi thùc hiÖn ch−¬ng tr×nh nµy, bé vi ®iÒu khiÓn chØ thùc hiÖn mét t¸c vô duy nhÊt lµ t¨ng gi¸ trÞ cña biÕn counter lªn. Ch−¬ng tr×nh nµy minh ho¹ cho c¸c ch−¬ng tr×nh ®¬n t¸c vô. Trong vÝ dô 2, cã tíi 4 t¸c vô ® îc lu©n phiªn thùc hiÖn lÆp vµ lÆp ®i lÆp − l¹i liªn tôc. C¸ch viÕt nh− vÝ dô 2 cã thÓ më réng ®−îc kh¶ n¨ng cña bé vi ®iÒu khiÓn h¬n tuy nhiªn cã mét vÊn ®Ò tån t¹i lµ tÝnh ®¸p øng cña hÖ thèng. Gi¶ thiÕt khi ch−¬ng tr×nh ®ang ®−îc thùc thi ë t¸c vô check_kbd_io()th× cã c¸c byte d÷ liÖu ®Õn tõ cæng nèi tiÕp vµ hÖ thèng ph¶i xö lý c¸c byte d÷ liÖu
  • 61. -62- ®ã nghÜa lµ cÇn ph¶i thùc hiÖn t¸c vô process_serial_cmds().H¹n chÕ nµy sÏ ®−îc kh¾c phôc b»ng c¸ch viÕt ë vÝ dô 3. Trong vÝ dô 3, ®Çu tiªn vi ®iÒu khiÓn sÏ thùc thi ë t¸c vô cã tªn lµ job0, t¸c vô nµy khëi t¹o cho 2 t¸c vô job1 vµ job2 ®ång thêi lµ nhiÖm vô cña chÝnh nã lµ t¨ng biÕn counter0. Sau khi thùc hiÖn xong task 0, CPU sÏ chuyÓn sang thùc hiÖn task 1 vµ task 2 sau ®ã l¹i quay trë l¹i thùc hiÖn task 0. ý t−ëng chia thêi gian xö lý cña CPU thµnh c¸c khe thêi gian mét c¸c thÝch hîp vµ lu©n phiªn thùc hiÖn c¸c t¸c vô chÝnh lµ ý t−ëng cña hÖ ®iÒu hµnh ®a nhiÖm (h×nh 4.2). Trªn thùc tÕ nÕu tæ chøc c¸c t¸c vô mét c¸ch hîp lý vµ ph©n chia thêi gian cña CPU mét c¸c hîp lý cho c¸c t¸c vô sao cho khi ®ang thùc thi ë t¸c vô nµy, c¸c t¸c vô kh¸c kh«ng bÞ ¶nh h−ëng th× c¶m gi¸c d−êng nh− tÊt c¶ c¸c t¸c vô ®ang ®−îc thùc hiÖn ®ång thêi (h×nh 4.1). H×nh 4.1. C¸c t¸c vô ®−îc thùc hiÖn ®ång thêi (song song) H×nh 4.2. C¸c t¸c vô ®−îc thùc hiÖn lu©n phiªn liªn tôc Trong thùc tÕ chóng ta gÆp rÊt nhiÒu c¸c hÖ thèng ®o l−êng ®iÒu khiÓn tù ®éng ho¸ mµ c¸c hÖ thèng nµy th−êng ph¶i xö lý nhiÒu c«ng viÖc cïng mét t1 t2 ... tn time task 0 task 1 task 2 t1 t2 ... tn time task 0 task 1 task 2
  • 62. -63- lóc víi ®¸p øng kh¾t khe vª thêi gian. Víi c¸c hÖ thèng nµy th× c¸c ch−¬ng tr×nh ®iÒu khiÓn viÕt theo cÊu tróc tuÇn tù ®¬n gi¶n (vÝ dô 1, vÝ dô 2) tá ra kh«ng thÓ ®¸p øng ®−îc. VÊn ®Ò ®ã chØ cã thÓ ®−îc gi¶i quyÕt nÕu hÖ thèng cã mét hÖ ®iÒu hµnh. Tr−êng §¹i häc C«ng nghiÖp lµ mét trong nh÷ng c¬ së ®µo t¹o cã sù g¾n kÕt gi÷a ho¹t ®éng ®µo t¹o vµ thùc tiÔn x· héi cao. ViÖc ®−a vµo gi¶ng d¹y m«n “thiÕt kÕ hÖ ®iÒu hµnh trªn vi ®iÒu khiÓn” lµ mét viÖc hÕt søc cÇn thiÕt vµo thêi ®iÓm khi mµ c«ng nghÖ tù ®éng ho¸ ®ang ph¸t triÓn m¹nh nh− hiÖn nay. 4.1.2. Yªu cÇu Do ®Æc thï lµ mét hÖ ®iÒu hµnh thêi gian thùc (RTOS - Real Time Operating System) ®−îc thiÕt kÕ trªn mét hÖ vi ®iÒu khiÓn 8 bÝt vµ thiÕt kÕ ®Ó phôc vô c«ng t¸c thÝ nghiÖm ë mét c¬ së ®µo t¹o nªn hÖ ®iÒu hµnh ph¶i cã mét sè yªu cÇu cô thÓ sau: - Ph¶i thùc thi ®ång thêi ®− − îc nhiÒu ch ¬ng tr×nh n¹p trong bé nhí ROM nh− chøc n¨ng cña mét hÖ ®iÒu hµnh ®a nhiÖm. - Ph¶i cã ®¸p øng tøc th× víi c¸c t¸c ®éng cña ng−êi sö dông nh− yªu cÇu cña mét hÖ ®iÒu hµnh thêi gian thùc. - KÝch th−íc cña nh©n hÖ ®iÒu hµnh vµ c¸c ch−¬ng tr×nh ®−îc n¹p s½n trong bé nhí ROM kh«ng ®−îc v−ît qu¸ 8 Kb. Bé nhí RAM dµnh cho hÖ ®iÒu hµnh tèi ®a lµ 8 Kb – 256 byte. - HÖ ®iÒu hµnh ®−îc viÕt b»ng 2 ng«n ng÷ chÝnh lµ C vµ hîp ng÷ nhóng trong tr×nh dÞch C, ®©y lµ 2 ng«n ng÷ häc sinh ®· ®−îc häc tr−îc khi häc m«n “thiÕt kÕ hÖ ®iÒu hµnh trªn vi ®iÒu khiÓn”. C¸c thµnh phÇn cña hÖ ®iÒu hµnh ®−îc viÕt thµnh c¸c module, thuËn tiÖn cho ng−êi häc cã thÓ so¸t lçi vµ thay ®æi. §øng trªn gãc ®é ng−êi sö dông th× hÖ thèng ph¶i thùc hiÖn ®−îc 3 nhiÖm vô ®ång thêi lµ quÐt hiÓn thÞ th«ng tin trªn ma trËn LED; quÐt hiÓn thÞ
  • 63. -64- thêi gian trªn LED 7 ®o¹n vµ hiÓn thÞ c¸c th«ng tin cÇn thiÕt trªn mµn h×nh tinh thÓ láng. Khi cã t¸c ®éng cña ng−êi sö dông trªn c¸c phÝm nhÊn, hÖ thèng ph¶i cã ®¸p øng tøc th× b»ng viÖc th«ng b¸o lªn LCD vµ thay ®æi c¸c th«ng tin theo phÝm nhÊn trªn c¸c LED. 4.2. Tr×nh tù thiÕt kÕ hÖ ®iÒu hµnh. Do ®Æc tr−ng hÖ vi ®iÒu khiÓn 8 bit lµ mét mét hÖ thèng nhá chØ phôc vô qu¸ tr×nh thÝ nghiÖm nªn hÖ ®iÒu hµnh viÕt cho nã còng kh«ng qua phøc t¹p. Víi nh÷ng hÖ ®iÒu hµnh kiÓu nµy chóng ta cã thÓ thiÕt kÕ theo nguyªn t¾c Module ho¸, nghÜa lµ liÖt kª c¸c module cã trong hÖ ®iÒu hµnh, thiÕt kÕ chóng, sau ®ã liªn kÕt chóng l¹i. C¸c b−íc tiÕn hµnh cã thÓ nh− sau: -B−íc 1: Tõ môc ®Ých yªu cÇu thiÕt kÕ, liÖt kª c¸c module cÇn thiÕt cho hÖ ®iÒu hµnh. -B−íc 2: ThiÕt kÕ c¸c module ®ång thêi cã thÓ ch¹y thö c¸c module ®Ó ®¶m b¶o tÝnh chÝnh x¸c cña chóng tr−íc khi ®−îc liªn kÕt. - B−íc 3: Liªn kÕt c¸c module cña hÖ ®iÒu hµnh. - B−íc 4: Ch¹y thö vµ kiÓm tra kÕt qu¶. B−íc 2 vµ b−íc 3 chÝnh lµ hai b−íc quan träng nhÊt. Th«ng th−êng th× hai b−íc nµy ®«i khi ®−îc thùc hiÖn ®ång thêi v× cã nh÷ng module c«ng viÖc chÝnh cña nã lµ liªn kÕt c¸c module kh¸c. C«ng viÖc cña b−íc 2 vµ b−íc 3 gåm 2 phÇn chÝnh: - ThiÕt kÕ c¸c ch−¬ng tr×nh th−êng tró trong bé nhí ROM, khi hÖ ®iÒu hµnh hoµn tÊt c¸c ch−¬ng tr×nh nµy sÏ trë thµnh c¸c tiÕn tr×nh song song. C«ng viÖc nµy bao gåm c¶ viÖc gi¶i quyÕt tµi nguyªn g¨ng vµ ®o¹n tíi h¹n. C«ng viÖc nµy cã thÓ gäi lµ “x©y dùng c¸c tiÕn tr×nh” - ThiÕt kÕ nh©n cña hÖ ®iÒu hµnh. C«ng viÖc nµy thùc chÊt lµ lµm thÕ nµo ®Ó cã thÓ qu¶n lý, ph©n bæ tµi nguyªn cho c¸c tiÕn tr×nh ho¹t ®éng. Hai tµi nguyªn quan träng nhÊt ®ã chÝnh lµ thêi gian cña CPU vµ bé nhí. Ph©n bæ
  • 64. -65- thêi gian CPU mét c¸ch hîp lý ®Ó tËn dông tèi ®a kh¶ n¨ng lµm viÖc cña CPU; ph©n bæ bé nhí cho c¸c tiÕn tr×nh mét c¸ch khoa häc ®Ó kh«ng bÞ xung ®ét lµ môc ®Ých chÝnh cña phÇn nµy. C«ng viÖc cña phÇn nµy chÝnh lµ 2 c«ng viÖc: LËp lÞch cho CPU vµ qu¶n lý bé nhí. 4.3. X©y dùng c¸c tiÕn tr×nh. 4.3.1. X©y dùng c¸c t¸c vô t−¬ng øng c¸c tiÕn tr×nh. 4.3.1.1. Nguyªn t¾c x©y dùng c¸c t¸c vô trªn tr×nh dÞch C. Tr×nh dÞch C cho phÐp x©y dùng tíi 16 t¸c vô, 16 t¸c vô nµy cã thÓ lu©n phiªn thùc hiÖn, khi ®ã hÖ thèng cã thÓ cã tíi 16 tiÕn tr×nh. C¸c t¸c vô ®−îc tr×nh dÞch C ®Þnh nghÜa nh− sau : void name (void) _task_ task ID Trong ®ã: name lµ tªn c¸c t¸c vô. task ID lµ sè hiÖu cña c¸c t¸c vô (task ID- 0 ®Õn 15). VÝ dô: void init (void) _task_ task 0 Khi thùc hiÖn, CPU lu«n thùc hiÖn ë task 0 tr−íc tiªn, chÝnh v× vËy task 0 lu«n ®−îc dïng ®Ó khëi t¹o hoÆc kh«ng khëi t¹o cho c¸c task kh¸c. §Ó khëi t¹o cho mét task, tr×nh dÞch C cung cÊp s¾n hµm os_create(task ID). VÝ dô cÇn khëi t¹o task 5 th× c©u lÖnh t−¬ng øng sÏ lµ: os_create(5) §Ó kh«ng khëi t¹o mét task nµo ®ã (®−a task ®ã vµo tr¹ng th¸i dõng- halt), tr×nh dÞch C cung cÊp s½n hµm os_delete (task ID). VÝ dô cÇn dõng task 5 th× c©u lÖnh t−¬ng øng sÏ lµ: os_delete (5)
  • 65. -66- 4.3.1.2. X©y dùng c¸c t¸c vô. Nh− ®· ®Ò cËp trong ch−¬ng 3, hÖ thèng phÇn cøng ®−îc thiÕt kÕ víi c¸c thµnh phÇn chÝnh bao gåm (1): - HÖ thèng hiÓn thÞ th«ng tin trªn ma trËn LED bao gåm 3 ma trËn LED. - §ång hå thêi gian thùc hiÓn thÞ b»ng 4 LED 7 thanh. - Giao diÖn ng−êi sö dông gåm 1 mµn h×nh tinh thÓ láng LCD vµ c¸c phÝm nhÊn. Víi hÖ th«ng nµy th× cã thÓ chia thµnh c¸c t¸c vô nh− sau: - T¸c vô 0 (task 0) : Dïng ®Ó khëi t¹o cho c¸c t¸c vô kh¸c - T¸c vô 1 (task 1): Dïng ®Ó nhËn lÖnh ®iÒu khiÓn tõ ng−êi sö dông, tõ ®ã göi tÝn hiÖu ®iÒu khiÓn cho c¸c t¸c vô kh¸c. - T¸c vô 2 (task 2): Dïng ®Ó hiÓn thÞ c¸c th«ng b¸o trªn LCD phôc vô ng−êi ®iÒu khiÓn. - T¸c vô 3 (task 3): T¸c vô thêi gian, t¸c vô nµy cung cÊp thêi gian thùc cho c¸c t¸c vô 4 - T¸c vô 4 (task 4) : Dïng ®Ó quÐt c¸c th«ng sè phót, gi©y theo thêi gian thùc lªn 4 LED 7 thanh. - T¸c vô 5 (task 5) : Dïng ®Ó quÐt c¸c th«ng tin cÇn hiÓn thÞ trªn ma trËn LED. Gi¶i thuËt cña c¸c t¸c vô nh− sau: T¸c vô 4 (task 4): while (1) /* lÆp v« tËn */ { TrÔ 1 gi©y (dïng bé ®Þnh thêi); T¨ng biÕn gi©y lªn 1 ®¬n vÞ; if (biÕn gi©y == 60)
  • 66. -67- { biÕn gi©y = 0; T¨ng biÕn phót lªn 1 ®¬n vÞ; if (biÕn phót == 60) { BiÕn phót = 0; T¨ng biÕn giê lªn 1 ®¬n vÞ; if (biÕn giê == 24) { biÕn giê=0; } } } } T¸c vô 5 (task 5): Gi¶ thiÕt cÇn hiÓn thÞ x phót vµ y gi©y: while(1) /*lÆp v« tËn*/ { cËp nhËt thêi gian thùc vµo hai biÕn x vµ y; phut_hang_don_vi=x%10; phut_hang_chuc =x/10; giay_hang_don_vi=y%10; giay_hang_chuc =x/10; P1=M[x/10]; //xuÊt m· cña chØ sè hµng chôc lªn LED thø nhÊt. P2.0=1; //cÊp nguån ®Ó LED thø nhÊt s¸ng TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y.
  • 67. -68- P1=M[x%10]; //xuÊt m· cña chØ sè hµng ®¬n vÞ lªn LED thø hai. P2.1=1; //cÊp nguån ®Ó LED thø hai s¸ng TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y. P1=M[y/10]; //xuÊt m· cña chØ sè hµng chôc lªn LED thø ba. P2.2=1; //cÊp nguån ®Ó LED thø ba s¸ng TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y. P1=M[y/%0]; //xuÊt m· cña chØ sè ®¬n vÞ cña LED thø t−. P2.3=1; //cÊp nguån ®Ó LED thø t− s¸ng TrÔ 30ms; //chu kú quÐt nhë h¬n 1/14 gi©y. } -T¸c vô 5 (task 5) : while(1) //lÆp v« tËn { XuÊt m· cña dßng ch÷ thø nhÊt lªn c¸c cét cña ma trËn LED (Port 0,2,3); Dßng thø nhÊt s¸ng; TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y. XuÊt m· cña dßng ch÷ thø hai lªn c¸c cét cña ma trËn LED (Port 0,2,3); Dßng thø hai s¸ng; TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y. XuÊt m· cña dßng ch÷ thø ba lªn c¸c cét cña ma trËn LED (Port 0,2,3); Dßng thø ba s¸ng; TrÔ 30ms; chu kú quÐt nhá h¬n 1/24 gi©y. ...