Upload
api-3828108
View
1.017
Download
6
Embed Size (px)
Citation preview
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Môc lôc
Trang
Lêi nãi ®Çu……………………………………………………………………2
Ch−¬ng 1-C¬ së lü thuyÕt – S¬ ®å khèi…………………………… 3
I.Tæng quan 3
II.Chøc n¨ng tõng khèi 6
Ch−¬ng 2 – Mét sè ph−¬ng b¸n thùc hiÖn m¹ch………… … 7
I. M¹ch quang b¸o dïng EEPROM 7
II. M¹ch quang b¸o dïng Vi §iÒu KhiÓn 10
Ch−¬ng 3 – M¹ch quang b¸o dïng PIC16F88…………………… 14
I. Nguyªn lý lµm viÖc m¹ch quang b¸o 14
I.1 Gíi thiÖu vÒ b¶ng ®Ìn LED ma trËn 14
I.2 Nguyªn t¾c lµm s¸ng LED trªn b¶ng LED 8x8 17
I.3 Nguyªn t¾c quÐt b¶ng ma trËn LED 18
I.4 Ph−¬ng ph¸p t¹o hiÖu øng ch÷ ch¹y… 19
II. Nguyªn lý lµm viÖc m¹ch quang b¸o 19
III. S¬ ®å nguyªn lý 21
IV. Linh kiÖn sö dông trong m¹ch 22
V. M· nguån ch−¬ng tr×nh 22
Ch−¬ng 4 – Giíi thiÖu c¸c IC liªn quan ®Õn m¹ch…………… 28
I. Vi ®iÒu khiÓn PIC16F88 28
II. IC 74154 35
III. IC 74HC595 37
IV. IC MAX232 39
V. IC KA7805 40
Ch−¬ng 5 - KÕt luËn 41
Tµi liÖu tham kh¶o 43
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Lêi nãi ®Çu
Ngµy nay, cïng víi sù ph¸t triÓn cña khoa häc kü thuËt, nhÊt lµ trong lÜnh vùc
§iÖn tö - Tin häc – ViÔn th«ng, viÖc ®−a th«ng tin qu¶ng c¸o ®Õn víi ng−êi tiªu dïng,
®Õn víi x· héi trë nªn dÔ dµng vµ nhanh chãng. Th«ng qua nhiÒu h×nh thøc qu¶ng c¸o
kh¸c nhau mµ c¸c doanh nghiÖp giíi thiÖu s¶n phÈm cña m×nh ®Õn mäi ng−êi.
Trong nhiÒu h×nh thøc ®a d¹ng cña Th«ng tin qu¶ng c¸o nh−: b¸o, ®µi, tivi, tê
r¬i, ¸p phÝch… th× viÖc dïng B¶ng th«ng tin ®iÖn tö lµ mét c¸ch ®¬n gi¶n vµ
hiÖu qu¶ ®Ó qu¶ng c¸o. Chóng ta b¾t gÆp rÊt nhiÒu b¶ng th«ng tin nh− vËy trong thùc
tÕ. Khi ®i vµo mét hiÖu s¸ch, b¹n cã thÓ biÕt ®−îc hiÖu s¸ch ®ã b¸n lo¹i s¸ch g×, gi¸ c¶
ra sao… lµ nhê vµo b¶ng ®Ìn quang b¸o rÊt b¾t m¾t tr−íc cöa hiÖu. HoÆc khi vµo s©n
bay, b¹n biÕt ®−îc giê giÊc c¸c chuyÕn bay, c¸c th«ng b¸o ng¾n cña phi tr−êng,…
còng lµ nhê vµo quang b¸o. Vµ khi ®i trªn ®−êng phè lóc vÒ ®ªm, b¹n sÏ b¾t gÆp cïng
víi ¸nh ®Ìn mµu lµ rÊt nhiÒu c¸c b¶ng quang b¸o lín víi c¸c h×nh ¶nh sinh ®éng nh−
ly bia Tiger ®ang trµo bät, hay c¸c h×nh ¶nh, logo hiÖn lªn víi ®ñ kiÓu (tõ trªn xuèng,
tõ tr¸i sang,……).
Qua ®ã ta thÊy r»ng, b¶ng th«ng tin ®iÖn tö ®· ®−îc øng dông réng r·i trong
nhiÒu lÜnh vùc kh¸c nhau nh−: giíi thiÖu s¶n phÈm, th«ng b¸o tin tøc, lµm biÓn hiÖu…
Víi øng dông réng r·i nh− vËy, viÖc t×m hiÓu vµ thiÕt kÕ mét b¶ng th«ng tin nh− vËy
®· th«i thóc em thùc hiÖn ®Ò tµi “thiÕt kÕ m¹ch quang b¸o dïng Vi §iÒu
KhiÓn”
• Giíi h¹n ®Ò tµi
Nh− ®· giíi thiÖu, b¶ng th«ng tin ®iªn tö cã thÓ hiÓn thÞ ®−îc c¸c h×nh ¶nh cö
®éng, chø kh«ng chØ gíi gän trong viÖc hiÓn thÞ ch÷. Tuy nhiªn, do ®iÒu kiÖn cã h¹n
nªn ®Ò tµi chØ giíi h¹n ë viÖc hiÓn thÞ ch÷ ch¹y, kÕt nèi m¸y tÝnh ®Ò thay ®æi th«ng tin
hiÓn thÞ vµ mét sè hiÖu øng kh¸c nh− thay ®æi tèc ®é ch÷ ch¹y, hiÓn thÞ nhiÖt ®é trªn
b¶ng ®Ìn v.v…
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Ch−¬ng 1
Giíi thiÖu m¹ch quang b¸o
II. Tæng quan
§Ó thiÕt kÕ mét m¹ch quang b¸o th× cã nhiÒu ph−¬ng ¸n ®Ó lùa chän nh−: dïng
EEPROM, dïng m¸y tÝnh ®iÒu khiÓn trùc tiÕp, dïng vi xö lý, vi ®iÒu khiÓn.
Khi sö dông EEPROM ®Ó l−u tr÷ th«ng tin hiÓn thÞ kÕt hîp víi c¸c IC gi¶i ®a hîp
(Demultiplexer) ®Ó ®iÒu khiÓn qua tr×nh hiÓn thÞ trªn mµn h×nh. −u ®iÓm cña
EEPROM lµ th«ng tin kh«ng bÞ mÊt khi kh«ng cã nguån cÊp vµ khi muèn thay ®æi néi
dung b¶n tin ta chØ viÖc lËp tr×nh l¹i cho EEPROM (thay ®æi phÇn mÒm). ViÖc thay
®«i nh− vËy xem ra cã vÎ ®¬n gi¶n, nh−ng ta cÇn cã m¹ch n¹p vµ phÇn mÒm ®iÒu
khiÓn. ViÖc th¸o l¾p nhiÒu sÏ dÉn ®Õn háng hãc kh«ng ®¸ng cã.
Khi vi xö lý ®−îc sö dông trong m¹ch th× m¹ch sÏ cã thªm nhiÒu tÝnh n¨ng h¬n
nh−ng gi¸ thµnh cho mét s¶n phÈm còng v× thÕ mµ t¨ng lªn. Mét m¹ch vi xö lý cÇn cã
thªm EEPROM(®Ó l−u ch−¬ng tr×nh ®iÒu khiÓn), RAM vµ c¸c IC giao tiÕp ngo¹i vi
kh¸c(8255, 74373…). Mét kÝt vi xö lý snh− vËy sÏ ®em l¹i cho b¶ng th«ng tin nh÷ng
tÝnh n¨ng nh−: viÖc cËp nhËt néi dung hiÓn thÞ sÏ dÔ dµng h¬n(kh«ng cÇn th¸o IC ra)
b»ng c¸c nhËp ch−¬ng tr×nh míi vµo RAM, c¸c hiÖu øng ®Æc biÖt vÒ mµu s¾c còng
®−îc thùc hiÖn dÔ dµng. Tuy nhiªn nh− ®· nãi ë trªn, do vÊn ®Ò gi¸ thµnh cao nªn
ph−¬ng ¸n nµy kh«ng ®−îc chän.
Dïng m¸y tÝnh ®Ó ®iÒu khiÓn b¶ng tin còng lµ mét ph−¬ng ¸n. Nh−ng do kÝch
th−íc m¸y tÝnh lín chiÕm nhiÒu diÖn tÝch, l¹i ®¾t tiÒn nªn ta kh«ng sö dông.
Ph−¬ng ¸n ®−îc lùa chän lµ dïng Vi §iÒu KhiÓn. V× sao l¹i chän Vi §iÒu KhiÓn?
Thø nhÊt: Ngµy nay Vi §iÒu KhiÓn ®−îc sö dông réng r·i trong c¸c øng dông
h−íng ®iÒu khiÓn do kÝch th−íc gän, kh¶ n¨ng tÝch hîp cao nhiÒu tÝnh n¨ng trong mét
con Vi §iÒu KhiÓn khiÕn cho m¹ch ®iÖn tö trë nªn ®¬n gi¶n h¬n nhiÒu.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Thø hai: Gi¸ thµnh cña Vi §iÒu KhiÓn kh«ng qu¸ ®¾t nh− Vi xö lý. Trªn thÕ giíi
hiÖn cã rÊt nhiÒu nhµ s¶n xuÊt Vi §iÒu KhiÓn (ATMEL, ZILOG, MicroChip,
Motorola, Cypress…). Sù c¹nh tranh cña c¸c nhµ s¶n xuÊt vÒ gi¸ thµnh vµ kh¶ n¨ng
tÝch hîp ®em l¹i lîi Ých cho ng−êi sö dông.
Thø ba: Vi §iÒu KhiÓn ®−îc coi nh− mét “small computer” hay System On Chip
(SoC). Bªn trong vi ®iÒu khiÓn ®· bao gåm CPU, ROM , RAM, EEPOM, c¸c giao tiÕo
ngo¹i vi, c¸c khèi sè häc vµ t−¬ng tù (ADC,DAC, op-amp, bé so s¸nh…) tuú theo
tõng lo¹i.
T¹i Viªt Nam, thÞ tr−êng Vi §iÒu KhiÓn kh¸ s«i ®éng. ChØ cÇn vµo mét cña hµng
®iÖn tö bÊt kú ta ®Òu cã thÓ mua ®−îc mét con Vi §iÒu KhiÓn −ng ý. VÒ c«ng cô ph¸t
triÓn cho Vi §iÒu KhiÓn ta cã thÓ t×m thÊy rÊt nhiÒu trªn m¹ng Internet, trªn c¸c diÔn
®µn vÒ ®iÖn tö trong vµ ngoµi n−íc, hÇu hÕt ®Òu lµ c¸c tiÖn Ých miÔn phÝ dµnh cho
ng−êi sö dông …
Sau mét thêi gian nghiªn cøu vÒ Vi §iÒu KhiÓn, mµ cô thÓ lµ dßng Vi §iÒu
KhiÓn 8051 vµ PIC, em quyÕt ®Þnh chän Vi §iÒu KhiÓn ®Ó thùc hiÖn ®Ò tµi “thiÕt
kÕ m¹ch quang b¸o dïng Vi §iÒu KhiÓn ”.
Vi §iÒu KhiÓn ®−îc chän lµ Vi §iÒu KhiÓn PIC dßng Mid-range cña h·ng
MicroChip: PIC16F88. §©y lµ mét dßng Vi §iÒu KhiÓn m¹nh, ph¸t triÓn tõ l©u ë
nhiÒu n−íc trªn thÕ giíi. T¹i ViÖt Nam, tuy xuÊt hiÖn sau dßng 89C (ATMEL), nh−ng
víi nh÷ng tÝnh n¨ng næi bËt, nã dÇn ®· cã ®−îc mét vÞ trÝ nhÊt ®Þnh trong c¸c lo¹i Vi
§iÒu KhiÓn. Khi PIC ®−îc sö dông trong m¹ch quang b¸o, viÖc thiÕt kÕ phÇn cøng sÏ
®¬n gi¶n ®i nhiÒu mµ hiÖu n¨ng cña m¹ch vÉn lu«n ®−îc ®¶m b¶o (sù linh ho¹t trong
viÖc hiÓn thÞ, c¸c hiÖu øng, kh¶ n¨ng n©ng cÊp phÇn cøng vµ phÇn mÒm…)
D−íi ®©y lµ s¬ ®å khèi cña m¹ch quang b¸o
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
S¬ ®å khèi m¹ch ®iÖn quang b¸o
Nguån cÊp cho m¹ch
Khèi ®iÒu khiÓn trung t©m
B¶ng ®Ìn (ma trËn LED 16x8)
Gi¶i m· hµng vµ Chèt d÷ liÖu hµng
Gi¶i m· ®Þa chØ cét
§Öm dßng cho cét
®Öm dßng cho hµng
Khèi giao tiÕp víi m¸y tÝnh (rs232)
M¸y tÝnh
Dao ®éng
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
II. Chøc n¨ng tõng khèi (giíi thiÖu chung).
- Dao ®éng: t¹o xung nhÞp dao ®éng cho Vi §iÒu KhiÓn. Sö dông th¹ch anh tÇn
sè 20MHz cïng víi hai tô 22pF
- Gi¶i m· ®Þa chØ cét : nhËn tÝn hiÖu tõ Vi §iÒu KhiÓn, t¹o ®Þa chØ, tõ ®ã ®−a
ra tÝn hiÖu cho phÐp cét LED nµo trªn b¶ng ®Ìn (ma trËn LED) ®−îc phÐp s¸ng.
T¹i mçi thêi ®iÓm chØ cã mét cét LED ®−îc phÐp s¸ng. TÝn hiÖu nµy ®−îc ®−a
®Õn bé ®Öm dßng cho. IC ®−îc sö dông lµ 74HC154 – decoder/demux1 – 16.
- Gi¶i m· hµng vµ chèt d÷ liÖu hµng: NhËn tÝn hiÖu tõ Vi §iÒu KhiÓn
lµ tÝn hiÖu quy ®Þnh LED nµo trong cét ®−îc s¸ng, LED nµo t¾t khi mét cét ®−îc
cho phÐp. TÝn hiÖu sau ®ã ®−îc ®−a qua bé ®Öm dßng cho hµng. IC ®−îc sö dông
cho bé gi¶i m· hµng lµ 74HC595 – Ghi dÞch 8 bit vµo nèi tiÕp ra song song
- C¸c bé ®Öm dßng cho hµng vµ cét ®−îc sö dông ®Ò ®¶m b¶o ®é s¸ng cña
c¸c LED tr©n mµn h×nh lµ ®ång ®Òu khi chØ 1 LED s¸ng hay c¶ 8 LED cña mét
cét ®Òu s¸ng(ë mét møc ®é nµo ®ã). Sö dông transistor vµ c¸c IC ®Öm chuyªn
dông(ULN2803).
- Khèi giao tiÕp víi m¸y tÝnh ®−îc dïng ®Ó kÕt nèi gi÷a Vi §iÒu KhiÓn
víi m¸y tÝnh khi cÇn cËp nhËt d÷ liÖu, thay ®æi th«ng tin hiÓn thÞ. Giao tiÕp ®−îc
dïng lµ th«ng qua cæng COM cña m¸y tÝnh. Dïng IC ®Öm cæng MAX232
- Khèi ®iÒu khiÓn trung t©m (PIC16F88): Lµ mét Vi §iÒu KhiÓn
PIC16F88. §©y lµ phÇn tö ®iÒu khiÓn chÝnh trong m¹ch ®iÖn. Nã chøa trong
ROM phÇn mÒm ®iÒu khiÓn bao gåm viÖc gi¶i m· ký tù tõ ASCII ®Ó ®−a ra b¶ng
LED, chøa bé font cho b¶ng LED m· ho¸ cho c¸c ch÷ c¸i vµ c¸c sè, ký tù ®Æc
biÖt kh¸c. Ngoµi ra cßn chøa phÇn mÒm ®iÒu khiÓn tèc ®é ch÷ hiªn thÞ trªn b¶ng
LED, phÇn giao tiÕp víi m¸y tÝnh cho viÖc cËp nhËt d÷ liÖu. Néi dung hiÓn thÞ
®−îc l−u trong EEPROM cña Vi §iÒu KhiÓn (cã 256 byte).
- Khèi nguån cÊp: cã nhiÖm vô cÊp ®ñ nguån cho m¹ch ®iÖn nh−ng b¶n th©n
nã kh«ng bÞ qu¸ dßng.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Ch−¬ng 2
Mét sè ph−¬ng ¸n thùc hiÖn m¹ch quang b¸o
Nh− ®· tr×nh bµy ë trªn, ®Ó thùc hiÖn mét m¹ch quang b¸o ta cã nhiÒu ph−¬ng ¸n
®Ó lùa chän nh−: dïng EEPROM, dïng m¸y tÝnh ®iÌu khiÓn trùc tiÕp, dïng vi xö lý, vi
®iÒu khiÓn…Sau ®©y xin giíi thiÖu qua mét vµi ph−¬ng ¸n ®Ó lµm mét b¶ng th«ng tin
®iªn tö.
I. M¹ch quang b¸o dïng EEPROM
EEPROM – Electrically Erasable Programmable Read-Only-Memory - §©y lµ
lo¹i bé nhí chØ ®äc lËp tr×nh vµ xo¸ ®−îc b»ng ®iÖn. EEPROM cã ®Æc ®iÓm lµ kÝch
th−íc chip hÇu nh− kh«ng t¨ng theo dung l−îng bé nhí cña nã. M¹ch quang b¸o dïng
EEPROM cã ®Æc ®iÓm lµ néi dung hiÓn thÞ kh«ng bÞ mÊt khi mÊt ®iÖn, viÖc thay ®æi
néi dung hiÓn thÞ còng dÔ dµng h¬n bëi chØ cÇn lËp tr×nh l¹i cho EEPROM (n¹p mét
ch−¬ng tr×nh míi, néi dung hiÓn thÞ míi). Tuy vËy ®Êy chÝnh lµ nh−îc ®iÓm cña m¹ch
quang b¸o dïng EEPROM v× khi muèn thay ®æi ta l¹i ph¶i th¸o b¶ng dÌn xuèng, thay
IC, nh− vËy sÏ tèn nhiÒu thêi gian vµ c«ng søc. H¬n n÷a viÖc t¹o c¸c hiÖu øng ®Ëc biÖt
sÏ khã kh¨n.
Nguyªn lý lµm viÖc cña m¹ch: M¹ch dao ®éng t¹o ra tÇn sè dao ®éng ®−a ®Õn
EEPROM vµ khèi gi¶i m· ®Þa chØ. Trong EEPROM chøa néi dung cÇn hiÓn thÞ, gåm
cã néi dung b¶n tin, c¸c tÝn hiÖu ®iÒu khiÓn mµu…Tõ ®ã chóng ®−îc ®−a ®Õn lÇn l−ît
c¸c m¹ch ®iÓu khiÓn mµu, m¹ch chèt ®Þa chØ cét, hµng vµ ®−a ra b¶ng LED ®Ó hiÓn
thÞ.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
S¬ ®å khèi m¹ch quang b¸o dïng EEPROM
NhËn xÐt:
- M¹ch tËn dông ®−îc kh¶ n¨ng cña EEPROM vµ c¸c m¹ch sè
- Linh kiÖn dÔ mua, dÔ t×m
- Khi cÇn thay ®æi th× ta ph¶i lËp tr×nh l¹i cho EEPROM, ®©y lµ nh−îc ®iÓm chÝnh
- Kh¶ n¨ng ph¸t triÓn cña hÖ thèng ch−a linh ho¹t. M¹ch cÇn nhiÒu bé gi¶i m·,
kÝch th−íc m¹ch t¨ng lªn, sè l−îng IC còng t¨ng khi ta t¨ng kÝch th−íc b¶ng
th«ng tin.
DAO ÑOÄNG TAÏO ÑÒA CHÆ
GIAÛI MAÕ ÑÒA CHÆ
GIAÛI MAÕ HIEÅN THÒ (EPROM)
ÑIEÀU KHIEÅN MAØU
CHOÁT DÖÕ LIEÄU (I)
CHOÁT DÖÕ LIEÄU (II)
ÑEÄM NGOÕ RA (HAØNG)
THUÙC COÂNG SUAÁT
(HAØNG)
ÑEÄM NGOÕ RA COÄT (I)
ÑEÄM NGOÕ RA COÄT
THUÙC COÂNG SUAÁT COÄT
THUÙC COÂNG SUAÁTCOÄT
BAÛNG ÑEØN (MA TRAÄN
LED)
NGUOÀN
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Mét sè lo¹i EEPROM trªn thÞ tr−êng.
1. EPROM 2732: EPROM 2732 laø moät IC nhôù coù dung löôïng 4 Kbyte, goàm 12 ñöôøng ñòa chæ,
24 chaân. Caùc chaân ñöôïc saép xeáp nhö sau:
SÔ ÑOÀ CHAÂN EPROM 2732 - A0 ~ A11 lµ c¸c ch©n ®Þa chØ cña EEPROM, khi n¹p hay truy xuÊt ®Òu cÇn
c¸c ®−êng ®Þa chØ nµy - D0 ~ D7 : c¸c ®−êng vµo/ra d÷ liÖu cña EEPROM,
2. EPROM 2764: EPROM 2764 coù dung löôïng nhôù lôùn gaáp ñoâi EPROM 2732 (8 Kbyte), noù coù
taát caû laø 28 chaân. Trong ñoù coù 13 chaân ñöôïc duøng laøm ñöôøng ñòa chæ, 8 chaân laøm ñöôøng döõ lieäu, caùc chaân coøn laïi duøng caáp nguoàn vaø ñieàu khieån.
EPROM 2764 coù sô ñoà chaân nhö sau:
SÔ ÑOÀ CHAÂN EPROM 2764 Ngoµi ta cßn nhiÒu lo¹i EEPROM kh¸c nh− 27128, 27256… C¸c EEPROM kh¸c hä
28xxx, 29xxx.
1 2 3 5
16
4 6 7 8
15 14 13
12
21
9 10
VCC
GND D2 D1A1A2A3
D3 A8
D0
D7
A7 A6
D6 D5
2732
20 19 1718D4
A4A5
3 2 1 5 11
23 24 22A9 A11 A10
A0
OE/VPPCE
1 2 3 5
16
4 6 7 8
15
14 13 12
21
9 10
VCC
GND D2D1A1A2A3
D3A8
D0
D7
A7 A6
D6 D5
2764
20 19 1718D4
A4A5
PGM\
3 2 1 5 11
2326 27 2428 2225
VPP
NC
A12
A9 A11 A10
A0
OE CE
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
II. M¹ch quang b¸o dïng Vi §iÒu KhiÓn
Vi §iÒu KhiÓn nh− mét m¸y vi tÝnh thu nhá – Small Computer víi ®Çy ®ñ
ROM, RAM vµ c¸c ngo¹i vi giao tiÕp kh¸c. Ngµy nay Vi §iÒu KhiÓn ®−îc sö dông
kh¸ réng r·i vµ tá ra rÊt phï hîp cho c¸c hÖ thèng h−íng ®iÒu khiÓn, yªu cÊu vÒ chi
phÝ thÊp. ViÖc sö dông Vi §iÒu KhiÓn cho m¹ch quang b¸o cã thªm nhiÒu chøc n¨ng
h¬n. HÖ thèng tá ra linh ho¹t, kh¶ n¨ng giao tiÕp víi ngo¹i vi bªn ngoµi m¹nh. ViÖc
kÕt hîp gi÷a Vi §iÒu KhiÓn vµ EEPROM sÏ tËn dông ®−îc nh÷ng −u ®iÓm cña c¶
EEPROM vµ Vi §iÒu KhiÓn.
TÝnh n¨ng cña m¹ch:
- D÷ liÖu hiÓn thÞ l−u trong EEPROM, kh«ng bÞ mÊt khi mÊt nguån cÊp
- Ch−¬ng tr×nh ®iÒu khiÓn chøa trong ROM cña Vi §iÒu KhiÓn ®iÒukhiÓn viÖc
gi¶i m· vµ ®iÒu khiÓn mµu, c¸c giao tiÕp víi EEPROM
- Giao tiÕp víi bµn phÝm bªn ngoµi hay m¸y tÝnh ®Ò thay ®æi néi dung b¶n tin
trùc tiÕp
- Tèc ®é ch÷ ch¹y thay ®æi linh ho¹t
HiÖn nay trªn thÞ tr−êng cã kh¸ nhiÒu lo¹i Vi §iÒu KhiÓn ®Ó ta lùa chän cña
h·ng nh− ATMEL, ZILOG, MicroChip, Motorola… Mçi lo¹i, mçi dßng cã nh÷ng tÝnh
n¨ng riªng. Trong ®Ò tµi nµy em ®−a ra hai ph−¬ng ¸n sö dông Vi §iÒu KhiÓn.
1. M¹ch quang b¸o dïng Vi §iÒu KhiÓn AT89S52
2. M¹ch quang b¸o dïng Vi §iÒu KhiÓn PIC16F88
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
A. M¹ch quang b¸o dïng Vi §iÒu KhiÓn AT89S52
S¬ ®å khèi
S¬ ®å khèi cña m¹ch dïng AT89S52 vÒ c¬ b¶n gièng víi m¹ch dïng cho PIC,
chi kh¸c ë chç thªm phÇn giao tiÕp víi EEPROM. NÕu kh«ng sö dông EEPROM th×
néi dung hiÓn thÞ cïng víi ch−¬ng tr×nh ®iÒu khiÓn ®−îc l−u trong ROM cña Vi §iÒu
KhiÓn AT89S52. Khi cÇn thay ®æi néi dung hiÓn thÞ th× ta buéc ph¶i lËp tr×nh l¹i cho
AT89S52.
VÒ chi tiÕt cña m¹ch ®iÖn ®−îc tr×nh bµy bªn d−íi. Sau ®©y em giíi thiÖu qua vÒ
Vi §iÒu KhiÓn AT89S52.
AT89S52 lµ V§K thuéc hä 8051, mét dßng V§K kh¸ phæ biÕn trªn thÕ giíi,
ngµy nay ®· ph¸t triÓn thµnh nhiÒu phiªn b¶n kh¸c nhau.
Nguån cÊp cho m¹ch
Khèi ®iÒu khiÓn trung t©m
AT89S52
B¶ng ®Ìn (ma trËn LED 16x8)
Gi¶i m· hµng vµ Chèt d÷ liÖu hµng
Gi¶i m· ®Þa chØ cét
§Öm dßng cho cét
®Öm dßng cho hµng
Khèi giao tiÕp víi m¸y tÝnh (rs232)
M¸y tÝnh
Dao ®éng
EEPROM
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
§Æc ®iÓm cña AT89S52
- Vi §iÒu KhiÓn 8 bit hä MCS-51, tÇn sè ho¹t ®éng 0 Hz ~ 33MHz
- Bé nhí ch−¬ng tr×nh 8K Bytes, n¹p ISP, ghi/xãa 1000 lÇn, RAM 256 Bytes
- D¶i ®iÖn ¸p ho¹t ®éng 4.0V ~ 5.5V
- 32 ®−êng vµo/ra cë b¶n
- 3 bé dÕm/®Þnh thêi 16 bit
- 8 nguån ng¾t (2 ng¾t ngoµi, ng¾t Timer, ng¾t USART…)
- Giao tiÕp nèi tiÕp USART (RS - 232)
S¬ ®å ch©n cña AT89S52
AT89S52 ngoµi 8KB bé nhí trªn chÝp, khi muèn më réng bé nhí ta cã thÓ ghÐp
nèi thªm víi c¸c bé nhí ngoµi. AT89S52 cã thÓ qu¶n lý ®−îc tèi ®a 64KB ROM vµ
64KB RAM (16 bit ®Þa chØ).
TËp lÖnh cña AT89S52 kh¸ phong phó víi c¸c lÖnh xö lý bit, xö lý byte, c¸c
phÐp toµn sè häc vµ logic, c¸c lÖnh nh¶y, lÖnh gäi ch−¬ng tr×nh con… gióp cho ng−êi
lËp tr×nh lµm viÖc víi AT89S52 mét c¸ch thuËn lîi.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Ch−¬ng 3
M¹ch quang b¸o dïng Vi §iÒu KhiÓn PIC16F88
II. Nguyªn lý lµm viÖc cña m¹ch quang b¸o
1. Giíi thiÖu vÒ b¶ng LED ma trËn
Tr−íc khi ®i vµo nguyªn lý ho¹t ®éng cña m¹ch ta t×m hiÓu qua vÒ b¶ng ma trËn
LED ®−îc sö dông trong ®Ò tµi.
B¶ng hiÓn thÞ ma trËn LED (dot-matrix display) cã rÊt nhiÒu lo¹i vµ ®ñ kÝch cì to
nhá kh¸c nhau, mçi b¶ng gåm cã rÊt nhiÒu LED ®¬n ®−îc ghÐp l¹i víi nhau trong mét
khèi. Trong khèi ®ã c¸c LED ®¬n ®−îc s¾p sÕp theo c¸c hµng vµ c¸c cét, t¹i mçi giao
®iÓm cña hµng víi cét lµ mét LED ®¬n, vµ ng−êi ta th−êng ph©n biÖt c¸c lo¹i b¶ng
LED theo sè hµng vµ cét. Mét b¶ng LED 5x7 tøc lµ cã 5 cét däc vµ 7 hµng ngang,
tæng céng sÏ cã 5x7=35 LED ®¬n ®−îc ghÐp l¹i. Còng nh− vËy mét b¶ng 8x8 lµ cã 8
hµng vµ 8 cét, do 64 LED ®¬n ghÐp l¹i. Vµ nhiÒu lo¹i cì to h¬n nh− 16x16 hay
32x32…
Trªn thÞ tr−êng ta th−êng thÊy c¸c b¶ng LED cì lín, dµi hµng mÐt víi ®ñ kÝch cì.
C¸c b¶ng LED ®ã lµ do hµng ngh×n LED ®¬n ghÐp l¹i. Khi thiÕt kÕ nh÷ng b¶ng LED
to nh− vËy ta cÇn chó ý ®Õn sù ®ång ®Òu vÒ ®é s¸ng cña c¸c LED ®Ó viÖc hiÓn thÞ ®−îc
®ång ®Òu. Bªn c¹nh ®ã vÊn ®Ò cÊp nguån cho m¹ch còng cÇn ®−îc chó ý vµ thiÕt kÕ
cho phï hîp. Trong ®Ò tµi nµy em sö dông hai b¶ng LED 8x8 cho viÖc hiÓn thÞ, sö
dông ma trËn 5x7 cho viÖc hiÓn thÞ mçi mét ký tù.
Sau ®©y lµ s¬ ®å ghÐp nèi cña hai lo¹i b¶ng LED th«ng dông lµ 5x7 vµ 8x8.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
H1.1 B¶ng LED 8x8
B¶ng ma trËn LED cã hai lo¹i, lo¹i cã c¸c cét lµ c¸c ch©n Anode, cßn hµng lµ c¸c
ch©n Cathode vµ lo¹i kia th× ng−îc l¹i c¸c cét lµ Cathode, hµng lµ Anode. Khi sö dông
LED ta cÇn chó ý ®iÒu nµy ®Ó ®iÒu khiÓn cho ®óng. Khi ®ãng vá, sù ph©n bè ch©n c¸c
hµng vµ cét lµ kh«ng theo thø tù (do tÝnh phøc t¹p trong ghÐp nèi), do ®ã ta cÇn t×m
hiÓu kü ®Ó m¾c m¹ch cho ®óng.
D−íi ®©y lµ s¬ ®å ch©n cña b¶ng LED 8x8 ®−îc dïng trong ®Ò tµi.
C¸c sè g¹ch ch©n lµ hµng
C¸c sè kh«ng g¹ch ch©n lµ cét
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
6 3 4 1 6 7 2 4
Hµng
Cét
8 5 3 5 8 7 2 1
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
H1.2 B¶ng LED 5x7
Nguyªn t¾c lµm s¸ng ®Ìn LED trªn b¶ng LED
Khi muèn lµm s¸ng LED d¬n, ta cÇn ®−a ®iªn ¸p d−¬ng vµo ch©n Anode vµ ®iÖn ¸p
©m vµo ch©n Cathode víi gi¸ trÞ thÝch hîp, khi ®ã LED s¸ng. Gi¸ trÞ ®iÖn ¸p vµ dßng
®iÖn tuú thuéc vµo mµu s¾c tõng lo¹i LED. Dßng ch¶y qua c¸c LED ®Ó ®¶m b¶o ®é
s¸ng b×nh th−êng lµ tõ 10mA cho ®Õn 25mA. VÒ ®iÖn ¸p ta cã b¶ng sau.
Mµu LED\§iÖn ¸p Vmin V Vmax
§á 1.88 1.9 1.93
Xanh 2.08 2.1 2.12
Vµng 1.98 2.0 2.02
Khi ta muèn lµm s¸ng mét ®iÓm trªn b¶ng ma trËn LED ta còng lµm t−¬ng tù. XÐt
víi b¶ng LED 5x7 d−íi ®©y (H1.3).
H1.3 B¶ng LED 5x7
Ta muèn lµm s¸ng LED t¹i vÞ trÝ hµng 5 - cét 3 (Row = 5 : Col = 3), ta ®−a møc
®iÖn ¸p d−¬ng (møc logic 1) ®Õn ch©n sè 4 tøc hµng thø 5 vµ nèi ch©n sè 10 tøc cét 3
xuèng ®Êt (GND hay møc logic 0), ®Ìn LED t¹i vÞ trÝ ®ã sÏ s¸ng.
ViÖc hiÓn thÞ th«ng tin trªn b¶ng LED ta còng lµm t−¬ng tù, cho s¸ng nh÷ng ®iÓm
theo sù ®iÒu khiÓn cña ta ®Ó t¹o ra ch÷ vµ h×nh ¶nh. ViÖc ®iÒu khiÓn hiÓn thÞ sÏ ®−îc
tr×nh bµy trong phÇn d−íi d©y.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
2. Nguyªn t¾c quÐt b¶ng ma trËn LED
Trong ®Ò tµi nµy em sö dông hai b¶ng LED 8x8 ghÐp l¹i thµnh mét b¶ng cì 8x16
(8 hµng vµ 16 cét). Mçi ký tù sÏ ®−îc hiÓn thÞ trong mét khung cì 5x7. D−íi ®©y lµ
nguyªn t¾c quÐt vµ hiÓn thÞ mét ký tù (gi¶ thiÕt lµ ch÷ R) trªn khung h×nh 5x7.
§Ó hiÓn thÞ ký tù lªn b¶ng LED, ë ®©y ta dïng ph−¬ng ph¸p quÐt cét vµ xuÊt d÷
liÖu hµng. Qu¸ tr×nh quÐt cét lµ ta göi tÝn hiÖu cho phÐp ®Õn tõng cét trong tõng thêi
®iÓm. Cïng lóc ®ã ta göi d÷ liÖu hµng ®Õn 7 hµng. Trong ®Ò tµi nµy tÝn hiÖu cho phÐp
cét lµ møc logic ‘1’, vµ d÷ liÖu hµng t−¬ng øng lµ møc ‘0’ hay ‘1’ cña tõng hµng, møc
‘0’ øng víi LED s¸ng (on) vµ møc ‘1’ lµ t¾t (off).
- §Çu tiªn ta ®−a d÷ liÖu cÇn hiÓn thÞ ®Õn 7 hµng, vÝ dô 11100110
- KÝch ho¹t cét thø nhÊt vµ c¸c LED t−¬ng øng sÏ s¸ng. T¹o mét thêi gian trÔ, sau
®ã t¾t cét thø nhÊt.
- Göi tiÕp gi¸ trÞ d÷ liÖu 7 hµng cña cét thø 2, kÝch ho¹t cét thø 2, t¹o trÔ vµ l¹i t¾t
cét thø 2.
- Qu¸ tr×nh quÐt ®ã cø tiÕp diÔn cho ®Õn khi quÐt hÕt 16 cét cña b¶ng LED. ViÖc
quÐt hiÓn thÞ nµy diÔn ra trong thêi gian rÊt ng¾n, cì vµi chôc mili gi©y, ta sÏ
thÊy h×nh ¶nh hay ch÷ hiÓn thÞ trªn b¶ng LED. Tuy r»ng trong mçi thêi ®iÓm
chØ cã mét cét ®−îc s¸ng nh−ng do thêi gian quÐt rÊt nhanh vµ do hiÖn t−¬ng
l−u ¶nh trong vâng m¹c cña m¾t nªn ta thÊy h×nh ¶nh xuÊt hiÖn liªn tôc. TÇn sè
quÐt cÇn ph¶i ®¶m b¶o sao cho ®ñ hoÆc lín h¬n 24h×nh/s. Th−êng ta chän tÇn sè
quÐt tõ 40Hz ®Õn 100Hz hoÆc cã thÓ lín h¬n.
D÷ liÖu hiÓn thÞ cña hµng ®−îc lÊy tõ EEPROM hoÆc tõ Flash ROM cña Vi §iÒu
KhiÓn hay tõ ROM ngoµi. Trong ®Ò tµi nµy ban ®Çu d÷ liÖu ®−îc lÊy tõ ROM trong
PIC16F88, khi c©p nhËt d÷ liÖu tõ m¸y tÝnh th× d÷ liÖu sÏ ®−îc lÊy tõ EEPROM trong
PIC16F88 (256 byte).
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
3. Ph−¬ng ph¸p t¹o hiÖu øng ch÷ ch¹y tõ ph¶i qua tr¸i trªn b¶ng LED
Sau khi ®· hiÓn thÞ ®−îc h×nh ¶nh lªn b¶ng LED. B©y giê ta sÏ t×m hiÓu c¸ch t¹o
hiÖu øng ch÷ ch¹y trªn b¶ng LED. Thñ thuËt ë ®©y lµ quÐt vµ hiÓn thÞ mét h×nh ¶nh
trong mét thêi gian nhÊt ®Þnh, sau ®ã ta dÞch d÷ liÖu cña c¸c cét sang tr¸i mét vÞ trÝ,
khi ®ã ta sÏ t¹o ®−îc hiÖu øng ch÷ ch¹y trªn b¶ng LED.
§Ò tµi nµy ta sö dông m¹ch mÉu lµ b¶ng LED 8x16, sö dông 16 byte RAM lµm bé
®Öm cho mµn h×nh, l−u gi¸ trÞ d÷ liÖu hµng cña 16 cét. Bé ®Öm ®−îc khai b¸o trong
RAM néi cña chip PIC16F88 lµ mét m¶ng gåm 17 phÇn tö. Ch−¬ng tr×nh hiÓn thÞ lµm
nhiÖm vô ®äc d÷ liÖu tõ c¸c vÞ trÝ 0 ®Õn 16 cña bé ®Öm vµ ®−a ra mµn h×nh hiÓn thÞ.
HiÖu øng ch÷ ch¹y ®−îc t¹o ra b»ng c¸ch dÞch gi¸ trÞ c¸c phÇn tö ®i mét vÞ trÝ (15 -
>16, 14 ->15, 13 ->12…). Sau mçi lÇn dÞch ta l¹i gäi ch−¬ng tr×nh hiÓn thÞ. Khi ®ã
trªn b¶ng LED ta sÏ quan s¸t ®−îc hiÖu øng ch÷ ch¹y.
4. Nguyªn lý lµm viÖc cña m¹ch quang b¸o
M¹ch ®iÖn sö dông Vi §iÒu KhiÓn PIC nªn vÒ phÇn cøng kh¸ ®¬n gi¶n. M¹ch gåm
cã 3 khèi chÝnh víi 3 IC chÝnh ®−îc sö dông.
Khèi ®iÒu khiÓn trung t©m sö dông Vi §iÒu KhiÓn PIC16F88. Vi §iÒu
KhiÓn nµy cã 18 ch©n (kÝch th−íc nhá nhÊt cña dßng PIC Mid-range). Tuy vËy, víi
nhiÒu tÝnh n¨ng m¹nh ®−îc tÝch hîp s½n nªn PIC16F88 ®−îc chän.
Khèi gi¶i m· ®Þa chØ cét sö dông IC 74HC154 lµ IC gi¶i m·/gi¶ ®a hîp.
ChÝp CMOS nµy ®−îc dïng ®Ó gi¶i m· cét, 4 ®−êng vµo vµ 16 ®−íng ra. 16 ®−êng ra
nµy ®−îc nèi ®Õn 16 cét ®Ó lµm nhiÖm vô ®−a tÝn hiÖu cho phÐp cét.
QuÐt cét
Dữ liệu hàng
TÝn hiÖu kÝch ho¹t cét (C1 -> C5)
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
KhèI gi¶i m· d÷ liÖu hµng sö dông IC 74HC595, ®©y lµ thanh ghi dÞch 8-
bit vµo nèi tiÕp ra song song. Ta sö dông IC nµy nh»m môc ®Ých tiÕt kiÖm ch©n giao
tiÕp gi÷a IC gi¶i m· víi Vi §iÒu KhiÓn. Ch©n DATA-IN (14) ®Ó ®−a d÷ liÖu nèi tiÕp
vµo, ch©n CLK (11) ®−a xung ®ång hå dÞch bit, ch©n LATCH(12) ®Ó chèt d÷ liÖu ®−îc
göi ra. 8 ®Çu ra ®−îc nèi ®Õn 8 hµng cña bang LED th«ng qua m¹ch ®Öm dßng.
Nguyªn lý ho¹t ®éng: Ch−¬ng tr×nh phÇn mÒm chøa trong Vi §iÒu KhiÓn lµm
nhiÖm vô ®iÒu khiÓn chÝnh mäi ho¹t ®éng cña m¹ch. Ch−¬ng tr×nh phÇn mÒm gåm cã
nhiÒu ch−¬ng tr×nh con: ch−¬ng tr×nh hiÓn thÞ, ch−¬ng tr×nh cËp nhËt EEPROM…
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
L−u ®å thuËt to¸n:
YES
NOYES
NO
Khëi t¹o ban ®Çu: - §Þnh nghÜa c¸c ch©n vµo ra - ThiÕt lËp cho ADC(kªnh,tèc ®é) - L−u b¶n tin vµo EEPROM)
Xo¸ bé ®Öm mµn h×nh
§äc gi¸ trÞ ADC
Trë vÒ
Update_flag ?
Gäi ch−¬ng tr×nh cËp nhËt: - Sè tõ hiÓn thÞ míi - VÞ trÝ EEPROM - Sè ký tù thªm vµo - NhËp
Ch−¬ng tr×nh hiÓn thÞ trªn
b¶ng LED
NhËp b¶n tin míi ?
START
HiÓn thÞ néi dung: - B¶n tin - EEPROM
CËp nhËt b¶n tin
END
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
5. S¬ ®å nguyªn lý m¹ch ®iÖn.
- Khèi m¹ch chÝnh vµ hiÓn thÞ.
U6
PIC16F88
14
154 16
1718123
6789
10111213
VDD
OSC2/CLKOUTMCLR OSC1/CLKIN
RA0RA1RA2RA3
RA4/TOCKI
RB0/INTRB1RB2/RXRB3RB4RB5/TXRB6RB7
R1 4k7
Col4 Col8
row4
Col7
XTAL2
R9 4k7VCC
row5
Col1Q7A1015 Col10
A3
VCC
Matran8x8
Q8A1015
A0
A1015
Dieu chinh toc do10K
Q1A1015
Col0
A1015
U4
74HC595
14
11
10
12
13
151234567
9
SER
SRCLK
SRCLR
RCLK
G
QAQBQCQDQEQFQGQH
QH'
row6
Col13
U5
74154
1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17
23 22 21 20 18 19
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10
Y11
Y12
Y13
Y14
Y15
A B C D G1
G2
XTAL1
A2
Matran8x8
A0
Col6 Col12R2 4k7
row8
A1015
A2
row1
R9 4k7Col3 Col9
Q3A1015
VCC
R3 4k7
VCC
Col5
A3
R3 4k7
row2
R1 4k7
A1
R2 4k7
A1
Col11 Col15Col2
row3
Col14
row7
A1015
- Khèi t¹o dao ®éng, m¹ch Reset
C522p
10MHz
XTAL2XTAL1
C622p
C4 10u
VCC
RST
R1510k
- Khèi giao tiÕp m¸y tÝnh
MAX232
1
34
5
2
6
129
1110
138
147
C1+
C1-C2+
C2-
V+
V-
R1OUTR2OUT
T1INT2IN
R1INR2IN
T1OUTT2OUT
C2 10uF
C3C7 VCC
TX (RB5)
C1
COM on PC
594837261
RX (RB2)
Nèi ®Õn ch©n MCLR(1)
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
- Khèi nguån
78051 3
2
VIN VOUT
GN
D
100uF
+5V
10uF
+9V ..+12V
10447uF
6. Linh kiÖn sö dông trong m¹ch
- Khèi ®iÒu khiÓn trung t©m: Vi ®iÒu khiÓn PIC16F88
- Gi¶I m· d÷ liÖu hµng: IC 74HC595
- Gi¶I m· ®Þa chØ cét: IC 74HC154
- Giao tiÕp m¸y tÝnh: IC MAX232 (MAXIM-DALLAS)
- §iÖn trë 4K7, 10K, tô 10µF, 100µF, 47µF, IC 7805 (æn ¸p 5V) Tran A1015
- B¶ng LED 8x8 (2 b¶ng)
II. M· nguån ch−¬ng tr×nh
D−íi ®©y lµ m· nguån cña ch−¬ng tr×nh hiÓn thÞ LED. Ch−¬ng tr×nh sö dông
ng«n ng÷ C, sö dông tr×nh biªn dÞch PCWH Compiler cña h·ng Custom Computer
Services, Inc (CCS), phiªn b¶n 3.227. §©y lµ phÇn mÒm chuyªn dông trong viÖc lËp
tr×nh PIC c¸c dßng PIC16F vµ PIC18F…
§Ó lËp tr×nh cho PIC ta cã thÓ sö dông rÊt nhiÒu ng«n ng÷ kh¸c nhau nh− C,
C++, BASIC, ASM… Mçi ng«n ng÷ l¹i cã mét tr×nh biªn dÞch khac nhau. Riªng nhµ
cung cÊp chip lµ h·ng MicroChip th× hç trî ng−êi dïng tr×nh dÞch b»ng ASM lµ
MPLAB IDE (phiªn b¶n míi nhÊt lµ 7.21). §©y lµ phÇn mÒm hoµn toµn miÔn phÝ, cho
phÐp ng−êi dïng ph¸t triÓn trªn m«i tr−êng ASM c¸c øng dông. Tuy vËy trong ®Ò tµi
nµy em chän dïng ng«n ng÷ C ®Ó viÕt m· ch−¬ng tr×nh v× C lµ ng«n ng÷ bËc cao, cho
phÐp ta thùc hiÖn nhiÒu phÐp toµn phøc t¹p víi c©u lÖnh ®¬n gi¶n. Trong tr×nh biªn
dÞch PCWH Compiler cã hç trî kh¸ nhiÒu hµm cho phÐp ta lËp tr×nh víi PIC mét c¸ch
nhanh chãng nh−: c¸c hµm giao tiÕp I2C, RS232, SPI…, c¸c hµm xö lý víi EEPROM
nh− write_eeprom, read_eeprom,…
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
//+===Chuong trinh LED matrix display===========+ //| Thiet ke: Nguyen Chi Linh - DT8K47 - DHBKHN | //| MCU: PIC16F88 (4K FLASH ROM, 256K EEPROM) | //| Cac IC khac: 74154 - demux/decoder 1-of-16 | //| 74595 - Ghi dich 8bit | //+=============================================+ #include <16f88.h> #include <defs_88.h> #device *=16 ADC=8 #FUSES NOWDT, HS, NOPUT, MCLR, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG, NOPROTECT, NOFCMEN, NOIESO #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_B5,rcv=PIN_B2,bits=9) #include <input.c> #include <font_ascii.c> //File chua bo font ma hoa ky tu ASCII // Dinh nghia cac chan cho ket noi 74595 #bit clk = 0x06.1 //RB0 #bit data = 0x06.3 //RB1 #bit latch = 0x06.4 //RB3 // Bo nho dem man hinh hien thi int8 buff_disp[25]; //Bo nho dem cho man hinh LED int8 max_char=117; //SO ky tu hien thi toi da int8 time=5; //Bien quy dinh toc do chu chay int1 text_on_rom=0; int8 chon=0; int8 address; int8 choose_text; //=========KHAI BAO CAC CHUONH TRINH CON================ int8 doc_eeprom(int8 addr); void send_2_595(int8 temp); void display(); void copy_2_ram1(int8 index_char); void copy_2_ram2(int8 index_char); void update_eeprom(); void convert_bcd(int8 x); //============================================= #INT_EXT EXT_ISR() { disable_interrupts(GLOBAL); clear_interrupt(int_ext); chon++; if(chon==3) chon = 0; choose_text = 0; text_on_rom = 0;
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
enable_interrupts(GLOBAL); } //===========Chuong trinh chinh================ void main() { int8 i,j,k; #bit update_rom = 0x06.6 char const a[119]= " Hello World.LED Matrix PIC16F88 - 74154 - 74595. Bang thong tin dien tu.Nguyen Chi Linh-DT8 DAI HOC BACH KHOA HA NOI "; char const b[119]= " HAPPY NEW YEAR *2006* - CHUC MUNG NAM MOI - Chuc Mung Nam Moi - Happy new year. [email protected] 1234567890 "; char const c[119]= " You like a little flame in my heart. When I see you, the flame is like up. Because I love you. Because I LOVE YOU "; char const adc[6] = " ADC="; //=========================================== TRISA=0x10; // Thiet lap chan vao ra TRISB=0b00100101; //==Thiet lap ngat ngoai 0 ================== enable_interrupts(INT_EXT); ext_int_edge(H_TO_L); enable_interrupts(GLOBAL); //=========================================== setup_adc_ports(sAN4); setup_adc(ADC_CLOCK_INTERNAL); chs0=0; //Clear bit 1f.3 chs1=0; //Clear bit 1f.4 chs2=1; //Clear bit 1f.5 delay_ms(10); //======= HIEN THI TRAI TIM ======= //============================== //======= HIEN THI BAN TIN ======== for(i=0;i<6;++i) write_eeprom(0xf0+i,adc[i]); for(i=0;i<117;++i) write_eeprom(i,a[i]); write_eeprom(0xff,max_char); // Luu so ky tu toi da vao ROM if(update_rom==1) //Kiem tra cong tac cap nhat du lieu update_eeprom(); //Goi chuong trinh con cap nhat(giao tiep qua cong COM) for (i=0;i<=24;i++) // Clear RAM of buff_disp buff_disp[i]=0xff; //Doanchuong trinh nay se hien thi noi dung ban tin luu trong EEPROM while(1) { for (i=0;i<=max_char;i++) // Begin of text { if(choose_text==0) {choose_text=1; goto hien_thi;} if(text_on_rom==0)
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
{ switch(chon) { case 0: j=a[i]-32; break; case 1: j=b[i]-32; break; case 2: j=c[i]-32; break; case 3: chon=0; break; } } else j=read_eeprom(i)-32; if(j < 51) copy_2_ram1(j); else { j=j-51; copy_2_ram2(j); } } k=read_adc(); convert_bcd(k); for(i=0;i<8;++i) { k = doc_eeprom(0xf0 + i)-32; copy_2_ram1(k); } } } //========= END MAIN ============== // === CAC CHUONG TRINH CON ========= //=======Gui du lieu theo duong noi tiep toi 595============ void send_2_595(int8 temp) { #bit flag_bit = temp.7 // bien temp la du lieu 8-bit can gui int8 i; clk=0; for(i=0;i<8;i++) { if(flag_bit) data=1; //bit 1 else data=0; //bit 0 clk=1; clk=0;
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
temp<<=1; // Dich trai 1 bit } latch=1; latch=0; //Chot du lieu } //===========Chuong trinh con hien thi========= void display() { int8 count,column_count; int8 i; time = read_adc()/10; // Viec doc gia tri ADC truoc khi hien thi lam cho viec thay doi // toc do chu chay linh hoat hon, truc tiep tha doi for (i=0;i<=time;i++) //Toc do chu chay thay doi boi bien time { column_count=0; //Bien dem so cot, xem da quet het 16 cot chua for(count=24;count>0;count--) { send_2_595(buff_disp[count]); if(column_count > 15) RB7=1; else RB7 = 0; PORTA=column_count; delay_us(300); column_count++; } } } //========Copy to Ram1===================== void copy_2_ram1(int8 index_char) { int8 i,j; for (j=0;j<=5;j++) { // Dich RAM for (i=24;i>0;i--) buff_disp[i]= buff_disp[i-1]; // Dich RAM sang trai buff_disp[0]= font[index_char].b[j]; // Luu ma ascii vao RAM display(); // Goi hien thi } buff_disp[0]=0xff; } //========Copy to Ram 2=================== void copy_2_ram2(int8 index_char) { int8 i,j; for (j=0;j<=5;j++) { for (i=24;i>0;i--) // Dich RAM buff_disp[i]= buff_disp[i-1]; //Dich RAM sang trai buff_disp[0]=font2[index_char].b[j]; //Luu ma ascii vao RAM
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
display(); // Goi hien thi } buff_disp[0]=0xff; // Them mot khoang trang giua hai ky tu } //=========Update EEPROM=================== void update_eeprom() { byte i,j,addr,max; char temp; char string[64]; // Hien thi noi dung cua EEPROM printf("\r\n256 byte EEPROM of PIC16F88:\r\n"); for(i=0; i<=15; ++i) // bytes of the data EEPROM in hex { for(j=0; j<=15; ++j) printf( "%2x ", doc_eeprom( i*16+j ) ); printf("\n\r"); } // Hien thi noi dung ban tin i=0; do { temp = doc_eeprom(i); printf( "%C", temp); i++; } while (temp != 0xff); //--------Ket thuc ---------- printf("\r\nTong so chu: %2u", doc_eeprom(0xff)); printf("\r\n\nCo thay doi ban tin ko(Y/N)? "); temp=getc();//temp = getc(); if (temp == 'y' || temp == 'Y') { printf("\r\nSo chu hien thi moi la: "); max_char=gethex(); write_eeprom(0xff,max_char); printf("\r\nDia chi EEPROM can thay doi: "); addr = gethex(); if (addr >= max_char) write_eeprom(0xff,addr); printf("\r\nSo ky tu them vao: "); max = gethex(); // Tra ve gia tri Hexa if(max >= max_char) write_eeprom(0xff,max); // Cap nhat so ky tu printf("\r\nNew: "); get_string(string,max+1); for (i=0;i<max;i++) //bat dau qua trinh ghi vao ROM (cap nhat du lieu moi) { write_eeprom(addr,string[i]); addr=addr+1;
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
} text_on_rom=1; } else { printf("Tro ve !"); // Ket thuc viec cap nhat, tro ve hien thi text_on_rom = 0; } } //=============READ EEPROM===================== int8 doc_eeprom(int8 addr) { EEADR=addr; RD=1; return(EEDATA); } //=======Chuyen gia tri hex ra so ASCII========= void convert_bcd(int8 x) { int8 temp; int8 a; temp=x%10; //chia lay phan du, so hang don vi write_eeprom(0xf7,temp+0x30); //Cong them 0x30 de tra ve gia tri SCII a=x/10; //tach hang tram va hang chuc temp=a%10; //tach so hang chuc write_eeprom(0xf6,temp+0x30); temp=x/100; write_eeprom(0xf5,temp+0x30); }
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Ch−¬ng 4
Giíi thiÖu c¸c IC liªn quan ®Õn m¹ch
I. Vi §iÒu KhiÓn 8 bit - PIC16f88
§Æc tÝnh næi bËt cña bé vi xö lÝ.
− Sö dông c«ng nghÖ tÝch hîp cao RISC CPU.
− Ng−êi sö dông cã thÓ lËp tr×nh víi 35 c©u lÖnh ®¬n gi¶n (tËp lÖnh ASM).
− TÊt c¶ c¸c c©u lÖnh thùc hiÖn trong mét chu k× lÖnh ngo¹i trõ mét sè c©u lÖnh rÏ
nh¸nh thùc hiÖn trong 2 chu k× lÖnh.
− Xung dao ®éng cã nhiÒu nguån:
Dao ®éng néi víi c¸c tÇn sè:31KHz, 125KHz, 1MHz, 2MHz, 4MHz,
8MHz
Dao ®éng dïng th¹ch anh bªn ngoµi víi c¸c chÕ ®é: LP, HS, XT lªn tíi
20MHz
Nguån xung clock bªn ngoµi (max) 20MHz
− Tèc ®é ho¹t ®éng lµ: - Xung ®ång hå vµo lµ DC- 20MHz - Chu kú lÖnh thùc
hiÖn trong 200ns (TÇn sè th¹ch anh chia 4: Tint = Tosc : 4 )
− Bé nhí ch−¬ng tr×nh Flash 8Kx14 words (ghi/xãa 100.000 lÇn)
− Bé nhí Ram 368x8 bytes chia lµm 4 Bank: 0 - 1 - 2 - 3
− Bé nhí EFPROM 256x 8 bytes (ghi/xãa 1.000.000 lÇn)
− LËp tr×nh nèi tiÕp th«ng qua 2 ch©n PGD vµ PGC
Kh¶ n¨ng cña bé vi xö lÝ nµy
− Kh¶ n¨ng ng¾t ( lªn tíi 12 nguån ng¾t trong vµ ng¾t ngoµi )
− Ng¨n nhí Stack ®−îc ph©n chia lµm 8 møc
− Truy cËp bé nhí b»ng ®Þa chØ trùc tiÕp hoÆc gi¸n tiÕp.
− Nguån khëi ®éng l¹i (Power On Reset - POR)
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
− Bé ®Õm xung thêi gian (WDT) víi nguån dao ®éng trªn chÝp (nguån dao ®éng
RC ) ho¹t ®éng ®¸ng tin cËy.
− Cã m· ch−¬ng tr×nh b¶o vÖ.
− Ph−¬ng thøc cÊt gi÷ SLEEP
− C«ng nghÖ CMOS FLASH /EEPROM nguån møc thÊp ,tèc ®é cao.
− M¹ch ch−¬ng tr×nh nèi tiÕp cã 2 ch©n.
− Xö lý ®äc /ghi tíi bé nhí ch−¬ng tr×nh (Flash ROM & EEPROM) .
− D¶i ®iÖn thÕ ho¹t ®éng réng : 2.0V ®Õn 5.5V
− Nguån sö dông hiÖn t¹i 25 mA
− D·y nhiÖt ®é c«ng nghiÖp vµ thuËn lîi .
− C«ng suÊt tiªu thô thÊp:
RC_Oscillator : 76µA, 1MHz, 2V
Sleep Mode : 1µA, 2V
C¸c ®Æc tÝnh næi bËt cña thiÕt bÞ ngo¹i vi trªn chip
− Timer0: 8 bÝt cña bé ®Þnh thêi, bé ®Õm víi hÖ sè tû lÖ tr−íc
− Timer1: 16 bÝt cña bé ®Þnh thêi, bé ®Õm víi hÖ sè tû lÖ tr−íc, cã kh¶ n¨ng t¨ng
trong khi ë chÕ ®é Sleep qua xung ®ång hå ®−îc cung cÊp bªn ngoµi.
− Timer 2: 8 bÝt cña bé ®Þnh thêi, bé ®Õm víi 8 bÝt cña hÖ sè tû lÖ tr−íc, hÖ sè tû
lÖ sau
− Cã 2 chÕ ®é b¾t gi÷, so s¸nh, ®iÒu chÕ ®é réng xung(PWM).
− ChÕ ®é b¾t gi÷ víi 16 bÝt, víi tèc ®é 12.5 ns, chÕ ®é so s¸nh víi 16 bÝt, tèc ®é
cùc ®¹i lµ 200 ns, chÕ ®é ®iÒu chÕ ®é réng xung víi 10 bÝt.
− Bé chuyÓn ®æi tÝn hiÖu t−¬ng tù sang sè (ADC) víi 10 bÝt – 5 kªnh vµo .
− Cæng truyÒn th«ng nèi tiÕp SSP víi SPI ph−¬ng thøc chñ vµ I2C(phô)
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
− Bé truyÒn nhËn th«ng tin ®ång bé, dÞ bé(USART/SCL) cã kh¶ n¨ng ph¸t hiÖn 9
bÝt ®Þa chØ. RS232 ho¹t ®éng dung dao ®éng néi(kh«ng cÇn th¹ch anh bªn
ngoµi)
C¸c cæng vµo ra cña PIC16F88
- PIC16F88 cã 16 cæng vµo ra c¬ b¶n, nh−ng thùc tÕ chØ dïng 13 cæng ®ã lµ
PORTB (RB0 - RB7) vµ PORTA (RA0 - RA5)
- Mçi cæng vµo ra cña PIC cã nhiÒu chøc n¨ng, viÖc dïng chøc n¨ng nµo lµ do
ng−êi dung quyÕt ®Þnh.
S¬ ®å khèi cña Vi §iÒu KhiÓn PIC16F88
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
S¬ ®å ch©n cña PIC16F88
Víi kh¶ n¨ng tÝch hîp nhiÒu thiÕt bÞ ngo¹i vi trªn mét chip nh− vËy Vi §iÒu
KhiÓn PIC thùc sù thÝch hîp cho nh÷ng øng dông h−íng ®iÒu khiÓn víi chi phÝ thÊp
hiÖu qu¶ cao vµ kh¶ n¨ng b¶o mËt. KÝch th−íc nhá gän cña chip (18 ch©n) lµm cho
kÝch th−íc m¹ch gi¶m ®¸ng kÓ.
PIC16F88 ®−îc chÕ t¹o theo c«ng nghÖ RISC (Reduced Instruction Set Computer
– M¸y tÝnh víi tËp lÖnh ®¬n gi¶n). §iÒu ®ã t¹o thuËn lîi cho ng−êi sö dông do PIC chØ
cã 35 c©u lÖnh ph¶i häc.
1. Tæ chøc bé nhí trªn chip PIC16F88
PIC16F88 cã 3 khèi bé nhí: bé nhí ch−¬ng tr×nh Flash, bé nhí d÷ liÖu RAM vµ
bé nhí EEPROM kh«ng mÊt néi dung.
1.1. Sù tæ chøc bé nhí ch−¬ng tr×nh FLASH vµ Stack nhí.
Vi ®iÒu khiÓn PIC16F877 cã mét bé ®Õm ch−¬ng tr×nh 13 bit vµ cã 8Kx14 tõ
m· cña bé nhí ch−¬ng tr×nh FLASH, ®−îc chia thµnh 4 trang mçi trang 2Kx14 tõ m·.
Khi Reset ®Þa chØ b¾t ®Çu thùc hiÖn ch¹y lµ 0000h, Vector ng¾t b¾t ®Çu 0004h. Stack
cã 8 møc dïng ®Ó l−u ®Þa(PC) chØ lÖnh thùc hiÖn tiÕp theo sau lÖnh CALL vµ khi x¶y
ra ng¾t.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
B¶n ®å bé nhí ch−¬ng tr×nh vµ c¸c ng¨n xÕp.
1.2. Sù tæ chøc bé nhí d÷ liÖu RAM
RAM lµ bé nhí cã thÓ ®äc vµ ghi, nã kh«ng l−u d÷ liÖu khi mÊt ®iÖn, bé nhí RAM
cña PIC16F877 cã 4 bank, mçi bank cã d¶i ®Þa chØ 0-7FH(128byte) trªn c¸c bank cã
nh÷ng thanh ghi ®a môc ®Ých, nã ho¹t ®éng nh− mét RAM tÜnh.(General purpose
register), vµ nh−ng thanh ghi chøc n¨ng ®Æc biÖt(Special function registers) ë vïng ®Þa
chØ thÊp. BÝt RP1(Status <6>) vµ bit RP0(Status <5>) dïng ®Ó lôa chän bank lµm viÖc.
Gi¸ trÞ thay ®æi tõ 00 ~ Bank 0 dÕn 11 ~ bank 3
C¸c thanh ghi ®a môc ®Ých: (General Purpose Register), c¸c thanh ghi nµy ®−îc truy
cËp b»ng c¶ hai c¸ch trùc tiÕp hoÆc gi¸n tiÕp qua thanh ghi FSR,tæng céng cã 368
byte.
C¸c thanh ghi chøc n¨ng ®Æc biÖt. C¸c thanh ghi nµy ®−îc dïng bëi CPU vµ c¸c
khèi ngo¹i vi ®Ó ®iÒu khiÓn sù ho¹t ®éng theo yªu cÇu cña thiÕt bÞ.
C¸c thanh ghi nµy cã thÓ ®−îc ph©n lo¹i vµo hai bé phËn trung t©m (CPU) vµ ngo¹i vi.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
H×nh ¶nh c¸c bank trªn PIC16F88
1.3. Truy cËp bé nhí RAM b»ng ®Þa chØ trùc tiÕp, gi¸n tiÕp.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
1.4. Bé nhí d÷ liÖu EEPROM vµ bé nhí ch−¬ng tr×nh FLASH.
C¸c bé nhí nµy cã thÓ ®äc vµ ghi trong khi c¸c ho¹t ®éng vÉn diÔn ra b×nh
th−êng. Bé nhí d÷ liÖu kh«ng trùc tiÕp s¾p xÕp d÷ liÖu trªn c¸c thanh ghi d÷ liÖu cßn
trèng. Thay v× ®ã lµ ®¸nh c¸c ®Þa chØ gi¸n tiÕp qua c¸c thanh ghi chøc n¨ng ®Æc biÖt.
Cã 6 thanh ghi SFR dïng ®Ó ®äc vµ ghi bé nhí ch−¬ng tr×nh vµ bé nhí d÷ liÖu
EEPROM ®ã lµ c¸c thanh ghi: EECON1EEDATH, EECON2EEADR, EEDATAEEADRH
Bé nhí d÷ liÖu EEPROM cho phÐp ®äc vµ ghi c¸c byte. Khi cã t¸c ®éng tíi
khèi bé nhí d÷ liÖu. Thanh ghi EEDATA gi÷ 8 bit d÷ liÖu ®Ó ®äc/ghi vµ thanh ghi
EEADR gi÷ ®Þa chØ vÞ trÝ cña EEPROM ®−îc truy cËp. C¸c thanh ghi EEDATH vµ
EEADRH kh«ng ®−îc sö dông ®Ó truy cËp d÷ liÖu EEPROM. C¸c thiÕt bÞ nµy cã tíi
256 byte cña d÷ liÖu EEPROM víi ®Þa chØ tõ 00h tíi FFh.
Bé nhí d÷ liÖu EEPROM ®−îc xÕp vµo lo¹i cao cho c¸c chu tr×nh xo¸/ghi. Thêi
gian ®−îc ®iÒu khiÓn bëi mét bé ®Þnh thêi trªn chip. Thêi gian ghi sÏ thay ®æi cïng
víi ®iÖn thÕ vµ nhiÖt ®é.
Bé nhí ch−¬ng tr×nh cho phÐp ®äc vµ ghi c¸c kÝ tù. Khi t¸c ®éng ®Õn khèi
ch−¬ng tr×nh nhí, c¸c thanh ghi EEDATH, EEDATA cã d¹ng 2 byte kÝ tù gi÷ 14 bit
d÷ liÖu ®Ó ®äc/ghi vµ c¸c thanh ghi EEADRH, EEADR cã d¹ng hai bit tõ m· víi 13
bit ®Þa chØ cña vÞ trÝ EEPROM ®−îc truy cËp. Nh÷ng thiÕt bÞ nµy cã thÓ cã tíi 8K tõ
m· cña ch−¬ng tr×nh EEPROM víi mét ®Þa chØ giíi h¹n tõ 0h tíi 3FFh.
1.5. Cæng vµo ra
Mét sè ch©n cña c¸c cæng vµo/ra ®−îc tÝch hîp víi mét sè hµm cã thÓ thay ®æi
®Ó phï hîp víi nh÷ng thiÕt bÞ ngo¹i vi. Nh×n chung khi thݪt bÞ ngo¹i vi ho¹t ®éng, c¸c
ch©n cã thÓ kh«ng sö dông víi môc ®Ých lµm ch©n vµo ra.
Mçi cæng vµo ra cña PIC cã mét thanh ghi ®iÒu khiÓn viÖc truy xuÊt d÷ liÖu.
Cæng A cã thanh ghi TRISA, cæng B cã thanh ghi TRISB…NÕu ®Æt bÝt TRISx = 1 th×
lóc nµy cæng X sÏ t−¬ng øng cã c¸c ch©n lµ ch©n vµo .NÕu xo¸ bÝt TRISx = 0 th× lóc
nµy cæng X sÏ t−¬ng øng cã c¸c ch©n lµ ch©n ra.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
II. ICs 74HC154
§©y lµ IC gi¶i m·/gi¶i ®a hîp, ®−îc dïng ®Ó gi¶i m· nhÞ ph©n 4 bit. 74HC154
cã 4 ®−êng vµo lµ 4 bit m· nhÞ ph©n vµ 16 ®−êng ra, chØ cã mét ®Çu ra duy nhÊt ë møc
thÊp (L) cßn tÊt c¶ c¸c ®Çu ra kh¸c møc cao tuú thuéc vµo 4 bit ®Çu vµo.
S¬ ®å ch©n cña IC 74154:
Chøc n¨ng c¸c ch©n cña IC:
- VCC vµ GND lµ c¸c ch©n nguån cña IC, cÊp nguån cho IC ho¹t ®éng.
Ch©n VCC nèi ®Õn cùc d−¬ng cña nguån (+5 do lµ IC hä TTL), ch©n
GND nèi ®Õn cùc ©m cña nguån cÊp (0V)
- G1,G2 lµ hai ch©n cho phÐp tÝn hiÖu ra, khi ®−îc nèi ®Õn møc cao (logic
1 hay +5V) th× c¸c ®Çu ra bÞ cÊm. §Ó IC ho¹t ®éng th× c¸c ch©n nµy cÇn
®−îc nèi víi ®Êt cña m¹ch (nèi ®Õn GND).
- IN-A, IN-B, IN-C, IN-D lµ 4 ch©n ®Çu vµo, ®−a t×n hiÖu nhÞ ph©n 4 bit
vµo. C¸c ch©n nµy t−¬ng thÝch víi chuÈn TTL nªn cã thÓ ghÐp trùc tiÕp
víi c¸c ch©n t×n hiÖu cña c¸c IC trong hä TTL hay ch©n cña Vi §iÒu
KhiÓn cã møc ®iÖn ¸p ra t−¬ng thÝch TTL. Khi nèi t×n hiÖu kh«ng ph¶i
theo chuÈn TTL th× cÇn ph¶i dung mét IC ®Öm ®Ó chuyÓn ®æi møc logic
thµnh TTL
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
- OUT-00, OUT-01, OUT-02,……,OUT-14,OUT-15 Lµ 16 ch©n xuÊt tÝn
hiÖu ra. T¹i mçi thêi ®iÓm chØ cã mét ch©n ë møc th©p (L) cßn c¸c ch©n
kh¸c ®Òu ë møc cao (H). Chi tiÕt xem ë b¶ng bªn d−íi. TÝn hiÖu ra lµ
TTL
B¶ng tr¹ng th¸i cña 74154:
Input Output G1 G2 D C B A 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15H H H H H H H H H H H H H H H H H H H H H HL H H H H H H H H H H H H H H H H H H H H HH L H H H H H H H H H H H H H H H H H H H HL L L L L L L H H H H H H H H H H H H H H HL L L L L H H L H H H H H H H H H H H H H HL L L L H L H H L H H H H H H H H H H H H HL L L L H H H H H L H H H H H H H H H H H HL L L H L L H H H H L H H H H H H H H H H HL L L H L H H H H H H L H H H H H H H H H HL L L H H L H H H H H H L H H H H H H H H HL L L H H H H H H H H H H L H H H H H H H HL L H L L L H H H H H H H H L H H H H H H HL L H L L H H H H H H H H H H L H H H H H HL L H L H L H H H H H H H H H H L H H H H HL L H L H H H H H H H H H H H H H L H H H HL L H H L L H H H H H H H H H H H H L H H HL L H H L H H H H H H H H H H H H H H L H HL L H H H L H H H H H H H H H H H H H H L HL L H H H H H H H H H H H H H H H H H H H L
Nguyªn lý ho¹t ®éng cña IC 74HC154
Nh×n lªn b¶ng tr¹ng th¸i ta thÊy, chØ khi c¶ hai ch©n G1, G2 ®Òu ë møc thÊp (L)
th× IC míi ho¹t ®éng chÝnh x¸c. Cßn c¸c tr−êng hîp kh¸c th× c¸c ®Çu ra ®Òi ë møc cao.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Khi G1,G2 ë møc thÊp, t−íng øng víi gi¸ trÞ cña 4 bit d− liÖu ®−a vµo, IC sÏ gi¶i m·
vµ ®ua ®Çu ra t−¬ng øng vÒ møc thÊp (møc 0). Vi dô: DCBA = 0101 - > Gi¶i m· ->
Y 05 = 0.
III. IC 74HC595
IC 74HC595 lµ IC ghi dÞch 8-bit, vµo nèi tiÕp ra song song víi mét thanh ghi l−u
tr÷ (storage register) vµ ®Çu ra 3 tr¹ng th¸i.
Chøc n¨ng cña IC:
- Vµo d÷ liÖu 8-bit
- §Çu ra 8 –bit nèi tiÕp vµ 8-bit song song
- Thanh ghi l−u tr÷ víi ®Çu ra 3 tr¹ng th¸i
- TÇn sè dÞch 100MHz (Typical)
M« t¶ ch©n cña IC 74HC595
- VCC vµ GND: ch©n cÊp nguån cho IC. §iÖn ¸p nguån cÊp trong kho¶ng 2V –
5.5V.
- Q0 ~Q7: 8 ®Çu ra d÷ liÖu song song, ch©n Q7’ lµ ch©n ra d÷ liÖu nèi tiÕp
- MR lµ ch©n Reset IC, tÝch cùc møc thÊp (0). Khi ®−a møc 0 vµo ch©n nµy th×
IC sÏ thùc hiÖn Reset, tÊt c¶ ®Çu ra ®Òu vÒ 0.
- SHCP lµ ch©n nhËn xung ®ång hå cña thanh ghi dÞch
- STCP lµ ch©n nhËn xung ®ång hå cho thanh ghi l−u tr÷
- OE: ch©n cho phÐp xuÊt d÷ liÖu ra, tÝch cùc møc thÊp. Khi ho¹t ®éng ch©n
nµy ë møc 0. Khi ®−a ch©n OE lªn møc 1 c¸c ®Çu ra sÏ ë tr¹ng th¸i trë
kh¸ng cao
- Ds lµ ch©n nhËn d÷ liÖu nèi tiÕp.
Ho¹t ®éng cña IC
D÷ liÖu sau khi ®−îc ®−a vµo ch©n Ds cña IC, bit d÷ liÖu ®ã sÏ ®−îc dÞch øng víi
s−ên d−¬ng cña xung nhÞp, tõ møc thÊp-lªn-cao( LOW-TO-HIGH ) ®−a tíi ch©n SHCP
, d÷ liÖu vµo t¹i mçi thanh ghi sÏ ®−îc ®−a sang thanh ghi l−u tr÷ khi cã mét s−ên
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
d−¬ng cña xung nhÞp ®i vµo ch©n STCP. Xung ®ång hå t¹i ch©n SHCP ph¶i xuÊt hiÖn
tr−íc xung nhÞp vµo ch©n STCP. Mçi xung clock ®−a vµo ch©n SHCP t−¬ng øng víi
mét bit d÷ liÖu ®−a vµo t¹i ch©n Ds, 8 xung øng víi 8-bit d÷ liÖu ®−a vµo, chóng ®−îc
l−u trong thanh ghi l−u tr÷. Khi mét tÝn hiÖu tÝch cùc møc 0 ®−a vµo ch©n OE th× 8-bit
d÷ liÖu nµy sÏ ®−îc d−a ra 8 ®Çu ra song song. Khi cã 8 bit d÷ liÖu tiÕp theo ®−îc dÞch
vµo th× 8 bit d÷ liÖu tr−íc ®ã sÏ lÇn l−ît ®−îc dÞch ra nèi tiÕp nhau qua ch©n Q7’.
Trong chÕ ®é ho¹t ®éng b×nh th−êng cña IC, c¸c ch©n MR sÏ ®−îc nèi víi d−¬ng
nguån, ch©n OE sÏ nèi víi ®Êt.
Khi ghÐp nèi c¸c IC 74595 nèi tiÕp nhau thµnh m¹ng IC th× c¸c ch©n SHCP vµ
STCP cña tÊt c¶ c¸c IC sÏ ®−îc nèi chung víi nhau vµ nèi víi nguån xung nhÞp, ch©n
Ds cña IC ®Çu tiªn sÏ nèi víi ch©n vµo d÷ liÖu (tõ c¸c IC kh¸c), cßn c¸c IC sau ®ã th×
®−îc m¾c nèi tiÕp nhau, ch©n Ds cña IC nµy nèi víi ch©n Q7’ cña IC tr−íc ®ã.
S¬ ®å ch©n cña IC 74HC595
Gi¶n ®å thêi gian qu¸ tr×nh truyÒn d÷ liÖu.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
IV. IC MAX232
MAX232 lµ mét dßng IC kh¸ phæ biÕn ®−îc ph¸t triÓn bëi nhiÒu h·ng s¶n xuÊt
chip. §©y lµ IC chuyªn dông rÊt hay ®−¬c dïng trong viÖc chuyÓn ®æi møc logic
khi ta ghÐp nèi mét IC cã ch©n tÝn hiÖu theo chuÈn TTL (5V) víi cæng COM
(RS232) trªn m¸y tÝnh cho c¸c môc ®Ých giao tiÕp kh¸c nhau.
Trªn c«ng COM cña m¸y tÝnh, møc Logic 0 vµ 1 thay ®æi trong kho¶ng ®iÖn ¸p
tõ -15V ®Õn + 15V. Trong khi dã, phÇn lín c¸c IC (mµ cô thÓ lµ c¸c lo¹i Vi §iÒu
KhiÓn) trong thùc tÕ cã møc ®iÖn ¸p tu©n theo chuÈn TTL (møc 0 øng víi 0V, møc
1 øng víi 5V). Do ®ã khi muèn ghÐp nèi c¸c IC nµy víi m¸y tÝnh th× ta cÇn dïng
c¸c IC ®Öm ®Ó chuyÓn ®æi gi÷a hai møc ®iÖn ¸p nµy. MAX232 lµ mét trong sè
nh÷ng IC ®ã.
MAX232 cã 2 bé chuyÓn ®æi ®iªn ¸p cho phÐp cung lóc cã thÓ ghÐp nèi 2 thiÕt
bÞ tíi 2 cæng COM m¸y tÝnh. Khi ho¹t ®éng IC nµy cÇn cã thªm mét sè tô m¾c
ngoµi.
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
S¬ ®å khèi vµ ch©n IC MAX232
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
V. IC 7805
IC 7805 lµ mét IC æn ¸p thuéc hä 78xx víi c¸c dßng 7805 æn ¸p 5V, 7809, æn ¸p
9V, 7812 æn ¸p 12V … IC nµy ®−îc sñ dông trong m¹ch ®Ó t¹o ra ®iÖn ¸p 5V æn
®Þnh cung cÊp cho m¹ch. Khi ®Æt mét ®iÖn ¸p vµo ®Çu vµo cña IC (th−êng kho¶ng
9V®Õn 35V), ®Çu ra IC sÏ cho ®iÖn ¸p æn ®Þnh 5V (4.8V – 5.2V), dßng cung cÊp
cps thÓ ®¹t 1- 2A tïy lo¹i.
S¬ ®å khèi:
C¸c m¹ch øng dông c¬ b¶n cña hä IC78xx.
1. M¹ch án ¸p c¬ b¶n
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Ch−¬ng 5
KÕt luËn
Sau qu¸ tr×nh t×m hiÓu vÒ b¶ng th«ng tin ®iÖn tö vµ vÒ c¸c lo¹i Vi DiÒu KhiÓn,
nhãm chóng em ®· chÕ t¹o thµnh c«ng mét b¶ng th«ng tin ®iÖn tö hiÓn thÞ néi dung
th«ng tin mµ ng−êi dung yªu cÇu.
−u ®iÓm:
- M¹ch kh¸ ®¬n gi¶n, phÇn cøng kh«ng cã g× phøc t¹p, linh kiÖn dÔ kiÕm.
- M¹ch ch¹y æn ®Þnh, Ýt chÞu ¶nh h−ëng bëi c¸c nhiÔu tõ m«i tr−êng, ®é s¸ng
cña c¸c LED kh¸ ®ång ®Òu.
- M¹ch cã nhiÒu tÝnh n¨ng nh− thay ®æi tèc ®é ch÷ ch¹y trùc tiÕp, l−u néi
dung hiÓn thÞ vµo EEPROM kh«ng mÊt néi dung, giao tiÕp víi m¸y tÝnh ®Ó
thay ®æi b¶n tin hiÓn thÞ, phÇn mÒm giao tiÕp kh«ng cÇn phÇn mÒm chuyªn
dông, bÊt tr×nh giao tiÕp víi cæng COM nµo ®Òu dïng ®−îc.
- TÝnh linh ho¹t vµ kh¶ n¨ng më réng kÝch th−íc b¶ng LED kh¸ dÔ dµng
Nh−îc ®iÓm:
- M¹ch ®Öm dßng ch−a tèt, ch−a cung cÊp ®ñ c«ng suÊt cho b¶ng ®Ìn.
- Do dïng EEPROM trªn chip (PIC16F88 cã 256 Bytes EEPOM) nªn ®é dµi
cña b¶n tin cã phÇn bÞ giíi h¹n.
- ViÖc thay ®æi b¶n tin cÇn cã m¸y vi tÝnh nªn ch−a thùc sù chñ ®éng trong
viÖc thay ®æi néi dung b¶n tin.
H−íng ph¸t triÓn cña ®Ò tµi.
Kh¾c phôc nh÷ng nh−îc ®iÓm hiÖn cã cña b¶ng th«ng tin ®iÖn tö, h−íng ph¸t
triÓn cña ®Ò tµi lµ thay ®æi phÇn m¹ch c«ng suÊt ®Ó ®¸p øng ®−îc yªu cÇu vÒ dßng ®iÖn
cña b¶ng LED.
VÒ c¸ch thay ®æi néi dung b¶n tin. Ngoµi viÖc giao tiÕp víi m¸y tÝnh, ta më réng
thªm phÇn giao tiÐp víi bµn phÝm m¸y tÝnh th«ng qua c¸c giao tiÕp chuÈn nh− PS/2
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
hay USB. Ngoµi ra ta cã thÓ giao tiÕp víi bµn phÝm hång ngo¹i, nh− vËy sÏ tiÖn dông
h¬n trong viÖc thay ®æi b¶n tin mµ kh«ng cÇn th¸o b¶ng hiÓn thÞ xuèng. −u viªt h¬n ta
cã thÓ g¾n thªm mét modem truyÒn nhËn sè liÖu ®Ò nhËn vµ gi¶i m· b¶n tin tõ ®iÖn
tho¹i di ®éng. Nh− vËy viÖc thay ®æi néi dung b¶n tin cña b¶ng hiÓn thÞ lóc nµy hoµn
toµn kh«ng phô thuéc vµo vÞ trÝ cña b¶ng tin vµ kho¶ng c¸ch ®Õn níi ®Æt b¶ng tin. TÊt
nhiªn viÖc thªm nh−ng khèi giao tiÕp kh¸c ®i ®«i víi viÖc gi¸ thµnh cña b¶ng m¹ch sÏ
t¨ng lªn. VÇn ®Ò nµy ta cÇn c©n nh¾c cho tõng tr−êng hîp cô thÓ.
Thay mÆt nhãm, em xin ch©n thµnh c¶m ¬n ®Õn c¸c thÇy c« gi¸o. Chóng em
ch©n thµnh c¶m ¬n thÇy NGUYÔN NAM QU¢N lµ gi¶ng viªn trùc tiÕp gi¶ng d¹y
chóng em, ®· cho nh÷ng gîi ý quý b¸u vÒ ®Ò tµi. Chóng em ch©n thµnh c¶m ¬n thÇy
PH¹M NGäC NAM, gi¶ng viªn m«n Kü ThuËt Vi Xö Lý, ®· cã nh÷ng nhËn xÐt vÒ
thiÕu xãt, nh÷ng ®iÓm ch−a ®−îc cña s¶n phÈm, lµm cho s¶n phÈm ®−îc hoµn thiÖn.
Còng ch©n thµnh c¶m ¬n c¸c b¹n trong líp, gi¶ng ®−êng 7, 8. Nh÷ng kinh nghiÖm,
nh÷ng bæ sung cña c¸c b¹n ®· gióp t«i hoµn thµnh ®Ò tµi “thiÕt kÕ m¹ch
quang b¸o dïng Vi §iÒu KhiÓn”
Xin ch©n thµnh c¶m ¬n!
Sinh viªn
NguyÔn ChÝ Linh
§å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¶ng viªn: NguyÔn Nam Qu©n
Sinh viªn: NguyÔn ChÝ Linh – DT8 K47 - DHBKHN
Tµi liÖu tham kh¶o
I. Tµi liÖu tiÕng viÖt
- CÊu tróc vµ hä Vi §iÒu KhiÓn 8051 - T¸c gi¶ NguyÔn T¨ng C−êng
- Hä Vi §iÒu KhiÓn 8051 - T¸c gi¶ Tèng V¨n On
- C¸c bµi viÕt trªn c¸c diÔn ®µn ®iÖn tö
- §iÔn ®µn http://dientuvietnam.net
+ Môc “KiÕn thøc chung vÒ Vi §iÒu KhiÓn“ – T×m hiÓu vÇ m¹ch quang
b¸o
+ Môc “Vi §iÒu KhiÓn PIC” – LED matrix Display
+ C¸c bµi viÕt vÒ Vi §iÒu KhiÓn PIC vµ c¸ch lËp tr×nh
+ Bµi viÕt vÒ c¸ch thøc giao tiÕp víi m¸y tÝnh
- DiÔn ®µn http://picvietnam.com
- Tµi liÖu sö dông CCS TiÕng ViÖt - T¸c gi¶ TrÇn Xu©n Tr−êng
SV K2001 - §HBK HCM
VI. Tµi liÖu TiÕng Anh
- PIC Mid-range Reference Manual - MicroChip,
Inc(www.microchip.com)
- Datasheet PIC16F87-88 - MicroChip, Inc
- Serial Port Complete (RS232) - Jan Axelson
- Using AVR to display on LED dotmatrix sign board
(http://home.wanadoo.nl/electro1/avr/dotmatrix.htm)
- PIC Circuits Gallery (http://www.interq.or.jp/japan/se-inoue/)
- Datasheet cña ICs 74HC154 vµ 74HC595 - www.alldatasheet.com
- Datasheet of MAX 232 - www.maxim-ic.com
- C¸c tµi liÖu trªn ®−îc t×m kiÕm th«ng qua trang web cña GOOGLE –
www.google.com.vn