Tải bản đầy đủ (.doc) (81 trang)

Luận án tốt nghiệp ngành điện tử viễn thông

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (638.51 KB, 81 trang )

Lu n án t t nghi pậ ố ệ
B Giáo D c và ào T oộ ụ Đ ạ
i H c Qu c Gia Tp.H Chí MinhĐạ ọ ố ồ
Tr ng H S Ph m K Thu tườ Đ ư ạ ĩ ậ
Khoa i nĐ ệ
B Môn : i n Tộ Đ ệ ử
NHI M V LU N V N T T NGHI PỆ Ụ Ậ Ă Ố Ệ
Sinh viên th c hi n : ự ệ TR N I NGH A Ầ ĐẠ Ĩ
L p : 95 Kớ ĐĐ
MSSV : 95101099
S đi n tho i : 8854340 ( Tp.H Chí Minh ).ố ệ ạ ồ
1/ Tên tài : đề
i n N ng K i n T Giao Ti p Máy Tính Đ ệ ă ế Đ ệ ử ế
2/ N i Dung Lu n V n T t Nghi p :ộ ậ ă ố ệ
Tính toán các thông s k thu t.ố ĩ ậ
Thi t k ph n c ng.ế ế ầ ứ
Gi i thi u ph n m m.ớ ệ ầ ề

3/ Các B n V :ả ẽ
S đ nguyên lí.ơ ồ
4/ Giáo Viên H ng D n : ướ ẫ Th y QUÁCH THANH H I ầ Ả
5/ Ngày Giao Nhi m V : 13 / 12 / 1999ệ ụ .

6/ Ngày Hoàn Thành Nhi m V : 28 / 2 / 2000.ệ ụ
Giáo Viên H ng D n Kí Tên : ướ ẫ
_ _ _ _ _ _ _ _ _ _ _ _ _ Thông Qua B Môn ộ
_ _ _ _ _ _ _ _ _ _ _ _ _ Ngày … tháng … n m 2000.ă
_ _ _ _ _ _ _ _ _ _ _ _ _ Ch nhi m B Mônủ ệ ộ
_ _ _ _ _ _ _ _ _ _
Quách Thanh H i ả _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _


_ _ _
Lu n v n t t nghi pậ ă ố ệ
 L I GI I THI U :Ờ Ớ Ệ
Là sinh viên thu c ngành i n t , b n thân ng i làm đ tài t lâu đã có mong mu nộ Đ ệ ử ả ườ ề ừ ố
tr c khi ra tr ng s có c h i s d ng nh ng ki n th c đã h c đ t o ra m t s nướ ườ ẽ ơ ộ ử ụ ữ ế ứ ọ ể ạ ộ ả
ph m có ích cho xã h i c ng nh chính b n thân và đó c ng là d p đ đánh giá l i ki n th cẩ ộ ũ ư ả ũ ị ể ạ ế ứ
đã h c t p trong su t quá trình rèn luy n trên gi ng đ ng i h c. ọ ậ ố ệ ả ườ Đạ ọ
Lu n v n t t nghi p có l là c h i t t nh t mà nhà tr ng đã t o ra đ b n thânậ ă ố ệ ẽ ơ ộ ố ấ ườ ạ ể ả
ng i làm có d p th thách chính mình tr c khi ti p c n v i th c t .ườ ị ử ướ ế ậ ớ ự ế
Đ c s g i ý c a th y TR N SUM, ng i làm lu n v n đã quy t đ nh ch n đ tàiượ ự ợ ủ ầ Ầ ườ ậ ă ế ị ọ ề
“ i n n ng k đi n t giao ti p máy tính”. Tr c khi giao đ tài này th y TR NĐ ệ ă ế ệ ử ế ướ ề ầ Ầ
SUM c ng đã h i th có dám làm không vì đây là m t đ tài m i. Lúc đó b n thân ng i làmũ ỏ ử ộ ề ớ ả ườ
c ng c m th y h i lo nh ng c ng đã đ ng ý nh n đ tài và ch bi t là s c g ng h tũ ả ấ ơ ư ũ ồ ậ ề ỉ ế ẽ ố ắ ế
s c mình. ứ
“ i n n ng k i n tĐ ệ ă ế đ ệ ử” là m t đ tài ng d ng k thu t đi n t trong thi t b đoộ ề ứ ụ ĩ ậ ệ ử ế ị
l ng và hi n th s nh ng đã nâng cao h n m t chút so v i các thi t b đo l ng đi n tườ ể ị ố ư ơ ộ ớ ế ị ườ ệ ử
tr c đây là có kh n ng tính toán s li u đã thu th p b ng ph n m m và giao ti p đ cướ ả ă ố ệ ậ ằ ầ ề ế ượ
v i máy tính. i u này t o nhi u thu n l i cho vi c s d ng và đi u khi n, và đây c ng làớ Đ ề ạ ề ậ ợ ệ ử ụ ề ể ũ
xu h ng chung c a các thi t b ngày nay.ướ ủ ế ị
Nh v y, khâu c b n c a đ tài là đo l ng các đ i l ng đi n b ng các ph ng phápư ậ ơ ả ủ ề ườ ạ ượ ệ ằ ươ
truy n th ng nh ng vì các b ph n x lí phía sau là thi t b s cho nên tuy là v n đo đ cề ố ư ộ ậ ử ế ị ố ẫ ạ
các đ i l ng đó nh ng ph ng pháp đã có khác đi chút ít nh m làm t ng h p v i thi t bạ ượ ư ươ ằ ươ ợ ớ ế ị
đi n t .ệ ử
Khi đã có các đ i l ng đi n đ c đo đ c c th thì ph n công vi c ti p theo là doạ ượ ệ ượ ạ ụ ể ầ ệ ế
ph n m m ch u trách nhi m x lí thông qua m t thi t b có kh n ng tính toán và x líầ ề ị ệ ử ộ ế ị ả ă ử
d li u đó có th là m t vi x lí ho c m t vi đi u khi n có s k t n i v i các thi t bữ ệ ể ộ ử ặ ộ ề ể ự ế ố ớ ế ị
ph tr bên ngoài. ụ ợ
Đ tài do v y đã có s liên quan đ n khá nhi u v n đ lí thuy t, đi u này đòi h i b n thânề ậ ự ế ề ấ ề ế ề ỏ ả
ng i làm ph i c n ph i tìm tòi và v n d ng. ườ ả ầ ả ậ ụ
Trong xu th hi n nay là vi c đi n t hóa các thi t b ph c v cho con ng i nh mế ệ ệ ệ ử ế ị ụ ụ ườ ằ

