Lập trình nút nhấn đơn giản
Ở các bài trước mình đã hướng dẫn các bạn xuất dữ liệu từ vi điều khiển rồi thì hôm nay mình sẽ viết bài viết về nhận dữ liệu từ nút nhấn, có thể là tín hiệu điều khiển .v.v.. tùy vào ứng dụng của bạn
Để vi điều khiển nhận được xung điều khiển thì rất là đơn giản chỉ cần nối dữ liệu vào post của VĐK ở đây sử dụng nút nhấn.
Trong lập trình để kiểm tra sự kiện nào đó thì các bạn có thể sử dụng câu điều kiện trong vòng lặp VD:
sbit nut = P1^0; //khai báo biến kiểu bit, P1.0 làm nút nhấn
while(1){ //Chờ khi nào chân P1.0 xuống mức thấp
if(nut==0){
//code ctr
}
}
Viết ngắn gọn:
while(nut); //khi p1.0 xuống 0 làm điều kiện sai vòng lặp sẽ thoát
//code ctr
OK đây là code tham khảo, mỗi khi nhấn nút thì LED nháy 3 lần, giữ nút thì LED nhấp nháy liên tục:
#include
void delay(unsigned char t){
//Chuong trinh tao tre 50ms
unsigned char i;
for(i=0;i<t;i++){
TH0=0x3c;
TL0=0xb0;
TR0=1;
while(!TF0);
TF0=TR0=0;
}
}
//Khai bao bien kieu bit
sbit nut = P1^0; //Chan P1.0 lam nut an
sbit led = P3^0; //Chan P3.0 gan led
unsigned char j;
/* Ctr khi nhan nut thi LED nhap nhay tan so 1Hz */
void main(){
TMOD=0x01;//Sd timer0 lam delay
delay(20); //led sang khi cap nguon
led=0; //roi tat led
while(1){
while(nut); //Cho nhan nut thi chay code ben duoi
for(j=0;j<3;j++){//vong lap for
led=1; //led sang
delay(10); //tre 0.5s
led=0; //led tat
delay(10); //tre 0.5s
}
}
}
Ở bài viết sắp tới sẽ nói tới ngắt VĐK, sử dụng ngắt ngoài sẽ hay hơn là dùng vòng lặp để thăm dò tốn tài nguyên VĐK, khi dùng ngắt các bạn có thể cho nó làm công việc khác ngoài ngồi chờ mình nhấn nút...
Bài viết sửa lúc 31-10-2013, 15:32 bởi Vũ Văn Thái