矩阵键盘键值在数码管上进行显示

发布者:cloudsousou6最新更新时间:2015-09-08 来源: eefocus关键字:矩阵键盘  键值  数码管 手机看文章 扫描二维码
随时随地手机看文章
#include
typedef unsigned int uint;
typedef unsigned char  uchar;
sbit BEEP=P3^3;
uchar code smg_tab[]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60,0x30,0x25,0xa9,0x26,0xa1,0Xb1};
//延时函数
void _delay_ms(uint x)
{
 uchar i;
 while(x--);
 for(i=0;i<120;i++);
}
//蜂鸣器函数
void Beep(void)
{
 uchar i;
 for(i=0;i<100;i++)
 {
  BEEP=~BEEP;
  _delay_ms(1);
 }
 BEEP=1;
}
//键盘扫描函数
void Scan_Key(void)

 P1=0xfe;//PD口(11101111)第1行为低
 if((P1&0xf0)!=0xf0)//如果不等于0X0F则有按下
 {
  _delay_ms(10);//延时10MS,去抖
  if((P1&0xf0)!=0xf0)//如果TEMP不等于0X0F,则说明有键按下
  {
   switch(P1)//判断TEMP的值
   {
    case 0xee:P2=0x7f;P0=smg_tab[0];break;
    case 0xde:P2=0x7f;P0=smg_tab[1];break;
    case 0xbe:P2=0x7f;P0=smg_tab[2];break;
    case 0x7e:P2=0x7f;P0=smg_tab[3];break;
   }
   Beep();
  }
 }
 P1=0xfd;
 if((P1&0xf0)!=0xf0)
 {
  _delay_ms(10);
  if((P1&0xf0)!=0xf0)
  {
   switch(P1)
   {
    case 0xed:P2=0x7f;P0=smg_tab[4];break;
    case 0xdd:P2=0x7f;P0=smg_tab[5];break;
    case 0xbd:P2=0x7f;P0=smg_tab[6];break;
    case 0x7d:P2=0x7f;P0=smg_tab[7];break;
   }
   Beep();
  }
 }
 P1=0xfb;
 if((P1&0xf0)!=0xf0)
 {
  _delay_ms(10);
  if((P1&0xf0)!=0xf0)
  {
   switch(P1)
   {
    case 0xeb:P2=0x7f;P0=smg_tab[8];break;
    case 0xdb:P2=0x7f;P0=smg_tab[9];break;
    case 0xbb:P2=0x7f;P0=smg_tab[10];break;
    case 0x7b:P2=0x7f;P0=smg_tab[11];break;
   }
   Beep();
  }
 }
 P1=0xf7;
 if((P1&0xf0)!=0xf0)
 {
  _delay_ms(10);
  if((P1&0xf0)!=0xf0)
  {
   switch(P1)
   {
    case 0xe7:P2=0x7f;P0=smg_tab[12];break;
    case 0xd7:P2=0x7f;P0=smg_tab[13];break;
    case 0xb7:P2=0x7f;P0=smg_tab[14];break;
    case 0x77:P2=0x7f;P0=smg_tab[15];break;
   }
   Beep();
  }
  
 }
 
}
void main(void)
{
 while(1)
 {
  Scan_Key();
  _delay_ms(100);
 }
}
关键字:矩阵键盘  键值  数码管 引用地址:矩阵键盘键值在数码管上进行显示

上一篇:单片机教程之51单片机红外摇控,并在LCD1602上显示
下一篇:基于89C52与DT9122D红外遥控用数码管显示

推荐阅读最新更新时间:2024-03-16 14:30

单片机数码管显示-消影问题
看郭天祥的单片机书中数码管部分,使用 P0=0xff 的方法可以消除段选数据对位选的干扰,另外使用我下面的方法可以达到同样的效果。但即便这样数码管仍有影子,这种状况是,当前数码管有下一个数码管的影子,或者当前数码管有前一个数码管的影子。 分析一下产生原因,当我们点亮一个数码管后,总要先将段选或者位选改为下一个数码管的值,而不能同时改变。当先改变段选时,那么当前数码管就会有短暂的时间显示下一个数码管的数字。当先改变位选时,下一个数码管就会有短暂的时间显示当前数码管的数字。 那么解决方法是,先将段选置0送入锁存器,改变位选的值为下一个数码管,最后再改变段选值。同理另一种方法是,先将位选赋值 0xff 即关闭所有数码管,改变段选
[单片机]
PIC单片机实例二:基于I2C的SAA1064数码管显示
一.原理图 实现功能:四个数码管分为两组,四个按键也对应分为两组,每组控制对应数码管显示数据的加减,数据在0--99间循环显示,并具有掉电保护功能,通过24LC01B保存掉电前的数据.程序简单易读,是初学者的福音(因为我也是菜鸟)! 二.器件介绍 1.概述 SAA1064是Philips公司生产的4位LED驱动器,为双极型电路,具有I2C接口。该电路是特别为驱动4位带有小数点的七段显示器而设计的,通过多路开关可对两个2位显示器进行切换显示。该器件内部带有I2C总线从发送接收器,可以通过地址引脚ADR的输入电平编程为4个不同的从器件地址。内部的模式控制器可以控制LED的各个位以使其能够工作于静态模式、动态模式、熄灭模式
[单片机]
PIC单片机实例二:基于I2C的SAA1064<font color='red'>数码管</font>显示
51 单片机汇编语言--矩阵键盘的驱动
用这个矩阵键盘做单片机输入,插 P1 口的 P1.0~P1.6。 想问的是,当: 按下 1 键 P0 口的 P0.0 输出高电平; 按下 2 键 P0.1 输出高电平; …… 一直到 8 键就可以了。 还有一个要求,当按下一个键时延时5秒并锁住其它按键,5秒之后回到起点。用汇编语言 ;===================================================== ;如下即可: ORG 0000H START: MOV P0, #255 MOV P1, #255 CLR P1.0 NOP JNB P1.4, K1 JNB P1.5
[单片机]
51 单片机汇编语言--<font color='red'>矩阵键盘</font>的驱动
PIC单片机-七段数码管的使用
一、编写子程序LED_Display,根据入口参数在某一位7段码LED显示一个数字。点亮的LED位的位数在W寄存器中,该位显示的数字在变量wdata中。变量wdata的位置由用户自行设定。调用该子程序后,选中的数码管持续显示所需的数字100微秒,之后将数码管关闭,退出子程序。 /******************************************************************************* * 函 数 名: Choose_and_light_shumaguan(uint8 position, unit16 i); * 函数功能: 选择并显示七段数码管 * 入口参数: positio
[单片机]
51单片机控制8位LED数码管做9999累加的程序
采用stc89c52单片机芯片,四位数码管的接法:P1位选 P0段选 程序: #include reg51.h void delay(unsigned int d); char t; unsigned char code duan = {0x3f,0x06, 0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; unsigned char code wei ={0xfe,0xfd,0xfb ,0xf7,0xef,0xdF,0xbF,0x7F}; main() { unsigned int f=1 ,n=0; unsigned char i,out ;
[单片机]
一种实用的单片机矩阵键盘设计
矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。矩阵键盘的优点是节约单片机IO口,例如普通键盘8个IO口只能用作8个按键,而矩阵键盘能作16个按键。 本文以51单片机为载体介绍一种4*4矩阵键盘实现16个按键操作的原理、电路和软件设计要点。 1、 矩阵键盘的一般电路 图 1 矩阵键盘电路 如图 1 矩阵键盘电路所示,4*4矩阵键盘有4行4列按键,单片机4个I/O口接矩阵键盘的行线,另外4个I/O口接矩阵键盘的列线,通过对行线列线的操作完成按键的识别和操作。 2、
[单片机]
一种实用的单片机<font color='red'>矩阵键盘</font>设计
基于NIOSⅡ的矩阵键盘和液晶显示外设组件的设计
 0 引言   NIOSⅡ是Altera公司推出的第二代IP软核处理器。它与其他IP核可构成SOPC系统的主要部分。Altera SOPC Builder提供有NiosⅡ处理器及一些常用外设接口,因此,对于一些库中没有提供的模块,用户就可以自己定义添加。用户还可以通过自定义逻辑方法在 SOPC设计中添加自己开发的IP核。而定制用户逻辑外设是使用NiosⅡ嵌入式软核处理器的SOPC系统的重要特性之一。   本文提出了一种针对LCD控制器和矩阵键盘的IP核的设计方法。该方法利用SOPC Builder中元件编辑器Create New Component,通过自定义逻辑方法在SOPC设计中添加自己开发的液晶显示模块和键盘IP核。该控
[嵌入式]
基于NIOSⅡ的<font color='red'>矩阵键盘</font>和液晶显示外设组件的设计
51单片机按键控制数码管0~9_51单片机外部中断
前面为大家介绍的点亮LED灯、数码管、按键只用到了51单片机的IO资源,我们要是仅仅用单片机点灯、操作数码管,那可真是大才小用了。这些都只是51单片机资源的冰山一角,51单片机还有好多的功能,我后面将为大家一一介绍。今天为大家介绍单片机一个重要的外设——中断。 中断 没接触过单片机的朋友听到这个词肯定很陌生,大家对打断这个词应该不陌生吧,中断字面意思可以理解为中途被打断。大家可以思考一下,什么的中途被什么给打断了呢?想明白了这个问题就说明理解中断了。下面看看百度的解释: 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情 况的程序,处理完毕后又返回原被暂停的程
[单片机]
51单片机按键控制<font color='red'>数码管</font>0~9_51单片机外部中断
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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