Khi học lập trình cho bất kì một dòng vi điều khiển nào thì phần I/O Port thường được quan tâm đầu tiên và các ví dụ cho việc xuất hay đọc I/O là một trong các ví dụ đơn giản. Đối với vi điều khiển PIC có rất nhiều dòng và cũng khác nhau về số lượng I/O Port từ PIC 12F675 chỉ có 8 PIN cho đến PIC 16F877A, PIC 16F887 có 40 PIN.
Phần lý thuyết các hàm vào ra trong CCS lập trình C cho vi điều khiển PIC,dsPIC
Bao gồm các hàm sau:
1 / Output_low ( pin ) , Output_high (pin ) :
+ Dùng thiết lập mức 0 ( low, 0V ) hay mứ c 1 ( high , 5V ) cho chân IC , pin chỉ vị trí chân ví dụ PIN_B0, Pin_C1... các chân mà vi điều khiển có trong khai báo thư viện của CCS cho loại PIC mà bạn đang sử dụng.
Ví dụ Output_low(PIN_A0); đưa chân RA0 xuống mức thấp, Output_high(PIN_B1); đưa chân RB1 lên mức cao.
2 / Output_bit ( pin , value ) :
+ pin : tên chân, value : giá trị 0 hay 1
+ Hàm này cũng xuất giá trị 0 / 1 trên pin , tương tự 2 hàm trên . Thường dùng nó khi giá trị ra tuỳ thuộc giá trị biến 1 bit nào đó , hay muốn xuất đảo
của giá trị ngõ ra trước đó . Ví dụ : output_bit(PIN_C1,1); đưa chân C1 lên mức 1.
3 / Output_float ( pin ) :
+ Hàm này set pin như ngõ vào , cho phép pin ở mức cao như 1 cực thu hở.
4/output_drive(pin)
+Hàm này set pin như ngõ ra
5/ Input ( pin ) :
+ Hàm này trả về giá trị 0 hay 1 là trạng thái của chân IC . Giá trị là 1 bit. Ví dụ: switch1= Input(PIN_B0); đôc giá trị chân RB0 gán váo biến switch1
6 / Output_X ( value ) :
+ X là tên port có trên chip . Value là giá trị 1 byte ví dụ Ouput_B(0xff)
7 / Input_X ( ) :
+ X : là tên port ( a, b ,c ,d e ) .
+ Hàm này trả về giá trị 8 bit là giá trị đang hiện hữu của port đó.
8 / Set_tris_X ( value ) :
+ Hàm này định nghĩa chân IO cho 1 port là ngõ vào hay ngõ ra, bằng 1 là input, 0 là output.
SET_TRIS_B( 0x0F );
// B7,B6,B5,B4 : outputs
// B3,B2,B1,B0 : inputs
9/ output_toggle(pin)
+ Đảo giá trị high/low của Pin, thường dùng để xuất ra xung vuông khi đặt nó trong Timer.