Thanh ghi điều khiển truyền nhận nối tiếp

Một phần của tài liệu Lập trình 8051 siêu chi tiết (Trang 69)

Vi điều khiển 8051 có hai chân dùng trong truyền nhận nối tiếp là RxD(nhận dữ liệu ứng với chân P3.0) và TxD(phát dữ liệu ứng với chân P3.1), ngoài ra còn sử dụng bộ đệm SBUF để lưu dữ liệu thu khi nhận và dữ liệu phát khi truyền và thanh ghi SCON(Serial Control) để truy xuất port nối tiếp.

Bộ đệm SBUF có địa chỉ byte là 99h, thực tế có hai bộ đệm là bộ đệm thu (chi đọc) dùng trong nhận dữ liệu và bộ đệm phát (chỉ ghi) dùng trong phát dữ liệu.

Thanh ghi SCON có địa chỉ byte là 98h là thanh ghi có thể định địa chỉ từng bit dùng để thiết lập chế độ hoạt động của port nối tiếp và các bit trạng thái chỉ sự kết thúc việc thu hoặc phát dữ liệu.

Bit Kí hiệu Chức năng

SCON.7 SM0/FE

Cách dùng của bit này được định nghĩa bằng giá trị của bit SMOD0 trong thanh ghi PCON, nếu SMOD=0, bit này được đọc và viêt là SM0, nó với bit SM1 định nghĩa chế độ hoạt động của cổng nối tiếp. Nếu SMOD0=1, bit này được đọc và viết là FE (khung lỗi). FE được set trong quá trình nhận khi phát hiện bit dừng không hợp lệ, và nó chỉ được xóa bởi phần mềm. (chú ý rằng các chế độ UART nên được lập trình(thông qua SM0 và SM1) khi SMOD0=’0’-chế độ mặc định sau các quá trình RESET)

SM1 Cùng với SM0, xác định chế độ làm việc của cổng nối tiếp

SM0,

SM1 Chế độ UART UART 0 Baud Rate

0 0 0: thanh ghi dịch CCLK/16 (chế độ mặc định sau khi RESET)

0 1 1: UART 8-bit Thay đổi

1 0 2: UART 9-bit CCLK/32 hoặc CCLK/16 SCON.6

1 1 3: UART 9-bit Thay đổi

SCON.5 SM2

Cho phép truyền thông đa xử lý. Ở Mode 2 và 3, nếu SM2 được lập, RI sẽ không tích cực nếu bit dữ liệu nhận thứ 9 (RB8) là ‘0’. Ở Mode 0, SM2 nên bằng ‘0’, ở mode 1, SM2 phải bằng ‘0’.

SCON.4 REN

Cho phép thu ở cổng nối tiếp. Thiết lập bởi phần mềm để cho phép thu. Xóa bởi phần mềm khi không cho phép thu,REN = 1 trong tất cả 4 chế độ tuyền nhận.

SCON.3 TB8 Bit dữ liệu thứ 9 được phát ở mode 2 và 3, lập/xóa bởi phần mềm khi muốn.

SCON.2 RB8

Bit dữ liệu thứ 9 được nhận ở mode 2 và 3. Ở mode 1(SM2=0), RB8 là bit dừng được nhận, ở mode 0, RB8 không được định nghĩa.

SCON.1 TI

Cờ ngắt phát(truyền nối tiếp), lập bởi phần cứng ở cuối bit thứ 8 ở mode 0, hay là ở bit dừng của các chế độ còn lại, phải được xóa bằng phần mềm. (Xem thêm bit INTL0 ở thanh ghi SSTAT)

SCON.0 RI

Cờ ngắt thu, lập bởi phần cứng ở cuối bit thứ 8 trong mode 0, hay khoảng giữa bit dừng ở mode 1. với mode 2 và mode 3, nếu SMOD0=0, nó được lập gần khoảng giữa bit dữ liệu thứ 9 (bit 8). Nếu SMOD0=1, nó được lập gần khỏang giữa bit dừng. Phải được xóa bởi phần mềm.

Các chế độ truyền nối tiếp:

· Chế độ 0: ở chế độ này chân RxD sẽ vửa làm nhiệm vụ thu và phát dữ liệu còn chân TxD làm nhiệm vụ phát xung dịch bit(Shift Clock) vói tốc độ sung bằng 1/12 tốc độ xung của XTAL.Dữ liệu truyền đi gồm 8 bit với bit LSB được truyền hoặc nhận trước. Ứng dụng của chế độ này là mở rộng ngõ ra cho 8051 từ 2 đường TxD,RxD sẽ tạo ra 8 đường mở rộng.

8051 TxD(P3.1)

RxD(P3.0)

CLOCK Shift register

BKIT HARDWARE CLUB www.bkit4u.com 71 · Chế độ 1: là chế độ truyền với mỗi frame có 10 bits (bit start – 8 bits data – bit stop) ,tốc độ baud rate có thể thay đổi được tùy vào cách khởi tạo ban đầu.Có thể nhân đôi tốc độ truyền bằng cách bật PCON.7 = 1.

· Chế độ 2: là chế độ truyền với mỗi frame có 11 bits (bit start – 8 bits data – bit parity – bit stop),bit parity được đặt trong TB8 khi phát và được đặt trong RB8 khi thu, tốc độ baud rate ở chế độ này không thay đổi được và bằng 1/64 dao động của XTAL (1/32 dao động của XTAL nếu PCON.7 = 1). (adsbygoogle = window.adsbygoogle || []).push({});

· Chế độ 3: có chức năng tương tự như chế độ 2 nhưng tốc độ baud rate có thể thay đổi được như ở chể độ 1.

Tốc độ Baud : Tốc độ (Baud) của cổng 8051 phải phù hợp với máy tính: 100, 150, 300, 600, 1200, 2400, 4800, 9600, 19200. Khuyến cáo dùng thạch anh có tần số 11.0592Mhz để có thể tạo ra tốc độ Baud với sai số thấp (gần như là 0).

Một phần của tài liệu Lập trình 8051 siêu chi tiết (Trang 69)