单片机按键实验报告.docx

上传人:b****8 文档编号:9813088 上传时间:2023-02-06 格式:DOCX 页数:4 大小:18.23KB
下载 相关 举报
单片机按键实验报告.docx_第1页
第1页 / 共4页
单片机按键实验报告.docx_第2页
第2页 / 共4页
单片机按键实验报告.docx_第3页
第3页 / 共4页
单片机按键实验报告.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机按键实验报告.docx

《单片机按键实验报告.docx》由会员分享,可在线阅读,更多相关《单片机按键实验报告.docx(4页珍藏版)》请在冰豆网上搜索。

单片机按键实验报告.docx

单片机按键实验报告

单片机按键实验报告

篇一:

单片机按键扫描实验报告键盘扫描一.实验目的

(1)掌握矩阵键盘接口电路和键盘扫描编程方法。

(2)掌握按键值处理与显示电路设计。

二.实验任务

(1)设计4*4键盘,编写各个键的特征码和对应的键值(0~F);

(2)编程扫描按键,将按键对应的数字值使用数码管显示出来。

三.实验电路及连线方法1.采用动态显示连线方法:

电路由2片74LS573,1个六字一体的共阴数码管组成。

由U15输出段选码,U16做位选码,与单片机的采用I/O口连接方式,短路片J22连接P2.0,J23连接P2.3,做输出信号锁存。

(实际电路连接是d7-d6-d5-d4-d3-d2-d1-d0?

h-c-d-e-g-b-a-f)。

PW12是电源端。

2.键盘电路连线方法:

电路由16个按键组成,用P1口扩展4×4行列式键盘。

J20是键盘连接端,连接到P1口。

J21是行列键盘、独立键盘选择端,当J21的短路片连接2-3脚时,构成4×4行列式键盘;当J21的短路片连接2-1脚时,可形成3×4行列式键盘,4个独立式按键S4、S8、S12、S16,这4个独立按键分别连接P1.4~P1.7;其他12个键3×4行列式键盘。

PW15是电源端。

四.编程思路1.采用反转法识别按键的闭合。

2.采用动态显示将键值显示出来。

五.算法流程图六.资源分配1.用P1口进行查找按键2.用R3做键值指针3.用R1做动态显示为选码指针。

4.R5为延时指针。

七.程序设计KPIN:

ORGMOVMOVANLMOV0000HP1,#0F0HA,P1A,#0F0HB,AMOVP1,#0FHMOVA,P1ANLA,#0FHORLA,BCJNEA,#0FFH,KPIN1AJMPEXITKPIN1:

MOVB,AMOVDPTR,#TABKPMOVR3,#0KPIN2:

MOVA,R3MOVCA,@A+DPTRCJNEA,B,KPIN3MOVA,R3LOOP:

MOVR1,#0FEH;键盘动态显示LOOP1:

MOVA,R3ANLA,#0FHMOVDPTR,#TABMOVCA,@A+DPTRCLRP2.0CLRP2.1MOVP0,ASETBP2.0NOPCLRP2.0LOOP2:

MOVA,R1;位选码MOVP0,ASETBP2.1MOVR5,#250LOOP3:

DJNZR5,LOOP3CLRP2.1SJMPLOOPKPIN3:

INCR3CJNEA,#0FFH,KPIN2EXIT:

RETTABKP:

DB0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBHDB0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,67H,0FFHTAB:

DB77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FHDB79H,33H,7CH,3BH,1BHEND八.调试出现的问题及解决问题1:

程序正常运行,但按键显示出现乱码解决:

动态显示笔形码错误,并改正。

问题2:

发现有些按键按下时不出现键值解决:

发现按键坏了,换机器再实验,并且成功。

总结:

与硬件想结合的实验要有足够的耐心,并且不仅要懂得如何编程,还要有足够多的电路知识,这样才能够保证实验成功。

篇二:

单片机实验报告姓名学号单片机实验报告四时间周一11-13地点计708指导老师:

实验题目C51单片机片上资源开发实验一.实验目的与要求?

?

学习单片机片上资源开发技术研究用片上资源实现自动控制的方案二:

实验环境在KeiluVision2下实验。

三.实验内容1.用51单片机I/O端口和扩展口控制LED和按键①按键扫描子程序,每50ms检查按键状态。

