Bài 2: I/O PORT
Chúng ta có thể cài đặt I/O cho các chân digital của Dspic bằng các thanh ghi sau:
TRISx = 0bxxxxxx;
để lựa chọn các chân của PORTx là input hay output, với 1 là input, 0 là output
vd:
TRISB = 0x02; // 0x01 = 0b10;
tức là chân RB0 là chân output, chân RB1 là input;
hoặc chúng ta set bit trực tiếp lên địa chỉ chân:
_TRISB0 = 0;
_TRISB1 = 1;
Các địa chỉ này đã được định nghĩa sẵn trong thư viện của mplab.
Hai thanh ghi PORTx là LATx dùng để đọc và ghi giá trị lên chân I/O.
Tuy nhiên khi người dùng cố tình chuyển đổi chức năng I/O cho 1 chân bất kì thì giá trị PORTx có thể bị sai lệch
đọc giá trị trên chân:
vd:
if (_LATB0 == 0)
led = ~led;
if (_PORTB1 == 1)
led1= ~led1;
Ngoài ra, các chân I/O trên dspic còn tích hợp các chức năng đặc biệt khác, mà khi muốn sử dụng chức năng nào, chúng ta phải cấu hình lại chân đó.. chúng ta sẽ tìm hiểu ở các bài tiếp theo
TRISx = 0bxxxxxx;
để lựa chọn các chân của PORTx là input hay output, với 1 là input, 0 là output
vd:
TRISB = 0x02; // 0x01 = 0b10;
tức là chân RB0 là chân output, chân RB1 là input;
hoặc chúng ta set bit trực tiếp lên địa chỉ chân:
_TRISB0 = 0;
_TRISB1 = 1;
Các địa chỉ này đã được định nghĩa sẵn trong thư viện của mplab.
Hai thanh ghi PORTx là LATx dùng để đọc và ghi giá trị lên chân I/O.
Tuy nhiên khi người dùng cố tình chuyển đổi chức năng I/O cho 1 chân bất kì thì giá trị PORTx có thể bị sai lệch
đọc giá trị trên chân:
vd:
if (_LATB0 == 0)
led = ~led;
if (_PORTB1 == 1)
led1= ~led1;
Ngoài ra, các chân I/O trên dspic còn tích hợp các chức năng đặc biệt khác, mà khi muốn sử dụng chức năng nào, chúng ta phải cấu hình lại chân đó.. chúng ta sẽ tìm hiểu ở các bài tiếp theo
Nhận xét
Đăng nhận xét