Friday, March 11, 2016

BÀI 38 : GIAO TIẾP VỚI KEYPAD 3x4 PIC16F877A CCS

I. Keypad 3x4 (Keypad - Phone).
Keypad là một "thiết bị nhập" chứa các nút nhấn cho phép người dùng nhập các chữ số, chữ cái hoặc ký hiệu vào bộ điều khiển. Keypad không chứa tất cả bảng mã ASCII như keyboard và vì thế keypad thường được tìm thấy trong các thiết bị chuyên dụng. Các nút nhấn trên các máy tính điện tử cầm tay là một ví dụ về keypad. Số lượng nút nhấn của một keypad thay đổi phụ thuộc vào yêu cầu ứng dụng. Trong bài này tôi giới thiệu cách điều khiển của một loại keypad đơn giản, keypad 3x4.
Gọi là keypad 3x4 vì keypad này có 12 nút nhấn được bố trí dạng ma trận 4 hàng và 3 cột. Cách bố trí ma trận hàng và cột là cách chung mà các keypad sử dụng. Cũng giống như các ma trận LED, các nút nhấn cùng hàng và cùng cột được nối với nhau, vì thế với keypad 3x4 sẽ có tổng cộng 8 ngõ ra (4 hàng và 3 cột). Mô hình Keypad 3x4 được thể hiện trong hình 1.
keypad - phone
- Đây là ảnh mô phỏng protues.
keypad - phone pic16f877a
- Đây là code chương trình.
#include <main.h>
#include "lcd.c"
#include <kbd.c> 
#include <var.h>
void main() 
   char k=0;                     // Character k to store keypad input
   delay_ms(1); 
   /* Peripherals Configurations */ 
   LCD_Init();                   // Turn LCD ON, along with other initialization commands
   kbd_init();                   // Initialize Keypad     
   LCD_Gotoxy(1,1);              // point LCD cursor to col1 row1
   LCD_PutChar(" Hello World !!");  // print on LCD 
   LCD_Gotoxy(1,2);              // point LCD cursor to col1 row2

   while(1) // infinite loop 
   { 
      k = kbd_getc();            // read keypad input (if exists) 
      if(k!=0)                   // if key captured 
      { 
         LCD_PutChar(k);            // print captured key to lcd
         k=0;                    // reset k for another loop round
         delay_ms(250);          // delay between key presses
      } 
      delay_ms(1);               // delay_between read trials
   } 
- Link download project Click here

No comments:

Post a Comment