You are on page 1of 104

Luan van tot nghiep

GVHD : Nguyen nh Phu

BO GIAO DUC VA AO TAO AI HOC QUOC GIA THANH PHO HO CH MINH TRNG AI HOC S P@AM KY THUAT KHOA IEN- IEN T BO MON IEN T

LUAN VAN TOT NGHIEP


e tai:

Sinh Vien Thc Hien

: Phan

Tien Hieu
Lp : 95K Giao Vien Hng Dan :

NGUYEN NH PHU

SVTH : Phan Tien Hieu Trang : 1

Luan van tot nghiep

GVHD : Nguyen nh Phu

MUC LUC
Li noi au Trang

Phan A : LY THUYET Chng I : Khao Sat Vi ieu Khien 8951


I. Gii Thieu Cau Truc Phan Cng Ho MSC_51 2 II. Khao Sat S o Chan 8951 1. S o chan 8951 4 2. Chc nang tng chan 4 III. Cau Truc Ben Trong Cua Vi ieu Khien 8951 1. To chc bo nh 6 2. Cac thanh ghi chc nang ac biet 7 3. Bo nh ngoai 13 IV. Hoat ong Timer Cua Vi ieu Khien 8951 1. Gii thieu 17 2. Cac thanh ghi ieu khien timer 19 3. Cac che o timer va c tran 24 V. Hoat ong Port Noi Tiep Cua Vi ieu Khien 8951 1. Gii thieu 26 2. Cac thanh ghi ieu khien va cac che o cua port noi tiep 26 3. To chc ngat trong 8951 31 VI. Tom Tat Tap Lenh Cua 8951 1. Cac che o nh a ch 32

Chng II: Giao Tiep May Tnh Vi Cac Thiet B Ngoai Vi


I. S Lc Ve Cau Truc May Tnh 1. S o khoi chc nang 38 2. n v x ly trung tam (CPU) 38 3. Bo nh ( Memory) 38 4. Thiet b nhap/xuat (I/O) 38 5. ong ho he thong 39 II. Cac Phng Thc Giao Tiep Qua May Tnh Vi Cac Thiet B Ngoai Vi 1. Giao tiep qua Slot card 39 2. Giao tiep qua cong may in 39 3. Giao tiep qua cong noi tiep RS_232 39 4. Gii thieu IC giao tiep noi tiep Max 232 42 III. Gii Thieu Ve KIT Vi ieu Khien 8951 1. Gii thieu 2. Ban phm 3. Cau truc phan cng cua KIT 43 44 46

Phan B: THI CONG SVTH : Phan Tien Hieu Trang : 2

Luan van tot nghiep

GVHD : Nguyen nh Phu

Chng I: Giao Tiep Gia Kit Vi ieu Khien 8951 Vi May Vi Tnh
I. Phan Cng 1. Thiet ke cart giao tiep gia 8951 va may vi tnh49 II. Phan Mem 1. Gii thieu phan mem 50 2. Gii thieu ngon ng Assembly 50 3. Lu o va chng trnh giao tiep 51 III. anh gia ket qua thi cong 66

KET LUAN HNG PHAT TRIEN E TAI TAI LIEU THAM KHAO Phan C: PHU LUC

SVTH : Phan Tien Hieu Trang : 3

Luan van tot nghiep

GVHD : Nguyen nh Phu

LI CAM TA
Sinh vien thc hien xin bay to long biet n en thay Nguyen nh Phu tren cng v la ngi hng dan chnh cua e tai a tan tnh giup trong suot qua trnh thc hien luan van. Sinh vien thc hien cung xin bay to long biet n en cac thay co trong trng ai Hoc S Pham Ky Thuat a tan tnh day do va truyen thu nhng kinh nghiem quy bau trong suot thi gian qua. Cuoi cung sinh vien thc hien xin chan thanh cam n s ong gop y kien cua tat ca cac ban sinh vien trong suot qua trnh thc hien luan van. Sinh vien thc hien. PHAN TIEN HIEU

SVTH : Phan Tien Hieu Trang : 4

Luan van tot nghiep


AI HOC QUOC GIA TP . HCM TRNG AI HOC S PHAM KY THUAT

GVHD : Nguyen nh Phu

CONG HOA XA HOI CHU NGHA VIET NAM OC LAP _ T DO _ HANH PHUC

. . . . . . . . . *o0o*. . . . . . . . . KHOA IEN - IEN T BO MON IEN T NHIEM VU LUAN VAN TOT NGHIEP Ho va ten sinh vien : PHAN TIEN HIEU Lp : 95 K Ma so sinh vien : 95101058 Nganh : ien - ien T Ten e tai: GIAO TIEP GIA KIT VI X LY 8951 VA MAY VI TNH 1. Giao tiep gia kit vi x ly 8951 va may vi tnh .................................................................................................... .................................................................................................... 2. ..................................................................Cac so lieu ban au: ......................................................................................... ......................................................................................... ......................................................................................... 3. ................................................................................Noi dung: ......................................................................................... ......................................................................................... ......................................................................................... 4. .....................................................................Cac phan lien quan: ......................................................................................... ......................................................................................... 5. ........................Giao vien hng dan: NGUYEN NH PHU 6. .....................................................Ngay giao nhiem vu: 13/12/99 7. ...................................Ngay hoan thanh nhiem vu:28/02/2000 Thong qua bo mon Ngay thang nam 2000 Ngay thang nam 2000 Giao vien hng dan Chu nhiem bo mon

SVTH : Phan Tien Hieu Trang : 5

Luan van tot nghiep

GVHD : Nguyen nh Phu

BAN NHAN XET LUAN VAN TOT NGHIEP CUA GIAO VIEN HNG DAN Ho va ten sinh vien : PHAN TIEN HIEU Lp : 95 K Ma so sinh vien : 95101058 Nganh : ien - ien t Ten e tai: GIAO TIEP GIA KIT VI X LY 8951 VA MAY VI TNH Nhan xet cua giao vien hng dan: .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... Ngay nam 2000 Giao vien hng dan thang

SVTH : Phan Tien Hieu Trang : 6

Luan van tot nghiep

GVHD : Nguyen nh Phu

BAN NHAN XET LUAN VAN TOT NGHIEP CUA GIAO VIEN PHAN BIEN Ho va ten sinh vien : PHAN TIEN HIEU Lp : 95 K Ma so sinh vien : 95101058 Nganh : ien - ien t Ten e tai: GIAO TIEP GIA KIT VI X LY 8951 VA MAY VI TNH Nhan xet cua giao vien phan bien: .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... ....................................................................................................

2000

Ngay

thang

nam

Giao vien phan bien

SVTH : Phan Tien Hieu Trang : 7

Luan van tot nghiep

GVHD : Nguyen nh Phu

BAN NHAN XET LUAN VAN TOT NGHIEP CUA HOI ONG GIAM KHAO Ho va ten sinh vien : PHAN TIEN HIEU Lp : 95 K Ma so sinh vien : 95101058 Nganh : ien - ien t Ten e tai: GIAO TIEP GIA KIT VI X LY 8951 VA MAY VI TNH Nhan xet cua hoi ong giam khao: .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... ....................................................................................................

Ngay 2000

thang

nam

Hoi ong giam khao

SVTH : Phan Tien Hieu Trang : 8

Luan van tot nghiep

GVHD : Nguyen nh Phu

PHAN A:

SVTH : Phan Tien Hieu Trang : 9

Luan van tot nghiep

GVHD : Nguyen nh Phu

