AVR单片机软件按钮消抖与确认

发布者:火星叔叔最新更新时间:2018-06-21 来源: eefocus关键字:AVR单片机  软件按钮消抖 手机看文章 扫描二维码
随时随地手机看文章

程序过程很简单,就是系统上电后LED0-LED3亮,LED4-LED7灭;当第一次按下SW8后,LED4-LED7亮,LED0-LED3灭 ,再次按下SW8后,LED0-LED3亮,LED4-LED7灭。


按钮在按下与弹起的过程中会出现一定的抖动,这有时会对应用过程产生影响,所以我想了一个办法,用switch来        判断按钮的状态。

       


#include

#include


char B=0,choose1=1;

void SURE_key(int Key_Num);    //定义按键状态判断函数

//=============================

void delay_ms(int k)

{

    int i,j;

    for(i=0;i

    {

       for(j=0;j<850;j++)

       ;

    }

}

//=============================

int main()

{

unsigned char i=0;

DDRA=0xff;    //初始化端口A全为输出

PORTA=~(0xf);    //初始化端口A 0-3输出低电平;4-7输出高电平

DDRD=0x0;                   //初始化端口D全为输入

PORTD|=0xff;                //打开上拉电阻

   while(1)

   {   

   

   SURE_key(~PIND&(1<<4));       //判断按键状态,按下弹起后B++

   if(B%2==1) PORTA=(0xf);

else PORTA=~(0xf);

   

}

   return 0;

}


void SURE_key(int Key_Num)

{

      switch(choose1)

     {

      case 1:

       if(Key_Num!=0) choose1=2;     //按下了么?

  else choose1=1;

       break;  

      case 2:

       if(Key_Num!=0) choose1=3;    //按下了么?

       else choose1=1;

       break;

      case 3:

      if(Key_Num!=0) choose1=3;       //按下了!松开了么?

      else choose1=4;

      break;

      case 4:                          //松开了

       B++;

       choose1=1;

       break;

      }

}



关键字:AVR单片机  软件按钮消抖 引用地址:AVR单片机软件按钮消抖与确认

上一篇:AVR单片机驱动LCD1602
下一篇:Atmega16的定时器time0

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

avr单片机的TWI两线串行接口
ATMEL的TWI 和 PHILIPS的IIC 基本上应该是算一个东西,但是他们在名义上是不同的,这样谁都不用支付给对方使用费。他们的协议是一样的,所有我们作为使用者基本可以简单的看成 TWI就是IIC 。 废话说完,开始正题。这次是关于在ATMega16 平台下的硬件IIC(还不太习惯说TWI)的使用。在ATMega16的Datasheet里我们可以看到很强大的功能,主从设置很多。本文只说一种最常用的方式,那就是 ATMega16 硬件TWI 的 扫描发送 和 扫描读取 。 首先要明确TWI 发送和接受的流程: 发送: 1,设定数据传输波特率 2,发送START信号,等待应答 =
[单片机]
AVR单片机读卡器程序设计
#include #include #define uchar unsigned char #define uint unsigned int //**********定义全局变量*******************// //查表0 1 2 3 4 5 6 7 8 9 E F P OFF uchar table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x79,0x71,0x73,0x00}; uchar ICcode ;//定义IC卡复位时读出的4字节代码; uchar ICcontent ;//定义IC卡有效信息; uchar Money
[单片机]
通过采用AVR单片机ATXmega128A1进行便携式仪表的设计
1.引言 工业化仪表,因其集信息的获取.转换.存储.传输.分析.处理及显示于一体而成为工业控制领域的基础和核心之一.随着计算机技术.微电子技术的发展,工业化仪表已逐渐发展成为具有微处理器系统的智能化仪表.便携式智能仪表因其携带方便.操作方便.界面友好.人机接口丰富.功耗低等特性,使得其在当今生活中越来越普及. AVR XMEGA是8/16位AVR微处理器的升级版本.其采用Atmel picoPower技术,所有器件均可使用1.6V工作电压.MCU具有5霺唤醒时间和100nA的业界极低耗电量,其内部增加集成了全速USB?高速高精度模拟系统.DMA控制器和创新的事件系统,最大限度的提升了数据吞吐量和实时性能,并有效减轻了处理器负载
[单片机]
通过采用<font color='red'>AVR单片机</font>ATXmega128A1进行便携式仪表的设计
DHT11温湿度传感器的AVR单片机例程
/************************************************************************* 程序:ICC-AVR 功能:波特率9600 串口发送温湿度数据 数据格式:湿度 温度 校验和 例如串口发送数据 59 00 24 00 53 则湿度为59 温度为24 校验和为53 公司:DHT11 芯片:M8 晶振:外部 7.3728Mhz **************************************************** **********************/ #include iom8v.h #include macros.h t
[单片机]
DHT11温湿度传感器的<font color='red'>AVR单片机</font>例程
什么是AVR单片机
什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机? AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点: 1:在相同的系统时钟下AVR运行速度最快; 2: 芯片内部的Flsah、EEPROM、SRAM容量较大; 3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP); 4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作; 5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强; 6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口
[单片机]
avr单片机Proteus风速计模型仿真 bascom源程序
编译环境:bascom avr+Proteus8.9 单片机源程序如下: rem Main.bas file generated by New Project wizard rem rem Created: 周二 6月 2 2020 TAOTIE rem Processor: ATmega8 rem Compiler: BASCOM-AVR rem Write your code here $regfile = m8def.dat $crystal = 8000000 '$baud = 9600
[单片机]
<font color='red'>avr单片机</font>Proteus风速计模型仿真 bascom源程序
AVR单片机(学习ing)—(十一)、ATMEGA16驱动12864—01—①
十一、ATMEGA16驱动12864液晶(驱动器为HD61202) 十一—(01)、今天只是个简单的动态的驱动~~(以后还会更新的~~移位什么的~~毕竟这些显示屏还是挺重要的~~而且更重要的是赶紧买板子~~ ) 先上图片~~ 这个是用ATMEGA16仿真的(我真的很疼~~对比一下下面51仿真的,数据被压缩,完全不能理解~~数据完全一样~~) 然后是程序: IAR11_1.c //------------------------------------------------------------------------------ //main #include ioavr.h #include intrinsic
[单片机]
<font color='red'>AVR单片机</font>(学习ing)—(十一)、ATMEGA16驱动12864—01—①
单键开关电路在AVR单片机中的应用
 1 引 言   单键开关电路已经广泛应用于PDA、手机和电子词典等数码产品中,其实现方式多种多样。一般可采用RS触发器、计数器以及采用555集成电路等等。在单片机的一些实际应用中,以上的实现方式会增加整个电路的复杂度,不能达到简洁、实用的效果。本文将介绍一种可以在单片机应用中实现的,简易、稳定的轻触式单键开关电路。    2 电路原理   如图1所示,DC-DC为一个带有关断控制端的直流稳压电源芯片,MCU是一个单片机。当按下S1时,Q1和D1导通,稳压芯片工作,为单片机供电。单片机马上将相应的I/O引脚置为输出高,这时Q1和Q2导通,整个电路进入工作状态。而后单片机再将这个I/O引脚设置为输入,由于上拉电阻R4的存在,Q
[单片机]
单键开关电路在<font color='red'>AVR单片机</font>中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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