You are on page 1of 102

AI HOC QUOC GIA TP.

HO CH MINH AI HOC S PHAM KY THUAT KHOA IEN IEN T

LUAN VAN TOT NGHIEP e tai:

GIAO TIEP MAY TNH VI KIT VI X LY 8086

Giao vien hng dan NGUYEN NH PHU Sinh vien thc hien XUAN HNG
Lp : 95 K

: Thay : PHAM

TP.HO CH MINH 2 2000

AI HOC QUOC GIA TP. HO CH MINH AI HOC S PHAM KY THUAT KHOA IEN - IEN T

LUAN VAN TOT NGHIEP


e tai:

GIAO TIEP MAY TNH VI KIT VI X LY 8086


PHAN 1: GII THIEU CHUNG CHNG DAN NHAP CHNG C S LY LUAN CHNG I: CAU TRUC VI X LY 8086 CHNG II: KHAO SAT TONG QUAT TAP LENH 8086 CHNG III: GIAO TIEP VI MAY TNH PHAN 2 : PHAN CNG VA PHAN MEM CUA MACH GIAO TIEP CHNG IV: GII THIEU KIT VXL 8086 CHNG V: GIAO TIEP NOI TIEP DUNG VI MACH 8251A CHNG VI: CHNG TRNH GIAO TIEP ( CHNG TRNH TRUYEN, NHAN D LIEU) HNG PHAT TRIEN E TAI KET LUAN ANH GIA PHU LUC TAI LIEU THAM KHAO

Giao vien hng dan: NGUYEN NH PHU Sinh vien thc hien: PHAM XUAN HNG

BO GIAO DUC& AO TAO CONG HOA XA HOI CHU NGHA VIET NAM AI HOC QUOC GIA TP. HO CH MINH OC LAP T DO HANH PHUC AI HOC S PHAM KY THUAT TP. HO CH MINH _____________

KHOA IEN BO MON IEN IEN T

NHIEM VU LUAN VAN TOT NGHIEP


Ho va ten sinh vien : PHAM XUAN HNG Lp : 95K Nganh : Ky thuat ien ien t
1.Ten e tai: GIAO TIEP MAY TNH VI KIT VI X LY 8086 2. Cac so lieu ban au: 3. Noi dung cac phan thuyet minh tnh toan: 4. Cac ban ve: 5. Giao vien hng dan : NGUYEN NH PHU 6. 7. Ngay giao nhiem vu : Ngay hoan thanh nhiem vu: 25/2/2000

Giao vien hng dan: Bo mon thang nam 1999

Thong qua Ngay

NHAN XET CUA GIAO VIEN HNG DAN

Giao vien hng dan

NHAN XET CUA GIAO VIEN PHAN BIEN

Giao vien phan bien

Li cam ta

Trong thi gian thc hien e tai sinh vien thc hien a hoc hoi c nhieu ieu bo ch t thay hng han, cac thay co va cac ban. Sinh vien thc hien xin bay to long biet n en thay Nguyen nh Phu tren cng v la ngi hng dan e tai a tan tnh hng dan va tao ieu kien thuan li cho em hoan thanh tot e tai. Sinh vien thc hien cung xin chan thanh cam n cac thay, cac co trong khoa cung cac ban a ong gop y kien va kinh ngiem quy bau trong qua trnh thc hien e tai nay. TP.HO CH MINH Ngay 25 thang 2 nam 2000 Sinh vien thc hien Pham Xuan Hng

MUC LUC
Phan 1: Phan gii thieu Chng dan nhap Chng c s ly luan I. Xay dng e cng luan van II. Ke hoach nghien cu Chng I: Cau truc ben trong cua VXL 8086 I. Cau tao ben trong 1. khoi thc hien 2. khoi phoi phoi ghep bus 3. s o khoi ben trong II. Cau truc ben trong va chc nang cua VXL 8086 1. s o chan cua VXL 8086 2. chc nang cac chan III. Cac phng phap nh a ch cua 8086 Chng II: Khao sat tong quat tap lenh cua VXL 8086 I. cach ma hoa lenh II. khao sat tong quat tap lenh Chng III: Giao tiep vi may tnh I. Giao tiep song song 1. Giao tiep qua cong may in 2. Giao tiep qua Slot card II. Giao tiep noi tiep qua cong COM 1. Vai net c ban ve cong noi tiep 2. S trao oi cua cac ng dan tn hieu Phan 2: Phan cng cua mach giao tiep Chng IV: Gii thieu kit VXL 8086 I. Cac linh kien ban dan lien quan 1. vi mach MAX 232 2. IC em 74LS244 3. Mach tao xung nhp 8284 4. Tong quat ve bo nh II. Gii thieu kit VXL 8086. Chng V: Giao tiep noi tiep dung 8251A. I. truyen thong tin noi tiep II. Vi mach USART 8251A III. ng dung 8251A e truyen thong tin noi tiep 1. Truyen thong tin noi tiep gia 2 kit VXL 2. Truyen thong tin noi tiep gia kit VXL va may tnh Phan 3 : Phan mem cua mach giao tiep Chng VI: Cac chng trnh truyen d lieu I. Chng trnh truyen, nhan d lieu d lieu tren kit 1. Giai thuat 2. Chng trnh

II. Chng trnh truyen d lieu tren may tnh Phan 4: Tong ket, anh gia Hng phat trien e tai Ket luan anh gia Tai lieu tham khao

LI NOI AU
at nc ta ang tren con ng tien len mot at nc cong ngiep hoa hien ai hoa. e at c muc tieu o th nganh cong ngiep may tnh la mot nganh then chot e tien len con ng cong ngiep hoa va hien ai hoa at nc. Ngay nay trong cac nha may x nghiep hay cong xng eu s dung may vi tnh vao viec o lng ieu khien, tnh toan va trong quan ly hanh chnh, nh co ac tnh gon nhe, o tin cay cao linh hoat va n gian trong s dung. ac biet trong cac nganh cong nghiep hien ai, may tnh ien t khong nhng gop phan vao viec nang cao nang suat lao ong ma con gop phan vao viec bao ve sc khoe va an toan lao ong cho con ngi. e hoan thanh nhng cong viec ke tren chung ta can phai ket noi cac may vi tnh vi nhau, hoac ket noi chung vi cac thiet b ngoai vi nhan d lieu e x ly hay gi d lieu i cho cac thiet b khac x ly. e thc hien c cong viec nay th ieu au tien chung ta phai lam o la chung ta phai ket noi phan cng cho phu hp va viet cac chng trnh truyen d lieu. Trc yeu cau o sinh vien thc hien e tai quyet nh thc hien e tai Giao tiep may tnh vi kit VXL 8086 nham muc ch tm hieu, hoc hoi them va ng dung cac kien thc a hoc ra thc te. Sinh vien thc hien xin chan thanh cam n thay Nguyen nh Phu cung cac thay co trong khoa a tan tnh hng dan em hoan thanh tot e tai nay. V thi gian va kien thc co han nen tap luan van nay chac chan khong tranh khoi sai sot, rat mong nhng y kien ong gop cua quy thay co va cac ban. TP.Ho Ch Minh, ngay 25 thang 2 nam 2000 Sinh vien thc hien Pham Xuan Hng

GII THIEU CHUNG

Phan 1

CHNG DAN NHAP oOo


Cung vi s phat trien cua khoa hoc ky thuat th nganh cong nghiep may tnh cung c phat trien rat manh me va ngay cang c ng dung rong rai trong moi cong viec nh cac cong viec trong cong nghiep cung nh trong thong tin lien lac. e thc hien c nhng cong viec nhan d lieu t cac thiet b khac e x ly hoac gi d lieu i e ieu khien cac thiet b khac th cong viec giao tiep gia hai he vi x ly vi nhau hay gia vi x ly vi may tnh la mot cong viec chu yeu trong viec truyen d lieu v the sinh vien quyet nh thc hien e tai Giao tiep may tnh vi kit VXL 8086. Muc ch e hoc hoi va tm hieu them cac ng dung cua VXL va cac IC giao tiep ngoai vi trong thc te, lam quen vi cac chng trnh truyen d lieu e hoan thanh tot luan van tot nghiep nay. Trong pham vi chuyen nganh th e tai a hoan thanh tot phan cng va phan mem giao tiep. Rieng trong lnh vc giao tiep th o cung la tai lieu tham khao ban au cho nhng ngi muon i sau vao lnh vc giao tiep. e tai nay khong ch giup cho sinh vien hoan thanh luan van tot nghiep ma con hnh thanh trong moi sinh vien nhng kinh nghiem, sang tao va nang ong. Sau nay e tai se ket hp vi cac nganh chuyen mon khac e phat trien mo hnh nay c hoan thien hn.

CHNG C S LY LUAN
___ oOo ___ I. XAY DNG E CNG LUAN VAN: 1). Xac nh nhiem vu nghien cu: Viec chon e tai xuat phat t hai ly do: - Khach quan: hien nay cac nen cong nghiep co nhu cau hien ai hoa cac thiet b theo xu hng cai tien hoa cac thiet b bang c kh sang thiet b ieu khien t ong ng dung ky thuat ien t. - Chu quan: do nhu cau hoc tap, nghien cu, ren luyen ky nang thc hanh, ng dung von kien thc khoa hoc ky thuat tien tien trc tiep vao lnh vc san xuat. Nhiem vu nghien cu nham at c cac muc ch chu yeu: + Muc ch trc mat: thoa man ve c ban cac yeu cau e ra theo phng cham Hoc i oi vi hanh. + Muc ch sau cung: Tch luy kinh nghiem, ren luyen va nang cao nang lc, tao ban lnh e san sang tham gia lao ong san xuat, hoa nhap vao bc tien cua the he. 2). Phan tch tai lieu lien he: Trong thi gian nghien cu e tai, sinh vien thc hien a thong nhat tham khao mot so tai lieu co lien quan trong khoang thi gian cho phep. - Phng phap luan nghien cu khoa hoc: tm hieu ve cau truc hnh thc cua mot e tai nghien cu khoa hoc va phng phap t duy e giai quyet van e. - Ky thuat Vi x ly - Tran Van Trong: Tai lieu cung cap ve cau truc cua vi x ly 8086. - S o chan linh kien ban dan - Dng Minh Tr: cung cap s o chan va bang trang thai hoat ong cua cac IC va cac linh kien ban dan. - Cau truc may tnh - Le Anh Viet: Tai lieu cung cap kien thc c ban ve cau truc may tnh, to chc CPU, hp ng va cach lap trnh. - The 8086/8088 - Family Design Programming and Interfacing John Uffenbeck: tai lieu cung cap nhng ky thuat ket noi vi x ly va nhng phan mem ng dung. - Ky thuat vi x ly Van The Minh: tai lieu cung cap ky thuat giao tiep vi cac thiet b ngoai vi.

II. KE HOACH NGHIEN CU: 1). Dan y nghien cu: Phan I: Gii thieu chung. Phan II: Phan cng va phan mem cua mach giao tiep. Phan III : Tong ket va anh gia 2). oi tng nghien cu: Vi x ly la trung tam ieu khien cac oi tng, ieu khien he thong nh may t ong, day chuyen san xuat e he thong x ly thi hanh cac chc nang ieu khien nh mong muon, chung ta phai lap trnh bang ngon ng tng ng va trao oi d lieu gia cac he vi x ly. V the oi tng nghien cu chnh la thiet ke mach giao tiep e truyen d lieu i xa.

CHNG I CAU TRUC BEN TRONG CUA VI X LY 8086 ___ oOo ___ ay la bo vi x ly noi tieng mot thi cua hang Intel, no c s dung trong nhieu lnh vc khac nhau, nhat la trong cac may IBM PC/XT. Cac bo vi x ly thuoc ho nay se con c s dung rong rai trong hang chuc nam na. I . CAU TAO BEN TRONG: Ben trong gom hai khoi chnh: Khoi thc hien EU (Execution Unit) Khoi giap tiep bus (Bus Interface Unit) 1 .Khoi thc hien EU hnh 1.1 ta thay trong khoi EU ta thay co mot khoi ieu khien (Control Unit, CU) chnh tai ben trong khoi ieu khien nay co mach giai ma lenh. Ma lenh oc vao t bo nh a en au cua bo giai ma, cac thong tin thu c t au ra cuc no se c a en mach tao xung ieu khien, ket qua la thu c cac day xung khac nhau (tuy theo ma lenh) e ieu khien hoat ong cua cac bo phan ben trong va ben ngoai CPU. Trong khoi EU con co khoi so hoc va logic (Arithmetic and Logic Unit ALU) dung e thc hien cac thao tac khac nhau vi cac toan hang cua lenh. Tom lai khi CPU hoat ong EU se cung cap thong tin ve ia ch cho BIU e khoi nay oc lenh va d lieu, con ban than no th giai ma lenh va thc hien lenh 2. Khoi phoi ghep bus (Bus Interface Unit BIU) Khoi BIU co nhiem vu a ra ia ch, oc ma lenh t bo nh. Noi cach khac BIU chiu trach nhiem a ia ch ra bus va trao oi d lieu vi bus. Trong BIU con co bo nh em lenh vi dung lng 4 byte dung e a cac ma lenh oc c nam san sang ch EU x ly (trong tai lieu cua Intel bo lenh nay con c goi la hang i lenh. ay la mot cau truc mi c a vao bo VXL 8086/8088 cho viec Intel a che o x ly xen ke lien tuc dung ma lenh vao ng dung vao trong cac bo VXL the he mi.

3. S o khoi ben trongva chc nang cac khoi cua VXL 8086:
Bus a ch Bus d lieu

ieu khien bus va tao a ch

Cac bus he thong

Han g 65432 i 1 len h

AHALBHBL CHCLDHDL BPDISISP

CSESSSDSI P

Cac thanh ghi oan

Bus d lieu noi

Arithmetic logic unit (ALU)

Cac c

Excution Unit (EU)

Bus Interface Unit (BIU) Hnh 1.1: S o khoi 8086

sau:

Bo vi x ly thc hien cac lenh theo cac bc Lay lenh t bo nh. oc toan hang (neu lenh yeu cau). Thc hien lenh. Ghi ket qua.

3.1). Khoi thc hien: Nhiem vu cua khoi thc hien lenh la thc hien cac lenh cua chng trnh. No gom co khoi so hoc logic (ALU) cho phep thc hien cac phep tnh so hoc (+ , - , * , /) va cac phep logic (AND, OR, NOT). Trong khoi thc hien con co mot so o nh goi la thanh ghi dung e cha d lieu cho cac phep tnh. Moi thanh ghi giong nh mot o nh ngoai tr chung c at ten thay v dung so e ch a ch. EU (Execution Unit) co cac thanh ghi cong dung chung chia thanh hai nhom: nhom thanh ghi d lieu va nhom thanh ghi ch so. Cac thanh ghi d lieu (Data Register):
AX (Accumulator) AHALBHBLCHCLDHDL BX (Base) CX (Count) DX (Data)

