您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页矩阵键盘识别

矩阵键盘识别

来源:飒榕旅游知识分享网
//4*4键盘检测程序,按下键后相应的代码显示在数码管上 #include sbit beep=P2^3; sbit dula=P2^6; sbit wela=P2^7;

unsigned char i=100; unsigned char j,k,temp,key; void delay(unsigned char i) {

for(j=i;j>0;j--)

for(k=125;k>0;k--); }

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; display(unsigned char num) {

P0=table[num]; // P0=0xff; dula=1; dula=0; P0=0xc0; wela=1; wela=0; }

void main() {

dula=0; wela=0; while(1) {

P3=0xfe; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) {

delay(10); if(temp!=0xf0) {

temp=P3; switch(temp) {

case 0xee: key=0; break;

case 0xde: key=1; break;

case 0xbe: key=2; break;

case 0x7e: key=3; break; }

while(temp!=0xf0) {

temp=P3;

temp=temp&0xf0; beep=0; }

beep=1; display(key); // P0=table[key]; /* P0=0xff; dula=1;

while(i--); dula=0; P0=0xc0; wela=1; wela=0; dula=0; wela=0; P0=0xff; dula=1; dula=0; P0=0xc5; wela=1; wela=0; */

P1=0xfe; } }

P3=0xfd; temp=P3;

temp=temp&0xf0;

if(temp!=0xf0) {

delay(10); if(temp!=0xf0) {

temp=P3; switch(temp) {

case 0xed: key=4; break;

case 0xdd: key=5; break;

case 0xbd: key=6; break;

case 0x7d: key=7; break; }

while(temp!=0xf0) {

temp=P3;

temp=temp&0xf0; beep=0; }

beep=1; display(key); /* P0=table[key]; dula=1;

// while(100--); dula=0; P0=0xc0; wela=1; wela=0; */ P1=0xfc; } }

P3=0xfb; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) {

delay(10); if(temp!=0xf0) {

temp=P3; switch(temp) {

case 0xeb: key=8; break;

case 0xdb: key=9; break;

case 0xbb: key=10; break;

case 0x7b: key=11; break; }

while(temp!=0xf0) {

temp=P3;

temp=temp&0xf0; beep=0; }

beep=1; display(key);

/* P0=table[key]; dula=1;

// while(100--); dula=0; P0=0xc0; wela=1; wela=0; */ P1=0xf8; } }

P3=0xf7;

temp=P3;

temp=temp&0xf0; if(temp!=0xf0) {

delay(10); if(temp!=0xf0) {

temp=P3; switch(temp) {

case 0xe7: key=12; break;

case 0xd7: key=13; break;

case 0xb7: key=14; break;

case 0x77: key=15; break; }

while(temp!=0xf0) {

temp=P3;

temp=temp&0xf0; beep=0; }

beep=1; display(key);

/* P0=table[key]; dula=1;

// while(100--); dula=0; P0=0xc0; wela=1; wela=0; */ P1=0xf0; } }

} }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务