嵌入式矩阵键盘检测控制实验4Word文档下载推荐.doc
《嵌入式矩阵键盘检测控制实验4Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《嵌入式矩阵键盘检测控制实验4Word文档下载推荐.doc(9页珍藏版)》请在冰豆网上搜索。
![嵌入式矩阵键盘检测控制实验4Word文档下载推荐.doc](https://file1.bdocx.com/fileroot1/2022-10/19/85f97ad7-1f3b-4c7c-a617-531f36ae51ed/85f97ad7-1f3b-4c7c-a617-531f36ae51ed1.gif)
A.强□ B.中等□ C.差□
该同学的实验是否达到要求:
A.达到□ B.基本达到□ C.未达到□
实验报告是否规范:
A.规范□ B.基本规范□ C.不规范□
实验过程是否详细记录:
A.详细□ B.一般□ C.没有□
教师签名:
年月日
一、实验目的
掌握单片机系统中矩阵键盘的编程控制方法,学会实时程序的调试技巧。
二、实验原理
键盘是单片机应用中常用的输入设备,在应用系统中,操作人员可通过键盘向系统输入指令、地址和数据,实现简单的人机通信。
键盘实际上是一组按键开关的集合,平时总是处于断开状态,当按下键时它才闭合。
按键在闭合和断开时,触点会存在抖动现象,抖动时间一般为5-10ms,如下图示:
键盘的处理主要涉及以下3个方面的内容:
Ø
按键的识别
所接I/O口线是高还是低电平(根据连接情况)
抖动的消除
硬件消抖
软件消抖(延时)
判断键值
独立式键盘
矩阵式键盘
实验板电路原理图如下:
三、实验内容
按下16个矩阵键盘依次在数码管上显示1-16的平方。
如按下第一个显示1,第二个显示4...
四、实验步骤
1、按实验内容要求在µ
Vision中创建项目,编辑、调试、编译程序。
(1)创建项目
单击菜单的“project”→“NewProject”,出现【CreateNewProject】窗口,选择实验所要存的文件夹。
②输入工程名“shiyan4”,点击“保存”,出现【SelectDeviceForTarget】。
③选择“Atmel”→“AT89C52”,如下图
④点击“确定”出现如下窗口
⑤点击“是”,然后开发环境自动建立一个包含启动代码项目的空文件,该启动代码为“STARTUP.A51”。
(2)编辑程序
①单击菜单“File”→“New”,出现一个窗体,然后单击“保存【SaveAs】”,出现如下图
③输入文件名“Main.c”,点击“保存”,然后在左边的工程窗口选中“SourceGroup1”并右键单击出现右键菜单,选择“AddFilestoGroup‘SourceGroup1’”,出现如下图
选择Main.c文件,点击“Add”,最后点击“Close”,出现如下图
(3)调试程序、编译程序
程序代码:
-9-
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitU1=P2^6;
sbitU2=P2^7;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,};
uchartemp,shi,ge,bai;
uintkey;
voiddelay(uintz)
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
}
voiddisplay(uintnumberGet)
numberGet=numberGet*numberGet;
bai=numberGet/100;
shi=numberGet%100/10;
ge=numberGet%10;
U2=1;
P0=0xfe;
//1111'
1110
U2=0;
U1=1;
P0=table[bai];
U1=0;
delay(5);
U2=1;
P0=0xfd;
1101
P0=table[shi];
P0=0xfb;
1011
P0=table[ge];
voidinit()
P0=0xc0;
//1100'
0000
P0=0;
voidkeyscan()
P3=0xfe;
temp=P3;
temp=temp&
0xf0;
//屏蔽低四位
if(temp!
=0xf0)
{
delay(10);
//消除抖动
temp=P3;
temp=temp&
if(temp!
{
temp=P3;
switch(temp)
{
case0xee:
key=1;
break;
case0xde:
key=2;
case0xbe:
key=3;
case0x7e:
key=4;
}
while(temp!
=0xf0)//判断按键释放
temp=P3;
temp=temp&
display(key);
}
}
P3=0xfd;
case0xed:
key=5;
case0xdd:
key=6;
case0xbd:
key=7;
case0x7d:
key=8;
}
P3=0xfb;
case0xeb:
key=9;
case0xdb:
key=10;
case0xbb:
key=11;
case0x7b:
key=12;
P3=0xf7;
case0xe7:
key=13;
case0xd7:
key=14;
case0xb7:
key=15;
case0x77:
key=16;
}
voidmain()
init();
while
(1)
keyscan();
display(key);
2、将编译生成的目标码文件(后缀为.Hex)下载到实验板上。
①右键单击工程窗口“Target1”,然后从右键菜单选中“OptionsforTarget‘Target1’”
②从弹出的窗口“OptionsforTarget‘Target1’”中选中“Output”选项卡,然后勾选“CreateHex”,如下图,最终生成shiyan4.hex文件。
3、观察实验运行结果并记录。
按下第三个键:
3的平方
按下第七个键:
7的平方
按下第十五个键:
15的平方
按下第十六个键:
16的平方
五、总结
经过这个试验我对矩阵键盘检测控制实验的相关知识的了解,不过我这个试验的程序编辑、编译不太熟悉,搞了好久也没有得到结果,最后在老师的帮助下完成了一个困难的问题又来到了,我对试验板又不知道如何操作,经过同学们的帮助我最终完成了这个试验这个程序,并开始将编译生成的目标码文件传入实验板中。