• Nguyên lý: Truyền thông là 1 vấn đề khá quan trọng của vi điều khiển. Ở bài này chúng ta sẽ sử dụng truyền thông nối tiếp UART. Vì giao tiếp với máy tính qua cổng COM giao thức RS232. Mức logic là -12V : +12. Nên chúng ta đấu trực tiếp 2 chân RX và TX của vi điều khiển sẽ gây ra hư hỏng. Vậy nên giải pháp ở đây là cần phải kết hợp với một thiết bị chuyển đổi mức điện áp để tạo ra một chuẩn giao tiếp nào đó nên chúng ta sẽ sử dụng IC MAX232. Loại IC này được thiết lập cho chuẩn RS232 mà còn được thiết kế với nguồn 5V để chúng ta có thể truyền thông từ vi điều khiển lên máy tính qua con IC này. Để bắt đầu cho việc truyền dữ liệu bằng UART, một START bit được gửi đi, sau đó là các bit dữ liệu và kết thúc quá trình truyền là STOP bit. Sau START bit là đến các bit dữ liệu D0-D7. Sau khi truyền hết dữ liệu thì đến Bit Parity để bộ nhận kiểm tra tính đúng đắn của dữ liệu truyền. Để truyền thông chúng ta sẽ sử dụng 2 chân của vi điều khiển là RC6/TX/CK và RC7/RX/DT. Với chân RC6/TX/CK chúng ta sử dụng để truyền dữ liệu đi. Còn chân RC7/RX/DT là để nhận dữ liệu trở về. Để truyền và nhận dữ liệu ta cần quan tâm tới các thanh ghi cài đặt truyền nhận TXSTA, RCSTA, các thanh ghi liên quan đến ngắt khi truyền thông PIR1, INTCON, thanh ghi cài đặt tốc độ truyền SPBRG, và thanh ghi đệm TXREG. Sau khi thiết lập xong các thông số cho UART xong thì ta sẽ thực hiện thao tác qua lại giữa vi điều khiển với máy tính và ngược lại. Nếu nút bấm 1 trong vi điều khiển được bấm thì sẽ truyền dữ liệu 1 lên máy tính. Nếu nút bấm 2 được bấm thì dữ liệu 2 sẽ được truyền lên máy tính. Còn nếu máy tính truyền ký tự ‘1’ xuống
vi điều khiển thì đèn 1 sáng và gửi ký tự ‘2’ thì đèn 2 sáng. Bây giờ chúng ta sẽ đi tìm hiểu các thanh ghi.
▪ TXSTA: Thanh ghi thiết lập truyền dữ liệu.
Bit 6 TX9:
0: chọn chế độ truyền là 8 bít. 1: chọn chế độ truyền 9 bít. Bit 5 TXEN: bit cho phép truyền
0: không cho phép. 1: cho phép.
Bit 4 SYNC: Thiết lập chọn đồng bộ hay không đồng bộ. 0: Không đồng bộ.
1: đồng bộ.
Bit 2 BRGH: chọn tốc độ truyền nếu ở chế độ không đồng bộ. 0: Tốc độ thấp.
1: Tốc độ cao.
▪ RCSTA: Thanh ghi thiết lập nhận dữ liệu.
Bit 7 SPEN: Cho phép truyền thông. 0: Không cho phép.
1: Cho phép.
Bit 6 RX9: Cho phép nhận chế độ 9 bít. 0: Không cho phép
1: Cho phép.
0: Không cho phép. 1: Cho phép.
Bit 4 CREN: cho phép nhận bit liên tục. 0: cho phép.
1: Không cho phép.
▪ SPBRG: Thanh ghi thiết lập tốc độ truyền. Ta có bảng và công thức tính cho thanh ghi này như sau:
▪ PIR1: Thanh ghi chứa cờ ngắt truyền thông.
Bit 5 RCIF: Cờ ngắt tràn khi nhận dữ liệu. 0: Chưa tràn
1: Đã tràn.
Bit 4 TXIF: Cờ ngắt tràn khi truyền dữ liệu. 0: Chưa tràn.
1: Đã tràn. ▪ INTCON:
Bit 7: Cho phép ngắt toàn cục. Bit 6: Cho phép ngắt ngoại vi.