单键实现单片机开关机

合集下载

单片机独立按钮实训报告

单片机独立按钮实训报告

一、实训目的通过本次单片机独立按钮实训,掌握单片机的基本原理,了解独立按钮的工作原理及其在单片机中的应用,提高动手实践能力,为后续单片机相关课程的学习打下坚实基础。

二、实训内容1. 独立按钮介绍2. 独立按钮在单片机中的应用3. 独立按钮驱动程序编写4. 实验电路搭建与调试三、实训过程1. 独立按钮介绍独立按钮是一种常用的电子开关,由一个开关和两个引脚组成。

当按钮未按下时,两个引脚处于断开状态;当按钮按下时,两个引脚导通,从而实现信号的传递。

2. 独立按钮在单片机中的应用在单片机中,独立按钮常用于实现简单的输入控制,如按键控制LED灯的亮灭、按键控制继电器开关等。

3. 独立按钮驱动程序编写以51单片机为例,编写独立按钮驱动程序如下:```c#include <reg51.h>#define BUTTON P1 // 定义按钮连接的端口void delay(unsigned int ms) // 延时函数{unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 120; j++);}void main(){while (1){if (BUTTON == 0x00) // 检测按钮是否被按下{delay(10); // 消抖处理if (BUTTON == 0x00) // 再次检测按钮是否被按下{// 执行按钮按下后的操作// ...}}}}```4. 实验电路搭建与调试根据上述程序,搭建如下实验电路:(1)连接按钮:将按钮的两个引脚分别连接到单片机的P1.0引脚和地(GND)。

(2)连接LED灯:将LED灯的正极连接到单片机的P1.1引脚,负极连接到地(GND)。

(3)连接电源:将单片机的VCC引脚连接到5V电源,GND引脚连接到地(GND)。

(4)调试程序:将编译好的程序烧录到单片机中,观察LED灯是否在按钮按下时亮起。

单片机按键单击、双击、长按功能实现

单片机按键单击、双击、长按功能实现

单片机按键单击、双击、长按功能实现由于项目产品的需要,只能设置一个按键,但是需要实现短按(即单击)切换工作模式、长按开关机、双击暂停等复用功能。

下图是三种情况下的按键波形。

按键未按下时是高电平,按下去是低电平。

按键单击时,判断时间门槛设置为50~2000ms;长按门槛为持续按下2000ms。

双击可以视为时间间隔很短的俩次有效单击,从第一次单击上升沿到第二次单击上升沿延时门槛为100~500ms。

按键单击按键长按按键双击在STM8单片机上面实现代码为://按键按下去会出现下降沿,设置按键IO口GPIOB4所在的外部端口B下降沿触发中断void exit_init(void){EXTI_DeInit();EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB,EXTI_SENSITIVITY_FALL_ONLY);}//按键按下中断服务程序INTERRUPT_HANDLER(EXTI_PORTB_IRQHandler,4){if(GPIO_ReadInputPin(GPIOB,GPIO_PIN_4)==0)//是按键下降沿{key_fall_flag = 1;//生成按键按下标志}}//周期1ms的定时器中断服务程序INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23){if(key_fall_flag==1)//发生按键按下事件{if(GPIO_ReadInputPin(GPIOB,GPIO_PIN_4)==0)//按键持续按下{if(key_holdon_ms <= 2000){key_holdon_ms++;}else //按键按下到2000ms就判断长按时间成立,生成长按标志{key_holdon_ms = 0;short_key_flag=0;//清短按键标志key_long_down = 1;//长按键标志置位key_fall_flag = 0;//清按键按下标志}}else //按键抬起{if(key_holdon_ms>50)//按下时间大于50ms,生成单击标志{key_holdon_ms=0;short_key_flag=1;key_long_down =0;key_fall_flag=0;//距离上次单击时间在100~500ms之间,则认为发生连击事件if(keyupCnt>100 && keyupCnt<500){doubleClick = TRUE;short_key_flag=0;}keyUpFlag = TRUE;//单击抬起按键后,生成按键抬起标志}else//按键持续时间小于50ms,忽略{key_holdon_ms=0;short_key_flag=0;long_key_flag=0;key_fall_flag=0;}}}if(keyUpFlag)//单击抬起后,启动计数,计数到500mskeyupCnt++;if(keyupCnt>500){keyupCnt = 0;keyUpFlag = FALSE;}}。

基于单片机的单键单灯亮-灭控制系统设计

基于单片机的单键单灯亮-灭控制系统设计

交流调速课程设计说明书设计题目:基于单片机的单键单灯亮/灭控制系统设计指导教师: xxxxx设计者: xxxx学号: xxxxxxxxx系别:机械工程学院班级:目录一、题目 (1)二、内容要求 (1)三、总体方案设计思路 (1)四、电路原理图 (1)五、程序 (2)六、课程设计心得体会···························· (3)七、参考文件 (4)1题目:基于单片机的单键单灯亮/灭控制系统设计2内容要求:选用单片机为控制核心,用一个按钮控制一只LED 灯的点亮和熄灭。