LI NOI AU
Hien nay at nc ta ang chuyen mnh theo s phat trien chung cua the gii va khu vc Chau A bang nen san xuat a dang va ay tiem nang. Nen san xuat nay khong ch oi hoi mot so lng lao ong khong lo ma con yeu cau ve trnh o, chat lng tay nghe, ky thuat lao ong va thiet b san xuat. Tren a phat trien o, van e t ong hoa trong qua trnh san xuat, nghien cu tr thanh mot nhu cau can thiet. Thoat au van e t ong hoa c thc hien rieng le t c kh hoa en cac mach ien t. Ngay nay, vi s xuat hien cua cac Chip vi x ly va may tnh cung vi viec s dung rong rai cua no a ay van e t ong hoa len mot bc cao hn va thi lng nhanh hn Trong o, viec ng dung May Vi Tnh vao ky thuat o lng va ieu khien a em lai nhng ket qua ay tnh u viec. Cac thiet b, he thong o lng va ieu k`ien ghep noi vi May Vi Tnh co o chnh xac cao, thi gian thu thap so lieu ngan. Ngoai ra, may tnh con co phan giao dien len man hnh rat tien li cho ngi s dung. Viec dung may tnh e ieu khien va thong tin lien lac vi nhau th van e truyen d lieu rat quan trong. Hien nay chung ta co the dung may tnh e lien lac vi nhau thong qua he thong mang nh: mang cuc bo (LAN) hay mang toan cau Internet. Do o, trong pham vi hieu biet cua mnh, em a tm hieu va thc hien e tai: Giao Tiep Gia Vi ieu Khien 8951 va May Vi Tnh thong qua cong noi tiep va viet chng trnh phan mem e truyen so lieu gia hai he thong. Mac du em a co gang rat nhieu e hoan thanh quyen luan van nay, song do gii han ve thi gian cung nh kien thc nen noi dung con nhieu thieu sot. Rat mong s ong gop y kien cua quy thay co va cac ban sinh vien e luan van c hoan thien hn. Xin chan thanh cam n. Sinh vien thc hien PHAN TIEN HIEU

SVTH : Phan Tien Hieu Trang : 10

Luan van tot nghiep CHNG I:

GVHD : Nguyen nh Phu

KHAO SAT VI IEU KHIEN 8951


I. GII THIEU CAU TRUC PHAN CNG HO MSC-51 (8951): -ac iem va chc nang hoat ong cua cac IC ho MSC-51 hoan toan tng t nh nhau. ay gii thieu IC8951 la mot ho IC vi ieu khien do hang Intel cua My san xuat. Chung co cac ac iem chung nh sau: Cac ac iem cua 8951 c tom tat nh sau :

8 KB EPROM ben trong. 128 Byte RAM noi. 4 Port xuat /nhap I/O 8 bit. Giao tiep noi tiep. 64 KB vung nh ma ngoai 64 KB vung nh d lieu ngoai. X l Boolean (hoat ong tren bit n). 210 v tr nh co the nh v bit. 4 s cho hoat ong nhan hoac chia.

SVTH : Phan Tien Hieu Trang : 11

Luan van tot nghiep


S o khoi cua 8951:

GVHD : Nguyen nh Phu

SERIAL INT1\ PORT TIMER INT0\ 0 TIMER 1 TIME 2

128 byte RAM 8051\805 2


INTERRUPT CONTROL

OTHER REGISTER

128 byte RAM

ROM 4K: 8031 4K: 8051 EPROM 4K: 8951

TIMER 2 TIMER1 TIMER1

CPU

BUS CONTROL OSCILATOR

I/O PORT

SERIAL PORT

EA\ RST

ALE\ PSEN\

P0 P1 P2 P3 Address\Data

TXD

RXD

SVTH : Phan Tien Hieu Trang : 12

Luan van tot nghiep

GVHD : Nguyen nh Phu


P0.

II. KHAO SAT S O CHAN 8951, CHC NANG TNG 7 P0. CHAN: 6 1.S o chan 8951: 30pF
19 12 MHz Vcc XTAL.1 18 29 30 31 9
RD WR T1 T0 INT1 INT0 TXD RXD 17 16 15 14 13 12 11 10

40

30pF

P0. 5 P0. 4 P0. 3 P0. 2 P0. 1 P0. 0 P1. 7 P1. 6 P1. 5 P1. 4 P1. 3 P1. 2 P1. 1 P1. 0 P2. 7 P2. 6 P2. 5 P2. 4 P2. 3 P2. 2 P2. 1 P2. 0

XTAL.2 PSEN\ ALE EA\ RST


P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0

32 33 34 35 36 37 38 39 8 7 6 5 4 3 2 1 28 27 26 25 24 23 22 21

AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0

8951

A15 A14 A13 A12 A11 A10 A9 A8

Vss 20

S o chan IC 8951 2. Chc nang cac chan cua 8951: - 8951 co tat ca 40 chan co chc nang nh cac ng xuat nhap. Trong o co 24 chan co tac dung kep (co ngha 1 chan co 2 chc nang), moi ng co the hoat ong nh ng xuat nhap hoac nh ng ieu khien hoac la thanh phan cua cac bus d lieu va bus a ch. a.Cac Port: Port 0 : - Port 0 la port co 2 chc nang cac chan 32 39 cua 8951. Trong cac thiet ke c nho khong dung bo nh m rong no co chc nang nh cac ng IO. oi vi cac thiet ke c ln co bo nh m rong, no c ket hp gia bus a ch va bus d lieu. Port 1:

SVTH : Phan Tien Hieu Trang : 13

Luan van tot nghiep

GVHD : Nguyen nh Phu

- Port 1 la port IO tren cac chan 1-8. Cac chan c ky hieu P1.0, P1.1, P1.2, co the dung cho giao tiep vi cac thiet b ngoai neu can. Port 1 khong co chc nang khac, v vay chung ch c dung cho giao tiep vi cac thiet b ben ngoai. Port 2: - Port 2 la 1 port co tac dung kep tren cac chan 21 28 c dung nh cac ng xuat nhap hoac la byte cao cua bus a ch oi vi cac thiet b dung bo nh m rong. Port 3: - Port 3 la port co tac dung kep tren cac chan 10 - 17. Cac chan cua port nay co nhieu chc nang, cac cong dung chuyen oi co lien he vi cac ac tnh ac biet cua 8951 nh bang sau: Bit Ten Chc nang chuyen oi P3.0 RXT Ngo vao d lieu noi tiep. P3.1 TXD Ngo xuat d lieu noi tiep. P3.2 INT0\ Ngo vao ngat cng th 0. P3.3 INT1\ Ngo vao ngat cng th 1. P3.4 T0 Ngo vao cua P3.5 T1 TIMER/COUNTER th 0. P3.6 WR\ Ngo vao cua P3.7 RD\ TIMER/COUNTER th 1. Tn hieu ghi d lieu len bo nh ngoai. Tn hieu oc bo nh d lieu ngoai. . Cac ngo tn hieu ieu khien: Ngo tn hieu PSEN (Program store enable): - PSEN la tn hieu ngo ra chan 29 co tac dung cho phep oc bo nh chng trnh m rong thng c noi en chan 0E\ (output enable) cua Eprom cho phep oc cac byte ma lenh. - PSEN mc thap trong thi gian Microcontroller 8951 lay lenh. Cac ma lenh cua chng trnh c oc t Eprom qua bus d lieu va c chot vao thanh ghi lenh ben trong 8951 e giai ma lenh. Khi 8951 thi hanh chng trnh trong ROM noi PSEN se mc logic 1. Ngo tn hieu ieu khien ALE (Address Latch Enable ) : - Khi 8951 truy xuat bo nh ben ngoai, port 0 co chc nang la bus a ch va bus d lieu do o phai tach cac

SVTH : Phan Tien Hieu Trang : 14

Luan van tot nghiep

GVHD : Nguyen nh Phu

ng d lieu va a ch. Tn hieu ra ALE chan th 30 dung lam tn hieu ieu khien e giai a hp cac ng a ch va d lieu khi ket noi chung vi IC chot. - Tn hieu ra chan ALE la mot xung trong khoang thi gian port 0 ong vai tro la a ch thap nen chot a ch hoan toan t ong. Cac xung tn hieu ALE co toc o bang 1/6 lan tan so dao ong tren chip va co the c dung lam tn hieu clock cho cac phan khac cua he thong. Chan ALE c dung lam ngo vao xung lap trnh cho Eprom trong 8951. Ngo tn hieu EA\(External Access): - Tn hieu vao EA\ chan 31 thng c mac len mc 1 hoac mc 0. Neu mc 1, 8951 thi hanh chng trnh t ROM noi trong khoang a ch thap 8 Kbyte. Neu mc 0, 8951 se thi hanh chng trnh t bo nh m rong. Chan EA\ c lay lam chan cap nguon 21V khi lap trnh cho Eprom trong 8951. Ngo tn hieu RST (Reset) : -Ngo vao RST chan 9 la ngo vao Reset cua 8951. Khi ngo vao tn hieu nay a len cao t nhat la 2 chu ky may, cac thanh ghi bef trong c nap nhng gia tr thch hp e khi ong he thong. Khi cap ien mach t ong Reset. Cac ngo vao bo dao ong X1, X2: - Bo dao ong c tch hp ben trong 8951, khi s dung 8951 ngi thiet ke ch can ket noi them thach anh va cac tu nh hnh ve trong s o. Tan so thach anh thng s dung cho 8951 la 12Mhz. Chan 40 (Vcc) c noi len nguon 5V. III. CAU TRUC BEN TRONG VI IEU KHIEN 1. To chc bo nh:

FFFF FF 00 On - Chip Memory External Memory

CODE Memory

FFFF

DATA Memory

Enable via 0000 PSEN

Enable via 0000 RD & WR

SVTH : Phan Tien Hieu Trang : 15

Luan van tot nghiep

GVHD : Nguyen nh Phu

SVTH : Phan Tien Hieu Trang : 16

Luan van tot nghiep

GVHD : Nguyen nh Phu

Bang tom tat cac vung nh 8951. Ban o bo nh Data tren Chip nh sau : a ch a ch a ch a ch byte byte bit bit
7F

FF F0 F7 F6 F5 F4 F F2 F1 F0 3 E0 E7 E6 E5 E4 E E2 E1 E0 3

B ACC

RAM a dung

D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 B8 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C 7B 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B 7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 79 71 69 61 59 51 49 41 39 31 29 21 19 78 70 68 60 58 50 48 40 38 30 28 20 18 BC BB BA B9 B8 IP

B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3 A8 AF AC AB AA A9 A8 IE

A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 99 khong c a chSBUF hoa bit 98 9F 9E 9D 9C 9B9A 99 98 SCON 90 97 96 95 94 93 92 91 90 8D khong c a hoa bit 8C khong c a hoa bit 8B khong c a hoa bit 8A khong c a hoa bit 89 khong c a hoa bit 88 8F 8E 8D 8C 8B8A 89 87 khong c a hoa bit 83 khong c hoa bit 82 khong c hoa bit 81 khong c hoa bit a a a P1

chTH1 chTH0 chTL1 chTL0 chTMOD 88 TCON chPCON chDPH chDPL chSP

22 17 16 15 14 13 12 11 10 21 0F 0E 0D 0C 0B 0A 09 08 20 07 06 05 04 03 02 01 00 1F Bank 3 18 17 Bank 2 10 0F Bank 1 08 07 Bank thanh ghi 0

SVTH : Phan Tien Hieu Trang : 17

Luan van tot nghiep


00 (mac nh cho R0 -R7) RAM

GVHD : Nguyen nh Phu 88 87 86 85 84 83 82 81 80 P0

CAC THANH GHI CHC NANG AC BIET

- Bo nh trong 8951 bao gom ROM va RAM. RAM trong 8951 bao gom nhieu thanh phan: phan lu tr a dung, phan lu tr a ch hoa tng bit, cac bank thanh ghi va cac thanh ghi chc nang ac biet. - 8951 co bo nh theo cau truc Harvard: co nhng vung bo nh rieng biet cho chng trnh va d lieu. Chng trnh va d lieu co the cha ben trong 8951 nhng 8951 van co the ket noi vi 64K byte bo nh chng trnh va 64K byte d lieu. Hai ac tnh can chu y la : Cac thanh ghi va cac port xuat nhap a c nh v (xac nh) trong bo nh va co the truy xuat trc tiep giong nh cac a ch bo nh khac. Ngan xep ben trong Ram noi nho hn so vi Ram ngoai nh trong cac bo Microcontroller khac. RAM ben trong 8951 c Phan chia nh sau: Cac bank thanh ghi co a ch t 00H en 1FH. RAM a ch hoa tng bit co a ch t 20H en 2FH. RAM a dung t 30H en 7FH. Cac thanh ghi chc nang ac biet t 80H en FFH. RAM a dung: - Mac du tren hnh ve cho thay 80 byte a dung chiem cac a ch t 30H en 7FH, 32 byte di t 00H en 1FH cung co the dung vi muc ch tng t (mac du cac a ch nay a co muc ch khac). - Moi a ch trong vung RAM a dung eu co the truy xuat t do dung kieu a ch trc tiep hoac gian tiep. RAM co the truy xuat tng bit: - 8951 cha 210 bit c a ch hoa, trong o co 128 bit co cha cac byte co cha cac a ch t 20F en 2FH va cac bit con lai cha trong nhom thanh ghi co chc nang ac biet. - Y tng truy xuat tng bit bang phan mem la cac ac tnh manh cua microcontroller x ly chung. Cac bit co the c at, xoa, AND, OR, . . . , vi 1 lenh n. a so cac microcontroller x ly oi hoi mot chuoi lenh oc sa - ghi e at c muc ch tng t. Ngoai ra cac port cung co the truy xuat c tng bit. - 128 bit truy xuat tng bit nay cung co the truy xuat nh cac byte hoac nh cac bit phu thuoc vao lenh c dung. Cac bank thanh ghi:

SVTH : Phan Tien Hieu Trang : 18

Luan van tot nghiep

GVHD : Nguyen nh Phu

- 32 byte thap cua bo nh noi c danh cho cac bank thanh ghi. Bo lenh 8951 ho tr 8 thanh ghi co ten la R0 en R7 va theo mac nh sau khi reset he thong, cac thanh ghi nay co cac a ch t 00H en 07H. - Cac lenh dung cac thanh ghi RO en R7 se ngan hn va nhanh hn so vi cac lenh co chc nang tng ng dung kieu a ch trc tiep. Cac d lieu c dung thng xuyen nen dung mot trong cac thanh ghi nay. - Do co 4 bank thanh ghi nen tai mot thi iem ch co mot bank thanh ghi c truy xuat bi cac thanh ghi RO en R7 e chuyen oi viec truy xuat cac bank thanh ghi ta phai thay oi cac bit chon bank trong thanh ghi trang thai. 2. Cac thanh ghi co chc nang ac biet: - Cac thanh ghi noi cua 8951 c truy xuat ngam nh bi bo lenh. - Cac thanh ghi trong 8951 c nh dang nh mot phan cua RAM tren chip v vay moi thanh ghi se co mot a ch (ngoai tr thanh ghi bo em chng trnh va thanh ghi lenh v cac thanh ghi nay hiem khi b tac ong trc tiep). Cung nh R0 en R7, 8951 co 21 thanh ghi co chc nang ac biet (SFR: Special Function Register) vung tren cua RAM noi t a ch 80H en FFH. Chu y: tat ca 128 a ch t 80H en FFH khong c nh ngha, ch co 21 thanh ghi co chc nang ac biet c nh ngha san cac a ch. - Ngoai tr thanh ghi A co the c truy xuat ngam nh a noi, a so cac thanh ghi co chc nang ac biet SFR co the a ch hoa tng bit hoac byte.

Thanh ghi trang thai chng trnh (PSW: Program Status Word):

T trang thai chng trnh a ch D0H c tom tat nh sau:


BIT PSW.7 PSW.6 PSW.5 PSW4 PSW.3 SYMBO L CY AC F0 RS1 RS0 ADDRESS D7H D6H D5H D4H D3H DESCRIPTION Cary Flag Auxiliary Cary Flag Flag 0 Register Bank Select 1 Register Bank Select 0 00=Bank 00H 07H 01=Bank 08H 0FH 0; 1; address address

SVTH : Phan Tien Hieu Trang : 19

Luan van tot nghiep

GVHD : Nguyen nh Phu 10=Bank 10H 17H 11=Bank 18H 1FH 2; 3; address address

PSW.2 PSW.1 PSW.0

OV P

D2H D1H DOH

Overlow Flag Reserved Even Parity Flag

Chc nang tng bit trang thai chng trnh

C Carry CY (Carry Flag): - C nh co tac dung kep. Thong thng no c dung cho cac lenh toan hoc: C=1 neu phep toan cong co s tran hoac phep tr co mn va ngc lai C= 0 neu phep toan cong khong tran va phep tr khong co mn. C Carry phu AC (Auxiliary Carry Flag): - Khi cong nhng gia tr BCD (Binary Code Decimal), c nh phu AC c set neu ket qua 4 bit thap nam trong pham vi ieu khien 0AH 0FH. Ngc lai AC= 0. C 0 (Flag 0): C 0 (F0) la 1 bit c a dung dung cho cac ng dung cua ngi dung. Nhng bit chon bank thanh ghi truy xuat: - RS1 va RS0 quyet nh day thanh ghi tch cc. Chung c xoa sau khi reset he thong va c thay oi bi phan mem khi can thiet. - Tuy theo RS1, RS0 = 00, 01, 10, 11 se c chon Bank tch cc tng ng la Bank 0, Bank1, Bank2, Bank3. RS1 0 0 1 1 RS0 0 1 0 1 BANK 0 1 2 3

C tran OV (Over Flag) :

SVTH : Phan Tien Hieu Trang : 20

Luan van tot nghiep

GVHD : Nguyen nh Phu

- C tran c set sau mot hoat ong cong hoac tr neu co s tran toan hoc. Khi cac so co dau c cong hoac tr vi nhau, phan mem co the kiem tra bit nay e xac nh xem ket qua co nam trong tam xac nh khong. Khi cac so khong co dau c cong bit OV c bo qua. Cac ket qua ln hn +127 hoac nho hn 128 th bit OV = 1. Bit Parity (P): - Bit t ong c set hay Clear moi chu ky may e lap Parity chan vi thanh ghi A. S em cac bit 1 trong thanh ghi A cong vi bit Parity luon luon chan. V du A cha 10101101B th bit P set len mot e tong so bit 1 trong A va P tao thanh so chan. - Bit Parity thng c dung trong s ket hp vi nhng thu tuc cua Port noi tiep e tao ra bit Parity trc khi phat i hoac kiem tra bit Parity sau khi thu. Thanh ghi B: - Thanh ghi B a ch F0H c dung cung vi thanh ghi A cho cac phep toan nhan chia. Lenh MUL AB se nhan nhng gia tr khong dau 8 bit trong hai thanh ghi A va B, roi tra ve ket qua 16 bit trong A (byte cao) va B(byte thap). Lenh DIV AB lay A chia B, ket qua nguyen at vao A, so d at vao B. - Thanh ghi B co the c dung nh mot thanh ghi em trung gian a muc ch. No la nhng bit nh v thong qua nhng a ch t F0H F7H. Con tro Ngan xep SP (Stack Pointer) : - Con tro ngan xep la mot thanh ghi 8 bit a ch 81H. No cha a ch cua byte d lieu hien hanh tren nh ngan xep. Cac lenh tren ngan xep bao gom cac lenh cat d lieu vao ngan xep (PUSH) va lay d lieu ra khoi Ngan xep (POP). Lenh cat d lieu vao ngan xep se lam tang SP trc khi ghi d lieu va lenh lay ra khoi ngan xep se lam giam SP. Ngan xep cua 8031/8051 c gi trong RAM noi va gii han cac a ch co the truy xuat bang a ch gian tiep, chung la 128 byte au cua 8951. - e khi ong SP vi ngan xep bat au tai a ch 60H, cac lenh sau ay c dung: MOV SP , #5F

SVTH : Phan Tien Hieu Trang : 21

Luan van tot nghiep

GVHD : Nguyen nh Phu

- Vi lenh tren th ngan xep cua 8951 ch co 32 byte v a ch cao nhat cua RAM tren chip la 7FH. S d gia tr 5FH c nap vao SP v SP tang len 60H trc khi cat byte d lieu. - Khi Reset 8951, SP se mang gia tr mac nh la 07H va d lieu au tien se c cat vao o nh ngan xep co a ch 08H. Neu phan mem ng dung khong khi ong SP mot gia tr mi th bank thanh ghi1 co the ca 2 va 3 se khong dung c v vung RAM nay a c dung lam ngan xep. Ngan xep c truy xuat trc tiep bang cac lenh PUSH va POP e lu tr tam thi va lay lai d lieu, hoac truy xuat ngam bang lenh goi chng trnh con ( ACALL, LCALL) va cac lenh tr ve (RET, RETI) e lu tr gia tr cua bo em chng trnh khi bat au thc hien chng trnh con va lay lai khi ket thuc chng trnh con Con tro d lieu DPTR (Data Pointer): -Con tro d lieu (DPTR) c dung e truy xuat bo nh ngoai la mot thanh ghi 16 bit a ch 82H (DPL: byte thap) va 83H (DPH: byte cao). Ba lenh sau se ghi 55H vao RAM ngoai a ch 1000H: MOV A , #55H MOV DPTR, #1000H MOV @DPTR, A - Lenh au tien dung e nap 55H vao thanh ghi A. Lenh th hai dung e nap a ch cua o nh can lu gia tr 55H vao con tro d lieu DPTR. Lenh th ba se di chuyen noi dung thanh ghi A (la 55H) vao o nh RAM ben ngoai co a ch cha trong DPTR (la 1000H). Cac thanh ghi Port (Port Register): - Cac Port cua 8951 bao gom Port0 a ch 80H, Port1 a ch 90H, Port2 a ch A0H, va Port3 a ch B0H. Tat ca cac Port nay eu co the truy xuat tng bit nen rat thuan tien trong kha nang giao tiep. Cac thanh ghi Timer (Timer Register): - 8951 co cha hai bo nh thi/ bo em 16 bit c dung cho viec nh thi c em s kien. Timer0 a ch 8AH (TLO: byte thap ) va 8CH (THO: byte cao). Timer1 a ch 8BH (TL1: byte thap) va 8DH (TH1: byte cao). Viec khi ong timer c SET bi Timer Mode (TMOD) a ch 89H va

SVTH : Phan Tien Hieu Trang : 22

Luan van tot nghiep

GVHD : Nguyen nh Phu

thanh ghi ieu khien Timer (TCON) a ch 08H. Ch co TCON c a ch hoa tng bit . Cac thanh ghi Port noi tiep (Serial Port Register) : - 8951 cha mot Port noi tiep cho viec trao oi thong tin vi cac thiet b noi tiep nh may tnh, modem hoac giao tiep noi tiep vi cac IC khac. Mot thanh ghi em d lieu noi tiep (SBUF) a ch 99H se gi ca hai d lieu truyen va d lieu nhap. Khi truyen d lieu ghi len SBUF, khi nhan d lieu th oc SBUF. Cac mode van khac nhau c lap trnh qua thanh ghi ieu khien Port noi tiep (SCON) c a ch hoa tng bit a ch 98H. Cac thanh ghi ngat (Interrupt Register): - 8951 co cau truc 5 nguon ngat, 2 mc u tien. Cac ngat b cam sau khi b reset he thong va se c cho phep bang viec ghi thanh ghi cho phep ngat (IE) a ch A8H. Ca hai c a ch hoa tng bit. Thanh ghi ieu khien nguon PCON (Power Control Register): - Thanh ghi PCON khong co bit nh v. No a ch 87H cha nhieu bit ieu khien. Thanh ghi PCON c tom tat nh sau: Bit 7 (SMOD) : Bit co toc o Baud mode 1, 2, 3 Port noi tiep khi set. Bit 6, 5, 4 : Khong co a ch. Bit 3 (GF1) : Bit c a nang 1. Bit 2 (GF0) : Bit c a nang 2 .

Bit 1 (PD) : Set e khi ong mode Power Down va thoat e reset. Bit 0 (IDL) : Set e khi ong mode Idle va thoat khi ngat mach hoac reset. Cac bit ieu khien Power Down va Idle co tac dung chnh trong tat ca cac IC ho MSC-51 nhng ch c thi hanh trong s bien dch cua CMOS. 3. Bo nh ngoai (external memory) : - 8951 co kha nang m rong bo nh len en 64K byte bo nh chng trnh va 64k byte bo nh d lieu ngoai. Do o co the dung them RAM va ROM neu can.

SVTH : Phan Tien Hieu Trang : 23

Luan van tot nghiep

GVHD : Nguyen nh Phu

- Khi dung bo nh ngoai, Port0 khong con chc nang I/O na. No c ket hp gia bus a ch (A0-A7) va bus d lieu (D0-D7) vi tn hieu ALE e chot byte cua bus a ch khi bat au moi chu ky bo nh. Port c cho la byte cao cua bus a ch. Truy xuat bo nh ma ngoai (Accessing External Code Memory) : - Bo nh chng trnh ben ngoai la bo nh ROM c cho phep cua tn hieu PSEN\. S ket noi phan cng cua bo nh EPROM nh sau:
Port 0 EA
74HC37 3

D0 D7 A0 A7

8951

ALE

O D G

EPROM
A8 A15 OE

Port 2 PSEN

- Trong mot chu ky may tieu bieu, tn hieu ALE tch 2 lan. Lan th nhat cho phep 74HC373 m cong chot a ch byte thap, khi ALE xuong 0 th byte thap va byte cao cua bo em chng trnh eu co nhng EPROM cha xuat v PSEN\ cha tch cc, khi tn hieu len mot tr lai th Port 0 a co d lieu la Opcode. ALE tch cc lan th hai c giai thch tng t va byte 2 c oc t bo nh chng trnh. Neu lenh ang hien hanh la lenh 1 byte th CPU ch oc Opcode, con byte th hai bo i. Truy xuat bo nh d lieu ngoai (Accessing External Data Memory): - Bo nh d lieu ngoai la mot bo nh RAM c oc hoac ghi khi c cho phep cua tn hieu RD\ va WR. Hai tn hieu nay nam chan P3.7 (RD) va P3.6 (WR). Lenh MOVX c dung e truy xuat bo nh d lieu ngoai va dung mot bo em d lieu 16 bit (DPTR), R0 hoac R1 nh la mot thanh ghi a ch. - Cac RAM co the giao tiep vi 8951 tng t cach thc nh EPROM ngoai tr chan RD\ cua 8951 noi vi chan OE\ (Output Enable) cua RAM va chan WR\ cua 8951 noi vi chan WE\ cua RAM. S noi cac bus a ch va d lieu tng t nh cach noi cua EPROM.

SVTH : Phan Tien Hieu Trang : 24

Luan van tot nghiep

GVHD : Nguyen nh Phu

Port 0 EA\ 8951 ALE Port 2 RD\ WR\


74HC373

D0 D7 RAM A0 A7

O D G

A8 A15 OE\ WE\

S giai ma a ch (Address Decoding): - S giai ea a ch la mot yeu cau tat yeu e chon EPROM, RAM, 8279, S giai ma a ch oi vi 8951 e chon cac vung nh ngoai nh cac vi ieu khien. Neu cac con EPROM hoac RAM 8K c dung th cac bus a ch phai c giai ma e chon cac IC nh nam trong pham vi gii han 8K: 0000H 1FFFH, 2000H 3FFFH, . . - Mot cach cu the, IC giai ma 74HC138 c dung vi nhng ngo ra cua no c noi vi nhng ngo vao chon Chip CS (Chip Select) tren nhng IC nh EPROM, RAM, Hnh sau ay cho phep ket noi nhieu EPROM va RAM.

SVTH : Phan Tien Hieu Trang : 25

Luan van tot nghiep


Address Bus (A0 A15) Data Bus (D0 D7) PSEN \

GVHD : Nguyen nh Phu

D0 - D7 OE EPROM A0 A12 8K Bytes CS

RD\ WR\

74HC138

CS CS

OE D0 D7 W RAM A0 A12 8K Bytes CS

CS CS

0 1 2 3 E 4 5 E0 E1 6 Address 7

C B A

Select other EPROM/RAM

Decoding (Giai ma a ch)

S e len nhau cua cac vung nh d lieu ngoai: - V bo nh chng trnh la ROM, nen nay sinh mot van e bat tien khi phat trien phan mem cho vi ieu khien. Mot nhc iem chung cua 8951 la cac vung nh d lieu ngoai nam e len nhau, v tn hieu PSEN\ c dung e oc bo nh ma ngoai va tn hieu RD\ c dung e oc bg nh d lieu, nen mot bo nh RAM co the cha ca chng trnh va d lieu bang cach noi ng OE\ cua RAM en ngo ra mot cong AND co hai ngo vao PSEN\ va RD\. S o mach nh hnh sau cho phep cho phep bo nh RAM co hai c`c nang va la bo nh chng trnh va la bo nh d lieu: RAM WR\ RD\ PSEN\ WR\ OE\

