Các thao tác I/O
1/ Giới thiệu :
Đây là thao tác cơ bản nhất của IC lập trình
PIC so với những họ IC lập trình khác có thao tác I/O rất mạnh , mức độ chống nhiễu cao . Có rất nhiều
ứng dụng sử dụng thao tác I/O : điều khiển thiết bị , điều xung , LCD , …
2/ Các thanh ghi tham gia vào thao tác I/O :
Có 3 họ thanh ghi tham gia vào thao tác I/O : TRISx , PORTx , LATx
a/ TRISx : Đây là một thanh ghi cho phép một chân I/O nào đó là input hay output.
Cấu trúc thanh ghi TRISx :
VD : TRISB
B7 B6 B5 B4 B3 B2 B1 B0
- Là một thanh ghi 8 bit , mỗi bit tương ứng cho một pin.
- Một bit như vậy có hai trạng thái :
o 0 : pin tương ứng là output
o 1 : pin tương ứng là input
- Nhờ có thanh ghi này mà ta tường minh được việc IN / OUT dữ liệu , đồng thời chống được nhiễu
tín hiệu.
b/ PORTx : Đây là thanh ghi quan trọngtrong việc IN/OUT dữ liệu , nó chứa trạng thái của các chân
I/O.
- Cách hoạt động : thanh ghi này phụ thuộc hoàn toàn vào trạng thái của TRISx.
o Nếu TRISx là IN thì PORTx chỉ có thể là trạng thái từ bên ngoài tác động vào. Mọi thao tác
gán giá trị cho thanh ghi PORTx là vô nghĩa.
o Nếu TRISx là OUT thì PORTx chỉ được gán giá trị bằng chương trình. Mọi hành động dùng
điện thế bên ngoài nhằm ép buộc mức logic cho pin đều không tác dụng lên PORTx.
- Cấu trúc thanh ghi PORTx :
VD : PORTx
B7 B6 B5 B4 B3 B2 B1 B0
o Thanh ghi có độ dài 8 bits
o Mỗi bit đại diện cho một pin tương ứng.
o Trong quá trình thao tác thanh ghi này các bạn cần nắm rõ các thao tác che bít , dịch bít …
nhằm hạn chế ảnh hưởng của nó.
c/ LATx : Thanh ghi này cũng tương tự thanh ghi PORTx tuy nhiên chỉ sử dụng trong trạng thái các pin
là output. Trong thực tế nếu các bạn muốn tách bạch việc nhập xuất thì có thể sử dụng thanh ghi này.
Còn theo tôi thì chỉ cần thao tác tốt trên thanh ghi PORTx là đã đủ.
3/ Các hàm thao tác I/O :
Để thao tác I/O ta có thể dùng các hàm có sẵn của CCS C tuy nhiên điều này là không khuyến khích do
các hàm này không được linh động và sẽ làm cho ta khó khăn khi chuyển đổi sang các ngôn ngữ khác như
MPLAB hay MIKRO C.
. minh được việc IN / OUT dữ liệu , đồng thời chống được nhiễu
tín hiệu.
b/ PORTx : Đây là thanh ghi quan trọng trong việc IN/OUT dữ liệu , nó chứa trạng thái. ghi này cũng tương tự thanh ghi PORTx tuy nhiên chỉ sử dụng trong trạng thái các pin
là output. Trong thực tế nếu các bạn muốn tách bạch việc nhập xuất thì