微机原理课程设计:4×4小键盘按键检测识别

4×4小键盘按键检测识别

本学期刚开学,我们进行了微机原理课程设计,我们小组选择了4×4小键盘按键检测识别这个综合性题目。

具体课设过程记录如下:

具体所需器材:

在本次课程设计中,我们使用了16个按键,4个10k电阻,1个8255A芯片,两位8段共阴极数码管,导线若干。

设计思想:

  • 将16个按键,按照4行4列的方式摆放,模拟4行4列的方式摆放,模拟4×4的矩形小键盘,再通过8255A芯片,将按键对应的数码管显示字符显示在数码管上,其中按键从左至右,从上至下依次显示的是“0~15”。
  • 按键扫描的具体思想是:首先从第一行到第四行依次判断,是否有某一行有键按下,如果有,确定该行第一个按键所对应的的数码管的字形码,当确定了行之后,利用移位操作,来寻找该行中按下的键所在列,至此,已经可以确定按键位置。这里需要注意的是——消抖,防止电路抖动,造成不期望看到的现象。

8255A的接线如下:

(图片来自网络)
在这里插入图片描述
我们采取如下的接线方式:

  • D0-D7:系统总线XD0-XD7,控制字设为81H(即:AB端口设为方式0下的输出模式,PC0-PC3设置为方式0下的输入模式)
  • PB0-PB7:两位8段数码管的引脚A-G,以及DP
  • PA4-PA5:两位8段数码管的位控1-2
  • PA0-PA3:输出模式,接4*4小键盘
  • PC0-PC3:输入模式,接4*4小键盘

proteus仿真图:

在这里插入图片描述
附有proteus安装包链接:
https://pan.baidu.com/s/1t5cMO02vTdWVEJ6qCNNO_Q

代码:

IOY0         EQU   0600H           ;片选IOY0对应的端口始地址
MY8255_A     EQU   0600H+00H*2     ;8255A口地址
MY8255_B     EQU   0600H+01H*2     ;8255B口地址
MY8255_C     EQU   0600H+02H*2     ;8255C口地址
MY8255_CON   EQU   0600H+03H*2     ;8255的控制寄存器地址

SSTACK	SEGMENT STACK
		DW 16 DUP(?)
SSTACK	ENDS		

DATA  	SEGMENT
        ZIXINGMA  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H   ;数码管的字形码
DATA  	ENDS

CODE 	SEGMENT
      	ASSUME CS:CODE,DS:DATA
START:
	MOV SI, 00H   
	;存储数码管将要显示的0-15对应的字形码
	MOV [SI],</
  • 8
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值