🌱 Bài 15. 8051 UART (2)
Lý thuyết cơ bản về UART có trong bài trước!
Bài viết này nói về một số thanh ghi sử dụng trong lập trình UART với vi điều khiển 8051.
👉 Thanh ghi SBUF
Là thanh ghi 8 bit, sử dụng để chứa dữ liệu khi truyền nhận.
👉 Thanh ghi SCON
Cài đặt các chế độ UART, điều khiển hoạt động truyền nhận.
- Bit 7:6 - SM0:SM1: cài đặt chế độ truyền nhận. UART có 4 chế độ truyền nhận <có trong bảng bên dưới>.
Ta thường dùng chế độ 1 (SM0 = 0, SM1 = 1) với 8 bit dữ liệu, 1 bit bắt đầu và 1 bit dừng. - Bit 5 - SM2: Giao tiếp đa bộ xử lý ở mode 2&3.
- Bit 4 - REN: Cho phép nhận.
- Bit 3 - TB8: Truyền bit thứ 9 trong mode 2&3.
- Bit 2 - RB8: Nhận bit thứ 9 trong mode 2&3.
- Bit 1:0 - TI:RI: Cờ báo ngắt truyền/nhận xong.
👉 Thanh ghi TMOD
Thanh ghi này thực chất sử dụng cho Timer. Nhưng UART có 1 đặc trưng đó là tốc độ Baudrate.
Và tốc độ truyền bit này được cấu hình bằng Timer.
🧐🧐 Tính toán Baudrate
Trong User Manual đề xuất 1 số tính toán như hình bên dưới!!
➤ Hãy thử 1 ví dụ
Chẳng hạn tần số thạch anh ngoài 11.0592 MHz. Qua bộ chia 12, tần số chu kỳ máy là 921.6 kHz.
Tần số này qua bộ chia 32 (chia 2 + chia16) để UART sử dụng.
Tần số còn lại là 921.6 kHz / 32 = 28800 Hz.
Để đạt Baud = 9600 thì cần 28800 chia cho 3. Sử dụng Timer 1, mode 2 (auto reload),
Ta nạp TH1 = 253.
(Timer tràn sau mỗi 3 chu kỳ, 28800 sẽ được chia 3).
Có thể đặt Baud khác nhau bằng cách thay đổi TH1.
>>>= Follow ngay =<<<
💚 Kênh Youtube Lập trình - Điện tử 💚
Để nhận được những bài học miễn phí mới nhất nhé 😊