您的位置:首页 > 财经 > 产业 > 实验八:51开发板矩阵按键实验

实验八:51开发板矩阵按键实验

2024/12/23 14:13:08 来源:https://blog.csdn.net/oAMiTuoFo1234/article/details/141428658  浏览:    关键词:实验八:51开发板矩阵按键实验

电路原理图

也就是管脚图

数码管管脚图

只用其中一个,不做选择,默认第一个

代码

main.c

#include<reg52.h>typedef unsigned int u16;
typedef unsigned char u8;u8 gsmg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴0-F#define PRESS P1
#define SMG P0void delay_10us(u16 n)
{while(n--);
}press_scan(u8 mode)
{
int KEY=0;PRESS=0XF7;			   //第一列扫描if(PRESS!=0XF7){switch(PRESS){case 0X77:	KEY=1;break;case 0XB7:  KEY=5;break;case 0XD7:  KEY=9;break;case 0XE7:  KEY=13;break;}}while(PRESS!=0XF7);			//等待第一列按键松开PRESS=0XFB;			   //第二列扫描if(PRESS!=0XFB){switch(PRESS){case 0X7B:	KEY=2;break;case 0XBB:  KEY=6;break;case 0XDB:  KEY=10;break;case 0XEB:  KEY=14;break;}}while(PRESS!=0XFB);			//等待第二列按键松开PRESS=0XFD;			   //第三列扫描if(PRESS!=0XFD){switch(PRESS){case 0X7D:	KEY=3;break;case 0XBD:  KEY=7;break;case 0XDD:  KEY=11;break;case 0XED:  KEY=15;break;}}while(PRESS!=0XFD);			//等待第三列按键松开PRESS=0XFE;			   //第四列扫描if(PRESS!=0XFE){switch(PRESS){case 0X7E:	KEY=4;break;case 0XBE:  KEY=8;break;case 0XDE:  KEY=12;break;case 0XEE:  KEY=16;break;}}while(PRESS!=0XFE);			//等待第四列按键松开return(KEY);
}void main()
{int key=0;SMG=0;while(1){key=press_scan(0);if(key!=0){SMG=gsmg_code[key-1];}}
}

实验结果;

51开发板矩阵按键实验

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com