本文作者:kaifamei

单片机按键实验报告

更新时间:2023-08-22 12:22:13 人在看 0条评论

单片机按键实验报告

2023年8月22日发(作者:热门作文十篇)

syb创业计划书完整版-

精品学习资料范文

单片机按键实验报告

篇一:单片机按键扫描实验报告

键盘扫描

一.实验目的

(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:

ORG MOV MOV ANL MOV 0000H P1,#0F0H A,P1 A,#0F0H B,A

MOVP1,#0FH

MOVA,P1

ANLA,#0FH

ORLA,B

CJNE A,#0FFH,KPIN1

AJMP EXIT 精品学习资料范文

KPIN1: MOVB,A

MOVDPTR,#TABKP

MOVR3,#0

KPIN2: MOVA,R3

MOVC A,@A+DPTR

CJNE A,B,KPIN3

MOVA,R3

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

LOOP1: MOVA,R3

ANLA,#0FH

MOV DPTR,#TAB

MOVC A,@A+DPTR

CLRP2.0

CLRP2.1

MOVP0,A

SETB P2.0

NOP

CLRP2.0

LOOP2: MOVA,R1;位选码

MOVP0,A

SETB P2.1

MOVR5,#250 精品学习资料范文

LOOP3: DJNZ R5,LOOP3

CLRP2.1

SJMP LOOP

KPIN3: INCR3

CJNE A,#0FFH,KPIN2

EXIT: RET

TABKP: DB0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH

DB 0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,67H,0FFH

TAB: DB77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FH

DB 79H,33H,7CH,3BH,1BH

END

八.调试出现的问题及解决

问题1:程序正常运行,但按键显示出现乱码

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

问题2:发现有些按键按下时不出现键值

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

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

篇二:单片机实验报告

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

指导老师:实验题目C51单片机片上资源开发实验

一. 实验目的与要求 精品学习资料范文

?

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

二:实验环境

在Keil uVision2下实验。

三.实验内容

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_NUM EQUR0 ;显示内容的表索引

KEY_DOWN BIT PSW.5 ;模式键按下标志位(PSW的F0)

KEY_DEMO BIT P1.0

ADDR_377 EQU 0FFFH ;按键输入引脚 ;377的地址,P2.6~P2.4=000的地址均可

ORG 0000H ;仿真调试时,用户程序起始地址8000H

LJMP 0030H

ORG 0030H

START:

;初始化

MOV SP, #30H

MOV DISPLAY_NUM, #0 ;LED显示内容初始为0

;通过377口将LED显示为R0为索引的表容ACALL LED_DISPLAY

LED_KEY_LOOP:

ACALL DELAY50MS ;延时50ms

ACALL KEY_SCAN ;检查按键,若按下,DISPLAY_NUM+1

SJMP

;输出(KEY0_ENTR+DISPLAY_NUM)的内容给377

LED_DISPLAY:

MOV A, #0AH 精品学习资料范文

CLR C ;C标志位清0 LED_KEY_LOOP;返回主程序循环

SUBB A, DISPLAY_NUM ;判断是否超出状态

JNZ

MOV

DISP:

MOV DPTR, #KEY0_ENTR

MOV A, DISPLAY_NUM

MOVC

MOV DPTR, #ADDR_377 A, @A+DPTR; 取得(KEY0_ENTR+DISPLAY_NUM)的内容 DISP DISPLAY_NUM, #0 ;是,清零

MOVX @DPTR,A;输出到377

RET

KEY_SCAN: ;按键扫描程序

JNB KEY_DEMO, KEY_SCAN1 ;键是否按下? 是(KEY_DEMO=0),要检测按键是否有效;

KEY_SCAN0:

CLR KEY_DOWN;否(KEY_DEMO=1) ,清除标志位SJMP

KEY_SCAN_EXIT ;返回

KEY_SCAN1:

JB KEY_DOWN, KEY_SCAN_EXIT ;是,检测标志位,确认是否为有效按键

;(KEY_DOWN=1),标志位没有发生0- 1(松开- 按下)状态变化为精品学习资料范文

无效按键,返回CLR KEY_DOWN ;按键有效(即KEY_DEMO=0,

KEY_DOWN=0), ;置位按键标志位

INC DISPLAY_NUM ;并把显示内容加1

ACALL LED_DISPLAY

KEY_SCAN_EXIT:

RET

;延时子程序 延时50ms,使用了R5,R6,R7

DELAY50MS:

MOV R7,#04H

DELAY0:

MOV R6,#81H

DELAY1:

MOV R5,#7EH

DELAY2:

DJNZ

DJNZR5,DELAY2 R6,DELAY1

DJNZ

RET R7,DELAY0

;指示灯编码

KEY0_ENTR:

DB 00H ;显示 00000000 DB 01H ;显示 00000001 DB

DB 精品学习资料范文

DB

DB

DB

DB

DB

DB

END 显示 00000010 显示 00000100 显示 00001000 显示

00010000 显示 00100000 显示 01000000 显示 10000000 显示

11111111 02H ; 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。

简短新婚贺语四字-


文章投稿或转载声明

本文链接:https://www.en369.cn/fanwen/xinxi-1-549849-0.html

来源:范文频道-369作文网版权所有,转载请保留出处。本站文章发布于 2023-08-22 12:22:13

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论