#include char key;manage_key1(){}..................................manage_key16(){}void delays( ) { int v=500; while(v!=0)v--; }void keyscan( ){ char sccode,recode; P1DIR=0X0f; P1OUT=0X00; //置所有行为低电平,行扫描,列线输入(此时) if((P1IN&0X0F)!=0X0F) //判断是否有有键按下(读取列的真实状态,若第4列有键按下 则P1的值会变成0111 0000),有往下执行 { delays(); if((P1IN&0x0f)!=0x0f) //再次判断列中是否是干扰信号,不是则向下执行 { sccode=0xef; //逐行扫描初值(即先扫描第1行) while((sccode&0x01)!=0) //行扫描完成(4行已全部扫描完)sccode为1110 1111 停止while程序 { P1OUT=sccode; //输出行扫描码 if((P1IN&0x0F)!=0X0F) //本行有键按下(即P1(真实的状态)的高四位不全为1) { recode=(P1IN&0x0F)|0xf0; //列(列处于低四位,高四位补1) key=(sccode & recode); //行和列 }//所扫描行没有键按下,则扫描下一行,直到4行都扫描,此时sccode为1110 1111退出while程序 else { sccode=(sccode<<1)|0x10; ;//行扫描码左移一位 } } } //无键按下,返回0 }}void main( ){ keyscan(); delays(); switch(key) { case 0xee: manage_key1();break; // 1110 1110 case 0xde: manage_key2();break; // 1101 1110 case 0xbe: manage_key3();break; // 1011 1110 case 0x7e: manage_key4();break; // 0111 1110 case 0xed: manage_key5();break; // 1110 1101 case 0xdd: manage_key6();break; // 1101 1101 case 0xbd: manage_key7();break; // 1011 1101 case 0x7d: manage_key8();break; // 0111 1101 case 0xeb: manage_key9();break; // 1110 1011 case 0xdb: manage_key10();break; // 1101 1011 case 0xbb: manage_key11();break; // 1011 1011 case 0x7b: manage_key12();break; // 0111 1011 case 0xe7: manage_key13();break; // 1110 0111 case 0xd7: manage_key14();break; // 1101 0111 case 0xb7: manage_key15();break; // 1011 0111case 0x77: manage_key16();break; // 0111 0111 default: break; }}
导读:目前正在解读《msp430矩阵式4×4键盘源代码》的相关信息,《msp430矩阵式4×4键盘源代码》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《msp430矩阵式4×4键盘源代码》的详细说明。
简介:本文给大家分享了一个msp430矩阵式4×4键盘源代码。
提醒:《msp430矩阵式4×4键盘源代码》最后刷新时间 2024-03-14 00:57:47,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《msp430矩阵式4×4键盘源代码》该内容的真实性请自行鉴别。