Proteus仿真-矩阵键盘(实验一)

本文介绍使用Proteus仿真软件实现51单片机的4x4行列式矩阵键盘设计,详细讲解了键盘扫描、按键消抖及蜂鸣器反馈的代码实现,并探讨了Keil C编程中的变量使用问题。

最近,由于在学习51单片机,学会了用proteus进行仿真

Proteus仿真-矩阵键盘

由于一般的按键是单独接在一根I/O线上,构成所谓的独立式键盘。其特点是电路简单,易于编程,但占用的I/O口线比较多,当需要较多按键时可能产生I/O口资源紧张问题。为此,可以采用行列式键盘方案,具体做法是,将I/O口分为行线和列线,按键设置在跨接行线和列线的交点上,列线通过上拉电阻接正电源。
在这里插入图片描述

分为4x4行列式键盘,其中键盘从左到右,上到下分别标号1-16,有四位数码管,其中第一个,第二位共同显示键盘的标号,第三位和第四位分别显示所按按键的行列标号,如下
在这里插入图片描述

我们在上面的基础上,可以在增加一个蜂鸣器,按标号显示次数,如05,则蜂鸣器响5声。
在这里插入图片描述
电阻可以设置成1k,蜂鸣器电压可以设置成2V.

完整的图如下.
在这里插入图片描述

在keil 51中,对应的代码如下.

//由于本次实验内容较简单,未考虑代码优化和代码工程化.
#include <reg52.h>
char key_buf[4][4]={
   
   {
   
   0xee,0xde,0xbe,0x7e},{
   
   0xed,0xdd,0xbd,0x7d},{
   
   0xeb,0xdb,0xbb,0x7b},{
   
   0xe7,0xd7,0xb7,0x77}}; //  第一行的第一列....第四列...第二行....
char led_mod[10] = {
   
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值