Thanh ghi TRISx kiểm soát hướng dữ liệu trên mỗi bit của một cổng. Mỗi chân trong một cổng được ánh xạ tới một bit trong thanh ghi TRIS. Hướng dữ liệu cho mỗi chân có thể được thiết lập bằng cách ghi một giá trị 8-bit vào thanh ghi TRIS riêng lẻ bằng cách thiết lập/xóa một bit thanh ghi TRIS hoặc hướng của tất cả các bit trong một cổng.
Khi RESET, tất cả các bit được liên kết với các chân trong thanh ghi TRIS được thiết lập thành ‘1’, làm cho tất cả các chân thành đầu vào High-Z (trở kháng cao).
Để cấu hình một chân làm đầu ra kỹ thuật số, cần đặt giá trị ‘0’ vào các bit tương ứng trong thanh ghi TRISx.
Giá trị đầu ra cho mỗi cổng có thể được nạp bằng cách ghi vào thanh ghi LAT của cổng. (Giống như tất cả các thanh ghi điều khiển cổng khác, tên của thanh ghi LATx được đặt theo chữ cái. (Thanh ghi LATx bắt đầu bằng LATA và tiếp tục qua LATB, LATC…).
Việc ghi ‘1’ vào một bit trong thanh ghi LAT sẽ đưa chân đến Vdd (điện áp nguồn). ‘0’ trong một bit LAT sẽ kéo chân xuống Vss (điện áp mass).
Việc ghi vào thanh ghi PORTx cũng sẽ điều khiển tín hiệu đầu ra giống như việc ghi vào thanh ghi LATx.
Tuy nhiên, dưới tải cao hoặc ở tần số cao, nếu nhiều lệnh sửa đổi bit (BSF, BCF) được ghi tuần tự vào một thanh ghi PORT đầu ra, có thể lệnh thao tác bit cuối cùng sẽ ghi đè lên một lệnh trước đó dẫn đến giá trị không chính xác trên cổng đầu ra. Để tránh khả năng xảy ra điều này, khuyến nghị mạnh mẽ rằng đầu ra luôn được thực hiện cho thanh ghi LATx.
Mã dưới đây là một ví dụ về việc cấu hình tất cả các chân trong PORTB làm đầu ra kỹ thuật số. Sau khi được cấu hình là chân đầu ra, 4 bit thấp hơn của cổng được đưa lên mức cao trong khi 4 bit trên được đặt thành ‘0’.
Ví dụ cấu hình PORTB làm đầu ra kỹ thuật số
Tại sao thanh ghi LAT được xóa trước khi thanh ghi TRIS được thiết lập? Khi RESET, nội dung của thanh ghi LATx là không xác định. Khuyến nghị nên đặt giá trị của tất cả các bit thanh ghi LAT đầu ra thành một giá trị đã biết (và an toàn) trước khi các chân đầu ra được kích hoạt. Điều này sẽ ngăn chặn bất kỳ xung đầu ra giả mạo, không mong muốn nào.
Trong ví dụ này, chỉ cấu hình của RB3 được thay đổi thành đầu ra kỹ thuật số. Sau khi được cấu hình, RB3 được đưa lên mức cao. Tất cả các chân khác (và các bit thanh ghi điều khiển tương ứng của chúng) không bị thay đổi.