Bài 5:Gửi chuỗi kí tự qua UART

Một phần của tài liệu BÁO cáo môn hệ THỐNG điều KHIỂN NHÚNG đo nhiệt độ bằng LM35 hiển thị trên mà hình LCD sử dụng vdk pic16f877a (Trang 36 - 39)

• 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ềukhiển là RC6/TX/CK và RC7/RX/DT. Với chan 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.

RW-0 R/VV-0 R/VV-0 R/W-0 U-0 RM-0 R-1 RW-0 CSRC TX9 TXEN SYNC — BRGH TRMT TX9D bít 7 bít 0 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.

R/VV-0 R/VV-0 R/VV-0 R/VV-0 R/W-Ũ R-0 R-0 R-x

SPEN RX9 SREN CREN ADDEN EERR OERR RX9D

bít 7 bít 0

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:

TABLE10-1: BAUD RATEPORMULA

SYNC BRGH = 0 (Low Speed) BRGH =1 (High Speed)

0 (Asynchronous) Baud Rate = Fosc/(64(X+1)) Baud Rate = Fosc/(16(X+1|)

1 (Synchronous) Baud Rate = Fosơ(4(X+1)) N/A

x = valuein SPBRG (0 to 255)

PIR1: Thanh ghi chứa cờ ngắt truyền thông.

PIR1 REGISTER (ADDRESS OCh)

R/W-0 R/W-0 R-0 R-0 RM/-0 RM/-0 R/W-0 RM/-0

PSPIF<1) ADIF RCIF TXIF SSPIF CCP1IE TMR2IF TMR1IF

bit 7 bít 0

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:

INTCON REGISTER (ADDRESS OBh, 8Bh, 10Bh, 18Bh)

R/VV-0 R/W-0 R/W-0 R/W-0 R/VV-0 R/W-0 R/W-0 R/W-x

GIE PEIE TOIE INTE RBIE T0IF INTF RBIF

bít 7 bit 0

Bit 7: Cho phép ngắt toàn cục. Bit 6: Cho phép ngắt ngoại vi.

Một phần của tài liệu BÁO cáo môn hệ THỐNG điều KHIỂN NHÚNG đo nhiệt độ bằng LM35 hiển thị trên mà hình LCD sử dụng vdk pic16f877a (Trang 36 - 39)

Tải bản đầy đủ (DOCX)

(67 trang)
w