Overlapping the External code and data space

SVTH : Phan Tien Hieu Trang : 26

Luan van tot nghiep

GVHD : Nguyen nh Phu

-Vay mot chng trnh co the c tai vao RAM bang cach xem no nh bo nh d lieu va thi hanh chng trnh bang cach xem no nh bo nh chng trnh. Hoat ong Reset: - 8951 co ngo vao reset RST tac ong mc cao trong khoang thi gian 2 chu ky xung may, sau o xuong mc thap e 8951 bat au lam viec. RST co the kch bang tay bang mot phm nhan thng h, s o mach reset nh sau: +5V
100

Reset

10 F RST 8.2 K

Manual Reset Reset bang tay. Trang thai cua tat ca cac thanh ghi trong 8951 sau khi reset he thong c tom tat nh sau: Thanh ghi Noi dung em trnh PC Thanh luy A chng 0000H 00H ghi tch 00H 00H

Thanh ghi B

07H Thanh ghi thai 0000H PSW FFH SP DPRT XXX0 0000 B Port 0 en port 0X0X 0000 B 3 00H IP 00H IE Cac thanh nh thi SCON SBUF PCON (MHOS) 00H ghi 0XXX XXXXH0XXX 0000 B

SVTH : Phan Tien Hieu Trang : 27

Luan van tot nghiep


PCON (CMOS)

GVHD : Nguyen nh Phu

-Thanh ghi quan trong nhat la thanh ghi bo em chng trnh PC c reset tai a ch 0000H. Khi ngo vao RST xuong mc thap, chng trnh luon bat au tai a ch 0000H cua bo nh chng trnh. Noi dung cua RAM tren chip khong b thay oi bi tac ong cua ngo vao reset. VI. HOAT ONG TIMER CUA 8951: 1. GII THIEU: - Bo nh thi cua Timer la mot chuoi cac Flip Flop c chia lam 2, no nhan tn hieu vao la mot nguon xung clock, xung clock c a vao Flip Flop th nhat la xung clock cua Flip Flop th hai ma no cung chia tan so clock nay cho 2 va c tiep tuc. - V moi tang ke tiep chia cho 2, nen Timer n tang phai chia tan so clock ngo vao cho 2n. Ngo ra cua tang cuoi cung la clock cua Flip Flop tran Timer hoac c ma no kiem tra bi phan mem hoac sinh ra ngat. Gia tr nh phan trong cac FF cua bo Timer co the c ngh nh em xung clock hoac cac s kien quan trong bi v Timer c khi ong. V du Timer 16 bit co the em en t FFFFH sang 0000H. sau: - Hoat ong cua Timer n gian 3 bit c minh hoa nh Flag FF
D Q Q0 D Q Q1 D Q Q2 D Q Q3

LSB Timer Flip Flops. Clock Q0 (LSB) Q1 0 1 2 3

MSB

Flag

Q2 (MSB) Count

SVTH : Phan Tien Hieu Flag Trang : 28

Luan van tot nghiep

GVHD : Nguyen nh Phu

- Trong hnh tren moi tang la mot FF loaa D phu nh tac ong canh xuong c hoat ong mode chia cho 2 (ngo ra Q\ c noi vao D). FF c la mot bo chot n gian loai D c set bi tang cuoi cung trong Timer. Trong bieu o thi gian, tang au oi trang thai tan so clock, tang th hai oi trang thai tan so tan so clock . . . So em c biet dang thap phan va c kiem tra lai de dang bi viec kiem tra cac tang cua 3 FF. V du so em 4 xuat hien khi Q2=1, Q1=0, Q0=0 (410=1002). - Cac Timer c ng dung thc te cho cac hoat ong nh hng. 8951 co 2 bo Timer 16 bit, moi Timer co 4 mode hoat ong. Cac Timer dung e em gi, em cac s kien can thiet va s sinh ra toc o cua toc o Baud bi s gan lien Port noi tiep. - Moi s nh thi la mot Timer 16 bit, do o tang cuoi cung la tang th 16 se chia tan so clock vao cho 2 16 = 65.536. - Trong cac ng dung nh thi, 1 Timer c lap trnh e tran mgt khoang thi gian eu an va c set c tran Timer. C c dung e ong bo chng trnh e thc hien mot hoat ong nh viec a ti 1 tang cac ngo vao hoac gi d lieu em ngo ra. Cac ng dung khac co s dung viec ghi gi eu eu cua Timer e o thi gian a troi qua hai trang thai (v du o o rong xung).Viec em mot s kien c dung e xac nh so lan xuat hien cua s kien o, tc thi gian troi qua gia cac s kien. - Cac Timer cua 8951 c truy xuat bi viec dung 6 thanh ghi chc nang ac biet nh sau : Timer SFR TCON TMOD TL0 TL1 Purpose Control Mode Timer byte Timer byte 0 1 Address 88H 89H low- 8AH low- 8BH BitAddressable YES NO NO NO

SVTH : Phan Tien Hieu Trang : 29

Luan van tot nghiep


TH0 TH1 Timer byte Timer byte 0 1

GVHD : Nguyen nh Phu

high- 8CH high- 8DH

NO NO

SVTH : Phan Tien Hieu Trang : 30

Luan van tot nghiep

GVHD : Nguyen nh Phu

2. CAC THANH GHI IEU KHIEN TIMER 2.1. Thanh ghi ieu khien che o timer TMOD (timer mode register) : - Thanh ghi mode gom hai nhom 4 bit la: 4 bit thap at mode hoat ong cho Timer 0 va 4 bit cao at mode hoat ong cho Timer 1. 8 bit cua thanh ghi TMOD c tom tat nh sau: Bit 7 6 Name GATE C/T Timer 1 1 Description Khi GATE = 1, Timer ch lam viec khi INT1=1 Bit cho em s kien hay ghi gi C/T = 1 : em s kien C/T = 0 : Ghi gi eu an 5 4 3 2 1 0 M1 M0 GATE C/T M1 M0 1 1 0 0 0 0 Bit chon mode cua Timer 1 Bit chon mode cua Timer 1 Bit cong cua Timer 0 Bit chon Counter/Timer cua Timer 0 Bit chon mode cua Timer 0 Bit chon mode cua Timer 0

Hai bit M0 va M1 cua TMOD e chon mode cho Timer 0 hoac Timer 1. M1 0 0 1 1 M0 0 1 0 1 MODE 0 1 2 3 DESCRIPTION Mode Timer 13 bit (mode 8048) Mode Timer 16 bit Mode t ong nap 8 bit Mode Timer tach ra : Timer 0 : TL0 la Timer 8 bit c ieu khien bi cac bit cua Timer 0. TH0 tng t nhng c ieu khien bi cac bit cua mode Timer 1. Timer 1 : c ngng lai.

SVTH : Phan Tien Hieu Trang : 31

Luan van tot nghiep

GVHD : Nguyen nh Phu

- TMOD khong co bit nh v, no thng c LOAD mot lan bi phan mem au chng trnh e khi ong mode Timer. Sau o s nh gi co the dng lai, c khi ong lai nh the bi s truy xuat cac thanh ghi chc nang ac biet cua Timer khac. 2.2. Thanh ghi ieu khien timer TCON (timer control register): - Thanh ghi ieu khien bao gom cac bit trang thai va cac bit ieu khien bi Timer 0 va Timer 1. Thanh ghi TCON co bit nh v. Hoat ong cua tng bit c tom tat nh sau : Bit Symbo l TF1 Bit Description Addres s 8FH C tran Timer 1 c set bi phan cng s tran, c xoa bi phan mem hoac bi phan cng khi cac vect x l en thu tuc phuc vu ngat ISR Bit ieu khien chay Timer 1 c set hoac xoa bi phan mem e chay hoac ngng chay Timer. C tran Timer 0(hoat ong tng t TF1) Bit ieu khien (giong TR1) chay Timer 0

TCON.7

TCON.6

TR1

8EH

TCON.5 TCON.4 TCON.3

TF0 TR0 IE1

8DH 8CH 8BH

C kieu ngat 1 ngoai. Khi canh xuong xuat hien tren INT1 th IE1 c xoa bi phan mem hoac phan cng khi CPU nh hng en thu tuc phuc vu ngat ngoai. C kieu ngat 1 ngoai c set hoac xoa bang phan mem bi canh kch hoat bi s ngat ngoai. C canh ngat 0 ngoai C kieu ngat 0 ngoai.

TCON.2

IT1

8AH

TCON.1 TCON

IE0 IT0

89H 88H

SVTH : Phan Tien Hieu Trang : 32

Luan van tot nghiep

GVHD : Nguyen nh Phu

SVTH : Phan Tien Hieu Trang : 33

Luan van tot nghiep

GVHD : Nguyen nh Phu

2.3. Cac nguon xung nhp cho timer (clock sources): - Co hai nguon xung clock co the em gi la s nh gi ben trong va s em s kien ben ngoai. Bit C/T trong TMOD cho phep chon 1 trong 2 khi Timer c khi ong. Crystal

On Chip Oscillator

12

Timer Clock

T0 or T1 pin

0 = Up (internal Timing) 1 = Down (Event Counting) S bam gi ben trong (Interval Timing): - Neu bit C/T = 0 th hoat ong cua Timer lien tuc c chon vao bo Timer c ghi gi t dao ong tren Chip. Mot bo chia 12 c them vao e giam tan so clock en 1 gia tr phu hp vi cac ng dung. Cac thanh ghi TLx va THx tang toc o 1/12 lan tan so dao ong tren Chip. Neu dung thach anh 12MHz th se a en toc o clock 1MHz. - Cac s tran Timer sinh ra sau mot con so co nh cua nhng xung clock, no phu thuoc vao gia tr khi tao c LOAD vao cac thanh ghi THx va TLx.