Cac thanh ghi ch so va con tro (Index & Pointer Register):


Con tro Stack (Stack Pointer) Con tro nen (Base Pointer) Ch so nguon (Source Index) Ch so ch (Destnation Index) ma (Code oan

SPBPSIDI

Cac thanh ghi oan (Segment Register):

(Status & Control Register):

Segment) oan d lieu (Data Segment) CSDSSSES oan Stack (Stack Segment) oan them (Extra Cac thanh ghi trang thai va ieu khien Segment) Con tro lenh (Intruction IPFlagPointer) C

Cac thanh ghi d lieu: Co bon thanh ghi d lieu ky hieu lan lt la: AX, BX, CX, DX, c ngi lap trnh s dung cho cac thao tac vi d lieu. Mac du vi x ly co the thao tac vi d lieu trong bo nh, nhng mot lenh nh vay se c thc hien nhanh hn trong thanh ghi (can t chu ky ong ho hn). o cung la nguyen nhan tai sao cac bo vi x ly hien ai co xu hng nhieu thanh ghi. Cac byte cao va byte thap trong thanh ghi c truy cap oc lap: Byte cao cua thanh ghi AX c goi la AH va byte thap c goi la AL. Tng t nh vay cho cac byte cao va byte thap cua cac thanh ghi BX, CX, DX lan lt la BH & BL, CH & CL, DH & DL. Nh ieu nay ma ta co nhieu thanh ghi hn khi lam viec vi cac so lieu co kch thc byte dai. Trong a so lenh cac thanh ghi d lieu c chon tuy y nhng cac thanh ghi nay lai co chc nang rieng co nh trong mot so t lenh. Thanh ghi tch luy AX (Accumulator): La thanh ghi c s dung nhieu nhat trong cac lenh so hoc logic va truyen d lieu bi v viec s dung thanh ghi nay tao ra ma may ngan nhat. Trong cac thao tac nhan hoac chia mot trong cac so han tham gia phai cha trong AH hoac AL, cac thao tac vao ra cung s dung thanh ghi AH hoac AL. Thanh ghi c s BX (Base): Thanh ghi BX c dung cho tnh toan a ch trong phng phap nh a ch gian tiep. Thanh ghi em CX (Count): Viec thc hien cac chng trnh lap c thc hien de dang nh thanh ghi CX, trong o CX ong vai tro la bo em vong lap. Mot th du khac cua viec s dung thanh ghi CX o la lenh REP (Repeat) lenh nay ieu khien mot lp cac lenh chuyen ve cac thao tac chuoi. CL cung c s dung la mot bien em trong cac lenh dch hay quay cac bit. Thanh ghi d lieu DX (Data): DX dung e nh a ch gian tiep trong cac thao tac vao ra, no cung con c s dung cha toan han, ket qua trong phep nhan va chia. Thanh ghi con tro va ch so: Cac thanh ghi SP, BP, SI, DI thng tro ti cac o nh (tc la cha cac a ch offset cua cac o nh o). Khac vi thanh ghi oan, cac thanh ghi con tro va ngan xep c s dung trong cac thao tac so hoc va mot so thao tac khac nhau.

Thanh ghi con tro ngan xep SP (Stack Pointer): Di chuyen t a ch cao en a ch thap, dung e ket hp vi thanh ghi oan Stack SS (Stack Segment)e lu tr a ch tr ve hoac d lieu vao trong ngan xep. Thanh ghi con tro c s BP (Base Pointer): Thanh ghi nay c dung e truy cap d lieu trong ngan xep ma khong lam thay oi SP. Tuy nhien, khac vi SP thanh ghi BP cung con c s dung e truy cap d lieu cac oan khac. Thanh ghi ch so nguon SI (Source Index): Thanh ghi SI c s dung e tro ti cac o nh trong oan d lieu c nh bi thanh ghi oan d lieu DS (Data Segment), co the truy cap de dang cac o nh lien tiep bang cach tang SI. Thanh ghi ch so ch DI (Destination Index): Thanh ghi DI co chc nang tng t nh thanh ghi SI va c dung ket hp vi thanh ghi oan them ES (Extra Segment). Ca hai DI va SI thch hp trong cac thao tac sao chep, di chuyen hoac so sanh cac khoi d lieu co dung lng en 64kB. Thanh ghi con tro lenh IP (Intruction Pointer): 8086 khong thc hien lenh trc tiep trong bo nh ma lenh c lay hang i lenh co cau tao giong nh mot thanh ghi dch (FIFO: First In First Out: vao trc ra trc) cha cac ma lenh cung cap bi khoi BIU. Thanh ghi IP ch en lenh tiep theo cha c nhap vao hang i lenh va c dung ket hp vi thanh ghi CS. Thanh ghi IP c cap nhat moi khi co mot lenh c thc hien xong, khac vi cac thanh ghi khac, IP khong b tac ong trc tiep bi cac lenh. Thanh ghi c (Flag Register): Thanh ghi c cua 8086 co o dai 16bit (2byte) byte thap cha cac bit trang thai giong nh trong 8085 phan anh trang thai cua vi x ly, byte cao cha 1 bit trang thai o la bit 11 va 3 bit ieu khien dung e ieu khien hoat ong cua vi x ly. Sau ay la cau tao cua thanh ghi c trong 8086: 15 8 7 0 O D I T S Z A P C Thanh ghi c cua 8086 C: carry flag. P: parity flag. A: auxiliary flag.

Z: zero flag. S: sign flag. T: trap flag. I: interrupt enable flag. D: direction flag. O: overflow flag. + C nh CF : C nh CF c thiet lap khi co so nh t bit MSB. Trong phep cong hoac so thieu trong phep tr (MSB trong cac lenh byte la bit 7 va trong cac lenh word la bit 15) c CF cung b anh hng bi cac lenh quay va dch. + C chan le PF : Sau cac lenh so hoc hoac logic oi vi cac lenh byte neu so lng so 1 trong byte ket qua la chan th c PF c thiet lap la 1 ngc lai la 0 neu la le, oi vi cac lenh word ch xet cac byte thap. + C nh phu AF: C nh phu c thiet lap neu co nh (cong) hoac co thieu (tr) t phan na di en phan na tren cua toan han (oi vi lenh byte o la bit 3 va oi vi lenh word la bit 7) c AF c s dung trong cac thao tac vi so BCD. + C zero ZF: C zero c thiet lap khi ket qua bang 0. + C dau SF: C dau la 1 khi bit MSB cua ket qua bang 1 tc la so am, oi vi lenh byte MSB la bit 7 va trong lenh word la bit 15. + C bay TF: Tao kha nang thc hien chng trnh theo tng bc, khi TF bang 1 8086 phat sinh ngat loai 1 (ngat cng). Chng trnh DEBUG s dung khi thi hanh lenh T (trace) e chay tng bc mot lenh. au tien DEBUG thiet lap c TF roi mi chuyen ieu khien cho lenh o. Sau khi lenh c thi hanh vi x ly se phat sinh mot ngat do TF c lap DEBUG s dung chnh phuc vu ngat nay e lay quyen ieu khien t vi x ly. + C ngat IF: C ngat c s dung e ieu khien cac ngat phan cng ben ngoai, neu c nay c thiet lap cac ngat phan cng co the ngat 8086. Khi xoa IF, cac ngat ben ngoai khong con tac dung na (b che). Thc ra van con mot ngat cng khong che c NMI (Non Maskable Interrupt).

Trc khi vi x ly trao quyen ieu khien cho mot phuc ngat no xoa ca IF va TF, nh vay phuc ngat o se khong b ngat. Tat nhien mot phuc vu ngat co the oi c e cho phep ngat khi no ang thi hanh. + C tran OF: C tran la 1 khi co hien tng tran va ngc lai no bang 0. Hien tng tran cho thay mot s that la pham vi bieu dien cac so trong may tnh la co gii han. Pham vi bieu dien cac so co dau trong mot word t 32768 en +32767 va trong mot byte t 126 en +127. oi vi cac so khong dau t 0 en 65535 cho mot word va t 0 en 255 cho mot byte. Neu ket qua cua mot phep tnh vt ra ngoai pham vi nay th hien tng tran se xay ra va ket qua nhan c b cat bt se khong phai la ket qua ung. + C ieu khien DF: La mot trong ba c ieu khien dung ieu khien cac thao tac cua vi x ly cong dung cua DF la dch hng cho cac thao tac chuoi, cac thao tac nay c thc hien bi hai thanh ghi ch so SI & DI, noi dung cua hai thanh ghi nay se t ong tang len khi DF = 0 va giam xuong khi DF =1. 3.2). Khoi giao tiep (BIU): Khoi giao tiep lam n gian viec lien lac gia EU va bo nh hoac cac vi mach vao ra. No co nhiem vu gi cac a ch, so lieu va tn hieu ieu khien vao cac bus, BUI & EU lien he vi nhau bang cac bus noi bo, khi EU ang thi hanh mot lenh, BIU nap 6 byte ma lenh tiep theo vao va at chung vao hang i lenh, muc ch cua viec nay la lam tang toc o cua vi x ly. Neu EU can lien lac vi bo nh hay thiet b ngoai vi, BIU se treo cac lenh nhan trc va thc hien thc hien cac thao tac can thiet. BIU cau tao gom cac thanh ghi oan va con tro lenh dung e cha a ch cac o nh. a). Cac thanh ghi oan: c dung e lu tr a ch cua cac lenh va d lieu trong bo nh, vi x ly da tren cac gia tr nay e truy cap bo nh. Bo nh la tap hp cac byte o nh, moi byte co mot a ch xac nh bat au t 0. 8086 gan cho moi o nh mot a ch vat ly 20 bit. Nh vay, no co the nh a ch en byte (tng ng 1MB) o

nh, cac byte au tien cua bo nh co a ch nh sau: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0010 0000 0000 0000 0000 0011 0000 0000 0000 0000 0100 e n gian, cac a ch tren thng c bieu dien bang so thap luc phan nh sau: 00000H 00001H 00002H H va c tiep tuc cho en gia tr ln nhat la FFFFFH Do cac a ch qua ln (20 bit) khong the cha trong mot thanh ghi cua 8086 (16 bit) nen 8086 chia bo nh thanh cac oan bo nh (Memory Segment). Mot oan bo nh la mot khoi gom 216 (64K) o nh lien tiep nhau, moi oan c xac nh bang mot a ch oan bat au t a ch 0, a ch oan la mot so 16 bit nen a ch oan ln nhat la FFFF. Ben trong moi oan so o nh c xac nh bang a ch tng oi (offset), o la so byte tnh t au oan, vi mot oan 64K th offset cung la mot so 16 bit, byte au tien trong oan co offset bang 0 va byte cuoi cung bang FFFF. Mot o nh co the c xac nh bang a ch oan:a ch tng oi trong oan (segment:offset) va c goi la a ch logic. Th du: o nh A4FB: 4872 co a ch oan la A4FB va a ch offset la 4872. e tm a ch vat ly cua o nh trc tien ta dch a ch oan ve ben trai 4 bit va sau o cong vi a ch offset, nh vay a ch vat ly cua o nh A4FB:4872 c tnh nh sau: A4FB0 4872 A9822 b). Sap xep oan: Trong bo nh oan 0 bat au t a ch 0000:0000 = 00000 va ket thuc 0000:FFFF = 0FFFF, oan 1 bat au t a ch 0001:0000 = 00010 va ket thuc a ch 0001:FFFF = 1000F. Nh vay, co rat nhieu s chong nhau gia cac oan. Cac oan bat au t cac a ch cach nhau 16byte va a ch au cua moi oan luon ket thuc bang cac so 0. 16byte c goi la mot khuc (Paragraph), cac a ch chia het cho 16 ( cac a

ch ket thuc bang 0) la cac bien gii khuc (Paragraph Boundary) c). Cac oan cua chng trnh: Moi oan chng trnh ngon ng may bao gom cac lenh va d lieu, con mot vung ac biet trong RAM goi la ngan xep (stack). Ma lenh, d lieu va ngan xep cua chng trnh c nap vao cac oan bo nh khac nhau o la oan ma (code segment), oan d lieu (data segment), oan ngan xep (stack segment). e theo doi cac oan khac nhau cua chng trnh 8086 c cung cap 4 thanh ghi oan e cha cac a ch oan, cac thanh ghi CS, DS, SS lan lc cha cac a ch oan ma, oan d lieu, va oan ngan xep. Neu chng trnh muon truy cap en mot d lieu th hai no co the s dung thanh ghi oan them ES (extra segment). Mot chng trnh khong phai bao gi cung can chiem het mot oan 64KB, do ac iem chong nhau gia cac oan cho phep cac oan cua mot chng trnh nho hn 64KB co the at gan lai vi nhau. Tai mot thi iem, ch co cac o nh c nh a ch bi 4 thanh ghi oan mi co the truy cap, ngha la ch co 4 oan bo nh la tac ong. Tuy nhien noi dung cua cac thanh ghi oan co the thay oi bi chng trnh e truy cap en cac oan khac nhau. d). Hang i lenh: Nh ta a biet, e tang toc o vi x ly khoi BIU tiep nhan cac lenh va a vao hang i lenh (Queue) trong khi o khoi EU ang thi hanh lenh. Hang i lenh co the nhan 6 byte ma lenh, cac lenh cua 8086 co o dai t 1 en 6 byte, neu lenh cha vao ay u trong hang i lenh th khoi EU se ch cho en khi lenh nap het vao hang i lenh. II. CAU TRUC BEN NGOAI VA CHC NANG CUA VXL 8086. 1). S o chan cua 8086: 8086 la vi x ly 16 bit no gom 16 ng d lieu va 20 ng a ch, cac ng d lieu t D0 en D15 va cac ng a ch t A0 en A15 hoat ong theo phng phap a lo thi gian. 8086 co the lam viec hai che o: Che do Minimum. Che o Maximum. Trong che o minimum, 8086 ieu khien cac thiet b bang cac tn hieu ieu khien cua chnh no, trong che o nay ho tr bo x ly toan hoc 8087

