单片机按键矩阵识别(含程序、原理图)
更新时间:2024-01-31 23:43:01 阅读量: 教育文库 文档下载
按键矩阵识别技术实验说明
如图2所示,把P1端口的8条I/O口分成4条列线4条行线交叉但不接触构成4×4键盘阵列,16个按键放置交叉位置,这样在单片机复杂系统需要较多按键时,这种接法可以节省单片机的硬件资源。
1.结合给出的电路原理图试分析4*4键盘矩阵识别原理,及LED动态扫描原理。(6分)
2.根据分析的键盘矩阵识别原理设计程序实现一下功能:当按下某个按键时在2个七段数码管上显示该按键的编号(注意考虑同时按下多个按键时程序处理过程)、按下某个按键使其弹起时对于消抖情况程序的处理。(9分)
IC STC89C51CY 12MHz1918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617C1 30PC2 30PR1 1KVCCR2~9 200SEVEN_SEG9RESETC3 10μ293031PSENALEEAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7NOT1NOT2P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P1.4P1.5P1.6K0P1.0K1P1.1K2P1.2K3P1.3K4K5K6K7K8K9K10K11K12K13K14K15P1.7
2.0相关原理图如下:
3.0实验说明
本试验给了1-8键判断方法。按1-8键中任意键,则数码管显示该键编号。 想想怎样实现1-16个键的判断显示? 参考程序见程序范例。
/******************************************************************************************
*描述: 按键距阵识别技术 *编写: 秦立春
*版本信息: V1.0 2008年4月20日
*说明: sp1,sp2,SP3跳线向右;
******************************************************************************************/
#include
#define uchar unsigned char #define uint unsigned int #define ON 0 #define OFF 1
uchar bdata OUT; sbit JDQ=OUT^0; sbit HF =OUT^1; sbit BZ =OUT^2; sbit AA =OUT^3; sbit BB =OUT^4; sbit CC =OUT^5; sbit DD =OUT^6;
sbit X0=P2^0; sbit X1=P2^1; sbit X2=P2^2; sbit X3=P2^3; sbit Y0=P2^4; sbit Y1=P2^5; sbit Y2=P2^6; sbit Y3=P2^7;
sbit RS=P1^7; sbit RW=P3^4; sbit E =P3^5;
sbit HC574_LE=P3^3;
//----------------------------------------------------- void delay(unsigned int t) // 延时函数 {
for(;t!=0;t--) ; }
//------------------------------------------------------ void HC574(void) // 74HC574控制输出; {
P0=OUT; HC574_LE=1; delay(2); HC574_LE=0; }
//================================================== unsigned char Key_Scan(void) {
uchar a, key; P2=0xf0;
if(!(Y0&&Y1&&Y2&&Y3)) {
P2=0xf0; delay(200);
if(!(Y0&&Y1&&Y2&&Y3)) {
P2=0xff; X0=0;
if(!(Y0&&Y1&&Y2&&Y3)){a=P2;a=(a&0xf0+0x0e);goto pp1;} P2=0xff; X1=0;
if(!(Y0&&Y1&&Y2&&Y3)){a=P2;a=(a&0xf0+0x0d);goto pp1;} P2=0xff; X2=0;
if(!(Y0&&Y1&&Y2&&Y3)){a=P2;a=(a&0xf0+0x0b);goto pp1;} P2=0xff; X3=0;
if(!(Y0&&Y1&&Y2&&Y3)){a=P2;a=(a&0xf0+0x07);goto pp1;} }
else a=0xff; }
else a=0xff;
pp1: key=a; return key; }
//----------------------------------------------------------- uchar key(void) {
uchar k, KEY; KEY=0xff; k=Key_Scan(); if(k!=0xff) {
while(k==Key_Scan());
switch(k) // 键码 {
case 0x7e: KEY=0x04;break; // 4 case 0x7d: KEY=0x08;break; // 8 case 0x7b: KEY=0x0b;break; // case 0x77: KEY=0x0f;break; // case 0xbe: KEY=0x03;break; // 3 case 0xbd: KEY=0x07;break; // 7 case 0xbb: KEY=0x0a;break; // case 0xb7: KEY=0x0e;break; // case 0xde: KEY=0x02;break; // 2 case 0xdd: KEY=0x06;break; // 6 case 0xdb: KEY=0x00;break; // 0 case 0xd7: KEY=0x0d;break; // case 0xee: KEY=0x01;break; // 1 case 0xed: KEY=0x05;break; // 5 case 0xeb: KEY=0x09;break; // 9 case 0xe7: KEY=0x0c;break; //
default: KEY=0xff;break; // 无键按下 } }
return KEY; }
main() {
uchar code shu[12]={0xc0,0xf9,0xa4,0xb0,0x99,//0,1,2,3,4, 0x92,0x82,0xf8,0x80,0x90,//5,6,7,8,9,
0x00,0xff}; //灭 共阳极数码管显示段码 uchar i,k;
uchar display[2]={0xff,0xff}; RS=0; RW=0; E=0;
OUT=0;HC574(); delay(60000); while(1) {
k=key(); if(k<=0x0f) {
display[0]=k/10; display[1]=k; }
for(i=0;i<2;i++) {
P1=(~(0X01<
OUT=0;HC574(); delay(60000); while(1) {
k=key(); if(k<=0x0f) {
display[0]=k/10; display[1]=k; }
for(i=0;i<2;i++) {
P1=(~(0X01<
正在阅读:
单片机按键矩阵识别(含程序、原理图)01-31
BEC中级口语真题09-09
英语形近、义近词辨析11-11
质量问题分析与解决技术06-10
美术教案-美术作品的艺术语言(精选7篇)03-28
新版职业技能鉴定加油站操作员题库中级06-15
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 矩阵
- 单片机
- 按键
- 识别
- 原理
- 程序
- Excel表格中如何依据据身份证号码自动填出生日期
- 六年级下册语文知识与能力训练答案
- 城市商业网点规划主要理论
- 3进水池分部验收鉴定书范本(SL223-2008规范)
- 江苏省徐州市2018年中考物理真题试题(含答案)
- 中国联通通信网络运行维护规程--移动网络优化分册
- 常熟市中小学领导干部任职前
- 体育经济学
- 纺织印染企业ISO贯标全套程序文件 - 图文
- my very first mother goose文本
- 城市轨道交通服务礼仪2016期末试卷 - A卷 - 附答案
- 山西焦化股份有限公司循环经济项目立项60万吨年甲醇(以焦炉煤气为原料)制烯烃项目申请立项环评报告书简本 - 图文
- 技术标,投标书
- 把握幼儿九大敏感期 - 图文
- 化工基础自测题
- 人教版 动物和人体的生命活动调节 单元测试(2)
- MDaemon邮件服务器-启用DNSBL
- 涉税违法犯罪行为的心理分析及稽查策略
- 2018年原创经典 IEC17025 2017 实验室管理之风险识别及应对控制程序(内含风险识别表及应对措施表)
- 《供应链管理》习题和答案要点