ngày càng đáp ng đ c tr n v n yêu c u c a ng i dùng, do v y b n thân ng i làm đ tàiứ ượ ọ ẹ ầ ủ ườ ậ ả ườ ề
c m th y c n ph i rèn luy n mình nhi u h n n a không ch trong lu n v n t tả ấ ầ ả ệ ề ơ ữ ỉ ậ ă ố
nghi p ra tr ng mà m t đi u còn quan tr ng h n n a là khi đã ra tr ng v n ph iệ ườ ộ ề ọ ơ ữ ườ ẫ ả
không ng ng ph n đ u. ừ ấ ấ
2
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
K T LU N VÀ H NG PHÁT TRI N TÀI :Ế Ậ ƯỚ Ể ĐỀ
Đ tài “ề i n n ng k i n t giao ti p máy tínhĐ ệ ă ế đ ệ ử ế ” đã đ c hoàn thành trong th iượ ờ
h n đã giao. i v i m t đ tài m i thì vi c nghiên c u l n đ u ch c ch n khôngạ Đố ớ ộ ề ớ ệ ứ ầ ầ ắ ắ
th tránh kh i s thi u sót do v y tuy đã c g ng nhi u nh ng ng i làm đ tài v nể ỏ ự ế ậ ố ắ ề ư ườ ề ẫ
ch a th t s đáp ng đ c h t các yêu c u đ ra ban đ u, r t mong s thông c mư ậ ự ứ ượ ế ầ ề ầ ấ ự ả
c a quí Th y, Cô và các b n sinh viên.ủ ầ ạ
Nhìn chung, đ tài đã hoàn thành xong nh ng v n đ chính y u nh t và đi u đó giúp t oề ữ ấ ề ế ấ ề ạ
ra s n chung cho vi c nghiên c u phát tri n sau này. ườ ệ ứ ể
Đi u c n làm đ i v i ng i k t c đ tài là nghiên c u sâu h n t t c các v n đ đã nêuề ầ ố ớ ườ ế ụ ề ứ ơ ấ ả ấ ề
ra trong lu n v n t t nghi p nh m tìm ra ph ng pháp t t h n ho c hoàn ch nhậ ă ố ệ ằ ươ ố ơ ặ ỉ
ph ng pháp đã nêu, s g i ý này ch mang tính ch t chung chung mà đi u c n thi t là ph iươ ự ợ ỉ ấ ề ầ ế ả
bi t t suy ngh .ế ự ĩ
M ch đi n đã trình bày ch a ph i là m t m ch đi n hoàn h o vì vi c s d ng cácạ ệ ư ả ộ ạ ệ ả ệ ử ụ
thi t b ch a có s chu n hóa mà đ u ph i t n d ng các thi t b có s n, đây là m t đi uế ị ư ự ẩ ề ả ậ ụ ế ị ẵ ộ ề
b t bu c ngoài ý mu n. N u nh có th thì t t c các b ph n bên trong đi n n ngắ ộ ố ế ư ể ấ ả ộ ậ ệ ă
k đi n t đ u đ c ch t o chuyên dùng, khi đ c nh v y thì ch c ch n thi t bế ệ ử ề ượ ế ạ ượ ư ậ ắ ắ ế ị
ho t đ ng s chính xác và b n b h n nhi u. Nh ng đi u này ch có th tr thành hi nạ ộ ẽ ề ỉ ơ ề ư ề ỉ ể ở ệ
th c khi mô hình và lí thuy t tính toán th t chi ti t và chính xác sau đó c n tr i quaự ế ậ ế ầ ả
m t th i gian dài th nghi m và đi u ch nh. Sau khi đã đ t đ c t t c các thông s yêuộ ờ ử ệ ề ỉ ạ ượ ấ ả ố
c u và đ c ngành đi n l c ch p nh n thì lúc đó m i đ t hàng t i các xí nghi p đi n tầ ượ ệ ự ấ ậ ớ ặ ạ ệ ệ ử
đ s n xu t các b ph n. ây c ng là đi u mong m i l n nh t c a ng i làm đ tàiể ả ấ ộ ậ Đ ũ ề ỏ ớ ấ ủ ườ ề
này.
Ngoài ra, n u nh ph n m m có th đ c vi t t t h n s thay th cho m t sế ư ầ ề ể ượ ế ố ơ ẽ ế ộ ố
thi t b ph n c ng bên ngoài, nh ng lúc đó c n ph i l u ý v kh n ng ho t đ ng c aế ị ầ ứ ư ầ ả ư ề ả ă ạ ộ ủ

kh i x lí không th nào đáp ng đ c t t c các yêu c u t thi t b bên ngoài mà khôngố ử ể ứ ượ ấ ả ầ ừ ế ị
c n s tr giúp t m t thi t b ph n c ng. ầ ự ợ ừ ộ ế ị ầ ứ
C n ph i l u ý r ng, công vi c quan tr ng nh t c a kh i đi u khi n là thu th pầ ả ư ằ ệ ọ ấ ủ ố ề ể ậ
tín hi u t i các đ u dò và x lí d li u đ tính toán ra đ i l ng mong mu n là đi n n ngệ ạ ầ ử ữ ệ ể ạ ượ ố ệ ă
tiêu th , do v y khi vi t ph n m m đ đ m nh n nh ng công vi c thay th cho ph nụ ậ ế ầ ề ể ả ậ ữ ệ ế ầ
c ng bên ngoài t c là kh i x lí s ph i gánh vác thêm nhi m v thì có th gây ra s sai sứ ứ ố ử ẽ ả ệ ụ ể ự ố
quá m c cho phép và lúc đó ch ng trình s tr nên quá ph c t p. ứ ươ ẽ ở ứ ạ
Sinh viên th c hi n đ tài ự ệ ề
Tr n i Ngh aầ Đạ ĩ
3
Lu n v n t t nghi pậ ă ố ệ
CH NG 1:ƯƠ
TÓM L CƯỢ
CÁC V N LÍ THUY TẤ ĐỀ Ế
LIÊN QUAN TÀIĐỀ
4
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
tàiĐề : “ i n n ng k i n t giao ti p máy tínhĐ ệ ă ế đ ệ ử ế ” có liên quan n nhi u v n líđế ề ấ đề
thuy t. Nh ng trong ph m vi c a m t Lu n V n T t Nghi p, ng i làm tài không thế ư ạ ủ ộ ậ ă ố ệ ườ đề ể
trình bày chi ti t t ng v n c, mà ch c p n m t cách tóm l c nh m làm c s choế ừ ấ đề đượ ỉ đề ậ đế ộ ượ ằ ơ ở
các lí lu n sau này. Do v y n u các b n sinh viên n u có nhu c u tìm hi u sâu h n hãy nên thamậ ậ ế ạ ế ầ ể ơ
kh o trong các tài li u chuyên môn c a ngành.ả ệ ủ
A. VI I U KHI N 8951Đ Ề Ể
I . MÔ T C U TRÚC PH N C NG C A VI I U KHI N 8951.Ả Ấ Ầ Ứ Ủ Đ Ề Ể
1/ Gi i thi u h MCS51:ớ ệ ọ
MCS51 là m t h IC vi đi u khi n (Microcontroller ) do hãng Intel s nộ ọ ề ể ả
xu t. Các IC tiêu bi u cho h MCS51 là ấ ể ọ 8051 và 8031. c bi t, vi đi uĐặ ệ ề
khi n ể 8951 đ c s n xu t g n đây mang các đ c đi m sau:ượ ả ấ ầ ặ ể
 4 Kbytes EEPROM.
 128 bytes RAM.

 4 ports I/O (Input/Output).
 2 b đ nh th i (timer) 16 bits.ộ ị ờ
 Giao ti p n i ti p.ế ố ế
 64 Kbytes không gian b nh ch ng trình m r ng.ộ ớ ươ ở ộ
 64 Kbytes không gian b nh d li u m r ng.ộ ớ ữ ệ ở ộ
 M t b x lí lu n lí (thao tác trên các bit đ n).ộ ộ ử ậ ơ
 210 bits đ c đ a ch hóa.ượ ị ỉ
 B nhân chia 4 ộ µs.
5
Lu n v n t t nghi pậ ă ố ệ
2/ S l c v các chân c a 8951:ơ ượ ề ủ
µC 8951 có t t c 40 chân có ch c n ng nh các đ ng xu t nh p. Trongấ ả ứ ă ư ườ ấ ậ
đó có 24 chân có công d ng kép, m i đ ng có th ho t đ ng nh đ ngụ ỗ ườ ể ạ ộ ư ườ
xu t nh p ho c nh đ ng đi u khi n ho c là thành ph n c a bus d li uấ ậ ặ ư ườ ề ể ặ ầ ủ ữ ệ
và bus đ a ch .ị ỉ
2.1/ H th ng giao ti p port:ệ ố ế
a/ Port 0:
Port 0 là m t port hai ch c n ng trên các chân 32 – 39. Trong các thi t kộ ứ ă ế ế
c nh (không dùng b nh m r ng) nó có ch c n ng nh các đ ngỡ ỏ ộ ớ ở ộ ứ ă ư ườ
I/O. i v i các thi t k l n v i b nh m r ng, nó đ c h p kênhĐố ớ ế ế ớ ớ ộ ớ ở ộ ượ ợ
gi a bus d li u và byte th p c a bus đ a ch . ữ ữ ệ ấ ủ ị ỉ
6
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
b/ Port 1:
Port 1 là m t port I/O trên các chân 1 – 8. Các chân đ c kí hi u:ộ ượ ệ
P1.0 ; P1.1 ; P1.2 … có th dùng cho giao ti p v i các thi t b ngoài n uể ế ớ ế ị ế
c n. Port 1 không có ch c n ng khác, vì v y chúng ch đ c dùng choầ ứ ă ậ ỉ ượ
giao ti p v i các thi t b ngoài.ế ớ ế ị
c/ Port 2:
Port 2 là m t port công d ng kép trên các chân 21 – 28 đ c dùng nh cácộ ụ ượ ư

đ ng xu t nh p ho c là byte cao c a bus đ a ch đ i v i các thi t k dùngườ ấ ậ ặ ủ ị ỉ ố ớ ế ế
b nh m r ng.ộ ớ ở ộ
d/ Port 3:
Port 3 là m t port công d ng kép trên các chân 10 – 17. Các chân c a portộ ụ ủ
này có nhi u ch c n ng, các công d ng chuy n đ i có liên h v i các đ cề ứ ă ụ ể ổ ệ ớ ặ
tính đ c bi t c a 8951 nh b ng sau:ặ ệ ủ ư ở ả
Bit Tên Ch c n ng chuy n iứ ă ể đổ
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
INT0\
INT1\
T0
T1
WR\
RD\
D li u nh n cho port n i ti pữ ệ ậ ố ế
D li u phát cho port n i ti p ữ ệ ố ế
Ng t 0 bên ngoài ắ
Ng t 1 bên ngoàiắ
Ngõ vào c a Timer/counter 0ủ
Ngõ vào c a Timer/counter 1ủ
Xung ghi b nh d li u ngoài ộ ớ ữ ệ