Trong che o maximum can thiet phai ket hp vi vi mach ieu khien bus 8288 e tao ra cac tn hieu oc ghi cho bo nh va cac thiet b ngoai vi va che o nay cho phep lam viec vi 8087. Sau ay la s o chan cua 8086 ca hai che o minimum va maximum:

GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

8086 CPU

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

Vcc AD15 A16/S3 A17/S4 A18/S5 A17/S6 BHE/S7 MN/MX RD HOLD HLDA WR M/IO DT/R DEN ALE INTA TEST READY RESET

(RQ/GT0) (RQ/GT1) (LOCK) (S2) (S1) (S0) (QS0) (QS1)

Hnh 1.2: S o chan 8086

2). Chc nang cua cac chan cua 8086: Vcc = 5V ien ap nuoi la 5V DC, dung sai cho phep la 10%. GND = 0V Cac ng mass nen co ien tr cang nho cang tot. CLK = clock (input) Xung ong ho a vao chan nay la khong oi xng va co ty le la (High/Low). INTR- Interrupt Request (input): Mc cao ngo nay bao cho 8086 biet co mot yeu cau ngat (thung c gi ti t vi mach x ly ngat 8259), tn hieu ngat tai chan nay co the b che bang phan mem. Khi vi x ly chap nhan yeu cau ngat, no se a ra mot chu ky chap nhan ngat va vi mach x ly ngat phai gi a ch cua ngat len bus d lieu tng ng vi chu ky th hai. NMI (Non Maskable Interrupt): ay la ngat khong che c, tac ong mc cao vi x ly nhay en a ch ngat so 2 trong bang vector ngat va khong tao ra chu ky chap nhan ngat. Reset (input): Ngo vao mc cao at vi x ly ve trang thai ban au sau t nhat 4 chu ky ong ho. Thanh ghi CS c at gia tr FFFF va thanh ghi IP c at gia tr 0000. Nh vay ch th c thc hien au tien cha o nh FFFF0 qua trnh chuyen tiep t mc cao xuong mc thap c ong bo bi chu ky ong bo t vi mach tao xung ong ho 8284. Ready (input): Tn hieu bao a hoan tat thao tac truyen d lieu cua bo nh hoac thiet b vao ra, tac ong mc cao, vi x ly se i neu tn hieu nay mc thap. AD0 AD15 - Address/Data bus (input/output): Giong nh trong 8085, cac ng a ch - d lieu nay lam viec theo nguyen tac a lo thi gian, la a ch trong chu ky T1 va la d lieu trong chu ky T2, T3, Tw, T4, tac ong mc cao, co cau tao ba trang thai va trang thai tong tr cao trong luc vi x ly Interrupt acknowlegde va Hold acknowledge. A16/S3 A19/S6 Addres/Status (output): Trong chu ky T1 la 4 bit a ch cao khi thao tac vi bo nh, trong luc thao tac vi thiet b vao - ra chan nay co ga tr thap. Trong ca hai thao tac cung nh vao ra cac bit nay la trang thai trong cac chu ky T 2,

T3, Tw, T4. Trang thai bit cao cho phep ngat, S5 c cap nhat tai moi thi iem bat au cua moi chu ky ong ho. S3 & S4 cho biet thanh ghi oan ang c s dung, thong tin nay can thiet cho Co-processor xac nh v tr cua toan hang. Co cau tao ba trang thai va trang thai tong tr cao khi vi x ly Hold acknowledge. S3 S4 Thanh ghi oan c chon 0 0 Thanh ghi oan 0 1 them. 1 0 Thanh ghi oan 1 1 ngan xep. Thanh ghi oan lenh. Thanh ghi oan d lieu . Hai bit S3 & S4 e chon cac thanh ghi oan. BHE/S7 Bus high enable / status (output): Ket hp vi bit a ch A0 e xac nh che o truyen d lieu, BHE mc thap trong chu ky T1 cua cac thao tac oc ghi va chap nhan ngat khi mot byte c truyen trong byte cao cua bus d lieu. S7 co hieu lc trong cac chu ky T2, T3 & T4, cau tao ba trang thai va trang thai tong tr cao khi vi x ly che o Hold. HBE A0 Kieu truyen d lieu 0 0 Truy xuat 16 bit 0 1 Truy xuat byte cao t 1 0 a ch le 1 1 Truy xuat byte thap a ch chan. Khong s dung . Cac kieu truy xuat d lieu. RD Read (output): Tn hieu ra ieu khien viec oc bo nh hoac khoi vao ra phu thuoc vao bit trang thai S2, mc thap tai T2, T3 va Tw trong moi chu ky oc, cau tao ba trang thai va tong tr cao khi vi x ly che o Hold acknowledge. Test (input): Tn hieu vao c kiem tra bi lenh wait vi x ly se khong lam g ca khi ien ap chan nay co gia tr thap, ong bo tai canh len cua moi xung ong ho. MN-MX Minimum-Maximum (input):

Chan chon che o lam viec cua 8086, che o lam viec la minimum tng ng vi mc cao va che o lam viec la maximum ng vi mc thap. Bus ieu khien hai che o co chc nang khac nhau. M/IO (output): Ngo ra trang thai giong nh bit S0 che o maximum dung e bao v tr ang truy xuat d lieu. Mc cao la bo nh va mc thap la khoi vao-ra. Cau tao ba trang thai, tong tr cao khi vi x ly che o Hold acknowledge. WR write (output): Tn hieu ra ieu khien thao tac ghi vao bo nh hoac khoi vao-ra tuy theo gia tr cua ngo M/IO. Tac ong mc thap T2, T3 va Tw cua moi chu ky ghi, cau tao ba trang thai va trang thai tong tr cao khi vi x ly che o Hold acknowledge. INTRA Interrup Acknowlegde (output): Tn hieu chap thuan ngat, tac ong mc thap tai T2, T3 va Tw dung e a a ch cua ngat len bus d lieu. ALE Adress Latch Enable Tn hieu ieu khien chot a ch 74LS373 hoac 8282/8283 tac ong mc cao trong khoang T1 cua moi chu ky bus : + Khi ALE = 1 cac bit AD0 AD15 la a ch. Hold (input): Tn hieu vao cho biet mot linh kien oi quyen s dung bus, tac ong mc cao. HLDA Hold acknowlegde (output): Tn hieu ra mc cao cho biet yeu cau Hold c chap thuan, vi x ly se treo bus noi bo va cac ng ieu khien cua no trang thai tong tr cao. DT/R Data Transmit/Receive (output): Tn hieu ra dung e ieu khien hng truyen d lieu cua vi mach thu-phat. Cau tao ba trang thai va trang thai tong tr cao khi vi x ly che o Hold acknowledge. DEN Data enable (output): Tn hieu ra mc thap cho moi chu ky thao tac bo nh va I/O va ca INTRA ieu khien ngo ra cho phep cua 8286/8287 trong hoat ong thu phat d lieu. Cau tao ba trang thai, trang thai tong tr cao khi vi x ly che o Hold acknowledge. S0, S1, S2 (thong tin trang thai) :

Vi mach 8288 da tren cac thong tin nay e thc hien cac thao tac ieu khien. Cau tao ba trang thai, trang thai tong tr cao khi Hold acknowledge. Tac ong trong cac chu ky T4, T1 & T2 va tr ve trang thai thu ong T3 hoac Tw khi Ready mc cao. Mot s thay oi bat ky cua tn hieu nay trong chu ky T4 c dung e anh dau thi iem bat au cua chu ky bus va tr ve thu ong trong T3 hoac Tw xac nh iem ket thuc cua chu ky bus. S2 S1 S0 Thong tin ieu khien 0 0 0 Chap nhan ngat. 0 0 1 oc t cong. 0 1 0 Viet ra cong 0 1 1 Dng. 1 0 0 Nhap ma lenh. 1 0 1 oc t bo nh. 1 1 0 Viet ra bo nh. 1 1 1 Thu ong. RQ/GT0, RQ/GT1 Request/Gram (input/output): Hai tn hieu yeu cau vi x ly nhng quyen s dung bus, tn hieu RQ/GT0 co mc u tien cao hn. Nguyen ly hoat ong c mo ta nh sau: + Mot xung co be rong mot chu ky ong ho cho biet mot linh kien can s dung bus. + Trong chu ky ong ho T4 hoac T1 vi x ly gi en linh kien o xung co be rong chu ky ong ho cho biet vi x ly chap nhan nhng quyen s dung bus va no se tien vao trang thai Hold acknowledge sau xung ong ho ke tiep e treo bus cua chnh no. + Xung be rong chu ky ong ho c gi en 8086 cho biet qua trnh Hold ket thuc va vi x ly tr lai quan ly bus xau khi cham dt chu ky ong ho ke tiep. Neu yeu cau nay xay ra trong khi vi x ly ang truy xuat bo nh, no se treo bus trong khoangT4 neu thoa nhng dieu kien sau ay: - Yeu cau xay ra trong khi hoac trc T2. - Chu ky hien hanh khong phai la byte thap cua word ( a ch le). - Chu ky hien hanh khong trang thai chap nhan ngat. - Khong co ch th khoa. Neu bus khong ban khi co yeu cau th co hai trng hp se xay ra.

- Bus se treo chu ky ong ho ke tiep. - Mot chu bo nh se khi ong trong vong 3 chu ky ong ho. Clock (output): Mc cao bao cho cac linh kien ngoai biet (Coprocessor) rang chu ky bus tiep theo khong c phep gian oan, ieu nay xay ra khi trong chng trnh co ch th Clock. Cau tao ngo ra ba trang thai, trang thai tong tr cao khi vi x ly che o Hold acknowledge QS1, QS0 Queue status (output): Ngo ra cho biet trang thai cua hang i lenh, nhng thong tin nay can thiet cho Co-processor. QS0 0 0 1 1 QS1 0 1 0 1 Trang thai hang i lenh Khong hoat ong . Xoa noi dung hang i kenh. Nap byte ma lenh au tien vao thanh ghi lenh. Nap byte ma lenh tiep theo cua lenh nhieu byte l

III. CAC PHNG PHAP NH A CH CUA VI X LY 8086: Phng phap nh a ch (Addressing Mode) la cach e CPU tm thay toan hang cho cac lenh cua no khi hoat ong. Mot bo vi x ly co the co nhieu che o nh a ch. Cac che o nh a ch nay c xac nh ngay t khi che tao ra bo vi x ly va sau nay ngi ta lay o e lam chuan ma khong thay oi. Ngoai cac phng phap nh a ch: tc thi, trc tiep, gian tiep giong nh cua 8085, vi x ly 8086 con co them cac cach nh a ch khac va c phan loai nh sau: - nh a ch bang thanh ghi. - nh a ch tc thi. - nh a ch trc tiep. - nh a ch gian tiep. - nh a ch tng oi. Bang cach ket hp cac phng phap nh a ch khac nhau trong mot ch th, co the tao ra nhieu kha nang phc tap e truy xuat toan hang (operand) cac thiet b vao ra ch c truy cap bang cac phng phap trc tiep va gian tiep. Th t mo ta byte cua mot word c lu trong bo nh giong nh qui nh cua 8085, co ngha la cac byte thap (LSB) a ch thap va cac byte cao (MSB) c at a ch cao hn ke can. Trong cac trnh bay sau ay, bo em chng trnh PC (Program Counter) cha a ch offset cua ch th ke tiep se thc hien, ch th nay a san sang trong hang i lenh. Con tro lenh IP tro en a ch cao hn, o la byte tiep theo se c BIU nhap vao hang i lenh. 1). Cac phng phap nh a ch thong dung: 1.1) nh a ch tc thi: Trong phng phap nay toan hang nguon chnh la d lieu can x ly cua ch th. d

Th du: Mov ax, 1200


Mov Ax, 1200 Trc
AX BX CX DX SP BP SI DI O D FI P C I T CS DS SS ES S
2300

CPU

Bo nh
2300 0100 B 8 00 12

P PC 0100

Sau
AX BX CX DX
1200

SP BP SI DI O D I T

CS DS SS ES S

2300

PC 0103

2300 B 8 00 12 010 1

3
Z A

FI P

1.2).

Phng phap nh a ch trc tiep:

Trong ch th bao gom a ch offset cua toan ch Hnh1.3 :Phng phap nh a hang, a tc thi ch oan c quy nh la noi dung cua thanh ghi DS.

Th du: Mov ax [0230]


CPU Trc

Bo nh
CS 2300 PC 0100 DS SS I/O ES 260 1C S Z A P 2300 0100 EC

SP BP SI 0260 DI O D I FI C

Sau
AX BX CX DX FI C
1200

SP BP SI DI O D I

CS 2300 DS SS ES S Z

PC

0101

2300 EC 0101

I I/O 1C 260

Hnh1.4:Phng phap nh a ch gian tiep

1.3). nh a ch gian tiep: Trong phng phap truy xuat gian tiep cac cong luon luon tac ong en thanh ghi DX, noi dung cua DX la a ch 16 bit cua cong. So lng cong la 64k. Th du: IN AL, DX Bo
Trc
AX BX CX DX FI P C
0280

CPU

nh
CS DS SS ES I T S
2300 278 0

SP BP SI DI O D

P PC 0100

0102300 208 8 0 00 0
B 07 12

Sau
AX BX CX DX FI P C
1200 0280

SP BP SI DI O D I T

CS DS SS ES S

2300 2780

2300 20 8 80 00 PC 1002 B 12 01 0 07

03

Hnh 2.4: Phng phap nh a ch tng oi

CHNG II KHAO SAT TONG QUAT TAP LENH CUA VI X LY 8086


