08-12-2008, 12:35 AM | #5 | |
Đệ tử 1 túi
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Ho Chi Minh city
Bài gửi: 20
: |
Trích:
Chào bạn, bạn thử thay lệnh delay_us(cycle) bằng delay_ms(cycle) với cycle=500 xem thử nhé, cũng là để dễ nhìn qua led xem 16f877 phát đến xung thứ mấy rồi. Chứ ngắt ngoài EXT_INT làm sao nhận nổi xung us, nó không được thiết kế để truyền dữ liệu (đòi hỏi tốc độ cao) mà dùng để đáp ứng ngắt. output_high(pin_b6); { if(count==20) output_high(pin_b7); // nếu nhận được 20 xung thì cho sáng led chân RB7 } đoạn lênh này có thể bỏ hai dấu {} đi, và sau lệnh output_high(pin_b7) nên thêm 2 dòng: delay_ms(1000); // sáng led 1s báo có dữ liệu truyền xong output_low(pin_b7); // tắt led đi báo đợi dữ liệu mới Mình viết như thế này để bạn dễ theo dõi PIC chạy bằng mắt thường. Chứ truyền dữ liệu người ta dùng khối chuyên dụng I2C hoặc theo chuẩn RS232,... |
|
|
|