Xung đ c b nh d li u ngoài ọ ộ ớ ữ ệ
2.2/ Các tín hi u đi u khi n:ệ ề ể
µC 8951 có 4 tín hi u đi u khi n:ệ ề ể
a/ PSEN\ (Program Store Enable):
PSEN\ là tín hi u ra trên chân 29. Nó là tín hi u đi u khi n cho phép bệ ệ ề ể ộ
nh ch ng trình m r ng, ớ ươ ở ộ PSEN\ th ng đ c n i đ n chân OEườ ượ ố ế
(Output Enable) c a m t EPROM đ cho phép đ c các byte mã l nh.ủ ộ ể ọ ệ
PSEN\ s m c th p trong th i gian l y l nh. Các mã nh phân c aẽ ở ứ ấ ờ ấ ệ ị ủ
ch ng trình đ c đ c t EPROM qua bus d li u và đ c ch t vàoươ ượ ọ ừ ữ ệ ượ ố
7
Lu n v n t t nghi pậ ă ố ệ
thanh ghi l nh c a ệ ủ 8951 đ gi i mã l nh. N u thi hành ch ng trìnhể ả ệ ế ươ
trong ROM n i (ộ 8951) thì PSEN\ s m c th đ ng (m c cao).ẽ ở ứ ụ ộ ứ
b/ ALE (Address Latch Enable):
Tín hi u ra ệ ALE trên chân 30 t ng h p v i các thi t b làm vi c v i cácươ ợ ớ ế ị ệ ớ
vi x lí 8085, 8088, 8086.ử
µC 8951 dùng ALE m t cách t ng t cho vi c gi i kênh các bus đ a chộ ươ ự ệ ả ị ỉ
và d li u. ữ ệ
Khi port 0 đ c dùng trong ch đ chuy n đ i: v a là bus d li u v a làượ ế ộ ể ổ ừ ữ ệ ừ
byte th p c a bus đ a ch , ấ ủ ị ỉ ALE là tín hi u đ ch t byte th p đ a ch vàoệ ể ố ấ ị ỉ
m t thanh ghi bên ngoài trong n a đ u chu kì b nh . Sau đó, các đ ngộ ử ầ ộ ớ ườ
port 0 dùng đ xu t nh p d li u trong n a sau c a chu kì b nh .ể ấ ậ ữ ệ ử ủ ộ ớ
Các xung tín hi u ệ ALE có t c đ b ng 1/6 l n t n s dao đ ng trênố ộ ằ ầ ầ ố ộ
chip và có th đ c dùng làm ngu n xung nh p cho các ph n khác c a hể ượ ồ ị ầ ủ ệ
th ng. N u xung nh p trên ố ế ị 8951 là 12 Mhz thì ALE có t n s 2 Mhz.ầ ố
Ch ngo i tr khi thi hành l nh MOVX, m t xung ALE s b m t.ỉ ạ ừ ệ ộ ẽ ị ấ
Trong tr ng h p là ườ ợ 8051 thì chân này c ng đ c làm ngõ vào cho xung l pũ ượ ậ
trình cho EPROM trong chip.
c/ EA\ (External Access):
Tín hi u vào ệ EA\ trên chân 31 th ng đ c m c lên m c cao (+5v)ườ ượ ắ ứ

ho c m c th p (GND). N u m c cao, ặ ứ ấ ế ở ứ 8951 thi hành ch ng trình tươ ừ
ROM n i trong kho ng đ a ch th p (4K). N u m c th p, ch ngộ ả ị ỉ ấ ế ở ứ ấ ươ
trình ch đ c thi hành t b nh m r ng. ỉ ượ ừ ộ ớ ở ộ
Khi dùng 8031, EA\ luôn đ c n i m c th p vì ượ ố ứ ấ 8031 không có b nhộ ớ
ch ng trình trên chip. N u ươ ế EA\ đ c n i m c th p thì b nhượ ố ứ ấ ộ ớ
ch ng trình bên trong ươ 8951 s b c m và ch ng trình ch đ c thi hànhẽ ị ấ ươ ỉ ượ
t EPROM m r ng.ừ ở ộ
Ng i ta còn dùng ườ EA\ làm chân c p đi n áp 21V khi l p trình choấ ệ ậ
EEPROM trong 8051.
d/ RST (Reset):
Ngõ vào RST trên chân 9 là ngõ reset c a ủ 8951. Khi tín hi u này đ c đ aệ ượ ư
lên m c cao (trong ít nh t 2 chu kì máy), các thanh ghi bên trong ứ ấ 8951
đ c t i nh ng giá tr thích h p đ kh i đ ng h th ng.ượ ả ữ ị ợ ể ở ộ ệ ố
e/ Các ngõ vào b dao ng trên chip:ộ độ
8
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
Nh đã th y trong các hình trên, ư ấ 8951 có m t b dao đ ng trên chip. Nóộ ộ ộ
th ng đ c n i v i m t th ch anh gi a hai chân 18 và 19. Các t giườ ượ ố ớ ộ ạ ữ ụ ữ
c ng c n thi t nh đã v . T n s th ch anh thông th ng là 12 Mhz.ũ ầ ế ư ẽ ầ ố ạ ườ
f/ Các chân ngu n:ồ
8951 ho t đ ng v i ngu n đ n +5V. Vcc đ c n i vào chân 40 và Vssạ ộ ớ ồ ơ ượ ố
(GND) đ c n i vào chân 20.ượ ố
3/ T ch c b nh :ổ ứ ộ ớ
3.1/ Kh o sát t ch c b nh 8951:ả ổ ứ ộ ớ
µC 8951 có b nh đ c t ch c theo c u trúc Harvard : có nh ngộ ớ ượ ổ ứ ấ ữ
vùng b nh riêng bi t cho ch ng trình và d li u. ộ ớ ệ ươ ữ ệ
Nh đã nói trên, c ch ng trình và d li u có th bên trong (ư ở ả ươ ữ ệ ể ở 8951); dù
v y chúng có th đ c m r ng b ng các thành ph n ngoài lên đ n t i đaậ ể ượ ở ộ ằ ầ ế ố
64 Kbytes b nh ch ng trình và 64 Kbytes b nh d li u.ộ ớ ươ ộ ớ ữ ệ
B nh bên trong bao g m ROM (ộ ớ ồ 8951) và RAM trên chip bao g mồ

nhi u thành ph n: Ph n l u tr đa d ng, ph n l u tr đ a ch hóa t ngề ầ ầ ư ữ ụ ầ ư ữ ị ỉ ừ
bit, các bank thanh ghi và các thanh ghi ch c n ng đ c bi t.ứ ă ặ ệ
FFFF
B nhộ ớ
ch ng trìnhươ
FFFF
FF

00 000
0

0000
B nh trên chipộ ớ B nh m r ng ộ ớ ở ộ

Tóm t t các vùng b nh c a 8951.ắ ộ ớ ủ
Hai đ c tính c n l u ý là:ặ ầ ư
9
Lu n v n t t nghi pậ ă ố ệ
 Các thanh ghi và các port xu t nh p ã c x p trong b nh và có th cấ ậ đ đượ ế ộ ớ ể đượ
truy xu t tr c ti p gi ng nh các a ch b nh khác.ấ ự ế ố ư đị ỉ ộ ớ
 Ng n x p bên trong RAM n i nh h n so v i RAM ngoài so v i b x lí khác.ă ế ộ ỏ ơ ớ ớ ộ ử
3.2/ Chi ti t v b nh RAM trên chip:ế ề ộ ớ
Nh s th y trong hình sau, RAM bên trong ư ẽ ấ 8951 đ c phân chia thành các bankượ
thanh ghi (00H – 1FH), RAM đ a ch hóa bit (20H – 2FH), RAM đa d ng (30H –ị ỉ ụ
7FH) và các thanh ghi ch c n ng đ c bi t trong kho ng (80H – FFH).ứ ă ặ ệ ả
 RAM a d ng:đ ụ
M c dù trên hình cho th y 80 bytes RAM đa d ng chi m các đ a ch t 30H – 7FH,ặ ấ ụ ế ị ỉ ừ
32 bytes d i cùng t 00H – 1FH c ng có th đ c dùng v i m c đích t ng tướ ừ ũ ể ượ ớ ụ ươ ự
(m c dù các đ a ch này đã có m c đích khác).ặ ị ỉ ụ
a chĐị ỉ a chĐị ỉ

byte a ch bit byteĐị ỉ a ch bitĐị ỉ
7F
RAM a d ngđ ụ
FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 _ D0 PSW
30 B8 _ _ _ BC B
B
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 P3
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 không đ c đ a ch hóa 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 không đ c đ a ch hóa bitượ ị ỉ TH1
22 17 16 15 14 13 12 11 10 8C không đ c đ a ch hóa bitượ ị ỉ TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B không đ c đ a ch hóa bitượ ị ỉ TL1
20 07 06 05 04 03 02 01 00 8A không đ c đ a ch hóa bitượ ị ỉ TL0
1F BANK 3 89 không đ c đ a ch hóa bitượ ị ỉ TMOD
18 88 8F 8E 8D 8C 8B 8A 89 88 TCON
17 BANK 2 87 không đ c đ a ch hóa bitượ ị ỉ PCON
10

0F BANK 1 83 không đ c đ a ch hóa bitượ ị ỉ DPH
08 82 không đ c đ a ch hóa bitượ ị ỉ DPL
07 BANK 0
( M c đ nh cho R0 – R7 )ặ ị
81 không đ c đ a ch hóa bitượ ị ỉ SP
00 80 87 86 85 84 83 82 81 80 P0

RAM CÁC THANH GHI CH C N NG C BI T Ứ Ă ĐẶ Ệ
Tóm t t b nh d li u trên chipắ ộ ớ ữ ệ
10
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
M i đ a ch trong vùng RAM đa d ng đ u có th đ c truy xu t t doọ ị ỉ ụ ề ể ượ ấ ự
dùng cách đánh đ a ch tr c ti p ho c gián ti p. Ví d , đ đ c n i dung ị ỉ ự ế ặ ế ụ ể ọ ộ ở
đ a ch 5FH c a RAM n i vào thanh ghi tích l y, l nh sau s đ c dùng:ị ỉ ủ ộ ũ ệ ẽ ượ
MOV A, 5FH
L nh này di chuy n 1 byte d li u dùng cách đánh đ a ch tr c ti p đ xácệ ể ữ ệ ị ỉ ự ế ể
đ nh “đ a ch ngu n” (5FH). ích nh n d li u đ c ng m xác đ nhị ị ỉ ồ Đ ậ ữ ệ ượ ầ ị
trong mã l nh là thanh ghi tích l y A.ệ ũ
RAM bên trong c ng có th đ c truy xu t dùng cách đánh đ a ch gián ti pũ ể ượ ấ ị ỉ ế
qua R0 hay R1. Ví d , hai l nh sau thi hành cùng nhi m v nh l nhụ ệ ệ ụ ư ệ
đ n trên:ơ ở
MOV R0, #5FH
MOV A, @R0
L nh đ u dùng đ a ch t c th i đ di chuy n giá tr 5FH vào thanh ghiệ ầ ị ỉ ứ ờ ể ể ị
R0, và l nh th hai dùng đ a ch gián ti p đ di chuy n d li u “đ c trệ ứ ị ỉ ế ể ể ữ ệ ượ ỏ
b i R0” vào thanh ghi tích l y.ở ũ
 RAM a ch hóa t ng bit:đị ỉ ừ
µ
C 8951 ch a 210 bits c a ch hóa, trong ó 128 bits là các a ch byteứ đượ đị ỉ đ ở đị ỉ
20H n 2FH, và ph n còn l i là trong các thanh ghi ch c n ng c bi t.đế ầ ạ ứ ă đặ ệ

Ý t ng truy xu t t ng bit riêng r b ng ph n m m là m t đ c tínhưở ấ ừ ẽ ằ ầ ề ộ ặ
ti n l i c a vi đi u khi n nói chung. Các bit có th đ c đ t, xóa, AND,ệ ợ ủ ề ể ể ượ ặ
OR, … v i m t l nh đ n. Trong khi đó, đa s các vi x lí đòi h i m tớ ộ ệ ơ ố ử ỏ ộ
chu i l nh đ c – s a – ghi đ đ t đ c hi u qu t ng t . H n n a,ỗ ệ ọ ử ể ạ ượ ệ ả ươ ự ơ ữ
các port I/O c ng đ c đ a ch hóa t ng bit làm đ n gi n ph n m m xu tũ ượ ị ỉ ừ ơ ả ầ ề ấ
nh p t ng bit.ậ ừ
Có 128 bits đ c đ a ch hóa đa d ng các byte 20H đ n 2FH. Các đ a chượ ị ỉ ụ ở ế ị ỉ
này đ c truy xu t nh các byte ho c nh các bit ph thu c vào l nhượ ấ ư ặ ư ụ ộ ệ
đ c dùng. Ví d , đ đ t bit 67H, ta dùng l nh sau:ượ ụ ể ặ ệ
SET 67H
Chú ý r ng “đ a ch bit 67H” là bit có tr ng s l n nh t (MSB) “đ aằ ị ỉ ọ ố ớ ấ ở ị
ch byte 2CH”. L nh trên s không tác đ ng đ n các bit khác đ a ch này.ỉ ệ ẽ ộ ế ở ị ỉ
Các vi x lí s ph i thi hành nhi m v t ng t nh sau:ử ẽ ả ệ ụ ươ ự ư
MOV A, 2CH ; đ c c byteọ ả
ORL A, #10000000B ; set MSB
MOV 2CH, A ; ghi l i c byteạ ả
11
Lu n v n t t nghi pậ ă ố ệ
 Các bank thanh ghi:
32 bytes th p nh t c a b nh n i là dành cho các bank thanh ghi. Bấ ấ ủ ộ ớ ộ ộ
l nh c a ệ ủ 8951 h tr 8 thanh ghi (R0 – R7) và theo m c đ nh (sau khiỗ ợ ặ ị
reset h th ng) các thanh ghi này các đ a ch 00H – 07H. L nh sau đâyệ ố ở ị ỉ ệ
s đ c n i dung đ a ch 05H vào thanh ghi tích l y : ẽ ọ ộ ở ị ỉ ũ
MOV A, R5
ây là l nh m t byte dùng đ a ch thanh ghi. T t nhiên, thao tác t ng tĐ ệ ộ ị ỉ ấ ươ ự
có th đ c thi hành b ng l nh 2 bytes dùng đ a ch tr c ti p n m trongể ượ ằ ệ ị ỉ ự ế ằ
byte th hai:ứ
MOV A, 05H
Các l nh dùng các thanh ghi R0 đ n R7 thì ng n h n và nhanh h n cácệ ế ắ ơ ơ
l nh t ng ng nh ng dùng đ a ch tr c ti p. Các giá tr d li u đ cệ ươ ứ ư ị ỉ ự ế ị ữ ệ ượ