I. CACH MA HOA LENH CUA 8086 Vi x ly 8086 co nhieu phng phap nh a ch va cung co nhieu kha nang ket hp cac phng phap o lai vi nhau. Tuy nhien, mot lenh ch can 6 byte e ma hoa, va byte bat au la ma cong tac (Operations code), byte tiep theo cha kieu a ch va tiep theo o co the la mot hoac hai byte dung e cha a ch. Cac byte cuoi cung gom mot hoac hai cha toan hang 8 hoac 16 bit. Thc te e bieu dien dang thc cac byte dung e ma hoa lenh Mov. Ta ttay rang e ma hoa lenh Mov ta phai can t nhat la hai byte, trong o 6 bit cua byte au dung e cha ma lenh. oi vi lenh Mov e chuyen d lieu kieu: - Thanh ghi thanh ghi Tr thanh ghi oan - Bo nh thanh ghi Th bit au (opcode) nay luon la 100010 (oi vi thanh ghi oan th khac). oi vi bit D dung e ch hng i cua d lieu. D = 0 th d lieu i t thanh ghi cho bi 3 bit cua REG. D = 1 d lieu i en thanh ghi cho bi 3 bit REG. oi vi bit W dung e ch rang mot byte (W = 0) hoac mot t (W = 1) se c chuyen. Byte1 Byte 2 Byte 3 DispL DispH Byte 4 1 0 0 0 1 0 Opcod D W Mod R M hoac e EG /R Disp: displacement (dch chuyen ) a ch trc a ch trc tiep phan thap tiep phan cao II. KHAO SAT TONG QUAT TAP LENH CUA VXL 8086. Tap lenh cua 8086 gom 9 nhom lenh: - Nhom lenh truyen so lieu. - Nhom lenh so hoc. - Nhom lenh thao tac chuoi. - Nhom lenh logic.

- Nhom lenh x ly bit. - Nhom lenh ieu khien chng trnh. - Nhom lenh ngon ng bac cao. - Nhom lenh che o bao ve. - Nhom lenh ieu khien cac bo vi x ly. Qua nhng nhom lenh gii thieu tren nhom thc hien e tai ch khao sat nhng nhom lenh thong dung nham phuc vu cho viec lap trnh bang ngon ng may. 2.1). Nhom lenh truyen so lieu: Cac lenh truyen d lieu se sao chep d lieu gia thanh ghi vi thanh ghi, vi bo nh hoac vi khoi vao-ra. Chung co the s dung nhieu cach nh a ch khac nhau. Trong cach viet lenh di dang gi nh: toan hang au tien la thanh ghi ch hoac a ch ch va tiep sau dau phay la thanh ghi nguon hoac a ch nguon. Khac vi 8085, trong 8086 tat ca cac lenh truyen d lieu eu dung lenh Mov Truyen t thanh ghi vao thanh ghi: Mov (Reg1), (Reg2) Noi dung (Reg2) c sao chep vao (Reg1). Th du: Mov AL, BL Sao chep noi dung BL vao thanh ghi AL. Truyen t thanh ghi vao bo nh: Mov (Mem), (Reg) oi vi lenh byte, noi dung cua thanh ghi c a vao a ch cua o nh. oi vi lenh word th noi dung cua thanh ghi c a vao hai o nh co a ch lan lc la (Mem) va (Mem + 1). Th du: Mov [1200], BL Sao chep noi dung cua thanh ghi BL vao o nh co a ch tng oi la 1200. Truyen t o nh vao thanh ghi: Mov (Reg), (Mem) oi vi lenh byte, noi dung o nh c chep vao thanh ghi. oi vi lenh word, noi dung cua 2 o nh (Mem) va (Mem + 1) c chep vao thanh ghi. Th du: Mov BL, [1500] Sao chep noi dung o nh tai a ch 1500 vao thanh ghi BL. Mov BX, [1500] Sao chep noi dung hai o nh tai a ch 1500 va 1501 vao thanh ghi BX (o 1500 vao BL va o 1501 vao BH)

Chu y: neu s dung AL hoac AX trong cac lenh truyen t thanh ghi vao o nh va ngc lai se nhan c ma cong tac ngan hn khi s dung cac thanh ghi khac. Truyen tc thi vao thanh ghi: Mov (Reg), (Data) Trong lenh nay, d lieu c truyen tc thi vao thanh ghi. Th du: Mov BL, 20 Gia tr 20 c a vao thanh ghi BL. Truyen tc thi vao bo nh: Mov (Mem), (Data) Trong lenh byte d lieu c truyen tc thi vao o nh co a ch (Mem). Trong lenh word d lieu c truyen tc thi vao 2 o nh co a ch (Mem) va (Mem + 1). Th du: Mov [1200], 50 Gia tr 50 c a vao o nh co a ch 1200. Mov Word PTR [1200], 50 Gia tr Word 0050 c a vao 2 o nh bat dau tai a ch 1200:50 (LSB) vao a ch 1200:00 (MSB) vao a ch 1201 - Truy xuat trc tiep cong: IN (Reg), (Port) oc noi dung cua cong vao thanh ghi. thanh ghi s dung l2 AL (dang byte) va AX (dang Word), a ch cong la mot so 8 bit. OUT (Reg), (Port) Xuat noi dung cua thanh ghi ra cong. - Truy xuat gian tiep cong: IN (Reg), DX oc noi dung cua cong co a ch cha trong DX vao thanh ghi. Thanh ghi s dung la AL hoac AX, a ch cong la so 16 bit. OUT DX, (Reg) Gi noi dung thanh ghi ra cong co a ch cha trong DX 2.2). Nhom lenh so hoc: Bao gom cac phep tnh c ban (cong, tr, nhan va chia) va phep so sanh, toan hang co the la d lieu 8 bit hoac 16 bit, ket qua co the la 8 bit, 16 bit hoac 32 bit. Cac toan hang c cha trong thanh ghi bo nh tc thi. Tuy theo thao tac, ket qua co the c cha trong 1 hoac 2 thanh ghi trong bo nh. Phep cong:

Vi x ly 8086 thc hien phep cong co lu y so nh hoac khong lu y so nh 8 bit hoac 16 bit. + So hang au tien c cha trong cac thanh ghi d lieu (AX, BX, CX, DX, AH, AL, BH ), trog mot thanh ghi ch so hoac mot o nh. So hang th hai co the la tc thi trong thanh ghi hoac trong bo nh. Hai so hang khong the cung trong bo nh, ket qua phep cong c cha trong toan hang th nhat. Sau ay la bang liet ke lenh cong di dang gi nh: Cong khong lu Cong co lu y Th du y so nh so nh ADD (accu), (data) ADC (accu), (data) ADD AX, 1250 ADD (mem), (data) ADC (mem), (data) ADD Byte PTR ADD (reg), (data) ADC (reg), (data) [0900],50 ADD (reg1), (reg2) ADC (reg1), (reg2) ADD BL, 50 ADD (reg), (mem) ADC (reg), (mem) ADC AL, AH ADD (mem), (reg) ADC (mem), (reg) ADD CX, [0800] ADC [0600], DL Phep tr: 8086 co the thc hien phep tr vi 8 bit hoac 16 bit, lenh SBB co lu y so thieu va lenh SUB khong lu y so thieu. Sau ay la bang liet ke lenh tr di dang gi nh: Tr co so thieu Tr khong co Th du so thieu SUB (accu), (data) SBB (accu), (data) SUB AX, 1230 SUB (mem), (data) SBB (mem), (data) SBB Byte PTR SUB (reg), (data) SBB (reg), (data) [5000], 90 SUB (reg1), (reg2) SBB (reg1), (reg2) SUB BL, 50 SUB (reg), (mem) SBB (reg), (mem) SBB AL, DL SUB (mem), (reg) SBB (mem), (reg) SUB CX, [1230] SBB [0300], DL

GIAO TIEP VI MAY TNH


I. GIAO TIEP SONG SONG GIAO TIEP QUA CONG MAY IN: 1.1 Vai net c ban ve cong may in:
Viec noi may in vi may tnh c thc hien qua o cam 15 chan pha sau may tnh. Nhng ay khong phai ch la cho noi vi may in ma khi s dung may tnh vao viec khac, nh truyen d lieu t may tnh ti mot thiet b khac, hay ieu khien thiet b bang may tnh th viec ghep noi cung c ghep noi qua cong may in. Qua cong nay d lieu c truyen i song song, nen oi khi con c goi la cong ghep noi song song va toc o truyen cung at en mc ang ke. Tat ca cac ng dan cua cong may in eu tng thch vi TTL. Ngha la chung eu cung cap mc ien ap nam gia 0V en 5V. Do o ta ca lu y la cac ng dan vao cong nay khong c at mc ien ap qua ln. S sap xep cac chan cua cong may in vi tat ca cac ng dan c mo ta nh sau:

Chng III

O O O O O O O O O O O O O O O O O O O O O O O O O 25

14

HNH 3.1

Chc nang cac chan Cha Ky Out/in Chc nang n hieu 1 Strobe Out Byte c in 2 .. 9 10 11 D0 .. D7 ACK Busy 12 13 14 15 16 17 18 .. 25 PE SLCT AF ERROR INIT SLCTIN GND In In Out In Out Out Bao het giai Bao l75a chon may in May tnh bao ra may in t nap gia Bao cac loi cua may in Reset may in Chon may in Noi at Out In In Cac ng d lieu D0 .. D7. Phan thu bao cho phan phat biet a thu xong mot k t Phan tn hieu do phan thu bao cho phan phat biet la phan thu ang ban

1.3 . Trao oi vi cac ng dan tn hieu: LPT1: Gom co 3 thanh ghi: thanh ghi d lieu, thanh ghi trang thai va thanh ghi ieu khien.
a. Thanh ghi d lieu: gom co 8 bit d lieu, co a

ch la 378h. D7

D D5 D4 D3 D2 D1 D 6 0 b. Thanh ghi trang thai: co a ch la 379h. DCHAN SO : 9D3 8D2 7 D5 D4 D1 2 6 c. Thanh ghi ieu khien co a ch : 37AH D7 D6 D5 D4 D3 HNH 3.1 D2 D1 D6 0 D
5 4 3 Strobe ERROR AF SLCT INIT PE ACK SLCTIN BUSY

( Ngat 8259 )

0 1.4 . Hoat ong cua viec trao oi d lieu . a. hoat ong cua phan phat + oc Busy cho en khi Busy\ = 1. + gi d lieu ra bus d lieu + cho Strobe = 0. + chuon b d lieu tiep theo + quay ve bc 1 b. Hoat ong cua phan thu + oc Strobe cho en khi Strobe = 1. + Busy = 0 , ACK = 0. + oc d lieu vao . + a ACK = 1 . + x ly d lieu . + cho Busy = 1 e phat ky t tiep theo + quay ve bc 1.

LU O PHAT

BEGIN

LU O THU BUSY = 1 BEGIN GI D LIEU STROBE = STROBE 1 =1

CHUAN B D LIEU TIEP THEO

ACK = 1

BUSY =1 , ACK =0 STROBE = 0


OC D LIEU HET FILE HNH 5.1 ACK = 1

THOAT RA X LY D LIEU

HNH 5.2

BUSY = 1

2 . GIAO TIEP QUA SLOT CARD. (co a ch t 300..31FH): Trong may tnh ngi ta che tao san cac slot cho phep ngi s dung tnh nang cua may vi tnh bang cach gan them cac thiet b vao no. Moi slot eu co cac ng d lieu (data), a ch (address), cac ng +5V , 5V , + 12V , -12V va cac ng ieu khien nh CLK, IRQ, RESET, /IOW, IOR v vay neu thiet ke mach giao tiep qua slot se giam c rat nhieu linh kien, giam c bo nguon ben ngoai, de ieu khien, gia thanh thap nen ong thi toc o truyen d lieu cung nhanh. Tuy nhien ben canh nhng u iem no cung co nhng nhc iem nh: do slot card giao tiep c gan ben trong may nen cach giao tiep nay kho nhan c d lieu t ben ngoai. No b han che ve khoang cach lam viec ong thi moi lan s dung phai m rap may gay bat tien cho ngi s dung. * Cac ranh cam trong may tinh PC: may tnh PC/XT ranh cam trong may tnh ch co 1 loai vi o rong la 8 bit va tuan theo tieu chuan ISA (Industry Standard Architecture). T may tnh AT tr i viec bo tr chan tren ranh cam tr len phc tap hn, tuy theo tieu chuan khi la chon may tnh, cac loai ranh cam theo tieu chuan khac nhau co the kiem tra nh sau: + Ranh cam 16 bit theo tieu chuan ISA (Industry standard Architecture) + Ranh cam PS/2 vi 16 bit theo tieu chuan MCA (Micro Channel Architecture). + Ranh cam PC/2 vi 32 bit theo tieu chuan MCA + Ranh cam 32 bit theo tieu chuan EISA (Extended Micro Channel Architecture) + Ranh cam 32 bit theo tieu chuan VESA. + Ranh cam 32 bit theo tieu chuan PCI. Cho en nay phan ln cac card ghep noi dung trong ky thuat do lng va ieu khien eu c che tao e at vao ranh cam theo tieu chuan ISA.

GIAO TIEP NOI TIEP QUA CONG COM . RS232: 1. VAI NET C BAN VE CONG NOI TIEP: Cong noi tiep RS232 la mot loai giao dien pho bien rong rai nhat, ta con goi la cong COM1 , COM2 e t do cho cac ng dung khac nhau. Giong nh cong may in,cong noi tiep RS232 cung c s dung rat thuan tien trong viec ghep noi may tnh vi cac thiet b ngoai vi. Viec truyen d lieu qua cong RS232 c tien hanh theo cach noi tiep, ngha la cac bit d lieu c gi i noi tiep voi nhau tren mot ng dan. Trc het loai truyen nay co kha nang dung cho nhng khoang cach ln hn, bi v kha nang gay nhieu la nho ang ke hn la khi dung mot cong song song. Viec dung cong song song co mot nhc iem ang ke la cap truyen nhieu si va v vai rat at tien, hn na mc tn hieu nam trong khoang 0..5V a to ra khong thich ng vi khoang cach ln. Tren hnh 5.3 la s bo tr chan cua phch cam RS232 cua may tnh PC.

1 2

CHAN (loai 9 chan ) 1 2 3 4 5 6 7 8 8 3 2

CHAN ( loai 25 chan )

O O KY O O O HIEU

Y NGHA

O O O O 6 7

DCD RxD TxR DTR

Data carrier detect


8 9

Nhan d lieu Phat d lieu D lieu au cuoi san

20 13 7 6 4 5

O O O O O O O O O O O O sang O GND O O O O O O O O O O O Noi at O DSR 14

RTS CTS

Thiet b thong tin san sang Yeu cau gi

25

HNH 5.3

22

RI

Thiet b thong tin san sang truyen Ring in dicator

