4X4矩阵键盘+160251单片机的Proteus实验Word下载.docx
- 文档编号:19938648
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:9
- 大小:65.92KB
4X4矩阵键盘+160251单片机的Proteus实验Word下载.docx
《4X4矩阵键盘+160251单片机的Proteus实验Word下载.docx》由会员分享,可在线阅读,更多相关《4X4矩阵键盘+160251单片机的Proteus实验Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
0714.1************
//********改进说明:
暂无************
//********补充说明:
从键盘输入0-F,在LCD上显示出来
//*********头文件区*******************
#include<
reg52.h>
math.h>
absacc.h>
#defineucharunsignedchar
#defineuintunsignedint
//*********定义变量区*******************
sbitdula=P2^6;
//关闭数码管显示之用
sbitwela=P2^7;
sbitlcden=P3^4;
//LCD使能信号
sbitlcdrs=P3^5;
//LCD数据/命令选择信号
uchartab_key[50];
ucharcodetab[]="
0123456789abcdef"
;
ucharn=0,temp,key;
//*********函数声明区********************
voidlcd_disp();
//LCD显示函数
voidlcd_init();
//LCD初始化函数
voidwrite_com(uchar);
//写命令函数
voidwrite_data(uchar);
//写数据函数
voiddelay(uint);
//延迟函数
voidkey_scan();
//键盘扫描函数
voidkey_manage1();
//键盘功能分配函数
voidkey_manage2();
voidkey_manage3();
voidkey_manage4();
voidkey_manage5();
voidkey_manage6();
voidkey_manage7();
voidkey_manage8();
voidkey_manage9();
voidkey_manage10();
voidkey_manage11();
voidkey_manage12();
voidkey_manage13();
voidkey_manage14();
voidkey_manage15();
voidkey_manage16();
//**********主函数开始**********
voidmain()
{
lcd_init();
write_com
(1);
while
(1)
key_scan();
lcd_disp();
}
//**********LCD显示函数开始***********
voidlcd_disp()
uchara,i=0;
write_com(0x80);
for(i=0;
i<
n;
i++)
a=tab_key[i];
write_data(tab[a]);
//**********LCD初始化函数开始*********
voidlcd_init()
dula=0;
wela=0;
//关闭数码管显示
lcden=0;
write_com(0x38);
//设置显示模式:
16X2,5X7,8位数据接口
write_com(0x0c);
//开显示,显示光标,光标闪烁
write_com(0x06);
//读写一个字符后,地址指针及光标加一,且光标加一整屏显示不移动
//设置光标指针
//**********写命令函数开始************
voidwrite_com(ucharcom)
lcdrs=0;
//低电平写命令
P0=com;
//写入命令
delay(3);
//延时约3ms
lcden=1;
//LCD使能端置高电平
delay(5);
//延时约5ms
//LCD使能端拉低电平
//**********写数据函数开始************
voidwrite_data(uchardat)
lcdrs=1;
//低电平写数据
P0=dat;
//**********键盘扫描函数开始****
voidkey_scan()
//**********扫描第一行*********
P3=0xfe;
temp=P3;
temp=temp&
0xf0;
if(temp!
=0xf0)
delay(100);
switch(temp)
case0xee:
key_manage1();
break;
case0xde:
key_manage2();
case0xbe:
key_manage3();
case0x7e:
key_manage4();
while(temp!
//**********扫描第二行*********
P3=0xfd;
case0xed:
key_manage5();
case0xdd:
key_manage6();
case0xbd:
key_manage7();
case0x7d:
key_manage8();
//**********扫描第三行*********
P3=0xfb;
case0xeb:
key_manage9();
case0xdb:
key_manage10();
case0xbb:
key_manage11();
case0x7b:
key_manage12();
//**********扫描第四行*********
P3=0xf7;
case0xe7:
key_manage13();
case0xd7:
key_manage14();
case0xb7:
key_manage15();
case0x77:
key_manage16();
//*********延时函数开始**************
voiddelay(uintk)
uinti,j;
for(i=k;
i>
0;
i--)
for(j=50;
j>
j--);
//******键盘功能分配函数群开始********
//键盘功能示意图
//设计者:
聂金波
//**1**2**3**4**
//**5**6**7**8**
//**9**0**s**c**
//**M1**M2**M3**M4**
voidkey_manage1()
tab_key[n]=0;
n++;
voidkey_manage2()
tab_key[n]=1;
voidkey_manage3()
tab_key[n]=2;
voidkey_manage4()
tab_key[n]=3;
voidkey_manage5()
tab_key[n]=4;
voidkey_manage6()
tab_key[n]=5;
voidkey_manage7()
tab_key[n]=6;
voidkey_manage8()
tab_key[n]=7;
voidkey_manage9()
tab_key[n]=8;
voidkey_manage10()
tab_key[n]=9;
voidkey_manage11()
tab_key[n]=10;
voidkey_manage12()
tab_key[n]=11;
voidkey_manage13()
tab_key[n]=12;
voidkey_manage14()
tab_key[n]=13;
voidkey_manage15()
tab_key[n]=14;
voidkey_manage16()
tab_key[n]=15;
Proteus仿真图
依次从键盘输入:
abcd277817639(本人QQ号)
4X4矩阵键盘-Proteus截图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- X4 矩阵 键盘 160251 单片机 Proteus 实验