dùng th ng xuyên nên dùng m t trong các thanh ghi này.ườ ộ
Bank thanh ghi tích c c có th đ c chuy n đ i b ng cách thay đ i cácự ể ượ ể ổ ằ ổ
bit ch n bank thanh ghi trong t tr ng thái ch ng trình (PSW). Giọ ừ ạ ươ ả
s r ng bank thanh ghi 3 đ c tích c c, l nh sau s ghi n i dung c aử ằ ượ ự ệ ẽ ộ ủ
thanh ghi tích l y vào đ a ch 18H:ũ ị ỉ
MOV R0, A
Ý t ng dùng “các bank thanh ghi” cho phép “chuy n h ng” ch ngưở ể ướ ươ
trình nhanh và hi u qu (t ng ph n riêng r c a ph n m m s có m tệ ả ừ ầ ẽ ủ ầ ề ẽ ộ
b thanh ghi riêng không ph thu c vào các ph n khác).ộ ụ ộ ầ
4/ Các thanh ghi ch c n ng c bi t:ứ ă đặ ệ
Các thanh ghi n i c a ộ ủ 8951 đ c truy xu t ng m đ nh b i b l nh. Víượ ấ ầ ị ở ộ ệ
d l nh “INC A” s t ng n i dung c a thanh ghi tích l y A lên 1. Tácụ ệ ẽ ă ộ ủ ũ
đ ng này đ c ng m đ nh trong mã l nh. ộ ượ ầ ị ệ
Các thanh ghi trong 8951 đ c đ nh d ng nh m t ph n c a RAM trênượ ị ạ ư ộ ầ ủ
chip. Vì v y m i thanh ghi s có m t đ a ch (ngo i tr thanh ghi đ mậ ỗ ẽ ộ ị ỉ ạ ừ ế
ch ng trình và thanh ghi l nh vì các thanh ghi này hi m khi b tác đ ngươ ệ ế ị ộ
tr c ti p, nên không l i l c gì khi đ t chúng vào trong RAM trên chip). óự ế ợ ộ ặ Đ
là lí do đ ể 8951 có nhi u thanh ghi nh v y. C ng nh R0 đ n R7, có 21ề ư ậ ũ ư ế
thanh ghi ch c n ng đ c bi t (SFR: Special Function Register) vùngứ ă ặ ệ ở
trên c a RAM n i, t đ a ch 80H đ n FFH. Chú ý r ng h u h t 128 đ aủ ộ ừ ị ỉ ế ằ ầ ế ị
ch t 80H đ n FFH không đ c đ nh ngh a. Ch có 21 đ a ch SFR làỉ ừ ế ượ ị ĩ ỉ ị ỉ
đ c đ nh ngh a.ượ ị ĩ
12
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
Ngo i tr thanh ghi tích l y A có th đ c truy xu t ng m nh đã nói,ạ ừ ũ ể ượ ấ ầ ư
đa s các SFR đ c truy xu t dùng đ a ch tr c ti p. Chú ý r ng m t vàiố ượ ấ ị ỉ ự ế ằ ộ
SFR có th đ c đ a ch hóa bit ho c byte. Ng i thi t k ph i th nể ượ ị ỉ ặ ườ ế ế ả ậ
tr ng khi truy xu t bit và byte. Ví d l nh sau:ọ ấ ụ ệ
SETB 0E0H
L nh này s set bit 0 trong thanh ghi tích l y, các bit khác không đ i.ệ ẽ ũ ổ

Ta th y r ng E0H đ ng th i là đ a ch byte c a c thanh ghi tích l y và làấ ằ ồ ờ ị ỉ ủ ả ũ
đ a ch bit c a bit có tr ng s nh nh t trong thanh ghi tích l y. Vìị ỉ ủ ọ ố ỏ ấ ũ
l nh SETB ch tác đ ng trên bit, nên ch có đ a ch bit là có hi u qu .ệ ỉ ộ ỉ ị ỉ ệ ả
a/ T tr ng thái ch ng trình:ừ ạ ươ
T tr ng thái ch ng trình (ừ ạ ươ PSW: Program Status Word) đ a chở ị ỉ
D0H ch a các bit tr ng thái nh b ng tóm t t sau:ứ ạ ư ả ắ
Bit Kí hi uệ a chĐị ỉ Ý ngh aĩ
PSW.7 CY D7H C nh ờ ớ
PSW.6 AC D6H C nh phờ ớ ụ
PSW.5 F0 D5H C 0ờ
PSW.4 RS1 D4H Bit 1 ch n bank thanh ghiọ
PSW.3 RS0 D3H Bit 0 ch 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 )ị ỉ
PSW.2 OV D2H C trànờ
PSW.1 _ D1H D trự ữ
PSW.0 P D0H C parity ch nờ ẵ
• C nh :ờ ớ
C nh (CY) có công d ng kép. Thông th ng nó đ c dùng cho cácờ ớ ụ ườ ượ
l nh toán h c: nó s đ c set n u có m t s nh sinh ra b i phép c ngệ ọ ẽ ượ ế ộ ố ớ ở ộ
ho c có m t s m n b i phép tr . Ví d , n u thanh ghi tích l y ch aặ ộ ố ượ ở ừ ụ ế ũ ứ
FFH, thì l nh sau:ệ
ADD A, #1
s tr v thanh ghi tích l y k t qu 00H và set c nh trong PSWK.ẽ ả ề ũ ế ả ờ ớ
C nh c ng có th xem nh m t thanh ghi 1 bit cho các l nh lu n lí thi hành trênờ ớ ũ ể ư ộ ệ ậ
bit. Ví d , l nh sau s AND bit 25H v i c nh và t k t qu tr vào c nh :ụ ệ ẽ ớ ờ ớ đặ ế ả ở ờ ớ
13
Lu n v n t t nghi pậ ă ố ệ

AND C, 25H
• C nh ph :ờ ớ ụ
Khi c ng các s BCD, c nh ph (AC) đ c set n u k t qu c a 4ộ ố ờ ớ ụ ượ ế ế ả ủ
bit th p trong kho ng 0AH đ n 0FH. N u các giá tr đ c c ng là sấ ả ế ế ị ượ ộ ố
BCD thì sau l nh c ng c n có DA A (hi u ch nh th p phân thanh ghiệ ộ ầ ệ ỉ ậ
tích l y) đ đi u ch nh k t qu cho phù h p.ũ ể ề ỉ ế ả ợ
• C 0:ờ
C 0 (F0) là 1 bit c đa d ng dành cho các ng d ng c a ng i dùng.ờ ờ ụ ứ ụ ủ ườ
• Các bit ch n bank thanh ghi :ọ
Các bit ch n bank thanh ghi (RS0 và RS1) xác đ nh bank thanh ghi nàoọ ị
đ c tích c c. Chúng đ c xóa sau khi reset h th ng và đ c thay đ iượ ự ượ ệ ố ượ ổ
b ng ph n m m n u c n. Ví d , 3 l nh sau cho phép bank thanh ghi 3ằ ầ ề ế ầ ụ ệ
và di chuy n n i dung c a thanh ghi R7 (đ a ch byte 1FH) đ n thanhể ộ ủ ị ỉ ế
ghi tích l y:ũ
SETB RS1
SETB RS0
MOV A, R7
Khi ch ng trình đ c h p d ch, các đ a ch bit đúng đ c thay th choươ ượ ợ ị ị ỉ ượ ế
các kí hi u “RS1” và “RS0”. ệ
V y, l nh SETB RS1 s gi ng nh l nh SETB 0D4H.ậ ệ ẽ ố ư ệ
• C tràn:ờ
C tràn (OV) đ c set sau m t l nh c ng ho c tr n u có phép toán bờ ượ ộ ệ ộ ặ ừ ế ị
tràn. Khi các s có d u đ c c ng ho c tr v i nhau, ph n m m có thố ấ ượ ộ ặ ừ ớ ầ ề ể
ki m tra bit này đ xác đ nh xem k t qu có n m trong t m xác đ nhể ể ị ế ả ằ ầ ị
không. Khi các s không d u đ c c ng, bit OV có th đ c b qua.ố ấ ượ ộ ể ượ ỏ
Các k t qu l n h n +127 ho c nh h n –128 s set bit OV.ế ả ớ ơ ặ ỏ ơ ẽ
Ví d , phép c ng sau b tràn và bit OV đ c set :ụ ộ ị ượ
Hex 0F Th p phân 15ậ
+ +
7F 127


8E 142
14
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
K t qu là m t s có d u 8EH đ c xem nh –14, không ph i là m tế ả ộ ố ấ ượ ư ả ộ
k t qu đúng (142), vì v y bit OV đ c set.ế ả ậ ượ
b/ Thanh ghi B:
Thanh ghi B đ a ch F0H đ c dùng v i thanh ghi tích l y A cho cácở ị ỉ ượ ớ ũ
phép toán nhân và chia.
L nh MUL AB s nhân các giá tr không d u 8 bit trong A và B r i trệ ẽ ị ấ ồ ả
v k t qu 16 bit trong A (byte th p) và B (byte cao).ề ế ả ấ
L nh DIV AB s chia A cho B r i tr v k t qu nguyên trong A vàệ ẽ ồ ả ề ế ả
ph n d trong B.ầ ư
Thanh ghi B c ng có th đ c xem nh thanh ghi đ m đa d ng. Nóũ ể ượ ư ệ ụ
đ c đ a ch hóa t ng bit b ng các đ a ch bit F0H đ n F7H.ượ ị ỉ ừ ằ ị ỉ ế
c/ Con tr ng n x p:ỏ ă ế
Con tr ng n x p (SP) là m t thanh ghi 8 bit đ a ch 81H. Nó ch aỏ ă ế ộ ở ị ỉ ứ
đ a ch c a byte d li u hi n hành trên đ nh c a ng n x p. Các l nh trênị ỉ ủ ữ ệ ệ ỉ ủ ă ế ệ
ng n x p bao g m các thao tác c t d li u vào ng n x p và l y d li uă ế ồ ấ ữ ệ ă ế ấ ữ ệ
ra kh i ng n x p. L nh c t d li u vào ng n x p s làm t ng SPỏ ă ế ệ ấ ữ ệ ă ế ẽ ă
tr c khi c t d li u, và l nh l y d li u ra kh i ng n x p s đ c dướ ấ ữ ệ ệ ấ ữ ệ ỏ ă ế ẽ ọ ữ
li u và gi m SP. ệ ả
Ng n x p c a ă ế ủ 8951 đ c gi trong RAM n i và đ c gi i h n các đ aượ ữ ộ ượ ớ ạ ị
ch có th truy xu t b ng đ a ch gián ti p. Chúng là 128 bytes đ u c aỉ ể ấ ằ ị ỉ ế ầ ủ
8951.
kh i đ ng l i SP v i ng n x p b t đ u t i 60H, các l nh sau đâyĐể ở ộ ạ ớ ă ế ắ ầ ạ ệ
đ c dùng:ượ
MOV SP, #5FH
Trên 8951 ng n x p b gi i h n 32 bytes vì đ a ch cao nh t c aă ế ị ớ ạ ị ỉ ấ ủ
RAM trên chip là 7FH. S d dùng giá tr 5FH vì SP s t ng lên 60H tr cở ĩ ị ẽ ă ướ