C/T

S em cac s kien (Event Counting) :


- Neu bit C/T = 1 th bo Timer c ghi gi t nguon ben ngoai trong nhieu ng dung, nguon ben ngoai nay cung cap 1 s nh gi vi 1 xung tren s xay ra cua s kien. S nh gi la s em s kien. Con so s kien c xac nh trong phan mem bi viec oc cac thanh ghi Timer. Tlx/THx, bi v gia tr 16 bit trong cac thanh nay tang den cho moi s kien. - Nguon xung clock ben ngoai a vao chan P3.4 la ngo nhap cua xung clock bi Timer 0 (T0) va P3.5 la ngo nhap cua xung clock bi Timer 1 (T1).

SVTH : Phan Tien Hieu Trang : 34

Luan van tot nghiep

GVHD : Nguyen nh Phu

- Trong cac ng dung em cac thanh ghi Timer c tang trong ap ng cua s chuyen trang thai t 1 sang 0 ngo nhap Tx. Ngo nhap ben ngoai c th trong suot S5P2 cua moi chu ky may: Do o khi ngo nhap a ti mc cao trong mot chu ky va mc thap trong mot chu ky ke tiep th bo em tang len mot. Gia tr mi xuat hien trong cac thanh ghi Timer trong suot S5P1 cua chu ky theo sau mot s chuyen oi. Bi v no chiem 2 chu ky may (2 s) e nhan ra s chuyen oi t 1 sang 0, nen tan so ben ngoai ln nhat la 500KHz neu dao ong thach anh 12 MHz. 2.4. s bat au, ket thuc va s ieu khien cac timer (starting, stopping and controlling the timer) : - Bit TRx trong thanh ghi co bit nh v TCON c ieu khien bi phan mem e bat au hoac ket thuc cac Timer. e bat au cac Timer ta set bit TRx va e ket thuc Timer ta Clear TRx. V du Timer 0 c bat au bi lenh SETB TR0 va c ket thuc bi lenh CLR TR0 (bit Gate= 0). Bit TRx b xoa sau s reset he thong, do o cac Timer b cam bang s mac nh. - Them phng phap na e ieu khien cac Timer la dung bit GATE trong thanh ghi TMOD va ngo nhap ben ngoai INTx. ieu nay c dung e o cac o rong xung. Gia s xung a vao chan INT0 ta khi ong Timer 0 cho mode 1 la mode Timer 16 bit vi TL0/TH0 = 0000H, GATE = 1, TR0 = 1. Nh vay khi INT0 = 1 th Timer c m cong va ghi gi vi toc o cua tan so 1MHz. Khi INT0 xuong thap th Timer ong cong va khoang thi gian cua xung tnh bang s la s em c trong thanh ghi TL0/TH0. On Chip Oscillat or
T0 (P3.4)

12

TL0 TH0

TF0

12 MHz

C/T TR0
GATE

SVTH : Phan Tien Hieu Trang : 35

INTO (P3.2)

Luan van tot nghiep

GVHD : Nguyen nh Phu

Timer Operating Mode 1.

SVTH : Phan Tien Hieu Trang : 36

Luan van tot nghiep

GVHD : Nguyen nh Phu

2.5. S khi ong va truy xuat cac thanh ghi timer: - Cac Timer c khi ong 1 lan au chng trnh e at mode hoat ong cho chung. Sau o trong chng trnh cac Timer c bat au, c xoa, cac thanh ghi Timer c oc va cap nhat theo yeu cau cua tng ng dung cu the. - Mode Timer TMOD la thanh ghi au tien c khi gan, bi v at mode hoat ong cho cac Timer. V du khi ong cho Timer 1 hoat ong mode 1 (mode Timer 16bit) va c ghi gi bang dao ong tren Chip ta dung lenh : MOV TMOD, # 00001000B. Trong lenh nay M1 = 0, M0 = 1 e vao mode 1 va C/T = 0, GATE = 0 e cho phep ghi gi ben trong ong thi xoa cac bit mode cua Timer 0. Sau lenh tren Timer van cha em gi, no ch bat au em gi khi set bit ieu khien chay TR1 cua no. - Neu ta khong khi gan gia tr au cho cac thanh ghi TLx/THx th Timer se bat au em t 0000Hlen va khi tran t FFFFH sang 0000H no se bat au tran TFx roi tiep tuc em t 0000H len tiep . . . - Neu ta khi gan gia tr au cho TLx/THx, th Timer se bat au em t gia tr khi gan o len nhng khi tran t FFFFH sang 0000H lai em t 0000H len. - Chu y rang c tran TFx t ong c set bi phan cng sau moi s tran va se c xoa bi phan mem. Chnh v vay ta co the lap trnh ch sau moi lan tran ta se xoa c TFx va quay vong lap khi gan cho TLx/THx e Timer luon luon bat au em t gia tr khi gan len theo y ta mong muon. ac biet nhng s khi gan nho hn 256 s, ta se goi mode Tieer t ong nap 8 bit cua mode 2. Sau khi khi gan gia tr au vao THx, khi set bit TRx th Timer se bat au em gia tr khi gan va khi tran t FFH sang 00H trong TLx, c TFx t ong c set ong thi gia tr khi gan ma ta khi gan cho Thx c nap t ong vao TLx va Timer lai c em t gia tr khi gan nay len. Noi cach khac, sau moi tran ta khong can khi gan lai cho cac thanh ghi Timer ma chung van em c lai t gia tr ban au.
-

3. CAC CHE O TIMER VA C TRAN (TIMER MODES AND OVERFLOW):

SVTH : Phan Tien Hieu Trang : 37

Luan van tot nghiep

GVHD : Nguyen nh Phu

- 8951 co 2 Timer la Timer 0 va timer 1. Ta dung ky hieu TLx va Thx e ch 2 thanh ghi byte thap va byte cao cua Timer 0 hoac Timer 1. 3.1. Mode Timer 13 bit (MODE 0) :
Timer Clock

Overflow

TLx (5 bit)

THx (8 bit)

TFx

- Mode 0 la mode Timer 13 bit, trong o byte cao cua Timer (Thx) c at thap va 5 bit trong so thap nhat cua byte thap Timer (TLx) at cao e hp thanh Timer 13 bit. 3 bit cao cua TLx khong dung. 3.2. Mode Timer 16 bit (MODE 1) : TLx (8 THx (8 TFx bit) bit) - Mode 1 la mode Timer 16 bit, tng t nh mode 0 ngoai tr Timer nay hoat ong nh mot Timer ay u 16 bit, xung clock c dung vi s ket hp cac thanh ghi cao va thap (TLx, THx). Khi xung clock c nhan vao, bo em Timer tang len 0000H, 0001H, 0002H, , va mot s tran se xuat hien khi co s chuyen tren bo em Timer t FFFH sang 0000H va se set c tran Time, sau o Timer em tiep. - C tran la bit TFx trong thanh ghi TCON ma no se c oc hoac ghi bi phan mem. - Bit co trong so ln nhat (MSB) cua gia tr trong thanh ghi Timer la bit 7 cua THx va bit co trong so thap nhat (LSB) la bit 0 cua TLx. Bit LSB oi trang thai tan so clock vao c chia 216 = 65.536. - Cac thanh ghi Timer TLx va Thx co the c oc hoac ghi tai bat ky thi iem nao bi phan mem. 3.3. Mode t ong nap 8 bit (MODE 2) : Timer Clock TL x (8 bit) Reload TH x (8 bit) -Mode 2 la mode t ong nap 8 bit, byte thap TLx cua Timer hoat ong nh mot Timer 8 bit trong khi byte cao THx cua Timer gi gia tr Reload. Khi bo em tran t FFH sang 00H, TFx Overflow Timer Clock

SVTH : Phan Tien Hieu Trang : 38

Luan van tot nghiep

GVHD : Nguyen nh Phu

khong ch c tran c set ma gia tr trong THx cung c nap vao TLx : Bo em c tiep tuc t gia tr nay len en s chuyen trang thai t FFH sang 00H ke tiep va c the tiep tuc. Mode nay th phu hp bi v cac s tran xuat hien cu the ma moi luc ngh thanh ghi TMOD va THx c khi ong. 3.4 Mode Timer tach ra (MODE 3) :

SVTH : Phan Tien Hieu Trang : 39

Luan van tot nghiep


Timer Clock

GVHD : Nguyen nh Phu

TL1 (8 bit) Timer Clock Timer Clock

TH1 (8 bit) TL1 (8 bit)

Overflow

TF0

TH0 (8 TF1 bit) - Mode 3 la mode Timer tach ra va la s khac biet cho moi Timer. - Timer 0 mode 3 c chia la 2 timer 8 bit. TL0 va TH0 hoat ong nh nhng Timer rieng le vi s tran se set cac bit TL0 va TF1 tng ng. - Timer 1 b dng lai mode 3, nhng co the c khi ong bi viec ngat no vao mot trong cac mode khac. Ch co nhc iem la c tran TF1 cua Timer 1 khong b anh hng bi cac s tran cua Timer 1 bi v TF1 c noi vi TH0. - Mode 3 cung cap 1 Timer ngoai 8 bit la Timer th ba cua 8951. Khi vao Timer 0 mode 3, Timer co the hoat ong hoac tat bi s ngat no ra ngoai va vao trong mode cua chnh no hoac co the c dung bi Port noi tiep nh la mot may phat toc o Baud, hoac no co the dung trong hng nao o ma khong s dung Interrupt. V. HOAT ONG PORT NOI TIEP 1. Gii thieu 8951 co mot port noi tiep trong chip co the hoat ong nhieu che o tren mot day tan so rong. Chc nang chu yeu la thc hien chuyen oi song song sang noi tiep vi d lieu xuat va chuyen oi noi tiep sang song song vi d lieu nhap. Port noi tiep cho hoat ong song cong (full duplex: thu va phat ong thi) va em thu (receiver buffering) cho phep mot ky t se c thu va c gi trong khi ky t th hai c nhan. Neu CPU oc ky t th nhat trc khi ky t th hai c thu ay u th d lieu se khong b mat. Hai thanh ghi chc nang ac biet cho phep phan mem truy xuat en port noi tiep la: SBUF va SCON. Bo em port noi tiep (SBUF) ia ch 99H nhan d lieu e thu hoac phat. Thanh ghi ieu khien port noi tiep (SCON) ia ch

SVTH : Phan Tien Hieu Trang : 40

Luan van tot nghiep

GVHD : Nguyen nh Phu

98H la thanh ghi co ia ch bit cha cac bit trang thai va cac bit ieu khien. Cac bit ieu khien at che o hoat ong cho port noi tiep, va cac bit trang thai Bao cao ket thuc viec phat hoac thu ky t . Cac bit trang thai co the c kiem tra bang phan mem hoac co the lap trnh e tao ngat.

SVTH : Phan Tien Hieu Trang : 41

Luan van tot nghiep

GVHD : Nguyen nh Phu

2. Cac thanh ghi va cac che o hoat ong cua port noi tiep: 2.1. Thanh ghi ieu khien port noi tiep: Che o hoat ong cua port noi tiep c at bang cach ghi vao thanh ghi che o port noi tiep (SCON) a ch 98H .Sau ay cac ban tom tat thanh ghi SCON va cac che o cua port noi tiep: Bit Ky a Mo ta hieu ch SCON.7 SM0 9FH Bit 0 cua che o port noi tiep SCON.6 SM1 9EH Bit 1 cua che o port noi tiep SCON.5 SM3 9DH Bit 2 cua che o port noi tiep . Cho phep truyen thong x ly trong cac che o 2 va 3, RI se khong b tac SCON.4 REN 9CH ong neu bit th 9 thu c la 0 SCON.3 TB8 9BH Cho phep bo thu phai c at len 1 e thu cac ky t SCON.2 RB8 9AH Bit 8 phat, bit th 9 c phat trong SCON.1 TI 99H che o 2 va 3, c at va xoa bang phan mem. SCON.0 RI 98H B it 8 thu, bit th 9 thu c C ngat phat. at len 1 khi ket thuc phat ky t, c xoa bang phan mem C ngat thu. at len 1 khi ket thuc thu ky t, c xoa bang phan mem Tom tat thanh ghi che o port noi tiep SM0 SM1 Che Mo ta Toc o baud o 0 0 0 Thanh ghi Co nh (Fosc /12 ) 0 1 1 dch Thay oi ( at bang 1 0 2 UART 8 bit timer ) 1 1 3 UART 9 bit Co nh (Fosc /12 hoac UART 9 bit Fosc/64 ) Thay oi ( at bang timer ) Cac che o port noi tiep Trc khi s dung port noi tiep, phai khi ong SCON cho ung che o. V du, lenh sau: MOV SCON, #01010010B Khi ong port noi tiep cho che o 1 (SM0/SM1=0/1), cho phep bo thu (REN=1) va c ngat phat (TP=1) e bo phat san sang hoat ong.

SVTH : Phan Tien Hieu Trang : 42

Luan van tot nghiep

GVHD : Nguyen nh Phu

2.2. Che o 0 (Thanh ghi dch n 8 bit): Che o 0 c chon bang cac thanh ghi cac bit 0 vao SM1 va SM2 cua SCON, a port noi tiep vao che o thanh ghi dch 8bit. D lieu noi tiep vao va ra qua RXD va TXD xuat xung nhp dch, 8 bit c phat hoac thu vi bit au tien la LSB. Toc o baud co nh 1/12 tan so dao ong tren chip. Viec phat i c khi ong bang bat c lenh nao ghi d lieu vao SBUF. D lieu dch ra ngoai tren ng RXD (P3.0) vi cac xung nhp c gi ra ng TXD (P3.1). Moi bit phat i hp le (tren RXD) trong mot chu ky may, tn hieu xung nhap xuong thap S3P1 va tr ve cao S6P1.
Mot chu ky may

S6 43 P1

S1 P1

S2 P2 P1 P2

S3 P1 P2

S4

S5 P1 P2 P1 P2

OSC
ALE
Data Out Shift Clock

Bit Data Hp Le S3P1

S6P1

WRITE to SBUF ALE Data Out RXD

Phong to

Shift Clock Gian o thi gian Port noi tiep (TXD) phat che o 0

Viec thu c khi ong khi cho phep bo thu (REN) la 1 va bit ngat thu (RI) la 0. Quy tac tong quat la at REN khi bat au chng trnh e khi ong port noi tiep, roi xoa RI e bat au nhan d lieu. Khi RI b xoa, cac xung nhp c a ra ng TXD, bat au chu ky may ke tiep va d lieu theo xung nhp ng RXD. Lay xung nhp cho d lieu vao port noi tiep xay ra canh ng cua TXD.

SVTH : Phan Tien Hieu Trang : 43

Luan van tot nghiep

GVHD : Nguyen nh Phu

Mot chu ky may

Data out D7 Shift clock

D0

D1

D2

D3 D4

D5

D6

