键盘接口实验.docx
- 文档编号:264230
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:6
- 大小:366.54KB
键盘接口实验.docx
《键盘接口实验.docx》由会员分享,可在线阅读,更多相关《键盘接口实验.docx(6页珍藏版)》请在冰豆网上搜索。
实验题目:
实验六键盘接口实验
一、 实验目的
1.掌握KeilC51软件与Protues软件联合仿真调试的方法;
2.掌握单片机的键盘接口电路;
3.掌握单片机键盘扫描原理;
4.掌握键盘的去抖原理及处理方法。
二、 实验仪器与设备
1.微机一台
2.KeilC51集成开发环境
3.Protues仿真软件
三、 实验内容
1.用Proteus设计一矩阵键盘接口电路。
要求利用P1口接一4*4矩阵键盘。
串行口通过一74LS164接一共阴极数码管。
2.用线反转法编写矩阵键盘识别程序,要求采用中断方式(列线通过4输入与门74LS20接/INTO),无按键按下时,数码管循环画“8”;有按键按下时产生中断并将按键的键值0~F通过串行口输出,在数码管上显示3秒钟后返回;返回后,数码管继续循环画“8”o
3.将P1口矩阵键盘改为8个独立按键,键盘通过74LS30(8输入与非门)和74LS04(六反相器)与/INTO相连。
用定时扫描方式重新编写识别和显示程序,其中按键key7每按动一次数码管显示数字加1(从0开始),其他按键显示按键编号。
四、 实验说明
矩阵键盘识别一般应包括以下内容:
C1)判别有无键按下
C2)键盘扫描取得闭合键的行,列号
(3)用计算法或查表法得到键值
C4)判断闭合键是否释放,如没释放则继续等待
C5)将闭合键的键值保存,同时转去执行该闭合键的功能
五、 实验原理及步骤
1.用Proteus设计键盘接口电路;
2.在KeilC51中编写键盘识别程序,编译过后,与Proteus联合调试;
3.按动任意键,观察键值是否能正确显示。
六、 电路设计及调试
(1)矩阵键盘:
实验程序:
#include
#defineucharunsignedchar
#defineuintunsignedint
uchars=O,flag=O,x;
uchar code
KEY_TABLE[]={0x7e,0xbe,0xde,0xee,0x7d,0xbd,0xdd,0xed,0x7b,0xbb,0xdb,0xeb,0x77,0xb7,0xd7,0xe7};
uchar code
TABLE[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};
ucharcodet[]={0x80,0x84,0x86,0xa6,0xb6,0xbe,0xbe,0xfe};
voiddelayl()
{uintn=20000;while(n-);}
voiddelays()
{uintn=10000;while(n«);}
voidINT_0(void)interrupt0
{uchara,b,c,i;
EXO=O;delays();EXO=l;
x=l;EA=l;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ETO=1;
TRO=1;
SCON=OxOO;
Pl=OxfO;
if(Pl!
=OxfO)
{
delays();
if(Pl!
=OxfO)
(
a=Pl;
Pl=OxOf;
b=alPl;
for(i=0;i<16;i++)
{if(b==KEY_TABLE[i])
{c=i;break;}
SBUF=TABLE[c];
TI=0;while(flag==O);
flag=O;
)
}}
}
voidmain()
(ucharj;
SCON=OxOO;
Pl=0xf0;
EA=1;
TI=0;
EXO=1;
ITO=1;
while(l)
{if(x==l)
{Pl=0xf0;
x=0;
)
if(x==0)
(SBUF=t[j++];
TI=0;
if(j>=8)j=0;
delaylQ;}
)
}
voidtimeO(void)interrupt1(TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
s++;
if(s>=60)(s=0;flag=l;}
)
(2)独立按键:
实验程序:
#include
#defineucharunsignedchar
#defineuintunsignedint
uchars=O,flag=O,x=O;
ucharcodeKEY_TABLE[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code
TABLE[]={Oxfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};
ucharcodet[]={0x80,0x84,0x86,0xa6,0xb6,0xbe,0xbe,0xfe};
voiddelay(uintm)
(ucharn;
while(m—)
for(n=0;n<120;n++);
}
voidmain()
(ucharij;
Pl=0xff;
EA=1;
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
PT0=l;
ET0=l;
TR0=l;
SCON=0x00;
while(l)
(if(flag==0)
(SBUF=t[j++];
TI=0;
if(j>=8)j=0;
delay(200);}
if(flag==l)
{for(i=0;i<=7;i++)
(if(Pl==KEY_TABLE[i])
(if(i<=6)
(SBUF=TABLE[i];
TI=0;
delay(800);
}
if(i==7)
{SBUF=TABLE[x++];
TI=0;
delay(800);
if(x>=16)x=0;
}
}
}
flag=O;
}
}
}
voidtimeO(void)interrupt1
(
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
s++;
if(s>=10){s=0;flag=l;}
}
五、实验后的经验总结
通过这次实验掌握了单片机键盘扫描原理的处理方法。
也了解了我们日常生活中常见的电脑及手机等各种数码电子产品键盘的工作原理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 键盘 接口 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)