当前位置:文档之家› AVR简单好用的4x4矩阵键盘

AVR简单好用的4x4矩阵键盘

unsignedchar keyboard_Scan(volude #include
#include“key.h”
constunsignedcharkey_table[16]={1,2,3,12,4,5,6,13,7,8,9,14,10,0,11,15,
};
voiddelay_1ms(void)//1ms延时函数{unsignedinti;for(i=0;i//4x4矩阵键盘
扫描函数
unsignedchar keyboard_Scan(void){ unsigned chartemp,key,row,Column;
key_port_ddr=0b00001111;//高四位输入行线/低四位输出列线key_port=
#include #include
#include“key.h”
voidmain(void){unsignedcharKey;while(1){Key=keyboard_Scan();//键盘扫
描switch(Key) { case 0: break;
...... default: break;} }}
AVR简单好用的4x4矩阵键盘
// Target: ATMEGA16// Crystal: 8.0000Mhz
//key.h
#ifndef _4X4_H_#define_4X4_H_
#define No_key 255
#define key_portPORTB#define key_port_ddr DDRB#define key_port_pin PINB
主函数中的延时个人觉得最好还是用定时器
电路接法不同可修改key_table数组
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
0b11110000;//高四位打开上拉电阻/低四位输出低电平delay_nus(5);//延时5us
if((key_port_pin&0xF0)!=0xF0)//作初检查有否键按下,没有,就返回{//如果行
线不全为1,可能有键按下delay_nms(5);//延时去抖动
//设置列线初始值
3~0=1110for(Column=0,key_port=0b11111110;Column//main.c
相关主题