khi c t byte d li u đ u tiên. ấ ữ ệ ầ
Ng i thi t k có th ch n không ph i kh i đ ng l i con tr ng nườ ế ế ể ọ ả ở ộ ạ ỏ ă
x p mà đ nó l y giá tr m c đ nh khi reset h th ng. Giá tr m c đ nh đó làế ể ấ ị ặ ị ệ ố ị ặ ị
07H và k t qu là ng n đ u tiên đ c t d li u có đ a ch là 08H. ế ả ă ầ ể ấ ữ ệ ị ỉ
N u ph n m m ng d ng không kh i đ ng l i SP, thì bank thanhế ầ ề ứ ụ ở ộ ạ
ghi 1 (có th c 2 và 3) s không dùng đ c vì vùng RAM này đã đ c dùngể ả ẽ ượ ượ
làm ng n x p.ă ế
Ng n x p đ c truy xu t tr c ti p b ng l nh PUSH và POP đ l uă ế ượ ấ ự ế ằ ệ ể ư
tr t m th i và l y l i d li u, ho c đ c truy xu t ng m b ng cácữ ạ ờ ấ ạ ữ ệ ặ ượ ấ ầ ằ
15
Lu n v n t t nghi pậ ă ố ệ
l nh g i ch ng trình con (ACALL, LCALL) và các l nh tr v (RET,ệ ọ ươ ệ ở ề
RETI) đ c t và l y l i b đ m ch ng trình.ể ấ ấ ạ ộ ế ươ
d/ Con tr d li u:ỏ ữ ệ
Con tr d li u (DPTR) đ truy xu t b nh ngoài là m t thanh ghi 16ỏ ữ ệ ể ấ ộ ớ ộ
bit đ a ch 82H (DPL: byte th p) và 83H (DPH: byte cao).ở ị ỉ ấ
Ba l nh sau s ghi 55H vào RAM ngoài đ a ch 1000H:ệ ẽ ở ị ỉ
MOV A, #55H
MOV DPTR, #1000H
MOVX @DPTR, A
L nh đ u tiên dùng đ a ch t c th i đ t i d li u 55H vào thanh ghi tíchệ ầ ị ỉ ứ ờ ể ả ữ ệ
l y. L nh th hai c ng dùng đ a ch t c th i, l n này đ t i d li u 16ũ ệ ứ ũ ị ỉ ứ ờ ầ ể ả ữ ệ
bits 1000H vào con tr d li u. L nh th ba dùng đ a ch gián ti p đ diỏ ữ ệ ệ ứ ị ỉ ế ể
chuy n d li u trong A (55H) đ n RAM ngoài đ a ch đ c ch aể ữ ệ ế ở ị ỉ ượ ứ
trong DPTR (1000H).
e/ Các thanh ghi port xu t nh p:ấ ậ
Các port c a ủ 8951 bao g m Port 0 đ a ch 80H, Port 1 đ a ch 90H,ồ ở ị ỉ ở ị ỉ
Port 2 đ a ch A0H và Port 3 đ a ch B0H. ở ị ỉ ở ị ỉ
T t c các port đ u đ c đ a ch hóa t ng bit. i u đó cung c p m tấ ả ề ượ ị ỉ ừ Đ ề ấ ộ
kh n ng giao ti p thu n l i. ả ă ế ậ ợ

Ví d , n u m t motor đ c n i qua m t cu n dây có transistor lái đ nụ ế ộ ượ ố ộ ộ ế
bit 7 c a Port 1, nó có th đ c b t và t t b ng m t l nh đ n:ủ ể ượ ậ ắ ằ ộ ệ ơ
SETB P1.7 ; b t motorậ
CLR P1.7 ; t t motorắ
Các l nh trên dùng d u ch m đ xác đ nh m t bit trong m t byte. Trìnhệ ấ ấ ể ị ộ ộ
h p d ch s thi hành s chuy n đ i c n thi t, vì v y hai l nh sau đây làợ ị ẽ ự ể ổ ầ ế ậ ệ
nh nhau:ư
CLR P1.7
CLR 97H
Trong m t ví d khác, xem xét giao ti p đ n m t thi t b v i m t bitộ ụ ế ế ộ ế ị ớ ộ
tr ng thái g i là BUSY, đ c set khi thi t b đang b n và đ c xóa khiạ ọ ượ ế ị ậ ượ
16
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
thi t b đã s n sàng. N u BUSY đ c n i t i P1.5, vòng l p sau s đ cế ị ẵ ế ượ ố ớ ặ ẽ ượ
dùng đ ch thi t b tr l i tr ng thái s n sàng:ể ờ ế ị ở ạ ạ ẵ
WAIT : JB P1.5, WAIT
L nh này có ngh a là “n u bit P1.5 đ c set thì nh y t i nhãn WAIT”.ệ ĩ ế ượ ả ớ
Nói cách khác “nh y tr l i và ki m tra l n n a”.ả ở ạ ể ầ ữ
f/ Các thanh ghi timer:
µC 8951 ch a hai b đ nh th i/đ m 16 bits đ c dùng cho vi c đ nhứ ộ ị ờ ế ượ ệ ị
th i ho c đ m s ki n.ờ ặ ế ự ệ
Timer 0 đ a ch 8AH (TL0: byte th p) và 8CH (TH0 : byte cao).ở ị ỉ ấ
Timer 1 đ a ch 8BH (TL1: byte th p) và 8DH (TH1 : byte cao).ở ị ỉ ấ
Vi c v n hành timer đ c set b i thanh ghi Timer Mode (TMOD) ệ ậ ượ ở ở
đ a ch 89H và thanh ghi đi u khi n timer (TCON) đ a ch 88H. ị ỉ ề ể ở ị ỉ
Ch có TCON đ c đ a ch t ng bit.ỉ ượ ị ỉ ừ
g/ Các thanh ghi port n i ti p:ố ế
µC8951 ch a m t port n i ti p trên chip dành cho vi c trao đ i thôngứ ộ ố ế ệ ổ
tin v i các thi t b n i ti p nh máy tính, modem ho c cho vi c giaoớ ế ị ố ế ư ặ ệ
ti p v i các IC khác có giao ti p n i ti p (các b chuy n đ i A/D, cácế ớ ế ố ế ộ ể ổ

thanh ghi d ch … ).ị
M t thanh ghi g i là b đ m d li u n i ti p (SBUF) đ a ch 99Hộ ọ ộ ệ ữ ệ ố ế ở ị ỉ
s gi c hai d li u truy n và nh n.ẽ ữ ả ữ ệ ề ậ
Khi truy n d li u thì ghi lên SBUF, khi nh n d li u thì đ c SBUF.ề ữ ệ ậ ữ ệ ọ
Các mode v n hành khác nhau đ c l p trình qua thanh ghi đi u khi nậ ượ ậ ề ể
port n i ti p (SCON) (đ c đ a ch hóa t ng bit) đ a ch 98H.ố ế ượ ị ỉ ừ ở ị ỉ
h/ Các thanh ghi ng t:ắ
µC 8951 có c u trúc 5 ngu n ng t (2 m c u tiên).ấ ồ ắ ứ ư
Các ng t b c m sau khi reset h th ng và s đ c cho phép b ng vi cắ ị ấ ệ ố ẽ ượ ằ ệ
ghi thanh ghi cho phép ng t (IE) đ a ch A8H. ắ ở ị ỉ
C hai thanh ghi đ c đ a ch hóa t ng bit.ả ượ ị ỉ ừ
17
Lu n v n t t nghi pậ ă ố ệ
i/ Thanh ghi i u khi n công su t: đ ề ể ấ
Thanh ghi đi u khi n công su t (PCON) đ a ch 87H ch a nhi uề ể ấ ở ị ỉ ứ ề
bit đi u khi n. Chúng đ c tóm t t trong b ng sau:ề ể ượ ắ ả
Bit Kí hi uệ Ý ngh aĩ
7 SMOD Bit g p đôi t c đ baud, n u đ c set thì t c đ baud s t ng g p đôi trong cácấ ố ộ ế ượ ố ộ ẽ ă ấ
mode1, 2 và 3 c a port n i ti p.ủ ố ế
6 _ Không đ nh ngh aị ĩ
5 _ Không đ nh ngh aị ĩ
4 _ Không đ nh ngh aị ĩ
3 GF1 Bit c đa d ng 1ờ ụ
2 GF0 Bit c đa d ng 0ờ ụ
1 PD Gi m công su t, đ c set đ kích ho t mode gi m công su t, ch thoát khiả ấ ượ ể ạ ả ấ ỉ
reset.
0 IDL Mode ch , set đ kích ho t mode ch , ch thoát khi có ng t ho c reset h th ng.ờ ể ạ ờ ỉ ắ ặ ệ ố
5/ B nh ngoài:ộ ớ
µC 8951 có kh n ng m r ng b nh lên đ n 64K b nh ch ngả ă ở ộ ộ ớ ế ộ ớ ươ
trình và 64K b nh d li u ngoài. Do đó, có th dùng thêm ROM và RAMộ ớ ữ ệ ể

