|
*******************************************************************************
* 1.标题: 4x4矩阵按键显示实验 *
* 2.器件参数:AT89S52/STC89C51RC,11.0592Mhz *
* 3.实现功能: 编写程序,按键按下时,在数码管相应的值0~F。 *
* 4.连接方法:P1.7 --- P1.0 接 DP --- A *
* P0.7 接 S0 *
* 段锁存、位锁存 接 +5V *
* P2.0 --- P2.7 接 行1 --- 列4 *
* 5.编写日期:2016-11-11 v1.0 *
********************************************************************************
* 6.技术联系:nwpchennan@126.com *
*******************************************************************************/
#include<reg52.h>
void delay(unsigned char t);
bit key_certain(void);
/*******************************************************************************
* 实现功能:4×4键盘检测
* 现象描述:按下4×4按键数码管上显示相应的值
* K1(0) K2(1) K3(2) K4(3) K9(8) K10(9) K11(A) K12(B)
* K5(4) K6(5) K7(6) K8(7) K13(C) K14(D) K15(E) K16(F) *
*******************************************************************************/
unsigned char code tab[ ]={0x3f, 0x06, 0x5b, 0x4f,
0x66, 0x6d, 0x7d, 0x07,
0x7f, 0x6f, 0x77, 0x7c,
0x39, 0x5e, 0x79, 0x71,
0x00};
//0到F的16个键植
//此表为共阴数码管的段码编码[0-9]
unsigned char code DIS_BIT []={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char Display[]={0,0,0,0,0,0,0,0};
unsigned char key, j ,k, s,cnt;
/*******************************************************************************
* 名称 : Main() *
*******************************************************************************/
void main(void)//主函数
{
Display[0]=tab[16];
Display[1]=tab[16];
Display[2]=tab[2];
Display[3]=tab[3];
Display[4]=tab[4];
Display[5]=tab[5];
Display[6]=tab[6];
Display[7]=tab[7]; //最开始显示
while(1)
{
for(cnt=0;cnt<8;cnt++)
{
P1 = Display[cnt];
P0 = DIS_BIT[cnt];
delay(2);
|
|