Proteus使用笔记之51单片机4x4矩阵按键

发布者:不加糖的302最新更新时间:2015-02-09 来源: 51hei关键字:Proteus  使用笔记  51单片机  矩阵按键 手机看文章 扫描二维码
随时随地手机看文章

采用反转法判断按键坐标,即行号与列号获得按键码。

写完后发现Proteus一个问题:直接使用这样的if(P1&0xf0!=0xf0)语句时,调不出来,当用了一个中间变量过渡时,就调出来了,害我花了一个上午的时间,现在暂时不知道Proteus为什么要这样,实际中是不需要的。


 

程序如下:

#include
#define uchar unsigned char
#define uint unsigned int
void delayMS(unsigned int z);
uchar keyscan(void);
void main(void)
{
uchar key;
while(1)
{
key=keyscan();
delayMS(50);
}
}
void delayMS(unsigned int z)
{
unsigned i,j;
for(i=z;i>0;i--)
for(j=122;j>0;j--);
}
uchar keyscan(void)
{
uchar scode,scode1,scode2,k;
P1=0xf0;
scode1=P1&0xf0;
if(scode1!=0xf0)
{
delayMS(10);
scode1=P1&0xf0;
if(scode1!=0xf0)
{
scode1=P1^0xf0; //行号
P1=0x0f;
scode2=P1^0x0f; //列号
scode=scode1+scode2;
switch(scode)
{
case 0x11: k=1;break;
case 0x12: k=2;break;
case 0x14: k=3;break;
case 0x18: k=4;break;
case 0x21: k=5;break;
case 0x22: k=6;break;
case 0x24: k=7;break;
case 0x28: k=8;break;
case 0x41: k=9;break;
case 0x42: k=10;break;
case 0x44: k=11;break;
case 0x48: k=12;break;
case 0x81: k=13;break;
case 0x82: k=14;break;
case 0x84: k=15;break;
case 0x88: k=16;break;
default: k=0;break;
}

}
}
return k;
}

关键字:Proteus  使用笔记  51单片机  矩阵按键 引用地址:Proteus使用笔记之51单片机4x4矩阵按键

上一篇:单片机PWM技术实现呼吸灯和KTV等娱乐场所的灯光闪烁效果
下一篇:C51--DS18B20数字温度计--C语言

推荐阅读最新更新时间:2024-03-16 13:53

