用51单片机矩阵键盘控制数码管显示数字

发布者:Yudie最新更新时间:2022-07-26 来源: csdn关键字:51单片机  矩阵键盘控制  数码管  显示数字 手机看文章 扫描二维码
随时随地手机看文章

#include//头文件

#define keys P1//宏定义矩阵键盘

#define smg P0//宏定义数码管

sbit SMGA=P2^2;//位定义

sbit SMGB=P2^3;

sbit SMGC=P2^4;

unsigned int table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f

                     ,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴数码管字形码

unsigned int k;

void delay()//延时函数

{

    unsigned char a,b;

for(a=0;a<200;a++)

for(b=0;b<200;b++);

}

void jzjp()//矩阵键盘函数

{

unsigned int i=0;

//unsigned int k; 本人遇到的错误,在该函数下定义的k,导致主函数中用k时出现错误,应在整体下定义

keys=0x0f;//行列扫描,高四位输出低电平,低四位输出高电平

if(keys!=0x0f)//如果keys不等于该值则说明有按键按下

{

delay();//按键消抖

if(keys!=0x0f)//确实按下按键,第四位不全为1

{

switch(keys)//列判断

{

case(0x07):k=0;break;//对应列按键按下时矩阵键盘对应的数,并存储于k

case(0x0b):k=1;break;

case(0x0d):k=2;break;

case(0x0e):k=3;break;

}

keys=0xf0;

switch(keys)//行判断

{

case(0x70):k=k;break;//对应行按键按下时矩阵键盘对应的数,并存储于k

case(0xb0):k=k+4;break;

case(0xd0):k=k+8;break;

case(0xe0):k=k+12;break;

}

//扫描过程,如果case(0x07)时第一列按键按下,k=0,break跳出switch,

//行判断,case(0x70)时第一行按键按下,k=k,跳出switch

// 如果case(0x0b)时第二列按键按下,k=1,break跳出switch,

//行判断,case(0xb0)时第二行按键按下,k=k+4(第一个按键向后数4个)跳出switch。。

             while((i<50)&&(keys!=0xf0))//按键总是按着不松开超过一定时间时强制退出,从新扫描显示你所按着不动的按键

{

  delay();

i++;

}

}


}

}

void main()//主函数

{

while(1)

{

SMGA=0;//Y0非输出端对应的数码管显示

SMGB=0;

SMGC=0;

jzjp();

smg=table[k];//数码管显示

}

}


注:


该开发板矩阵键盘接于P1口

该程序时用矩阵键盘控制的最后一个动态数码管,3-8译码器的输入端接于P2口的2,3,4端,P0口接数码管驱动端。

关键字:51单片机  矩阵键盘控制  数码管  显示数字 引用地址:用51单片机矩阵键盘控制数码管显示数字

上一篇:用51单片机中断控制LED灯亮灭
下一篇:用51单片机显示静态数码管

推荐阅读最新更新时间:2024-10-31 12:33

