资源简介
适用于51单片机,4*4矩阵键盘,led数字屏,有c代码带仿真(keil uvision4),可显示数字0-9,字母A-O,“熄灭”“自定义”

代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
sbit we = P2^7;
sbit du = P2^6;
uchar code leddata[]={
0x3F //“0“
0x06 //“1“
0x5B //“2“
0x4F //“3“
0x66 //“4“
0x6D //“5“
0x7D //“6“
0x07 //“7“
0x7F //“8“
0x6F //“9“
0x77 //“A“
0x7C //“B“
0x39 //“C“
0x5E //“D“
0x79 //“E“
0x71 //“F“
0x76 //“H“
0x38 //“L“
0x37 //“n“
0x3E //“u“
0x73 //“P“
0x5C //“o“
0x40 //“-“
0x00 //熄灭
0x00 //自定义
};
void delay(uint z)
{
uint xy;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
}
uchar KeyScan() //带返回值的子函数
{
uchar cord_lcord_h;//声明列线和行线的值的储存变量
P3 = 0x0f;//0000 1111
if( (P3 & 0x0f) != 0x0f)//判断是否有按键按下
{
delay(5);//软件消抖
if( (P3 & 0x0f) != 0x0f)//判断是否有按键按下
{
cord_h = P3 & 0x0f;// 储存行线值
P3 = cord_l | 0xf0;
cord_l = P3 & 0xf0;// 储存列线值
while( (P3 & 0xf0) != 0xf0 );//松手检测
return (cord_l + cord_h);//返回键值码
}
}
}
void KeyPro()
{
switch( KeyScan() )
{
//第一行键值码
case 0xee: P0 = leddata[0]; break;
case 0xde: P0 = leddata[1]; break;
case 0xbe: P0 = leddata[2]; break;
case 0x7e: P0 = leddata[3]; break;
//第二行键值码
case 0xed: P0 = leddata[4]; break;
case 0xdd: P0 = leddata[5]; break;
case 0xbd: P0 = leddata[6]; break;
case 0x7d: P0 = leddata[7]; break;
//第三行键值码
case 0xeb: P0 = leddata[8]; break;
case 0xdb: P0 = leddata[9]; break;
case 0xbb: P0 = leddata[10]; break;
case 0x7b: P0 = leddata[11]; break;
//第四行键值码
case 0xe7: P0 = leddata[12]; break;
case 0xd7: P0 = leddata[13]; break;
case 0xb7: P0 = leddata[14]; break;
case 0x77: P0 = leddata[15]; break;
//独立键盘
case 0xfe: P0 = leddata[16]; break;
case 0xfd: P0 = leddata[17]; break;
case 0xfb: P0 = leddata[18]; break;
case 0xf7: P0 = leddata[19]; break;
}
}
void main()
{
we = 1;//打开位选
P0 = 0;//八位数码管全显示
we = 0;//锁存位选
du = 1;//打开段选端
P0 = leddata[22];
while(1)
{
KeyPro();//提取键值码并且送不同数值给数码管显示
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3683 2014-08-11 21:00 矩阵键盘\KeyScan
文件 2610 2014-08-11 21:00 矩阵键盘\KeyScan.c
文件 1087 2014-08-11 21:00 矩阵键盘\KeyScan.hex
文件 46 2014-08-11 21:00 矩阵键盘\KeyScan.lnp
文件 5979 2014-08-11 21:00 矩阵键盘\KeyScan.LST
文件 5820 2014-08-11 21:00 矩阵键盘\KeyScan.M51
文件 4207 2014-08-11 21:00 矩阵键盘\KeyScan.OBJ
文件 984 2014-08-11 21:48 矩阵键盘\KeyScan.Opt
文件 178 2014-08-11 21:48 矩阵键盘\KeyScan.plg
文件 2149 2014-05-23 22:43 矩阵键盘\KeyScan.Uv2
文件 992 2014-08-11 21:48 矩阵键盘\KeyScan_Opt.Bak
文件 0 2014-05-23 21:21 矩阵键盘\KeyScan_Uv2.Bak
文件 775323 2014-07-15 09:18 矩阵键盘\矩阵键盘.jpg
目录 0 2017-03-02 21:08 矩阵键盘
----------- --------- ---------- ----- ----
803058 14
- 上一篇:trnsys的安装文件和资料
- 下一篇:专转本计算机资料以及一些模拟卷
相关资源
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
评论
共有 条评论