②LED输出子程序③按1次键,377扩展输出口驱动LED灯(位输出“1”点亮相应位灯)显示内容改变1次(0x00-0x01-0x02-0x04-0x08-0x10-0x20-0x40-0x80-0xff循环),初始状态显示0x00。

四.系统实施①按键扫描子程序,每50ms检查按键状态。

②LED输出子程序五、体会这个实验对我初学单片机的我有点难度,因为最初接触这个实验时,对于单片机的I/O端口和按键都不是很清楚,最后通过对课本知识的学习,还有上机实验对此基本了解。

通过这次试验,实现了对课本知识的时间,更加了解单片机结构以及组成原理。

对于更加深入的学习单片机有很大好处。

六.附录1.用51单片机I/O端口和扩展口控制LED和按键DISPLAY_NUMEQUR0;显示内容的表索引KEY_DOWNBITPSW.5;模式键按下标志位(PSW的F0)KEY_DEMOBITP1.0ADDR_377EQU0FFFH;按键输入引脚;377的地址,P2.6~P2.4=000的地址均可ORG0000H;仿真调试时,用户程序起始地址8000HLJMP0030HORG0030HSTART:

;初始化MOVSP,#30HMOVDISPLAY_NUM,#0;LED显示内容初始为0;通过377口将LED显示为R0为索引的表容ACALLLED_DISPLAYLED_KEY_LOOP:

ACALLDELAY50MS;延时50msACALLKEY_SCAN;检查按键,若按下,DISPLAY_NUM+1SJMP;输出(KEY0_ENTR+DISPLAY_NUM)的内容给377LED_DISPLAY:

MOVA,#0AHCLRC;C标志位清0LED_KEY_LOOP;返回主程序循环SUBBA,DISPLAY_NUM;判断是否超出状态JNZMOVDISP:

MOVDPTR,#KEY0_ENTRMOVA,DISPLAY_NUMMOVCMOVDPTR,#ADDR_377A,@A+DPTR;取得(KEY0_ENTR+DISPLAY_NUM)的内容DISPDISPLAY_NUM,#0;是,清零MOVX@DPTR,A;输出到377RETKEY_SCAN:

;按键扫描程序JNBKEY_DEMO,KEY_SCAN1;键是否按下?

是(KEY_DEMO=0),要检测按键是否有效;KEY_SCAN0:

CLRKEY_DOWN;否(KEY_DEMO=1),清除标志位SJMPKEY_SCAN_EXIT;返回KEY_SCAN1:

JBKEY_DOWN,KEY_SCAN_EXIT;是,检测标志位,确认是否为有效按键;(KEY_DOWN=1),标志位没有发生0-1(松开-按下)状态变化为无效按键,返回CLRKEY_DOWN;按键有效(即KEY_DEMO=0,KEY_DOWN=0),;置位按键标志位INCDISPLAY_NUM;并把显示内容加1ACALLLED_DISPLAYKEY_SCAN_EXIT:

RET;延时子程序延时50ms,使用了R5,R6,R7DELAY50MS:

MOVR7,#04HDELAY0:

MOVR6,#81HDELAY1:

MOVR5,#7EHDELAY2:

DJNZDJNZR5,DELAY2R6,DELAY1DJNZRETR7,DELAY0;指示灯编码KEY0_ENTR:

DB00H;显示00000000DB01H;显示00000001DBDBDBDBDBDBDBDBEND显示00000010显示00000100显示00001000显示00010000显示00100000显示01000000显示10000000显示1111111102H;04H;08H;10H;20H;40H;80H;0FFH;篇三:

单片机矩阵键盘实验实验报告实验五矩阵键盘实验一、实验内容1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。

按其它键退出。

2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。

可定义“A”键为“+”键,“B”键为“=”键。

二、实验目的1、学习独立式按键的查询识别方法。

2、非编码矩阵键盘的行反转法识别方法。

三、实验说明1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。

2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。

3、识别键的闭合,通常采用行扫描法和行反转法。

行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。

行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。

然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。

这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。

由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。

行反转法识别按键的过程是:

首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

四、接线方法键盘连接成4×4的矩阵形式,占用单片机P1口的8根线,行信号是P1.0-1.3,列信号是P1.4-1.7。

五、实验电路参考学习板说明书P14。

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

当前位置:首页 > 高等教育 > 文学

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

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