Giáo trình Vi xử lý - Chương 5: Hoạt động của port nối tiếp (Serial Port) - Phạm Quang Trí
I. MỞ ĐẦU:
Máy tính truyền dữ liệu theo hai phương pháp: truyền dữ liệu song song và truyền dữ liệu nối tiếp.
• Truyền song song: Sử dụng nhiều dây dẫn để truyền dữ liệu giữa các thiết bị có khoảng cách
gần nhau (khoảng vài mét). Phương pháp này cho phép truyền dữ liệu với tốc độ cao nhờ sử dụng
nhiều dây dẫn để truyền dữ liệu đồng thời nên tại một thời điểm có thể truyền được nhiều bit thông tin
nhưng khoảng cách truyền thì có nhiều hạn chế.
• Truyền nối tiếp: Sử dụng một dây dẫn để truyền dữ liệu (một dây phát đi và một dây thu về)
giữa các thiết bị có khoảng cách xa nhau (khoảng vài trăm mét trở lên). Phương pháp này sẽ truyền dữ
liệu với tốc độ chậm hơn (so với phương pháp truyền song song) vì chỉ sử dụng một dây dẫn để truyền
dữ liệu nên tại một thời điểm chỉ có thể truyền được một bit thông tin nhưng khoảng cách truyền thì
không bị hạn chế như ở phương pháp song song.
Máy tính truyền dữ liệu theo hai phương pháp: truyền dữ liệu song song và truyền dữ liệu nối tiếp.
• Truyền song song: Sử dụng nhiều dây dẫn để truyền dữ liệu giữa các thiết bị có khoảng cách
gần nhau (khoảng vài mét). Phương pháp này cho phép truyền dữ liệu với tốc độ cao nhờ sử dụng
nhiều dây dẫn để truyền dữ liệu đồng thời nên tại một thời điểm có thể truyền được nhiều bit thông tin
nhưng khoảng cách truyền thì có nhiều hạn chế.
• Truyền nối tiếp: Sử dụng một dây dẫn để truyền dữ liệu (một dây phát đi và một dây thu về)
giữa các thiết bị có khoảng cách xa nhau (khoảng vài trăm mét trở lên). Phương pháp này sẽ truyền dữ
liệu với tốc độ chậm hơn (so với phương pháp truyền song song) vì chỉ sử dụng một dây dẫn để truyền
dữ liệu nên tại một thời điểm chỉ có thể truyền được một bit thông tin nhưng khoảng cách truyền thì
không bị hạn chế như ở phương pháp song song.
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Vi xử lý - Chương 5: Hoạt động của port nối tiếp (Serial Port) - Phạm Quang Trí", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- giao_trinh_vi_xu_ly_chuong_5_hoat_dong_cua_port_noi_tiep_ser.pdf
Nội dung text: Giáo trình Vi xử lý - Chương 5: Hoạt động của port nối tiếp (Serial Port) - Phạm Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. CHƯƠNG 5 HO T ð NG C A PORT N I TI P (SERIAL PORT ) I. M ð U: Máy tính truy n d li u theo hai phương pháp: truy n d li u song song và truy n d li u n i ti p. • Truy n song song: S d ng nhi u dây d n ñ truy n d li u gi a các thi t b có kho ng cách g n nhau ( kho ng vài mét ). Phương pháp này cho phép truy n d li u v i t c ñ cao nh s d ng nhi u dây d n ñ truy n d li u ñ ng th i nên t i m t th i ñi m có th truy n ñư c nhi u bit thông tin nhưng kho ng cách truy n thì có nhi u h n ch . • Truy n n i ti p: S d ng m t dây d n ñ truy n d li u ( m t dây phát ñi và m t dây thu v ) gi a các thi t b có kho ng cách xa nhau ( kho ng vài trăm mét tr lên ). Phương pháp này s truy n d li u v i t c ñ ch m hơn (so v i phương pháp truy n song song ) vì ch s d ng m t dây d n ñ truy n d li u nên t i m t th i ñi m ch có th truy n ñư c m t bit thông tin nhưng kho ng cách truy n thì không b h n ch như phương pháp song song. Chip 8051 có m t port n i ti p (serial port ) v i các tính năng như sau: • Lưu ý: trư ng h p ñ c trưng th hai thì d li u th nh t s không b m t n u CPU ñ c xong d li u th nh t trư c khi d li u th hai ñư c nh n ñ y ñ . Các thanh ghi ch c năng ñ c bi t c a port n i ti p: ð i lư ng ñ c trưng cho t c ñ truy n d li u nhanh hay ch m là t c ñ baud (baud rate) hay còn g i là t n s ho t ñ ng c a port n i ti p có th là giá tr c ñ nh hay thay ñ i tùy theo yêu c u c a ngư i l p trình. Khi ch ñ t c ñ baud thay ñ i ñư c s d ng, b ñ nh th i 1 cung c p xung clock t c ñ baud và ta ph i l p trình sao cho phù h p. phiên b n chip 8031/8052, b ñ nh th i 2 cũng có th ñư c l p trình ñ cung c p xung clock t c ñ baud. Giáo trình Vi x lý. 154 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. III. THANH GHI ðI U KHI N PORT N I TI P ( SCON ): Thanh ghi SCON ( Serial Control Register ): ch a các bit dùng ñ ñi u khi n ch ñ ho t ñ ng và báo tr ng thái c a port n i ti p. C u trúc c a thanh ghi SCON: Bit 7 6 5 4 3 2 1 0 SCON: Serial Control Register 9F 9E 9D 9C 9B 9A 99 98 Ñòa chæ bit (HEX) SM1 REN RB8 RI SM0 SM2 TB8 TI Kyù hieäu RI : Receive Interrupt Côø ngaét thu. RI = 1 ngay khi keát thuùc vieäc thu moät döõ lieäu, RI ñöôïc xoùa bôûi phaàn meàm. TI : Transmit Interrupt Côø ngaét phaùt. TI = 1 ngay khi keát thuùc vieäc phaùt moät döõ lieäu, TI ñöôïc xoùa bôûi phaàn meàm. RB8: Receive bit 8 Bit thöù 9 nhaän ñöôïc (cheá ñoä 2 vaø 3). TB8: Transmit bit 8 Bit thöù 9 ñöôïc phaùt (cheá ñoä 2 vaø 3). Bit naøy ñöôïc set (1) hoaëc xoùa (0) bôûi phaàn meàm. REN : Receive Enable Cho pheùp thu. Bit naøy phaûi ñöôïc set ñeå nhaän caùc döõ lieäu. SM2: Serial Mode 2 Bit 2 choïn cheá ñoä cuûa port noái tieáp. Bit naøy cho pheùp truyeàn thoâng ña xöû lyù ôû cheá ñoä 2 vaø 3; bit RI seõ khoâng ñöôïc tích cöïc neáu bit thöù 9 nhaän ñöôïc laø 0. SM1: Serial Mode 1 Bit 1 choïn cheá ñoä cuûa port noái tieáp. SM0: Serial Mode 0 Bit 0 choïn cheá ñoä cuûa port noái tieáp. Các ch ñ c a port n i ti p: Trư c khi s d ng port n i ti p c n ph i: Giáo trình Vi x lý. 156 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. • Gi n ñ th i gian phát d li u: Quá trình thu d li u: • Quá trình kh i ñ ng : Set bit cho phép thu (REN=1) → Xóa c ng t thu (RI=0) ⇒ Vi c thu d li u b t ñ u : Các xung clock d ch bit ñư c g i ra chân TxD và d li u t thi t b bên ngoài ñư c d ch vào chân RxD b i các xung clock d ch bit này (vi c d ch d li u vào chân RxD x y ra c nh lên c a xung clock d ch bit). • Gi n ñ th i gian thu d li u: ng d ng: M t ng d ng kh thi c a ch ñ 0 (ch ñ thanh ghi d ch bit) là m r ng thêm các ngõ ra cho chip 8051. M t vi m ch thanh ghi d ch n i ti p – song song có th ñư c n i v i các chân TxD và RxD c a chip 8051 ñ cung c p thêm 8 ñư ng xu t ( xem hình v bên dư i ). Các thanh ghi d ch bit khác có th ghép cascade v i thanh ghi d ch bit ñ u tiên ñ m r ng thêm n a. Giáo trình Vi x lý. 158 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. Quá trình phát d li u: • Quá trình kh i ñ ng : Ghi d li u c n phát vào SBUF ⇒ Vi c phát d li u b t ñ u : D li u t SBUF ñư c d ch ra chân TxD (theo th t : Start bit →→→ 8 bit data (D0 D7) →→→ Stop bit ) → c TI=1. W ri te • T c ñ baud: do ngư i l p trình thi t l p và ñư c qui ñ nh b i t c ñ tràn c a Timer 1. • Th i gian c a 1 bit trên ñư ng truy n: b ng ngh ch ñ o c a t c ñ baud ( 1 / Baud rate ). • C ng t phát TI = 1: khi bit stop ñư c xu t hi n trên chân TxD. Qúa trình thu d li u: • Quá trình kh i ñ ng : M t s chuy n tr ng thái t m c 1 xu ng m c 0 t i chân RxD (t c xu t hi n bit Start) ⇒ Vi c thu d li u b t ñ u : 8 bit d li u ñư c d ch vào trong SBUF (theo th t : D0→D1→ →D7) → Stop bit (bit th 9) ñư c ñưa vào bit RB8 (thu c thanh ghi SCON) → c RI=1. • T c ñ baud: do ngư i l p trình thi t l p và ñư c qui ñ nh b i t c ñ tràn c a Timer 1. • Hai ñi u ki n b t bu c ñ th c hi n quá trình thu d li u như trên: o RI = 0 → Yêu c u này có nghĩa là chip 8051 ñã ñ c xong d li u trư c ñó và xoá c RI o (SM2 = 1 và Stop bit = 1 ) ho c SM2 = 0 → ch áp d ng trong ch ñ truy n thông ña x lý. Yêu c u này có nghĩa là không set c RI b ng 1 trong ch ñ truy n thông ña x lý khi bit d li u th 9 là 0. • C ng t thu RI = 1: khi 8 bit d li u ñã ñư c n p vào SBUF. Lưu ý: Trư ng h p các tín hi u nhi u xu t hi n trên ñư ng truy n ( làm cho ñư ng truy n xu t hi n m c th p ) d n ñ n làm cho b thu nh n d ng sai, cho ñó là s xu t hi n c a START bit ( logic 0 ) và ti n hành th c hi n quá trình thu d li u, t ñó d n ñ n k t qu nh n vào s không ñúng. ð tránh ñi u này x y ra thì khi ñư ng truy n có s chuy n tr ng thái t 1 xu ng 0, b thu yêu c u m c 0 này ph i Giáo trình Vi x lý. 160 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. Khuông d ng c a m t d li u khi s d ng ch ñ UART 9 bit: eceive ransmit R T Recei Trans V. KH I ð NG VÀ TRUY XU T CÁC THANH GHI: 1. Bit cho phép thu ( nh n ) d li u ( REN: Receive Enable ): • Công d ng: dùng ñ cho phép ( ho c không cho phép ) nh n các ký t d li u. REN = 1 : Cho phép nh n d li u ⇒ l nh th c hi n: SETB REN REN = 0 : Không cho phép d li u ⇒ l nh th c hi n: CLR REN 2. Bit d li u th 9: • Công d ng: tùy thu c vào ñ c tính k thu t c a thi t b n i ti p mà có th yêu c u ho c không yêu c u bit d li u th 9. Khi phát d li u : bit d li u th 9 ph i ñư c n p vào bit TB8 c a SCON trư c khi phát ñi. Khi thu d li u : bit d li u th 9 s ñư c n p vào bit RB8 c a SCON sau khi thu xong. 3. Bit ki m tra ch n / l ( P: Parity ): • Công d ng: Trong chip 8051 thì bit Parity ñư c dùng ñ thi t l p vi c ki m tra ch n cho 8 bit d li u ch a trong thanh ghi A ( thư ng dùng ñ ki m tra l i khi truy n d li u ). P = 1 ⇒ S lư ng bit 1 trong thanh ghi A là s l . P = 0 ⇒ S lư ng bit 1 trong thanh ghi A là s ch n. ho c S lư ng bit 1 trong thanh ghi A và bit P là m t s ch n . ch ñ 1 (UART 8 bit ) thì bit ch n/l do chip 8051 t o ra có th ñư c thêm vào t i bit th 8 (v trí D7) và khi ñó ta ch có th truy n d li u ch có 7 bit . Giáo trình Vi x lý. 162 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. • Thông qua vi c ki m tra c ng t RI có th bi t ñư c chip 8051 ñã nh n xong m t byte d li u hay chưa. C n chú ý r ng, ñây c RI ñư c ñ t ( RI = 1 ) khi 8051 ñã hoàn t t vi c nh n m t byte d li u, còn ñư c xoá ( RI=0 ) thì ph i do ngư i l p trình th c hi n b ng l nh (CLR RI ). Cũng nên nh r ng, n u không ti n hành c t n i dung c a thanh ghi SBUF vào nơi an toàn thì s có nguy cơ b m t d li u v a nh n ñư c do d li u ti p theo ñư c chuy n vào. C RI có th ñư c ki m tra b ng l nh (JNB RI, ) ho c s d ng phương pháp ng t ( s ñư c trình bày trong chương ti p theo ). Lưu ñ và ño n l nh ñ ki m tra và thu m t d li u n i ti p t thi t b bên ngoài vào chip 8051 (ch a vào A): Lưu ñ và ño n l nh ñ ki m tra và phát m t d li u n i ti p t chip 8051 ( ch a trong A) ra thi t b bên ngoài: VI. TRUY N THÔNG ðA X LÝ: Các ch ñ 2 và 3 là các ch ñ d phòng cho vi c truy n thông ña x lý. Trong các ch ñ này, 9 bit d li u ñư c thu và bit th 9 ñưa ñ n RB8. Port có th ñư c l p trình sao cho khi bit stop ñư c nh n, ng t do port n i ti p ch ñư c tích c c n u RB8=1. ð c trưng này có th ñư c b ng cách set bit SM2 trong thanh ghi SCON b ng 1. M t ng d ng cho ñi u này là m t môi trư ng m ng s d ng nhi u 8051 ñư c s p x p theo mô hình ch /t ( master/slave ) như hình dư i ñây. Giáo trình Vi x lý. 164 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. 4. S d ng Timer 1 làm xung clock t c ñ baud cho port n i ti p: K thu t t o xung clock t c ñ baud b ng Timer 1: V ch n ch ñ : thư ng dùng Timer 1 ch ñ 8 bit t ñ ng n p l i ( Mode 2 ). Các t c ñ baud r t ch m có th nh n ñư c b ng cách s d ng ch ñ 16 bit ( Mode 1 ). • Ví d : Kh i ñ ng thanh ghi TMOD ñ dùng T1 làm b t o xung t c ñ baud (cho T1 ho t ñ ng ch ñ 2): MOV TMOD, #2xH x: dành cho Timer 0 V ch n t c ñ baud: G i M là giá tr c n n p cho thanh ghi TH1 ñ có t c ñ baud như yêu c u, ta có: f M = − Timer Timer 1 overflow rate f Timer 1 overflow rate Mà: f = Timer và Baud rate = Timer 12 16 (hoaëc 32) f 1 ⇒ M = − Osc × 12 Baud rate × 16 (hoaëc 32) V y ta có: f f Osc Osc M = − (, SMOD = )1 ho c M = − (, SMOD = )0 192×Baud rate 384×Baud rate Trong ñó: fOsc (Hz): t n s th ch anh. Baud rate (bps): t c ñ baud c a port n i ti p. • Ví d : T o t c ñ baud là 1200 v i trư ng h p SMOD = 0 và chip 8051 dùng th ch anh 12 MHz. G i M là giá tr c n n p cho thanh ghi TH1 ñ có t c ñ baud như yêu c u, ta có: f M = − Osc (, SMOD = )0 384×Baud rate 6 12.10 ⇒ M = − = −26,0416 ≅ -26 ( làm tròn s ). 384×1200 Giáo trình Vi x lý. 166 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. • Ghi d li u c n phát vào port n i ti p ñ phát ñi: MOV SBUF, (4) • Quay tr l i bư c 5 ñ phát m t d li u ti p theo. Lưu ý: (1) : Giá tr dùng ñ qui ñ nh ch ñ ho t ñ ng c a port n i ti p. ð ñơn gi n trong vi c l p trình, ta có th kh i ñ ng thanh ghi SCON theo như trình bày dư i ñây: Mode 1: (1) = 52H Mode 3: (1) = D2H (2) : Giá tr dùng ñ qui ñ nh ch ñ ho t ñ ng c a Timer 1 ( dùng ñ t o t c ñ baud cho vi c truy n d li u n i ti p ). ð ñơn gi n trong vi c l p trình, ta có th kh i ñ ng thanh ghi TMOD theo như trình bày dư i ñây ( ch y u ñây ta ch c n s d ng Timer 1 Mode 2 – Ch ñ 8 bit t ñ ng n p l i ): Mode 2: (2) = 20H (3) : Giá tr dùng ñ qui ñ nh t c ñ baud cho port n i ti p. Giá tr này ph thu c vào t n s th ch anh, bit SMOD và t c ñ baud mà ngư i l p trình mong mu n ( xem thêm “ B ng tính t c ñ baud cho port n i ti p ” như trên ñã trình bày ). (3) = M f f Osc Osc M = − (, SMOD = )1 ho c M = − (, SMOD = )0 192×Baud rate 384×Baud rate Trong ñó: fOsc (Hz): t n s th ch anh. Baud rate (bps): t c ñ baud c a port n i ti p. (4) : D li u c n phát ñi thông qua port n i ti p. D li u này có th là n i dung c a m t ô nh , thanh ghi ho c m t giá tr t c th i. Nên nh r ng, n u có yêu c u thì bit g i kèm theo ( ví d như bit Parity ) c n ph i thêm vào trư c khi ti n hành quá trình phát d li u ( Mode 1: kèm thêm vào v trí c a bit D7, Mode 3: kèm thêm vào v trí c a bit TB8). Giáo trình Vi x lý. 168 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. Baud rate = 2400 6 11,0592×10 ⇒ M = − = −12 ⇒ (TH1) = 12 hay (TH1) = F4H. 384×2400 Baud rate = 1200 6 11,0592×10 ⇒ M = − = −24 ⇒ (TH1) = 24 hay (TH1) = F8H. 384×1200 Xét trư ng h p SMOD=1: G i M là giá tr c n n p cho thanh ghi TH1 ñ có t c ñ baud như yêu c u, ta có: f M = − Osc 192×Baud rate Baud rate = 19200 6 11,0592×10 ⇒ M = − = −3 ⇒ (TH1) = 3 hay (TH1) = FDH . 192×19200 2. Ví d 2: ( Kh i ñ ng port n i ti p ) Vi t m t chu i l nh ñ kh i ñ ng port n i ti p sao cho port này ho t ñ ng như m t UART 8 bit v i t c ñ baud là 2400, s d ng Timer1 ñ cung c p xung clock t c ñ baud. Chip 8051 s d ng th ch anh 12MHz. Gi i ð kh i ñ ng port n i ti p có c u hình như trên ta c n tác ñ ng ñ n các thanh ghi: SCON, TMOD, TCON và TH1. SM0 = 0, SM1 = 1, SM2 = 0 → ch ñ UART 8 bit. REN = 1 → cho phép port n i ti p thu d li u. TI = 1 → cho phép port s n sàng phát d li u ( b ñ m phát r ng ). RI = 0 → cho phép port s n sàng thu d li u ( b ñ m thu r ng ). GATE = 0, C/T = 0, M1 = 1, M0 = 0 → Timer 1 ch ñ ñ nh th i 8 bit t n p l i. Giáo trình Vi x lý. 170 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. vi c phát ký t ñư c b t ñ u l n tràn k c a b ñ m t o xung clock cho port n i ti p. Sau cùng bit ACC.7 s ñư c xóa ñ giá tr tr v gi ng như khi mã 7 bit ñư c chuy n ñ n chương trình con. 4. Ví d 4: ( Chương trình con thu (nh n) d li u ) Gi s port n i ti p ñã ñư c kh i ñ ng (như ví d 1). Hãy vi t m t chương trình con ñ thu d li u t port n i ti p và n p giá tr thu ñư c vào thanh ghi A (d li u thu ñư c có d ng 7 bit d li u + 1 bit ki m tra l , tương t d li u t ví d 2). S d ng bit th 8 thu ñư c làm bit ki m tra l và set c nh C n u có l i ch n l . Gi i Chương trình con này b t ñ u b ng vi c ch c ng t thu RI ñư c set b ng 1 ñ ch ra r ng ký t ñã s n sàng trong b ñ m thu SBUF ( ñ ñư c ñ c ). Khi RI=1, l nh JNB chuy n ñi u khi n ñ n l nh ti p theo sau l nh này. C RI ñư c xóa và mã trong SBUF ñư c ch a vào thanh ghi A. Do bit P trong thanh ghi PSW ñư c thi t l p ñ ki m tra ch n cho giá tr trong thanh ghi A. Cho nên bit này s ñư c set b ng 1 n u n i dung thanh ghi A ( t c d li u v a thu ñư c ) có ch a bit ki m tra l bit th 7 c a thanh ghi này và ngư c l i thì bit này s ñư c xoá b ng 0 thông qua l nh CPL. Vi c di chuy n bit P vào trong c nh CY s làm cho CY=0 n u không có l i ho c CY=1 n u có m t l i ch n l . Sau cùng bit ACC.7 s ñư c xóa ñ ñ m b o r ng ch có mã 7 bit ñư c tr v cho chương trình ñã g i. 5. Ví d 5: ( Truy n d li u ) Vi t chương trình cho 8051 (fOsc =11,0592MHz) ñ truy n liên t c m t ký t “A” thông qua port n i ti p v i t c ñ 4800 baud (Mode 1). Gi i • Tính toán: D a vào nh ng công th c ñã h c, ta có: Port n i ti p ( Mode 1 ) ⇒ (SCON) = 52H Timer 1 ( Mode 2 ) ⇒ (TMOD) = 20H Baud rate = 4800 và fOsc =11,0592MHz ⇒ (TH1) = 6 v i (SMOD) = 0 Giáo trình Vi x lý. 172 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. 8. Ví d 8: ( Nh n d li u ) Vi t chương trình cho 8051 (fOsc =11,0592MHz) ñ nh n liên t c các d li u thông qua port n i ti p v i t c ñ 4800 baud (Mode 1) và g i các d li u nh n ñư c ñ n P1. Gi i • Tính toán: Port n i ti p ( Mode 1 ) ⇒ (SCON) = 52H Timer 1 ( Mode 2 ) ⇒ (TMOD) = 20H Baud rate = 4800 và fOsc =11,0592MHz ⇒ (TH1) = 6 v i (SMOD) = 0 • Chương trình: D a vào nh ng tính toán trên, ta có: MOV SCON, #52H ;UART 8 bit, t c ñ baud thay ñ i. MOV TMOD, #20H ;Ch ñ 8 bit t n p l i. MOV TH1, #( 6) ;Baud rate = 4800. SETB TR1 ;Kh i ñ ng Timer 1. LOOP: JNB RI, $ ;Ki m tra ñã thu d li u hoàn t t? CLR RI ;Xoá c RI, chu n b cho l n thu k ti p. MOV A, SBUF ;Thu và c t d li u vào ACC. MOV P1, A ;G i d li u thu ñư c ra P1. SJMP LOOP ;L p l i quá trình phát. END ;K t thúc chương trình. 9. Ví d 9: ( Thu và phát d li u ) Cho port n i ti p c a 8051 (fOsc =11,0592MHz) ñư c n i v i c ng COM c a máy tính PC (gi s r ng trên máy tính ñã có s n chương trình ñ g i và nh n d li u n i ti p thông qua c ng COM). Hãy vi t chương trình cho 8051 ñ th c hi n các công vi c sau: G i câu thông báo “READY” ñ n máy tính. Liên t c nh n các d li u n i ti p t máy tính g i ñ n và chuy n các d li u này ra P1 c a 8051. Liên t c l y các d li u t P2 c a 8051 và phát các d li u này ñ n máy tính thông qua port n i ti p. Bi t r ng 8051 truy n d li u n i ti p Mode 1 v i t c ñ baud là 9600. Gi i • Tính toán: Port n i ti p ( Mode 1 ) ⇒ (SCON) = 52H Timer 1 ( Mode 2 ) ⇒ (TMOD) = 20H Baud rate = 9600 và fOsc =11,0592MHz ⇒ (TH1) = 3 v i (SMOD) = 0 • Chương trình: D a vào nh ng tính toán trên, ta có: MOV P2, #0FFH ;C u hình P2 là c ng vào. MOV SCON, #52H ;UART 8 bit, t c ñ baud thay ñ i. MOV TMOD, #20H ;Ch ñ 8 bit t n p l i. MOV TH1, #( 3) ;Baud rate = 4800. SETB TR1 ;Kh i ñ ng Timer 1. MOV DPTR, #MYDATA ;N p con tr vùng d li u. NEXT: ;Ph n phát câu thông báo CLR A ;Xoá ACC, A = 0 MOVC A, @A+DPTR ;L y d li u t i ô nh ROM do Giáo trình Vi x lý. 174 Biên so n: Ph m Quang Trí
- Chương 5: Ho t ñ ng c a port n i ti p (Serial Port). Trư ng ðH Công nghi p Tp.HCM. vào m t vùng nh c a RAM n i, n u b l i thì không ghi. ño n l nh g i chương trình con NHAP s ñ t ñ a ch ñ u c a vùng nh vào thanh ghi R0 trư c khi g i chương trình con NHAP. Gi s port n i ti p ñã ñư c kh i ñ ng. Giáo trình Vi x lý. 176 Biên so n: Ph m Quang Trí