项目三简易计算器 任务3-1矩阵键盘测试

本文介绍了一项使用单片机连接8位共阳极数码管和4*4矩阵键盘的项目,主要任务是编写键盘测试程序。通过矩阵键盘,当按下任意按键时,数码管会显示8个相同的数字。文中详细阐述了矩阵键盘的工作原理,包括按键检测方法和电路图的绘制,以及Proteus仿真的操作步骤。在仿真完成后,进行了按键功能的验证。
摘要由CSDN通过智能技术生成

任务描述:单片机连接8位共阳极数码管和4*4矩阵键盘,编写键盘测试程序,按下任意按键,显示8个相同数字。

7ea6c0beb0204965afce31d8c9a4f352.png

5d47a584f3074e5b953d7e8a851a924f.png

 

线与线之间是立体的,交叉但不相连,没有结点,相当于立交桥。每一个按键相当于上桥下桥口,连接两条路。起到短路开关作用,按下将对应的行列连在一起。 

fdf80d10862c4db4b218b780aff25b8e.png

悬空为1,1与0,相连时,1会变0,即为高电位变为低电位。和地相连通,一定会变成中性,即和地连通,1一定会变0。

先写0,后找0:先写四个0(列),其余四个1(行)。按键按下,行线若无变化,则没有按键按下。按键按下,行线若右变化,则有按键按下,短路。

57123580d9444b19adb4727effb85f52.png

 

 

画出电路图:先在视图中把格子大小改成snap 50th

ede2a794432e475e87414ed6c198bf43.png

注意在没有元器件时画线需要先点出一个结点,再画线。4ed076333be04501b0cb06ee7531a4ce.png

 

 

开关button有两种闭合方式:一种持续闭合点箭头

aacf1300eeba4853abb78e1a47e49ebf.png

还有一种就是点帽子,点中闭合抬起断开。

949abefd73a449488c8fab63342b008e.png

 

 

标号时注意在英文字母下键盘点击字母A,就会出现下图所示内容:

e8d89835b51443dfb25df3216db38cb8.png

在string中填写net=P0.#(#表示从0开始,每点击以下自动加一)

327004042be64e74b9687323615fb07f.png

然后再点A,点击取消,则为退出标号模式

31558b2a283546c3983ac935207f0d38.png

点A 然后再点确定则实现重新开始标号,从0开始

c8d2ecae6ebb45dda88839a8b739d27c.png

若改为P2.几或者P3.几,则改为net=P2.#     net=P3.#  。

若改为row.几或者column.几,net=row.#     net=column.# 。

 

b09cbe0f74954c9dbc5fbf72c3fb2168.png

a67686d8a237411c98ed7015f2dcde22.png

row是行,column是列。

/*************************
项目名称:项目三简易计算器
任务名称:任务3-1矩阵键盘测试
任务描述:单片机连接8位共阳极数码管和4*4矩阵键盘,
		编写键盘测试程序,按下任意按键,显示8个相同数字。
*************************/
#include<reg51.h>
//51单片机寄存器定义头文件
int seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};//定义0~9共阳极七段码,与间隔符-
void main(){
	while(1)//不断查询按键,等待手按下
	{
		P1=0x0f;//列线写0,行线写1
		if(P1!=0x0f)//列线写0,行线有变化,有变0,说明有按键按下,导致行列线短路
		{
			P2=0x00;//数码管全选中
			P0=seg[5];//全显示数字5
		}
		else
			P2=0xff;//关闭数码管
	}
}

 

仿真完成后,进行试验。cf6ac428e8ff4b70a190b03eef2f852e.png

7d3e950b88e64de295f45d119a5634d7.png73db7b32ebd84d22ab5f2cdf0e7639c3.png419adb0cd99141f19107122d44acd420.png2041908ec588449faed1d074de9cec62.png1ad430cc24ce441494aebcefa08a3868.png

分别按下每一个按键:

f1ba4613b74245308f1d75844e61885f.png

 

 

  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐的甲方

你的鼓励是我博文创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值