Bài giảng Vi xử lý - Chương 3: Họ vi điều khiển 8051 - 3.6 Cổng nối tiếp (Serial Port) - Bùi Minh Thành
Các hoạt động cổng nối tiếp của 8051
• Giới thiệu
• Chuẩn EIA(Electronic Industries
Association)-232E hoặc RS232
• Giao tiếp cổng nối tiếp MCS-51/52
• Ứng dụng của chế độ 0
• Ứng dụng của chế độ 1
• Ứng dụng của chế độ 2 & 3
• Giới thiệu
• Chuẩn EIA(Electronic Industries
Association)-232E hoặc RS232
• Giao tiếp cổng nối tiếp MCS-51/52
• Ứng dụng của chế độ 0
• Ứng dụng của chế độ 1
• Ứng dụng của chế độ 2 & 3
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Vi xử lý - Chương 3: Họ vi điều khiển 8051 - 3.6 Cổng nối tiếp (Serial Port) - Bùi Minh Thành", để 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:
- bai_giang_vi_xu_ly_chuong_3_ho_vi_dieu_khien_8051_3_6_cong_n.pdf
Nội dung text: Bài giảng Vi xử lý - Chương 3: Họ vi điều khiển 8051 - 3.6 Cổng nối tiếp (Serial Port) - Bùi Minh Thành
- Hiệu đính từ slide của thầy Hồ Trung Mỹ Bộ môn Điện tử - DH BK TPHCM CHƯƠNG 3 HỌ VI ĐiỀU KHIỂN 8051 1
- Các hoạt động cổng nối tiếp của 8051 • Giới thiệu • Chuẩn EIA(Electronic Industries Association)-232E hoặc RS232 • Giao tiếp cổng nối tiếp MCS-51/52 • Ứng dụng của chế độ 0 • Ứng dụng của chế độ 1 • Ứng dụng của chế độ 2 & 3 3
- Truyền dữ liệu nối tiếp đồng bộ (synchronous) và bất đồng bộ (asynchronous) với 8051 5
- Đường truyền Điểm đến điểm và Đa điểm Rx StationTx Station Rx Tx Peer Peer Master Slave 1 Slave 2 Slave n Address 1 Address 2 Address n 7
- Cơ bản về các đường truyền Signal pattern for letter “A” (41H) Start bit Stop bit 5V Serial port 0V 0010010 0 0 1 D0 D1 D2 D3 D4 D5 D6 D7 >+3V <-3V RS232 mark space 9
- EIA-232-E Mechanical Characteristics • 25-pin DB25 /9-pin DB9 plug connector. 11
- EIA-232-E Connector and Pin Assignment Signal direction Signal Name Signal Name Signal direction to DCE Secondary TxD 14 1 protective ground Both to DTE Tx clock 15 2 TxD to DCE to DTE Secondary RxD 16 3 RxD to DTE to DTE Rx clock 17 4 Request To Send to DCE unassigned 18 5 Clear To Send to DTE to DCE Secondary Request To Send 19 6 Data Set Ready to DTE to DCE Data Terminal Ready 20 7 Signal ground Both to DTE Signal Quality Detect 21 8 Carrier Detect to DTE to DTE Ring indicator 22 9 Reserved Both Data Rate Select 23 10 Reserved to DCE Tx clock 24 11 Unassigned unassigned 25 12 Secondary Carrier Detect to DTE 13 Secondary Clear To Send to DTE 13
- EIA-232-E Procedural Characteristics DTE DCE DCE DTE X EIA-232 X Y EIA-232 Y Signal GND (7) Signal GND (7) DTE ready (20) -> Request to send(4) -> carrier on carrier detect (8) -> data send data receive (3) -> send timing (24) -> receive timing (17) -> EOT send (2) -> EOT send EOT receive (3) -> send timing (24) -> receive timing (17) -> RTS off (4) -> error check carrier off carrier off (8) -> - 15
- Null Modem Connection When 2 DTEs are very close, no need to use modems to connect them. Pin Circuit name DTE X DTE Y 22 Ring indicator CE CE 20 Data terminal ready CD CD 8 Data carrier detect CF CF 6 Data set ready CC CC 5 Clear to send CB CB 4 Request to send CA CA 3 Receive data BB BB 2 Transmit data BA BA 24 Transmitter timing DA DA 17 Receiver timing DD DD 7 Signal ground AB AB 17
- Sơ đồ khổi cổng nối tiếp của 8051 Cù ng đị a c hỉ 19
- Thanh ghi điều khiển cổng nối tiếp SCON 21
- Chế độ 0:Thanh ghi dịch 8 bit (1/2) 23
- Chế độ 1: UART 8 bit có tốc độ baud thay đổi được (1/3) • Ở chế độ 1, 10 bit được phát đi trên TXD hoặc được thu vào ở RXD. Các bit này bao gồm 1 bit bắt đầu (luôn luôn là 0), 8 bit dữ liệu (LSB đi trước), và 1 bit dừng (luôn luôn là 1). • Để hoạt động bộ thu, bit dừng đi vào RB8 trong SCON. Trong 8051, tốc độ baud được đặt bằng tốc độ tràn của Timer 1. 25
- Chế độ 1: UART 8 bit có tốc độ baud thay đổi được (3/3) • Việc thu được khởi động bởi chuyển tiếp 1 sang 0 ở RXD. Bộ đếm chia 16 được reset tức thời để đồng chỉnh các số đếm với chuỗi bit đến. Chuỗi bit đến được lấy mẫu ở giữa 16 lần đếm. • Giả sử bộ thu phát hiện bit bắt đầu hợp lệ thì tiếp tục nhận ký tự. Bit bắt đầu được bỏ qua và 8 bit dữ liệu được nhịp vào thanh ghi dịch cổng nối tiếp. Khi tất cả 8 bit đã được nhịp vào thì xảy ra: • Bit thứ 9 (bit dừng) được nhịp vào RB8 trong SCON. • SBUF được nạp với 8 bit dữ liệu, và • Cờ ngắt của bộ thu (RI) được đặt lên 1. • Tuy nhiên các điều trên chỉ xảy ra nếu có các điều kiện sau: • RI = 0, và • SM2 = 1, và bit dừng nhận được = 1, hoặc SM2=0. • Yêu cầu RI = 0 để bảo đảm rằng phần mềm đã đọc ký tự trước (và đã xóa RI).kiện thứ 2 thì hơi phức tạp, nhưng chỉ áp dụng trong chế độ truyền thông đa xử lý. Nó hàm ý “Không được đặt RI lên 1 trong chế độ27 truyền thông đa xử lý khi bit dữ liệu thứ chín là 0”.
- Chế độ 3: UART 9 bit có tốc độ baud thay đổi được • Chế độ 3 giống với chế độ 2 ngoại trừ tốc độ baud được lập trình và được cung cấp bởi timer. • Thật ra các chế độ 1, 2, và 3 rất giống nhau. Sự khác biệt là tốc độ baud (cố định trong chế độ 2, thay đổi được trong chế độ 1 và 3) và số bit dữ liệu (8 trong chế độ 1, 9 trong chế độ 2 và 3) 29
- Cho phép bộ thu – Truyền dữ liệu nối tiếp Sử dụng các bit trong thanh ghi SCON • Cho phép bộ thu (REN – bit 4) SETB REN Hoặc MOV SCON, #xxx1xxxxB ; với x=0/1 • Các cờ ngắt RI, TI: Các cờ này được bật lên bởi phần cứng nhưng phải được xóa bằng phần mềm. • RI = 1: Bộ đệm nhận đầy; TI = 1: Bộ đệm phát rỗng 1. Thu nối tiếp: 2. Phát nối tiếp: WAIT: JNB RI, WAIT WAIT: JNB TI, WAIT CLR RI CLR TI MOV A, SBUF MOV SBUF,A 31
- Đặt tốc độ baud cho cổng nối tiếp Cách đặt SMOD lên 1 MOV A,PCON SETB ACC.7 MOV PCON,A 33
- Thí dụ: Chương trình xuất ký tự Viết chương trình con OUTCHR để phát mã ASCII 7 bit trong thanh ghi tích lũy A ra cổng nốitiếp của 8051 với bit kiểm tra lẽ được thêm vào như bit thứ 8. Trở về từ chương trình con không làm thay đổi trị của thanh ghi tích lũy trước khi gọi chương trình con. Bài giải. Thí dụ này và thí dụ kế minh họa 2 trong số các chương trình con thông dụng nhất trên các hệ vi tính có gắn thiết bị đầu cuối RS232: xuất ký tự (OUTCHR) và nhập ký tự (INCHAR). ORG 8100H OUTCHR: MOV C, P ; đặt bit kiểm ra chẳn vào cờ C CPL C ; đổi sang kiểm tra lẽ MOV ACC.7, C ; thêm vào mã ký tự AGAIN: JNB TI, AGAIN ; TX có rảnh ? Không : kiểm tra lại CLR TI ; Truyền được Æ xóa cờ TI và MOV SBUF, A; gửi ký tự CLR ACC.7 ; bỏ bit kiểm tra lẽ và RET ; quay về 37 END
- Thí dụ: Chương trình con nhập ký tự Viết chương trình con INCHAR để nhập 1 ký tự từ cổng nối tiếp của 8051 và quay về với mã ASCII 7 bit trong thanh ghi tích lũy. Ngoại trừ bit kiểm tra lẽ trong bit thứ 8 nhận được và đặt cờ nhớ lên 1 nếu có sai về kiểm tra chẳn lẽ. ORG 8100H INCHAR: JNB RI, $ ; đợi ký tự CLR RI ; xóa cờ MOV A, SBUF ; đọc ký tự vào A MOV C, P ; với kiểm tra lẽ trong A, P sẽ = 1 CPL C ; bù để chỉ có lỗi CLR ACC.7 ; bỏ bit kiểm tra chẳn lẽ RET END 39