-
大小: 40KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-05-21
- 语言: 其他
- 标签:
资源简介
51单片机4×4键盘proteus仿真51单片机4×4键盘proteus仿真51单片机4×4键盘proteus仿真
代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
uchar bufftimesj;
unsigned char code dispcode[]={0x3f0x060x5b0x4f //0123
0x660x6d0x7d0x07 //4567
0x7f0x6f0x770x7c //89AB
0x390x5e0x790x710x00}; //CDEFnull
unsigned char idata value[8];
void delay1ms(void) //消抖动
{ uchar i;
for(i=200;i>0;i--);
}
void delay5ms(void) //延时5ms
{
unsigned char ij;
for(i=5;i>0;i--)
for(j=248;j>0;j--);
}
void key_scan(void) //键盘输入扫描函数
{ uchar hangliekey;
P3=0xf0;
if((P3&0xf0)!=0xf0) //行码为0,列码为1
{ delay1ms();
if((P3&0xf0)!=0xf0) //有键按下,列码变为0
{ hang=0xfe; //逐行扫描
times++;
if(times==9)
times=1;
while((hang&0x10)!=0) //扫描完4行后跳出
{ P3=hang;
if((P3&0xf0)!=0xf0) //本行有键按下
{ lie=(P3&0xf0)|0x0f;
buff=((~hang)+(~lie));
switch(buff)
{ case 0x28: key=0;break;
case 0x14: key=1;break;
case 0x24: key=2;break;
case 0x44: key=3;break;
case 0x12: key=4;break;
case 0x22: key=5;break;
case 0x42: key=6;break;
case 0x11: key=7;break;
case 0x21: key=8;break;
case 0x41: key=9;break;
case 0x81: key=10;break;
case 0x82: key=11;break;
case 0x84: key=12;break;
case 0x88: key=13;break;
case 0x48: key=14;break;
case 0x18: key=15;break;
}
value[times-1]=key; //按下的键值
}
else hang=(hang<<1)|0x01; //下一行扫描
}
}
}
}
void main(void)
{ uchar key;
while(1)
{ key_scan();
P0=0;
for(j=times;j>0;j--) //74LS138扫描?
{
P2=j-1; //数码管列扫描
P0=dispcode[value[times-j]]; //A-G数据
delay5ms();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1307 2007-01-03 15:13 key_scan.Opt
文件 231 2007-01-03 15:13 key_scan.plg
文件 1683 2007-01-03 14:31 key_scan.Uv2
....... 1656 2007-01-03 12:21 key_scan_Uv2.Bak
文件 2178 2007-01-03 15:12 key.c
文件 101199 2007-01-03 15:20 KEY.DSN
文件 717 2007-01-03 15:20 KEY.PWI
文件 698 2006-12-12 20:14 key_scan.h
文件 101199 2007-01-03 15:04 Last Loaded KEY.DBK
文件 4203 2007-01-03 15:13 key.LST
文件 28 2007-01-03 15:13 key_scan.lnp
文件 8224 2007-01-03 15:13 key_scan.M51
文件 1117 2007-01-03 15:13 key_scan.hex
....... 1309 2007-01-03 15:05 key_scan_Opt.Bak
文件 4871 2007-01-03 15:13 key.OBJ
文件 4056 2007-01-03 15:13 key_scan
----------- --------- ---------- ----- ----
234676 16
- 上一篇:硬盘助手v0.3.rar
- 下一篇:mdwiki 项目模板代码
评论
共有 条评论