2.3. Che o 1 (UART 8 bit vi toc o baud thay oi c): che o 1, port noi tiep cua 8951 lam viec nh mot UART 8 bit vi toc o baud thay oi c. Mot UART (Bo thu phat ong bo van nang) la mot dung cu thu phat d lieu noi tiep vi moi ky t d lieu i trc la bit start mc thap va theo sau bit stop mc cao. oi khi xen them bit kiem tra chan le gia bit d lieu cuoi cung va bit stop. Hoat ong chu yeu cua UART la chuyen oi song song sang noi tiep vi d lieu nhap. che o 1, 10 bit c phat tren TXD hoac thu tren RXD. Nhng bit o la: 1 bit start (luon luon la 0), 8 bit d lieu (LSB au tien) va 1 bit stop (luon luon la 1). Vi hoat ong thu, bit stop c a vao RB8 trong SCON. Trong 8951 che o baud c at bang toc o bao tran cua timer 1. Tao xung nhp va ong bo hoa cac thanh ghi dch cua port noi tiep trong cac che o 1,2 va 3 c thiet lap bang bo em 4 bit chia cho 16, ngo ra la xung nhp toc o baud. Ngo vao cua bo em nay c chon qua phan mem Toc o baud

Gian o thi gian phat noi tiep che o 0

16

Xung nhp toc o baud Thanh ghi dch port noi tiep 2.4. UART 9 bit vi toc o baud co nh (che o 2): Khi SM1=1 va SM0=0, cong noi tiep lam viec che o 2, nh mot UART 9bit co toc o baud co nh, 11 bit se c phat hgac thu:1bit start, 8 bit data, 1 bit data th 9 co the c lap trnh va 1 bit stop. Khi phat bit th 9 la bat c

SVTH : Phan Tien Hieu Trang : 44

Luan van tot nghiep

GVHD : Nguyen nh Phu

g a c a vao TB8 trong SCON (co the la bit Parity) .Khi thu bit th 9 thu c se trong RB8. Toc o baud che o 2 la 1/32 hoac 1/16 tan so dao ong tren chip. 2.5. UART 9 bit vi toc o baud thay oi c (che o 3): Che o nay giong nh che o 2 ngoai tr toc o baud co the lap trnh c va c cung cap bi Timer.That ra cac che o 1, 2, 3 rat giong nhau. Cai khac biet la toc o baud (co nh trong che o 2, thay oi trong che o 1 va 3) va so bit data (8 bit trong che o 1,9 trong che o 2 va 3). 2.6. Khi ong va truy xuat cac thanh ghi cong noi tiep: Cho Phep Thu Bit cho phep bo thu (REN=Receiver Enable) Trong SCON phai c at len 1bang phan mem e cho phep thu cac ky t thong thng thc hien viec nay au chng trnh khi khi ong cong noi taep, timer Co the thc hien viec nay theo hai cach. Lenh: SETB REN ; at REN len 1 Hoac lenh MOV SCON,#XXX1XXXXB ; at REN len 1 hoac xoa cac bit khac tren SCON khi can (cac X phai la 0 hoac 1 e at che o lam viec) Bit d lieu th 9: Bit d lieu th 9 can phat trong cac che o 2 va 3 phai c nap vao trong TB8 bang phan mem. Bit d lieu th 9 thu c at RB8. Phan mem co the can hoac khong can bit d lieu th 9, phu thuoc vao ac tnh ky thuat cua thiet b noi tiep s dung (bit d lieu th 9 cung ong vai tro quan trong trong truyen thong a x ly ) Them 1 bit parity: Thng s dung bit d lieu th 9 e them parity vao ky t. Nh a nhan xet chng trc, bit P trong t trang thai chng trnh (PSW) c at len 1 hoac b xoa bi chu ky may e thiet lap kiem tra chan vi 8 bit trong thanh tch luy. Cac c ngat: Hai c ngat thu va phat (RI va TI) trong SCON ong mot vai tro quan trong trong truyen thong noi tiep dung 8951/8051. Ca hai bit c at len 1 bang phan cng, nhng phai c xoa bang phan mem. 2.7. Toc o baud port noi tiep Nh a noi, toc o baud co nh cac che o 0 va 2. Trong che o 0 no luon luon la tan so dao ong tren chip

SVTH : Phan Tien Hieu Trang : 45

Luan van tot nghiep

GVHD : Nguyen nh Phu

c chia cho 12. Thong thng thach anh an nh tan so dao ong tren chip nhng cung co the s dung nguon xung nhp khac.

SVTH : Phan Tien Hieu Trang : 46

Luan van tot nghiep

GVHD : Nguyen nh Phu

Dao ong nhp tren chip baud

12

Xung toc o

a. Che o 0

64
SMOD=0 Dao ong tren chip Xung nhp toc o baud

32
b. Che o 2

SMOD=1

Dao ong tren chip

32

SMOD=0 SMOD=1

noi tiep Mac nhien sau khi reset he thong, toc o baud che o 2 la tan so bo dao ong chia cho 64, toc o baud cung b anh hng bi 1 bit trong thanh ghi ieu khien nguon cung cap (PCON) bit 7 cua PCON la bit SMOD. at bit SMOD len 1 lam gap oi toc o baud trong cac che o 1, 2 va 3. Trong che o 2, toc o baud co the b gap oi t gia tr mac nhien cua 1/64 tan so dao ong (SMOD=0) en 1/32 tan so dao ong (SMOD=1) V PCON khong c nh a ch theo bit, nen e at bit SMOD len 1 can phai theo cac lenh sau: MOV A,PCON ; lay gia tr hien thi cua PCON SETB ACC.7 ; at bit SMOD len 1 MOV PCON,A ; ghi gia tr ngc ve PCON Cac toc o baud trong cac che g 1 va 3 c xac nh bang toc o tran cua timer 1. V timer hoat ong tan so tng oi cao, tran timer c chia them cho 32 (hoac 16 neu SMOD =1 ) trc khi cung cap toc o xung nhp cho port noi tiep. 3. To chc ngat trong 8051 Vi ieu Khien co 5 nguon ngat:2 nguon ngat ngoai,2 ngat timer va 1 ngat Port noi tiep, tat ca cac nguon ngat b cam sau khi reset he thong va cho phep bi phan mem 3.1.Cho Phep va Khong Cho Phep Ngat

c. Che o 1 va 3 Cac nguon tao xung nhp cho port

16

Xung nhp toc o baud

SVTH : Phan Tien Hieu Trang : 47

Luan van tot nghiep

GVHD : Nguyen nh Phu

Moi nguon ngat c cho phep hoac khong cho phep thong qua thanh ghi chc nang ac biet co cac bit c a ch hoa IE (Interrupt Enable) tai a ch 0A8H. BIT SYMBO BIT DESCRIPTION L ADDRESS (1:ENABLE,0:DISABLE) IE.7 EA AFH Global Enable/Disable IE.6 EA AEH Undefined IE.5 ET2 ADH Enable Timer 2 Interrupt IE.4 ES ACH (8052) IE.3 ET1 ABH Enable Serial Port Interrupt IE.2 EX1 AAH Enable Timer 1 Interrupt IE.1 ET0 A9H Enable External 1 Interrupt IE.0 EX0 A8H Enable Timer 0 Interrupt Enable External 0 Interrupt 3.2. VecT Ngat Khi ngat c chap nhan gia tr c a vao PC (Program Counter) goi la vector ngat (Interrupt Vector) INTERRUPT System Reset External 0 Timer 0 External 1 Timer 1 Serial Port Timer 2 FLAG RST IE0 TF0 IE1 TF1 RI OR TI TF2 OR EXF2 VECTOR ADDRESS 0000 H 0003 H 000B H 0013 H 001B H 0023 H 002B H

3.3. Ngat Port noi Tiep Ngat Port noi tiep xay ra khi ca 2 c ngat truyen (TI) hoac c ngat nhan (RI) c at. Ngat truyen xay ra khi bit cuoi cung trong SBUF truyen xong tc la luc nay thanh ghi SBUF rong .Ngat nhan xay ra khi SBUF a hoan thanh viec nhan va ang i e oc tc la luc nay thanh ghi SBUF ay. Ca hai c ngat nay c at bi phan cng va xoa bang phan mem. II. TOM TAT TAP LENH CUA 8951: - Cac chng trnh c cau tao t nhieu lenh, chung c xay dng logic, s noi tiep cua cac lenh c ngh ra mot cach hieu qua va nhanh, ket qua cua chng trnh kha quan. - Tap lenh ho MSC-51 c s kiem tra cua cac mode nh v va cac lenh cua chung co cac Opcode 8 bit. ieu

SVTH : Phan Tien Hieu Trang : 48

Luan van tot nghiep

GVHD : Nguyen nh Phu

nay cung cap kha nang 28= 256 lenh c thi hanh va mot lenh khong c nh ngha. Vai lenh co 1 hoac 2 byte bi d lieu hoac a ch them vao Opcode. Trong toan bo cac lenh co 139 lenh 1 byte, 92 lenh 2 byte va 24 lenh 3 byte. 1. Cac che o nh v a ch (addressing mode): - Cac mode nh v la mot bo phan thong nhat cua tap lenh. Chung cho phep nh ro nguon hoac ni gi ti cua d lieu cac ng khac nhau tuy thuoc vao trang thai cua ngi lap trnh. 8951 co 8 mode nh v c dung nh sau: Thanh ghi. Trc tiep. Gian tiep. Tc thi. Tng oi. Tuyet oi. Dai. nh v.