Viec truyen d lieu xay ra tren 2 ng dan qua chan cam ra TxD, may tnh gi d lieu cua no en thiet b khac. Trong khi o d lieu ma may tnh nhan c dan en chan RxD. Cac tn hieu khac ong vai tro nh tn hieu ho tr khi trao oi thong tin va v the khong phai trong moi ng dung eu dung en. Mc tn hieu tren chan ra RxD tuy thuoc vao ng dan TxD va thong tin thng nam trong khoang 12V.. + 12V cac bit d lieu c ao ngc lai. Mc ien ap mc cao nam trong khoang 3V va 12V va mc thap nam trong khoang t + 3Vva +12V. Trang thai tnh tren ng dan co mc ien ap 12V . Bang toc o baud ta thiet lap toc o truyen d lieu cac gia tr thong thng la 300, 600, 1200, 2400, 4800, 9600 va 19200 baud. Ky hieu baud la so lng bit truyen trong 1s. Con mot van e na la khuon mau (Format) truyen d lieu can phai c thiet lap nh nhau ca ben gi cung nh ben nhan cac thong so truyen co the c thiet lap tren may tnh PC bang cac cau lenh tren DOS. Ngay nay Windows cung co cac chng trnh rieng e s dung, khi o cac thong so truyen d lieu nh: toc o baud, so bit d lieu, so bt dng, bit chan le (parity) co the c thiet lap mot cach rat n gian. 2. S TRAO OI CUA CAC NG DAN TN HIEU Cung nh cong may in, cac ng dan tn hieu rieng biet cung cho phep trao oi qua lai cac a ch trong may tnh PC. Trong trng hp nay ngi ta thng s dung nhng vi mach co o tch hp cao e co the hp nhat nhie chc nang tren 1 chip. may tnh PC thng co mot bo phat/nhan khong ong bo van nang goi tat la UART: Universal Asynchronous Receiver/Transmister. e ieu khien s trao

oi thong tin gia may tnh va cac thiet b ngoai vi. Pho bien nhat la vi mach 8250 cua hang NSC hoac cac thiet b tiep theo, chang han nh 16C550. Bo AURT nay co 10 thanh ghi e ieu khien tat ca chc nang cua viec nhap vao, xuat ra d lieu theo cach noi tiep lien quan en noi dung cua phan nay ch e cap en hai ieu ang quan tam o la: thanh ghi ieu khien modem va thanh ghi trang thai modem. a) Thanh ghi ieu khien modem: D7 D0 0 D6 0 D5 0 D4 LOOP D3 OUT2 D2 UOT1 RTS D1 DTR

D0 =1 a /DTR =0 D0 =0 a /DTR =1 D1 =1 a /RTS =0 D1 =0 a /RTS =1 OUT1 va OUT2 ieu khien au ra phu b) Thanh ghi trang thai modem :(a ch c ban +6) RLSD RI DSR CTS RLSD RI DSR CTR

Cung giong nh cong ghep noi vi may in, cac Thanh ghi c trao oi qua o nh trong vung vao/ra (input/output). a ch au tien co the ti c cua 1 neu RI co bien oi Co cac gia tr cua cac bt cong noi tiep goi la a ch c ban (basic Address) cac out 2 out 1 , DTR , RTS , trong MCR a ch cua cac thanh ghi tiep theo c at ti thay o cac 1: neu co s bang khi bit LOOP = 1 tn hieu tng UART viec cong them so thanh ghi a gap cua bong vao a ch c ban . a ch c ban cua cong noi tiep cua may tnh PC c tom tat trong bang sau: CONG COM COM COM COM 1 2 3 4 A CH BAN 3F8H 2F8H 3E8H 2E8H C

PHAN 2

PHAN CNG CUA MACH GIAO TIEP

CHNG IV

GII THIEU KT VI X LY 8088


I. CAC LINH KIEN BAN DAN LIEN QUAN 1. Vi mach MAX 232
Vi mach MAX 232 chuyen oi mc TTL ngo vaothanh mc +10V hoac 10V pha truyen va cac mc +3V +15V hoac 3V -15V thanh mc TTL pha nhan. Tren hnh 4.1 mo ta cach sap xep chan va s O o cau truc cua vi mach MAX232 1
16 1 2 6 15 1 6 1 6 1 6 1 6 1 6 3 MAX 14 232 4 13 5 12 1 6 1 6

C1+
V+ C1C2+ C2VT2OU T R2IN

Vcc GND T1OUT R1IN

1 6 6 11 1 6 7 10

1 R1OUT 6 1 T1IN 6 T2IN 1 6 R2OUT 1 6

Hnh 4.1

mach MAX 232 con bo em noi ra chan 14 c noi trc tiep ti chan so 2 cua cong noi tiep.

8 ng dan9 TxD dan yrc tiep en chan 11 cua vi

Viec sap xep chan o cam noi tiep c la chon sao cho co the dung mot cap noi trc tiep cong noi tiep cua he phat trien, vi cong noi tiep cua may tnh thng la COM 2. Vi ng dan RxD moi viec cung dien ra tng t chan 13 cua vi mach c noi en chan 3 cua cong noi tiep.

2. IC EM 74LS244: e nang cao kha nang tai cua cac bus, e am nhan viec nuoi cac mach ben ngoai, cac tn hieu ra cua CPU can phai c khuech ai thong qua cac mach em mot chieu, hai chieu vi cac au ra thng hay au ra ba trang thai o la IC 74LS244. IC 74LS244 la mot vi mach co 8 bo em va bo lai ng c thiet ke nh nhng bo lai a ch nh. S o chan 74LS244:
1G 1A1 2Y1 1 2 1A2 3 4 2Y3 5 6 1A3 7 8 2Y2 9 10 1A4 2Y1 GND Vcc 2G 1Y1 20 19 2A4 18 17 1Y2 16 15 2A3 14 13 1Y3 12 11 2A2 1Y4 2A1

Hnh Bang s that: 4.2: S o chan 74LS244 INPUT H: mc ien the OUTPUT cao 1G D L: mc ien the 2G thap L L L X: khong quan tam L H H Z: tong tr cao H X Z Thong so ngng: Ky Thong so Min Typ Max n hieu e v Vcc Nguon cung 4,45 5,0 5,25 V cap o TA Nhiet o hoat 0 2,5 70 C ong IOH Dong ra cao -1,5 mA IOL Dong ra thap 24 mA 3. MACH TAO XUNG NHP 8284: Cho du lam viec che o nao i na CPU 8086 luon can xung nhp e hoat ong, mach tao xung nhp 8284 se am nhan viec tao xung nhp clock cho CPU 8086. Mach tao xung nhp khong nhng cung cap xung clock vi tan so thch hp cho toan bo ma no con co anh hng ti viec ong bo tn hieu Reset va tn hieu Ready cua CPU.

74LS2 44

1). S o chan 8284:


CSYN C Vcc PCLK X1 18 X2 1 AEN1 2 17 16 ASYNC RDY1 3 15 4 14 EFI 5 READ 6 13 12 F/C Y7 11 8 10 OSC 9 RDY2 AEN2 RES CKL RESET GND 4.3: S o chan Hnh 2). Chc nang cac chan 8284: 8284

828 4

AEN1, AEN2: tn hieu cho phep chon au vao tng ng RDY1, RDY2 lam tn hieu bao trang thai cua bo nh va thiet b ngoai vi. RDY1, RDY2: cung vi AEN1, AEN2 dung gay ra cac chu ky i CPU. ASYNC: chon ong bo hai tang hay ong bo mot tang cho tn hieu RDY1, RDY2. Trong che ong bo mot tang (ASYNC = 1) tn hieu RDY co anh hng en tn hieu Ready en tan sn xuong cua xung ong ho tiep theo. Con trong che o ong bo hai tang (ASYNC = 0) tn hieu RDY ch co anh hng ti tn hieu Ready khi co sn xuong cua xung ong ho tiep theo. Ready: noi en au vao Ready cua CPU. Tn hieu nay c ong bo vi cac tn hieu RDY1 va RDY2. X1, X2: noi vi hai chan cua thach anh tao dao ong chuan vi tan so fx, thach anh nay la bo phan cua mot mach dao ong ben trong 8284 co nhiem vu tao xung chuan dung lam tn hieu ong ho cho toan he thong. F/C: dung e chon nguon tn hieu chuan cho 8284, khi chan nay mc cao th xung ong ho ben ngoai se c dung lam xung nhp cho 8284, ngc lai th xung ong ho cua mach dao ong ben trong dung thach anh se c chon lam xung nhp. EFI: loi vao cho xung t bo dao ong ngoai. f CLK: xung nhp fclk = x vi o rong 77% noi en 3 chan CLK cua CPU 8086. f PCLK: xung nhp fPCLK = x vi o rong 50% dang 6 cho thiet b ngoai vi.

OSC xung nhp a c khuech ai co tan so bang fx cua bo dao ong. RES chan khi ong, noi vi mach RC e 8284 co the t khi ong khi bat nguon. Reset: noi vao Reset cua 8086 va la tn hieu khi ong lai cho toan bo he thong. CSYNC: loi vao cho xung ong bo chung khi trong he thong co cac 8284 dung dao ong ngoai tai chan EFI. Khi dung mach dao ong trong th phai noi mass X chan nay. 1
+5V

X 2 RE S F/ C

828 4 RESE

CL K T

CLK

808 6 RESE
T

Hnh tren bieu dien cac ng noi tn hieu chnh cua 8284. Mach 8284 nhan xung khi ong t ben ngoai thong qua mach RC, khi bat dau bat ien hoac xung khi ong lai khi bam cong tac K t xung nay 8284 co nhiem vu a ra xung khi ong ong bo cho CPU cung vi tat ca cac thanh phan khac cua he thong. 4. TONG QUAN VE BO NH: Trc khi noi ve ket noi bo nh vi vi x ly 8086 nhom thc hien noi qua ve bo nh ban dan thng dung e ket noi vi vi x ly. Bao gom: Bo nh co nh ROM (Read Only Memory Bo nh ch oc), thong tin trong bo nh se khong mat i khi mach b mat ien nguon cung cap. Bo nh ban co nh EPROM (Erasable Programnable ROM) la bo nh ROM co the lap trnh c bang xung ien va xoa c bang tia cc tm. Bo nh khong co nh RAM (Random Access Memory Bo nh truy cap ngau nhien). Trong noi dung e tai nhom thc hien dung SRAM (Static RAM RAM tnh, trong o moi phan t nh la mot mach lat hai trang thai on nh) va DRAM (Dynamic RAM RAM ong, trong o moi phan t nh la mot tu ien rat nho c che tao bang cong nghe MOS) e ket noi vi vi x ly.

CSYN C Khi ong he thong Hnh 4.4: S o cac ng tn hieu chnh cua 8284

Moi bo nh thng c che tao nen t nhieu vi mach nh. Mot vi mach nh thng co cau truc tieu bieu nh sau:

Tn hieu a ch

D0 A0 D1 A1 D2 A2 . . . . . . Dn Am CS WE OE

WR: Write ghi WE: Write Enable-cho Tn hieu phep oc. d lieu OE: Output Enable-au vao ieu khien. CS: Chip Select- chan chon. RD: Read oc.

nhom tn hieu sau: Nhom tn hieu a ch: Cac tn hieu a ch co tac dung chon ra mot o nh (mot t nh) cu the e ghi/oc. Cac o nh co o dai khac nhau tuy theo nha san xuat: 1, 4, 8 bit. So ng tn hieu a ch co lien quan en dung lng cua mach nh. Vi mot mach nh co n bit a ch th dung lng cua mach nh o la 2n t nh. Th du: vi bo nh 8 bit ta co n = 8 nen dung lng bo nh la 256 byte (28=256 byte), 16 bit nen n = 16 ta co dung lng bo nh la 65536 byte Nhom tn hieu d lieu: Cac tn hieu d lieu thng la au ra oi vi mach ROM hoac au vao/ra d lieu chung oi vi RAM. Cung ton tai mach nh RAM vi au ra va au vao d lieu rieng biet,oi vi RAM loai nay khi dung trong mach bus d lieu ngi s dung phai noi hai au o lai. Cac mach nh thng co au ra d lieu kieu ba trang thai, so ng d lieu quyet nh o dai t nh cua mach nh. Nhom tn hieu chon vi mach: Cac tn hieu chon la CS (Chip Select) hoac CE (Chip Enable) thng c dung e chon vi mach nh cu the e ghi/oc. Tn hieu chon cac mach RAM thng la CS, con cac mach ROM thng la CE. Cac tn hieu chon thng noi vi au ra cua bo giai ma a ch. Khi mot mach nh khong c chon th bus d lieu cua no b treo. Nhom tn hieu ieu khien: Tn hieu ieu khien can co trong tat ca cac mach nh. Cac mach ROM thng co mot au vao ieu khien OE (Output Enable) e cho phep d lieu c

Chan chon RD Hnh 4.5: S o mot vi mach Theo s o tren ta thay mot vi mach nh co cac nh

xuat ra bus. Mot mach nh khong c m bi OE th bus d lieu cua no b treo. Mot mach RAM neu ch co mot tn hieu ieu khien th thng o la R/W e ieu khien qua trnh ghi oc. Neu mach nh RAM co hai tn hieu ieu khien th thng la WE (Write Enable) e ieu khien ghi va OE e ieu khien oc. Hai tn hieu nay phai ngc pha nhau e ieu khien viec oc va ghi cua mach nh. Mot thong so ac trng khac cua bo nh la thi gian truy xuat tac. Noi chung, no c nh ngha nh la thi gian ke t co xung a ch tren bus a ch cho en khi co d lieu ra on dnh tren bus d lieu. Thi gian truy xuat cua bo nh phu thuoc rat nhieu vao cong nghe che tao cua no. Cac bo nh lam bang cong nghe lng cc co thi gian truy xuat nho (10 30 ns) con bo nh lam bang cong nghe MOS co thi gian truy xuat ln hn nhieu ( > 150 ns). Bo nh c s dung trong viec ket noi kit 8086 la EPROM 2764: 4.1). EPROM 2764:
Vpp A12 A7 A6 1 2 A5 3 4 A4 5 6 A3 7 8 A2 9 10 A1 11 12 A0 13 14 D0 D1 D2 GND Vcc PCM NC A8 A9 A11 OE A10 CE D7 D6 D5 D4 D3

276 4

28 27 26 25 24 23 22 21 10 19 18 17 16 15

Khi oc EPROM co cac ac tnh sau: CE [20] Vi (low) OE [22] Vi (low) PGM [27] Vcc (high) Vpp [1] Vcc Vcc [28] Vcc A0 A15 Address D0 D7 Data