bên ngoài n u c n.ế ầ
Khi dùng b nh ngoài, Port 0 không còn là m t port I/O thu n túy n a.ộ ớ ộ ầ ữ
Nó đ c h p kênh gi a bus đ a ch (A0 – A7) và bus d li u (D0 – D7)ượ ợ ữ ị ỉ ữ ệ
v i tín hi u ALE đ ch t byte th p c a đ a ch khi b t đ u m i chu kìớ ệ ể ố ấ ủ ị ỉ ắ ầ ỗ
b nh . Port 2 thông th ng đ c dùng cho byte cao c a bus đ a ch .ộ ớ ườ ượ ủ ị ỉ
Trong n a đ u c a m i chu kì b nh , byte th p c a đ a ch đ cử ầ ủ ỗ ộ ớ ấ ủ ị ỉ ượ
c p trong Port 0 và đ c ch t b ng xung ALE. M t IC ch t 74HC373ấ ượ ố ằ ộ ố
(ho c t ng đ ng) s gi byte đ a ch th p trong ph n còn l i c aặ ươ ươ ẽ ữ ị ỉ ấ ầ ạ ủ
chu kì b nh . Trong n a sau c a chu kì b nh Port 0 đ c dùng nhộ ớ ử ủ ộ ớ ượ ư
bus d li u và đ c đ c ho c ghi tùy theo l nh.ữ ệ ượ ọ ặ ệ
a/ Truy xu t b nh ch ng trình ngoài:ấ ộ ớ ươ
B nh ch ng trình ngoài là m t IC ROM đ c cho phép b i tín hi uộ ớ ươ ộ ượ ở ệ
PSEN\.
Hình sau mô t cách n i m t EPROM vào ả ố ộ 8951:
18
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
Giao ti p gi a ế ữ 8951 và EPROM.
M t chu kì máy c a ộ ủ 8951 có 12 chu kì xung nh p. N u b dao đ ng trênị ế ộ ộ
chip đ c lái b i m t th ch anh 12 Mhz thì m t chu kì máy kéo dài 1 ượ ở ộ ạ ộ µs.
Trong m t chu kì máy, s có hai xung ALE và hai byte đ c đ c t bộ ẽ ượ ọ ừ ộ
nh ch ng trình (n u l nh hi n hành là l nh 2 bytes thì byte th haiớ ươ ế ệ ệ ệ ứ
s đ c lo i b ). Gi n đ th i gian c a m t l n l y l nh đ c v ẽ ượ ạ ỏ ả ồ ờ ủ ộ ầ ấ ệ ượ ẽ ở
hình sau:
Gi n th i gian c b nh ch ng trình ngoài.ả đồ ờ đọ ộ ớ ươ
19
Lu n v n t t nghi pậ ă ố ệ
b/ Truy xu t b nh d li u ngoài:ấ ộ ớ ữ ệ
Giao ti p gi a ế ữ 8951 và RAM.
B nh d li u ngoài là m t b nh RAM đ c cho phép ghi/đ c b ngộ ớ ữ ệ ộ ộ ớ ượ ọ ằ
các tín hi u ệ WR\ và RD\ (các chân P3.6 và P3.7 thay đ i ch c n ng). Chổ ứ ă ỉ

có m t cách truy xu t b nh d li u ngoài là v i l nh MOVX dùng conộ ấ ộ ớ ữ ệ ớ ệ
tr d li u (DPTR) 16 bits ho c R0 và R1 xem nh thanh ghi đ a ch .ỏ ữ ệ ặ ư ị ỉ
K t n i bus a ch và bus d li u gi a RAM và ế ố đị ỉ ữ ệ ữ 8951 c ng gi ng nh EPROM vàũ ố ư
do ó c ng có th lên n 64 Kbytes b nh RAM. đ ũ ể đế ộ ớ
Ngoài ra, chân RD\ c a 8951 đ c n i t i chân cho phép xu t (ủ ượ ố ớ ấ OE\) c aủ
RAM và chân WR\ đ c n i t i chân ghi (ượ ố ớ WR\) c a RAM.ủ
Gi n th i gian cho l nh c d li u ngoài c v trên hình sau i v iả đồ ờ ệ đọ ữ ệ đượ ẽ đố ớ
l nh MOVX A, @DPTR:ệ
Gi n th i gian c a l nh MOVX.ả đồ ờ ủ ệ
20
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
Gi n đ th i gian cho l nh ghi (MOVX @DPTR, A) c ng t ng tả ồ ờ ệ ũ ươ ự
ch khác đ ng ỉ ườ WR\ s thay vào đ ng ẽ ườ RD\ và d li u đ c xu t ra trênữ ệ ượ ấ
chân Port 0 (RD\ v n gi m c cao).ẫ ữ ứ
c/ Gi i mã a ch :ả đị ỉ
N u có nhi u EPROM và/ho c nhi u RAM đ c giao ti p v i ế ề ặ ề ượ ế ớ 8951,
thì c n ph i gi i mã đ a ch . ầ ả ả ị ỉ
M ch gi i mã c ng t ng t nh các h vi x lí khác. Ví d , n u dùngạ ả ũ ươ ự ư ệ ử ụ ế
nhi u EPROM và RAM 8Kbytes thì bus đ a ch c n ph i đ c gi i mãề ị ỉ ầ ả ượ ả
đ xác đ nh IC nh nào đ c ch n.ể ị ớ ượ ọ
Ng i ta th ng dùng IC gi i mã 74HC138 v i các ngõ ra đ c n i t iườ ườ ả ớ ượ ố ớ
các ngõ vào ch n chip (CS) trên các IC nh . Hình sau v m t h th ng v iọ ớ ẽ ộ ệ ố ớ
nhi u EPROM 8K 2764 và RAM 8K 6264:ề
Gi i mã a ch .ả đị ỉ
21
Lu n v n t t nghi pậ ă ố ệ
d/ X p ch ng b nh ch ng trình và d li u bên ngoài:ế ồ ộ ớ ươ ữ ệ
Vì b nh ch ng trình là ROM, nên n y sinh m t v n đ b t ti n khiộ ớ ươ ả ộ ấ ề ấ ệ
phát tri n ph n m m cho ể ầ ề 8051/8031. i v i Đố ớ 8951 đã c i ti n b ng cáchả ế ằ
thay th b ng EEPROM, ho c dùng m t cách đ kh c ph c nh cế ằ ặ ộ ể ắ ụ ượ

đi m trên là x p ch ng các vùng nh ch ng trình và d li u. ể ế ồ ớ ươ ữ ệ
M t IC RAM có th ch a c ch ng trình và d li u b ng cách n iộ ể ứ ả ươ ữ ệ ằ ố
đ ng ườ OE\ c a RAM vào m t m ch logic AND c a ủ ộ ạ ủ PSEN\ và RD\.
M ch trên hình sau cho phép m t IC RAM đ c dùng làm b nhạ ộ ượ ộ ớ
ch ng trình và d li u:ươ ữ ệ
V y m t ch ng trình có th đ c t i vào RAM (b ng cách ghi nó nhậ ộ ươ ể ượ ả ằ ư
b nh d li u) và thi hành (b ng cách truy xu t nó nh b nh ch ngộ ớ ữ ệ ằ ấ ư ộ ớ ươ
trình).
6/ L nh Reset:ệ
µC8951 đ c reset b ng cách gi chân ượ ằ ữ RST m c cao ít nh t trongở ứ ấ
hai chu kì máy và tr nó v m c th p. ả ề ứ ấ

