![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: May 2010
Bài gửi: 6
: |
![]() Chào các Bạn mình đang làm bài tập quét phím ma trận nhưng có 1 vấn đề mình chưa rõ nên đăng bài xin hỏi ý kiến các bạn. Mình xin chân thành cảm ơn!
Các bạn cho mình hỏi : + khi mình đặt ngõ vào và ngõ ra: ví dụ: TRISB=0X0F ; mục đich là SET các chân: --> RB0, RB1,RB2,RB3 là các chân nhận giữ liệu ( Ngõ vào) :--> RB4,RB5,RB6,RB7 là các chân xuất dữ liệu (ngõ ra) khi đó thì mình có thể dùng các lệnh: output_high(pin); và output_low(pin) trên các ngõ vào không. Hay là chỉ được sử dụng input_state(pin) thôi ! Bài của minh như thế này các bạn xem hộ nhé! xem mình chưa đúng chỗ nào với?? void quet_phim() // THỰC HIỆN QUÉT MA TRẬN PHÍM THEO CỘT { // input_state(pin_b0); output_high(PIN_B0); // THIET LAP COT_1 LAM NGO VAO MUC CAO output_high(PIN_B1); //....... //input_state(pin_b1); // THIET LAP CHAN VOI NGO VAO output_high(PIN_B2); //....... // input_state(pin_b2); output_high(PIN_B3); // input_state(pin_b3); output_low (PIN_B4); // THIET LAP HANG_1 LAM NGO RA output_low (PIN_B5); //....... output_low (PIN_B6); //....... output_low (PIN_B7); if((!RB0)|(!RB1)|(!RB2)|(!RB3)) // KIEM TRA COT NAO DUOC NHAN { delay_ms(10); // CHONG RUNG PHIM if(RB0==0) // KIEM TRA COT_1 DUOC NHAN PHIM { output_low (PIN_B0); delay_ms(10); // Bây giờ thiết lập các hàng là ngõ vào để kiểm tra output_high(PIN_B4); output_high(PIN_B5); output_high(PIN_B6); output_high(PIN_B7); if(RB4==0) // hàng một được nhận phím bấm {num=1;delay_ms(10);} if(!RB5) {num=2;delay_ms(10);} if (!RB6) {num=3;delay_ms(10);} if (!RB7) {num=4;delay_ms(10);} } if(RB1==0) { và quét lần lượt 4 cột ! |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|