基于51单片机与MXA2500GL传感器的振动信号分布式检测方法
  该检测方法以PC作为上位机,通过RS-485串行通讯,实现上位机与振动信号分布式检测系统的控制核心—C8051F020单片机之间的数据传输,并可以将检测结果在上位机上显示输出。 引言   由于加速度传感器及电荷放大器的连接线缆的距离限制,采用集中的数据采集和处理系统在空间距离较远的场合很难实现,其可靠性和抗干扰问题很难解决。常采用分布式检测方法:即设置多个数据采集站点,每个站点采用一套单独的数据采集和处理系统,通过网络通信将各站点相互连结起来,然后由一台系统机进行集中数据处理,提取相关特征信息。 C8051F020单片机性能特点   CYGNAL的C8051F020是集成模拟、数字信号的混合信号系统级SOC(System
[单片机]
基于<font color='red'>51单片机</font>与MXA2500GL传感器的振动信号分布式检测方法
初步认识51单片机
前面我们学会了如何操作一个MCU的管脚(P1.0),让它设置为低电平(sbit LED= P1^0; LED=0),那么我们很容易的就能想到如何将MCU的管脚设置成高电平. 这一讲,我们就来讨论如何控制单片机的IO口,也就是输入输出端口(input and output port) 2.1单片机IO口操作与延时 既然我们学会了如何控制P1.0,那么同样的方式我们就能控制P1.1,P1.2, ... P1.7了。很奇怪,为什么单片机的引脚从P1.0开始到P1.7,为什么不是从P1.1到P1.8?基本上你所见到的控制芯片都是以0为起始的。我们把P1.0到P1.7叫做P1端口。那么这样的端口有多少个呢,在STC89C52中,一共有4组这
[单片机]
初步认识<font color='red'>51单片机</font>
LCD液晶显示的DS18B20数字式电脑温度计
  液晶显示器分很多种类,按显示方式可分为段式,行点阵式和全点阵式。段式与数码管类似,行点阵式一般是英文字符,全点阵式可显示任何信息, 如汉字、图形、图表等。这里我们介绍一种八段式四位LCD显示器,该显示器内置驱动器,串行数据传送,使用非常方便。原理图如下图:   下图是长沙太阳人科技开发有限公司生产的4位带串行接口的液晶显示模块SMS0403的外部引线简图:   有关该模块的具体参数,请查看该公司网站。此例中使用的温度传感器 为美国DALLAS公司生产的单总线式数字温度传感器。该传感器本站有其 详细的资料可供下载。此例稍加改动,即可做成温控器。
[单片机]
LCD液晶<font color='red'>显示</font>的DS18B20<font color='red'>数字</font>式电脑温度计
MCS-51单片机存储器结构
MCS-51的存储器可分为四类: 程序存储器 一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。 MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的 端必须接地
[单片机]
MCS-<font color='red'>51单片机</font>存储器结构
51单片机定时器和中断的介绍
最近在学习51单片机,学到了定时器这块,由于自己的基础不太扎实,在这方面花了很多时间,这里通过对定时器和中断的介绍,用简易时钟这个例子来对学习的内容进行加深巩固,把自己的经验分享给大家,希望对大家能够有帮助。 一、定时器的功能以及定时器的结构 定时器的功能 其实就是单片机的内部,通过系统时钟的每一个机器周期产生一个记数脉冲,即每一个机器周期计数器加一。 比如,这里我的实验板的晶振是12MHZ,1MHZ信号每个脉冲的持续时间为1us,如果定时器T0对1MHZ的信号进行计数,从0~65536us,当达到最大的65536us的时候,定时器计数达到最大值,会溢出,于是产生中断信号,向中断系统申请中断,中断系统接受中断请求,执行中断
[单片机]
<font color='red'>51单片机</font>定时器和中断的介绍
基于51单片机的数控直流稳压电源的设计与实现
1 引言 直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多 功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普 通直流稳压电源品种很多.但均存在以下问题:输出电压是通过粗调(波段开关)及细调(电 位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如 1.02~1.03V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良, 对输出会有影响。常常通过硬件对过载进行限流或截流型保护,电路构成复杂,稳压精度也 不高。本文设计了一种以单片机为核心的智能化高精度简易直流电源,克服了传统直流电压 源的缺点,具有很高的应用价值。 2 系统硬件设
[单片机]
基于<font color='red'>51单片机</font>的数控直流稳压电源的设计与实现
51单片机在智能时钟控制系统中的应用设计
随着电子技术产业结构调整,生产工艺的飞速发展,人们生活水平的不断提高,家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。本文所述智能时钟控制系统主要指时钟显示、时间设置、闹铃及家用电器定时开关机(可扩展功能)等控制系统。 本文采用进入市场时间早、总线开放、仿真开发设备多、芯片及其开发设备价格低廉、速度较快、电磁兼容性较好的MCS-51型单片机为核心实现智能时钟控制。 硬件系统设计 智能时钟控制系统以MCS-51兼容单片机AT89C51微处理器为核心,由时钟显示模块、定时控制模块、电源模块等电路组成。 AT89C51微处理器 AT89C51是一款采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-
[单片机]
<font color='red'>51单片机</font>在智能时钟<font color='red'>控制</font>系统中的应用设计
51单片机四驱无线遥控小车制作详解
小车参数:控制键5个:前进、后退、左转、右转、停止;有效距离200米;速度:   我想遥控小车大家都玩过,网上也有各种DIY小车的制作详解,我做的这个遥控小车和其他的作品大同小异,但作为单片机设计,这次设计我主要强调单片机控制,就是说,这个小车是由单片机控制的,这次我把单片机按键发送程序、无线模块使用、电机驱动作为本教程的核心内容。   一 硬件组装   1 小车运动部分   此图是我师弟组装好的,请大家作为参考   所需工件:直流电机4个,L293D电机驱动模块,蓄电池一块,车身底盘   说明:车身底盘大家根据自己的购买力自行购买,蓄电池也是,至于L293D模块,淘宝上卖的比较贵,不过我用的就是成品模块,效果非常好,
[单片机]
<font color='red'>51单片机</font>四驱无线遥控小车制作详解
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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