要求上电后,按一次按钮,灯点亮;再按一次,灯熄灭;第三次案又点亮,如此循环。

3总体方案设计思路:程序通过if判断语句,判断输入引脚,当输入引脚为低电平时,满足if语句判断条件,当条件满足时,通过取反指令,控制输出引脚,LED灯亮灭切换。

通过while循环语句,确定有效按键。

4电路原理图:5程序:#include<reg51.h> //单片机头文件sbit key=P1^0; //按键输入引脚定义sbit led=P2^0; //led灯输出引脚定义main () //主函数{while(1) //死循环{if (key==0) //按键判断低电平有效{led=~led; //灯取反}while(key==0); //按键上升沿等待}}6课程设计心得体会在整个设计中我懂得了许多东西,了解了单片机的电器原理,掌握了单片机的调试的基本原理,特别是单片机的编程技术,对C语言编程和汇编语言编程有了深入的理解,熟悉了单片机开发仪的操作。

对于本次课程设计对基于单片机的单键单灯亮/灭控制系统设计。

51单片机独立按键实验

51单片机独立按键实验

实验5 单片机独立按键控制数码管加1我们在使用家用电器时经常需要通过按键给电器输入指令,让电器执行动作,比如电磁炉的开关,电饭煲定时时间设定等。

我们知道单片机只能识别高低电平,对51单片机来说,0V为低,5V为高。

按键就相当于一个开关,按下时候导通,按键弹开时断开。

机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。

其抖动过程如图1(a)所示,抖动时间的长短与开关的机械特性有关,一般为5 ~10 ms。

从图中可以看出,在触点抖动期间检测按键的通与断状态,可能导致判断出错。

即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。

为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。

一般来说,在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。

(本学习板采用软件去抖方式)。

软件去抖的流程图如图1(b)所示。

从按键的去抖流程图我们可以知道,检测到有键按下时,应延时等待一段时间(可调用一个5ms~10ms的延迟子程序),然后再次判断按键是否被按下,若此时判断按键仍被按下,则认为按键有效,若此时判断按键没有被按下,说明为按键抖动或干扰,应返回重新判断。

键盘真正被按下才可进行相应的处理程序,此时基本就算实现了按键输入,进一步的话可以判断按键是否释放。

8个独立按键电路图从图中可知独立式按键采用每个按键单独占用一根I/O 口线结构。

当按下和释放按键时,输入到单片机I/O 端口的电平是不一样的,因此可以根据不同端口电平的变化判断是否有按键按下以及是哪一个按键按下。

按键和单片机引脚连接并加了上拉电阻,这样当没有按键按下的时候,I/O 输入的电平是高电平,当有按键按下的时候,I/O 输入的电平是低电平。

虽然独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O 口线,因此,在按键较多时,I/O 口线浪费较大。

【PLC编程好技巧】8种“单键启停”程序,你造么?

【PLC编程好技巧】8种“单键启停”程序,你造么?

【PLC编程好技巧】8种“单键启停”程序,你造么?
“PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。

它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。

PLC 及其有关的外围设备都应该按易于与工业控制系统形成一个整体,易于扩展其功能的原则而设计。


目前市场上的PLC机型很多,但其基本结构、原理相同,基本功能、指令系统、编程方法类似。

因此,选择了当今最具特色和符合IEC 标准的西门子S7-300/400作为背景机型论述。

在实际工作中,经常遇到这样一种题目:“用一个按钮控制电动机的启停,即第一下按按钮,电机运转,第二次按按钮,电机停止运转。

”浏览了近几年各地的PLC技能比赛也多次涉及到类似问题。

下面就以S7-300PLC为例,介绍七种“单键控制电机启停”PLC编程实例。

一、用SR触发器实现
二、用逻辑判断实现
三、用计数器实现
四、用字右移指令实现
五、用异或指令实现
六、用累加器指令实现
七用S和R指令实现
八、用双字循环右移指令实现。

单片机实践-独立按键电路原理及代码实现

