Danh mục

Ứng dụng ic lập trình AT89C51: Dùng bàn phím điều khiển motor, relay, đèn...

Số trang: 44      Loại file: doc      Dung lượng: 3.40 MB      Lượt xem: 17      Lượt tải: 0    
Hoai.2512

Phí tải xuống: 5,000 VND Tải xuống file đầy đủ (44 trang) 0
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chúng ta biết, một "vật thể tự động hoàn chỉnh" phải gồm có: Ngả vào - Bộ nhớ - Ngả ra. Ngả vào là chỉ tác động bên ngoài đi vào vật thể, như ở con người, chúng ta cómắt để ghi nhận các thực thể xuất hiện ở dạng quang năng, có tai để nghe biết các sóng âm,có mũi để nhận ra mùi,có lưỡi để nhận biết vị và có lớp da bao bọc toàn thân để cảm nhận ra sự nóng lạnh, cứng mềm, nặng nhẹ... Đó là ngủ quan của con người. Bộ nhớ được dùng...
Nội dung trích xuất từ tài liệu:
Ứng dụng ic lập trình AT89C51: Dùng bàn phím điều khiển motor, relay, đèn... Ứng dụng ic lập trình AT89C51: Dùng bàn phím điều khiển motor, relay, đèn... Chúng ta biết, một vật thể tự động hoàn chỉnh phải gồm có: Ngả vào ­ Bộ nhớ ­ Ngả  ra. Ngả vào là chỉ tác động bên ngoài đi vào vật thể, như ở con người, chúng ta cómắt để  ghi nhận các thực thể xuất hiện ở dạng quang năng, có tai để nghe biết các sóng âm,có  mũi để nhận ra mùi,có lưỡi để nhận biết vị và có lớp da bao bọc toàn thân để cảm nhận ra  sự nóng lạnh, cứng mềm, nặng nhẹ... Đó là ngủ quan của con người. Bộ nhớ được dùng đề  lưu giữ các chương trình, chương trình là trí tuệ mà thực thể có thể truy cập, lấy ra thao  tác mỗi khi gặp các đối ứng cần giải quyết và Ngả ra chính là các tạo thể trang bị trên các  vật thể nó chấp hành theo các chương trình, như trên cơ thể của chúng ta các thực thể  thấy được như tứ chi hai tay hai chân, tim, phổi, gan, ruột...là các tạo thể luôn vận hành  theo các chương trình đã có trong bộ nhớ. Khi con người đứng gần chổ quá nóng, chúng ta  biết nóng và đã kịp đi ra xa chổ nóng, đó là phản ứng rất cơ bản của một vật thể tự động  hoàn chỉnh.Con người là sinh vật thông minh có khả năng học hỏi các chứng vật hiện diện  chung quanh trong thiên nhiên chung quanh và con người còn muốn tự mình tạo ra  các vật thể tự động hoàn chỉnh nữa. Ước muốn này đã có bước tiến vượt bậc từ khi người  ta chế tạo ra được các ic lập trình, nó hoạt động theo các chương trình đã có trong các bộ  nhớ. Trong lần này chúng ta sẽ nói đến tính năng nhập thông tin từ bên ngoài vào bên  trong của các ic lập trình, cơ bản nhất là dùng các phím nhấn, sau đó sẽ mở rộng qua các  cách lấy thông tin qua các cảm biến, như: quang trở, nhiệt trở, vị trở, từ trở, ẩm trở, áp trở,  phong trở, động trở, ... Với các cảm biến này, chúng ta có thể mô phỏng nhiều chức năng  giống như ngủ quan của các sinh vật vậy. Trước khi nói đến điều cao siêu, chúng ta hãy tìm hiểu một hệ vận hành cơ bản và đơn  giản cái đã. Các phím nhấn dùng với ic lập trình AT89C51Chúng ta biết ic lập trình  AT89C51 có 4 cảng 8 bit nên tổng cộng có 32 chân có thể xuất nhập dữ liệu dạng bit.  Cách nhập dữ liệu đơn giản nhất là dùng các phím nhấn. Phím nhấn chỉ làm việc theo  logic nhị giá, nghĩa là đóng hoặc hở. Với các phím nhấn, người ta có thể dùng đơn lẻ hay  tổ hợp theo dạng matrix. Hình vẽ dưới đây cho thấy: Các  phím gắn trên ma trận 4x4, người ta nói matrix 4x4 có 4 hàng và 4 cột. Trên ma trận 4x4  chúng ta chỉ dùng có 8 dây mà có thể gắn được đấn 16 phím, đó là một ưu điểm của loại  bàn phím matrix, dùng số chân ít mà gắn được nhiều phím. Với các phím đơn lập thì mỗi  phím thường gắn trên một chân của IC, vậy trên một cảng 8 chân chúng ta chỉ có thể gắn  được 8 phím.Các phím nhấn phân ra làm 2 kiểu: Kiểu phím nhấn thường hở và kiểu phím  nhấn thường đóng. Khi sử dụng các phím nhấn, chúng ta thường gặp vấn đề sau: Sự rung  phím.Vậy sự rung phím là gì?  Hình  vẽ cho thấy: Khi phím hở thì nó cho mức áp cao, ngay khi phím được nhấn xuống, nó sẽ  kéo mức áp xuống mức thấp, nhưng do hiện tượng rung phím, lúc này có sự rung động ở  tiếp xúc điểm, khiến cho tiếp điểm lúc dính lúc hở và mức áp sẽ dao động lúc lên lúc  xuống và phải sau một lúc mới ổn định được ở mức thấp. Khi bỏ phím nhấn ra, chúng ta  cũng gặp hiện tượng tương tự nhưng ít tác hại hơn. Khi dùng phím nhấn với các ic lập trình  có phản ứng cực nhanh hiện tượng rung phím sẽ gây ra các điều khiển sai. Khi viết chương  trình cho các phím nhấn, chúng ta phải chú ý đến ảnh hưởng của hiện tượng rung phím,  nhất là mỗi khi phím được đóng lại.Trong thực hành, người ta thường dùng một đoạn  chương trình làm chậm khoảng 3ms đến 10ms và cho dò lại lần nữa trạng thái của phím  để tránh sự sai lầm có thể xẩy ra do hiện tượng rung phím.* Mạch AT89C51 dùng 8 phím  nhấn đơn lập Khi dùng sơ đồ mạch điện này, trạng thái bit 1 trên các chân của cảng p1 được xem như  không có nhấn phím, khi có nhấn phím thì chân có phím được nhấn sẽ xuất hiện bit 0. Khi  một trong 8 chân của cảng p1 có chân ở bit 0, chúng ta biết là có nhấn phím, như vậy  chúng ta sẽ viết câu lệnh tìm xem trên cảng p1 có xuất hiện bit 0 hay không? Nếu không  có bit 0 trên p1 thì tiếp tục dò tìm, khi có chân có bit 0 thì hiểu là đã có phím bị nhấn  xuống, lúc đó chuyển qua tìm xem phím nào đã được nhấn và rồi tiếp theo là cho chạy  chương trình tương ứng với phím đã được nhấn. Sau đây là một đoạn chương trình dùng dò  xem có phím nhấn không?loop: ; đặt tên nhãn cho lệnh nhẩy call do_key ; cho gọi chương  trình dò phím, tên nhãn do_key jnb f0, ttuc ; nhẩy theo bit của f0, f0=0, tiếp tục dò  phím call tim_phim ; cho gọi trình xác định phím nào được nhấnttuc: ; tên nhãn cho lệnh  nhẩy jmp loop ; nhẩy về tên nhãn loop, bắt đầu lại công việc dò phím....do_key: ; tên nhãn  dùng cho lệnh nhẩy clr f0 ; cho xóa bit f0, bit kiểm tra có phím nhấn hay không? mov a,  p1 ; chuyển trạng thái bit trên p1 vào thanh ghi a orl a, #00000000b ; lấy logic OR trị trong  a với 00000000b, để tìm bit 0 trên p1 cpl a ; đảo trị trong thanh ghi a jz key_ret ; nếu trị  trong a là 0, nhẩy đến key_ret, không có phím nhấn call del ; gọi chương trình trể mov a,  p1 ; lại chuyển trạng thái của p1 vào a, kiểm tra lần nữa orl a, #00000000b ; lại cho lấy  logic OR trị trong a với 00000000b cpl a ; đảo trị trong a để dò xem có phím nhấn không jz  key_ret ; nhẩy đến tên nhãn key_ret nếu không có phím nào được nhấn setb f0 ; nếu có  phím nhấn, cho set bit kiểm tra f0 mov b,a ; cho chuyển trị trong a cho cất vào b để dùng  xác định phím nào được nhấnkey_ret: ; tên nhãn dùng cho lệnh nhẩy mov a, p1 ; cho  chuyển trạng thái cảng p1 vào a orl a, #00000000b ; lấy logic OR trị trong a với  00000000b cpl a ; đảo trị trong thanh ghi a jz key_ret1 ; nhẩy đến tên nhãn key_ret1, nếu  thanh a bằng 0 jmp key_ret ; nhẩy đến tên nhãn key ...

Tài liệu được xem nhiều: