Vậy ta làm nốt bài toán sau là xong hẳn về cái nút bấm: Bài toán là ta bấm phím RB1 thì LEd1 sáng, bấm phát nữa thì nó tắt....Chương trìng như sau:
Code:
void MAIN() {
PORTB = 0; // Xoá dữ liệu cổng B
TRISB = 0xFF; // Định nghĩa cổng B là input
PORTE = 0;
TRISE = 0;
ADCON1 = 0xE;
Loop:
if (PORTB.F1 == 0) { // Kiểm tra nút ấn RB1 có bấm không? Nếu bấm thì
if (PORTE.F0 == 0) PORTE.F0 = 1 // kiểm tra xem đèn đang tắt không? nếu đúng thì bật lên
else PORTE.F0 = 0; // nếu sai thì tắt nó đi
Delay_ms(50); // Tạo trễ 50ms để khử hết hiện tượng rung phím
Loop1:
if (PORTB.F1 == 0) goto Loop1; // chạy lòng vòng đợi đến khi tay người nhá hẳn nút bấm ra
}
goto Loop; // Lặp lại vòng lặp kiểm tra nút bấm
}