单片机实践-独立按键电路原理及代码实现
一定要去掉“前沿抖动”和 “后沿抖动”的脉冲,两者 统称为按键去抖动。
11 原理分析
那怎么样对键盘去抖动呢?
一般可以采用硬件电路和软件程序两种方法消除键盘抖动。但在现代电 子产品开发过程中,一般都采用软件去抖动。
11 原理分析
软件程序消除键盘抖动措:
① 检测判断是否有键按下; ② 若有则执行5~10ms的延时程序; ③ 再重新检测判断该键是否仍然按下。 同理,在检测到该键释放时,也采用先 延时再判断的方法消除抖动的影响。一 般释放键时,不需要检测和去抖动操作 。
//按键处理,开灯、关灯等 } else if(P11==0)//判断是否为P11的按键按下 {
//按键处理,开灯、关灯等 } while(P10==0||P11==0);//等待两个按键都松开 } //返回
}
THANK YOU
独立按键工作原理 及代码实现
CONTENTS
原理分析
代码实现
11 原理分析
按键电路的工作原理: 按下:A为低电平,0v 松开:A为高电平,5v
独立按键电路
11 原理分析
机械式按键的开、关分别是通过机械触点的合、断来实现,由于机械触 点的弹性作用,在闭合或者断开的瞬间均有抖动现象,会出现一系列电脉冲 ,抖动时间长短,与开关的机械特性、按键动作等因素有关。抖动时间一般 有5~10ms。在抖动期间检测按键的开或者关,可能导致键盘识别出错。
}
N
判断键按下?
Y 延时去抖动
N 再判断键按下? Y 按键处理
N 等待按键松开 Y
21 代码实现
两个按键的 判断方法:
void KeyScan( )
{
if(P10==0||P11==0) //判断是否有按键按下 {

单按钮启停控制(外部中断应用)

单按钮启停控制(外部中断应用)

江 苏 省 盐 城 技 师 学 院教 案 首 页编 号:YJQD-0507-07 版 本:B/O 流水号: 编 制: 审 核: 批 准:课题: 单按钮启停控制(外部中断应用) 教学目的、要求:1、了解80C51单片机的中断工作方式。

2、 掌握80C51单片机外部中断使用方法。

教学重点、难点:掌握80C51单片机外部中断使用方法 教学方法:启发式教学、实验教学、任务驱动型教学 教学参考及教具(含电教设备):多媒体设备、高职高专规划教材《单片机原理与控制技术》、DVCC 系列单片机微机仿真实验系统实验指导书。

授课执行情况及分析:板书或教学设计:授课日期 班 级课题:单按钮启停控制(外部中断应用)一、知识回顾 二、任务引入 三、任务分析 四、相关知识(1)80C51的中断源 (2)中断控制寄存器五、任务实施 六、任务拓展 七、巡回指导 八、结束指导课题单按钮启停控制(外部中断应用)课前准备:1、DVCC系列单片机微机仿真实验系统2、安装有DVCC实验系统软件的计算机、多媒体投影仪3、万用表及常用电工工具组织教学:检查学生人数、标志牌佩戴、工作服及工具准备情况。

知识回顾(复习提问):单片机的中断源有几个?各自作用是什么?任务引入:中断是单片机实时地处理内部或外部事件的一种内部机制。

当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。

所以说要实现一个按钮完成多个功能,且不影响原来的操作,可以采用中断操作。

任务分析:硬件电路:利用外部中断控制数码管的显示。

控制要求:第一次按下按钮,数码管从00开始计数,计到最大值99,再从0开始显示;第二次按下按钮,数码管显示当前值;第三次按下按钮,数码管的值清0且重复(已知晶振为频率为12MHZ)。

相关知识:1、80C51的中断源中断源是指能发出中断请求,引起中断的装置或事件。

单片机按键原理

单片机按键原理

单片机按键原理
单片机按键原理是利用按键的机械接触来完成开关动作。

当按下按键时,按键的触点会接通按键两端的电路,形成通路,从而使电流得以流动。

与此同时,可以通过单片机的IO口进行
监测,通过读取IO口的电平状态可以判断按键是否被按下。

在单片机按键电路中,通常需要加入上拉电阻或下拉电阻来确保按键在未被按下时具有一个确定的电平状态。

当按键未被按下时,上拉电阻或下拉电阻会将按键上或下的电平拉高或拉低,并且可以减小电路中的干扰。

当按键被按下时,IO口所连接的引脚的电平状态会发生改变,单片机可以通过检测到引脚电平状态的变化来判断按键被按下的动作。

为了避免按键的抖动问题(由于机械接触而导致的短时间内多次的接通和断开),可以在软件中增加延时或采用其他滤波方法来解决。

通过单片机按键原理,可以实现诸如控制、输入、菜单选择等功能。

在工程实践中,常常需要考虑到按键的稳定性、响应速度、布局等因素,以提高整个系统的可靠性和用户体验。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单键实现单片机开关机.
1,控制流程,按下按键,Q1导通.单片机通电复位,工作.
2,检测 K-IN 是否低电平,否不处理.是单片机输出 K-OUT 为高电平,Q2导通,相当于按键长按.
3,放开按键,K-IN 经过上拉电阻,为高电平.单片机可以正常工作.
4,在工作期间,按键按下,K-IN 为低电平,单片机检测到,K-OUT 输出低电平,Q2截止.放开按键,Q1截止,单片机断电.
5,通过软件处理,可以实现短按开机,长按关机.
此电路是笔者通过理论设计,还没有经过实验.
本人是刚毕业处于学习阶段看到你的帖子就想了个电路也不知道能行通不发来让各位前辈赐教下,也好让我进步.
具体实现步骤
1 按下开关Q1 Q
2 Q3导通给单片机供电.
2 单片机上点后立即是使Q4导通
3 5PIN是一般检测按键PIN方法很常规.
望各位大哥指教!!。

相关文档
最新文档