掌握矩阵键盘使用.docx

上传人:b****6 文档编号:7028233 上传时间:2023-01-16 格式:DOCX 页数:11 大小:619.70KB
下载 相关 举报
掌握矩阵键盘使用.docx_第1页
第1页 / 共11页
掌握矩阵键盘使用.docx_第2页
第2页 / 共11页
掌握矩阵键盘使用.docx_第3页
第3页 / 共11页
掌握矩阵键盘使用.docx_第4页
第4页 / 共11页
掌握矩阵键盘使用.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

掌握矩阵键盘使用.docx

《掌握矩阵键盘使用.docx》由会员分享,可在线阅读,更多相关《掌握矩阵键盘使用.docx(11页珍藏版)》请在冰豆网上搜索。

掌握矩阵键盘使用.docx

掌握矩阵键盘使用

 

单片机原理及应用实验五

 

专业:

15自动化

姓名:

学号:

指导老师:

李素敏

 

中央民族大学信息工程学院

 

一、实验目的

掌握矩阵键盘使用

二、实验仪器

1、PC机

2、STC89C52单片机

三、实验步骤

1、熟悉单片机硬件结构,匹配管脚

2、根据实验要求编写程序

3、编译成功后烧录至单片机

四、实验要求

对实验板上4*4矩阵键盘的16个按键S6---S21进行按键次数统计。

键号06、07……21用最左边2位数码管显示,按键次数用右侧4位数码管显示。

有键按下时,显示相应键号和该键累计按键次数,没键按下时,数码管不亮。

(无论键号还是按键次数都用其十进制数显示。

5、实验结果

#include

sbitdula=P2^6;

sbitwela=P2^7;

unsignedchari=100;

unsignedcharj,k,temp,key;

unsignedcharjishu[16];

unsignedcharp=-1;

voiddelay(unsignedchari)

{

for(j=i;j>0;j--)

for(k=125;k>0;k--);

}

unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

voiddisplay(unsignedcharnum,unsignedcharjishu)

{

unsignedcharqian,bai,shi,ge,shi1,ge1;

unsignedi;

for(i=0;i<20;i++)

{

shi1=num/10;

ge1=num%10;

qian=jishu/1000;

bai=(jishu-1000*qian)/100;

shi=(jishu-1000*qian-100*bai)/10;

ge=jishu%10;

P0=table[shi1];

dula=1;

dula=0;

P0=0xfe;

wela=1;

wela=0;

delay(5);

P0=table[ge1];

dula=1;

dula=0;

P0=0xfd;

wela=1;

wela=0;

delay(5);

P0=table[qian];

dula=1;

dula=0;

P0=0xfb;

wela=1;

wela=0;

delay(5);

P0=table[bai];

dula=1;

dula=0;

P0=0xf7;

wela=1;

wela=0;

delay(5);

P0=table[shi];

dula=1;

dula=0;

P0=0xef;

wela=1;

wela=0;

delay(5);

P0=table[ge];

dula=1;

dula=0;

P0=0xdf;

wela=1;

wela=0;

delay(5);

}

}

voidmain()

{

dula=0;

wela=0;

while

(1)

{

P3=0xfe;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xee:

key=6;

jishu[0]++;

p=0;

break;

case0xde:

key=7;

jishu[1]++;

p=1;

break;

case0xbe:

key=8;

jishu[2]++;

p=2;

break;

case0x7e:

key=9;

jishu[3]++;

p=3;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

P3=0xfd;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xed:

key=10;

jishu[4]++;

p=4;

break;

case0xdd:

key=11;

jishu[5]++;

p=5;

break;

case0xbd:

key=12;

jishu[6]++;

p=6;

break;

case0x7d:

key=13;

jishu[7]++;

p=7;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

P3=0xfb;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xeb:

key=14;

jishu[8]++;

p=8;

break;

case0xdb:

key=15;

jishu[9]++;

p=9;break;

case0xbb:

key=16;

jishu[10]++;

p=10;

break;

case0x7b:

key=17;

jishu[11]++;

p=11;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

P3=0xf7;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xe7:

key=18;

jishu[12]++;

p=12;

break;

case0xd7:

key=19;

jishu[13]++;

p=13;

break;

case0xb7:

key=20;

jishu[14]++;

p=14;

break;

case0x77:

key=21;

jishu[15]++;

p=15;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

}

display(key,jishu[p]);

}

}

6、实验感想

实验做起来有点困难,这是一道比较综合的题目,刚开始时第一排的按键每次都不正确,直到老师讲解拔下下载线,才开始正常,修改了很多次。

感觉按键确认的程序巧妙,感觉写程序最重要的是思维能力的培养。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1