Hnh 4.6: S o chan 2764

Cac che o hoat ong cua EPROM 2764: Trang thai CE OE PGM Vpp Out oc Vl Vl Vh Vcc Out Ch Vh X X Vcc Tat Lap trnh Vl X Vl 21V In Kiem tra Vl Vl Vh 21V Out Cam lap Vh X X 21V Tat trnh
O E CS MEMR O E CS

D8 D15

S o chan:

D0 D7 CS t bo giai ma Hnh 4.7: Mo hnh ket noi bo giai ma vi bo nh 4.2). RAM 62256: A14 A12 A7 A6 1 2 A5 3 4 A4 5 6 A3 7 8 A2 9 10 A1 11 12 A0 13 14 D0 D1 D2 GND Vcc WE A13 A8 A9 A11 OE A10 CE D7 D6 D5 D4 D3

6225 6

28 27 26 25 24 23 22 21 10 19 18 17 16 15

Hnh 4.8: S o chan 62256

GII THIEU KIT VI X LY 8086

1. Bo VXL va tan so lam viec. Bo VXL 8086 cua Intel co tan so hoat ong la 8MHz, co 20 ng ia ch nen co the quan ly c 1Mb bo nh va co 16 ng d lieu va 4 tn hieu ieu khien nen s dung IC 74LH573 lam IC chot a ch thap. 2. To chc bo nh: Bo nh co nh gom hai EPROM, la bo nh ROM co the lap trnh c bang xung ien va xoa c bang tia cc tm. Hai EPROM nay c dung la IC 2764 c thiet ke cho vung a ch t F0000 en FFFFFFH. Bo nh c dung e lu tr chng trnh he thong cua kit. Bo nh khong co nh RAM (Ramdom Access Memory Bo nh truy cap ngau nhien). Trong kit dung hai Ram nay c thiet ke t a ch 80000 en 8FFFF. VXL 8086 co kha nang quan ly 1Mb bo nh nhng do ng dung thc te cua kit ch thiet t 80000 en FFFFFH dung cho cac RAM, EPROM va cac IC ngoai vi. 3. Gii thieu ve ban phm: Vi mach 8279 co kha nang rat ac biet: co kha nang va quet ban phm ri va hien th c 16 Led 7 oan. Do yeu cau cua he thong kit 8086 nhap d lieu vao he thong thong qua ban phm cung nh viec hien th cac so lieu ra Led nen ay nhom chon vi mach 8279 e thc hien chc nang nay. a). Ban phm: Ban phm khong phai la thiet b ien t ma no la nhng cong tac thng h, no giup ngi s dung giao tiep vi he thong. Do yeu cau cua he thong nen nhom khong s dung het 64 phm ma vi mach 8279 quan ly c, cu the la 26 phm. e 8279 lam viec quet phm trc tien ta phai thiet lap cac t ieu khien gi ra 8279, cac ng tn hieu SL3 SL0 dung e quet, d lieu tren ng nay co the thiet lap theo hai kieu Encode va Decode. Neu thiet lap theo kieu Decode th 4 ng SL3 SL0 co the quet hien th 4 led 7 oan ma yeu cau cua 4 ng SL3 SL0 phai che o Decode nen ta phai chon 8279 che o Encode sau o mi giai ma 4 ng SL3 SL0 thanh che o Decode luc nay giai ma t 4 ng sang 16 ng e co kha nang hien th ra 16 Led. Do yeu cau cua e tai la hien th ra 8

Led nen ta chon IC 74LS138 e giai ma cho vi mach 8379. Cac ngo SHIFT va CNTL dung e m rong cac to hp phm. Do he thong khong s dung het phm nen 2 ngo nay c noi Mass. Nguyen ly lam viec cua 8279 trong viec quet phm: e 8279 lam cong viec quet phm ta chon che o KKK = 100 (Encode Scan Sensor Matrix) va gi cac t ieu khien nay 8279 e khi tao che o quet phm. Cac ng SL3 SL0 quet lien tuc qua 74138 e hien th va phm an. Khi co mot phm an, 8279 t ong chong doi sau 10,3 ms va kiem tra mot lan na e xem phm o co an na hay khong, neu co th 8279 thiet lap ma cho phm nay va lu tr ma cua phm vao RAM ben trong, sau o bao cho vi x ly biet co mot phm tac ong va yeu cau vi x ly nhap ma cho phm nay bang cach tac ong en tn hieu ngat IRQ hoac bang cach oi thanh ghi trang thai FiFo lam cho 3bit NNN se khac mc 000 khi co mot phm c an.

CHNG V

GIAO TIEP NOI TIEP DUNG VI MACH 8251


I. TRUYEN THONG TIN NOI TIEP:

Viec truyen thong tin gia cac bo phan nam gan nhau trong he vi x ly co the c thc hien thong qua bus song song m rong hoac cac mach phoi ghep song song. Trong o cac byte hoac cac t c chuyen t bo phan nay sang bo phan khac tren mot tap cac ng mach in hoac day cap. Trong trng hp can phai truyen thong tin cac thiet b cach xa nhau lam sao tiet kiem c so ng day dan can thiet cho viec truyen. T yeu cau tren a ra i phng phap truyen thong tin noi tiep. au phat d lieu song song au tien c chuyen thanh d lieu dang noi tiep sau o c truyen i lien tiep tren mot ng day. au thu, tn hieu noi tiep se c bien oi ngc lai e tai tao lai dang tn hieu dang song song thch hp cho viec x ly tiep theo. Trong thc te co 2 phng phap truyen thong tin kieu noi tiep: truyen ong bo va truyen khong ong bo. Trong phng phap truyen ong bo, d lieu d lieu c truyen theo tng mang vi toc o xac nh. Mang d lieu trc khi c truyen i se c gan them au va cuoi mang cac byte hoac mot nhom bit nh dau ac biet. hnh 6.1 bieu dien mot ban tin e truyen ong bo theo giao thc BISYNC (giao thc truyen thong tin he 2 dong bo, binary synchronous communication protocal) ay thc chat la giao thc ieu khien theo byte, v cac byte (ky t) ac biet c dung e ang dau cac phan khac nhau cua ban tin.
SYN SYN SOH HEADER STX BCC TEXT ETX hay ETB

SYN : Ky t ong bo SOH : Ky t bat au phan mau au HEADER : Phan mao au STX : Ky t bat au van ban TEXT :Than van ban ETX : Ky t ket thuc van ban ETB : Ky t ket thuc van ban BCC : Ky t kiem tra khoi HNH 5.1

Trong cach truyen khong ong bo, d lieu c truyen i theo tng ky t. Ky t can truyen i c gan them mot bit anh dau au e bao bat au ky t (start) va 1 hoac 2 bit anh dau cuoi e bao ket thuc ky t (stop). V cuoi ky t c nhan dang rieng biet nen no co the dc truyen i theo phng phap khong ong bo, c the hien tren hnh 6.1
Chieu cua dong ky t Luon mc cao Luon mc thap

Start D0 D1 D2 D3 D4 D5 D6 Parity Stop Stop Ma cua ky t can truyen HNH 5.2 : Khung cua mot Tuy theo loai ma c chon dung ky t khi truyen khong trong e truyen ong bo (Baudot, Ascii, ) o dai cho ma ky t co the la 5, 6, 7, 8 Bit. Tuy theo he thong truyen tin, ben canh cac bit d lieu con co the tuy chon co hay khong co 1bit parity e kiem tra loi khi truyen co the tuy chon 1 hoac 2 bit stop, nhng bat buoc phai co mot bit start. Nh vay e truyen mot ky t theo phng phap khong ong bo, ngoai ky t mang tin ta buoc phai truyen them t nhat 2 va nhieu nhat la 4 bit phu e tao ra khung cho ky t o, v the phng phap nay tuy n gian nhng co hieu suat khong cao. Toc o truyen d lieu theo phng phap noi tiep c o bang bit/s. Ngoai ra ngi ta cung hay dung n v baud, o la gia tr ngch ao cua thi gian gia cac lan thay oi mc tn hieu, vi d lieu ch co hai mc (0 va 1) va moi thay oi mc tn hieu ch ma hoa mot bit th co the hieu baud = bit/s, cac toc o truyen thng gap trong thc te la 110, 300, 600, 1200, 2400, 4800, 9600, 19200 baud. e tao ieu kien de dang cho viec phoi ghep ng truyen noi tiep vi he vi x ly va e giam toi a cac mach phu them ben ngoai ngi ta a

che tao ra cac vi mach to hp c ln lap trnh c co kha nang hoan thanh phan ln cac cong viec can thiet trong khi phoi ghep. o la cac mach thu phat di bo van nang IN8250/16450 cua National va mach thu phat ong bo d bo van nang 8251 cua Intel.

II.

VI MACH USART 8251


/CS chp chon vi

Trong phan nay ta se gii thieu mach 8251A o la mach vi mach USART co the dung cho ca hai kieu read oc /RD truyen 28 thong tin noi tiep ong bo, d bo. S o chan va s /WR write viet 27 D2 1 o thanh ghi c trnh bay D1 hnh5.3 C/D control/data 26 D0 2 chan va s o khoi: D3 1. S o ieu khi63n so lieu a. nhom tn hieu 25 ghep noi vi vi x ly gom: Vcc RxD 3 CLK clock 24 /RxC 4 GND - /CS noi vi bo giai ma a ch A1.. An enhp D0..D7 data O/I bus chon 5 23 /DTR D4 2 thanh ghi (A0 = 1 ieu khien trang thai, A0 = 0d lieuso ra em vao 22 /RTS 6 D5 ). /TxC transmit clock lieu 21 8251 truyen 7 D6- C/D noi vi ng /DSR a ch A0 nhp chon day e RxC receiver clock 20 D7 trongA cap thanh ghi Reset mot 8 2 tren. RST reset 19 9 /TxC /WR noi vi chan /WRCLK vi x ly. /DTR dada terminal cua 18 cua 10 /WR /RD noi vi chan /RD TxD vi x ly. ready 17 ly. TxEMPTY 11 /CS CLK noi vi ng day CLK cua vi x/DSR data set ready 16 /CTS 12 C/D Reset noi vi ng day reset cua vi x ly. /RTS request - D0 D7 no vi15 cac ng dan D0D7 cua VXL to send Syndet/B 13 /RD Nhom tn hieu ghep noi voi Modem: /CTS clear to send b. R 14 RxRDY /DTR TxD transmit data RxD receiver data TxRDY - /DSR TxRDy transmit - /RTS ready - /CTS RxRDy receiver c. Nhom tn(a) hieu gep noi vi ng day truyen ready nhan va KGN: TxEMTY transmist - TxEMTY thanh ghi em truyen rong rigister empty /CS TxD - TxR cho so llieu truyen Syn/BRK- Breack /RD Thanh ghi truyen truyen a san sang. deteat /WR- TxRDy bao so lieu - RxRDy dao so lieu nhan a san sang. C/D Thanh ghi : chi D0 - Syn det/Break emong bo / t dong tin truyen D1d. Nhom tn hieu ghep noi vi may phat xung D2 nhp. RxD D3 - TxD Thanh ghi nhan : nhp truyen. D4 - RxC : nhp nhan.
D5 D6 Thanh ghi em D7 2. Cac thanh ghi nhan CLK RST va hnh RxRDY hnh 6.4a ghi che 6.4b mo ta bo thanh ghi cua Thanh 8251, gom: o thanh ghi trang thai va thanh ghi S Hnh 5.3 : ieu khien. TxRDY Hai thanh ghi tren co cung mot a ch(a) o chan vi A0 = 1 TxEMTy dung e ghi (/WR) va mot oc (/RD) trang thai. Hai va cac tnh Vcc Thanh ghi lenh ghi (b) cua GND thanh ghi em so lieu ghi va oc co cung mot a 8251A ch (A0 = 0) va dung e ghi va oc so lieu can Thanh ghi trang /DSR /DTR /CTS /RTS Syn/BRK TxC thai (b) RxC

truyen va nhan cua KGN. Cac lenh cho cac thanh ghi tren nh bang sau: /CE 0 0 0 0 1 C/D 1 1 0 0 x / WR 0 1 0 1 x /RD LENH 1 0 1 0 x

Ghi vao thanh ghi ieu khien (che o, lenh) oc thanh ghi trang thai. Ghi so lieu vao thanh ghi em truyen. oc so lieu t thanh ghi em nhan. Tr khang cao (khong dung). I. Cau truc phan mem - Thanh ghi ieu khien - Thanh ghi trang thai Hai thanh ghi tren co cung a ch vi A0=1, mot dung e ghi (WR\) lenh ieu khien va mot e oc (RD\) trang thai. Hai thanh ghi em so lieu ghi va oc cung co mot a ch A0=0) dung e ghi va oc so lieu can truyen va nhan cua KGN. Cac lenh cho cac thanh ghi tren bang sau: a. Thanh ghi ieu khien: - dung e ghi: + li ieu khien che o. + li lenh:

D7 D0

D6

D5

D4

D3

D2

D1

Toc o truyen Bit chan le X0 khong kiem tra cha le kiem tra le 10 kiem tra chan 00 ong bo 01 khong ong bo x1

10 khong ong bo x 16 11 khong ong bo x64


o dai ky t 5 bit 6bit 7bit 8 bit ieu khien khung. khong gia tr mot bit dng 1.5 bit dng 2 bit dng

Hnh 5.4a

b. Thanh ghi che o.


D7 D2 EH TxEN IR D6 D1 RTS ER D5 D0 SBRK RxEN DTR D4 D3

Cho phep phat 1= cho phep So lieu au 0= cam cuoi San sang, DTR\ =1 Cho phep thu 1= cho phep RxRDy 0= cam RxRDy Gi tn hieu cat 1= a TxD = 0 0= hoat ong bnh thng Xoa c bao loi 1= xoa c PE, OE, FE Yeu cau phat 1= a tn hieu RTS/= 0 Ngat mem 1= xoa cac thanh ghi Che o bat ong bo 1= tm ky t ong bo Sync HNH 5.4B

c. thanh ghi trang thai. Dung e oc li trang thai:


D7 D0 D6 D5 D4 D3 D2 D1

Ch modem a San sang e truyen so lieu Ch ch ong bo a c 8251 nhan

Ch thanh ghi bien oi song song noi tiep rong

