单片机键盘实验报告.doc
文本预览下载声明
精品学习资料范文
单片机键盘实验报告
篇一:单片机 行列式键盘实验报告
洛阳理工学院实验报告
篇二:单片机实验五_-键盘实验
信息工程系实验报告
课程名称:单片微型计算机与接口技术
实验项目名称:实验五 键盘实验 实验时间:2013-12-02
班级:电信*** 姓名:*** 学号:110706
实 验 目 的:
熟悉keil仿真软件、proteus仿真软件的使用和实验板中行列式键盘的使用。了解并熟悉行列式键盘
的电路结构、与单片机的连接方法及其工作原理,理解掌握C51中单片机控制行列式键盘中判断按键是否
按下、按键的识别、按键的消抖分别是如何实现的。
实 验 原 理:
键盘是单片机系统中通用的输入设备,用于向系统输入数据或控制信息。键盘中一般矩阵式(行列式)
键盘用得较多,适用于按键数量较多的场合。
矩阵式键盘由行线和列线组成,按键位于行线、列线的交叉点上。当键被按下,则其交点的行线和列
线接通。行和列可分别用两个I/O口来控制。
判断是否有键按下时,行线通过上拉电阻接+5V上,而先使所有列线为低电平(I/O输出0),再读
行线状态(输入口),当无键按下时,所有行线为高电平,即读到“全1”数据;当有某键按下时,总会有
一根行线为低电平,即读到的数据不全为“1”。
按键的识别(识别键的行列位置)有两种方法:扫描法和反转法。反转法将行线接一并口,做输出方
式;列线接一并口,做输入方式。使所有行线为低电平(送全“0”),读入列线值,为“0”的那列,即
按键所在列;反过来,使行线做输入方式,列线做输出方式。将刚读到的列线值输出,然后读行线值,为
“0”的那行,即按键所在行。编程时使用P1=0x0f;m=P1;P1=0xf0;n=P1;mn=m|n;即可得到按键的键值,每一个按键都有自己唯一的键值。
按键或键盘都是一个机械开关,键的按下和放开是利用机械触点的闭合和断开来实现的。由于机械触点的弹性作用,一个按键开关在闭合及断开瞬间均有一连串的抖动,抖动的时间长短由按键的机械特性决定,一般为5~10ms。为了确保按键动作只确认一次,必须消除抖动的影响。一般采用延时的方法。 实 验 环 境:
硬件:微机、单片机仿真器、单片机实验板、连线若干
软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件
实 验 内 容 及 过 程:
动态显示三部曲
1、打开proteus新建空白文件,点击P进入零件拾取界面,例如:输入AT89C51,点击OK,用鼠标拖动到合适的位置。LED;电容CAP;晶振CRYSTAL;电阻CAP;电阻包RESPACK-8;BUTTON按钮;点击右键Place,Terminal选取电源POWER接地GROUND,进行连线,保存。选用共阴的LED显示器,将P0作为段选,P2作为位选,P1口接按4*4行列接按键。见图1-1,:
图5-1 整体电路图
2、开启keil并在project中选择New Project,新建项目,然后在File中选择New?。
3、保存为shiyan4,选择,选择,点击确定,弹出一个对话框选择“否”。
4、在新建的空页中编写程序,并保存为lesson5-1.c。然后编译,加载,运行调试。
5、双击Target1出现Source Group 1点击鼠标右键选择Add files to group ‘Source Group 1’,选中lesson5-1点击Add击Close
6、点击
如图1-2作
图5-2 点击运行,如果显示无错误就编译成功
选择hex文件点击OK点击左下角的运行。 7、双击AT89C51点击
实 验 结 果 及 分 析:
使4*4行列式键盘的对角4个按键分别控制显示屏显示1,2,3,4.代码如下:
#include reg52.h }
#define uint unsigned int }
#define uchar unsigned char P1=0xF0;//反转行和列上的电平 uchar i,j; if((P1 0xF0)!=0xF0)
uint a;{
uchar code tab1[]={0x79,0x5e,0x7c,0x07}; switch(P1)
void delay_50us(uint t) {
{ case 0x70:j=3; break; uint j; case 0xb0:j=2;
显示全部