Câu hỏi và bài tập chương 7
Câu 1: Thiết kế một xe tự hành ( Robốt đơn giản ) sử dụng vi điều khiển họ 8051.
Yêu cầu:
+ Xe tự hành theo một vạch trắng dán sẵn.
+ Khi gặp vật cản xe tự động quay đầu.
Câu 1: Thiết kế bộ đo nhiệt độ phòng với dải đo từ 0 độ C đến 70 độ Csử dụng vi điều khiển họ 8051.
Yêu cầu:
+ Hiển thị nhiệt độ trong phòng trên led 7 đoạn.
+ Tạo 1 giao diện trên máy tính để hiển thị nhiệt độ đọc được từ vi điều khiển thông qua chuẩn RS232 của máy tính.
+ Cảm biến nhiệt độ sử dụng LM335.
Câu 3: Thiết kế bộ đo nhiệt độ phòng với dải đo từ 0 độ C đến 70 độ Csử dụng vi điều khiển họ 8051.
Yêu cầu:
+ Hiển thị nhiệt độ trong phòng trên led 7 đoạn.
+ Nếu nhiệt độ trong phòng <150 thì bật lò sưởi.
+ Nếu nhiệt độ trong phòng >250 thì bật quạt.
Câu 4: Thiết kế mạch tự động báo tiết học trong trường ĐHSPKT Nam Định sử dụng vi điều khiển họ 8051.
Yêu cầu:
+ Lịch báo giờ theo lịch mới của trường.
+ Hiển thị giờ, phút trên led 7 thanh
+ Khi mất điện không bị mất dữ liệu.
+ Tín hiệu báo giờ học bằng mạch KĐCS âm tần.
210 trang |
Chia sẻ: Tiểu Khải Minh | Ngày: 19/02/2024 | Lượt xem: 147 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tập bài giảng Vi xử lý 1, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
iÖu tõ m¸y tÝnh ra giao diÖn RS232 vµ ngîc l¹i
ph¶i qua bé chuyÓn møc tÝn hiÖu. Sö dông vi m¹ch MAX232, hay MAX233 cã s¬ ®å
ch©n nh sau:
H×nh 6.18 Vi m¹ch MAX232
TËp bµi gi¶ng Vi xö lý1
163
- C¸c ®Æc tÝnh kü thuËt cña cæng nèi tiÕp
b. §Þa chØ cæng vµ tèc ®é truyÒn cña cæng nèi tiÕp.
- §Þa chØ cæng vµ yªu cÇu ng¾t.
Giao diÖn §Þa chØ c¬ së Yªu cÇu ng¾t
COM 1 3F8H IRQ4
COM 2 2F8H IRQ3
COM 3 3E8H IRQ4
COM 4 2E8H IRQ3
- Tèc ®é truyÒn vµ c¸c sè chia t¬ng øng cña giao diÖn tuÇn tù.
Tèc ®é ( baud) Sè chia ( D) Gi¸ trÞ sè chia cao ( H) Gi¸ trÞ sè chia thÊp ( L )
50 2304 09 00
300 384 01 80
600 192 00 C0
2400 48 00 30
4800 24 00 18
9600 12 00 0C
19200 6 00 06
38400 3 00 03
57600 2 00 02
115200 1 00 01
B¶ng 6.6 Tèc ®é truyÒn cña cæng nèi tiÕp
c. Ph¬ng ph¸p truyÒn.
Ph¬ng ph¸p truyÒn tõ m¸y tÝnh ra thiÕt bÞ ngo¹i vi.
Cã ba ph¬ng ph¸p:
TruyÒn mét chiÒu ( Simplex) : d÷ liÖu chØ ®îc truyÒn theo mét chiÒu :Tõ m¸y
tÝnh ra hoÆc vµo m¸y tÝnh. Trong trêng hîp thø nhÊt d÷ liÖu ®îc truyÒn ra qua ®êng
TD,®êng RD kh«ng ®îc nèi. ThiÕt bÞ ngo¹i vi kh«ng sö dông ®êng RTS. tÝn hiÖu
DCD lu«n ë tr¹ng th¸i kh«ng tÝch cùc v× thiÕt bÞ ngo¹i vi chØ nhËn d÷ liÖu. TÝn hiÖu
DSR lu«n tÝch cùc.
TËp bµi gi¶ng Vi xö lý1
164
TruyÒn hai chiÒu riªng biÖt ( haft duplex) : truyÒn hai chiÒu riªng biÖt gi÷a m¸y tÝnh
vµ thiÕt bÞ ngo¹i vi. Trong trêng hîp nµy chØ TD hoÆc TR lµm viÖc trong mét thêi ®iÓm.
TÝn hiÖu b¾t tay RTS vµ CTS ®îc sö dông. NÕu m¸y tÝnh muèn truyÒn d÷ liÖu, nã ®a tÝn
hiÖu RT lªn tr¹ng th¸i tÝch cùc vµ ®îi tÝn hiÖu ngo¹i vi tr¶ lêi qua tÝn hiÖu CTS. NÕu thiÕt bÞ
ngo¹i vi muèn truyÒn d÷ liÖu, nã ®a tÝn hiÖu DCD vÒ m¸y tÝnh. DSR kh«ng ®îc dïng ®Õn.
M¸y tÝnh b¸o s½n sµng nhËn d÷ liÖu qua DTR vµ cho phÐp hay cÊm thiÕt bÞ ngo¹i vi ( M¸y
tÝnh lu«n ®¶m nhiÖm vai trß chñ trong khi trao ®æi d÷ liÖu). Híng truyÒn d÷ liÖu ®îc thay
®æi b»ng c¸ch thay ®æi hai tÝn hiÖu RTS vµ CTS. TÝn hiÑu RI rÊt quan träng trong biªn b¶n
truyÒn nµy, qua RI thiÕt bÞ ngo¹i vi b¸o mét thiÕt bÞ kh¸c ®ang t×m c¸ch kÕt nèi víi m¸y tÝnh
qua thiÕt bÞ ngo¹i vi dang ho¹t ®éng ( Modem).
TruyÒn hai chiÒu cïng mét lóc ( Full Duplex) : D÷ liÖu ®îc truyÒn theo c¶ hai
chiÒu cïng mét lóc. Trong trêng hîp nµy, m¸y tÝnh vµ thiÕt bÞ ngo¹i vi ®¶m nhiÖm
chøc n¨ng m¸y ph¸t vµ m¸y nhËn cïng mét lóc. TÝn hiÖu RTS vµ CTS lóc nµy kh«ng
cã ý nghÜa. DTR ®¶m nhiÖm viÖc chuyÓn m¹ch.
d. Khung d÷ liÖu nèi tiÕp.
- Khung cña d÷ liÖu d¹ng TTL.
- Khung d÷ liÖu truyÒn ®i.(VÝ dô truyÒn ®i ch÷ A ®· chuyÓn sang chuÈn RS232 ).
H×nh 6.19 Khung d÷ liÖu truyÒn nèi tiÕp.
2. TruyÒn th«ng nèi tiÕp ë V§K 8051.
a. Tèc ®é baud trong 8051.
8051 truyÒn vµ nhËn d÷ liÖu nèi tiÕp theo nhiÒu tèc ®é kh¸c nhau. Tèc ®é truyÒn
cña nã cã thÓ lËp tr×nh ®îc. §iÒu nµy thùc hiÖn nhê sù trî gióp cña bé ®Þnh thêi
Timer1. Tríc khi ta ®i vµo bµn c¸ch lµm ®iÒu ®ã nh thÕ nµo th× ta sÏ xÐt quan hÖ
gi÷a tÇn sè th¹ch anh vµ tèc ®é baud trong 8051.
Nh ta ®· nãi ë ch¬ng tríc ®©y th× 8051 chia tÇn sè th¹ch anh cho 12 ®Ó lÊy
tÇn sè chu tr×nh m¸y. Trong trêng hîp XTAL = 11.0592MHz th× tÇn sè chu tr×nh lµ
TËp bµi gi¶ng Vi xö lý1
165
SM0 SCON.7 Sè x¸c ®Þnh chÕ ®é lµm viÖc cæng nèi tiÕp SM1 SCON.6 Sè x¸c ®Þnh chÕ ®é lµm viÖc cæng nèi tiÕp SM2 SCON.5 Dïng cho truyÒn th«ng gi÷a c¸c bé vi xö lý (SM2 = 0) REN SCON.4 BËt/xo¸ b»ng phÇn mÒm ®Ó cho phÐp/ kh«ng cho thu TB8 SCON.3 Kh«ng sö dông réng r·i RB8 SCON.2 Kh«ng sö dông réng r·i T1 SCON.1 Cê ng¾t truyÒn ®Æt b»ng phÇn cøng khi b¾t ®Çu bÝt Stop ë chÕ ®é 1. R1 SCON.0 Cê ng¾t thu. Xo¸ b»ng phÇn mÒm.
921.6kHz (11.0592MHz : 12 = 921.6kHz). M¹ch ®iÖn UART truyÒn th«ng nèi tiÕp cña
8051 l¹i chia tÇn sè chu tr×nh m¸y cho 32 mét lÇn n÷a tríc khi nã ®îc dïng bëi bé
®Þnh thêi gian Timer1 ®Ó t¹o ra tèc ®é baud. Do vËy, 921.6kHz : 32 = 28.800Hz. §©y
lµ sè ta sÏ dïng trong c¶ phÇn nµy ®Ó t×m gi¸ trÞ cña Timer1 ®Ó ®Æt tèc ®é baud. Muèn
Timer1 ®Æt tèc ®é baud th× nã ph¶i ®îc lËp tr×nh vÒ chÕ ®é lµm viÖc mode2, ®ã lµ chÕ
®é thanh ghi 8 bÝt tù ®éng n¹p l¹i. §Ó cã tèc ®é baud t¬ng thÝch víi PC ta ph¶i n¹p
TH1 theo c¸c gi¸ trÞ cho trong b¶ngsau:
Tèc ®é baud TH1 (thËp ph©n) TH1 (sè Hex)
9600
4800
2400
1200
- 3
- 6
- 12
- 24
FD
FA
F4
F8
B¶ng 6.7 Tèc ®é baud cña 8051
b. Thanh ghi SBUF.
SBUF lµ thanh ghi 8 bÝt ®îc dïng riªng cho truyÒn th«ng nèi tiÕp trong 8051. §èi
víi mét byte d÷ liÖu cÇn ph¶i ®îc truyÒn qua ®êng TxD th× nã ph¶i ®îc ®Æt trong thanh
ghi SBUF. T¬ng tù nh vËy SBUF gi÷ mét byte d÷ liÖu khi nã ®îc nhËn bë ®êng RxD
cña 8051. SBUF cã thÓ ®îc truy cËp bëi mäi thanh ghi bÊt kú trong 8051.
Khi mét byte ®îc ghi vµo thanh ghi SBUF nã ®îc ®ãng khung víi c¸c bÝt
Start vµ Stop vµ ®êng truyÒn nèi tiÕp quan ch©n TxD. T¬ng tù nh vËy, khi c¸c bÝt
®îc nhËn nèi tiÕp tõ RxD th× 8051 më khung nã ®Ó lo¹i trõ c¸c bÝt Start vµ Stop ®Ó lÊy
ra mét byte tõ d÷ liÖu nhËn ®îc vµ ®Æt nã vµo thanh ghi SBUF.
c. Thanh ghi ®iÒu khiÓn nèi tiÕp SCON.
- Thanh ghi SCON lµ thanh ghi 8 bÝt ®îc dïng ®Ó lËp tr×nh viÖc ®ãng khung bÝt
b¾t ®Çu Start, bÝt dõng Stop vµ c¸c bÝt d÷ liÖu cïng víi viÖc kh¸c.
- Díi ®©y lµ m« t¶ c¸c bÝt kh¸c nhau cña SCON:
B¶ng 6.8 B¶ng m« t¶ c¸c bit cña thanh ghi SCON
SM0 SM1 SM2 REN TB8 RB8 Ti Ri
TËp bµi gi¶ng Vi xö lý1
166
- Chøc n¨ng c¸c bit.
C¸c bÝt SM0, SM1.
§©y lµ c¸c bÝt D7 vµ D6 cña thanh ghi SCON. Chóng ®îc dïng ®Ó x¸c ®Þnh
chÕ ®é ®ãng khung d÷ liÖu b»ng c¸ch x¸c ®Þnh sè bÝt cña mét ký tù vµ c¸c bÝt Start vµ
Stop. C¸c tæ hîp cña chóng lµ:
SM0 SM1
0 0 ChÕ ®é nèi tiÕp 0
0 1 ChÕ ®é nèi tiÕp 1, 8 bÝt d÷ liÖu, Start, Stop
1 0 ChÕ ®é nèi tiÕp 2
1 1 ChÕ ®é nèi tiÕp 3
Trong bèn chÕ ®é ta chØ quan t©m ®Õn chÕ ®é 1, c¸c chÕ ®é kh¸c ®îc gi¶i thÝch
ë Appendisk A3. Trong thanh ghi SCON khi chÕ ®é 1 ®îc chän th× d÷ liÖu ®îc ®ãng
khung gåm 8 bÝt d÷ liÖu, 1 bÝt Start, 1 bÝt Stop ®Ó t¬ng thÝch víi cæng COM cña IBM
PC vµ c¸c PC t¬ng thÝch kh¸c. Quan träng h¬n lµ chÕ ®é nèi tiÕp 1 cho phÐp tèc ®é
baud thay ®æi vµ ®îc thiÕt lËp bëi Timer1 cña 8051. Trong chÕ ®é nèi tiÕp 1 th× mçi
ký tù gåm cã 10 bÝt ®îc truyÒn trong ®ã cã bÝt ®Çu lµ bÝt Start, sau ®ã lµ 8 bÝt d÷ liÖu
vµ cuèi cïng lµ bÝt Stop.
BÝt SM2.
BÝt SM2 lµ bÝt D5 cña thanh ghi SCON. BÝt nµy cho phÐp kh¶ n¨ng ®a xö lý cña
8051 vµ nã n»m ngoµi ph¹m vi tr×nh bµy cña ch¬ng nµy. §èi víi c¸c øng dông cña
chóng ta ®Æt SM2 = 0 v× ta kh«ng sö dông 8051 trong m«i trêng ®a xö lý.
BÝt REN
§©y lµ bÝt cho phÐp thu (Receive Enable), bÝt D4 cña thanh ghi SCON. BÝt REN còng
®îc tham chiÕu nh lµ SCON.4 v× SCON lµ thanh ghi cã thÓ ®¸nh ®Þa chØ theo bÝt. Khi bÝt
REN cao th× nã cho phÐp 8051 thu d÷ liÖu trªn ch©n RxD cña nã. Vµ kÕt qu¶ lµ nÕu ta muèn
8051 võa truyÒn vµ nhËn d÷ liÖu th× bÝt REN ph¶i ®îc ®Æt lªn 1. Khi ®Æt REN th× bé thu bÞ
cÊm. ViÖc ®Æt REN = 1 hay REN = 0 cã thÓ ®¹t ®îc b»ng lÖnh “SETB SCON.4” vµ “CLR
SCON.4” t¬ng øng. Lu ý r»ng c¸c lÖnh nµy sö dông ®Æc ®iÓm ®¸nh ®Þa chØ theo bÝt cña
thanh ghi SCON. BÝt nµy cã thÓ ®îc dïng ®Ó khèng chÕ mäi viÖc nhËn d÷ liÖu nèi tiÕp vµ nã
lµ bÝt cùc kú quan träng trong thanh ghi SCON.
BÝt TB8 vµ RB8.
BÝt TB8 lµ bÝt SCON.3 hay lµ bÝt D3 cña thanh ghi SCON. Nã ®îc dïng ®Ó cho chÕ
®é nèi tiÕp 2 vµ 3. Ta ®Æt TB8 v× nã kh«ng ®îc sö dông trong c¸c øng dông cña m×nh.
BÝt RB8 (bÝt thu 8) lµ bÝt D2 cña thanh ghi SCON. Trong chÕ ®é nèi tiÕp 1 th×
bÝt nµy nhËn mét b¶n sao cña bÝt Stop khi mét d÷ liÖu 8 bÝt ®îc nhËn. BÝt nµy còng
nh bÝt TB8 rÊt hiÕm khi ®îc sö dông. Trong c¸c øng dông cña m×nh ta ®Æt RB8 = 0
v× nã ®îc sö dông cho chÕ ®é nèi tiÕp 2 vµ 3.
TËp bµi gi¶ng Vi xö lý1
167
C¸c bÝt TI vµ RI.
C¸c bÝt ng¾t truyÒn TI vµ ng¾t thu RI lµ c¸c bÝt D1 vµ D0 cña thanh ghi SCON. C¸c
bÝt nµy lµ cùc kú quan träng cña thanh ghi SCON. Khi 8051 kÕt thóc truyÒn mét ký tù 8
bÝt th× nã bËt TI ®Ó b¸o r»ng nã s½n sµng truyÒn mét byte kh¸c. BÝt TI ®îc bËt lªn tríc
bÝt Stop. Cßn khi 8051 nhËn ®îc d÷ liÖu nèi tiÕp qua ch©n RxD vµ nã t¸ch c¸c bÝt Start vµ
Stop ®Ó lÊy ra 8 bÝt d÷ liÖu ®Ó ®Æt vµo SBUF, sau khi hoµn tÊt nã bËt cê RI ®Ó b¸o r»ng nã
®· nhËn xong mét byte vµ cÇn ph¶i lÊy ®i kÎo nã bÞ mÊt cê RI ®îc bËt khi ®ang t¸ch bÝt
Stop. Trong c¸c vÝ dô díi ®©y sÏ nãi vÒ vai trß cña c¸c bÝt TI vµ RI.
6.8.3. LËp tr×nh cho vi ®iÒu khiÓn trao ®æi d÷ liÖu nèi tiÕp víi PC.
1. S¬ ®å giao tiÕp V§K víi m¸y tÝnh truyÒn th«ng qua cæng COM ( Serial Port ).
Ta ph¶i sö dông vi m¹ch chuyÓn ®æi MAX232 ®Ó chuyÓn thµnh vµo ra TTL cho
c¸c ch©n RD vµ TD v× vi ®iÒu khiÓn t¬ng thÝch møc TTL , giao tiÕp víi PC qua hai
ch©n ®ã lµ RXD ( nhËn ) vµ TXD ( ph¸t ).
TD
RD
L8 L7 L6 L5 L4 L3 L2 L1
L1L2L3L4L5L6L7L8
8051 AND PC INTERFACE
162738495
TO PC
CONN-D9F
T1IN11 R1OUT12 T2IN10 R2OUT9
T1OUT 14R1IN 13T2OUT 7R2IN 8
C2+
4
C2-
5
C1+
1
C1-
3
VS+ 2VS- 6
U1
MAX232
C1
1uF
C2
1uF
C3
1uF
C4
1uF
X1CRYSTALXTAL2 18
XTAL1 19
ALE 30EA 31
PSEN 29
RST 9
P0.0/AD039 P0.1/AD138 P0.2/AD237 P0.3/AD336 P0.4/AD435 P0.5/AD534 P0.6/AD633 P0.7/AD732
P1.0 1P1.1 2P1.2 3P1.3 4P1.4 5P1.5 6P1.6 7P1.7 8
P3.0/RXD10 P3.1/TXD11 P3.2/INT012 P3.3/INT113 P3.4/T014
P3.7/RD17 P3.6/WR
16 P3.5/T115
P2.7/A1528
P2.0/A821 P2.1/A922 P2.2/A1023 P2.3/A1124 P2.4/A1225 P2.5/A1326 P2.6/A1427
U2
AT89C51
IN
C51u
R110k
D1LED-RED
R2100
D2LED-RED
R3100
D3LED-RED
R4100
D4LED-RED
R5100
D5LED-RED
R6100
D6LED-RED
R7100
D7LED-RED
R8100
D8LED-RED
R9100
OUT INDICATOR
IN TEST
H×nh 6.20 S¬ ®å m¹ch giao tiÕp cæng Com vµ vi ®iÒu khiÓn
2. VÝ dô:
ViÕt ch¬ng tr×nh cho V§K 8051 nhËn d÷ liÖu nèi tiÕp tõ mét giao diÖn trªn m¸y tÝnh
vµ hiÓn thÞ ký tù nhËn ®îc ra c¸c led ®¬n nèi víi PORT2 biÕt:
- Khung d÷ liÖu cã 10 bÝt: 1 bit start, 8 bit data, 1 bÝt stop.
TËp bµi gi¶ng Vi xö lý1
168
- Tèc ®é truyÒn lµ 1200
- TÇn sè th¹nh anh sö dông lµ 11.0592Mhz.
- TruyÒn th«ng nèi tiÕp qua cæng COM1.
Gi¶i:
Tríc tiªn ta cÇn ph¶i t¹o mét giao diÖn trªn m¸y tÝnh. §Ó t¹o giao diÖn ta cã thÓ sö
dông nhiÒu phÇn mÒm kh¸c nhau nh: Delphi, Visual Basic, C++...
ë ®©y t«i giíi thiÖu t¹o ra giao diÖn trªn Visual Basic.
* T¹o giao diÖn.
- Khëi ®éng Visual Basic më dù ¸n míi
- LÊy Label, Text box, Command button ®Ó t¹o ra giao diÖn nh sau:
H×nh 6.21 Giao diÖn khëi ®éng Visual Basic
- §Ó thay tæi tªn c¸c ®èi tîng trªn giao diÖn ta chän vµo ®èi tîng ®ã sau ®ã
chän caption trong hép tho¹i Properties ë bªn ph¶i cña phÇn mÒm.
- Thay ®æi cí ch÷, Font ch÷ ta chän Font trong Properties.
- §Ó phôc
* ViÕt lÖnh cho c¸c ®èi tîng trªn giao diÖn.
- §Ó viÕt lÖnh cho c¸c ®èi tîng trªn ta nh¸y ®óp chuét vµo ®èi tîng ®ã.
Private Sub Command1_Click()
'su kien khi nhan nut truyen
TËp bµi gi¶ng Vi xö lý1
169
MSComm1.Output = Text1.Text 'gui gia tri tai text1 ra cong com
End Sub
Private Sub Command2_Click()
'su kien khi nhan nut thoat
MSComm1.PortOpen = False 'dong cong com
End 'ket thuc chuong trinh
End Sub
Private Sub Form_Load()
' Su kien khi load form
MSComm1.CommPort = 1 'chon cong com 1
MSComm1.Settings = "1200,n,8,1" 'chon toc do truyen la 1200, khong kiem tra chan
le
‘ mot bit dung
MSComm1.PortOpen = True 'chon mo cong
Text1.Text = "" 'gan text1 bang mot khoang trang
End Sub
- Sau ®ã ta chän File/Make project1.exe la cã ®îc mét file ch¹y nh sau:
* ViÕt ch¬ng tr×nh cho V§K.
;chuong trinh viet cho VDK 8051 nhan du lieu noi tiep tu may tinh
;va gui ra cac led don noi voi port2
;tan so thanh anh su dung la 11.0592
;khung du lieu la: 1200,n,8,1
;chuong trinh su dung ngat noi tiep de nhan
;--------------------------------------------------------
org 0
jmp start
;--- khai bao dia chi vec to ngat noi tiep
org 23h
TËp bµi gi¶ng Vi xö lý1
170
mov a,sbuf ;doc du lieu tu bo dm noi tiep vao A
mov p2,a ;dua A ra port2
clr ri ;xoa co nhan
reti
;--------------------------------------------------------
start:
mov ie,#10010000b ;cho phep ngat noi tiep
mov scon,#01010000b ;du lieu noi tiep 8bit UART va cho phep nhan
mov tmod,#00100000b ;chon timer1 mode 8 bit tu dong nap lai
mov th1,#0e8h ;to do la 1200 voi crystal=11.0592Mhz
setb tr1 ;khoi dong timer1
mov p2,#0 ;tat led
jmp $ ;dung tai cho
end
Lóc nµy ta n¹p ch¬ng tr×nh cho V§K vµ kÕt nèi víi m¸y tÝnh ®Ó ch¹y thö nghiÖm.
Khi ta truyÒn mét ký tù nµo ®ã th× trªn c¸c led ®¬n nèi víi Port 2 sÏ cã m· ASCII cña
ký tù ®ã.
C©u hái vµ bµi tËp ch¬ng 6
Bµi tËp 1: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 8 led ®¬n nèi víi Port 1 cã
mét ®iÓm s¸ng ch¹y.
Bµi tËp 2: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 8 led ®¬n nèi víi Port 3
s¸ng dÇn t¾t dÇn.
Bµi tËp 3: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 8 led ®¬n nèi víi Port 3
s¸ng dÇn t¾t dÇn 5 lÇn råi dõng l¹i.
Bµi tËp 4: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 16 led ®¬n nèi víi Port 2 vµ
Port 3 s¸ng dÇn t¾t dÇn.
Bµi tËp 5: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn 8 led ®¬n nèi víi Port 2
thùc hiÖn theo yªu cÇu sau:
+ S¸ng dÇn t¾t dÇn 2 lÇn
+ Cã mét ®iÓm s¸ng ch¹y 5 lÇn
+ Chíp t¾t 20 lÇn sau ®ã lÆp l¹i tõ ®Çu.
Bµi tËp 6: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn mét trß ch¬i ®¬n gi¶n cho 5
ngêi ch¬i lµ: A,B,C,D,E vµ mét ngêi dÉn ch¬ng tr×nh lµ: MC thùc hiÖn theo yªu
cÇu sau:
TËp bµi gi¶ng Vi xö lý1
171
+ Khi mét trong 5 thÝ sinh nhÊn phÝm tr¶ lêi c©u hái th× ®Ìn b¸o cña thÝ sinh ®ã
s¸ng lªn vµ chu«ng kªu ®ång thêi c¸c thÝ sinh cßn l¹i bÞ mÊt quyÒn.
+ ChØ cã ngêi dÉn ch¬ng tr×nh míi cã quyÒn x¸c lËp l¹i tõ ®Çu ( t¾t ®Ìn vµ
chu«ng ).
Bµi tËp 7: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®iÒu khiÓn c¸c led ®¬n nèi víi Port 2
thùc hiÖn theo yªu cÇu sau:
+ Khi ch©n P1.0=0 c¸c led nèi víi Port 2 chíp t¾t
+ Khi P1.0=1 c¸c led nèi víi Port 2 s¸ng dÇn t¾t dÇn.
Bµi tËp 8: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®Õm xung ngoµi tõ 10-60 sö dông bé
®Õm 0 ( T0) , hiÓn thÞ gi¸ trÞ sè ®Õm trªn led 7 ®o¹n. BiÕt Port0 nèi víi c¸c ®o¹n
a,b,c..h cña led 7 ®o¹n, Port 2 quÐt led.
Bµi tËp 9: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®Õm xung ngoµi tõ 0-245 sö dông bé
®Õm 0 ( T0) , hiÓn thÞ gi¸ trÞ sè ®Õm trªn led 7 ®o¹n. BiÕt Port0 nèi víi c¸c ®o¹n
a,b,c..h cña led 7 ®o¹n, Port 2 quÐt led.
Bµi tËp 10: ViÕt ch¬ng tr×nh cho V§K hä 8051 ®Õm xung ngoµi tõ 0-65 sö dông bé
®Õm 1 ( T1) , hiÓn thÞ gi¸ trÞ sè ®Õm trªn led 7 ®o¹n. BiÕt Port0 nèi víi c¸c ®o¹n
a,b,c..h cña led 7 ®o¹n, Port 2 quÐt led.
Bµi tËp 11: ViÕt ch¬ng tr×nh cho vi ®iÒu khiÓn 8051 ®iÒu khiÓn ®Ìn giao th«ng t¹i
mét ng· t gåm 3 ®Ìn xanh, ®á, vµng theo thêi gian nh sau: §Ìn ®á: 20 gi©y, ®Ìn
xanh 16 gi©y. BiÕt tÇn sè th¹ch anh sö dông lµ 12MHZ.
Bµi tËp 12: ViÕt ch¬ng tr×nh cho vi ®iÒu khiÓn 8051 tÝnh thêi gian cña 1 phót ( 0 - 59
gi©y ) sö dông ng¾t timer1, hiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung.
BiÕt tÇn sè th¹ch anh sö dông lµ 12Mhz
Port 0 nèi víi c¸c ®o¹n a,b,.......g
P2.0, P2.1 chän led
Bµi tËp 13: ViÕt ch¬ng tr×nh cho vi ®iÒu khiÓn 8051 tÝnh thêi gian phót, gi©y sö dông
ng¾t timer0, hiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung..
BiÕt tÇn sè th¹ch anh sö dông lµ 12Mhz
Port 0 nèi víi c¸c ®o¹n a,b,.......g
P2.0, P2.1 chän led
Bµi tËp 14: ViÕt ch¬ng tr×nh cho vi ®iÒu khiÓn 8051 tÝnh thêi gian giê, phót, gi©y sö
dông ng¾t timer0, hiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung..
BiÕt tÇn sè th¹ch anh sö dông lµ 11,0592Mhz
Port 0 nèi víi c¸c ®o¹n a,b,.......g
P2.0, P2.1 chän led
Bµi tËp 15: ViÕt ch¬ng tr×nh cho vi ®iÒu khiÓn 8051 ®Õm xung ngoµi tõ 0- 55 sö dông
ng¾t ngoµi 1 ( INT1).HiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung.
TËp bµi gi¶ng Vi xö lý1
172
Port 0 nèi víi c¸c ®o¹n a,b,.......g
P2.0, P2.1 chän led
Bµi tËp 16: ViÕt ch¬ng tr×nh cho vi ®iÒu khiÓn 8051 ®Õm xung ngoµi tõ 25- 0 sö dông
ng¾t ngoµi 0 ( INT0).HiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung.
Port 0 nèi víi c¸c ®o¹n a,b,.......g
P2.0, P2.1 chän led
Bµi tËp 17: ViÕt ch¬ng tr×nh cho vi ®iÒu khiÓn 8051 LËp ®Õm xung ngoµi tõ 0- 125 sö
dông ng¾t ngoµi 1 ( INT1).HiÓn thÞ thêi gian trªn led 7 ®o¹n anèt chung.
Port 0 nèi víi c¸c ®o¹n a,b,.......g
P2.0, P2.1 chän led
TËp bµi gi¶ng Vi xö lý1
173
CH¦¥NG 7: ThiÕt kÕ hÖ vi xö lý chuyªn dông
7.1 Quy trình thiÕt kÕ hÖ vi xö lý chuyªn dông
7.1.1 Quy trình phát triển hệ thống
Các hệ vi xử lý chuyên dụng có chức năng chuyên biệt và ít thay đổi trong suốt
thời gian tồn tại. Một hệ vi xử lý chuyên dụng thường bao gồm phần cứng và phần
mềm. Yêu cầu đối với hệ vi xử lý chuyên dụng là độ tin cậy cao, hoạt động ổn định.
Hệ thống xây dựng nhằm đáp ứng một hoặc một vài nhiệm vụ chuyên biệt nên người
thiết kế có thể tối ưu về kích thước, tốc độ và giá thành sản xuất.
Quy trình phát triển một hệ vi xử lý chuyên dụng bao gồm một số giai đoạn: phân tích
yêu cầu và xây dựng sơ đồ khối hệ thống, thiết kế phần cứng và phần mềm, thực thi hệ
thống. Trong mỗi giai đoạn bao gồm một số bước, các bước này được thực hiện tạo ra
các tài liệu cụ thể cung cấp sự hiểu biết về hệ thống.
7.1.2 Phân tích yêu cầu và xây dựng sơ đồ khối hệ thống
Giai đoạn phân tích cần trả lời các câu hỏi hệ thống làm gì? hệ thống sẽ được
sử dụng khi nào? ở đâu? ai sẽ sử dụng hệ thống? Trong giai đoạn này cần nghiên cứu
các hệ thống sẵn có, chỉ ra ưu nhược điểm của từng hệ thống, xác định các tính năng
cần cải thiện. Việc phân tích dẫn đến phát triển khái niệm về hệ thống mới. Khái niệm
này được sử dụng để xây dựng một tập hợp các mô hình đánh giá, đề xuất mô hình hệ
thống. Các đầu vào, đầu ra và giao diện người máy của hệ thống, các thao tác xử lý dữ
liệu cần được xác định.
7.1.3 Thiết kế phần cứng và phần mềm
Giai đoạn này quyết định hệ thống sẽ hoạt động thế nào, phần cứng đảm nhận
chức năng gì, phần mềm đảm nhận chức năng gì, số lượng các modul, giao diện người
sử dụng.
Phần cứng đảm nhận những công việc không thể thay thế được bằng phần mềm
như bộ nhớ, phối ghép thiết bị vào/ra v.v hoặc một số chức năng của phần mềm mà
việc sử dụng phần cứng sẽ cải thiện được tính năng nào đó ví dụ như tốc độ của hệ
thống.
Phần mềm đảm nhận các chức năng còn lại của hệ thống, thực hiện các thao tác
xử lý dữ liệu, ra quyết định. Phần mềm làm cho hệ thống trở nên linh hoạt, dễ dàng
thích ứng được với những thay đổi của điều kiện làm việc.
Trong giai đoạn này cần trả lời các câu hỏi như: dữ liệu gì sẽ được lưu trữ và lưu trữ ở
đâu? CPU cần tốc độ thực hiện nhanh hay chậm? Bộ nhớ cần có độ lớn bằng bao
TËp bµi gi¶ng Vi xö lý1
174
nhiêu cho chương trình và dữ liệu? Lựa chọn các linh kiện nào? Các linh kiện được
ghép nối với nhau thế nào?
Thiết kế chương trình: chương trình gì cần được viết và chúng sẽ làm gì? Vẽ
lưu đồ giải thuật tổng quát cho toàn bộ hoạt động của hệ thống. Tiếp đó vẽ lưu đồ giải
thuật cho các modul chức năng nhằm cụ thể hóa các trình tự thao tác của hệ thống,
viết chương trình nguồn.
7.1.4 Thực thi hệ thống và kiểm thử
Trong giai đoạn này, hệ thống được phát triển. Giai đoạn này thường dài nhất
và là phần đắt đỏ nhất. Hệ thống được xây dựng và kiểm tra để đảm bảo rằng nó thực
hiện các chức năng như thiết kế. Trong giai đoạn này có thể thay đổi lại các thiết kế
phần cứng và chương trình để hệ thống đạt được tối ưu mục đích ban đầu đã đề ra.
7.2 Thiết kế hệ vi xử lý chuyên dụng sử dụng vi điều khiển 8051
7.2.1 Điều kiện làm việc của vi điều khiển 8051
Để vi điều khiển 8051 hoạt động, cần các điều kiện sau:
Vi điều khiển 8051 hoạt động với nguồn điện áp cấp Vdd=5V, Gnd.
Nguồn dao động: thông thường một thạch anh được kết nối với các chân XTAL
để cung cấp kích thích cho bộ dao động trong vi điều khiển. Tần số thạch anh có dải
tần số trong khoảng từ 0-24 MHz. Phụ thuộc vào tốc độ cần có của hệ thống để lựa
chọn tần số thạch anh phù hợp. Với các hệ thống cần tốc độ nhanh chọn thạch anh có
tần số lớn, tuy nhiên hệ thống sẽ tiêu thụ công suất lớn hơn. Với các hệ thống đòi hỏi
công suất tiêu thụ nhỏ như điều khiển từ xa nên sử dụng thạch anh có tần số thấp để
giảm công suất tiêu thụ. Tần số thạch anh 11.0592MHz thường được sử dụng do cho
tốc độ truyền thông chính xác. Một cặp tụ gốm có trị số từ 10-40 pF được kết nối với 2
chân của thạch anh xuống Gnd.
Chân reset: RESET ở trạng thái cao trong một khoảng thời gian sẽ khởi động lại
vi điều khiển. Khi hoạt động bình thường chân RESET ở mức thấp. Một mạch reset
được kết nối với chân này để thực hiện chức năng reset tự động.
Chân /EA: Nếu sử dụng bộ nhớ ngoài, chân EA được nối Gnd. Nếu sử dụng bộ
nhớ ROM on-chip, chân EA được nối Vdd.
Các đầu vào/ra của vi điều khiển
Các cổng của vi điều khiển 8051 là các chân vào/ra hai chiều. Một chân bất kỳ
của cổng có thể xác lập là chân đầu vào hoặc đầu ra. Để xác lập một chân là đầu vào,
đặt bit tương ứng lên mức 1. Sau việc này, chân tương ứng phản ánh trạng thái mạch
ngoài đưa tới.
TËp bµi gi¶ng Vi xö lý1
175
Một cổng có thể cung cấp dòng điện giới hạn. Nếu dòng tiêu thụ bởi mạch ngoài quá
lớn, chip có thể bị hỏng. Do đó, cần một điện trở hoặc một bộ đệm giới hạn dòng. Mỗi
chân cổng có thể cung cấp điện áp Vcc hoặc Gnd cho mạch ngoài. Khi ở mức điện áp
cao chân cung cấp dòng, khi ở mức điện áp thấp chân tiêu thụ dòng.
Khi reset, các chân vào/ra mặc định ở mức điện áp cao.
7.2.2 Thiết kế mạch hiển thị thời gian thực sử dụng DS12887
Yêu cầu: Thiết kế đồng hồ số hiển thị thời gian thực:
- Hiển thị thời gian: giờ, phút, giây, thứ, ngày, tháng, năm trên các led 7 đoạn
- Hệ thống lưu được thời gian khi mất nguồn
- Có các nút điều chỉnh thời gian:
+ mode: chọn thời gian cần chỉnh
+ up: tăng đơn vị thời gian tương ứng với mode
+ down: giảm đơn vị thời gian tương ứng với mode
Xây dựng sơ đồ khối hệ thống
Hình 7.1 Sơ đồ khối đồng hồ số
a. Chức năng của các khối
Khối nguồn: có nhiệm vụ tạo ra năng lượng cần thiết để cung cấp cho các thành phần
của hệ thống. Các thành phần trong hệ thống đều hoạt động ở nguồn cấp Vcc=+5V.
Khối xử lý trung tâm: thực hiện đọc dữ liệu thời gian từ DS12887, giải mã và hiển
thị. Khối xử lý trung tâm cũng nhận tín hiệu điều khiển từ khối ‘nút nhấn’ để điều
chỉnh thời gian.
TËp bµi gi¶ng Vi xö lý1
176
Khối thời gian thực: Chứa thông tin về thời gian thực, lưu trữ thông tin ngay cả khi
mất nguồn nuôi ngoài.
Khối led 7 đoạn: để hiển thị thời gian bao gồm giây, phút, giờ, thứ, ngày, tháng, năm
cần sử dụng 15 led 7 đoạn.
Khối quét led: Với số lượng led 7 đoạn lớn nên sử dụng phương pháp giải mã động
để hiển thị, sử dụng IC ghi dịch để mở rộng chân cho vi điều khiển đồng thời cung cấp
dòng đủ lớn cấp cho led 7 đoạn.
Khối đệm dữ liệu: đây là khối đệm giao tiếp giữa vi điều khiển và led 7 đoạn. Do
dòng điều khiển của vi điều khiển nhỏ nên không thể giao tiếp trực tiếp với led 7 đoạn,
khối này làm nhiệm vụ khuếch đại dòng cấp cho led 7 đoạn.
Khối nút điều chỉnh: nhận tín hiệu điều chỉnh thời gian của người sử dụng. Khối này
cho phép người dùng lựa chọn đơn vị thời gian cần chỉnh và chỉnh tăng hoặc giảm đơn
vị thời gian đó.
b. Thiết kế phần cứng
Khối xử lý trung tâm: Vi điều khiển AT89C51 của hãng Atmel được lựa chọn làm
khối xử lý trung tâm. Đây là vi điều khiển đáp ứng được các yêu cầu:
- Có số lượng chân vào/ra đủ lớn để giao tiếp với led 7 đoạn và quét led
- Vi điều khiển tích hợp toàn bộ bộ nhớ chương trình, dữ liệu, khối timer và ngắt do
đó đòi hỏi ít các thành phần ngoài để hệ thống hoạt động. Với bộ nhớ ROM on-chip
có dung lượng 4Kbyte hoàn toàn có thể đáp ứng được việc lưu chương trình. Bộ nhớ
RAM 128 byte đủ để lưu dữ liệu và kết quả tính toán.
- Tần số hoạt động đủ lớn, đáp ứng được yêu cầu đọc dữ liệu, xử lý và hiển thị dữ liệu
Hình 7.2 Sơ đồ chân DS12887
TËp bµi gi¶ng Vi xö lý1
177
- Giá thành thấp và dễ mua trên thị trường
Khối thời gian thực: IC thời gian thực DS12887 được lựa chọn do có giao tiếp giống
như một IC nhớ RAM ngoài tích hợp bộ phân kênh, hỗ trợ giao tiếp bus kiểu Intel,
phù hợp với vi điều khiển AT89C51. DS12887 là IC thời gian thực cung cấp thông
tin thời gian giây, giờ, phút, thứ, ngày, tháng, năm (đúng cho đến năm 2100) được sản
xuất bởi hãng Philips. IC vẫn tiếp tục cập nhật thời gian trong trường hợp không có
nguồn ngoài do sử dụng nguồn pin lithium bên trong. Ngoài ra, IC này còn có bộ nhớ
RAM 114 byte có khả năng nhớ dữ liệu ngay cả khi mất nguồn ngoài.
Sơ đồ chân DS12887:
Trong đó:
AD0-AD7: Bus đa hợp địa chỉ/dữ liệu.
NC: Bỏ trống
MOT: Lựa chọn loại Bus
/CS: Ngõ vào lựa chọn chip
AS: chốt địa chỉ
R/W: Ngõ vào đọc ghi
DS: Chốt dữ liệu
RESET: Ngõ vào reset
IRQ: Ngõ ra yêu cầu ngắt
SQW: Ngõ ra sóng vuông
VCC: Nguồn cung cấp +5V
GND: Mass
Chức năng các chân
- GND, Vcc: Các chân cấp nguồn cho IC. Vcc là điện áp ngõ vào +5V. Khi điện
áp +5V (thay đổi trong giới hạn cho phép) được cung cấp, IC được truy cập đầy đủ, dữ
liệu có thể đọc và ghi. Khi Vcc thấp hơn +4.25V, quá trình đọc và ghi bị cấm tuy
nhiên chức năng cập nhật thời gian tự động vẫn được tiếp tục. Khi Vcc thấp hơn +3V,
Ram và bộ giữ thời gian được nuôi bằng nguồn năng lượng lithium bên trong.
- MOT: là chân lựa chọn giữa hai loại bus. Khi MOT được nối Vcc, kiểu bus
Motorola được lựa chọn, khi được nối GND hoặc không nối, kiểu bus Intel được lựa
chọn. Chân có điện trở kéo xuống bên trong có giá trị khoảng 20K.
TËp bµi gi¶ng Vi xö lý1
178
Hình 7.3 Chu kỳ bus quy trình viết bus kiểu intel
Hình 7.4 Chu kỳ bus chu trình đọc bus kiểu intel
- SQW: Chân phát tín hiệu vuông. Tần số của chân SQW có thể thay đổi bằng
cách lập trình các bit RS0÷RS3 trong thanh ghi A. Tín hiệu SQW có thể bật hoặc tắt
bằng cách thay đổi giá trị bit SQWE trong thanh ghi B. Tín hiệu SQW không xuất
hiện khi Vcc thấp hơn 4.25V
TËp bµi gi¶ng Vi xö lý1
179
Bảng 7.1 Bảng lựa chọn tần số tại chân SQW
- AD0-AD7: Bus đa hợp giữa địa chỉ và dữ liệu. Tín hiệu địa chỉ được xuất trong
giai đoạn thứ nhất của chu kỳ bus, tín hiệu dữ liệu được xuất trong giai đoạn thứ hai
của chu kỳ. Tín hiệu địa chỉ trên AD0÷AD7 phải có giá trị ổn định trước khi xuất hiện
tín hiệu chốt địa chỉ là sườn xuống tại chân AS.
Tín hiệu dữ liệu trên AD0÷AD7 phải giữ ổn định trong phần sau của DS hoặc xung
WR. Trong chu kỳ đọc DS12887 ngõ ra 8 bit của dữ liệu ổn định trong phần sau của
DS hoặc xung RD. Chu kỳ đọc được thực hiện xong và bus trở về trạng thái trở kháng
cao cũng như khi DS bắt đầu xuống thấp trong trường hợp kiểu bus Motorola hoặc khi
RD lên cao trong trường hợp kiểu bus Intel.
- AS: chân cấp xung chốt địa chỉ. Sườn xuống của AS làm cho tín hiệu địa chỉ
được chốt lại bên trong của DS12887. Sườn lên tiếp theo trên AS sẽ xoá địa chỉ bất kể
chân /CS có được chọn hay không.
- DS: chân DS/RD có hai kiểu sử dụng tuỳ thuộc vào mức của chân MOT. Khi
chân MOT được nối Vcc, kiểu bus Motorola được lựa chọn. Trong kiểu này DS là
xung dương trong suốt phần sau của chu kỳ bus và được gọi là Data Strobe. Trong
suốt chu kỳ đọc, DS báo hiệu thời gian mà DS12887 được điều khiển bus đôi. Trong
chu kỳ đọc, xung quét của DS là nguyên nhân làm DS12887 chốt dữ liệu được ghi.
Khi chân MOT được nối GND, kiểu bus Intel được lựa chọn. Trong kiểu này, chân DS
được gọi là Read(RD) xác định chu kỳ DS12887 điều khiển bus đọc dữ liệu.
- R/W: có hai cách hoạt động. Khi chân MOT được kết nối Vcc lựa chọn kiểu
bus Motorola, R/W ở chế độ chỉ ra trạng thái hiện tại là chu kỳ đọc hoặc ghi. Chu kỳ
đòi hỏi chân R/W phải ở mức cao khi chân DS ở mức cao. Chu kỳ đòi hỏi chân R/W ở
mức thấp trong suốt quá trình chốt tín hiệu của DS. Khi chân MOT được nối GND cho
TËp bµi gi¶ng Vi xö lý1
180
chế độ bus Intel, tín hiệu R/W là tín hiệu hoạt động mức thấp được gọi là WR. Trong
chế độ này chân R/W được định nghĩa như tín hiệu cho phép ghi.
- CS: chân lựa chọn phải được xác định ở mức thấp của chu kỳ bus để DS12887
được sử dụng. CS phải được giữ trong trạng thái hoạt động trong suốt DS và AS của
chế độ bus Motorola và trong suốt RD và WR của chế độ bus Intel. Chu kỳ bus khi
chọn vị trí mà không chọn CS sẽ chốt địa chỉ nhưng sẽ không có bất kỳ sự truy cập
nào. Khi Vcc thấp hơn +4.25V, DS12887 ngăn chặn sự truy cập từ bên ngoài bằng
cách không cho phép lựa chọn ngõ vào CS. Hành động này nhằm bảo vệ cả dữ liệu
thời gian cũng như dữ liệu Ram trong suốt quá trình mất nguồn.
- IRQ: là ngõ ra hoạt động mức thấp, có thể sử dụng ngõ vào ngắt tới bộ vi xử
lý. Ngõ ra /IRQ ở mức thấp khi bit là nguyên nhân làm ngắt và phù hợp với bit cho
phép ngắt được đặt. Để xoá chân /IRQ chương trình của bộ vi xử lý thông thường
được đặt ở thanh ghi C. Chân Reset cũng bị xoá trong lúc ngắt. Khi không có trạng
thái ngắt nào được sử dụng, trạng thái /IRQ ở mức tổng trở cao. Nhiều thiết bị ngắt có
thể nối tới /IRQ Bus là một ngõ ra mở và yêu cầu một điện trở kéo lên bên ngoài.
- RESET: không có làm thay đổi việc xác lập realtime cũng như thông tin thời
gian thực và dữ liệu lưu trong RAM. Ở chế độ cấp nguồn, chân reset có thể bị kéo
xuống trong một khoảng thời gian để ổn định nguồn cung cấp.
Tổ chức địa chỉ các ô nhớ của DS12887
Các ô nhớ chứa thông tin về thời gian và các thanh ghi điều khiển nằm tại 14 địa chỉ
đầu tiên từ 0-13. Các địa chỉ từ 14-127 bao gồm 114 byte là các ô nhớ RAM.
Hình 7.5 Địa chỉ các ô nhớ trong DS12887
TËp bµi gi¶ng Vi xö lý1
181
Bảng 7.2 Vị trí các ô nhớ, chức năng và định dạng dữ liệu
Các thanh ghi điều khiển:
Thanh ghi A
UIP - Update In Progress là bit trạng thái. Khi bit UIP ở mức 1, quá trình cập
nhật thời gian sẽ sớm xảy ra. Khi bit UIP ở mức 0, quá trình cập nhật thời gian sẽ
không xảy ra ít nhất là 244 s. Những thông tin về thời gian, lịch, báo giờ ở trong
RAM sẵn sàng cho việc truy cập khi bit UIP ở mức 0. Bit UIP là bit chỉ đọc và không
bị ảnh hưởng của chân /RESET. Khi ghi vào bit SET trong thanh ghi B giá trị 1 sẽ
ngăn chặn mọi quá trình cập nhật thời gian và xoá bit trạng thái UIP.
DV2, DV1, DV0: là 3 bit trên được sử dụng để bật hoặc tắt bộ dao động và cài
đặt lại quá trình đếm xuống. Khi được đặt bằng 010, đó là sự kết hợp duy nhất để bật
bộ dao động lên và cho phép RTC giữ thời gian. Khi được đặt 11X sẽ cho phép dao
động nhưng giữ quá trình đếm xuống ở mức reset. Quá trình cập nhật tiếp theo sẽ sớm
diễn ra sau 500ms sau khi kiểu 010 được ghi vào DV0, DV1 và DV2.
RS3, RS2, RS1, RS0: là 4 bit lựa chọn một trong 13 loại của bộ chia 15 trạng thái
hoặc không cho phép xuất tín hiệu chia ra ngoài. Loại được lựa chọn có thể phát ra
sóng vuông (chân SQW) và/hoặc ngắt theo chu kỳ. Người sử dụng có thể sử dụng 1
trong những cách sau :
- Cho phép ngắt với bit PIE
- Cho phép xuất ngõ ra chân SQW với bit SQWE
TËp bµi gi¶ng Vi xö lý1
182
- Cho phép cả hai hoạt động cùng một lúc và cùng một loại
- Không kích hoạt cả 2
Bảng dưới liệt kê chu kỳ ngắt và tần số sóng vuông có thể chọn lựa với các bit
RS0÷RS3. Cả 4 bit đọc/ ghi đều không bị ảnh hưởng bởi chân RESET
Thanh ghi B
SET – Khi bit SET ở mức 0, thông thường quá trình cập nhật bằng cách tăng
biến đếm 1 lần 1 giây. Khi bit SET được ghi vào mức 1, mọi quá trình cập nhật đều bị
cấm và chương trình có thể bắt đầu (khởi động) bytes thời gian và lịch mà không có
quá trình cập nhật nào xảy ra trong quá trình khởi động. Chu kỳ đọc có thể thực thi ở
cùng một kiểu. SET là bit đọc/ghi và không chịu ảnh hưởng của nút RESET hoặc các
chức năng bên trong của DS12887.
PIE – Bit cho phép ngắt theo chu kỳ (Periodic Interrupt Enable) là bit đọc/ghi,
nó cho phép bit cờ ngắt theo chu kỳ (Periodic Interrupt Flag (PF)) trong thanh ghi C
để điều khiển chân IRQ\ xuống mức thấp. Khi bit PIE được đặt lên mức 1, chu kỳ ngắt
được tạo ra bằng cách điều khiển chân IRQ\ xuống mức thấp tuỳ thuộc vào tỉ lệ phân
bố của bit RS3-RS0 ở thanh ghi A.
AIE – Bit cho phép ngắt báo giờ (Alarm Interrupt Enable (AIE)) là bit đọc/ghi
mà khi được đặt lên 1 nó cho phép bit cờ báo giờ (Alarm Flag (AF)) ở thanh ghi C để
TËp bµi gi¶ng Vi xö lý1
183
cho phép ngắt IRQ\. Tín hiệu ngắt báo giờ diễn ra ở tất cả các giây khi cả 3 bytes báo
giờ chứa mã báo giờ được thể hiện ở nhị phân như sau 11XXXXXX. Các chức năng
bên trong của DS12C887 không bị ảnh hưởng bởi bit AIE.
UIE – Bit cho phép kết thúc quá trình ngắt cập nhật (Update Ended Interrupt
Enable (UIE)) là bit đọc/ghi mà cho phép bit cờ kết thúc quá trình cập nhật ở thanh ghi
C để cho phép ngắt /IRQ. Chân /RESET ở mức 0 hoặc chân SET ở mức 1 sẽ xóa bit
UIE.
SQWE – Khi bit cho phép xuất sóng vuông (Square Wave Enable (SQWE))
được đặt lên mức 1, một tín hiệu sóng vuông có tần số được đặt bởi vị trí được lựa
chọn của bit RS3 đến RS0 sẽ điều khiển sóng ra tại chân SQW. Khi bit SQWE được
đặt ở mức thấp, chân SQW sẽ được giữ ở mức thấp. SQWE là bit đọc\ghi và được xóa
khi RESET. SQWE được đặt lên 1 khi được cấp VCC.
DM – Bit kiểu dữ liệu (Data Mode (DM)) quy định khi nào thì thông tin lịch và
thời gian ở định dạng nhị phân hoặc BCD. Bit DM được đặt bởi chương trình để có
định dạng thích hợp và có thể đọc khi được. Bit này không bị thay đổi bởi các chức
năng bên trong hoặc chân RESET\. Mức 1 của DM sẽ hiển thị dữ liệu nhị phân còn
mức 0 hiển thị dữ liệu Binary Coded Decimal (BCD).
24/12 – Bit điều khiển 24/12 xác định kiểu bytes giờ. Khi ở mức 1 thì nó chỉ
chế độ hiển thị 24 giờ, còn ở mức 0 thì chỉ chế độ hiển thị 12 giờ. Bit này là bit đọc
ghi và không bị ảnh hưởng bởi các chức năng bên trong cũng như chân RESET\.
DSE – Bit cho phép nhớ công khai (Daylight Savings Enable (DSE)) là bit
đọc\ghi, nó cho phép 2 cập nhật đặc biệt khi DSE được đặt lên 1. Vào chủ nhật đầu
tiên của tháng 4, thời gian sẽ tăng từ 1:59:59 AM lên 3:00:00 AM. Vào chủ nhật cuối
cùng của tháng 10, khi thời gian lần đầu tiên đạt được 1:59:59 AM thì nó sẽ đổi thành
1:00:00 AM. Chức năng đặc biệt này sẽ không được thực thi nếu bit DSE ở mức 0. Bit
này không bị ảnh hưởng bởi các chức năng bên trong cũng như chân RESET\.
Thanh ghi C
IRQF – Bit cờ yêu cầu ngắt (Interrupt Request Flag (IRQF)) được đặt lên 1 khi một
trong những điều dưới đây đúng :
- PF = PIE = 1
- AF = AIE = 1
TËp bµi gi¶ng Vi xö lý1
184
- UF = UIE = 1
Điều đó có nghĩa là IRQF = (PF . PIE) + (AF . AIE) + (UF . UIE)
Bất cứ lúc nào bit IRQF được đặt lên 1, chân IRQ\ được đặt xuống mức thấp. Bit cờ
PF, AF và UF được xoá khi thanh ghi C được chương trình đọc hoặc chân RESET\ ở
mức thấp.
PF – Bit cờ ngắt theo chu kỳ (Periodic Interrupt Flag (PF)) là bit chỉ đọc, nó
được đặt lên mức 1 khi có 1 sườn xung được phát hiện ở tín hiệu lựa chọn của bộ chia.
Từ bit RS3 đến RS0 xác định chu kỳ. PF được đặt lên 1 bất chấp trạng thái của bit
PIE. Khi cả PF và PIE đều ở mức 1, tín hiệu IRQ\ được kích hoạt và sẽ đặt bit IRQF
lên mức 1. Bit PF sẽ bị xoá bằng phần mềm đọc thanh ghi C hoặc chân RESET\.
AF - Mức 1 của bit cờ cho phép ngắt báo giờ (Alarm Interrupt Flag (AF)) chỉ ra
rằng thời gian hiện tại được so sánh với thời gian báo giờ. Nếu bit AIE còn ở mức 1,
chân IRQ\ sẽ xuống mức thấp và 1 sẽ được đặt vào bit IRQF. Khi RESET\ hoặc đọc
thanh ghi C sẽ xoá AF.
UF – Bit cờ ngắt kết thúc cập nhật (Update Ended Interrupt Flag (UF)) được
đặt sau mỗi chu kỳ cập nhật. Khi bit UIE được đặt lên 1, mức 1 ở UF sẽ làm cho bit
IRQF lên mức 1, nó sẽ xác định trạng thái chân IRQ\. UF sẽ bị xoá khi thanh ghi C
được đọc hoặc có tín hiệu RESET.
Từ bit 3 đến bit 0- Đây là những bit không sử dụng của thanh ghi trạng thái C.
Những bit này luôn luôn ở mức 0 và không thể ghi đè.
Thanh ghi D
VRT – Bit thời gian và RAM hợp lệ (Valid RAM and Time (VRT)) biểu thị
tình trạng của của pin được kết nối chân VBAT. Bit này không phải là bit ghi được và
luôn có giá trị bằng 1 khi đọc. Nếu hiển thị mức 0, nguồn năng lượng bên trong IC đã
cạn và cả hai mục dữ liệu thời gian thực lẫn dữ liệu RAM đều bị nghi ngờ. Bit này
không chịu ảnh hưởng bởi chân RESET.
BIT 6 ĐẾN BIT 0 – Những bit được đề cập ở trên của thanh ghi D không được
sử dụng. Chúng không ghi được và khi đọc thì luôn có giá trị bằng 0.
Sơ đồ nguyên lý mạch giao tiếp giữa vi điều khiển và IC thời gian thực DS12887
Vi điều khiển AT89C51 giao tiếp với IC DS12887 giống với giao tiếp RAM
ngoài. Sử dụng cổng P0 đồng thời là bus địa chỉ và bus dữ liệu. Chân ALE của
AT89C51 nối với chân AS của DS12887 để chốt tín hiệu địa chỉ. Chân MOT của
TËp bµi gi¶ng Vi xö lý1
185
DS12887 nối Gnd để chọn bus kiểu Intel. Các chân /RD, /WR của AT89C51 nối
tương ứng với các chân DS và chân R/W của DS12887. Do cổng P0 chỉ giao tiếp với
DS12887 nên chân /CS của DS12887 được nối Gnd để luôn được chọn.
Hình 7.6 Mạch giao tiếp giữa AT89C51 và DS12887
Khối quét led: 74HC595 là IC ghi dịch vào nối tiếp, ra song song 8 bit được lựa chọn
sử dụng để tiết kiệm chân của vi điều khiển. Với 3 chân điều khiển của vi điều khiển
có thể quét được số lượng led 7 đoạn lớn. Hình dáng và sơ đồ chân của 74HC595 như
sau:
Hình 7.7 Sơ đồ chân 74HC595
TËp bµi gi¶ng Vi xö lý1
186
Chức năng các chân của IC:
- Chân 14 DS: chân đầu vào dữ liệu nối tiếp
- Chân 1,2,3,4,5,6,7,15: 8 chân đầu ra từ Q0-Q7, xuất dữ liệu song song khi chân /OE
ở mức thấp và có 1 xung tích cực ở sườn dương tại chân chốt ST_CP.
- Chân 13(output enable): chân cho phép, tích cực ở mức thấp. Khi ở mức cao, tất cả
các đầu ra của IC trở về trạng thái trở kháng cao, không có đầu ra nào được cho phép.
- Chân 9(SQH): chân dữ liệu nối tiếp, nếu dùng nhiều IC 74595 mắc nối tiếp nhau thì
chân này đưa vào chân 14 của IC tiếp theo khi đã dịch đủ 8bit.
- Chân 11(shift clock): chân vào xung clock. Khi có 1 xung clock tích cực ở sườn
dương thì 1 bit được dịch vào IC.
- Chân 12(latch clock): chân chốt dữ liệu. Khi có 1 xung clock tích cực ở sườn dương
thì cho phép xuất dữ liệu trên các chân output.
- Chân 10(reset): Khi chân này ở mức thấp, toàn bộ dữ liệu sẽ bị xóa trên chip.
Sơ đồ hoạt động của IC
Hình 7.8 Sơ đồ hoạt động IC74595
TËp bµi gi¶ng Vi xö lý1
187
Hình 7.9 Giản đồ xung IC 74595
Mạch giao tiếp giữa AT89C51 với led 7 đoạn
Do led 7 đoạn có dòng tiêu thụ lớn nên các chân của vi điều khiển không cấp
dòng trực tiếp được. Một bộ đệm được sử dụng để giao tiếp giữa vi điều khiển và led 7
đoạn. Để tiết kiệm diện tích mạch in, IC đệm ULN2803 được chọn. Để quét led, các
IC ghi dịch 74HC595 được chọn. Các IC này được mắc nối tiếp với nhau, mỗi đầu ra
được đưa tới chân B của transistor cấp nguồn cho led. Với 15 led cần 2 IC74595. Các
IC này cần điều khiển bởi các chân Data, clock và OE. Nguyên tắc hoạt động của
mạch như sau: Tại mỗi thời điểm, các IC ghi dịch xuất ra mã của led 7 đoạn của một
trong 8 đoạn a, b, c, d, e, f, g, h. Do các led 7 đoạn nối song song, chân điều khiển từ
vi điều khiển sẽ cho phép một trong các đoạn này được thông mạch. Như vậy, thanh
tương ứng của mỗi led có sáng hay không tùy thuộc vào việc chân đầu ra của 74597
có điều khiển chân B của transistor cấp nguồn cho led hay không. Các led 7 đoạn loại
anode chung.
Các đường Data, CK và OE được điều khiển bởi các chân của vi điều khiển AT89C51.
TËp bµi gi¶ng Vi xö lý1
188
Hình 7.10 Mạch kết nối giữa AT89C51 và 74HC595
TËp bµi gi¶ng Vi xö lý1
189
Sơ đồ nguyên lý mạch vi điều khiển
Hình 7.11 Sơ đồ nguyên lý mạch vi điều khiển
c. Lưu đồ giải thuật chương trình
Chương trình chính làm nhiệm vụ xác lập các điều kiện đầu của hệ thống bao gồm xác
lập các cổng vào/ra, chế độ hoạt động của Realtime, gọi chương trình đọc và chuyển
đổi dữ liệu sang mã led 7 đoạn, hiển thị.
TËp bµi gi¶ng Vi xö lý1
190
Hình 7.12 Lưu đồ thuật toán chương trình chính
Xác lập chế độ hoạt động của realtime DS12887:
- Cho phép ghi 14 byte thấp của DS12887: bit SET trong thanh ghi B đặt bằng 1,
cho phép realtime cập nhật sau mỗi giây SET=0.
- Không xuất xung tai chân SQW.
- Cho phép realtime hoạt động reg_a.4-reg_a.6=010
- Định dạng thời gian 24 giờ , định dạng dữ liệu kiểu BCD
Hàm xác lập các điều kiện hoạt động cho DS12887: hoạt động ở chế độ 24 giờ, định
dạng dữ liệu kiểu BCD
xac_lap_ds12887:
mov dptr,#11 ;dia chi cua thanh ghi B
mov a,#10000000b ;xac lap thoi gian cho ds12887:
movx @dptr,a ;ghi vao thanh ghi B
TËp bµi gi¶ng Vi xö lý1
191
mov dptr,#10 ;truy nhap vao thanh ghi A cua DS12887
mov a,#10100000b
movx @dptr,a
;xac lap che do hoat dong: 24 gio (B.1=1)
;dinh dang du lieu kieu BCD(B.2=0)
mov dptr,#11
mov a,#00011010b
movx @dptr,a
ret
Lưu đồ giải thuật chương trình đọc Realtime DS12887 và chuyển đổi từ mã BCD
sang mã led 7 đoạn
Dữ liệu đọc được từ realtime tồn tại dưới dạng mã BCD, chuyển đổi sang mã led 7
đoạn để hiển thị.
TËp bµi gi¶ng Vi xö lý1
192
Bắt đầu
Con trỏ địa chỉ=0
Đọc đơn vị thời gian trỏ bởi con trỏ địa chỉ
Lấy 4 bit thấp đơn vị thời gian đọc được
Lấy 4 bit cao đơn vị thời gian đọc được
Chuyển 4 bit thấp từ BCD sang mã 7 đoạn
Cất giữ
Chuyển 4 bit cao từ BCD sang mã 7 đoạn
Tăng con trỏ địa chỉ
Con trỏ địa chỉ<10
Cất giữ
Kết thúc
Đúng
Sai
Hình 7.13 Đọc thời gian từ realtime và chuyển sang mã led 7 đoạn
TËp bµi gi¶ng Vi xö lý1
193
;chuong trinh doc realtime, chuyen doi thoi gian sang ma 7 doan
;luu tu dia chi 40 trong bo nho RAM
doc_realtime:
mov r0,#10
movx a,@r0
anl a,#80H
jnz doc0
ret
doc0:
mov r0,#40H ;luu thoi gian doc duoc tu realtime bat dau tu dia chi 40
mov r1,#0
doc1:
movx a,@r1
push acc
anl a,#0fh
mov dptr,#bangma
movc a,@a+dptr
mov @r0,a
cjne r1,#6,doc3 ;r1=6 tro toi o nho thu, khong can giai ma hang chuc
pop acc
sjmp doc4
doc3:
pop acc
swap a
anl a,#0fh
movc a,@a+dptr
inc r0
mov @r0,a
doc4:
inc r0
TËp bµi gi¶ng Vi xö lý1
194
inc r1
cjne r1,#6,$+3 ;neu dia chi nho hon 6 thi bo qua cac thoi gian canh bao
tai dia chi 1,3,5 cua DS12887
jnc doc2
inc r1
doc2:
cjne r1,#10,doc1
mov 4DH,#3FH ;so 2 va 0 cua nam 20xx
mov 4EH,#5BH
ret
bangma:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
Lưu đồ giải thuật chương trình hiển thị
Nguyên lý hiển thị như sau:
Đọc dữ liệu thanh a của tất cả các led và xuất ra led tương ứng trên các đầu ra của IC
ghi dịch 74595. Sau đó cho phép thanh a của các led được nối Gnd qua IC đệm 2803.
Sau khi xuất xong thanh a, tiếp tục áp dụng lần lượt với các thanh b, c, d, e, f, g, h.
Với phương pháp hiển thị như vậy có ưu điểm là dù số lượng led tăng lên nhưng thời
gian sáng cho mỗi thanh không đổi và bằng 1/8 thời gian sáng để hiển thị đủ 8 thanh.
Phương pháp này cho thời gian sáng của mỗi thanh lớn, tránh được hiện tượng thời
gian led sáng quá nhỏ khi số lượng led tăng.
Lưu đồ thuật toán của chương trình hiển thị như sau:
TËp bµi gi¶ng Vi xö lý1
195
Hình 7.14 Lưu đồ thuật toán chương trình hiển thị led 7 đoạn
;chuong trinh hien thi doc ma 7 doan cua cac don vi thoi gian
;xuat ma theo tung thanh a,b,c,d,e,f,g,h
hienthi:
clr co ;bit co=0 neu hien thi cac bit a,b,c,d
;bit co=1 neu hien thi cac bit tu e,f,g,h
clr ck_pin
clr latch_pin
clr data_pin
TËp bµi gi¶ng Vi xö lý1
196
mov r2,#1 ;r2 luu giu so hang can quet(r2:1-8)
mov r0,#40H
mov r3,#1
ht1:
mov r1,3
mov a,@r0
jnb co,ht2
swap a
ht2:
rrc a
djnz r1,ht2
mov data_pin,c
setb ck_pin ;tao xung ra
clr ck_pin ;xoa xung SRCK cho lan tiep theo
inc r0
cjne r0,#4FH,ht1
;tat noi dung cac led cua lan xuat truoc
mov p1,#0h ;tat led
;cho phep xuat cot
setb latch_pin
clr latch_pin
;doan chuong trinh quet hang
mov r4,3 ;r2 luu vi tri hang can quet
mov a,#80h
jnb co,ht3
mov a,#08H
ht3:
rl a
djnz r4,ht3
mov p1,a
call delayms
inc r3
inc r2
mov r0,#40H
cjne r2,#5,ht5
TËp bµi gi¶ng Vi xö lý1
197
mov r3,#1
ht5:
jc ht1
setb co
cjne r2,#9,ht1
ret
Lưu đồ giải thuật chương trình điều chỉnh thời gian
Hình 7.15 Lưu đồ thuật toán chương trình chỉnh thời gian
TËp bµi gi¶ng Vi xö lý1
198
;chuong trinh kiem tra phim nhan
kiemtra_phimnhan:
mov a,function_mode
cjne a,#0,chay_hieu_ung
jmp ko_chay_hieu_ung
chay_hieu_ung:
call line_mark
ko_chay_hieu_ung:
jb phim_mod,kiemtra_up
call delay_ms
jb phim_mod,kiemtra_up
cho_phim_mod:
call hien_thi
call delay_ms
jnb phim_mod,cho_phim_mod
inc function_mode
call cmd_check1
ret
;--------------------------------------------------
kiemtra_up:
jb phim_up,kiemtra_down
call delay_ms
jb phim_up,kiemtra_down
mov r5,#50
cho_phim_up:
call giai_ma_luu
call hien_thi
call delay_ms
djnz r5,cho_up1
mov r5,#50
setb tanglen
call start_change_setup
ret
;--------------------------------------------------
cho_up1:
TËp bµi gi¶ng Vi xö lý1
199
jnb phim_up,cho_phim_up
setb tanglen
call start_change_setup
ret
kiemtra_down:
jb phim_down,thoat_ktra_phim
call delay_ms
jb phim_down,thoat_ktra_phim
mov r5,#50
cho_phim_down:
call giai_ma_luu
call hien_thi
call delay_ms
djnz r5,cho_down1
mov r5,#50
clr tanglen
call start_change_setup
ret
cho_down1:
jnb phim_down,cho_phim_down
clr tanglen
call start_change_setup
thoat_ktra_phim:
ret
;--------------------------------------------------
;thay doi chon mode
cmd_check1:
mov a,function_mode
cjne a,#7,check_function_mode
mov function_mode,#0
ret
check_function_mode:
mov a,function_mode
line_hour:
cjne a,#1,line_minute
TËp bµi gi¶ng Vi xö lý1
200
mov effect_position,#4ch
ret
line_minute:
cjne a,#2,line_second
mov effect_position,#46h
ret
line_second:
cjne a,#3,line_y
mov effect_position,#40h
ret
line_y:
cjne a,#4,line_mm
mov effect_position,#4dh
ret
line_mm:
cjne a,#5,line_day
mov effect_position,#47h
ret
line_day:
mov effect_position,#41h
ret
TËp bµi gi¶ng Vi xö lý1
201
C©u hái vµ bµi tËp ch¬ng 7
C©u 1: ThiÕt kÕ mét xe tù hµnh ( Robèt ®¬n gi¶n ) sö dông vi ®iÒu khiÓn hä 8051.
Yªu cÇu:
+ Xe tù hµnh theo mét v¹ch tr¾ng d¸n s½n.
+ Khi gÆp vËt c¶n xe tù ®éng quay ®Çu.
C©u 1: ThiÕt kÕ bé ®o nhiÖt ®é phßng víi d¶i ®o tõ 0 ®é C ®Õn 70 ®é Csö dông vi ®iÒu
khiÓn hä 8051.
Yªu cÇu:
+ HiÓn thÞ nhiÖt ®é trong phßng trªn led 7 ®o¹n.
+ T¹o 1 giao diÖn trªn m¸y tÝnh ®Ó hiÓn thÞ nhiÖt ®é ®äc ®îc tõ vi ®iÒu khiÓn
th«ng qua chuÈn RS232 cña m¸y tÝnh.
+ C¶m biÕn nhiÖt ®é sö dông LM335.
C©u 3: ThiÕt kÕ bé ®o nhiÖt ®é phßng víi d¶i ®o tõ 0 ®é C ®Õn 70 ®é Csö dông vi ®iÒu
khiÓn hä 8051.
Yªu cÇu:
+ HiÓn thÞ nhiÖt ®é trong phßng trªn led 7 ®o¹n.
+ NÕu nhiÖt ®é trong phßng <150 th× bËt lß sëi.
+ NÕu nhiÖt ®é trong phßng >250 th× bËt qu¹t.
C©u 4: ThiÕt kÕ m¹ch tù ®éng b¸o tiÕt häc trong trêng §HSPKT Nam §Þnh sö dông vi
®iÒu khiÓn hä 8051.
Yªu cÇu:
+ LÞch b¸o giê theo lÞch míi cña trêng.
+ HiÓn thÞ giê, phót trªn led 7 thanh
+ Khi mÊt ®iÖn kh«ng bÞ mÊt d÷ liÖu.
+ TÝn hiÖu b¸o giê häc b»ng m¹ch K§CS ©m tÇn.
C©u 5: ThiÕt kÕ m¹ch quang b¸o dïng ma tr©n led sö dông vi ®iÒu khiÓn hä 8051
Yªu cÇu:
+ HiÓn thÞ néi dông dßng ch÷: “ Trêng ®¹i häc s ph¹m kü thuËt Nam §Þnh,
+ Ma trËn t¹o thµnh ®¬n s¾c hoÆc ®a s¾c gåm 8 hµng 64 cét
C©u 6: ThiÕt kÕ m¹ch ®iÒu khiÓn hÖ thèng ®iÖn trong gia ®×nh sö dông vi ®iÒu
khiÓn 8051.
Yªu cÇu:
+ HÖ thèng ®iÒu khiÓn ®îc 6 ®Ìn chiÕu s¸ng vµ 2 qu¹t trÇn.
+ C¸c thiÕt bÞ ®îc t¾t më ®éc lËp.
TËp bµi gi¶ng Vi xö lý1
202
+ ViÖc ®iÒu khiÓn cã thÓ tiÕn hµnh th«ng qua c¸c phÝm nhÊn trªn b¶ng ®iÒu
khiÓn hoÆc nhËn ®iÒu khiÓn xa b»ng hång ngo¹i (Sö dông ®iÒu khiÓn: Sony hoÆc
Philip)
C©u 7: ThiÕt kÕ m¹ch ®iÒu khiÓn ®Ìn giao th«ng t¹i mét ng· t giao th«ng sö
dông vi ®iÒu khiÓn hä 8051.
Yªu cÇu:
+ Mçi luång gåm cã c¸c ®Ìn: §á, Vµng, Xanh vµ hai ®Ìn: §á, Xanh cho ngêi
®i bé.
+ Cã bé ®Õm lïi hiÓn thÞ trªn led 7 ®o¹n ®Ó chØ thÞ thêi gian cña c¸c luång.
+ Cã phÝm chän chÕ ®é u tiªn, ph©n luång giao th«ng.
+ Cã phÝm chän chÕ ®é ®Ìn vµng chíp t¾t.
C©u 8: ThiÕt kÕ m¸y ph¸t xung ®a n¨ng sö dông vi ®iÒu khiÓn hä 8051.
Yªu cÇu:
+ T¹o ra ba d¹ng xung: Vu«ng, Sin, Tam gi¸c.
+ Cã c«ng t¾c ®Ó chän d¹ng xung. Chän d¶i tÇn sè.
+ Cã nóm chØnh ®Ó thay ®æi biªn ®é cña xung.
C©u 9: ThiÕt kÕ m¹ch ®o tÇn sè sö dông vi ®iÒu khiÓn hä 8051.
Yªu cÇu:
+ §o tÇn sè xung vu«ng ®Çu vµo cã tÇn sè biÕn thiªn tõ 1Hz ®Õn 1Khz
+ HiÓn thÞ tÇn sè ®o ®îc trªn led 7 ®o¹n.
+ Cã phÝm chän chÕ ®é ®Ìn vµng chíp t¾t.
C©u 10: ThiÕt kÕ m¹ch ®iÒu khiÓn ®éng c¬ mét chiÒu sö dông vi ®iÒu khiÓn hä 8051.
Yªu cÇu:
+ §iÒu khiÓn tèc ®é ®éng c¬ theo ph¬ng ph¸p PWM.
+ KiÓm so¸t tèc ®é ®éng c¬ th«ng qua ENCODER vµ hiÓn thÞ trªn led 7 ®o¹n
+ Cã c¸c phÝm nhÊn ®Ó chän: RUN, STOP, FF,RV,INC,DEC.
TËp bµi gi¶ng Vi xö lý1
203
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt:
[1]. Nguyễn Tăng Cường. Cấu trúc và lập trình họ Vi điều khiển 8051. NXB KHKT-
Hà Nội, 2003
[2]. Hồ Khánh Lâm. Giáo trình Kỹ thuật Vi xử lý. Tập 1,2. NXB Bưu Điện 2007
[3]. Văn Thế Minh. Kỹ thuật Vi xử lý. NXB Giáo Dục 1997
[4]. Ngô Diên Tập. Lập trình bằng hợp ngữ. NXB KHKT - Hà Nội 1998
[5]. Đỗ Xuân Tiến. Kỹ thuật Vi xử lý và Lập trình Assembly cho hệ vi xử lý. NXB
KHKT- Hà Nội, 2001
Tài liệu tiếng Anh:
[6]. Barry B. Brey.The Intel Microprocessors: 8088/8086, 80186/80188, 80286,
80386, 80486, Pentium and Pentium Pro Processor: Architecture, Programming, and
Interfacing. Fourth Edition, Prentice Hall, 1997
[7]. I.Scott Mackenzie. The 8051 Microcontroller. 2nd.Ed Prentice Hall 1995
[8]. Daniel tabak (1995), “Advanced Microprocessor”. McGrow Hill.
[9]. Gao Q S (1996), “Approach to making supercomputer by microprocessor cellular
sector computer of vertical and horizotal processing with virtual common memory”,
Conf. parallel Proc.
[10]. Richard J Prestopic (1995), “Microprocessorand IC families”. Walter H.
Các file đính kèm theo tài liệu này:
- tap_bai_giang_vi_xu_ly_1.pdf