Khi CP/RL2=1 thì timer hoạt động ở chế độ thu nhận. Khi đó timer T2 hoạt động bình thường như một timer/counter 16 bit, thanh ghi TL2, TH2 sẽ lưu trữ xung đếm và nếu có sự chuyển trạng thái từ FFFFH sang 0000H thì sẽ sinh ra tràn và làm cho cờ tràn TF2=1. Bit cờ tràn có thể kiểm tra bằng phần mềm hay có thể tạo ra ngắt.
Hình 4-18. Hoạt động của timer T2 ở chế độ Thu nhận dữ liệu.
Để cho phép chế độ thu nhận hoạt động thì làm cho bit EXEN2 = 1. Nếu bit EXEN2 = 1 và khi có sự chuyển trạng trái từ 1 sang 0 ở ngõ vào T2EX thì chế độ thu nhận sẽ xảy ra: giá trị đếm được trong thanh ghi TL2, TH2 sẽ được chuyển sang 2 thanh ghi RCAP2L và RCAP2H. Cờ EXF2 cũng được chuyển lên mức 1 để báo hiệu quá trình thu nhận đã xảy ra, cờ EXF2 có thể kiểm tra bằng phần mềm hoặc tạo ngắt.
Hoạt động thu nhận dữ liệu của timer T2 được trình bày ở hình 4-18.
VI. HOẠT ĐỘNG TRUYỀN DỮ LIỆU CỦA VI ĐIỀU KHIỂN MCS51
1. GIỚI THIỆU:
Truyền dữ liệu nối tiếp của MCS51 có thể hoạt động ở nhiều kiểu riêng biệt trong phạm vi cho phép của tần số. Dữ liệu dạng song song được chuyển thành nối tiếp để truyền đi và dữ liệu nhận về dạng nối tiếp được chuyển thành song song.
Chân TxD (P3.1) là ngõ xuất dữ liệu đi và chân RxD (P3.0) là ngõ nhận dữ liệu về.
Đặc trưng của truyền dữ liệu nối tiếp là hoạt động song công có nghĩa là có thể thực hiện truyền và nhận dữ liệu cùng một lúc.
Hai thanh ghi chức năng đặc biệt phục vụ cho truyền dữ liệu là thanh ghi đệm SBUF và thanh ghi điều khiển SCON. Thanh ghi đệm SBUF nằm ở địa chỉ 99H có 2 chức năng: nếu vi điều khiển ghi dữ liệu lên thanh ghi sbuf thì dữ liệu đó sẽ được truyền đi, nếu hệ thống khác gởi dữ liệu đến thì sẽ được lưu vào thanh ghi đệm sbuf. Sơ đồ khối của hệ thống truyền dữ liệu như hình 4-19.
Hình 4-19. Sơ đồ khối của truyền dữ liệu nối tiếp.
Thanh ghi điều khiển truyền dữ liệu SCON nằm ở địa chỉ 98H là thanh ghi cho phép truy suất bit bao gồm các bit trạng thái và các bit điều khiển. Các bit điều khiển dùng để thiết lập nhiều kiểu hoạt động truyền dữ liệu khác nhau, còn các bit trạng thái cho biết thời điểm kết thúc khi truyền xong một kí tự hoặc nhận xong một kí tự. Các bit trạng thái có thể được kiểm tra trong chương trình hoặc có thể lập trình để sinh ra ngắt.
Tần số hoạt động của truyền dữ liệu nối tiếp còn gọi tốc độ BAUD (số lượng bit dữ liệu được truyền đi trong một giây) có thể hoạt động cố định (sử dụng dao động trên chip) hoặc có thể thay đổi. Khi cần tốc độ Baud thay đổi thì phải sử dụng Timer 1 để tạo tốc độ baud.