单片机一键多功能按键识别技术

发布者:zhuanshi最新更新时间:2012-12-05 来源: 51hei关键字:单片机  一键多功能  按键识别技术 手机看文章 扫描二维码
随时随地手机看文章

在一些单片机系统中,有时候需要采用一些一键多功能的技术,这里我给大家介绍一下。开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。这样就实现了具有一键多功能的按键识别技术。简单吧

单片机系统板上硬件连线

把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。具体的电路图在单片机论坛http://www.51hei.com51区上有。欢迎发表您的高见。本文为郭子喻先生原创作品希望大家支持。


汇编源程序
ID          EQU 30H
SP1         BIT P3.7
L1          BIT P1.0
L2          BIT P1.1
L3          BIT P1.2
L4          BIT P1.3
            ORG 0
            MOV ID,#00H
START:      JB K1,REL
            LCALL DELAY10MS
            JB K1,REL
            INC ID
            MOV A,ID
            CJNE A,#04,REL
            MOV ID,#00H
REL:        JNB K1,$
            MOV A,ID
           CJNE A,#00H,IS0
            CPL L1
            LCALL DELAY
            SJMP START
IS0:       CJNE A,#01H,IS1
            CPL L2
            LCALL DELAY
            SJMP START
IS1:       CJNE A,#02H,IS2
            CPL L3
            LCALL DELAY
            SJMP START
IS2:       CJNE A,#03H,IS3
            CPL L4
            LCALL DELAY
            SJMP START
IS3:        LJMP START
DELAY10MS:    MOV R6,#20
LOOP1:       MOV R7,#248
             DJNZ R7,$
             DJNZ R6,LOOP1
             RET
DELAY:      MOV R5,#20
LOOP2:      LCALL DELAY10MS
            DJNZ R5,LOOP2
            RET
            END
7.C语言源程序
#include
unsigned char ID;
void delay10ms(void)
{
  unsigned char i,j;
  for(i=20;i>0;i--)
  for(j=248;j>0;j--);
}
void delay02s(void)
{
  unsigned char i;
  for(i=20;i>0;i--)
    {delay10ms();
    }
}
void main(void)
{ while(1)
    { if(P3_7==0)
        {delay10ms();
          if(P3_7==0)
            {
              ID++;
              if(ID==4)
                {
                  ID=0;
                }
              while(P3_7==0);
            }
        }
      switch(ID) 
        { case 0:
            P1_0=~P1_0;
            delay02s();
            break;
          case 1:
            P1_1=~P1_1;
            delay02s();
            break;
          case 2:
            P1_2=~P1_2;
            delay02s();
            break;
          case 3:
            P1_3=~P1_3;
            delay02s();
            break;
        }
    }

关键字:单片机  一键多功能  按键识别技术 引用地址:单片机一键多功能按键识别技术

上一篇:单片机控制ds1302的时钟C程序
下一篇:单片机驱动4X4矩阵式键盘输入程序

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

[单片机框架][bsp层][AT32F415][bsp_led] LED配置和使用
重新封装一层函数,用于bsp层函数,方便调用。 void bsp_led_init(void); void bsp_led_deinit(void); void bsp_led_on(bsp_led_t ch); void bsp_led_off(bsp_led_t ch); void bsp_led_toggle(bsp_led_t ch); /******************************************************************************** * @file bsp_led.c * @author jianqiang.xue * @version V1.0.
[单片机]
出货量破6亿颗,GD32 MCU赋能电机驱动智能解决方案
喜报!GD32 MCU累计出货量正式突破6亿颗!犹记得2020年底咱们才官宣了“5亿颗出货量”的喜讯,在短短数月的时间里,GD32 MCU达成新出货1亿颗的“小目标”,成为了产能紧缺环境下、率先恢复产能有序供应的芯片企业之一。 MCU技术的发展推动了电机控制方案以更低成本、更高效率的驱动升级路线。作为MCU产业的领跑者,日前,兆易创新受邀参加了由电子科技媒体 电子发烧友 主办的“2021无刷直流电机控制技术研讨会”,产品市场经理陈奇出席现场、向现场一百多名开发者与产业人士分享了兆易创新多方位的电机控制方案,以及一站式GD32 MCU开发环境,帮助小伙伴们轻松上手开发! 兆易创新产品市场经理陈奇演讲现场 基于GD32 MCU,打
[手机便携]
8051单片机供水系统水位控制的硬件电路设计
供水系统水位控制原理 下图是水塔水位控制原理图。图中虚线表示允许水位变化的上下限。在正常情况下,应保持水位在虚线范围之内,为此,在水塔的不同高度安装固定不动的三根金属棒,以感知水位变化情况。其中A棒处于下限水位以下,C棒处于上限水位,B棒在下限水位处。A棒接+5V电源,B棒、C棒各通过一个电阻与模拟地相连。 水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制的目的。供水时,水位上升,当达到上限时,由于水的导电作用,B棒、C棒连通+5V电源,因此,b、c两端均为高电平“1”状态。这时,应停止电机和水泵的工作,不再给水塔供水。 当水位降到下限时,B棒、C棒都不能与A棒导通,因此,b、c两端均为“0”状态。这时,应启动电机,
[单片机]
8051<font color='red'>单片机</font>供水系统水位控制的硬件电路设计
初步认识51单片机-2.3单片机控制DS18B20温度传感器模块
通过前面LCD1602的例子我相信对IO口的控制和延时基本有所了解,下面再来一个例子温度传感器,同样只需要IO口操作和延时。先来个DS18B20温度传感器的简介。既然是温度传感器,那么一定有个感知温度的感应器。这个感应器能把它周围的温度直接转成数字并存储在scratchpad存储器中。这个感知温度和转换成数字信号的过程我们可以不用理解。我们要做的事情就是读存储器的内容及其他一些配置。其原理图如下: 图1 DS18B20温度传感器概述 在DS18B20中有一个温度传感器(如上图所示),它能感知周围环境温度,并能将温度的结果直接转成数字信号存储起来。温度信号转成数字信号的过程我们可以不用关心。那么数字信号存在哪里了?DS18B
[单片机]
初步认识51<font color='red'>单片机</font>-2.3<font color='red'>单片机</font>控制DS18B20温度传感器模块
单片机硬件自检的问题
公司用的是atmega128型号的单片机,有扩展外部RAM芯片,通过单片机内部程序可实现对外部RAM的线路检测,比如RAM的D0~D7其中的任一脚虚焊,单片机可以发出警告.现在的问题是单片机是怎么来判断引脚虚焊的?是不是RAM芯片的D0~D7输出数据给单片机的数据总线,单片机根据其中的某一脚为断路或高阻态,借此判断线路虚焊?我是刚在做硬件维修,这个问题一直没弄明白.   还有如果RAM的地址线有一条悬空,则数据输出是不是肯定为高阻态?   大家知道的话,请帮我解释一下.谢谢! 在硬件系统出厂前要进行产品测试;在嵌入式系统工作之前,一般也要进行自检,其中ROM和RAM检测必不可少,可是有不少人对于测试目的、原因和方法存在错误理解。
[单片机]
上海宏力半导体成为领先的微控制器晶圆代工厂
中国上海,2011年3月——上海宏力半导体制造有限公司 (宏力半导体),专注于差异化技术的半导体制造业领先企业之一,宣布其专为微控制器(MCU)开发的涵盖高端及低端应用平台的工艺制程均已经成功量产,包括低本高效的OTP ,高性能的eFlash (嵌入式闪存)以及EEPROM制程平台。 低本高效的OTP技术平台是基于宏力半导体自身的0.18微米逻辑制程,结合了来自宏力战略伙伴eMemory的第OTP。该MCU解决方案仅需14个光罩层,比传统的0.35微米OTP至少减少了5个光罩层,创造了MCU工艺最低光罩层总数的行业纪录。用STI (浅槽隔离)代替LOCOS (局部场氧化),并按照0.18微米后端制程的设计规则,使芯片的尺寸
[半导体设计/制造]
一种基于单片机的新型线阵CCD电路
引言   不同厂家、不同型号的CCD的驱动时序是不同的,加之对不同性能、不同应用场合的体积、成本、灵活性要求不同,于是产生了众多的驱动时序的产生方法,主要有直接数字电路驱动、单片机口驱动、EPROM驱动、专用IC驱动等常用的驱动时序的产生方法。但是它们存在着逻辑设计较为复杂、调试困难、柔性较差、驱动时钟低等缺点。   本文在综合各种驱动时序方法的基础上,提出了的一种基于单片机的新型驱动电路。该电路使用独立的时钟源产生精确的时钟脉冲,采用可编程定时计数芯片和单片机控制相结合的方法,使电路产生稳定、精确、高速的驱动脉冲,该电路结构简单、调试方便、CPU占用率低,降低了系统的总体成本,而且具有良好的柔性,只需要改变驱动软件就可以应用于不
[单片机]
MCU在汽车电子中的原理与特点
  在汽车电子的各个系统当中,往往需要采用车用MCU(车用微控制器)做为运作控制的核心,而汽车对电子系统的倚重,也刺激车用微控制器市场的快速成长。电子系统在汽车中的应用越来越复杂,车用MCU也发挥越来越重要的作用。      汽车作为一部大型的机电一体化设备,汽车电子在汽车整体成本中的比例越来越大。目前欧美发达国家汽车电子的平均成本达350美元以上,其涵盖了从车身控制、动力传动、车身安全,到车内娱乐的各个方面。   微控制器(MCU)作为汽车电子系统内部运算和处理的核心,也遍布悬挂、气囊、门控和音响等几十种次系统(Sub-System)中。由于汽车作为高速交通工具承载了对用户生命安全的保障,同时汽车经常工作在十分恶劣的环境中,
[嵌入式]
<font color='red'>MCU</font>在汽车电子中的原理与特点
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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