资源简介
适用于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单片机与LCD12864实现俄罗斯方块游
- ATMEGA128单片机入门与提高_part2
- 基于51单片机电子秤的代码
- 51单片机通过蜂鸣器实现电子琴7个音
- 基于单片机动态扫描文字的设计
- 基于单片机的智能插座设计与实现
- 51单片机智能窗帘
- 51单片机火灾报警器
- 基于单片机的GSM智能快递箱设计
- 电子设计大赛纸张计数2019.zip
- 基于51单片机超声波测距内含源程序,
- 蓝桥杯单片机设计与开发历年真题(
- 蓝桥杯单片机省赛全历年真题已解全
- 单片机的俄罗斯方块
- 51单片机的200个protel原理图
- 51单片机开发入门与典型(第2版)
- 单片机编程软件 keil4包含破解与安装
- 基于51单片机的步进电机正反转调速系
- 电饭锅单片机控制系统模拟仿真
- 基于单片机的灭火机器人
- 基于STM32单片机智能手环脉搏心率计步
- 基于MSP430系列单片机控制的智能小车
- 基于51单片机的GSM短信防盗报警系统
- 新华龙单片机开发资料
- 迷人的8051单片机[文字版]
- 手把手教你学单片机完整.pdf
- 基于stm32的俄罗斯方块游戏机总工程文
- STC15F2K60S2中文资料
- AltiumDesigner绘制51单片机最小系统教程
- 50个单片机入门小程序
评论
共有 条评论