Professional Documents
Culture Documents
4 x 10uF/25v
Ngöôøi bieân soaïn: Tröông Ngoïc Anh – Khoa Ñieän töû – Boä moân Ñieän töû Coâng nghieäp 1
Baûng: Thanh ghi ñieàu khieån coång noái tieáp SCON (ñònh ñòa chæ).
Bit Name Bit Address Explanation of Function
7 SM0 9Fh Xaùc ñònh cheá ñoä laøm vieäc : Bit 0
6 SM1 9Eh Xaùc ñònh cheá ñoä laøm vieäc : Bit 1
5 SM2 9Dh Cho pheùp truyeàn thoâng ña xöû lyù (SM2 = 0)
4 REN 9Ch Baät/xoaù baèng phaàn meàm ñeå cho pheùp/khoâng cho pheùp thu
3 TB8 9Bh Bit thöù 9 trong mode 2 vaø 3 – Khi truyeàn.
2 RB8 9Ah Bit thöù 9 trong mode 2 vaø 3 – Khi nhaän.
Côø ngaét truyeàn. Ñaët leân 1 baèng phaàn cöùng khi keát thuùc truyeàn kyù töï;
1 TI 99h
ñöôïc xoaù baèng phaàn meàm.
Côø ngaét thu. Ñaët leân 1 baèng phaàn cöùng khi keát thuùc nhaän kyù töï;
0 RI 98h
ñöôïc xoaù baèng phaàn meàm.
Baûng: Caùc cheá ñoä hoaït ñoäng cuûa coång noái tieáp.
Ngöôøi bieân soaïn: Tröông Ngoïc Anh – Khoa Ñieän töû – Boä moân Ñieän töû Coâng nghieäp 2
Baûng maõ ASCII (American Standard Code for Infornation Interchange)
1. Chöông trình truyeàn noái tieáp lieân tuïc moät kyù töï “A” vôùi toác ñoä 4800 baud.
MOV TMOD,#20H ;Timer 1, mode 2
MOV SCON,#50H ;cheá ñoä 1, UART 8 bit, REN = 1
MOV TH1,#-3 ; 9600 baud
SETB TR1
Ngöôøi bieân soaïn: Tröông Ngoïc Anh – Khoa Ñieän töû – Boä moân Ñieän töû Coâng nghieäp 3
2. Chöông trình nhaän kyù töï noái tieáp:
MOV TMOD,#20H ;Timer 1, mode 2
MOV SCON,#50H ;cheá ñoä 1, UART 8 bit, REN = 1
MOV TH1,#-3 ; 9600 baud
SETB TR1
Ngöôøi bieân soaïn: Tröông Ngoïc Anh – Khoa Ñieän töû – Boä moân Ñieän töû Coâng nghieäp 4
II. THANH GHI ÑIEÀU KHIEÅN PORT NOÁI TIEÁP (SERIAL PORT CONTROL REGISTER) :
IV. QUAÙ TRÌNH KHÔÛI ÑOÄNG VAØ TRUY XUAÁT CAÙC THANH GHI CUÛA PORT NOÁI TIEÁP :
1. Cho pheùp boä thu (Receive Enable) :
SETB REN hoaëc MOV SCON, # XXX1XXXXB
2. Côø ngaét :
Côø ngaét thu RI vaø phaùt TI trong thanh ghi SCON vaän haønh 1 rôle quan troïng trong söï truyeàn noái tieáp 8951. Caû
hai bit ñeàu ñöôïc set bôûi phaàn cöùng nhöng phaûi xoùa bôûi phaàn meàm.
Ñieån hình laø RI ñöôïc set ôû cuoái söï thu kyù töï vaø cho bieát :thanh ghi ñeäm thu ñaõ ñaày”. Ñieàu kieän naøy coù theå
kieåm tra trong phaàn meàm hoaëc coù theå ñöôïc laäp trình ñeå sinh ra söï ngaét. Neáu phaàn meàm muoán nhaäp moät kyù töï töø moät
thieát bò ñaõ ñöôïc keát noái ñeán Port noái tieáp, thì noù phaûi chôø ñeán khi RI ñöôïc set, sau khi xoùa RI vaø ñoïc kyù töï töø SBUF.
Ñieàu naøy ñöôïc laäp trình nhö sau :
WAIT :
JNB RI, WAIT : Kieåm tra RI coù set chöa.
CLR RI : Xoùa côø ngaét thu RI
MOV A, SBUF : CPU ñoïc kyù töï
TI ñöôïc set ôû cuoái söï phaùt kyù töï vaø cho bieát “thanh ghi ñeäm cuûa söï phaùt ñaõ roãng”. Neáu phaàn meàm muoán gôûi 1
kyù töï ñeán moät thieát bò ñaõ ñöôïc keát noái ñeán Port noái tieáp, tröôùc tieân noù phaûi kieåm tra xem Port noái tieáp ñaõ saün saøng
chöa. Neáu kyù töï tröôùc ñaõ ñöôïc gôûi ñi, thì noù phaûi chôø cho ñeán khi söï phaùt ñi hoaøn thaønh. Caùc leänh sau ñaây duøng ñeå
phaùt moät kyù töï trong thanh ghi A ra :
WAIT :
JNB TI, WAIT : Kieåm tra TI coù set chöa.
CLR TI : Xoùa côø ngaét thu TI
MOV SBUF,A : CPU ñoïc kyù töï
Ngöôøi bieân soaïn: Tröông Ngoïc Anh – Khoa Ñieän töû – Boä moân Ñieän töû Coâng nghieäp 5
HOAÏT ÑOÄNG INTERRUPT CUÛA 8951
I. GIÔÙI THIEÄU :
Interrupt laø moät söï coá coù ñieàu kieän maø noù gaây ra söï ngöng laïi taïm thôøi cuûa chöông trình ñeå phuïc vuï moät
chöông trình khaùc. Caùc Interrupt vaän haønh moät Relay raát quan troïng trong thieát bò vaø söï cung caáp ñaày ñuû caùc öùng
duïng vi ñieàu khieån. Chuùng cho pheùp 1 heä thoáng ñaùp öùng ñoààng boä ñeán söï kieän quan troïng vaø giaûi quyeát söï kieän ñoù
trong khi chöông trình khaùc ñang thöïc thi. Moät heä thoáng ñöôïc laùi bôûi Interrupt cho 1 kyõ xaûo laøm nhieàu coâng vieäc
cuøng môät luùc. Taát nhieân CPU khoâng theå thöïc thi nhieàu leänh taïi moät thôøi ñieåm, nhöng noù coù theå taïm thôøi treo vieäc
thöïc thi cuûa chöông trình chính ñeå thöïc thi chöông trình khaùc vaø sau ñoù quay laïi chöông trình chính.
Khi moät söï ngaét xuaát hieän vaø ñöôïc chaáp nhaän bôûi CPU thì chöông trình chính bò ngaét. Caùc hoaït ñoäng
sau ñaây xuaát hieän :
Ö Leänh hieän haønh vaø keát thuùc thöïc thi.
Ö Boä ñeám chöông trình PC ñöôïc caát giöõ vaøo Stack.
Ö Traïng thaùi ngaét hieän haønh ñöôïc caát giöõ vaøo beân trong.
Ö Nhöõng söï ngaét bò ngaên laïi taïi möùc ngaét.
Ö Boä ñeám chöông trình PC ñöôïc LOAD vôùi ñòa chæ vectô cuûa thuû tuïc phuïc vuï ngaét ISR.
Ö Thuû tuïc phuïc vuï ngaét ISR ñöôïc thöïc thi.
INT_SERIAL: JNB RI,CHECK_TI ;If the RI flag is not set, we jump to check TI
MOV A,SBUF ;If we got to this line, its because the RI bit *was* set
Ngöôøi bieân soaïn: Tröông Ngoïc Anh – Khoa Ñieän töû – Boä moân Ñieän töû Coâng nghieäp 6