2.2.5.1: Giới thiệu
89S52 có cổng nối tiếp trên chip có thể thực hiện nhiều chế độ khác nhau cùng bới tốc độ khác nhau. Cổng nối tiếp chủ yếu là chuyển đổi song song sang nối tiếp kết hợp với dữ liệu xuất cũng như tương tự với dữ liệu nhận.
Dữ liệu truyền đi và nhận về hồn tồn riêng biệt nhau, vì vậy chúng có thể truyền và nhận cùng một lúc, tính chất của cổng nối tiếp này gọi là cổng song cổng.
Hình 2.18: Mơ tả hoạt động của cổng nối tiếp
2.2.5.2:Các thanh ghi của cổng nối tiếp
-Thanh ghi điều khiển cổng nối tiếp SCON (Serial Controller)
Thanh ghi cổng nối tiếp SCON có địa chỉ ở 98H có chức năng chứa các bit trạng thái và bit điều khiển cổng nối tiếp. Các bit điều khiển cài đặt chế độ điều khiển cho cổng nối tiếp cịn bit trạng thái thì dùng để kiểm tra thơng qua phần mềm hay có thể lập trình để tạo ngắt.
Bảng 2.8: Chức năng của các thanh ghi SCON Bit Ký hiệu Địa chỉ Mô tả
SCON.7 SM0 9FH Bit 0 chọn chế độ cho cổng nối tiếp SCON.6 SM1 9EH Bit 1 chọn chế độ cho cổng nối tiếp SCON.5 SM2 9DH Bit 2 chọn chế độ cho cổng nối tiếp
SCON.4 REN 9CH Bit cho phép thu, đặt bằng 1 để nhận ký tự SCON.3 TB8 9BH Bit truyền thứ 9 dùng trong AURT 9bit SCON.2 RB8 9AH Bit nhận thứ 9 dùng trong AURT 9bit SCON.1 TI 99H Cờ truyền
Thanh ghi này có chức năng đệm ký tự khi được truyền từ cổng nối tiếp hay nhận. Quá trình truyền nhận này thực ra là việc truy xuất thanh ghi này.
2.2.5.3: Các chế độ hoạt động của cổng nối tiếp
-Chế độ 0: là chế độ cổng nối tiếp có tác dụng như một thanh ghi dịch 8 bit. Dữ liệu truyền hay nhận được nối tiếp với chân RXD, chân TXD sử dụng để phát xung clock đi dịch bit. Lúc truyền nhận các byte dữ liệu 8 bit, trong đó bit LSB có giá trị thấp nhất được truyền/nhận đầu tiên còn các bit MSB được truyền/nhận cuối cùng. Việc truyền/nhận này bắt đầu bằng việc ghi lại 1 byte dữ liệu vào SBUF. Còn nhận dữ liệu được thực hiện khi bit REN đạt mức logic 1, lúc này cờ thu RI ở mức logic 0. Tốc độ baud được xác định cố định bằng Fosc/2.
-Chế độ 1: là chế độ truyền nối tiếp ở chân TXD, nhận nối tiếp ở RXD và ở chế độ này sẽ được giao tiếp bên ngồi thơng qua cổng COM. Cấu tạo khung dữ liệu có 10 bit. Trong đó có 8 bit dữ liệu, 1 bit thấp (bit star) và 1 bit cao (bit stop). Tốc độ baud của cổng nối tiếp có thể được cung cấp bởi timer 1, timer 2 hoặc được đồng bộ cả 2 timer nếu muốn tần số tạo ra có tốc độ baud chuẩn với sai số là không.
-Chế độ 2: là chế độ có khung cấu tạo truyền dữ liệu gồm 11 bit. Đầu tiên là bit thấp (bit star) sau đó đên 8 bit dữ liệu, bit thứ 9 cuối cùng là bit cao (bit stop). Chức năng của chế độ này là kiểm tra chẵn lẻ ở khung truyền để giảm bớt bit lỗi đường truyền.
-Chế độ 3 :là sự tổng hợp cả hai chế độ 1 và chế độ 2, giống như cổng nối tiếp sẽ hoạt động như một bộ UART có 9 bit và tốc độ baud của UART vẫn luôn thay đổi như chế độ 1 ( được cung cấp bởi timer 1, timer 2).
-Khởi tạo cổng nối tiếp:
+Truy xuất SCON để đặt các thông số như chế độ hoạt động, cho phép thu nhận,…
+Thiết lập hay xóa bit SMOD của thanh ghi PCON được sử dụng để xác định hệ số chia tốc độ baud.
+Truy suất các thanh ghi timer 1 và timer 2 có tác dụng để xác định tốc độ baud cho cổng nối tiếp (hoạt động ở chế độ 1 và chế độ 3).
+Kiểm tra cờ TI (ở giai đoạn truyền) và kiểm tra cờ RI (lúc nhận). +Ghi /đọc byte dữ liệu ở SBUF.