1.1 S nh v thanh ghi (Register Addressing): - Co 4 day thanh ghi 32 byte au tien cua RAM d lieu tren Chip a ch 00H 1FH, nhng tai mot thi iem ch co mot day hoat ong cac bit PSW3, PSW4 cua t trang thai chng trnh se quyet nh day nao hoat ong. - Cac lenh e nh v thanh ghi c ghi mat ma bang cach dung bit trong so thap nhat cua Opcode lenh e ch mot thanh ghi trong vung a c` theo logic nay. Nh vay 1 ma chc nang va a ch hoat ong co the c ket hp e tao thanh mot lenh ngan 1 byte nh sau:
Opcode n n n

Register Addressing. - Mot vai lenh dung cu the cho 1 thanh ghi nao o nh thanh ghi A, DPTR ma Opcode t no cho biet thanh ghi v cac bit a ch khong can biet en. 1.2 S nh a ch trc tiep (Direct Addressing):

SVTH : Phan Tien Hieu Trang : 49

Luan van tot nghiep

GVHD : Nguyen nh Phu

- S nh a ch trc tiep co the truy xuat bat ky gia tr nao tren Chip hoac thanh ghi phan cng tren Chip. Mot byte a ch trc tiep c a vao Opcode e nh ro v tr c dung nh sau:
Opcode

Direct Addressing

- Tuy thuoc cac bit bac cao cua a ch trc tiep ma mot trong 2 vung nh c chon. Khi bit 7 = 0, th a ch trc tiep trong khoang 0 127 (00H 7FH) va 128 v tr nh thap cua RAM tren Chip c chon. - Tat ca cac Port I/O, cac thanh ghi chc nang ac biet, thanh ghi ieu khien hoac thanh ghi trang thai bao gi cung c quy nh cac a ch trong khoang 128 255 (80 FFH). Khi byte a ch trc tiep nam trong gii han nay (ng vi bit 7 = 1) th thanh ghi chc nang ac biet c truy xuat. V du Port 0 va Port 1 c quy nh a ch trc tiep la 80H va 90H, P0, P1 da dang thc rut gon thuat nh cua Port, th s bien thien cho phep thay the va hieu dang thc rut gon thuat nh cua chung. Chan han lenh: MOV P1, A s bien dch se xac nh a ch trc tiep cua Port 1 la 90H at vao hai byte cua lenh (byte 1 cua port 0). 1.3 S Addressing): nh v a ch gian tiep (Indirect

- S nh a ch gian tiep c tng trng bi ky hieu @ c at trc R0, R1 hay DPTR. R0 va R1 co the hoat ong nh mot thanh ghi con tro ma noi dung cua no cho biet mot a ch trong RAM noi ni ma d lieu c ghi hoac c oc. Bit co trong so nho nhat cua Opcode lenh se xac nh R0 hay R1 c dung con tro Pointer.
Opcode i

1.4. S Addressing):

nh

ch

tc

thi

(Immediate

- S nh a ch tc thi c tng trng bi ky hieu # c ng trc mot hang so, 1 bien ky hieu hoac mot bieu thc so hoc c s dung bi cac hang, SVTH : Phan Tien Hieu

Trang : 50

Luan van tot nghiep

GVHD : Nguyen nh Phu

cac ky hieu, cac hoat ong do ngi ieu khien. Trnh bien dch tnh toan gia tr va thay the d lieu tc thi. Byte lenh them vo cha tr so d lieu tc thi nh sau:
Opcode

Immediate Data

1.5 S nh a ch tng oi: - S nh a ch tng oi ch s dung vi nhng lenh nhay nao o. Mot a ch tng oi (hoac Offset) la mot gia tr 8 bit ma no c cong vao bo em chng trnh PC e tao thanh a ch mot lenh tiep theo c thc thi. Pham vi cua s nhay nam trong khoang -128 127. Offset tng oi c gan vao lenh nh mot byte them vao nh sau:
Opcode

Relative Offset

- Nhng ni nhay en thng c ch ro bi cac nhan va trnh bien dch xac nh Offset Relative cho phu hp. - S nh v tng oi em lai thuan li cho viec cung cap ma v tr oc lap, nhng bat li la ch nhay ngan trong pham vi -128 127 byte. 1.6 S Addressing): nh a ch tuyet oi (Absolute

- S nh a ch tuyet oi c dung vi cac lenh ACALL va AJMP. Cac lenh 2 byte cho phep phan chia trong trang 2K ang lu hanh cua bo nh ma cua viec cung cap 11 bit thap e xac nh a ch trong trang 2K (A0 A10 gom A10 A8 trong Opcode va A7 A0 trong byte)va 5 bit cao e chon trang 2K (5 bit cao ang lu hanh trong bo em chng trnh la 5 bit Opcode).
Addr 10 Addr 8 Opcode

SVTH : Phan Tien Hieu 7 Addr 0 Addr Trang : 51

Luan van tot nghiep

GVHD : Nguyen nh Phu

- S nh v tuyet oi em lai thuan li cho cac lenh ngan (2 byte), nhng bat li trong viec gii han pham vi ni gi en va cung cap ma co v tr oc lap. 1.7 S nh v dai (Long Addressing) : - S nh v dai c dung vi lenh LCALL va LJMP. Cac lenh 3 byte nay bao gom mot a ch ni gi ti 16 bit ay u la 2 byte va 3 byte cua lenh.

SVTH : Phan Tien Hieu Trang : 52

Luan van tot nghiep

GVHD : Nguyen nh Phu

Opcode

Addr 15 Addr 8 Addr 7 Addr 0

- u iem cua s nh dai la vung nh ma 64K co the c dung het, nhc iem la cac lenh o dai 3 byte va v tr le thuoc. S phu thuoc vao v tr se bat li bi chng trnh khong the thc thi tai a ch khac. 1.8 S nh a ch phu luc (Index Addressing): - S nh a ch phu luc dung mot thanh ghi c ban (cung nh bo em chng trnh hoac bo em d lieu) va Offset (thanh ghi A) trong s hnh thanh 1 a ch lien quan bi lenh JMP hgac MOVC. Base Register
PC (or PDTR)

Offset
ACC

Effective Address

Index Address - Cac bang cua lenh nhay hoac cac bang tra c tao nen mot cach de dang bang cach dung a ch phu luc.

SVTH : Phan Tien Hieu Trang : 53

Luan van tot nghiep

GVHD : Nguyen nh Phu

PHAN B:

SVTH : Phan Tien Hieu Trang : 54

Luan van tot nghiep CHNG I:

GVHD : Nguyen nh Phu

TNH

GIAO TIEP GIA KIT 8151 VI MAY

I. PHAN CNG 1. Thiet ke card giao tiep gia 8951 va may vi tnh

S o Card Giao Tiep Va S o Mach In

SVTH : Phan Tien Hieu Trang : 55

Luan van tot nghiep

GVHD : Nguyen nh Phu

II. PHAN MEM 1. Gii thieu phan mem: Phan cng o la nhng g a co nh, no la mot co may, co may muon hoat ong th phai co cong nhan lanh nghe ieu khien no, vi cung mot co may nhng ngi cong nhan co tay nghe cao th san pham cang co chat lng. T o chung ta nhan thay rang, phan cng muon hoat ong c oi hoi phai co s can thiep cua con ngi ma chu yeu la thong qua phan mem ieu khien va s hoat ong mem deo cua phan cng lai phu thuoc vao trnh o ngi lap trnh. Nh vay, phan mem va phan cng tuy la hai bo phan hoat ong oc lap nhng hoat ong cua chung khong the tach ri nhau trong cung mot he thong, chung ho tr lan nhau e hnh thanh nen hoat ong cua he thong. Biet c tam quan trong cua phan mem, chung ta se van dung phan cfg e cac chng trnh phan mem phuc vu much ch cua chung ta. 2. Gii thieu ngon ng Assembly: Khi may tnh thc hien chng trnh, no oc mot day cac so nh phan ch gom toan cac so 0 va 1 vao bo nh, giai ma roi hien th. e cho de oc va de viet hn thng ta viet cac so nh phan di dang cac so thap luc phan c goi la chng trnh viet bang ngon ng may. Ta co the viet va thc hien mot chng trnh ngon ng may bang phan mem DEBUG, dung lenh E hay lenh A e nhap cac ma lenh vao bo nh, sau o co the dung lenh G hoac lenh P e thc hien chng trnh. Tuy chng trnh co the viet trc tiep bang ngon ng may, nhng neu trong chng trnh co mot loi nao o, hoac muon them hoac xoa mot ma lenh nao o co ia ch i kem nh jump, call, loop cung phai c tnh toan lai cho ung a ch, nen rat kho cho viec lap, sa va bao tr chng trnh. V vay thay v viet trc tiep bang ngon ng may, ngi lap trnh co the viet bang mot ngon ng di dang cac ky hieu hnh thc hoac cac t gi nh tng ng vi mot lenh cua CPU. ay chnh la Hp Ng (Assembly Language). Hp ng (Asseebly Language) la ngon ng lap trnh cap thap gan vi ngon ng may. Assembly la chng trnh dch cac chng trnh viet bang hp ng sang ma may. Cac chng trnh dch thong dung hien nay la Macro Assembler (MASM) cua hang phan mem noi tieng Microsoft va Turbo Assembler (TASM) cua hang Borland. Gia hai Chng

SVTH : Phan Tien Hieu Trang : 56

Luan van tot nghiep

GVHD : Nguyen nh Phu

trnh nay co s khac nhau oi chut, nhng ve cong dung th nh nhau va tng thch vi nhau. Hien nay chng trnh dch c nhieu ngi s dung nhat la Macro Assembler 5.0 va chng trnh giao tiep trong luan an nay cung s dung chng trnh dch nay.

SVTH : Phan Tien Hieu Trang : 57

Luan van tot nghiep

GVHD : Nguyen nh Phu

3. Lu o va chng trnh giao tiep Phan mem giao tiep trong may tnh s dung ngon ng Assembly tren c s s dung File.Hex va x ly tng ky t. Con phan mem giao tiep trong KIT c viet bang ngon ng cua 8951. X ly File File xuat ra ngoai c lu tr trong may di dang File.Hex. Cau truc moi dong cua File.Hex: : NNAAAARRHHHHHHHHHH . . . HHHCCTT Trong o : : Bat au dong NN So lng byte chng trnh trong dong AAAA a ch cua byte au tien RR Kieu Recort :00 , dong au tien 01 HH Cac byte chng trnh trong khuon mau Hex CC Tong kiem tra trong khuon mau Hex TT Ket thuc dong CR va LF Tong kiem tra c hnh thanh t tong cua tat ca cac byte t NN en byte cuoi cung cua chng trnh HH. CC = [0 ( Tong tat ca cac byte NN en HH )] va FFH
Nhng khi truyen ra ngoai th d lieu xuat ra di dang ma cua phm an, ma chng trnh nhan d lieu cua KIT th nhan d lieu vao di dang Hex. Do o, chng trnh truyen phai co oan x ly File e ben truyen va ben nhan thong nhat vi nhau.

VD: ta co File HIEU.HEX :10000000230039140C23FF39140C04BF13FEB26E6 :1000110022 FEEFAC1435F6E7ABAFBEAA34616E6 :0000001FF Sau khi x ly va truyen ra ngoai File.Hex co dang : :100000230039140C23FF39140C04BF13FEB26 :10001122FEEFAC1 435F6E7ABAFBEAA34616 :0000001FF
Trong File.Hex co ma bat au dong luon la 3A (:) , so ky t can truyen trong mot dong va a ch can lu tr d lieu. Do o, trong chng trinh nhan phai phan biet tat ca cac cau truc cua File.Hex e nhan d lieu va lu tr vao ung o nh.

SVTH : Phan Tien Hieu Trang : 58

Luan van tot nghiep


3.1. Giao tiep gia KIT vi KIT:

GVHD : Nguyen nh Phu

Lu o chng trnh nhan d lieu t KIT

Lu o chng trnh truyen d noi tiep lieu t KIT

Khi ong port

Nap a ch quan ly BEGIN vung data e truyen Khi ong port Truyen noi tiep data Nap a ch quan ly vung data Kiem tra bit TI sau khi e nhan truyen
TI = 0

Kiem tra bit RITI = 1 sau khi Xoa bit nhan TI RI = 0 Tang a ch quan ly RI=1 data truyen Xoa bit RI Nap bien em data truyen Nhan Giam bien data em
S

Tang a ch quan ly vung data nhan So sanh bien em vi FF Nap bien em data nhan Giam bien em

So sanh bien em vi FF SVTH : Phan Tien Hieu

Trang : 59

END

Luan van tot nghiep

GVHD : Nguyen nh Phu

SVTH : Phan Tien Hieu Trang : 60

Luan van tot nghiep

GVHD : Nguyen nh Phu

Chng trnh truyen d lieu t KIT org 5100h mov ie,#00h ; cam ngat mov tmod,#20h ; timer mode 2, 2400baud mov th1,#-13 setb tr1 mov scon,#0fch mov dptr,#6000h ; nap a ch quan ly vung ma x2: mov a,@dptr ; lay d lieu e truyen i mov sbuf,a ; gi d lieu len thanh ghi em x1: jnb ti,x1 ; kiem tra bit ti sau khi gi clr ti inc dptr mov a,dpl cjne a,#0ffh,x2 mov a,#76h ; nap ma ch H e bao ket thuc mov dptr,#0c000h movx @dptr,a sjmp $ Chng trnh nhan d lieu t KIT org 5100h mov ie,#00h ; cam ngat mov tmod,#20h ; timer mode 2, 2400baud mov th1,#-13 setb tr1 mov scon,#0fch mov dptr,#6000h ; nap a ch quan ly vung ma xr1: jnb ri,xr1 clr ri mov a,sbuf ; gi d lieu len thanh ghi em movx @dptr,a inc dptr mov a,dpl cjne a,#0ffh,xr1 mov a,#76h ; nap ma ch H e bao ket thuc mov dptr,#0c000h movx dptr,a sjmp $

SVTH : Phan Tien Hieu Trang : 61

Luan van tot nghiep

GVHD : Nguyen nh Phu

Lu o chng trnh truyen d lieu co gii han so byte va a ch quan ly data:


BEGIN

Khi tao giao tiep noi tiep Nap a ch quan ly vung data e truyen Lay d lieu t o nh nap vao thanh ghi lam bien em Lay a ch byte H nap vao thanh ghi R1 Lay a ch byte L nap vao thanh ghi R0 Gi bien em ra sbuf e truyen Kiem tra bit TI TI=0 TI=1 Xoa bit Gi byte a ch H ra sbuf e truyen Kiem tra bit TI TI=0 TI=1 Xoa bit

SVTH : Phan Tien Hieu Trang : 62

Luan van tot nghiep

GVHD : Nguyen nh Phu

Gi a ch byte L ra sbuf e truyen Kiem tra bit TI TI=0

TI=1 Xoa bit

Nap a ch byte H va L vao dptr Lay d lieu cha trong dptr e truyen Kiem tra bit TI TI=0 TI=1 Xoa bit Tang a ch quan ly dptr Giam bien em So sanh bien em vi 00H S Hien th ch E e bao ket thuc
END

SVTH : Phan Tien Hieu Trang : 63

Luan van tot nghiep

GVHD : Nguyen nh Phu

Lu o chng trnh nhan d lieu co gii han so byte va a ch quan ly data:


BEGIN

Khi tao giao tiep noi tiep Kiem tra bit RI RI=0 RI=1 Xoa bit Nhan d lieu va gi ra thanh ghi R6 lam bien Kiem tra bit RI RI=0 RI=1 Xoa bit Nhan d lieu va lu tr vao dph Kiem tra bit RI RI=0 RI=1 Xoa bit

SVTH : Phan Tien Hieu Trang : 64

Luan van tot nghiep

GVHD : Nguyen nh Phu

Nhan d lieu va lu tr vao dpl Kiem tra bit RI RI=0 RI=1 Xoa bit Nhan d lieu va lu tr vao o nh co cha trong dptr Tang dptr Giam bien em So sanh bien em vi 00H S Hien th ch E e bao ket thuc
END

SVTH : Phan Tien Hieu Trang : 65

Luan van tot nghiep

GVHD : Nguyen nh Phu

Chng trnh truyen d lieu co gii han so byte va a ch quan ly data


;vung nho 6000h chua bien dem se goi,6001H chua byte addr H , 6002H chua byte L pcon equ 87h org 4100h mov IE,#00h mov scon,#11011100b ;mode3, 2400baud mov tmod,#20h mov th1,#-13 setb tr1 ;start timer 1 mov dptr,#6000h ;nap dia chi quan li vung ma movx a,@dptr ;lay so luong byte se goi mov r6,a ;cat sang r6 inc dptr movx a,@dptr ;lay dia chi byte H quan li du lieu mov r1,a inc dptr movx a,@dptr ;lay dia chi byte L quan li du lieu mov r0,a x4: jb P1.1,x4 mov a,r6 mov sbuf,a ;goi so luong byte di truoc x5: jnb TI,x5 ;kiem tra Ti = 1 clr TI ;xoa TI de goi byte kex6: jb P1.1,x6 mov a,r1 mov sbuf,a ;goi dia chi byte cao x7: jnb TI,x7 clr TI x8: jb P1.1,x8 mov a,r6 mov sbuf,a ;goi dia chi byte thap x9: jnb TI,x9 clr TI mov dpl,r0 ;nap dia chi cho dptr mov dph,r1 x3: jb P1.1,x3 x2: movx a,@dptr ;lay du lieu de truyen di mov sbuf,a ;goi len thanh ghi dem x1: jnb TI,x1 ;kiem tra ti vi sau khi goi 1 byte thi ti=1 clr ti ;neu dung bang 1 thi xoa de goi tiep byte thu 2 inc dptr djnz r6,x3 ;giam bien dem di 1 mov dptr,#0c000h

SVTH : Phan Tien Hieu Trang : 66

Luan van tot nghiep


mov a,#79h movx @dptr,a sjmp $

GVHD : Nguyen nh Phu

Chng trnh nhan d lieu co gii han so byte va a ch quan ly data org 4100h mov IE,#00h setb p1.1 ;chua cho phep nhan mov scon,#11011100b ;khoi tao giao tiep noi tiep mov tmod,#20h ;khoi tao giao tiep noi tiep mov th1,#-13 ;khoi tao giao tiep noi tiep setb tr1 ;start timer 1 xr6: clr p1.1 ;cho phep truyen xr1: jnb ri,xr1 ;kiem tra xem co du lieu hay khong setb p1.1 clr ri ;xoa vi da co du lieu mov a,sbuf ;lay du lieu tu may phat goi toi cjne a,#0FFh$xr2 sjmp xr1 xr2: mov r6,a ;luu tru so byte nhan clr p1.1 ;cho phep truyen xr3: jnb ri,xr3 ;kiem tra xem co du lieu hay khong setb p1.1 clr ri ;xoa vi da co du lieu mov a,sbuf ;lay du lieu tu may phat goi toi mov dph,a clr p1.1 ;cho phep truyen xr5: jnb ri,xr5 ;kiem tra xem co du lieu hay khong setb p1.1 clr ri ;xoa vi da co du lieu mov a,sbuf ;lay du lieu tu may phat goi toi mov dpl,a xr4: clr p1.1 jnb ri,xr2 ;kiem tra xem co du lieu hay khong setb p1.1 clr ri ;xoa vi da co du lieu mov a,sbuf ;lay du lieu tu may phat goi toi movx @dptr,a ;cat du lieu inc dptr djnz r6,xr4 ;giam bien dem mov dptr,#0c000h mov a,#79h movx @dptr,a sjmp xr6 ;quay tro lai de nhan byte du lieu ke end

SVTH : Phan Tien Hieu Trang : 67

Luan van tot nghiep

GVHD : Nguyen nh Phu

3.2. Giao tiep gia KIT va may tnh: Lu o chng trnh nhan d lieu t may tnh: BEGIN

Khi tao giao tiep noi tiep Kiem tra bit RI RI=0 RI=1 Xoa bit Nhan data t sbuf vao R0 Kiem tra bit RI RI=0 RI=1 Xoa bit Nhan data t sbuf vao R1 lam bien em Kiem tra bit RI RI=0 RI=1 Xoa bit

SVTH : Phan Tien Hieu Trang : 68

Luan van tot nghiep

GVHD : Nguyen nh Phu

Nhan data t sbuf vao dph Kiem tra bit RI RI=0 RI=1 Xoa bit Nhan data t sbuf vao dpl Kiem tra bit RI RI=0 RI=1 Xoa bit Nhan data t sbuf vao thanh ghi A
Lay noi dung cua thanh ghi A gi vao

o nh co a ch cha Tang dptr Giam bien em va so sanh vi 00H S Nhay ve begin


END

SVTH : Phan Tien Hieu Trang : 69

Luan van tot nghiep

GVHD : Nguyen nh Phu

Chng trnh nhan d lieu t may tnh: org 5000h mov ie,#00h mov tmod,#20h mov th1,#-13 setb tr1 mov scon,#0fch xr1: jnb ri,xr1 ;nhan ma dau ':' clr ri mov r0,sbuf cjne r0,#3ah,xr1 xr2: jnb ri,xr2 ;nhan so byte can goi clr ri mov r1,sbuf xr3: jnb ri,xr3 clr ri mov dph,sbuf xr4: jnb ri,xr4 clr ri mov dpl,sbuf xr5: jnb ri,xr5 clr ri mov a,sbuf movx @dptr,a inc dptr djnz r1,xr5 sjmp xr1 end

SVTH : Phan Tien Hieu Trang : 70

Luan van tot nghiep

GVHD : Nguyen nh Phu

lu o chng trnh truyen d lieu t may tnh:

BEGIN

Khai bao cac bien Hien th Menu F6 F5 Kiem tra phm an F7 M File.Hex e truyen F8 Hien th File.Hex len man hnh
X ly File.Hex va truyen

at cach thc truyen


Hien th cach thiet lap truyen

END

SVTH : Phan Tien Hieu Trang : 71

Luan van tot nghiep

GVHD : Nguyen nh Phu

III. anh gia ket qua thi cong: Vi s phat trien en mc tien tien cua KHKT nh hien nay, ac biet la lnh vc ien t va vi tnh a lam tien e cho moi nganh khoa hoc khac de dang phat trien s phat trien vu bao o luon eo uoi hoai bao duy nhat phuc vu con ngi. Ket qua, moi ng dung trong cuoc song con ngi luon san sang tha hng nhng tinh hoa o, nham nang cao nang suat lao ong, nang cao cuoc song con ngi, khong ngng thuc ay xa hoi ve moi mat. e tiep can vi lnh vc t ong hoa, ac biet la lnh vc truyen d lieu nen em bat au nghien cu lnh vc nay va thc hien e tai :Giao Tiep Gia KIT Vi ieu Khien 8951 va May Vi Tnh vi nhng thanh qua nhat nh trong thi cong: _ Viet chng trnh giao tiep gia KIT Vi ieu Khien 8951 va May Vi Tnh. _ Thiet ke card giao tiep gia KIT Vi ieu Khien 8951 va May Vi Tnh thong qua port giao tiep noi tiep. Ngoai ra con co chng trnh truyen va nhan d lieu gia 2 KIT. Mac du a co gang nhieu van khong tranh c nhng thieu sot: cha hoan thanh c chng trnh truyen d lieu t KIT sang va chng trnh giao dien ieu khien con rat n gian. ay la lan au tien tien hanh thi cong vi chng trnh giao tiep kha phc tap, nen y muon hoan chnh en mc toi u nhng van cha at c. Tuy nhien, ket qua thi cong van at c nhng yeu cau nhat nh.

SVTH : Phan Tien Hieu Trang : 72

Luan van tot nghiep

GVHD : Nguyen nh Phu

KET LUAN
Qua 8 tuan tien hanh lam viec vi s no lc cua ban than va kien thc c trang b nha trng, cac kien thc thc te ma em hoc hoi c nh s giup cua cac thay co trong khoa ien cung vi s giup tan tnh cua thay: Nguyen nh Phu nen em a hoan thanh tap luan van nay ung thi gian quy nh va thu c nhng ket qua nhat nh: _ Thiet ke card giao tiep gia may tnh va Vi ieu Khien. _ Viet chng trnh cho Vi ieu Khien va may tnh e giao tiep gia hai he thong. ay la lan au tien thc hien e tai vi quy mo rong, nhng do thi gian, kien thc va kinh nghiem con nhieu han che nen em nhan thay rang tap luan van nay cha ap ng ay u nhu cau e tai ra Do o, em mong rang vi s thieu sot tren, em se nhan c s thong cam va ch dan them cua quy thay co trong khoa ien cung giao vien hng dan. Em xin chan thanh cam n s giup tan tnh va quy bao cua cac thay co a tao ieu kien cho em hoan thanh tot nhiem vu c giao ung thi gian quy nh. Em rat mong s ong gop y kien cua quy thay co cung cac ban sinh vien e tap luan van c hoan hao hn. HNG PHAT TRIEN E TAI Ngay nay vi s phat trien nhanh chong cua khoa hoc ky that va at nc ta ang chuyen mnh sang nen san xuat cong nghiep. Do o, e ap ng vi nhu cau thc te th chung ta can phai nghien cu them cac loai giao dien noi tiep khac e tang them c khoang cach va toc o truyen. Ngoai ra, con co the da tren tap luan an nay e viet them nhieu chng trnh khac co the ng dung trong thc te va cai tien lai chng trnh nay e tien li cho ngi s dung

SVTH : Phan Tien Hieu Trang : 73

Luan van tot nghiep

GVHD : Nguyen nh Phu

TAI LIEU THAM KHAO


1. O LNG VA IEU KHIEN BANG MAY VI TNH

Ngo Dien Tap _ NXB KHKT Ha Noi _ 1996


2. IEU KHIEN VA GHEP NOI CAC THIET B NGOAI VI

Tran Ba Thai _ NXB KHKT Ha Noi _ 1984


3. KY THUAT GHEP NOI MAY VI TNH

Nguyen Manh Giang _ NXB GD Ha Noi _1997


4. GIAO TRNH HP NG

ai Hoc M Ban Cong TPHCM _ 1995


5. TRUYEN D LIEU

Tong Van On _ H KY THUAT TPHCM _ 1999


6. VI X LY TRONG O LNG VA IEU KHIEN

Ngo Dien Tap _ NXB KHKT Ha Noi _ 1996


7. KY THUAT VI X LY

Van The Minh _ NXB GD _ 1997


8. ASSEMBLY LANGUAGE TOOLS and TECHNIQUES FOR THE IPM MICROCOMPUTERS

Julio Sanches _ Prentice Hall _ 1990


9. MICROCOMPUTER INTERFACING

Bruce A.Artwick _ Prentice Hall _ 1980


10. THE 8051 MICROCONTROLLER

I.Scott Mackenzic

SVTH : Phan Tien Hieu Trang : 74

Luan van tot nghiep

GVHD : Nguyen nh Phu

PHAN C:

SVTH : Phan Tien Hieu Trang : 75

Luan van tot nghiep


I.

GVHD : Nguyen nh Phu

TOM TAT TAP LENH CUA VXL 8051 8951 8952:


Instruction code

Data Transfer Instructions.

Mnemonic MOV A, Rn MOV A, direct

MOV A, @Ri MOV A, #data

MOV Rn, A MOV Rn, direct

MOV Rn, #data MOV direct, A

MOV direct, Rn

MOV direct, direct

MOV direct, @Ri MOV direct, #data

D7 D6 D5 D4 D0 1 1 1 0 n0 1 1 1 0 1 a7 a6 a5 a4 a0 1 1 1 0 I 0 1 1 1 0 d7 d6 d5 d4 d0 1 1 1 1 n0 1 0 1 0 n0 a7 a6 a5 a4 a0 0 1 1 1 n0 d7 d6 d5 d4 d0 1 1 1 1 1 a7 a6 a5 a4 a0 1 0 0 0 n0 a7 a6 a5 a4 a0 1 0 0 0 1 a7 a6 a5 a4 a0 a7 a6 a5 a4 a0 1 0 0 0 I a7 a6 a5 a4 a0 0 1 1 1 1

D3 D2 D1 1 n2 n1 0 1 0

Hexa Expdanation decima l E8 (A) (Rn) EF E5 (A) (direct) Byte 2 E6 E7 74 Byte 2 F8 FF A8 AF Byte 2 78 7F Byte 2 F5 Byte 2 88 8F Byte 2 88 8F Byte 2 Byte 3 86 87 Byte 2 75 Byte 2 (A) ((Ri)) (A) #data

a3 a2 a1 0 1 1 0 1 0 d3 d2 d1 1 n2 n1 1 n2 n1 a3 a2 a1 1 n2 n1 d3 d2 d1 0 1 0 (Rn) (A) (Rn) (direct)

(Rn) #data

(direct) (A)

a3 a2 a1 1 n2 n1 a3 a2 a1 0 1 0 a3 a2 a1 a3 a2 a1 0 1 1 a3 a2 a1 0 1 0 (direct) (Rn)

(direct) (direct) (source) (destination)

(direct) ((Ri))

(direct) #data

SVTH : Phan Tien Hieu Trang : 76

Luan van tot nghiep


a7 a6 a5 a4 a3 a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 1 1 1 1 0 1 1 I 1 0 1 0 0 1 1 I a7 a6 a5 a4 a3 a2 a1 a0 0 1 1 1 0 1 1 i d7 d6 d5 d4 d3 d2 d1 d0 1 0 0 1 0 0 0 0 d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 i 1 1 1 0 0 0 0 0 1 1 1 1 0 0 1 i 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 a7 a6 a5 a4 a3 a2 a1 a0 1 1 0 1 0 0 0 0 a7 a6 a5 a4 a3 a2 a1 a0 1 1 0 0 1 n2 n1 n0 1 1 0 0 0 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 1 1 0 0 0 1 1 i

GVHD : Nguyen nh Phu Bqte 3

MOV @Ri, A MOV @Ri, direct MOV @Ri, #data MOV dptr, #data 16

F6 F7 A6 A7 Byte 2 76 77 Byte 2 75 Byte 2 Byte 3

((Ri)) (A) ((Ri)) (direct)

((Ri)) (data)

(dptr) #data 15-0 (dpH) #data 15-8 (dpL) #data 7-0

MOVC A, @A + dptr MOVC A, @A + PC MOVX A, @Ri MOVX A, @ dptr MOVX @Ri, A MOVX @ dptr, A PUSH direct

93 83 E2 E3 93 F2 F3 F0 C0 Byte 2 D0 Byte 2 C8 CF C5 Byte 2 C6 C7

(A) ((A) + (dptr)) External Ram (A) ((A) + (PC)) External Ram (A)((Ri)) External Ram (A)((dptr)) External Ram ((Ri)) (A) ((dptr)) (A) (SP) (SP) + 1 ((SP)) (direct) (direct) ((SP)) (SP) (SP) 1 (direct) (Rn) (A) (direct)

POP direct

XCH A, Rn XCH A, direct

XCH A, @Ri

(A) ((Ri))

SVTH : Phan Tien Hieu Trang : 77

Luan van tot nghiep


XCHD A, @Ri 1 1 0 1 0 i 1 1

GVHD : Nguyen nh Phu D6 D7 (A3-0) ((Ri3-0))

SVTH : Phan Tien Hieu Trang : 78

Luan van tot nghiep


Instruction code

GVHD : Nguyen nh Phu

Mathematical (Arithmetic) Instructions.


Mnemonic ADD A, Rn ADD A, direct D7 D6 D5 D4 D0 0 0 1 0 n0 0 0 1 0 1 a7 a6 a5 a4 a0 0 0 1 0 I 0 0 1 0 0 d7 d6 d5 d4 d0 0 0 1 1 n0 0 0 1 1 1 a7 a6 a5 a4 a0 0 0 1 1 I 0 0 1 1 0 d7 d6 d5 d4 d0 1 0 0 1 n0 1 0 0 1 1 a7 a6 a5 a4 a0 1 0 0 1 I 1 0 0 1 0 d7 d6 d5 d4 d0 0 0 0 0 0 0 0 0 0 n0 0 0 0 0 1 a7 a6 a5 a4 a0 D3 D2 D1 1 n2 n1 0 1 0 Hexa Explanation decima l 28 (A) (A) + (Rn) 2F 25 (A) (A) + (direct) Byte 2 26 27 24 Byte 2 38 3F 35 Byte 2 36 37 34 Byte 2 98 9F 95 Byte 2 96 97 94 Byte 2 04 08 0F 05 Byte 2 (A) (A) + ((Ri)) (A) (A) + #data

a3 a2 a1 0 1 1 0 1 0 d3 d2 d1 1 n2 n1 0 1 0 (A) (A) + (Rn) + (C) (A) (A) + (direct) + (C)

ADD A, @Ri ADD A, #data

ADDC A, Rn ADDC A, direct

a3 a2 a1 0 1 1 0 1 0 d3 d2 d1 1 n2 n1 0 1 0 (A) (A) - (Rn) - (C) (A) (A) - (direct) - (C) (A) (A) + ((Ri)) + (C) (A) (A) + #data +(C)

ADDC A, @Ri ADDC A, #data SUBB A, Rn SUBB A, direct

a3 a2 a1 0 1 1 0 1 0 d3 d2 d1 0 1 0 1 n2 n1 0 1 0 a3 a2 a1 (A) (A) + 1 (Rn) (Rn) + 1 (direct) (direct) + 1 (A) (A) - ((Ri)) - (C) (A) (A) - #data -(C)

SUBB A, @Ri SUBB A, #data

INC A INC Rn INC direct

SVTH : Phan Tien Hieu Trang : 79

Luan van tot nghiep


INC @Ri INC dptr DEC A DEC Rn DEC direct 0 0 0 0 I 1 0 1 0 1 0 0 0 1 0 0 0 0 1 n0 0 0 0 1 1 a7 a6 a5 a4 a0 0 0 0 1 I 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 n2 n1 0 1 0 a3 a2 a1 0 1 1 0 1 0 0 1 0 0 1 0

GVHD : Nguyen nh Phu 06 07 A3 14 18 1F 15 Byte 2 16 17 A4 84 D4 ((Ri)) ((Ri)) + 1 (dptr) (dptr) + 1 (A) (A) - 1 (Rn) (Rn) - 1 (direct) (direct) - 1

DEC @Ri MUL AB DIV AB DA A

((Ri)) ((Ri)) - 1 (B15-8),(A7-0) (A) (B) (A15-8),(B7-0) (A)/(B) Content of A la BCD

SVTH : Phan Tien Hieu Trang : 80

Luan van tot nghiep


Logic Instructions.
Instruction code

GVHD : Nguyen nh Phu

Mnemonic ANL A, Rn ANL A, direct

ANL A, @Ri ANL A, #data

ANL direct, A

ANL direct, #data

ORL A, Rn ORL A, direct

ORL A, @Ri ORL A, #data

ORL direct, A

ORL direct, #data

XRL A, Rn

D7 D6 D5 D4 D0 0 1 0 1 n0 0 1 0 1 1 a7 a6 a5 a4 a0 0 1 0 1 I 0 1 0 1 0 d7 d6 d5 d4 d0 0 1 0 1 0 a7 a6 a5 a4 a0 0 1 0 1 1 a7 a6 a5 a4 a0 d7 d6 d5 d4 d0 0 1 0 0 n0 0 1 0 0 1 a7 a6 a5 a4 a0 0 1 0 0 I 0 1 0 0 0 d7 d6 d5 d4 d0 0 1 0 0 0 a7 a6 a5 a4 a0 0 1 0 0 1 a7 a6 a5 a4 a0 d7 d6 d5 d4 d0 0 1 1 0

D3 D2 D1 1 n2 n1 0 1 0

Hexa Explanation decima l 58 (A) (A) AND (Rn) 5F 55 (A) (A) AND (direct) Byte 2 56 57 54 Byte 2 52 Byte 2 53 Byte 2 Byte 3 (A) (A) AND ((Ri)) (A) (A) AND #data

a3 a2 a1 0 1 1 0 1 0 d3 d2 d1 0 0 1 (direct)(direct) and (A)

a3 a2 a1 0 0 1 (direct)(direct) and #data

a3 a2 a1 d3 d2 d1 1 n2 n1 0 1 0

48 4F 45 Byte 2 46 47 44 Byte 2 42 Byte 2 43 Byte 2 Byte 3

(A) (A) OR (Rn) (A) (A) OR (direct)

a3 a2 a1 0 1 1 0 1 0 d3 d2 d1 0 0 1 (direct)(direct) OR (A) (A) (A) OR ((Ri)) (A) (A) OR #data

a3 a2 a1 0 0 1 (direct)(direct) OR #data

a3 a2 a1 d3 d2 d1 1 n2 n1

68

(A) (A) XOR (Rn)

SVTH : Phan Tien Hieu Trang : 81

Luan van tot nghiep


XRL A, direct 0 1 1 a7 a6 a5 XRL A, @Ri XRL A, #data 0 1 1 0 1 1 d7 d6 d5 XRL direct, A 0 1 1 a7 a6 a5 XRL direct, #data 0 1 1 a7 a6 a5 d7 d6 d5 CLR A CPL A RL A RLC A RR A
RRC A

GVHD : Nguyen nh Phu 6F 65 Byte 2 66 67 64 Byte 2 62 Byte 2 63 Byte 2 Byte 3

1 1 1 1 1 1 0 0 1

n0 0 1 a4 a0 0 I 0 0 d4 d0 0 0 a4 a0 0 1 a4 a0 d4 d0 0 0 1 0 0 1

1 0

(A) (A) XOR (direct)

a3 a2 a1 0 1 1 0 1 0 d3 d2 d1 0 0 1 (direct)(direct) XOR (A) (A) (A) XOR ((Ri)) (A) (A) XOR #data

a3 a2 a1 0 0 1 (direct)(direct) XOR #data

a3 a2 a1 d3 d2 d1 0 1 0 0 1 0 0 0 1

E4 F4 23 33 03
13

(A) 0 (A) (A) The contents of the accumulator are rotated left by one bit. The contents of the accueulator and carry are rotated left by one bit. The contents of the accumulator are rotated right by one bit.
The contents of the accumulator and carry are rotated right by one bit.

0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1
0 0 0 1 0 0 1 1

SWAP A

1 1 0 0 0 0

1 0

C4

(A3-0) (A7-4)

SVTH : Phan Tien Hieu Trang : 82

Luan van tot nghiep


Control Transfer Instructions.
Mnemonic ACALL addr 11
Instruction code

GVHD : Nguyen nh Phu

LCALL addr 16

RET

RETI

AJMP addr 11

LJMP addr 16

SJMP rel JMP @A + dptr JZ rel

JNZ rel

JC rel

JNC rel

Hexa Explanation decima l A10 a9 a8 1 0 0 0 Byte 1 (PC) (PC) + 2 1 Byte 2 (SP) (SP) + 1 a7 a6 a5 a4 a3 a2 a1 ((SP)) (PC7-0) a0 (SP) (SP) + 1 ((SP)) (PC15-8) (PC) page address 0 0 0 1 0 0 1 0 12 (PC) (PC) + 3 a15 a14 a13 a12 a11 a10 a9 Byte 2 (SP) (SP) + 1 a8 Byte 3 ((SP)) (PC7-0) a7 a6 a5 a4 a3 a2 a1 (SP) (SP) + 1 a0 ((SP)) (PC15-8) (PC) addr15-0 0 0 1 0 0 0 1 0 22 (PC15-8) ((SP)) (SP) (SP) - 1 (PC7-0) ((SP)) (SP) (SP) - 1 0 0 1 1 0 0 1 0 32 (PC15-8) ((SP)) (SP) (SP) - 1 (PC7-0) ((SP)) (SP) (SP) - 1 a10 a9 a8 0 0 0 0 Byte 1 (PC) (PC) + 2 1 Byte 2 (PC) page address a7 a6 a5 a4 a3 a2 a1 a0 0 0 0 0 0 0 1 0 02 (PC) addr15-0 a15 a14 a13 a12 a11 a10 a9 Byte 2 a8 Byte 3 a7 a6 a5 a4 a3 a2 a1 a0 1 0 0 0 0 0 0 0 80 (PC) (PC) + 2 r7 r6 r5 r4 r3 r2 r1 Byte 2 (PC) (PC) + rel r0 0 1 1 1 0 0 1 1 73 (PC) (A) + (dptr) 0 1 1 0 0 0 0 0 60 (PC) (PC) + 2 r7 r6 r5 r4 r3 r2 r1 Byte 2 IF (A) = 0 then (PC)(PC) + r0 rel 0 1 1 1 0 0 0 0 70 (PC) (PC) + 2 r7 r6 r5 r4 r3 r2 r1 Byte 2 IF (A) 0 then (PC)(PC) + r0 rel 0 1 0 0 0 0 0 0 40 (PC) (PC) + 2 r7 r6 r5 r4 r3 r2 r1 Byte 2 IF (C) = 0 then (PC)(PC) + r0 rel 0 1 0 1 0 0 0 0 50 (PC) (PC) + 2 D7 D6 D5 D4 D3 D2 D1 D0

SVTH : Phan Tien Hieu Trang : 83

Luan van tot nghiep


r7 r6 r5 r4 r3 r2 r1 r0 0 0 1 0 0 0 0 0 b7 b6 b5 b4 b3 b2 b1 b0 r7 r6 r5 r4 r3 r2 r1 r0 0 0 1 1 0 0 0 0 b7 b6 b5 b4 b3 b2 b1 b0 r7 r6 r5 r4 r3 r2 r1 r0 0 0 0 1 0 0 0 0 b7 b6 b5 b4 b3 b2 b1 b0 r7 r6 r5 r4 r3 r2 r1 r0 1 0 1 1 0 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 r7 r6 r5 r4 r3 r2 r1 r0

GVHD : Nguyen nh Phu Byte 2 20 Byte 2 Byte 3 30 Byte 2 Byte 3 10 Byte 2 Byte 3 B5 Byte 2 Byte 3 IF (C) 0 then (PC)(PC) + rel (PC) (PC) + 3 IF (bit)=0 then (PC)(PC) + rel (PC) (PC) + 3 IF (bit) 0 then (PC)(PC) + rel (PC) (PC) + 3 IF (bit)= 0 then (bit) 0 (PC)(PC) + rel (PC) (PC) + 3 IF (direct) < (A) then (C)0 and (PC)(PC) + rel IF (direct) > (A) then (C)1 and (PC)(PC) + rel (PC) (PC) + 3 IF #data < (A) then (C)0 and (PC)(PC) + rel IF #data > (A) then (C)1 and (PC)(PC) + rel (PC) (PC) + 3 IF #data < (Rn) then (C)0 and (PC)(PC) + rel AF #data > (Rn) then (C)1 and (PC)(PC) + rel (PC) (PC) + 3 IF #data <((Ri)) then (C)0 and (PC)(PC) + rel IF #data >((Ri)) then (C)1 and (PC)(PC) + rel (PC) (PC) + 2 (Rn) (Rn) 1

JB bit, rel

JNB bit, rel

JBC bit, rel

CJNE A, direct, rel

CJNE A, #data, rel

1 0 1 1 0 1 0 0 d7 d6 d5 d4 d3 d2 d1 d0 r7 r6 r5 r4 r3 r2 r1 r0

B4 Byte 2 Byte 3

CJNE Rn,#data, rel

1 0 1 1 0 n 2 n1 n0 d7 d6 d5 d4 d3 d2 d1 d0 r7 r6 r5 r4 r3 r2 r1 r0 1 0 1 1 0 1 1 0 d7 d6 d5 d4 d3 d2 d1 d0 r7 r6 r5 r4 r3 r2 r1 r0

B8 BF Byte 2 Byte 3

CJNE @Ri,#data, rel

B6 B7 Byte 2 Byte 3

DJNZ Rn, rel

1 1 0 1 1 n0

n2 n1

D8 DF

SVTH : Phan Tien Hieu Trang : 84

Luan van tot nghiep


r7 r6 r5 r4 r3 r2 r1 r0 1 1 0 1 0 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 r7 r6 r5 r4 r3 r2 r1 r0 0 0 0 0 0 0 0 0

GVHD : Nguyen nh Phu Byte 2 D5 Byte 2 Byte 3 IF ((Ri)) 0 then (PC)(PC) + rel (PC) (PC) + 3 (direct) (direct) 1 IF (direct) 0 then (PC)(PC) + rel (PC) (PC) + 1

DJNZ direct, rel

NOP

00

SVTH : Phan Tien Hieu Trang : 85

Luan van tot nghiep


Bit Oriented Instructions.
Instruction code

GVHD : Nguyen nh Phu

Mnemonic CLR C CLR bit SETB C SETB bit CPL C CPL bit AND C,bit ANL C,/bit ORL C,bit ORL C,/bit MOV C,bit MOV bit,C

D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 b7 b6 b5 b4 b3 b2 b1 b0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 b7 b6 b5 b4 b3 b2 b1 b0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 b7 b6 b5 b4 b3 b2 b1 b0 1 0 0 0 0 0 1 0 b7 b6 b5 b4 b3 b2 b1 b0 1 0 1 1 0 0 0 0 b7 b6 b5 b4 b3 b2 b1 b0 0 1 1 1 0 0 1 0 b7 b6 b5 b4 b3 b2 b1 b0 1 0 1 0 0 0 0 0 b7 b6 b5 b4 b3 b2 b1 b0 1 0 1 0 0 0 1 0 b7 b6 b5 b4 b3 b2 b1 b0 1 0 0 1 0 0 1 0 b7 b6 b5 b4 b3 b2 b1 b0

Hexa Explanation decima l C3 (C) 0 C2 (bit) 0 Byte 2 D3 D2 Byte 2 B3 B2 Byte 2 82 Byte 2 B0 Byte 2 72 Byte 2 A0 Byte 2 A2 Byte 2 92 Byte 2 (C) 1 (bit) 1 (C) (C) (bit) (bit) (C) (C) AND (bit)

(bit) (C) AND (bit) (C) (C) OR (bit)

(bit) (C) OR (bit) (C) (bit) (bit) (C)

SVTH : Phan Tien Hieu Trang : 86

Luan van tot nghiep

GVHD : Nguyen nh Phu

II. CHNG TRNH TRUYEN D LIEU T 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 '<F5> to redisplay this MENU',0dh,0ah db '<F6> to set communications protocol',0dh,0ah db '<F7> to display protocol installed',0dh,0ah db '<F8> to open file.hex and trasnmit',0dh,0ah db '<F10> 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% Par% Stop% Word% Baud$$ Par$$ db db db db db db db db db '* Installed communications protocol',0dh,0ah 'Baud rate:' '2400',0dh,0ah 'Parity:' 'Even',0dh,0ah 'Stop bit:' '1',0dh,0ah 'Word length:' '8',0dh,0ah,0ah,'$' '110 150 300 600 1200 2400 4800 9600' 'odd noneven'

SVTH : Phan Tien Hieu Trang : 87

Luan van tot nghiep


baud_menu db db 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

GVHD : Nguyen nh Phu

db 0dh,0ah,'**New communication parameter' 'rs input **',0dh,0ah 'baud rate:',0dh,0ah '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 bat',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 ;imput pointer data_out dw 0 ;output pointer data ends ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx CODE xxxxxxxxxxxxxxxxxx

SVTH : Phan Tien Hieu Trang : 88

Luan van tot nghiep

GVHD : Nguyen nh Phu

code segment assume CS:code start: 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

SVTH : Phan Tien Hieu Trang : 89

Luan van tot nghiep

GVHD : Nguyen nh Phu

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:

SVTH : Phan Tien Hieu Trang : 90

Luan van tot nghiep


call mov mov mov mov mov int comm_off ah,37 al,int_num dx,o_int_off ax,o_int_seg ds,ax 21h

GVHD : Nguyen nh Phu

;exit

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: cald 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

SVTH : Phan Tien Hieu Trang : 91

Luan van tot nghiep

GVHD : Nguyen nh Phu

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:

SVTH : Phan Tien Hieu Trang : 92

Luan van tot nghiep

GVHD : Nguyen nh Phu

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

SVTH : Phan Tien Hieu Trang : 93

Luan van tot nghiep

GVHD : Nguyen nh Phu

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

SVTH : Phan Tien Hieu Trang : 94

Luan van tot nghiep


;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

GVHD : Nguyen nh Phu

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

SVTH : Phan Tien Hieu Trang : 95

Luan van tot nghiep


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

GVHD : Nguyen nh Phu

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

SVTH : Phan Tien Hieu Trang : 96

Luan van tot nghiep

GVHD : Nguyen nh Phu

add di,bp mov byte ptr[di],al inc bx cmp bx,20 jne ok_in_ptr mov bx,0 ok_in_ptr: mov data_in,bx mov al,20h out 20h,al jmp short $+2 pop ds pop di pop dx pop bx pop ax iret ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxtr an_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:

SVTH : Phan Tien Hieu Trang : 97

Luan van tot nghiep

GVHD : Nguyen nh Phu

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

SVTH : Phan Tien Hieu Trang : 98

Luan van tot nghiep

GVHD : Nguyen nh Phu

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 ;ham mo file mov al,0 ;chi doc int 21h ret open endp read proc near push cx mov ah,3fh ;ham mo file mov cx,512 ;chi doc int 21h pop cx ret read endp display proc near push bx mov ah,40h ;ham ghi file mov bx,1 ;the file cho man hinh int 21h ;dong file pop bx ret display endp close proc near mov ah,3eh ;ham dong file int 21h ;dong file ret close endp edelay push push mov edel2: proc near ax bx ax,0fh mov bx,0ffffh

SVTH : Phan Tien Hieu Trang : 99

Luan van tot nghiep


edel1: jnz dec jnz pop pop ret edelay dec bx edel1 ax edel2 bx ax endp

GVHD : Nguyen nh Phu

;+++++++++++++++++++++++++++++++++++++++++ +++ 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

SVTH : Phan Tien Hieu Trang : 100

Luan van tot nghiep


call inc inc goi_ht di si

GVHD : Nguyen nh Phu

;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] sub al,30h call so_lon mov cl,4 rol al,cl mov ah,al inc di mov al,[di] sub al,30h call so_lon or al,ah ;or 2 mov [si],al call goi_ht inc di inc si mov al,[di] sub al,30h call so_lon mov cl,4 rol al,cl mov ah,al inc di

;lay byte ADDR_L-MSD ;tru di 30 de thanh so hex ;kiem tra so ABCDEF

;lay byte ADDR_L-LSD ;tru di 30 de thanh so hex ;kiem tra so ABCDEF data lai thanh 1 byte ;cat so HEX ADDR_H

;lay byte ADDR_H-MSD ;tru di 30 de thanh so hex ;kiem tra so ABCDEF

SVTH : Phan Tien Hieu Trang : 101

Luan van tot nghiep


mov sub call or mov call al,[di] al,30h so_lon al,ah [si],al goi_ht

GVHD : Nguyen nh Phu

;lay byte ADDR_H-LSD ;tru di 30 de thanh so hex ;kiem tra so ABCDEF ;or 2 data lai thanh 1 byte ;cat so byte can goi dang HEX

;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] ;laq 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 di ;neu dung thi kiem tra byte 0 thu 3

SVTH : Phan Tien Hieu Trang : 102

Luan van tot nghiep


mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,30h jnz kt_exit inc di mov al,[di] cmp al,31h jnz kt_exit inc di mov al,[di] cmp al,46h jnz kt_exit inc di mov al,[di] cmp al,46h jnz kt_exit mov ax,0 pop di ret kt_exit: mov ax,1111h pop di ret ktra_end endp ;lay byte data

GVHD : Nguyen nh Phu

;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

;nap data sao cho khac khong la 1

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

SVTH : Phan Tien Hieu Trang : 103

Luan van tot nghiep


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

GVHD : Nguyen nh Phu

SVTH : Phan Tien Hieu Trang : 104

You might also like