Chào mừng đến với Câu Lạc Bộ Sáng Tạo
Chia sẻ kinh nghiệm
Kết nối đam mê
Đang cập nhật thời gian...
BÀI VIẾT NỔI BẬT
Xin chào! Tôi là Ếch Sáng Tạo :-)
Chia sẻ trang




Chuyên mục
Bài mới
Xem nhiều
Thống kê
  • Bài viết: 334/334
  • Thành viên: 10.085
  • Đang online: 16
  • Khách hôm nay: 2.287
  • Khách hôm qua: 2.955
  • Tổng khách: 16.199.845
Bài viết
Bài 5: Lập trình nút nhấn đơn giản - SangTaoClub.Net
Bài 5: Lập trình nút nhấn đơn giản
Đăng bởi: Vũ Văn Thái - Thời gian: 26-09-2013, 15:32
Chuyên mục: Học lập trình 8051 - Lượt xem: 17.994

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
       }
   }

}

 

Lập trình nút nhấn đơn giản - SangTaoClub.Net

Ở 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
  • Bạn chưa đăng nhập, không thể viết bình luận!
    Bấm vào đây để Đăng nhập hoặc Đăng ký!
  • Vũ Văn Thái lúc 01-03-2016, 19:13
    Code C bạn dùng trình biên dịch KeilC để biên dịch ra file hex mới nạp được vào chip, kể cả ASM cũng phải biên dịch mới nạp cho vi điều khiển được, bạn lên học C sau này muốn tiếp cận dòng vi điều khiển mới cũng dễ hơn, có thể tái sử dụng thư viện ngoại vi của các chip mà trước đó bạn đã làm.
  • Vũ Văn Thái lúc 26-02-2016, 18:03
    Mắc chân EA lên VCC chưa bạn, Thạch anh, RST nối tụ trở chưa....
    • bizzuu lúc 01-03-2016, 16:58
      Uh bạn cho mình hỏi để chạy code c lên 89c4051 sao nó ko sử dụng được nhỉ ?
      với 4051 mình hay dùng asm còn với c thì nộp vào nó ko chạy được ?
    • bizzuu lúc 27-02-2016, 06:56
      Ok rồi bạn . Cảm ơn bạn nhiều nhé . Mình quên mất cái chân EA
  • bizzuu lúc 26-02-2016, 11:45
    Sao mình chạy trong proteu thì được còn chạy bên ngoài nó lại ko được là so nhỉ ? Có ai bị như mình ko . CHo mình biết lý do với . Thanks
  • tanthuc lúc 21-06-2014, 14:38
    Hình như mắc cái R1 vào Led không sáng đó bạn!!!
  • tanthuc lúc 21-06-2014, 12:28
    hi, mà mua tất tần tật cái này thì mất bao nhiêu tiền vậy bạn?
  • tanthuc lúc 21-06-2014, 12:27
    Hay wa ban a, thk, de tui test thu xem, co gi chi giao nha!!!
  • daibang lúc 04-11-2013, 14:17
    cung hay day chu? :D
  • trungiyen lúc 31-10-2013, 13:36
    cái này hay đấy
  • Trang 1/1: 1

    Bài viết cùng chuyên mục
    Điều khiển tốc độ động cơ Motor DC sử dụng PWM Điều khiển tốc độ động cơ Motor DC sử dụng PWM
    Đăng bởi: kienvuce - Thời gian: 04-11-2021, 22:40
    Chuyên mục: Học lập trình 8051 - Lượt xem: 3.126
    Chia sẻ bộ thư viện Driver chuẩn cho LCD Gphone và Home Phone Chia sẻ bộ thư viện Driver chuẩn cho LCD Gphone và Home Phone
    Đăng bởi: Vũ Văn Thái - Thời gian: 22-02-2017, 14:54
    Chuyên mục: Học lập trình 8051 - Lượt xem: 6.631
    Led 7 thanh 4 số điều khiển bằng nút bấm Led 7 thanh 4 số điều khiển bằng nút bấm
    Đăng bởi: HoangQuan69 - Thời gian: 09-10-2016, 15:08
    Chuyên mục: Học lập trình 8051 - Lượt xem: 5.935
    Chia sẻ Code đồng hồ số hiển thị trên LED 7 đoạn dùng 89S52 và DS1307 Chia sẻ Code đồng hồ số hiển thị trên LED 7 đoạn dùng 89S52 và DS1307
    Đăng bởi: Vũ Văn Thái - Thời gian: 13-05-2015, 09:00
    Chuyên mục: Học lập trình 8051 - Lượt xem: 28.701
    Bài 15: Lập trình quét phím matrix 4x4 hiển thị lên LCD 16x2 Bài 15: Lập trình quét phím matrix 4x4 hiển thị lên LCD 16x2
    Đăng bởi: Vũ Văn Thái - Thời gian: 20-11-2014, 08:57
    Chuyên mục: Học lập trình 8051 - Lượt xem: 31.807
    [Share] Code giao tiếp Graphic LCD 12864 SPI của máy GPHONE ZTE [Share] Code giao tiếp Graphic LCD 12864 SPI của máy GPHONE ZTE
    Đăng bởi: Vũ Văn Thái - Thời gian: 12-11-2014, 22:06
    Chuyên mục: Học lập trình 8051 - Lượt xem: 19.277
    [Share] Code C đo nhiệt độ dùng DS18B20 hiển thị lên LED 7 thanh [Share] Code C đo nhiệt độ dùng DS18B20 hiển thị lên LED 7 thanh
    Đăng bởi: Vũ Văn Thái - Thời gian: 12-11-2014, 09:02
    Chuyên mục: Học lập trình 8051 - Lượt xem: 19.601
    Bài 14: Đo nhiệt độ dùng cảm biến DS18B20 với 8051 Bài 14: Đo nhiệt độ dùng cảm biến DS18B20 với 8051
    Đăng bởi: Vũ Văn Thái - Thời gian: 19-10-2014, 10:11
    Chuyên mục: Học lập trình 8051 - Lượt xem: 25.431
    Bài 13: Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051 Bài 13: Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051
    Đăng bởi: Vũ Văn Thái - Thời gian: 22-08-2014, 22:18
    Chuyên mục: Học lập trình 8051 - Lượt xem: 46.032
    Bài 12: Tạo xung PWM dùng ngắt timer 8051 Bài 12: Tạo xung PWM dùng ngắt timer 8051
    Đăng bởi: Vũ Văn Thái - Thời gian: 02-03-2014, 20:45
    Chuyên mục: Học lập trình 8051 - Lượt xem: 24.130
    
    Chào mừng hieutrang đã tham gia câu lạc bộ sáng tạo!
    Vũ Văn Thái - vuthai
    Hôm nay là sinh nhật của doinhugiobayxa, bangguong84, thaivande, haidong0212, quynang, ocbieu3636, skytnut, soidonghoangtd94, vuquocdungmta, khangdlk123, thanh7780, ngovanson, tuananhckd2504, lybang, splendid2504, Lesondt, thucduyen2604, hanhbe, tuanngocly95, anhhungsg, anhkhoa951, ← Gửi tin nhắn chúc mừng
    Múi giờ: UTC+07:00 - Asia/Ho Chi Minh ***** IP của bạn: 3.15.219.217 ***** Status: Cache Update thành công!