文档详情

单片机键盘实验报告.doc

发布:2018-10-25约5.25千字共9页下载文档
文本预览下载声明
精品学习资料范文 单片机键盘实验报告 篇一:单片机 行列式键盘实验报告 洛阳理工学院实验报告 篇二:单片机实验五_-键盘实验 信息工程系实验报告 课程名称:单片微型计算机与接口技术 实验项目名称:实验五 键盘实验 实验时间: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;
显示全部
相似文档