Ch 8251 san sang nhan 1 ch hay lenh e truyen Ch san sang nhan so lieu e truyen cho Bt bao sai chan VXL le Pe= 1khi co sai xoa bang ER cua lenh

Bit ch loi tran Khi VXL cha oc li trc, li sau a ti th OE =1 xoa bang ER cua lenh

Bit ch sai khung (khong ong bo) khi so bit dng b sai FE= 1 xoa bang ER =1 Hnh che * Vi li ieu khien 5.4c o: hnh 4.3a - Che o ong bo: (trong, ngoai hai hay mot ky t ong bo SYNC) bi noi dung ghi vao D7, D6. - Toc o truyen vi gia tr:

+ D1D0=00: Dung cho che o ong bo, toc o ni thu bang toc o ni phat, khong co s thay oi tan so xung nhp. + D1D0=01: dung cho che o khong ong bo, toc o gia ni thu va ni phat khong oi. + D1D0=01: toc o thu = toc o truyen X1, tc toc o thu=toc o truyen +D1D0=10 : toc o thu =16x toc o truyen + D1D0=11: toc o thu =64x toc o truyen - o dai ky t, tc o dai mot n v tin SDU vi cac gia tr D3D2 = 00 (5bit), 01(6bit) 10(7bit) va 11(8bit). - Kien tra chan le D5D4 =X0 (khong kiem tra), 01 (kiem tra le), 11 (kiem tra chan). - ieu khien khung, xac nh so bit dng Vi D7D0 = 01 mot bt dng D7D6 = 10 mot bt ri dng D7D6 = 11 hai bit dng Vi li lenh (hnh 43b) ta co the ghi lenh e: - ieu khien modem: DTR(D1=1), RTS(D%=1) - Xoa mem (bang chng trnh co IR (D6=1) e xoa ve 0 cac thanh ghi noi - Xoa c bao loi ER (D4=1) - Ghi cho phep truyen TxEN (D0=1) cho phep nhan RxE(D2=1) - Gi tn hieu cat (cac bit bang 0-Break) e cat dong tn hieu lien tuc ang truyen - Tm ky t ong bo EH (D7=1) trong che o ong bo Thanh ghi trang thai (hnh 43c): dung e oc - san sang truyen TxRDY (D0=1), san sang nhan RXRDY( D1=1) - Thanh ghi em so lieu rong TxE (D2=1) - Tuy ch co mot a ch (CS\=0, A1=1) nhng ta co the ghi c 2 li ieu khien che o va li lenh 2 thanh ghi ieu khien khac nhau v con co chung mot flip flop noi ieu khien lan lt vao hai thanh ghi tren.

III.

NG DUNG 8251A E TRUYEN THONG TIN NOI TIEP

1. Truyen thong tin noi tiep gia 2 kit VXL:

TxD RxD DTR\ 8251 DSR\ RTS\ CTS\

TxD RxD DTR\ 8251 DSR\ RTS\ CTS\

VXL2

a. Khi phat 8251A Muon 8251 hoat ong ung che o (khong ong bo), toc o (300, 600, 1200, 2400, 4800, 9600bps hoac ln hn), so bit tin (5, 6, 7, 8) co kiem tra chan hoac le va xac inh so bit dng (1; 1,5; 2 bit) ta phai ghi li ieu khien che o vao thanh ghi ieu khien cua 8251. V du: Mot 8251 co ia ch goc CS\ vi 0FFF0h, can trao oi thong tin 8 bit, toc o x16 khong co kiem tra Parity chan le, 2bit stop. Li ieu khien la: 1 1 0 0 1 1 1 0 chng trnh khi phat: MOV DX, 0FFF2h MOV AL,00h OUT DX,AL MOV CX 2h D0 : LOOP D0 OUT DX, AL D1: MOV CX,2h LOOP D1 OUT DX, AL MOV CX,2h

D2: LOOP MOV OUT MOV D3: LOOP MOV OUT MOV D4: LOOP END

D2 AL, 40h DX, AL CX, 2h D3 AL, 11001110B DX, AL CX, 2h D4

2.

A 1 A 11 D 0 D 7 Reset

Truyen thong tin noi tiep gia kit VXL va may tnh
Giai ma ia ch CS \ GND

CLK A0 RD \ WR \

D 0 D7 TxD Rest RxD CLK DTR C/D\ RD \ DSR\ WR\ RTS \ TxD 5 O O O O O O O O O 6 CTS\ RxRDy Cong COM Cua may tnh 9

INTR INTA \

X lyng at (8259 A hai mc )

VXL

8251

1. CHNG TRNH Chng trnh khi tao 8251A MOV DX, 0FFF2h MOV AL,00h OUT DX,AL MOV CX, 2h D0 : LOOP D0 OUT DX, AL D1: MOV CX, 2h LOOP D1 OUT DX, AL MOV CX,2h D2: LOOP D2 MOV AL, 40h OUT DX, AL MOV CX, 2h D3: LOOP D3 MOV AL, 11001110B OUT DX, AL MOV CX, 2h D4: LOOP D4 END

CHNG VI PHAN MEM GIAO TIEP CHNG TRNH TRUYEN, NHAN D LIEU TREN KIT VXL 8086.

2. GIAI THUAT * Lu o khi tao 8251A

Begin 00h khien 03h thanh ghi ieu

AH AH - 1

Delay

sai AH = 0 ? un g Nap t che o cao thanh ghi che o

Delay

End

* Lu o chng trnh truyen d lieu.


BEGIN

KHI PHAT: GHI T CHE O

GHI LENH : DTR, TxEN

OC TRANG THAI: DSR, TxRDy

Kiem tra san sang :DSR= TxRDY=1 GHI SO LIEU RA THANH GHI EM SO LIEU GHI LENH PHAT: RTS

END

* Lu o chng trnh nhan d lieu.


BEGIN

KHI PHAT: GHI T CHE O

GHI LENH : DTR, RxEN,RTS

OC TRANG THAI: DSR, RxRDy

Kiem tra san sang :DSR= RxRDY=1

OC SO LIEU T THANH GHI EM SO LIEU

END

3. CHNG TRNH. a. Chng trnh khi tao 8251A. MOV DX, 0FFF2h MOV AL,00h OUT DX,AL MOV CX 2h D0 : LOOP D0 OUT DX, AL D1: MOV CX,2h LOOP D1 OUT DX, AL MOV CX,2h D2: LOOP D2 MOV AL, 40h OUT DX, AL MOV CX, 2h D3: LOOP D3 MOV AL, 11001110B OUT DX, AL MOV CX, 2h D4: LOOP D4 MOV CX, 6500h MOV AL,03h OUT 01h Chng trnh truyen d lieu. ;chuong trinh truyen du lieu org 70000h mov dx 02h ;dia chi thanh ghi dieu khien mov al,00h out dx,al ;xoa thanh ghi dieu khien call delay out call out call mov out call mov out call dx,al delay dx,al delay al,40h dx,al delay al,0cdh dx,al delay ; goi 40h vao al, gia tri cua bit RI ;de xoa thanh ghi noi ; ghi loi dieu khien che do vao ;thanh ghi dieu khien che do

mov cx,6500h ; dia chi dieu khien mov al,03h ; ghi tu che do DTR(D1=1),TxEN(D0=1) out dx,al call delay x1: in al,dx and al,81h ; kiem tra trang thai cmp al,81h jnz x1 mov dx,cx mov al,m mov bl,al ; nap byte dia chi tap vao bl mov dx,00h out dx,al ;gui byte dia chi thap call delay mov truyen mov out call inc mov out call mov x2: in and cmp jnz mov in mov mov mov out call mov mov out call mov x3: in and cmp jnz al,21h dx,01h dx,21h delay cx al,03h dx,al delay dx,01h al,dx al,81h al,81h x2 dx,00h al,dx dx,cx al,m bh,al dx,al delay al,21h dx,01h dx,al delay dx,01h al,dx al,81h al,81h x3 ; ghi tu lenh DTS(D5),TxEN(D0) de

;tang dia chi de lay byte ke tiep

;nap dia chi cao vao bh ;truyen byte dia chi cao

;ra lenh truyen

x5:

x4:

mov mov mov out mov mov out call mov in and cmp jnz mov mov mov out inc dec mov mov out jnz end

dx,cx al,m dx ooh dx,al ah,al al,21h dx,al delay dx,01h al,dx al,81h al,81h x4 dx,bx al,m dx,00h dx,al bx ah al,21h dx,o1h dx,al x5

;gui so byte can truyen

;tuyen du lieu can truyen

Chng trnh nhan d lieu. ;chuong trinh con delay delay: push cx mov cx,03h y0: loop y0 pop cx ret ;chuong trinh nhan du lieu org 70000h mov dx 01h ;dia chi thanh ghi dieu khien mov al,00h out dx,al ;xoa thanh ghi dieu khien call delay out call out call dx,al delay dx,al delay

mov al,40h ; goi 40h vao al, gia tri cua bit RI de xoa thanh ghi noi out dx,al call delay mov al,0cdh; ghi loi dieu khien che do vao thanh ghi dieu khien out dx,al call delay mov al,26h ; ghi tu che do RTR(D1=1),RxEN(D0=1) out dx,al call delay y1: in al,dx and al,82h; kiem tra trang thai cmp al,82h jnz y1 mov dx,00h in al,dx mov bl,al; nap byte dia chi tap vao bl mov dx,01h y2: in al,dx and al,82h cmp al,82h jnz y2 mov dx,00h in al,dx mov bh,al mov dx,01h y3: in and cmp jnz mov in mov mov in and cmp jnz al,dx al,82h al,82h y3 dx ooh dx,al ah,al dx,01h al,dx al,82h al,82h y4

;nhan so byte truyen ;nhan du lieu

y4:

mov dx,00h in al,dx mov dx,bx

end

mov m,al inc bx jnz x4

II. CHNG TRNH TRUYEN D LIEU TREN MAY TNH ; TERMINAL.ASM ; STACK stack segment stack db 300 dup('?') stack ends ; DATA data segment prompt db 'File name:$' filename db 30 dup(0) buffer db 512 dup(0) buffrr db 512 dup(0) handle dw ? openerr db 0dh,0ah,'OPEN ERROR - COPDE' errcode db 30h,'$' ;messages MENU_MS db ' **TERMINAL PROGRAM**',0dh,0ah db '<F1> to redisplay this MENU',0dh,0ah db '<F2> to set communications protocol',0dh,0ah db '<F3> to display protocol installed',0dh,0ah db '<F4> to open file.hex and trasnmit',0dh,0ah db '<F9> to exit the TERMINAL program',0dh,0ah db 'All character typed are transmitter',0dh,0ah db 'All character receiver are display',0dh,0ah db 0dh,0ah,'$' PROT_MS db db Baud% db db Par% db db Stop% db Word% db Baud$$ Par$$ db '* Installed communications protocol',0dh,0ah 'Baud rate:' '2400',0dh,0ah 'Parity:' 'Even',0dh,0ah 'Stop bit:' db '1',0dh,0ah 'Word length:' '8',0dh,0ah,0ah,'$' '110 150 300 600 1200 2400 4800 9600' db 'odd noneven' db 0dh,0ah,'**New communication

baud_menu parameter' db db

'rs input **',0dh,0ah 'baud rate:',0dh,0ah

db db db db db db db db db par_menu db db db db db Stop_menu db db db Word_menu db db db err1_ms db card_base dw inT_num db setup_bytedb ;Origin O_int_seg dw O_int_off dw

'1 = 110',0dh,0ah '2 = 150',0dh,0ah '3 = 300',0dh,0ah '4 = 600',0dh,0ah '5 = 1200',0dh,0ah '6 = 2400',0dh,0ah '7 = 4800',0dh,0ah '8 = 9600',0dh,0ah 'Select: $' 0dh,0ah,'Pariry:',0dh,0ah '1 = odd',0dh,0ah '2 = none',0dh,0ah '3 = even',0dh,0ah 'Select: $' db 0dh,0ah,'Stop bit:',0dh,0ah '1 = 1 stop bit',0dh,0ah '2 = 2 stop bit',0dh,0ah 'Select: $' db 0dh,0ah,'Word length:',0dh,0ah '1 = 7 bit',0dh,0ah '2 = 8 bit',0dh,0ah 'Select: $' 0dh,0ah,'*** cannot transmit ***',0dh,0ah 02f8h ;address of RS 232 card 0ch 0bbh ; 0000h 0000h ;segment ;offset

;circular buffer and pointer: circ_buf db 20 dup(00h) dw 0 data_in dw 0 ;input pointer data_out dw 0 ;output pointer data ends ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx code segment assume CS:code start: CODE

mov ax,data mov ds,ax assume ds:data mov es,ax assume es:data ;display MENU at cursor mov dx,offset menu_ms ;messages call show_message ;hardware type push ds mov dx,0f000h mov ds,dx mov al,ds:[0fffeh] ;code to AL ;get addr of the RS232 card from BIOS data area mov dx,0 mov ds,dx mov cx,ds:0400h pop ds mov card_base,cx ;determine interrupt number: ; 0bh IRQ4 all other cmp al,0fdh jne set_address mov int_num,0bh ;save/install interrupt set_address: mov ah,53 mov al,int_num int 21h mov o_int_seg,es mov o_int_off,bx mov ah,37 mov al,int_num mov dx,offset cs:rs232_int push ds push cs pop ds int 21h pop ds ;set protocol mov al,10111011b mov ah,0 mov dx,0 int 14h call comm_on call flush ;

monitor: mov ah,1 int 16h jz ser_imp jmp char_typed ser_imp: sti ;interrupt on mov cx,50 delay: nop nop loop delay ;test for new data received cli mov bx,data_out cmp bx,data_in jne new_data sti jmp monitor ;process char char_typed: mov ah,0 int 16h ;test for <F1>,<F2>,<F3>,<F4> and <F9> keys cmp ax,3b00h jne test_f2 jmp show_menu ;F1 key pressed test_f2: cmp ax,3c00h jne test_f3 jmp set_protocol ;F2 key pressed test_f3: cmp ax,3d00h jne test_f4 jmp show_protocol ;F3 key pressed test_f4: cmp ax,3e00h jne test_f9 jmp tran_file ;F4 key pressed test_f9: cmp ax,4300h je dos_exit jmp show_and_send ;F2 key pressed dos_exit: call comm_off mov ah,37 mov al,int_num

mov mov mov int ;exit

dx,o_int_off ax,o_int_seg ds,ax 21h

mov ah,76 mov al,0 int 21h ;redisplay menu show_menu: mov dx,offset menu_ms call show_message jmp monitor ;new data receiver new_data: lea si,circ_buf mov bx,data_out add si,bx mov al,byte ptr[si] ;update output pointer inc bx cmp bx,20 jne ok_out_ptr mov bx,0 ok_out_ptr: mov data_out,bx sti call tty jmp monitor set_protocol: call comm_off baud_rates: mov dx,offset baud_menu call show_message call get_key call tty cmp al,'1' jc baud_rates cmp al,'9' jnc baud_rates sub al,30h ;ascii to binary sub al,1 ;to range 0 to 7 push ax mov cl,4 mul cl mov si,offset baud$$

mov ah,0 add si,ax mov di,offset baud% mov cx,4 cld push ds pop es rep movsb pop ax mov cl,5 shl al,cl mov setup_byte,al parity: mov dx,offset par_menu call show_message call get_key call tty ;valid input range is "1" to "3" cmp al,'1' jc parity cmp al,'4' jnc parity ;input is valid range sub al,30h push ax ;select 4 byte parity message and place in display area sub al,1 mov al,4 mul cl mov si,offset par$$ mov ah,0 add si,ax mov di,offset par% mov cx,4 cld push ds pop es rep movsb pop ax mov cl,3 shl al,cl or setup_byte,al stopbits: mov dx,offset stop_menu call show_message call get_key

call tty ;valid input range is "1" or "2" cmp al,'1' jc stopbits cmp al,'3' jnc stopbits mov si,offset stop% mov byte ptr[si],al sub al,31h mov cl,2 shl al,cl or setup_byte,al word_length: mov dx,offset word_menu call show_message call get_key call tty ;valid input range is '1' or '2' cmp al,'1' jc word_length cmp al,'3' jnc word_length push ax ;Input in valid range. Add 6 and move input to display area add al,6 mov si,offset word% mov byte ptr[si],al pop ax sub al,30h inc al or setup_byte,al ;install new parameter mov al,setup_byte mov dx,0 mov ah,0 int 14h ;line feed and cariage reture before exit mov al,0dh call tty mov al,0ah call tty ;communication call comm_on jmp monitor ; ;display protocol

show_protocol: mov dx,offset prot_ms call show_message jmp monitor ;************************************************************** ;output and display show_and_send: mov cx,2000 push ax thre_wait: mov dx,card_base add dx,5 in al,dx jmp short $+2 test al,20h jnz ok_2_send loop thre_wait ;wait period timed out,display error message and exit pop ax mov dx,offset err1_ms call show_message jmp monitor ok_2_send: pop ax ;place in transmitter hoding register to send mov dx,card_base out dx,al jmp short $+2 ;display character call tty jmp monitor ;************************************************************** ;CAC CHUONG TRINH CON comm_on proc near cli ;interrupt off ;reset buffer pointer to start of buffer mov data_in,0 mov data_out,0 ;set dx to base address of RS 232 card from BIOS mov dx,card_base mov dl,0fch mov al,00001011b out dx,al jmp short $+2 ;set bit 7

mov dl,0fbh in al,dx jmp short $+2 and al,7fh out dx,al jmp short $+2 in al,21h jmp short $+2 and al,0e7h out 21h,al jmp short $+2 ;I/o delay ;reenable interrupt sti ret comm_on endp comm_off in or out jmp ret comm_off proc near al,21h al,18h 21h,al short $+2 endp

show_message proc near mov ah,9 int 21h ret show_message endp tty proc near tty_one: push ax mov ah,14 mov bx,0 int 10h pop ax cmp al,0dh jne not_cr mov al,0ah jmp tty_one not_cr: ret tty endp flush proc near flush_1:

mov ah,1 int 16h jz no_old_chars mov ah,0 int 16h jmp flush_1 no_old_chars: ret flush endp get_key mov int ret get_key proc near ah,0 16h endp

rs232_int: sti ;interrupt on push ax push bx push dx push di push ds mov dx,data mov ds,dx assume ds:data data_check: mov dx,card_base mov dl,0fdh in al,dx jmp short $+2 test al,1eh jnz data_error jmp data_check data_error: mov al,'1' jmp store_byte data_ready: mov dl,0f8h in al,dx jmp short $+2 and al,7fh store_byte: lea di,circ_buf mov bx,data_in add di,bx

mov inc cmp jne mov ok_in_ptr: mov mov out jmp pop pop pop pop pop iret

byte ptr[di],al bx bx,20 ok_in_ptr bx,0 data_in,bx al,20h 20h,al short $+2 ds di dx bx ax

; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx tran_file: call get_name ;doc ten file lea dx,filename ;dx chua offset cua ten file mov al,0 call open jc open_error mov handle,ax read_loop: lea dx,buffer ;tro toi vung dem mov bx,handle ;lay the file call read ;doc file,AX = so byte doc duoc or ax,ax ;ket thuc file je pexit ;dung, ket thuc file mov cx,ax ;CX chua so byte doc duoc call display ;hien thi file jmp read_loop ;lap lai open_error: lea dx,openerr;lay thong bao loi add errcode,al mov ah,9 int 21h ;hien thi thong bao loi ;************************************************************** ;output and display ;show_and_send:

pexit: mov cx,2000 pthre_wait: mov dx,card_base add dx,5 in al,dx jmp short $+2 test al,20h jnz pok_2_send loop pthre_wait ;wait period timed out,display error message and exit mov dx,offset err1_ms call show_message jmp ppexit pok_2_send: call con_hex ;goi chtr con chuyen sang so hex lea dx,buffrr mov cx,256 call display mov cx,256 ;place in transmitter hoding register to send mov dx,card_base lea di,buffrr ;tro toi vung dem ppl: mov al,[di] ;lay byte data out dx,al jmp short $+2 call edelay inc di loop ppl ;display character ; call tty ppexit:mov bx,handle ;lay the file call close ;dong the file jmp monitor ;************************************************************** get_name proc near push ax push dx push di mov ah,9 ;ham hien thi chuoi lea dx,prompt int 21h cld lea di,filename ;DI tro toi ten file mov ah,1 ;ham doc ki tu tu ban phim

read_name: int 21h cmp al,0dh ;co phai CR je done ;dung ket thuc stosb ;luu no vao trong chuoi jmp read_name ;tiep tuc doc vao done: mov al,0 stosb ;luu byte 0 pop di pop dx pop ax ret get_name endp open proc near mov ah,3dh mov al,0 int 21h ret open endp read proc near push cx mov ah,3fh mov cx,512 int 21h pop cx ret read endp display push mov mov int pop ret display ;ham mo file ;chi doc

;ham mo file ;chi doc

proc near bx ah,40h ;ham ghi file bx,1 ;the file cho man hinh 21h ;dong file bx endp ;ham dong file ;dong file

close proc near mov ah,3eh int 21h ret close endp edelay proc near

push push mov edel2: edel1: jnz dec jnz pop pop ret edelay

ax bx ax,06h mov bx,0ffffh dec bx edel1 ax edel2 bx ax endp

;+++++++++++++++++++++++++++++++++++++ +++++++ con_hex proc near push ax push bx push cx push dx push di push si mov ax,0b800h mov bx,0 cld lea si,buffrr mov cx,260 mov al,0 xxx8:mov [si],al inc si loop xxx8 lea si,buffrr lea di,buffer xxx3:mov al,[di] ;lay byte data cmp al,3ah ;so sanh voi ma dau ':' jz xxx2 ;nhay neu la dau ':' inc di jmp xxx3 ;quay lai de tim dau ':' xxx2:call ktra_end ;goi chuong trinh kiem tra ket thuc cmp ax,0 ;dung la het data thi lam cho AX=0000 jnz xxx4 xxx6:pop si pop di pop dx pop cx pop bx

pop ax ret xxx4:mov al,[di] ;lay byte data mov [si],al ;dung la byte 3Ah can luu vao call goi_ht inc di inc si ;xu li so byte can goi mov al,[di] ;lay so can goi MSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF mov cl,4 rol al,cl mov ah,al inc di mov al,[di] ;lay so can go LSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF or al,ah ;or 2 data lai thanh 1 byte mov [si],al ;cat so HEX ADDR_H add al,1 mov dl,al ;luu so byte can xu li con lai call goi_ht ;xu li phan dia chi can goi inc di inc si mov al,[di] ;lay byte ADDR_L-MSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF mov cl,4 rol al,cl mov ah,al inc di mov al,[di] ;lay byte ADDR_L-LSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF or al,ah ;or 2 data lai thanh 1 byte mov [si],al ;cat so HEX ADDR_H call goi_ht inc di inc si mov al,[di] ;lay byte ADDR_H-MSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF mov cl,4 rol al,cl

mov ah,al inc di mov al,[di] ;lay byte ADDR_H-LSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF or al,ah ;or 2 data lai thanh 1 byte mov [si],al ;cat so byte can goi dang HEX call goi_ht ;xu li cac byte con lai inc di ;bo byte 00 inc di ; xxx1:inc di inc si mov al,[di] ;lay so byte thu nhat sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF mov cl,4 rol al,cl mov ah,al inc di mov al,[di] ;lay so byte thu 2 sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF or al,ah ;or 2 data lai thanh 1 byte mov [si],al ;cat so byte can goi dang HEX call goi_ht dec dl cmp dl,0 jnz xxx1 ;quay lai vi chua inc di ;bo byte cuoi thu nhat inc di ;bo byte thu 2 inc di ;bo ma xuong hang jmp xxx3 ;het 1 hang data con_hex endp ;chuong trinh kiem tra ket thuc ktra_end proc near push di inc di mov al,[di] ;lay byte data cmp al,30h ;kiem tra byte 0 thu nhat jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte 0 thu 2 mov al,[di] ;lay byte data cmp al,30h jnz kt_exit ;nhay den de thoat vi khong phai

inc mov cmp jnz inc mov cmp jnz inc mov cmp jnz inc mov cmp jnz inc mov cmp jnz inc mov cmp jnz inc mov cmp jnz inc mov cmp jnz mov pop ret kt_exit: mov pop ret ktra_end

di al,[di] al,30h kt_exit di al,[di] al,30h kt_exit di al,[di] al,30h kt_exit di al,[di] al,30h kt_exit di al,[di] al,30h kt_exit di al,[di] al,31h kt_exit di al,[di] al,46h kt_exit di al,[di] al,46h kt_exit ax,0 di

;neu dung thi kiem tra byte 0 thu 3 ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte 0 thu 4 ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte 0 thu 5 ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte 0 thu 6 ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte 0 thu 7 ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte 1 thu 8 ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte F thu 9 ;lay byte data ;nhay den de thoat vi khong phai ;neu dung thi kiem tra byte F thu 10 ;lay byte data ;nhay den de thoat vi khong phai

ax,1111h ;nap data sao cho khac khong la 1 di endp

goi_ht proc near push di mov di,bx mov ah,1 stosw

mov bx,di pop di ret goi_ht endp so_lon proc near cmp al,9 jg yyy ret yyy: sub al,7 ret so_lon endp code ends end start

Phan 3

TONG KET VA ANH GIA

HNG PHAT TRIEN E TAI oOo


Sau thi gian thc hien e tai sinh vien thc hien e taia ket noi phan cng va viet chng trnh truyen d lieu gia 2 kit VXL, gia may tnh vi kit VXL. Chng trnh phan ln a chay nhng cha c hoan thien lam. Sinh vien thc hien thay rang e tai can phat trien them cac bc sau: + Chng trnh truyen d lieu tren may tnh mi truyen hoan chnh c nhng file .hex, e tai can phat trien them cac chng trnh truyen cac file .com, .doc, + Viet them chng trnh giao dien e chng trnh hoan thien hn. + Thiet ke phan cng va viet chng trnh truyen d lieu theo kieu song song dung 8255. + Viet chng trnh e o lng va ieu khien cac thiet b ngoai vi.

KET LUAN VA ANH GIA


oOo Sau 8 tuan thc hien e tai vi s hng dan nhiet tnh cua thay Nguyen nh Phu sinh vien thc hien a hoan thanh ung thi gian quy nh e tai GIAO TIEP MAY TNH VI KIT VI X LY 8086 . ay la e tai mang tnh tong hp, ket hp gia ky thuat ien t va ky thuat lap trnh. Vi s quyet tam, no lc khong ngng, tap luan van nay a giup em bc au lam quen vi e tai khoa hoc va em a thc s tch luy kha nhieu kien thc ve vi x l, thiet ke mach va ky thuat lap trnh. Do kien thc va thi gian con co han nen tap luan van con co sai sot, nhng trong qua trnh thc hien tap luan van em a hoc hoi c nhieu ieu hay va nhng kinh nhiem bo ch ma trong qua trnh hoc tap cha hoc hoi va tiep thu het c. Qua o em a bo sung nhieu kien thc nhat la kien thc ve mon ky thuat vi x ly . Em xin chan thanh cam n s giup tan tnh cua cac thay co a tao ieu kien thuan li cho em hoan thanh tot nhiem vu c giao ung thi gian quy nh. Em rat mong nhng y kien ong gop cua quy thay co cung cac ban sinh vien e tap e tai c hoan chnh hn.

TAI LIEU THAM KHAO


1. O LNG VA IEU KHIEN BANG MAY VI TNH 1. 2. 3. 4. 5. 6. 7.

Ngo Dien Tap _ NXB KHKT Ha Noi _ 1996


IEU KHIEN VA GHEP NOI CAC THIET B NGOAI VI KY THUAT GHEP NOI MAY VI TNH GIAO TRNH HP NG TRUYEN D LIEU

Tran Ba Thai _ NXB KHKT Ha Noi _ 1984 Nguyen Manh Giang _ NXB GD Ha Noi _1997 ai Hoc M Ban Cong TPHCM _ 1995 Tong Van On _ H KY THUAT TPHCM _ 1999
VI X LY TRONG O LNG VA IEU KHIEN KY THUAT VI X LY

Ngo Dien Tap _ NXB KHKT Ha Noi _ 1996

Van The Minh _ NXB GD _ 1997


ASSEMBLY LANGUAGE TOOLS and TECHNIQUES FOR THE IPM MICROCOMPUTERS MICROCOMPUTER INTERFACING THE 8051 MICROCONTROLLER

Julio Sanches _ Prentice Hall _ 1990 Bruce A.Artwick _ Prentice Hall _ 1980 I.Scott Mackenzic

8. 9.

You might also like