M ch reset h th ng.ạ ệ ố
RST có th đ c kích b ng tay dùng m t nút b m ho c có th đ cể ượ ằ ộ ấ ặ ể ượ
kích khi c p đi n dùng m t m ch R-C.ấ ệ ộ ạ
22
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
Tr ng thái c a t t c các thanh ghi trong ạ ủ ấ ả 8951 sau khi Reset h th ngệ ố
c tóm t t trong b ng sau:đượ ắ ả
Thanh ghi N i dungộ
m ch ng trình Đế ươ 0000 H
Tích l y ũ 00 H
B 00 H
PSW 00 H
SP 07 H
DPTR 0000 H
Port 0 ÷ 3 FF H
IP XXX00000 B
IE 0XX00000 B
Các thanh ghi đ nh th i ị ờ 00 H

SCON 00 H
SBUF 00 H
PCON ( HMOS ) 0XXXXXXX B
PCON ( CMOS ) 0XXX0000 B
Quan tr ng nh t trong các thanh ghi trên là thanh ghi đ m ch ng trình,ọ ấ ế ươ
nó đ c đ t l i 0000H. ượ ặ ạ
Khi RST tr l i m c th p, vi c thi hành ch ng trình luôn b t đ u ở ạ ứ ấ ệ ươ ắ ầ ở
đ a ch đ u tiên trong b nh ch ng trình: đ a ch 0000H. ị ỉ ầ ộ ớ ươ ị ỉ
N i dung c a RAM trên chip không b thay đ i b i l nh Reset. ộ ủ ị ổ ở ệ
II/ T P L NH C A 8951 : Ậ Ệ Ủ
T p l nh ậ ệ 8951 có 255 l nh g m 139 l nh 1 byte, 92 l nh 2 byte và 24ệ ồ ệ ệ
l nh 3 byte.ệ
1/ Các ch ánh a ch :ế độ đ đị ỉ
a/ a ch thanh ghi:Đị ỉ
µC8951 có b n bank thanh ghi, m i bank có 8 thanh ghi đánh s t R0ố ỗ ố ừ
đ n R7. T i m i th i đi m ch có m t bank thanh ghi đ c tích c c.ế ạ ỗ ờ ể ỉ ộ ượ ự
Mã l nh n n nệ
a ch thanh ghiĐị ỉ
23
Lu n v n t t nghi pậ ă ố ệ
Mu n ch n bank thanh ghi nào ta ch c n gán các bít nh phân thích h pố ọ ỉ ầ ị ợ
vào RS1 (PSW.4) và RS0 (PSW.3) trong thanh ghi tr ng thái ch ngạ ươ
trình (PSW).
Ngoài ra, m t s thanh ghi c bi t nh thanh ghi tích l y, thanh ghi con tr dộ ố đặ ệ ư ũ ỏ ữ
li u c ng c xác nh trong các l nh trên nên không c n bit a ch . ệ ũ đượ đị ệ ầ đị ỉ
Trong các l nh này thanh ghi tích l y đ c kí hi u là “A”, con tr dệ ũ ượ ệ ỏ ữ
li u là “DPTR”, thanh ghi đ m ch ng trình là “PC”, c nh là “C”, c pệ ế ươ ờ ớ ặ
thanh ghi tích l y là “AB”.ũ
b/ a ch tr c ti p:Đị ỉ ự ế
Trong ch đ này, các thanh ghi bên trong ế ộ 8951 đ c đánh đ a ch tr cượ ị ỉ ự

ti p b ng 8 bits đ a ch n m trong byte th hai c a mã l nh.ế ằ ị ỉ ằ ứ ủ ệ
Mã l nh a ch tr c ti pệ Đị ỉ ự ế
a ch tr c ti p.Đị ỉ ự ế
Dù v y, trình h p d ch cho phép g i tên các thanh ghi ch c n ng đ cậ ợ ị ọ ứ ă ặ
bi t (có đ a ch tr c ti p t 80H đ n FFH). ệ ị ỉ ự ế ừ ế
Ví d , P0 cho Port 0, TMOD cho thanh ghi ch đ timer, …ụ ế ộ
c/ a ch gián ti p:Đị ỉ ế
R0 và R1 đ c dùng đ ch a đ a ch t m ô nh mà l nh tác đ ng đ n.ượ ể ứ ị ỉ ạ ớ ệ ộ ế
Ng i ta qui c dùng d u @ tr c R0 ho c R1.ườ ướ ấ ướ ặ
Mã l nh iệ
a ch gián ti p.Đị ỉ ế
d/ a ch t c th i:Đị ỉ ứ ờ
Ng i ta dùng d u # tr c các toán h ng t c th i. Các toán h ng đó có thườ ấ ướ ạ ứ ờ ạ ể
là m t h ng s , m t kí s hay m t bi u th c toán h c …Trình h p d chộ ằ ố ộ ố ộ ể ứ ọ ợ ị
s t đ ng tính toán và thay th d li u vào mã l nh.ẽ ự ộ ế ữ ệ ệ
Mã l nh D li u t c th iệ ữ ệ ứ ờ
a ch t c th i.Đị ỉ ứ ờ
24
i n n ng k i n t giao ti p máy tính Đ ệ ă ế đ ệ ử ế
e/ a ch t ng i:Đị ỉ ươ đố
a ch t ng đ i đ c dùng trong các l nh nh y. Đị ỉ ươ ố ượ ệ ả
µC8951 dùng giá tr 8 bit có d u đ c ng thêm vào thanh ghi đ m ch ngị ấ ể ộ ế ươ
trình (PC).
T m nh y c a l nh này trong kho ng t –128 đ n 127 ô nh . Tr cầ ả ủ ệ ả ừ ế ớ ướ
khi c ng, thanh ghi PC s t ng đ n đ a ch theo sau l nh nh y r i tínhộ ẽ ă ế ị ỉ ệ ả ồ
toán đ a ch offset c n thi t đ nh y đ n đ a ch yêu c u. ị ỉ ầ ế ể ả ế ị ỉ ầ
Nh v y, đ a ch m i là đ a ch t ng đ i so v i l nh k ti p chư ậ ị ỉ ớ ị ỉ ươ ố ớ ệ ế ế ứ
không ph i b n thân l nh nh y. Th ng l nh này có liên quan đ n nhãnả ả ệ ả ườ ệ ế
đ c đ nh ngh a tr c. ượ ị ĩ ướ
Mã l nh Offset t ng đ iệ ươ ố

a ch t ng i.Đị ỉ ươ đố
f/ a ch tuy t i :Đị ỉ ệ đố
a ch tuy t đ i ch dùng tr c các l nh ACALL và AJIMP. Đị ỉ ệ ố ỉ ướ ệ
Các l nh 2 byte này dùng đ r nhánh vào m t trang 2Kbyte c a b nhệ ể ẽ ộ ủ ộ ớ
ch ng trình b ng cách c p 11 bit đ a ch th p (A0-A10) đ xác đ nh đ aươ ằ ấ ị ỉ ấ ể ị ị
ch đích trong trang mã. Còn 5 bit cao c a đ a ch đích chính là 5 bit hi nỉ ủ ị ỉ ệ
hành trong thanh ghi đ m ch ng trình. ế ươ
Vì v y, đ a ch c a l nh theo sau l nh r nhánh và đ a ch đích c a l nhậ ị ỉ ủ ệ ệ ẽ ị ỉ ủ ệ
r nhánh c n ph i cùng trang mã 2Kbyte (có cùng 5 bits đ a ch cao).ẽ ầ ả ị ỉ
A15 A11 A10 A0

Xác đ nh trang mã. Xác đ nh đ a ch trongị ị ị ỉ trang mã.
A10-A8 Mã l nh Offset t ng đ iệ ươ ố
a ch tuy t i.Đị ỉ ệ đố
g/ a ch dài :Đị ỉ
a ch dài ch dùng cho l nh LCALL và LJIMP. Các l nh này chi m 3Đị ỉ ỉ ệ ệ ế
byte và dùng 2 byte sau (byte 2 và byte 3) đ đ nh đ a ch đích c a l nh (16ể ị ị ỉ ủ ệ
25

×