Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

VXL_toan_tap pptx
Nội dung xem thử
Mô tả chi tiết
Giaùo trình VXL B Traàn Quang Hieáu
TOÙM TAÉT NOÄI DUNG VEÀ 89C51
I. Lyù Thuyeát veà 89C51
1. Baûng toùm taét caùc vuøng nhôù 8951.
Baûn ñoà boä nhôù Data treân Chip nhö sau :
7F FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
RAM ña duïng
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW
30 B8 - - - BC BB BA B9 B8 IP
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40 99 khoâng ñöôïc ñòa chæ hoaù bit SBUF
27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18 8D khoâng ñöôïc ñòa chæ hoaù bit TH1
22 17 16 15 14 13 12 11 10 8C khoâng ñöôïc ñòa chæ hoaù bit TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B khoâng ñöôïc ñòa chæ hoaù bit TL1
20 07 06 05 04 03 02 01 00 8A khoâng ñöôïc ñòa chæ hoaù bit TL0
1F Bank 3 89 khoâng ñöôïc ñòa chæ hoaù bit TMOD
18 88 8F 8E 8D 8C 8B 8A 89 88 TCON
17 Bank 2 87 khoâng ñöôïc ñòa chæ hoaù bit PCON
10
0F Bank 1 83 khoâng ñöôïc ñòa chæ hoaù bit DPH
08 82 khoâng ñöôïc ñòa chæ hoaù bit DPL
07 Bank thanh ghi 0 81 khoâng ñöôïc ñòa chæ hoaù bit SP
00 (maëc ñònh cho R0 -R7) 80 87 86 85 84 83 82 81 80 P0
Trang 1
Ñòa chæ
byte Ñòa chæ bit Ñòa chæ bit
Ñòa chæ
byte
Giaùo trình VXL B Traàn Quang Hieáu
1. Chöùc naêng cuûa caùc chaân cuûa 8951
a. port0 : laø port coù 2 chöùc naêng ôû treân chaân töø 32 ñeán 39 trong caùc thieát keá côõ
nhoû
( khoâng duøng boä nhôù môû roäng ) coù hai chöùc naêng nhö caùc ñöôøng IO. Ñoái vôùi caùc thieát
keá côõ lôùn ( vôùi boä nhôù môû roäng ) noù ñöôïc keát hôïp keânh giöõ a caùc bus )
b. port1 : port1 laø moät port I/O treân caùc chaân 1-8. Caùc chaân ñöôïc kyù hieäu P1.0,
P1.1, P1.2 … coù theå duøng cho caùc thieát bò ngoaøi neáu caàn. Port1 khoâng coù chöùc naêng
khaùc, vì vaäy chuùng ta chæ ñöôïc duøng trong giao tieáp vôùi caùc thieát bò ngoaøi.
c. port2 : port2 laø moät port coâng duïng keùp treân caùc chaân 21 – 28 ñöôïc duøng nhö
caùc ñöôøng xuaát nhaäp hoaëc laø byte cao cuûa bus ñòa chæ ñoái vôùi caùc thieát keá duøng boä nhôù
môû roäng.
d. Port3 : port3 laø moät port coâng duïng keùp treân caùc chaân 10 – 17. Caùc chaân cuûa
port naøy coù nhieàu chöùc naêng, caùc coâng duïng chuyeån ñoåi coù lieân heä vôùi caùc ñaëc tín ñaëc
bieät cuûa 8951 nhö ôû baûng sau :
18
19
12MHz
40
29
30
31
9
17
16
15
14
13
12
11
10
RD\
WR\
T1
T0
INT1
INT0
TXD
RXD
A15
A14
A13
A12
A11
A10
A9
A8
28
27
26
25
24
23
22
21
8
7
6
5
4
3
2
1
32
33
34
35
36
37
38
39
Po.7
Po.6
Po.5
Po.4
Po.3
Po.2
Po.1
Po.0
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
PSEN\
ALE
EA\
RET
Vcc
20
Vss
30p
30p
XTAL1
XTAL2
Trang 2
Giaùo trình VXL B Traàn Quang Hieáu
Bit Teân Chöùc naêng chuyeån ñoåi
P3.0 RXD Döõ lieäu nhaän cho port noái tieáp
P3.1 TXD Döõ lieäu phaùt cho port noái tieáp
P3.2 INTO Ngaét 0 beân ngoaøi
P3.3 INT1 Ngaét 1 beân ngoaøi
P3.4 TO Ngoõ vaøo cuûa timer/counter 0
P3.5 T1 Ngoõ vaøo cuûa timer/counter 1
P3.6 WR Xung ghi boä nhôù döõ lieäu ngoaøi
P3.7 RD Xung ñoïc boä nhôù döõ lieäu ngoaøi
Baûng 2.1 : Chöùc naêng cuûa caùc chaân treân port3
e. PSEN (Program Store Enable ) : 8951 coù 4 tín hieäu ñieàu khieån
PSEN laø tín hieäu ra treân chaân 29. Noù laø tín hieäu ñieàu khieån ñeå cho pheùp boä nhôù
chöông trình môû roäng vaø thöôøng ñöôïc noái ñeán chaân OE (Output Enable) cuûa moät
EPROM ñeå cho pheùp ñoïc caùc bytes maõ leänh.
PSEN seõ ôû möùc thaáp trong thôøi gian laáy leänh. Caùc maõ nhò phaân cuûa chöông trình
ñöôïc ñoïc töø EPROM qua bus vaø ñöôïc choát vaøo thanh ghi leänh cuûa 8951 ñeå giaûi maõ
leänh. Khi thi haønh chöông trình trong ROM noäi (8951) PSEN seõ ôû möùc thuï ñoäng (möùc
cao).
f. ALE (Address Latch Enable ) :
tín hieäu ra ALE treân chaân 30 töông hôïp vôùi caùc thieát bò laøm vieäc vôùi caùc xöû lí
8585, 8088, 8086, 8951 duøng ALE moät caùch töông töï cho laøm vieäc giaûi caùc keânh caùc
bus ñòa chæ vaø döõ lieäu khi port 0 ñöôïc duøng trong cheá ñoä chuyeån ñoåi cuûa noù : vöøa laø
bus döõ lieäu vöøa laø buùyt thaáp cuûa ñòa chæ, ALE laø tín hieäu ñeå choát ñòa chæ vaøo moät thanh
ghi beân ngoaøi trong nöõa ñaàu cuûa chu kyø boä nhôù. Sau ñoù, caùc ñöôøng port 0 duøng ñeå xuaát
hoaëc nhaäp döõ lieäu trong nöõa sau chu kyø cuûa boä nhôù.
Caùc xung tín hieäu ALE coù toác ñoä baèng 1/6 laàn taàn soá dao ñoäng treân chip vaø coù
theå ñöôïc duøng laø nguoàn xung nhòp cho caùc heä thoáng. Neáu xung treân 8951 laø 12MHz thì
ALE coù taàn soá 2MHz. Chæ ngoaïi tröø khi thi haønh leänh MOVX, moät xung ALE seõ bò
maát. Chaân naøy cuõng ñöôïc laøm ngoõ vaøo cho xung laäp trình cho EPROM trong 8951.
g. EA (External Access) :
Tín hieäu vaøo EA treân chaân 31 thöôøng ñöôïc maéc leân möùc cao (+5V) hoaëc möùc
thaáp (GND). Neáu ôû möùc cao, 8951 thi haønh chöông trình töø ROM noäi trong khoaûng ñòa
chæ thaáp (4K). Neáu ôû möùc thaáp, chöông trình chæ ñöôïc thi haønh töø boä nhôù môû roäng. Khi
duøng 8031, EA luoân ñöôïc noái möùc thaáp vì khoâng coù boä nhôù chöông trình treân chip.
Trang 3
Giaùo trình VXL B Traàn Quang Hieáu
Neáu EA ñöôïc noái möùc thaáp boä nhôù beân trong chöông trình 8951 seõ bò caám vaø chöông
trình thi haønh töø EPROM môû roäng. Ngöôøi ta coøn duøng chaân EA laøm chaân caáp ñieän aùp
21V khi laäp trình cho EPROM trong 8951.
h. SRT (Reset) :
Ngoõ vaøo RST treân chaân 9 laø ngoõ reset cuûa 8951. Khi tín hieäu naøy ñöôïc ñöa leân
muùc cao (trong ít nhaát 2 chu kyø maùy ), caùc thanh ghi trong 8951 ñöôïc taûi nhöõng giaù trò
thích hôïp ñeå khôûi ñoäng heä thoáng.
i. Caùc ngoõ vaøo boä dao ñoäng treân chip :
Nhö ñaõ thaáy trong caùc hình treân , 8951 coù moät boä dao ñoäng treân chip. Noù thöôøng
ñöôïc noái vôùi thaïch anh giöõa hai chaân 18 vaø 19. Caùc tuï giöõa cuõng caàn thieát nhö ñaõ veõ.
Taàn soá thaïch anh thoâng thöôøng laø 12MHz.
J. Caùc chaân nguoàn :
8951 vaän haønh vôùi nguoàn ñôn +5V. Vcc ñöôïc noái vaøo chaân 40 vaø Vss (GND) ñöôïc noái
vaøo chaân 20.
c. Caùc bank thanh ghi :
32 byte thaáp nhaát cuûa boä nhôù noäi laø daønh cho caùc bank thanh ghi. Boä leänh cuûa
8951 hoå trôï 8 thanh ghi (RO ñeán R7) vaø theo maëc ñònh (sau khi Reset heä thoáng) caùc
thanh ghi naøy ôû caùc ñòa chæ 00H-07H. Leänh sau ñaây seõ ñoïc noäi dung ôû ñòa chæ 05H vaøo
thanh ghi tích luõy.
MOV A,R5
Ñaây laø leänh moät byte duøng ñòa chæ thanh ghi. Taát nhieân, thao taùc töông töï coù theå
ñöôïc thi haønh baèng leänh 2 byte duøng ñòa chæ tröïc tieáp naèm trong byte thöù hai:
MOV A,05H
Caùc leänh duøng caùc thanh ghi R0 ñeán R7 thì seõ ngaén hôn vaø nhanh hôn caùc leänh
töông öùng nhöng duøng ñòa chæ tröïc tieáp. Caùc giaù trò döõ lieäu ñöôïc duøng thöôøng xuyeân
neân duøng moät trong caùc thanh ghi naøy.
Bank thanh ghi tích cöïc coù theå chuyeån ñoåi baèng caùch thay ñoåi caùc bit choïn bank thanh
ghi trong töø traïng thaùi chöông trình (PSW). Giaû söû raèng bank thanh ghi 3 ñöôïc tích cöïc, leänh
sau seõ ghi noäi dung cuûa thanh ghi tích luõy vaøo ñòa chæ 18H:
MOV R0,A
YÙ töôûng duøng “caùc bank thanh ghi” cho pheùp “chuyeån höôùng” chöông trình
nhanh vaø hieäu quûa (töøng phaàn rieâng reõ cuûa phaàn meàm seõ coù moät boä thanh ghi rieâng
khoâng phuï thuoäc vaøo caùc phaàn khaùc).
Trang 4
Giaùo trình VXL B Traàn Quang Hieáu
2. Thanh ghi traïng ta thaùi.
Bit Kyù hieäu Ñòa chæ Yù nghóa
PSW.7
PSW.6
PSW.5
PSW.4
PSW.3
PSW.2
PSW.1
PSW.0
CY
AC
F0
RS1
RS0
OV
P
D7H
D6H
D5H
D4H
D3H
D2H
D1H
D0H
Côø nhôù
Côø nhôù phuï
Côø 0
Bit 1 choïn bank thanh ghi
Bit choïn bank thanh ghi.
00=bank 0; ñòa chæ 00H-07H
01=bank 1: ñòa chæ 08H-0FH
10=bank 2:ñòa chæ 10H-17H
11=bank 3:ñòa chæ 18H-1FH
Côø traøn
Döï tröõ
Côø Parity chaün.
• Côø nhôù (CY) coù coâng duïng keùp. Thoâng thöôøng noù ñöôïc duøng cho caùc leänh toaùn
hoïc: noù seõ ñöôïc set neáu coù moät soá nhôù sinh ra bôûi pheùp coäng hoaëc coù moät soá möôïn
pheùp tröø . Ví duï, neáu thanh ghi tích luõy chöùa FFH, thì leänh sau:
ADD A,#1
Seõ traû veà thanh ghi tích luõy keát quûa 00H vaø set côø nhôù trong PSW.
Côø nhôù cuõng coù theå xem nhö moät thanh ghi 1 bit cho caùc leänh luaän lyù thi haønh
treân bit. Ví duï, leänh seõ AND bit 25H vôùi côø nhôù vaø ñaët keát quûa trôû vaøo côø nhôù:
ANL C,25H
• Côø nhôù phuï:
Khi coäng caùc soá BCD, côø nhôù phuï (AC) ñöôïc set neáu keát quûa cuûa 4 bit thaáp
trong khoaûng 0AH ñeán 0FH. Neáu caùc giaù trò coäng ñöôïc laø soá BCD, thì sau leänh coäng
caàn coù DA A( hieäu chænh thaäp phaân thanh ghi tích luõy) ñeå mang keát quûa lôùn hôn 9 trôû
veà taâm töø 0÷9.
• Côø 0
Côø 0 (F0)laø moät bit côø ña duïng daønh caùc öùng duïng cuûa ngöôøi duøng.
• Caùc bit choïn bank thanh ghi
Caùc bit choïn bank thanh ghi (RSO vaø RS1) xaùc ñònh bank thanh ghi ñöôïc tích
cöïc. Chuùng ñöôïc xoùa sau khi reset heä thoáng vaø ñöôïc thay ñoåi baèng phaàn meàm neáu
caàn. Ví duï, ba leänh sau cho pheùp bank thanh ghi 3 vaø di chuyeån noäi dung cuûa thanh ghi
R7 (ñòa chæ byte IFH) ñeán thanh ghi tích luõy:
SETB RS1
SETB RSO
MOV A,R7
Trang 5