TRƯ NG CAO Đ NG NGH CÔNG NGHI P HÀ N I Ờ Ẳ Ề Ệ Ộ
Tác gi (ch biên) PH M TH THÙY DUNGả ủ Ạ Ị
GIÁO TRÌNH
K THU T VI X LÝ Ỹ Ậ Ử
Trang 2Hà N i năm 2012 ộ
Trang 3Tuyên b b n quy nố ả ề
Giáo trình này s d ng làm tài li u gi ng d y n i b trongử ụ ệ ả ạ ộ ộ
trường cao đ ng ngh Công nghi p Hà N iẳ ề ệ ộ
Trường Cao đ ng ngh Công nghi p Hà N i không sẳ ề ệ ộ ử
d ng và không cho phép b t k cá nhân hay t ch c nàoụ ấ ỳ ổ ứ
s d ng giáo trình này v i m c đích kinh doanh.ử ụ ớ ụ
M i trích d n, s d ng giáo trình này v i m c đích khácọ ẫ ử ụ ớ ụ
hay n i khác đ u ph i đở ơ ề ả ược s đ ng ý b ng văn b nự ồ ằ ả
c a trủ ường Cao đ ng ngh Công nghi p Hà N iẳ ề ệ ộ
Trang 4L I NÓI Đ U Ờ Ầ
Trong chương trình đào t o c a các trạ ủ ường trung c p ngh , cao đ ngấ ề ẳ ngh th c hành ngh gi m t v trí r t quan tr ng: rèn luy n tay nghề ự ề ữ ộ ị ấ ọ ệ ề cho h c sinh. Vi c d y th c hành đòi h i nhi u y u t : v t t thi t b đ yọ ệ ạ ự ỏ ề ế ố ậ ư ế ị ầ
đ đ ng th i c n m t giáo trình n i b , mang tính khoa h c và đáp ngủ ồ ờ ầ ộ ộ ộ ọ ứ
v i yêu c u th c t ớ ầ ự ế
N i dung c a giáo trình “K THU T VI X LÝ ” đã độ ủ Ỹ Ậ Ử ược xây d ngự trên c s k th a nh ng n i dung gi ng d y c a các trơ ở ế ừ ữ ộ ả ạ ủ ường, k t h p v iế ợ ớ
nh ng n i dung m i nh m đáp ng yêu c u nâng cao ch t lữ ộ ớ ằ ứ ầ ấ ượng đào t oạ
ph c v s nghi p công nghi p hóa, hi n đ i hóa đ t nụ ụ ự ệ ệ ệ ạ ấ ước,.
Giáo trình n i b này do các nhà giáo có nhi u kinh nghi m nhi u nămộ ộ ề ệ ề làm công tác trong ngành đào t o chuyên nghi p. Giáo trình đạ ệ ược biên so nạ
ng n g n, d hi u, b sung nhi u ki n th c m i và biên so n theo quanắ ọ ễ ể ổ ề ế ứ ớ ạ
đi m m , nghĩa là, đ c p nh ng n i dung c b n, c t y u đ tùy theo tínhể ở ề ậ ữ ộ ơ ả ố ế ể
ch t c a các ngành ngh đào t o mà nhà trấ ủ ề ạ ường t đi u ch nh cho thíchự ề ỉ
h p và không trái v i quy đ nh c a chợ ớ ị ủ ương trình khung đào t o cao đ ngạ ẳ ngh ề
Tuy các tác gi đã có nhi u c g ng khi biên so n, nh ng giáo trình ch cả ề ố ắ ạ ư ắ
ch n không tránh kh i nh ng thi u sót, r t mong nh n đắ ỏ ữ ế ấ ậ ượ ực s tham gia đóng góp ý ki n c a các b n đ ng nghi p và các chuyên gia k thu t đ uế ủ ạ ồ ệ ỹ ậ ầ ngành
Trang 5Phân bi t đệ ược các choc năng c a các vi m ch.ủ ạ
Nh n bi t và thao tác toán h c trên các h đ m 2, 8,16.ậ ế ọ ệ ế
Trang 6C u trúc c a m t h th ng máy tínhấ ủ ộ ệ ố1.2 Ch c năng c a các kh i.ứ ủ ố
Bus h th ng ệ ố : t p h p các đậ ợ ường dây đ CPU có th liên k t V i các bể ể ế ớ ộ
ph n khácậ
1.2.1. B nh trung tâm ộ ớ
Kh i x lý trung tâm (CPU – Central Processing Unit) ố ử : nh n và th c thi cácậ ự
l nh. Bên trong CPU g m các m ch đi u khi n logic, m ch tính toán s h c, …ệ ồ ạ ề ể ạ ố ọ1.2.2. Kh i tính toán s h c – Lô gíc: ố ố ọ
Th c hi n các phép toán s h c c s +, , x, /. ự ệ ố ọ ơ ở
Th c hi n các phép toán logic AND, OR, NOT, XOR.ự ệ
T t c các phép toán đấ ả ược th c hi n c s 2 (h nh phân).ự ệ ở ơ ố ệ ị
Đi u khi n quá trình x lý thông tin b ng cách t o ra các l nh đi u khi n.ề ể ử ằ ạ ệ ề ể
Đi u khi n h th ng theo trình t th i gian, liên quan đ n các kh i khác,ề ể ệ ố ự ờ ế ố quy t đ nh t c đ ho t đ ng c a máy tính.ế ị ố ộ ạ ộ ủ
Trang 7nh đớ ược gán m t đ a ch đ CPU có th đ nh v khi c n đ c hay ghi d li u.ộ ị ỉ ể ể ị ị ầ ọ ữ ệ
Đ tăng c ể ườ ng dung l ượ ng nh cho máy tính, trong quá trình làm vi c nó ớ ệ
th ườ ng trao đ i V i kh i nh trong ổ ớ ố ớ
Dung l ượ ng nh l n nh ng th i gian truy c p s li u lâu ớ ớ ư ờ ậ ố ệ
Khi m t đi n thì n i dung ch a trong ROM không b m t ấ ệ ộ ứ ị ấ
1.2.5. Kh i vào ra ố
Bi n đ i các tín hi u v t lý đ u vào thành các tín hi u s h 2 đ MT cóế ổ ệ ậ ầ ệ ố ệ ể
th x lý để ử ược (bàn phím. chu t…). Và ngộ ượ ạc l i (màn hình…)
Thi t b ngo i vi (Input / Output) ế ị ạ : dùng đ nh p hay xu t d li u. Bàn phím,ể ậ ấ ữ ệ chu t, scanner, … thu c thi t b nh p; màn h.nh, máy in, … thu c thi t b xu t.ộ ộ ế ị ậ ộ ế ị ấ Các đĩa thu c b nh ngoài cũng có th coi v a là thi t b xu t v a là thi t bổ ộ ộ ớ ể ừ ế ị ấ ừ ế ị
nh p. Các thi t b ngo i vi liên h V i CPU qua các m ch giao ti p I/O (I/Oậ ế ị ạ ệ ớ ạ ế interface)/
2. H đ m. ệ ế
2.1. H th ng c s 10.ệ ố ơ ố
Trang 8Trong cu c s ng hàng ngày chúng ta s d ng h c s 10 (hay còn g i là hộ ố ử ụ ệ ơ ố ọ ệ D) bi u di n các giá tr c a tr s H này bao g m t h p t 0 – 9 đ bi u di nể ễ ị ủ ị ố ệ ồ ổ ợ ừ ể ể ễ các giá tr s , có th đi kèm thêm ch D đ ch r ng h đó là h c s 10.ị ố ể ữ ể ỉ ằ ệ ệ ơ ố
2.2. H th ng c s 2ệ ố ơ ố (H hai ho c vi t t t B): ệ ặ ế ắ
Là h đ m trong máy tính dùng đ bi u di n m t giá tr s trong đó g m 2ệ ế ể ể ễ ộ ị ố ồ
ch s 0 và 1 tữ ố ương ng (tứ ương ng V i có đi n và không có đi n c a m chứ ớ ệ ệ ủ ạ
Đ n v các lo i d li uơ ị ạ ữ ệ :
Bit : Là các mã nh phân đị ược bi u di n b ng 2 s 0 và 1.ể ễ ằ ố
Byte : được bi u di n b ng 8 bitsể ễ ằ
Nibble : n a byte ho c 4 bitử ặ
Word : t g m 2 byte ho c 16 bitừ ồ ặ
Các đ n v dùng đ mô t s lơ ị ể ả ố ượng c a vùng nh trong máy tínhủ ớ :
Trang 9 Chuy n 25/D sang nh phân không d u. Dùng phể ị ấ ương pháp chia 2 liên ti pế
Chia 2 Thương s D số ư ố25/2 = 12 1 LSB
Byte : 8 bít n i ti p nhau = 1 byte .ố ế
Word : ( t ) : 2 byte = 1 t . byte bên ph i là byte th p , byte bênừ ừ ả ấ trái là byte cao
C u trúc 1 t :ấ ừByte cao Byte th pấ
MSB LSB
1 kilô byte = 210 = 1024 .1Mega byte = 220
Trang 103. H th ng c s 16 (h th p l c phân Hexadecimal) quen g i là s Hexa. ệ ố ơ ố ệ ậ ụ ọ ố
Cũng g i là h đ m c s mọ ệ ế ơ ố ười sáu
S c b n là 16. ố ơ ả
S d ng 16 ký hi u đ bi u di n: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.ử ụ ệ ể ể ễ
M i ký hi u tỗ ệ ương ng V i 4bit.ứ ớ
M c đích: Bi u di n s nh phân ụ ể ễ ố ị ở d ng ng n g nạ ắ ọ 11110000/B = F0/H
+ Chuy n s hexa 2F8 và ABBA sang nh phân b ng cách thay th m i kýể ố ị ằ ế ỗ
hi u hexa b ng 4bit tệ ằ ương ng ứ V i nó.ớ
2 F 8
0010 1111 1000
A B B A
1010 1011 1011 1010
Trang 11 K t qu 2F8/H = 001011111000/Bế ảABBA/H = 1010101110111010/B
Trang 12 Khi cho 1 s h 2, n u ta tinh đố ệ ế ́ ượ ốc s khác có s bít tố ương ng mà có t ngứ ổ
c a s đó cho V i s v a tinh đủ ố ơ ố ừ́ ́ ược có t t c các bít đ u là 1 thì s tinh đấ ả ề ố ́ ượ c
Khi cho 1 s h 2 co N b t, n u ta tinh đố ệ ́ ớ ế ́ ượ ốc s khác có s bít tố ương ngứ
mà có t ng c a s đó cho V i s v a tinh đổ ủ ố ơ ố ừ́ ́ ược có t t c các bít đ u là 0, ngo iấ ả ề ạ
tr bít s N + 1 b ng 1 thì s tinh đừ ố ằ ố ́ ược g i là s bù 2.ọ ố
Trang 13VD cho s 10101 > s bu 1 là 01010ố ố ̀
+ 00001
S bu 2 là > 01011 ố ̀
c. S BCD (ố Binary Coded Decimal)
S BCD dùng đ bi u di n tr c ti p h 10 thành h 2. N u ta thay m i chố ể ể ễ ự ế ệ ệ ế ỗ ữ
s th p phân b ng 4 s nh phân thì s t o thành g i là s BCD. ố ậ ằ ố ị ố ạ ọ ố
M i ch s th p phân đỗ ữ ố ậ ược bi u di n b ng m t t h p 4bitể ễ ằ ộ ổ ợ
Trang 14S đ logicơ ồ B ng ch c năngả ứ Bi u tể ượng
+ Trig thu c lo i m ch không đ ng b có hai tr ng thái n đ nh b n theo Th iơ ộ ạ ạ ồ ộ ạ ổ ị ề ờ gian ng v i hai m c logic "1" và "0". ứ ớ ứ
+ Tr ng thái c a Trig có th thay đ i khi tác đ ng xung lên các đ u vào. ạ ủ ơ ể ổ ộ ầ
+ Tr ng thái tạ ương lai c a Trig không nh ng ph thu c vào các bi n vào mà cònủ ơ ữ ụ ộ ế
ph thu c vào tr ng thái hi n t i. ụ ộ ạ ệ ạ
Trang 15+Khi côngng tác đ ng xung lên các đ u vào , tr ng thái Trig gi nguyên, v i đ c̉ ộ ầ ạ ơ ữ ớ ặ
đi m này các m ch Trig để ạ ơ ược dùng đ l u tr thông tin dể ư ữ ư i d ng mã nh phân.ớ ạ ị
n + 1: Tr ng thái tạ ương lai.
x: Tr ng thái c m t i đó giá tr c a hàm ra là không xác đ nh (chú ý). ạ ấ ạ ị ủ ị
b. M ch Trig đ ng b ạ ơ ồ ộ
+ Ng i ta mu n Trig ch ph n ng vào nh ng th i đi m xác đ nh, đi u này đờ ố ơ ỉ ả ứ ữ ờ ể ị ề ư cợ
th c hi n b ng cách đ a thêm t i đ u vào tín hi u ph C đự ệ ằ ư ớ ầ ệ ụ ư c g i là tín hi u đ ng b ợ ọ ệ ồ ộ+ Khi C = "0" thì tr ng thái Trig gi nguyên. ạ ơ ữ
+ Khi C = "1" ho t đ ng c a s đ gi ng Trig RS không đ ng b nhạ ộ ủ ơ ồ ố ơ ồ ộ ư đã phân tích ph n trên. ở ầ
Khi C = 0, tr ng thái c a Trig gi nguyên ạ ủ ơ ữ Qn+1 = Qn
Khi C = 1, giá tr đ u ra Trig nh n giá tr đị ầ ơ ậ ị a đ n đ u vào D ế ầ Qn+1 = Dn.
1 2
3
1 2
3
1 2
3
1 2
3
R C S
Trang 16d. M ch Trig chính ph (Trig MS).ạ ơ ụ ơ
Thông th ng đ tránh nh hờ ể ả ưởng c a nhi u, tăng đ tin c y trong vi c ghi và đ củ ễ ộ ậ ệ ọ thông tin, t RS Trig ngừ ơ ời ta xây d ng các Trig MS b ng cách ghép hai Trig RSự ơ ằ ơ
đ ng b liên ti p nhau. Khi đó vi c ghi thông tin ch x y ra khi l i ra b khoá và ngồ ộ ế ệ ỉ ẩ ố ị ượ c
l i vi c đ c thông tin ch x y ra khi l i vào đã b khoá.ạ ệ ọ ỉ ẩ ố ị
Nhóm các ph n t G1, G2, G3, G4 t o nên RS Trig chính.ầ ử ạ ơ
Nhóm G5, G6, G7, G8 t o nên RS Trig ph ạ ơ ụ
Hai nhóm làm vi c v i hai dãy xung nh p C ngệ ớ ị ư c pha nhau nh c a đ o G9.ợ ờ ử ả
Khi biên đ xung tăng t i m c b thông tin đ t t i l i vào s độ ớ ứ ặ ớ ố ẽ ược ghi vào Trigơ chính
T i s n âm khi biên đ xung gi m t i m c d Trig chính b ng t kh i l i vào nhạ ườ ộ ả ớ ứ ơ ị ắ ỏ ố ờ
+ B đ m dùng đ đ m s lộ ế ể ế ố ượng xung đ a t i đ u vào, k t qu đ c th hi nư ớ ầ ế ả ượ ể ệ
b ng các bit đ u ra ( theo quy lu t s nh phân)ằ ở ầ ậ ố ị
3.3.1. M ch đ m ạ ế
Đ m các tín hi u đ u vào và th hi n đ u ra mã s m i.ế ệ ầ ể ệ ở ầ ố ớ
Có 2 lo i b đ m:ạ ộ ế
G 9
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
C1 G G 2
G 3
G 4
G 5
G 6
G 7
G 8
R
S
Q Q
U
b
e
X u n g n h
ị
p C
t5
v
Trang 17* B đ m không đ ng b : không đ ng th i đ a tín hi u đ m vào các đ u vàoộ ế ồ ộ ồ ờ ư ệ ế ầ
c a các triggerủ
* B đ m đ ng b : có xung đ m đ ng th i là xung đ ng h clock đ a vào t tộ ế ồ ộ ế ồ ờ ồ ồ ư ấ
c các Trig¬ c a b đ mả ủ ộ ế
C u t o b ng các m ch l t Flip – Flop.ấ ạ ằ ạ ậ
B đ m tiộ ế ế : Khi co xung vn ́ ào thì đ uầ ra co gí ỏ trị nhị phân tăng lên m tộ m cứ giỏ trị
B đ m lùi : khi co xung vộ ế ́ ào thì đ uầ ra co gí ỏ trị nhị phân gi m đi mả ộ m ct ứ giỏ trị
B ng tr ng thái các trig đ m c a b đ m nh phân ti n 3 bit. ả ạ ơ ế ủ ộ ế ị ế
3.3.2. M ch bi n đ i mã.ạ ế ổ
Ma húa là vi c s d ng ký hi u đ bi u di n đ c tr ng cho m t đ i t ng nào đó.̃ ệ ử ụ ệ ể ể ễ ặ ư ộ ố ượ
Ký hi u t ng ng v i m t đ i t ng đ c g i là t ma.̃ệ ươ ứ ớ ộ ố ượ ượ ọ ừ
Th d :ớ ụ
Q 0
T
ớ
n h i
ệ
u đ k
X u n g Đ
ế
m
Q
2 C
C á
c b
ít đ
ầ
u r a
Giản đ th i gian minh ho ho t đ ng c a b ồ ờ ạ ạ ộ ủ ộ
đ m nh phân ế ị ti nế 4 bit, môđun 16 (l p v i sậ ớ ườn
âm)
t
X u n g v à o
t
t
t
t
0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0
0 1 0 1 0
1 0 1 0
0 1 0
1 0
0 1
0
t Q 0 Q 1 Q 2 Q 3 1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16
T h i
ế
t l
ậ
p
Trang 18 Ch c năng: th c hi n vi c ma húa các tín hi u t ng ng v i các đ i t ng thànhứ ự ệ ệ ̃ ệ ươ ứ ớ ố ượ các t ma nh phân.ừ ̃ ị
VD:
3.3.3. M ch d n kênh , tách kênh .ạ ồ
M ch d n kênh hay cũn g i là m ch gh p kênh, đa h p (MultiplexerMUX)ạ ồ ọ ạ ộ ợ
là 1 d ng m ch t h p cho phép ch n 1 trong nhi u đạ ạ ổ ợ ọ ề ường công vào song song̉ (các kênh vào) đ đ a t i 1 công ra (g i là kênh truy n n i ti p). Vi c ch nể ư ớ ̉ ọ ề ố ế ệ ọ
đường nào trong các đường công vào do các công ch n quy t đ nh. Nó ho t đ ng̉ ̉ ọ ế ị ạ ộ
nh 1 công t c nhi u v trí đư ắ ề ị ược đi u khi n b i ma s Ma s này là d ng s nhề ể ở ̃ ố ̃ ố ạ ố ị phân, tu t h p s nh phân này mà b t ky th i đi m nào ch có 1 công vàoỳ ổ ợ ố ị ở ấ ̀ ờ ể ỉ ̉
được ch n và cho phép đ a t i công ra.ọ ư ớ ̉
B chuy n m ch phân kênh hay cũn g i là tach kênh, gi i đa h p (demultiplexer)ộ ể ạ ọ ́ ả ợ
có ch c năng ng c l i v i m ch d n kênh t c là : tach kênh truy n thành 1 trong cácứ ượ ạ ớ ạ ồ ứ ́ ề kênh d li u song song tu vào ma ch n công vào. Co th xem m ch tach kênh gi ngữ ệ ỳ ̃ ọ ̉ ́ ể ạ ́ ố
nh 1 công t c c khí đ c đi u khi n chuy n m ch b i ma s Tu theo ma s đ cư ắ ơ ượ ề ể ể ạ ở ̃ố ỳ ̃ố ượ
áp vào công ch n mà d li u t 1 đ ng s đ c đ a ra đ ng nào trong s các̉ ọ ữ ệ ừ ườ ẽ ượ ư ườ ố
đ ng song song.ườ
Các m ch tách kênh th ng g p là 1 sang 2, 1 sang 4, 1 sang 8, Nói chung t 1ạ ườ ặ ừ
đ ng có th đ a ra 2n đ ng, và s đ ng đ ch n s ph i là n. ườ ể ư ườ ố ườ ể ọ ẽ ả
3.3.4.M ch nhạ ớ
Thanh ghi là m t nhóm các flipflop độ ược k t n i song song đ l u tr cácế ố ể ư ữ
s ố nh phân. Giá tr nh phân s đị ị ị ẽ ược đ a vào công vào c a các flipflop. Khi co tacư ̉ ủ ́ ́
đ ng ộ c nh lên c a tín hi u CLK thì công ra các flipflop s l u tr giá tr nh phânạ ủ ệ ̉ ẽ ư ữ ị ị
B ộ
m ó
h ú a
A B C D
S
0
S
1
Trang 19cho đ n khi m t s nh phân m i đ c đ a vào và tác đ ng m t c nh lên cho tínế ộ ố ị ớ ượ ư ộ ộ ạ
hi u CLK.ệ
Trang 20BÀI 2: KI N TRÚC VÀ NGUYÊN LÝ C A VI X LÝẾ Ủ Ử
1. Đ nh nghĩa, phân lo i, tính ch t b vi x lý .ị ạ ấ ộ ử
1.1. Đ nh nghĩa.ị
I. Đ nh nghĩa.ị
Vi x lý là 1 vi m ch đi n t c l n (LSI) ho c c c c l n (VLSI) mà trên đó cóử ạ ệ ử ỡ ớ ặ ỡ ự ớ
th x lý đ c tín hi u theo 1 ch ng trình cho tr c (thu t toán cho tr c).ể ử ượ ệ ươ ướ ậ ướ
Vi x lý g m 2 ph n: ph n c ng là các vi m ch đi n t , ph n m m là thu t toánử ồ ầ ầ ứ ạ ệ ử ầ ề ậ
đ x lý tín hi uhay cũn g i là t p l nh đ x lý theo ch ng trình. ể ử ệ ọ ậ ệ ể ử ươ
90% vi x lý d ng đ đi u khi n các h th ng.ử ự ể ề ể ệ ố
Trong ph m vi m t h vi x lý, theo th i gian và theo c ng ngh ch t o cú cácạ ộ ọ ử ờ ụ ệ ế ạ
đ i (th h ) vi x lý khác nhau phân bi t theo Đ dài T c a chúng (bit) và t c đ (Hz).ờ ế ệ ử ệ ộ ừ ủ ố ộ
Đ dài T (Word Length) c a m t chip vi x lý là k ch c t i đa c a các toán h ngộ ừ ủ ộ ử ớ ỡ ố ủ ạ
nh phân mà nó có th th c hi n các phép toán trên đó.ị ể ự ệ
B vi x lý đ u ti n c a Intel 4004, đ c gi i thi u vào năm 1971, 4004 ch a 2300ộ ử ầ ờ ủ ượ ớ ệ ứ transistor
B vi x lý Pentium 4 hi n nay ch a 55 tri u transistor.ộ ử ệ ứ ệ
S chân tín hi u đ a ch nói lên kh năng qu n lý đ a ch c a m ch VXL. N uố ệ ị ỉ ả ả ị ỉ ủ ạ ế
m ch cú ạ n tín hi u đ a ch thì cú th qu n lý đ c 2ệ ị ỉ ể ả ượ n đ a ch ị ỉ
Trang 21 S chân tín hi u c a m ch VXL càng nhi u thì càng hoàn ch nh.ố ệ ủ ạ ề ỉ
S đ kh i c a vi x lý s trình bày c u trúc c a m t vi x lý. M i m t viơ ồ ố ủ ử ẽ ấ ủ ộ ử ỗ ộ
x lý khác nhau s có c u trúc khác nhau. Ví d vi x lý 8 bit s có c u trúc khácử ẽ ấ ụ ử ẽ ấ
V i vi x lý 16 bit ớ ử
Vi m i vi x lý đ u có m t s đ c u trúc bên trong và đ́ ỗ ử ề ộ ơ ồ ấ ược cho trong các sổ tay c a nhà ch t o. S đ c u trúc d ng kh i r t ti n l i và d trình bàyủ ế ạ ơ ồ ấ ở ạ ố ấ ệ ợ ễ nguyên lý ho t đ ng c a vi x lý. Hình 21 trình bày s đ kh i c a vi x lý 8ạ ộ ủ ử ơ ồ ố ủ ử bit:
Trong s đ kh i c a vi x lý bao g m các kh i chính nh sau: kh i ALU,ơ ồ ố ủ ử ồ ố ư ố các thanh ghi và kh i control logic. Ngoài ra s đ kh i còn trình bày các đố ơ ồ ố ườ ngtruy n t i tín hi u t n i này đ n n i khác bên trong và bên ngoài h th ng.ề ả ệ ừ ơ ế ơ ệ ố
2.2 S đ c u trúc b vi x lýơ ồ ấ ộ ử .
ALU là kh i quan tr ng nh t c a vi x lý, kh i ALU ch a các m ch đi n tố ọ ấ ủ ử ố ứ ạ ệ ử logic chuyên v x lý d li u. Kh i ALU có 2 đ u vào có tên là “IN” – là cácề ử ữ ệ ố ầ
đ u vào d li u cho ALU x lý và 1 đ u ra có tên là “OUT” – là tín hi u ra k tầ ữ ệ ử ầ ệ ế
qu d li u sau khi ALU x lý xong. ả ữ ệ ử
Trang 22D li u trữ ệ ước khi vào ALU được ch a thanh ghi t m th i (Temporarilyứ ở ạ ờ Register) có tên là TEMP1 và TEMP2. Bus d li u bên trong vi x lý đữ ệ ử ược k tế
n i V i 2 đ u vào “IN” c a ALU thông qua 2 thanh ghi t m th i. Vi c k t n iố ớ ầ ủ ạ ờ ệ ế ố này cho phép ALU có th l y b t k d li u nào trên bus d li u bên trong vi xể ấ ấ ỳ ữ ệ ữ ệ ử
lý.
S đ c u trúc bên trong c a vi x lýơ ồ ấ ủ ử
Thường thì ALU luôn l y d li u t m t thanh ghi đ c bi t có tên làấ ữ ệ ừ ộ ặ ệ Accumulator (A). Đ u ra OUT c a ALU cho phép ALU có th g i k t d li uầ ủ ể ở ế ữ ệ sau khi x lý xong lên bus d li u bên trong vi x lý, do đó thi t b nào k t n iử ữ ệ ử ế ị ế ố
Trang 23V i bus bên trong đ u có th nh n d li u này. Thớ ề ể ậ ữ ệ ường thì ALU g i d li u sauở ữ ệ khi x lý xong t i thanh ghi Accumulator. ử ớ
Ví d khi ALU c ng 2 d li u thì m t trong 2 d li u đụ ộ ữ ệ ộ ữ ệ ược ch a trong thanhứ ghi Accumulator, sau khi phép c ng độ ược th c hi n b i ALU thì k t qu s g iự ệ ở ế ả ẽ ở
tr l i thanh ghi Accumulator và l u tr thanh ghi này. ở ạ ư ữ ở
ALU x lý m t d li u hay 2 d li u tùy thu c vào l nh hay yêu c u đi uử ộ ữ ệ ữ ệ ộ ệ ầ ề khi n, ví d khi c ng 2 d li u thì ALU s x lý 2 d li u và dùng 2 đ u vàoể ụ ộ ữ ệ ẽ ử ữ ệ ầ
“IN” đ nh p d li u, khi tăng m t d li u nào đó lên 1 đ n v hay l y bù m tể ậ ữ ệ ộ ữ ệ ơ ị ấ ộ
d li u, khi đó ALU ch x lý 1 d li u và ch c n m t đ u vào “IN”. ữ ệ ỉ ử ữ ệ ỉ ầ ộ ầ
Kh i ALU có th th c hi n các phép toán x lý nh sau: ố ể ự ệ ử ư
Add Complement OR Exclusive OR
Subtract Shift right Increment
AND Shift left Decrement
Tóm T t: Ch c năng chính c a kh i ALU là làm thay đ i d li u hay chuyênắ ứ ủ ố ổ ữ ệ
v x lý d li u nh ng không l u tr d li u. Đ hi u rõ thêm ch c năng đ cề ử ữ ệ ư ư ữ ữ ệ ể ể ứ ặ
bi t c a ALU c n ph i kh o sát m t vi x lý c th ệ ủ ầ ả ả ộ ử ụ ể
2.3. T ch c và qu n lý b nh .ổ ứ ả ộ ớ
2.4 .Các c ng vào ra.ổ
2.5. Các m ch ph tr .ạ ụ ợ
Trang 243. Nguyên lý làm vi c c a Vi x lý . ệ ủ ử
3.1. Trình t th i gian th c hi n l nh ự ờ ự ệ ệ
X lý trình t g m 2 ph n: Nh n l nh và thi hành l nh.ử ự ồ ầ ậ ệ ệ
Toàn b th i gian đ th c hi n 1 l nh g i là chu k l nh.ộ ờ ể ự ệ ệ ọ ỳ ệ
Chu k l nh chia ra nhi u chu k máy.ỳ ệ ề ỳ
1 chu k máy chia ra nhi u nh p.ỳ ề ị
Là quá trìnht m d ng ho t đ ng c a ch ng trình ch nh đ chuy n sang th cạ ừ ạ ộ ủ ươ ớ ể ể ự
hi n 1 ch ng trình kh c g i là ch ng trình ph c v ng t.ệ ươ ỏ ọ ươ ụ ụ ắ
Sau khi th c hi n xong thì l i tr v ch ng trình ch nh.ự ệ ạ ở ề ươ ớ
Mu n th c hi n ng t ph i có yêu c u ng t, sau đó VXL xem xét yêu c u n u h pố ự ệ ắ ả ầ ắ ầ ế ợ pháp thì nú th c hi n n t chi k máy cu i c ng sau đó nó chuy n sang ng t.ự ệ ố ỳ ố ự ể ắ
3.2.3. Ch đ treo.ế ộ
Yêu c u treo t ngoài vào.ầ ừ
Treo đ c ch p nh n thì VXL th c hi n n t nh p cu i c ng c a chu k máy.ượ ấ ậ ự ệ ố ị ố ự ủ ỳ
Trang 25 Chuy n sang treo : * Tr l i đ ng ý treo.ể ả ờ ồ
* T o ra t ng tr vô cùng các chân đ a ch , s li u và đi uạ ổ ở ở ị ỉ ố ệ ề khi n c a VXL > m ch b ng t ra.ể ủ ạ ị ắ
Trong khi đó các thi t b ngo i vi v n có th s d ng các BUS đ ph c v choế ị ạ ẫ ể ử ụ ể ụ ụ
m c đích c a m nh.ụ ủ ỡ
K t thúc treo khi b n ngoài k t thúc y u c u treo. VXL tr v tr ng thái b nhế ờ ế ờ ầ ở ề ạ ỡ
th ng.ườ
3.2.5.Ch đ d ng.ế ộ ừ
Khi ch đ d ng thì t t c các đ ng dây tín hi u, s li u, đ a ch và s li u đ uở ế ộ ừ ấ ả ườ ệ ố ệ ị ỉ ố ệ ề
đ c gi nguyên. ượ ữ
4. T p l nh c s c a Vi x lý.ậ ệ ơ ở ủ ử
+ L nh đ c hi u là các ch d n đ cho VXL theo đó mà th c hi n các công vi c. ệ ượ ể ỉ ẫ ể ự ệ ệ+ M t s thanh ghi liên quan tr c ti p đ n t p l nh c a VXLộ ố ự ế ế ậ ệ ủ
+ Đ c chia thành 5 nhóm l nh.ượ ệ
2. Nhóm l nh nh y vàCh ng trình con.ệ ả ươ
L nh nh y làm thay đ i trình t th c hi nCh ng trình, khi l nh nh y đ c th cệ ả ổ ự ự ệ ươ ệ ả ượ ự
hi n thìCh ng trình đang đ a ch này s nh y sang đi ch khác mà không liên t cệ ươ ở ị ỉ ẽ ả ạ ỉ ụ
4.4.1. Phân lo i theo nhóm ch c năng.ạ ứ
4.4.2.Phân lo i theo ch c năng c s c a l nh.ạ ứ ơ ở ủ ệ
Trang 264.5. T p l nh c sậ ệ ơ ở
C u trúc m t l nh c a asembly g m 4 ph n:ấ ộ ệ ủ ồ ầ
[nhãn:] [tên l nh] [toán h ng] [;ghi chú]ệ ạ
M i dòng ch ch a m t l nh assembly và m i l nh ph i n m trong m t dòng.ỗ ỉ ứ ộ ệ ỗ ệ ả ằ ộ
M i oh n cách nhau b ng m t ho c nhi u ký t ỗ ầ ằ ộ ặ ề ự
4.5.1. L nh chuy n s li u, lôgíc, s h c.ệ ể ố ệ ố ọ
L nh chuy n s li u dùng đ chuy n s li u gi a các thanh ghi, ho c gi a thanhệ ể ố ệ ể ề ố ệ ữ ặ ữ nghi và ô nh ớ
L nh s h c đ th c hi n các phép toán s h c, ch y u là c ng và tr , t t cệ ố ọ ể ự ệ ố ọ ủ ế ộ ừ ấ ả
đ u đ c th c hi n h 2.ề ượ ự ệ ở ệ
L nh logic đ th c hi n các phép toán logic c s , các l nh so sánh và l nh quay.ệ ể ự ệ ơ ở ệ ệ4.5.2. L nh đi u khi n.ệ ề ể
A C E L
Thanh ghi A 8 bit th ng dùng làm thanh ch a (Acc).ườ ứ
Các thanh ghi B, C, D, E, H, L 8bit làm vi c riêng l t ng thanh 1 ho c t ng c pệ ẻ ừ ặ ừ ặ
BC, DE, HL
Thanh đ mCh ng trình PC 16 bit dùng đ ch a đ a ch trong quá trình th cế ươ ể ứ ị ỉ ự
hi nCh ng trình.ệ ươ
Con tr ngăn x p SP 16 bit đ ch ra đ a ch c a ngăn x p.ỏ ế ể ỉ ị ỉ ủ ế
Thanh ghi c F 8bit nh ng ch dùng 5 bit làm 5 c ờ ư ỉ ờ
+ c nh : Cy có 2 tr ng thái b ng 0 khi phép toán có nh , b ng 1 khi phép toánờ ớ ạ ằ ớ ằ không nh ớ
Trang 27+ c ch n l : P có 2 tr ng thái b ng 0 khi phép toán là ch n (s ch s 1 là ch n),ờ ắ ẻ ạ ằ ẵ ố ữ ố ẵ
b ng 1 khi phép toán là l (s ch s 1 là l ).ằ ẻ ố ữ ố ẻ
+ c AC: hi u ch nh th p phânờ ệ ỉ ậ
AC = 1 : phe p tính bũ tra n treõn bit 4.ự ứ
AC = 0 : phe p tính không bũ tra n treõn bit 4.ự ứ
+ c Z: (c zêrô) b ng 0 khi k t qu phép tính là 0ờ ờ ằ ế ả
Trang 28BÀI 3: T CH C VÀO RA SONG SONG S LI UỔ Ứ Ố Ệ
1. Khái ni m, Vào ra đi u khi n theo chệ ề ể ương trình
I. Khái ni m chung.ệ
+ Vào / ra (hay xu t / nh p) là vi c ph i ghép c a h VXL V i ngo i vi đ th cấ ậ ệ ố ủ ệ ớ ạ ể ự
hi n trao đ i thông tin theo các ph ng th c đi u khi n khác nhau.ệ ổ ươ ứ ề ể
+ Các ph ng pháp vào ra thông tin c b n là n i ti p và song song.ươ ơ ả ố ế
- N i ti p là vi c truy n t ng bit m t.ố ế ệ ề ừ ộ
- Song song là các bít đ c truy n là đ ng th i.ượ ề ồ ờ
+ Vi c ph i ghép V i TB ngo i vi ph c t p h n và c ch đi u khi n đ trao đ iệ ố ớ ạ ứ ạ ơ ơ ế ề ể ể ổ thông tin cũng đa d ng h n so V i ph i ghép V i b nh ạ ơ ớ ố ơ ộ ớ́
+ Th ng có các d ng đi u khi n vào / ra sau:ườ ạ ề ể
- Vào / ra đi u khi n theo ch ng trình.ề ể ươ
- Vào / ra đi u khi n theo c ch ng t.ề ể ơ ế ắ
- Vào / ra đi u khi n theo c ch DMA.ề ể ơ ế
II. Vào / ra đi u khi n theoCh ng trình.ề ể ươ
+ D i s đi u khi n c a ch ng trình, d li u đ c trao đ i song song gi a CPUướ ự ề ể ủ ươ ữ ệ ượ ổ ữ
và thi t b ngo i vi thông qua các c ng d li u. Có 2 lo i trao đ i là có đi u ki n vàế ị ạ ổ ữ ệ ạ ổ ề ệ không có đi u ki n.ề ệ
1. Trao đ i không đi u ki n: ổ ề ệ
+ Các l nh trao đ i s li u V i các c ng vào / ra không c n xác đ nh tr c c ng đãệ ổ ố ệ ớ ổ ầ ị ướ ổ
s n sàng ch a màCh ng trình th c hi n trao đ i luôn và coi nh c ng đã s n sàng.ẵ ư ươ ự ệ ổ ư ổ ẵ+ Ph ng th c trao đ i này th ng đ c s d ng V i các ngo i vi có t c đ caoươ ứ ổ ườ ượ ử ụ ớ ạ ố ộ hay không yêu c u bi t chính xác d li u đã có m t đ u vào.ầ ế ữ ệ ặ ở ầ
2. Trao đ i có đi u ki n.ổ ề ệ
+ Vi c trao đ i d li u ph thu c vào thi t b ngo i vi đã s n sàng hay ch a.ệ ổ ữ ệ ụ ộ ế ị ạ ẵ ư
+Ch ng trình l n l t ki m tra tr ng thái c a các c ng, n u c ng nào s n sàngươ ầ ượ ể ạ ủ ổ ế ổ ẵ thìCh ng trình s th c hi n trao đ i d li u V i c ng đó. Th t ki m tra có u tiênươ ẽ ự ệ ổ ữ ệ ơ ổ́ ứ ự ể ư hay không s ph thu c vào ý đ c a ng i l p trình. ẽ ụ ộ ồ ủ ườ ậ
+ Trong tr ng h p này ngoài c ng d li u thì ng i ta dùng thêm 1 c ng đ báoườ ợ ổ ữ ệ ườ ổ ể
tr ng thái hi n t i c a thi t b ngo i vi.ạ ệ ạ ủ ế ị ạ
Trang 29T/h đọc/ghi
IRO INTR
INTA D0 - D7
2. Nguyờn lý:
+ Khi 1 ngo i vi c n trao đ i d li u theo c ch ng t V i CPU s cú tớn hi u yờuạ ầ ổ ữ ệ ơ ế ắ ớ ẽ ệ
c u ng t IRO t ngo i vi t i m ch đi u khi n ng t. M ch đi u khi n ng t ch p nh nầ ắ ừ ạ ớ ạ ề ể ắ ạ ề ể ắ ấ ậ
s g i tớn hi u INTR t i CPU.ẽ ử ệ ớ
+ CPU ki m tra và g i tớn hi u xung INTA th nh t đ bỏo cho b đi u khi nể ử ệ ứ ấ ể ộ ề ể
ng t. Sau đú CPU th c hi n n t l nh g i cỏc thanh ghi vào ngăn x p và g i xung INTAắ ự ệ ố ệ ử ế ử
+ M ch đi u khi n ng t ph i th c hi n đ c cỏc ch c năng sau:ạ ề ể ắ ả ự ệ ượ ứ
- Ghi nh n cỏc yờu c u ng t t cỏc ngo i vi.ậ ầ ắ ừ ạ
- Xỏc đ nh m c u tiờn c a cỏc đ u vào ng t.ị ứ ư ủ ầ ắ
- T o ra s li u ng t.ạ ố ệ ắ
IV. Vào / ra đi u khi n theo c ch DMA.ề ể ơ ế
1. S đ b ph i ghộp ch đ DMA.ơ ồ ộ ố ở ế ộ
+ Vi c trao đ i d li u theo 2 ph ng phỏp b ngCh ng trỡnh và ng t đ u th cệ ổ ữ ệ ươ ằ ươ ắ ề ự
hi n b ng cỏch đ a d li u t c ng t i CPU và nh p vào b nh trong quỏ trỡnh đ cệ ằ ư ữ ệ ừ ổ ớ ậ ộ ớ ọ hay ng c l i.ượ ạ
+ Đ chuy n 1 kh i d li u ta cú th dựng cỏch truy n DMA . Khi đú ta s d ng 1ể ể ố ữ ệ ể ề ử ụ
vi m ch chuyờn d ng là DMAC đi u khi n vi c trao đ i thụng tin.ạ ụ ề ể ệ ổ
Trang 30+ VD: vi m ch đi u khi n chuyờn d ng 8237A cho h 16 bit c a Intel.ạ ề ể ụ ệ ủ
CPU
Ngoại vi có yêu cầu DMA
Cổng Vào/Ra
DMAC 8237A
BUS số liệu
Đ iều khiển đọc/ghi
HOLD HLDA
BUS địa chỉ
Bộ nhớ
DRQ DACK
+ Trong ch đ DMA thỡ CUP s treo cỏc BUS s li u, đ a ch và cỏc dõy đi uế ộ ẽ ố ệ ị ỉ ề khi n đ c /ghi đ DMAC chi m d ng (nh ng quy n đi u khi n cho DMAC). ể ọ ể ế ụ ườ ề ề ể
+ DMAC s đi u khi n toàn b ho t đ ng trao đ i d li u c a h do đú CMACẽ ề ể ộ ạ ộ ổ ữ ệ ủ ệ
ph i t o ra đ c cỏc tớn hi u gi ng nh CPU, đ ng th i ph i là m ch l p trỡnh đ cả ạ ượ ệ ố ư ồ ờ ả ạ ậ ượ
đ CPU g i tớn hi u đi u khi n t i.ể ử ệ ề ể ớ
+ Th c t t n t i 3 ki u DMA là :ự ế ồ ạ ể
- Treo CPU đ trao đ i c m ng d li u.ể ổ ả ả ữ ệ
- Treo đ trao đ i t ng byte.ể ổ ừ
- T n d ng Th i gian đ trao đ i d li u.ậ ụ ờ ể ổ ữ ệ
2. Trao đ i c m ng d li u.ổ ả ả ữ ệ
+ Trong quỏ trỡnh này CPU s b treo trong su t quỏ trỡnh trao đ i d li u. Cỏc thaoẽ ị ố ổ ữ ệ tỏc đ c th c hi n trong quỏ trỡnh này đ chuy n m ng d li u t b nh ra ngo i viượ ự ệ ể ể ả ữ ệ ừ ộ ớ ạ là:
- CPU phỏt l nh đi u khi n và l nh ch đ vào DMAC đ quy đ nh cỏch th c làmệ ề ể ệ ế ộ ể ị ứ
vi c, đ a ch đ u ra và đ dài m ng nh …ệ ị ỉ ầ ộ ả ớ
- Khi ngo i vi cú yờu c u trao đ i d li u nú s đ a tớn hi u đ n chõn DRQ c aạ ầ ổ ữ ệ ẽ ư ệ ế ủ DMAC, sau đú DMAC s đ a tớn hi u yờu c u đ n chõn HOLD c a CPU. Tớn hi uẽ ư ệ ầ ế ủ ệ HOLD ph i m c cao trong su t quỏ trỡnh trao đ i d li u.ả ở ứ ố ổ ữ ệ
- Nh n đ c yờu c u CPU k t thỳc chu k BUS hi n t i sau đú treo cỏc BUS vàậ ượ ầ ế ỳ ệ ạ
đ a tớn hi u HOLD cho DMAC đ c toàn quy n s d ng BUS.ư ệ ượ ề ử ụ
- DMAC đ a ra xung DACK bỏo cho ngo i vi b t đ u trao đ i d li u.ư ạ ắ ầ ổ ữ ệ
- Khi DMAC k t thỳc thỡ CPU l i dành quy n đi u khi n h th ng.ế ạ ề ề ể ệ ố
3. Trao đ i t ng byte.ổ ừ
Trang 31+ Trong cách này CPU b treo trong kho ng Th i gian ng n đ đ trao đ i 1 byte.ị ả ờ ắ ủ ể ổ Khi đó t c đ th c hi n công vi c c a CPU ch b gi m mà không d ng l i. Cách th cố ọ ự ệ ệ ủ ỉ ị ả ừ ạ ự
hi n t ng t nh ng m i l n treo thì ch th c hi n trao đ i 1 byte d li u.ệ ươ ự ư ỗ ầ ỉ ự ệ ổ ữ ệ
4. Trao đ i khi BUS r i.ổ ỗ
+ Trong cách này ph i có m ch logic ngoài đ phát hi n BUS r i. Khi đó DMACả ạ ể ệ ỗ
s làm ch BUS và đi u khi n trao đ i d li u.ẽ ủ ề ể ổ ữ ệ 3. vào ra đi u khi n theo c chề ể ơ ế DMA
Trang 32BÀI 4: H VI ĐI U KHI N 8 BÍT H 8051Ệ Ề Ể Ọ
1. C u trúc ph n c ng h vi đi u khi n 8051 .ấ ầ ứ ọ ề ể
1.1 Gi i thi u chung.ớ ệ
8051 là vi đi u khi n đ u tiên c a h vi đi u khi n MCS51 đề ể ầ ủ ọ ề ể ược Intel s nả
xu t vào năm 1980.ấ
H MCS51 là h 8bit có trên 60000 transistor . Có 4Kbyte ROM, 128 byteọ ọ RAM, 32 đường su t nh p, 2 b đ nh th i 16 bit. ấ ậ ộ ị ờ
II. T ch c b nh h vi đi u khi nổ ứ ộ ớ ọ ề ể :
Vi đi u khi n hay vi x lý là các IC l p trình, khi chúng ta đã thi t k hề ể ử ậ ế ế ệ
th ng đi u khi n có s d ng vi x lý hay vi đi u khi n ví d nh h th ng đi uố ề ể ử ụ ử ề ể ụ ư ệ ố ề khi n đèn giao thông cho m t ngã t g m có các đèn Xanh, Vàng, Đ và các led 7ể ộ ư ồ ỏ
đo n đ hi n th th i gian thì đó m i ch là ph n c ng, mu n h th ng v n hànhạ ể ể ị ờ ớ ỉ ầ ứ ố ệ ố ậ thì chúng ta ph i vi t m t chả ế ộ ương trình đi u khi n n p vào b nh n i bên trongề ể ạ ộ ớ ộ
vi đi u khi n ho c b nh bên ngoài và g n vào trong h th ng đ h th ngề ể ặ ộ ớ ắ ệ ố ể ệ ố
v n hành và dĩ nhiên b n ph i vi t đúng thì h th ng m i v n hành đúng.ậ ạ ả ế ệ ố ớ ậ
Chương trình g i là ph n m m.ọ ầ ề
Ph n m m và ph n c ng có quan h V i nhau, ngầ ề ầ ứ ệ ớ ườ ậi l p trình ph i hi u rõả ể
ho t đ ng c a ph n c ng đ vi t chạ ộ ủ ầ ứ ể ế ương trình. ph n này s trình bày chi ti tỞ ầ ẽ ế
v t p l nh c a vi đi u khi n giúp b n hi u rõ t ng l nh đ b n có th l pề ậ ệ ủ ề ể ạ ể ừ ệ ể ạ ể ậ trình được
Ch ươ ng trình là m t t p h p các l nh độ ậ ợ ệ ượ ổc t ch c theo m t trình t h p líứ ộ ự ợ
đ gi i quy t đúng các yêu c u c a ngể ả ế ầ ủ ườ ậi l p trình
Ngườ ậi l p trình là người bi t gi i thu t đ vi t chế ả ậ ể ế ương trình và s p x pắ ế đúng các l nh theo gi i thu t. Ngệ ả ậ ườ ậi l p trình ph i bi t ch c năng c a t t cả ế ứ ủ ấ ả các l nh c a vi đi u khi n đ vi t chệ ủ ề ể ể ế ương trình
T t c các l nh có th có c a m t ngôn ng l p trình còn g i là ấ ả ệ ể ủ ộ ữ ậ ọ t p l nh
H vi đi u khi n 8051 đ u có chung 1 t p l nh, các vi đi u khi n th h sauọ ề ể ề ậ ệ ề ể ế ệ
ch phát tri n nhi u v ph n c ng còn l nh thì ít m r ng.ỉ ể ề ề ầ ứ ệ ở ộ
T p l nh h 8051 có mã l nh 8 bit nên có kh năng cung c p 28= 256 l nh.ậ ệ ọ ệ ả ấ ệ
Có l nh có 1 ho c 2 byte b i d li u ho c đ a ch thêm vào Opcode.ệ ặ ở ữ ệ ặ ị ỉ
Trang 33Trong toàn b t p l nh c a vi đi u khi n có 139 l nh 1 byte, 92 l nh 2 byteộ ậ ệ ủ ề ể ệ ệ
và 24 l nh 3 byte.ệ
L nh ệ c a vi đi u khi n là m t s nh phân 8 bit [còn g i là mã máy]. 256 byteủ ề ể ộ ố ị ọ
t 0000 0000b đ n 1111 1111b từ ế ương ng V i 256 l nh khác nhau. Do mã l nhứ ớ ệ ệ
d ng s nh phân quá dài và khó nh nên các nhà l p trình đã xây d ng m t ngônạ ố ị ớ ậ ự ộ
ng l p trình Assembly cho d nh , đi u này giúp cho vi c l p trình đữ ậ ễ ớ ề ệ ậ ược th cự
hi n m t cách d dàng và nhanh chóng cũng nh đ c hi u và g r i chệ ộ ễ ư ọ ể ỡ ố ươ ngtrình.
Khi vi t chế ương trình b ng ngôn ng l p trình Assembly thì vi đi u khi n sằ ữ ậ ề ể ẽ không th c hi n đự ệ ược mà ph i dùng chả ương trình biên d ch Assembler đị ể chuy n đ i các l nh vi t b ng Assembly ra mã l nh nh phân tể ổ ệ ế ằ ệ ị ương ng r i n pứ ồ ạ vào b nh – khi đó vi đi u khi n m i th c hi n độ ớ ề ể ớ ự ệ ược chương trình
Ngôn ng l p trình Assembly do con ngữ ậ ườ ại t o ra, khi s d ng ngôn ngử ụ ữ Assembly đ vi t thì ngể ế ườ ậi l p trình vi đi u khi n ph i h c h t t t c các l nhề ể ả ọ ế ấ ả ệ
và vi t đúng theo qui ế ước v co pháp, trình t s p x p d li u đ chề ́ ự ắ ế ữ ệ ể ương trình biên d ch có th biên d ch đúng.ị ể ị
1.2. S đ c u trúc c a h vi đi u khi n 8051ơ ồ ấ ủ ọ ề ể
S đ kh i b vi x lý 8051ơ ồ ố ộ ử1.3. T ch c b nh c a vi đi u khi n 8051 .ổ ứ ộ ớ ủ ề ể
Trang 341.4 B trí chân tín hi uố ệ
Có 32 chân riêng bi t t P0.0 đ n P3.7 đệ ừ ế ợc chia thành 4 c ng (g i là port) 8 bit.ổ ọ
M i c ng 8 bit có th đ c dùng nh m t đ n v giao ti p ho c m i đỗ ổ ể ượ ư ộ ơ ị ế ặ ỗ ường có thể
ho t đ ng đ c l p.ạ ộ ộ ậ
+ Port 0 là các chân 32 đ n 39 t P0.0 đ n P0.7 đế ừ ế ược dùng làm nhi m v xu tệ ụ ấ
nh p. Trong m t s tr ng h p thì port 0 đ c dùng làm bus đ a ch và bus d li u đaậ ộ ố ườ ợ ượ ị ỉ ữ ệ
h p.ợ
+ Port 1 g m các chân 1 đ n 8 là các chân P1.0 đ n P1.7 đồ ế ế ược dùng đ giao ti pể ế
V i thi t b bên ngoài khi có yêu c u. ớ ế ị ầ Không có thêm b t k ch c năng nào n a đấ ỳ ứ ữ ượ cgán cho các chân port 1 này
+ Port 2 g m các chân t 21 đ n 28 là P2.0 đ n P2.7 có 2 công d ng ho c làmồ ừ ế ế ụ ặ nhi m v su t nh p ho c là byte đ a ch cao c a bus đ a ch 16 bit cho các thi t k cóệ ụ ấ ậ ặ ị ỉ ủ ị ỉ ế ế
b nh Ch ng trình ngoài ho c các thi t k có nhi u h n 256 byte b nh d li uộ ớ ươ ặ ế ế ề ơ ộ ớ ữ ệ ngoài
+ Port 3 g m các chân 10 đ n chân 17 là các chân P3.0 đ n P3.7 chúng có 2 côngồ ế ế
d ng:ụ
* Là các chân xu t nh p tín hi u.ấ ậ ệ
Trang 35* Khi không xu t nh p tín hi u thì m i 1 chân này có nhi u ch c năng riêng liênấ ậ ệ ỗ ề ứ quan đ n các đ c trế ặ ưng c th c a h VXL 8051.ụ ể ủ ọ
+ Chân 29 chân PSEN là chân cho phép truy xu t b nh Ch ng trình ngoài, chânấ ộ ớ ươ này th ng đ c n i V i chân cho phép xu t c a EPROM (ho c ROM) đ cho phépườ ượ ố ớ ấ ủ ặ ể
đ c các byte.ọ
+ Chân 30 (ALE) là chân truy xu t tín hi u cho phép ch t đ a ch ấ ệ ố ị ỉ
+ Chân 31 (EA) là chân truy xu t ngoài. Các phiên b n EPROM c a 8051 còn sấ ả ủ ử
d ng chân này làm chân nh n đi n áp c p đ ti n hành n p s li u vào EPROM.ụ ậ ệ ấ ể ế ạ ố ệ
+ Chân 9 (RST) là chân reset dùng đ thi t l p l i tr ng thái ban đ u cho h th ng.ể ế ậ ạ ạ ầ ệ ố+ Hai chân 18, 19 là 2 chân nh n t n s xung nh p 12MHz cho h u h t các chíp c aậ ầ ố ị ầ ế ủ
h MCS51.ọ
+ Chân 20 (Vss) là chân n i đ t c a VXL8051.ố ấ ủ
+ Chân 40 (Vcc) là chân c p ngu n nuôi c a 5V cho VXL 8051.ấ ồ ủ
Trang 36 Trong trường h p này các thanh ghi R0 đ n R7 làm vi c nh 1 con tr vàợ ế ệ ư ỏ
N i dung c a chúng ch ra đ a ch trong RAM n i mà đ a ch độ ủ ỉ ị ỉ ơ ị ỉ ược đ c hay ghi.ọVD: n u thanh ghi R1 ch a 40H và đ a ch 40H c a RAM là 55H thì l nhế ứ ị ỉ ủ ệ MOV A,@R1 có nghĩa là n p s 55H cho thanh ch a A.ạ ố ứ
2.5. Ch đ đ a ch tế ộ ị ỉ ương đ i .ố
Ch đỉ ượ ử ục s d ng cho các l nh nh y. m t đ a ch tệ ả ộ ị ỉ ương đ i là 1 giá tr 8 bitố ị
có d u, giá tr này đấ ị ược c ng V i b đ mChộ ơ ộ ế́ ương trình đ t o thành đ a ch c aể ạ ị ỉ ủ
l nh ti p theo đệ ế ược th c thi.ự
2.6 . Ch đ đ a ch tuy t đ i .ế ộ ị ỉ ệ ố
ch s d ng cho các l nh r nhánhChỉ ử ụ ệ ẽ ương trình
2.7. Ch đ đ a ch dài .ế ộ ị ỉ
2.8. Ch đ đ a ch ch s .ế ộ ị ỉ ỉ ố
S d ng 1 thanh ghi n n và 1 thanh ch a A t o thành d ng đ a ch hi uử ụ ề ứ ạ ạ ị ỉ ệ
d ng cho l nh nh y ho c di chuy n s li u. ụ ệ ả ặ ể ố ệ
3. T p l nh c a Vi đi u khi n 8051 .ậ ệ ủ ề ể
KI U D LI U VÀ CH D NỂ Ữ Ệ Ỉ Ẫ
Ch l nh DB là m t ch l nh d li u đỉ ệ ộ ỉ ệ ữ ệ ượ ử ục s d ng r ng rãi nh t trong h pộ ấ ợ
ng Nó đữ ược dùng đ đ nh nghĩa d li u 8 bit. Khi DB để ị ữ ệ ược dùng đ đ nh nghĩaể ị byte d li u thì các s có th d ng th p phân, nh phân, Hex ho c d ng th cữ ệ ố ể ở ạ ậ ị ặ ở ạ ứ ASII. Đ i V i d li u th p phân thì c n đ t ch “D” sau s th p phân, đ i V iố ơ ữ ệ́ ậ ầ ặ ữ ố ậ ố ơ ́
s nh phân thì đ t ch “B” và đ i V i d li u d ng Hex thì c n đ t ch “H”.ố ị ặ ữ ố ơ ữ ệ́ ạ ầ ặ ữ
B t k ta s d ng s d ng th c nào thì h p ng đ u chuy n đ i chúng vấ ể ử ụ ố ở ạ ứ ợ ữ ề ể ố ề thành d ng Hex. Đ báo d ng th c d ng mã ASCII thì ch c n đ n gi n đ t nóạ ể ạ ứ ở ạ ỉ ầ ơ ả ặ vào d u nháy đ n ‘nh th này’. H p ng s gán mã ASCII cho các s ho c cácấ ơ ư ế ợ ữ ẽ ố ặ
Trang 37ký t m t cách t đ ng. Ch l nh DB ch là ch l nh mà có th đự ộ ự ộ ỉ ệ ỉ ỉ ệ ể ược s d ng đử ụ ể
đ nh nghĩa các chu i ASCII l n h n 2 ký t Do v y, nó có th đị ỗ ớ ơ ự ậ ể ược s d ngử ụ cho t t c m i đ nh nghĩa d li u ASCII. Dấ ả ọ ị ữ ệ ưới đây là m t s ví d v DB:ộ ố ụ ề
ORG 500H
DATA1: DB2B ; S th p phân (1C d ng Hex)ố ậ ở ạ
DATA2: DB00110101B ; S nh phân (35 d ng Hex)ố ị ở ạ
DATA3: DB39H ; S d ng Hexố ạ
ORG 510H
DATA4: DB“2591” ; Các s ASCIIố
ORG 518H
DATA5 DB“My name is Joe” ; Các ký t ASCIIự
Các chu i ASCII có th s d ng d u nháy đ n ‘nh th này’ ho c nháyỗ ể ử ụ ấ ơ ư ế ặ kép “nh th này”. Dùng d u ph y kép s h u ích h n đ i V i trư ế ấ ẩ ẽ ữ ơ ố ớ ường h p d uợ ấ nháy đ n đơ ược dùng s h u cách nh th này “Nhà O’ Leary”. Ch l nh DB cũngở ữ ư ế ỉ ệ
được dùng đ c p phát b nh theo t ng đo n kích thể ấ ộ ớ ừ ạ ước m t byte.ộ
1 Ch l nh ORG: Ch l nh ORG đỉ ệ ỉ ệ ược dùng đ báo b t đ u c a đ a ch Sể ắ ầ ủ ị ỉ ố
đi sau ORG có k d ng Hex ho c th p phân. N u s này có kèm ch H đ ngể ở ạ ặ ậ ế ố ữ ằ sau thì là d ng Hex và n u không có ch H sau là s th p phân và h p ngở ạ ế ữ ở ố ậ ợ ữ
s chuy n nó thành s Hex. M t s h p ng s d ng d u ch m đ ng trẽ ể ố ộ ố ợ ữ ử ụ ấ ấ ứ ướ c
“ORG” thay cho “ORG”. Hãy đ c k v trình h p ng ta s d ng.ọ ỹ ề ợ ữ ử ụ
2. Ch l nh EQU: Đỉ ệ ược dùng đ đ nh nghĩa m t h ng s mà không chi mể ị ộ ằ ố ế ngăn nh nào. Ch l nh EQU không dành ch c t cho d li u nh ng nó g n m tớ ỉ ệ ỗ ấ ữ ệ ư ắ ộ giá tr h ng s V i nhãn d li u sao cho khi nhãn xu t hi n trong chị ằ ố ớ ữ ệ ấ ệ ương trình giá tr h ng s c a nó s đị ằ ố ủ ẽ ược thay th đ i V i nhãn. Dế ố ớ ưới đây s d ng EQUử ụ cho h ng s b đ m và sau đó h ng s đằ ố ộ ế ằ ố ược dùng đ n p thanh ghi RS.ể ạ
COUNT EQU 25
MOV R3, #count
Khi th c hi n l n “MOV R3, #COUNT” thì thanh ghi R3 s đự ệ ệ ẽ ược n p giá trạ ị
25 (chú ý đ n d u #). V y u đi m c a vi c s d ng EQU là gì? Gi s có m tế ấ ậ ư ể ủ ệ ử ụ ả ử ộ
h ng s (m t giá tr c đ nh) đằ ố ộ ị ố ị ược dùng trong nhi u ch khác nhau trong chề ỗ ươ ngtrình và l p trình viên mu n thay đ i giá tr c a nó trong c chậ ố ổ ị ủ ả ương trình. B ngằ
Trang 38vi c s d ng ch l nh EQU ta có th thay đ i m t s l n và h p ng s thay đ iệ ử ụ ỉ ệ ể ổ ộ ố ầ ợ ữ ẽ ổ
t t c m i l n xu t hi n c a nó là tìm toàn b chấ ả ọ ầ ấ ệ ủ ộ ương trình và g ng tìm m i l nắ ọ ầ
xu t hi n.ấ ệ
3. Ch l nh END: M t l nh quan tr ng khác là ch l nh END. Nó báo choỉ ệ ộ ệ ọ ỉ ệ trình h p ng k t thúc c a t p ngu n “asm” ch l nh END là dòng cu i cùng c aợ ữ ế ủ ệ ồ ỉ ệ ố ủ
chương trình 8051 có nghĩa là trong mã ngu n thì m i th sau ch l nh END đồ ọ ứ ỉ ệ ể
b trình h p ng b qua. M t s trình h p ng s d ng .END có d u ch m đ ngị ợ ữ ỏ ộ ố ợ ữ ử ụ ấ ấ ứ
trước thay cho END
2.5.4 Các quy đ nh đ V i nhãn trong h p ng ị ố ớ ợ ữ
B ng cách ch n các tên nhãn có nghĩa là m t l p trình viên có th làm choằ ọ ộ ậ ể
chương trình d đ c và d b o trì h n, có m t s quy đ nh mà các tên nhãn ph iễ ọ ễ ả ơ ộ ố ị ả tuân theo. Th nh t là m i tên nhãn ph i th ng nh t, các tên đứ ấ ỗ ả ố ấ ượ ử ục s d ng làm nhãn trong h p ng g m các ch cái vi t hoa và vi t thợ ữ ồ ữ ế ế ường, các s t 0 đ n 9ố ừ ế
và các d u đ c bi t nh : d u h i (?), d u (ấ ặ ệ ư ấ ỏ ấ ), d u g ch dấ ạ ưới ( ), d u đô là ($) vàấ
d u chu k (.). Ký t đ u tiên c a nhãn ph i là m t ch cái. Hay nói cách khác làấ ỳ ự ầ ủ ả ộ ữ
nó không th là s Hex. M i trình h p ng có m t s t d tr là các t g i nhể ố ỗ ợ ữ ộ ố ừ ự ữ ừ ợ ớ cho các l nh mà không đệ ược dùng đ làm nhãn trong chể ương trình. Ví d nhụ ư
“MOV” và “ADD”. Bên c nh các t g i nh còn có m t s t d tr khác, hãyạ ừ ợ ớ ộ ố ự ự ữ
ki m tra b n li t kê các t d phòng c a h p ng ta đang s d ng.ể ả ệ ừ ự ủ ợ ữ ử ụ
4.1 ng d ng đi u khi n LED đ nứ ụ ề ể ơ
4.2. ng d ng đi u khi n LED 7 đo n ứ ụ ề ể ạ
4.3. ng d ng đi u khi n LED ma tr nứ ụ ề ể ậ
4.4. ng d ng đi u khi n ADC và DAC ứ ụ ề ể
4.5 . ng d ng đi u khi n đ ng c bứ ụ ề ể ọ ơ ước
Trang 393.2. Các ki u đ nh đ a ch c a vi đi u khi n 8051 ể ị ị ỉ ủ ề ể
Các ki u đ nh đ a ch là m t qui ể ị ị ỉ ộ ước th ng nh t c a t p l nh. Các ki u đ nhố ấ ủ ậ ệ ể ị
đ a ch cho phép đ nh rõ n i l y d li u ho c n i nh n d li u tùy thu c vàoị ỉ ị ơ ấ ữ ệ ặ ơ ậ ữ ệ ộ cách th c s d ng l nh c a ngứ ử ụ ệ ủ ườ ậi l p trình
Vi đi u khi n h MCS51 có 8 ki u đ nh đ a ch nh sau:ề ể ọ ể ị ị ỉ ư
Ki u đ nh đ a ch dùng thanh ghi.ể ị ị ỉ
Ki u đ nh đ a ch tr c ti p.ể ị ị ỉ ự ế
Ki u đ nh đ a ch gián ti p.ể ị ị ỉ ế
Ki u đ nh đ a ch t c th i.ể ị ị ỉ ứ ờ
Ki u đ nh đ a ch tể ị ị ỉ ương đ i.ố
Ki u đ nh đ a ch tuy t đ i.ể ị ị ỉ ệ ố
Ki u đ nh đ a ch dài.ể ị ị ỉ
Ki u đ nh đ a ch đ nh v ể ị ị ỉ ị ị
3.2.1. Ki u đ nh đ a ch dùng thanh ghi (Register Addressing) :ể ị ị ỉ
Ki u này thể ường được dùng cho các l nh x lý d li u mà d li u luônệ ử ữ ệ ữ ệ
l u trong ư các thanh ghi. Đ i V i vi đi u khi n thì mã l nh thu c ki u này ch cóố ớ ề ể ệ ộ ể ỉ
1 byte
Ví d : Mov A,R1 ụ ; copy n i dung thanh ghi R1 vào thanh ghi A ộ
3.2.2. Ki u đ nh đ a ch tr c ti p (Direct Addressing) :ể ị ị ỉ ự ế
Ki u này thể ường được dùng đ truy xu t d li u c a b t k ô nh nàoể ấ ữ ệ ủ ấ ỳ ớ trong 256 byte b nh RAM n i c a vi đi u khi n 89C51.ộ ớ ộ ủ ề ể
Các l nh thu c ki u này thệ ộ ể ường có mã l nh 2 byte: byte th nh t là mãệ ứ ấ
l nh, byte th 2 là ệ ứ đ a ch c a ô nhị ỉ ủ ớ:
Ví d : Mov A,05H ụ ; copy n i dung ô nh có đ a ch 05H vào thanh ghi A ộ ớ ị ỉ
3.2.3. Đ nh đ a ch gián ti p (Indirect Addressing) :ị ị ỉ ế
Ki u đ nh đ a ch gián ti p để ị ị ỉ ế ượ ược t ng tr ng b i ký hi u @ và đư ở ệ ược đ tặ
trước các thanh ghi R0, R1 hay DPTR. R0 và R1 có th ho t đ ng nh m t thanhể ạ ộ ư ộ ghi con tr , n i dung c a nó cho bi t đ a ch c a m t ô nh trong RAM n i màỏ ộ ủ ế ị ỉ ủ ộ ớ ộ
d li u s ghi ho c s đ c. Còn DPTR dùng đ truy xu t ô nh ngo i. Các l nhữ ệ ẽ ặ ẽ ọ ể ấ ớ ạ ệ thu c d ng này ch có 1 byte.ộ ạ ỉ
Trang 40Ví d : Mov A,@R1 ụ ; copy n i dung ô nh có đ a ch trong thanh ghi R1 ộ ớ ị ỉ vào thanh ghi A
Ki u đ nh đ a ch tể ị ị ỉ ương đ i ch s d ng V i nh ng l nh nh y. N i nh yố ỉ ử ụ ớ ữ ệ ả ơ ả
đ n có đ a ch b ng đ a ch đang l u trong thanh ghi PC c ng V i 1 giá tr 8 bitế ị ỉ ằ ị ỉ ư ộ ớ ị [còn g i là giá tr l ch tọ ị ệ ương đ i: relative offset] có giá tr t – 128 đ n +127 nênố ị ừ ế
vi đi u khi n có th nh y lùi [n u s c ng V i s âm] và nh y t i [ n u sề ể ể ả ế ố ộ ơ ố́ ả ớ ế ố
c ng V i s dộ ơ ố ướ ng]. L nh này có mã l nh 2 byte, byte th 2 chính là giá tr l chệ ệ ứ ị ệ
tương đ i.ố
N i nh y đ n thơ ả ế ường được xác đ nh b i nhãn (label) và trình biên d ch sị ở ị ẽ tính toán giá tr l ch.ị ệ
Đ nh v tị ị ương đ i có u đi m là mã l nh c đ nh khi thay đ i đ a ch ,ố ư ể ệ ố ị ổ ị ỉ
nh ng khuy t đi m là ch nh y ng n trong ph m vi 128÷127 byte [256byte],ư ế ể ỉ ả ắ ạ
n u n i nh y đ n xa h n thì l nh này không đáp ng đế ơ ả ế ơ ệ ứ ược – s có l i.ẽ ỗ
Ví d : Sjmp X1 ụ ;nh y đ n nhãn có tên là X1 n m trong t m v c 256 byte ả ế ằ ầ ự
3.2.6. Đ nh đ a ch tuy t đ i (Absolute Addressing) :ị ị ỉ ệ ố
Ki u đ nh đ a ch tuy t đ i để ị ị ỉ ệ ố ược dùng V i các l nh ACALL và AJMP.ớ ệ Các l nh này có mã l nh 2 byte cho phép phân chia b nh theo trang m i trangệ ệ ộ ớ ỗ
có kích thước đúng b ng 2Kbyte so V i giá tr ch a trong thanh ghi PC hi nằ ớ ị ứ ệ hành. 11 bit đ a ch A10÷A0 đị ỉ ược thay th cho 11 đ a ch th p trong thanh ghi PCế ị ỉ ấ
n m trong c u trúc mã l nh nh sau:ằ ấ ệ ư
Đ nh đ a ch tuy t đ i có u đi m là mã l nh ng n (2 byte), nh ng khuy tị ị ỉ ệ ố ư ể ệ ắ ư ế
đi m là mã l nh thay đ i và gi i h n ph m vi n i nh y đ n, g i đ n không quáể ệ ổ ớ ạ ạ ơ ả ế ọ ế
2 kbyte
Ví d 6: Ajmp X1 ụ ;nh y đ n nhãn có tên là X1 n m trong t m v c 2 kbyte ả ế ằ ầ ự
3.2.7. Đ nh đ a ch dài (Long Addressing) :ị ị ỉ