if((scan1&0xf0)!=0xf0) //判键是否按下 { delayms(30); //延时30ms scan1=P3;if((scan1&0xf0)!=0xf0) //二次判键是否按下 { P3=0x0f;scan2=P3;keycode=scan1|scan2; //组合成键编码 for(j=0;j<=15;j++){ if(keycode== key_code[j]) //查表得键值 ...
/*** //文件名称:Key_dsy //功 能:4X4矩阵键盘控制数码管显示 //作 者:懒猫爱飞 //日 期:2010.05.25 ***/ #include<iom8515v.h> #include<macros.h> #define uchar unsigned char #define uint unsigned int //宏定义左移,右移函数crol为循环左移,cror为循环右移 #define crol(a,n) a=(a<<...
点enter键查找,然后选择Switches & Relays,就得到四 个搜索结果;3.单击查找结果,即可在右侧查看元器件符号,双击可添加元器件到器件栏;4.以下是查找到的四种矩阵键盘,分别是计算器键盘、简易计算器键盘、电话键盘以及一个4*4键盘,
include<intrins.h> define uchar unsigned char define uint unsigned int//矩阵键盘按键特征码表 uchar code KeyCodeTable[]={0x11,0x12,0x14,0x18,0x21,0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0x88};//延时 void DelayMS(uint x) // 延时 { uchar i;while(x--)f...
uchar code DSY_CODE[]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00 };uchar Pre_KeyNO = 16,KeyNO = 16;void DelayMS(uint ms){ uchar t;while(ms--){ for(t=0;t<120;t++);} } void Keys_Scan(){ uchar Tmp;P1...
keil编程,用4*4矩阵键盘输入,在数码管显示0~f 问:我写的程序如下,第一行四个键盘,摁了没用,数码管没反应,其他的12个... 答:第一行四个键盘,摁了没用,数码管没反应, ---是 1234 这四个按键吗? 程序,太长。 四行按键的程序,好像都是雷同的,应该没有什么问题。 键盘,是自己焊接的吗? 是不是某一...
类型:矩阵键盘。现象:按下键盘后,数码管显示相应的数字0-F 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!/ include<reg52.h> //52单片机头文件,一般不要改动,里面包含特殊功能寄存器的定义 define uchar unsigned char //将unsigned char定义为uchar,简化输写。提高编程速度 defin...
一、实验要求 利用4×4键盘和一个LED数码管构成简单的输入显示系统,实现键盘输入和LED数码显示相应键值的功能。二、实验目的 1.掌握数码管显示原理,及无译码显示电路的显示程序的编写; 1.理解矩阵键盘扫描的原理; 2.掌握矩阵键盘与51单片机接口的编程
你的while循环写的有问题,既然要先判断行选再判断列选,应该用两级的switch语句,而不是两级wihile语句,你现在的写法只循环了第二级的第一个while循环,所以只有处于第二级while的switch的三按(其实看代码应该是四个)键个管用。。。