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.

vaorapic

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.