AT89S51单片机报警器的设计
1.实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 2.电路原理图 图4.6.1 3.系统板上硬件连线 (1).把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2).在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭; (3).把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上; 4.程序设计内容 (1).信号产生的方法 500
[单片机]
AT89S<font color='red'>51单片机</font>报警器的设计
基于FPGA和51单片机信号发生器设计与实现
信号发生器又称为波形发生器是一种常用的信号源并且广泛应用于电子电路、通信、控制和教学实验等领域的重要仪器之一。为了降低传统函数信号发生器成本,改善信号发生器低频稳定性。笔者结合FPGA和51单片机产生0.596 Hz频率精度函数信号。笔者设计通过51单片机控制函数信号类型以及相关参数,用户可通过按键设置需要的波形、波形幅度、波形频率以及方波的占空比、相位。本文设计方案不仅具有良好的经济前景,也可以为当代高等教育深化改革做一个参考方向。 1 系统设计方案 1.1 系统硬件设计 本文中设计中硬件包括EP2C8Q20818N芯片和C8051F0201单片机、DAC0800芯片,T6963的LCD。本文中主要利用FPGA(EP2C8
[单片机]
基于FPGA和<font color='red'>51单片机</font>信号发生器设计与实现
51单片机驱动触摸屏综合实验源程序
第1步:根据开发板单片机型号选择“实验28:开发板资源数据下载 - 1、开发板资源数据下载”程序下载到STC8A开发板中运行,下载程序时ISP软件设置:用户程序运行时的IRC频率22.1184MHZ 第2步:光盘资料 - 上位机数据下载源程序- 运行串口文件下载V1.0 - 下载 (“开发板资源数据:开发板触摸屏综合实验资源数据.bin(地址:实验30-准备工作)”)资源数据到开发板,起始扇区设置为0,波特率设置57600; 第3步:根据开发板单片机型号选择“实验28:开发板资源数据下载 - 2、触摸屏资源数据下载”程序下载到STC8A开发板中运行,下载程序时ISP软件设置:用户程序运行时的IRC频率22.1184MHZ
[单片机]
51单片机显控系统中的汉字输入
对于PC机来说,输入汉字是非常简单的,但在一些单片机人机接口系统中,进行汉字的实时输入是很困难的,而大多只能显示事先已取好字模点阵的汉字,但是每个16×16汉字点阵由32个字节表示,对于需要灵活使用大量汉字的场合,程序量太大,实现起来有很大难度;下面针对汉字库的结构进行分析,设计一种实用的汉字拼音输入法,并给出液晶汉字显示模块的基本程序。 1 汉字的内码表示 针对不同的操作系统汉字内码表示不同,如在苹果机的OS上使用的是GB231280汉字编码,Window s系统则使用GBK汉字编码,还有Unicode编码,GB180302000,方正748编码等。由于GB 231280是最早(1980年)的、由中国国家标准局颁
[单片机]
<font color='red'>51单片机</font>显控系统中的汉字输入
基于51单片机设计的数字温度计设计
一、项目介绍 数字温度计是一种广泛应用于日常生活和工业领域中的电子测量仪器,用于检测环境温度并将其转换为数字信号进行显示。随着现代科技的发展,数字温度计逐渐取代了传统的水银温度计等方式,具有快速响应、高精度、便携式等优点。 基于51单片机设计的数字温度计具体应用于制造业中的温度检测,例如温度控制器、烤箱温度控制、食品加工、工业炉等领域。通过DS18B20这种数字温度传感器来进行温度采集,使用STC89C52这种常用的单片机控制芯片,配合4位共阳数码管实现温度数据显示,并通过按键设置温度上限阀值,一旦温度超过阀值,系统会触发蜂鸣器进行报警提示,从而保证了温度的精准控制和安全性。 DS18B20是一种数字温度传感器,由Maxi
[单片机]
基于<font color='red'>51单片机</font>设计的数字温度计设计
华为笔记本电脑开始使用LINUX系统
对华为而言,此举不失为一个明智的抉择。在手机操作系统领域,目前已被苹果的IOS系统和谷歌的安卓系统垄断。而IOS系统是封闭式,只为苹果手机使用;安卓是开放性,当谷歌与华为停止合作后。华为手机将无法使用安卓系统。 对于华为而言,无路可走,那么自己开辟道路。 为此,华为自主研发了鸿蒙操作系统,鸿蒙不仅可以供华为手机使用,还可以供华为其他物联网智能终端产品服务。而这条路,华为最艰巨的是生态系统的建设,这个除了技术实力、企业实力之外,还需要时间。 为此,华为现在先从已有的、开放性的LINUS操作系统入手,先借助LINUX的生态,让华为的智能终端产品先运行起来。等鸿蒙操作系统成熟后,再考虑以自身的系统为主力。 对于LINUX而言,有了华为这
[手机便携]
浅谈51单片机的中断控制
51系列单片机有5个中断源,2个优先级,可以实现二级中断服务嵌套结构。 现在很多兼容51的单片机已经有4个优先级(或更多)和更多的中断源了。 想要研究中断的嵌套,应该从中断优先级入手。 一些资料中,把有关中断优先级的中断响应原则,写成如下三条: 1、CPU同时接收到几个中断申请时,首先响应优先级级别最高的中断请求; 2、正在进行的中断过程不能被新的同级或低优先级的中断请求所中断; 3、正在进行的低优先级中断过程,能被高优先级中断请求所中断。 中断优先级的设置,是在IP寄存器中进行,IP称为中断优先级控制寄存器。 把IP中的某位置为1,则相应的中断源为高优先级;为0,则为低优先级。 当把5个中断源,划分成两个优先级之后,它们的
[单片机]
浅谈<font color='red'>51单片机</font>的中断控制
以89C51单片机为控制核心的开关电源优化设计
引言   开关电源是利用现代电力电子技术控制功率开关管(MOSFET,IGBT)开通和关断的时间比率来稳定输出电压的一种新型稳压电源。从上世纪90年代以来开关电源相继进入各种电子、电器设备领域,计算机、程控交换机、通讯、电子检测设备电源、控制设备电源等都已广泛地使用了开关电源。利用单片机控制的开关电源,可使开关电源具备更加完善的功能,智能化进一步提高,便于实时监控。其功能主要包括对运行中的开关电源进行检测、自动显示电源状态;可以通过按键进行编程控制;可以进行故障自诊断,对电源功率部分实现自动监测;可以对电源进行过压、过流保护;可以对电池充放电进行实时控制。   开关电源的系统结构   通信用-48V开关电源结构图如图1所示:
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved