单片机中最简单实用的按键程序

发布者:码字奇才最新更新时间:2015-10-30 来源: eefocus关键字:单片机  按键程序  去抖动延时 手机看文章 扫描二维码
随时随地手机看文章
我想了很久才写成的这个按键程序;先讲讲我的思路,

我的思路很简单就是一般的按键不是需要去抖动延时,我想单片机够慢的了,用什么方法不要去延时,所以我就想到在定时中断中插入按键扫描程序,如果连续两个中断程序中都有按键,就可以认为有按键。

但是我下面的这个程序中有个缺陷,那就是没有加入去抖动的方法,为了缩短短程序的总长度,我就是没有写,这个我用在一个平时的一个小的测试部件控制程序中,去抖动没什么实际的意义,就没有写!

uchar key = 0;
uchar key0 = 0;
uchar key1 = 0;
uchar key2 = 0;
uchar key3 = 0;
uchar key4 = 0;

//以上为全局变量


void key_saomiao(void)
{
 //uchar a = 0;

 P3 = P3 | 0xF0;
 nop();
 key0 = P3;
 key0 = key0 >> 4;
 key2 = key2 | (key0 ^ key1);
 key1 = key0;
 key  = key | (key2 & key0);
 key2 = key ^ key2;
}


void time0_init(void)
{
 uchar a;

 a = TMOD;
 a = a | 0x01;
 TMOD = a;
 //IE   = 0x82;
 TH0  = 0x10;
 TL0  = 0x00;
 ET0  = 1;
 TR0  = 1;
 EA  = 1;  
}

void time0_int(void) interrupt 1
{
 TH0 = 0x10;
 TL0 = 0x00;
 TR0=1;
 time_count++;
 key_saomiao();
 if(time_count > 20)
 {
  LED0 = ~LED0;
  time_count = 0;
 }
}

关键字:单片机  按键程序  去抖动延时 引用地址:单片机中最简单实用的按键程序

上一篇:一段流水灯的单片机程序
下一篇:关于keil中编译程序的一些问题

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

如何突破单片机学习的瓶颈
这个话题目前主要针对单片机的学习者来讨论,以后可能会扩展到更多的领域。 我经常遇到这样的提问:“我学习的时候,看起来书上的东西都学会了,书上的程序自己都调试通过了,还会自己改改了,可下面不知怎么办了,要让我自己开发一个产品,就是不行,有没有什么办法?”。 怎么办?我也不知道,好像真的没有什么通用的方法。 我自己就是自学的,想一想自己从一无所知到能够独立进行产品研发,似乎这其中有很多非技术性的因素,而这些问题的讨论,我想另外专门来谈,这一个篇章里还是专门谈一谈有关技术方面的问题吧。 (1)对于事物本质的理解与把握 很多人(包括我自己)在刚开始学习的时候,总是把一个产品的成功与技术含量等同起来,总是看不起一些似乎没有技术含量
[单片机]
51单片机实现在数码管中实现iphone4S开机密码锁的程序
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: LED-74HC595 ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200627 ---- @ModifiedTime: 20200627
[单片机]
51<font color='red'>单片机</font>实现在数码管中实现iphone4S开机密码锁的<font color='red'>程序</font>
NRF24L01发送程序单片机是STC89C52)
#include reg52.h #include intrins.h typedef unsigned int uint; typedef unsigned char uchar; #define TX_ADDR_WITDH 5//发送地址宽度设置为5个字节 #define RX_ADDR_WITDH 5//接收地址宽度设置为5个字节 #define TX_DATA_WITDH 8// #define RX_DATA_WITDH 8 #define R_REGISTER 0x00 // 读寄存器 #define W_REGISTER 0x20 // 写寄存器 #define R_RX_PLOAD 0x
[单片机]
工业物联网Wi-Fi MCU选型时需要了解的内容
在评估用于IIoT的Wi-Fi MCU时,设计人员需要考虑多种功能,例如ADC,接口,安全性和互操作性。 随着工业物联网(IIoT)的发展,趋势是在单个片上系统(SoC)中而不是在多个分立设备中执行更多功能,因为其结果是材料清单更少,设计风险更小且占地面积更小。一个很好的例子是Wi-Fi微控制器(MCU),它将Wi-Fi与处理器和GPIO集成在一起,以满足各种应用程序的需求。Wi-Fi MCU要谨慎选择,有多个因素需要考虑,理解它们很重要。 当今市场上存在低成本的Wi-Fi选型,但通常会在外围设备数量和整体性能方面做出牺牲。这意味着选择最佳的Wi-Fi MCU具有挑战性和风险,因为启用Wi-Fi的MCU不仅必须具有强大的W
[物联网]
工业物联网Wi-Fi <font color='red'>MCU</font>选型时需要了解的内容
MCU未来发展探析
面对缤纷多彩的 MCU 世界,如何在新品设计,老产品更新换代中正确的选择芯片和供应商将是要面临的一个重要的题目,因为无论是产品的更新还是 MCU 的更新速度都远远超出设计者预想,正确把握 MCU 发展趋势,利用 MCU 帮助产品创新是电子设计者正在考虑的问题。 最近一段时间各大半导体公司纷纷表现出对 MCU (微控制器 / 单片机)市场的关注,相继推出新型的 MCU 芯片,飞思卡尔公司在 6 月 17 日佛罗里达州奥兰多市 飞思卡尔技术论坛上宣布 MCU 将是他们未来业务增长的重要产品线,除了继续引领汽车电子领域 MCU 的优势外,将重视通用 MCU 的发展; ARM 体系结构在嵌入式微处理器市场高速增长带动了 ARM 在 MC
[单片机]
<font color='red'>MCU</font>未来发展探析
I2C总线在单片机上的实现
    摘要: 本文介绍了I2C总线的性能、特点以及数据传输和结构,并详细分析了它的应用示例,给出了它在单片机上的具体实现和相应的汇编程序。     关键词: I2C总线 单片机 随着大规模集成电路技术的发展,把CPU和一个单独工作系统所必需的ROM、RAM、I/O端口、A/D、D/A等外围电路集成在一个单片内而制成的单片机或微控制器愈来愈方便。目前,世界上许多公司生产单片机,品种很多。其中包括各种字长的CPU,各种容量的ROM、RAM以及功能各异的I/O接口电路等等,但是,单片机的品种规格仍然有限,所以只能选用某种单片机来进行扩展。扩展的方法有两种:一种是并行总线,另一种是串行总线。由于串行总线的连线少,结
[工业控制]
51单片机智能时钟设计
控制系统直接通过STC 8a8k64s4a12 单片机控制两组4位的数码管进行显示,使用DS1302时钟芯片进行获取时钟数据,使用DS18b20,获取温度信息,通过HC-05 蓝牙模块进行与手机app通讯,手机app由App Inventor 2编写 可以实现闹钟、用户设置数据的掉电保存,联机自动校时等功能。 作品实物如图所示: 数码管驱动: #include STC8.H #include shumaguan.H #include delay.H uchar code shuzi ={ 0xc0,//0
[单片机]
51<font color='red'>单片机</font>智能时钟设计
以C8051F020单片机为控制核心的人机交互系统设计
在现代各类仪器的开发中,人机交互功能正起着无可替代的作用。人机交互界面友好的仪器将更容易操作和使用,从而提高工作效率。液晶显示器(LCD)具有功耗低、价格低、寿命长、接口控制方便等特点,在科研与设计领域正发挥着越来越大的作用。FPGA 作为单片机外设的接口芯片,可以大大简化接口电路,通过对FPGA 进行编程,可以实现常用的译码、地址选通等功能。 本文以C8051F020 单片机与FPGA 互连系统为控制核心,以液晶显示控制器T6963C 为例,结合行扫描键盘,简述了一种人机交互功能的设计。 1 系统设计方案: FPGA 可在很大程度上扩展单片机的资源,然而人机交互功能仍应尽量减少对单片机及FPGA 的资源消耗, 以便将更多
[单片机]
以C8051F020<font color='red'>单片机</font>为控制核心的人机交互系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

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

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

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