百摩网
当前位置: 首页 生活百科

proteus仿真51单片机原理图(基于proteus的51单片机开发实例)

时间:2023-07-18 作者: 小编 阅读量: 4 栏目名: 生活百科

发光二极管可以看作是51单片机最基础、最典型的输出控制实现,而按键可以作为51单片机最典型的输入检测功能实现。通过检测按键被按下时,LED发光;按键松开后,LED熄灭。从而完美实现本实例的目的。而输出则是通过给端口施加高电平或者低电平来控制外电路的工作状态。LED控制电路中,LED通过单片机的P1.7控制,采用灌电流的驱动方式。

1. 基于proteus的51单片机开发实例(7)--按键的检测

1.1. 实验目的

图1是本实例的电路图。

图1 独立按键检测电路

本实例我们来了解如何使用51单片机检测按键。在之前的实例中我们已经了解过,通过发光二极管和按键几乎可以把51单片机的大部分功能模拟实现。发光二极管可以看作是51单片机最基础、最典型的输出控制实现,而按键可以作为51单片机最典型的输入检测功能实现。

通过本实例,了解到如何编程实现51单片机如何检测按键的状态,但是程序毕竟是看不见摸不着的东西。如何直观地提示大家按键是被按下了还是松开了呢?我们通过发光二极管的亮灭来指示,这样就简单、直观的实现了按键状态的检测。

1.2. 设计思路

本例实现的功能是通过编程实现51单片机检测按键的状态。为了能够直观的观察程序运行的正确性,我们又加入了一个LED。

通过检测按键被按下时,LED发光;按键松开后,LED熄灭。从而完美实现本实例的目的。

1.3. 基础知识

1.3.1. 51单片机端口的输入和输出

简单来说,在端口作为通用I/O口时,输入主要用以检测端口的状态,通过识别端口是处于高电平还是低电平来判断外电路的工作状态。而输出则是通过给端口施加高电平或者低电平来控制外电路的工作状态。

1.3.2. 按键的检测方法

图2是按键的实物图。可以看到,按键有4个引脚,如果我们用万用表测量的话,会发现这4个管脚实际分为两组,每组2个引脚,在按键未被按下时。这两个引脚始终处于“常闭”状态,也就是说,每组的两个引脚始终是导通的,而在这两组引脚之间是断开的,当按键按下后,这两组引脚之间就“导通了”。

图2 独立按键实物图

我们先来做一个实验,在proteus中,先按照图1所示的电路图建立一个项目,然后输入下面一段程序,然后开始仿真,看看当我们按动、松开按键时,LED灯的变换情况。

#include <AT89X52.h>//头文件sbit S1 = P3^0;//定义按键引脚sbit LED0 = P1^7;//定义LED引脚void main(void){LED0 = 1;//程序运行后,先将LED熄灭while(1){if(S1 == 0)//检测按键是否按下{LED0 = !LED0;//LED状态翻转}}}

程序中想要实现按键每按下一次,LED的状态翻转一次,但是当我们仿真时,发现LED的状态并不如我们预期的那样,有时候按键按下LED会闪烁不止一次。仿真效果如下面视频所示。

通过上面这个延时,我们了解到一个问题,按键的检测并不是如我们想象的这么简单,那么问题出在哪里呢?

事实上,我们用到的这种按键一般是由机械触点构成的,当触点闭合、断开时都会有抖动,这种抖动可以从图3中看出来。从图中可以看出,当按键抖动时,会在极短的时间内反复出现电平的高低变化,这个时间很短,一般是在毫秒级别,这种抖动对于我们直观是很难觉察到的,但是单片机不一样,例如51单片机,假如其时钟是12MHz,那么它的指令周期就是12/12MHz=1us,也就是说,51单片机每执行一条指令只需要1微秒,微秒对毫秒,这个差别就很明显了,所以单片机在按键抖动期间,是会检测到多次按键状态变化的。

既然存在这个问题,那么该怎么解决呢?

有两种解决办法,一是硬件消抖,二是软件消抖。

1、硬件防抖

硬件消抖电路如图4、图5所示。

图4 硬件消抖电路1

在图4中,当按键断开时,电源电压经典组对电容充电,电容上电压与电源电压相等,当按键按下,由于按键内阻很小,电容通过按键迅速放电,按键两端电压迅速降到接近0V,单片机输入端为低电平,在按键按下时,由于抖动导致按键会短时断开,电源电压经电阻对电容充电,由于电阻的阻值较大,短时间内电容充电量很少,所以电容两端电压基本不变,单片机输入端的电平也基本保持不变,从而保证了按键抖动时仍可以使单片机输入端保持稳定的低电平信号。图5所示电路的接法与图4刚好相反,在此不再赘述。

图5 硬件消抖电路2

选择硬件防抖电路时,电阻值和电容值的选取是很关键的。具体怎么选取电阻和电容的值呢,可以参考以下公式。

t<0.357*RC

这个公式中,t是按键抖动的时间,一般按键抖动时间是10~20ms,如果选取电阻阻值为10k,那么电容的值可以在2.5~5.6微法之间选取。通常选择3.3微法。

需要说明的是,考虑到按键按下时的功耗,一般电阻值选择要大一些。

2、软件防抖

用硬件防抖电路稳定性好、可靠性高,但是有一个缺点:增加电路中元器件,造成成本的提高。而软件防抖只是在程序中进行处理,不会增加元器件,所以相对来说,不会增加成本(毕竟软件成本相对很低)。

软件防抖的基本原理是:在单片机第一次检测到按键按下时,立即运行一短延时程序,在延时程序运行期间,不检测端口的电平状态,延时时间过后,按键的状态已经稳定了,这时单片机再检测按键的状态,这样可以避开按键的抖动期,从而从单片机端口得到稳定的按键状态。

软件防抖的延时时间一般选择10~20ms。这样也会有一个缺点:影响程序的执行效率。

1.1. 电路设计

本实例中电路有两部分:按键检测电路、LED控制电路。

按键检测电路中,按键的一端接到单片机的一个端口P3.0,另一端接地,按键端口接一个上拉电阻,按键未按下时,单片机端口处于高电平,按键按下后,单片机端口变为低电平。

LED控制电路中,LED通过单片机的P1.7控制,采用灌电流的驱动方式。

1.2. 程序设计

如下是本实例的程序代码。

#include <AT89X52.h>//头文件sbit S1 = P3^0;//定义按键引脚sbit LED0 = P1^7;//定义LED引脚void main(void){unsigned char i,j;LED0 = 1;//程序运行后,先将LED熄灭while(1){if(S1 == 0)//检测到按键按下{for(i = 0;i < 200;i) //延时一段时间for(j = 0;j < 200;j);if(S1 == 0)//再次检测到按键按下{LED0 = !LED0;//LED状态翻转}}}}

本实例中按键检测电路采用的是软件消抖方式,具体实现方法是,当程序中检测到按键端口P3.0按下时,立即延时一段时间,再次判断按键的状态,如果P3.0仍处于低电平,则认为按键确实被按下了,此时将LED控制端口P1.7的输出电平翻转。

1.3. 实例仿真

程序编写完毕后,编译生成HEX文件,将HEX文件载入proteus电路中的单片机,然后开始仿真,就可以看到每次按键按下,LED的状态会稳定的翻转一次。

1.4. 总结

通过本实例,我们掌握了单片机按键检测电路,了解了按键的抖动以及如何从电路和程序两种途径消除这种抖动。

至此,我们已经掌握了单片机学习过程中最简单、最经典的两种元器件:输出控制指示元件LED,输入检测元件按键。这对我们接下来的学习有极大的帮助。

    推荐阅读
  • 企鹅化石在哪里发现的(企鹅曾在北半球生活)

    说起来,在这次北半球发现plotopterid之前,企鹅骸骨一直仅在南半球被发现。去年8月,科学家们在新西兰发现了一种巨型的企鹅骸骨,它的身高达到了1.6米,来自于距今6600万年-5600万年之间的古新世时期。同样的情况还发生在秘鲁,在南部海岸,同样发现了一些距今3600万年前的巨型企鹅化石,从身高上推测,它们大约在1.5米左右。这对于它们来说,也是不幸的开始。后来,科学家们经过研究才发现,南极的企鹅和大海雀之间,一点关系都没有。

  • 音乐1234567叫什么名称(音乐1234567叫什么名字)

    下面更多详细答案一起来看看吧!音乐1234567叫什么名称do、re、mi、fa、sol、la、ti。代表音阶中的7个基本音级。在乐音体系中,具有独立名称的七个音级叫做基本音级。这七个音级符合现在钢琴上白色琴键所发出的声音。

  • 大部分夫妻中年都会离婚吗(人到中年夫妻不和)

    前天董子健和孙怡官宣离婚了,就在不久前,两人在一档综艺节目中还在秀恩爱,突然发出离婚的消息让人很意外。相信两个人做出的决定并不是一时意气,是考虑良久的结果。对待婚姻,亦是如此。缺少父、母任何一方的陪伴,都不利于孩子的身心健康。结婚是为了过得更好,离婚也是。她以对方为过错方争取到了孩子的抚养权,房子卖了分到了应有的钱,带着两个孩子开了一家小店。听说人生的幸运与不幸,总量是不变的。

  • cf手游四月份新版本内容(CF手游新版发布在即)

    特别是在全新"血月"模式中,玩家一旦被感染将会变成"僵尸",唯有服用"特种疫苗"这一新道具才能实现自救,否则将在尸毒的侵蚀下中毒身亡。与此同时,全新"焕"系列武器亮相。其中,超人气的"诸神黄昏"皮肤上线势必再度掀起万化热潮。与此同时,游戏还将推出11款光效、2款玩偶、2款饰品和4款喷图。备受关注的全新团竞地图"恐龙博物馆",则以"恐龙"作为核心要素进行地图布局。

  • 国庆做什么菜最好(家宴安排这八道菜)

    腐竹提前浸泡,泡软后洗干净挤干水分。蟹味菇清洗干净备用。淋入提前调好的酱汁,继续爆炒10秒。

  • 词语接龙方法到家庭(词语接龙方法到家庭集锦)

    以下内容大家不妨参考一二希望能帮到您!词语接龙方法到家庭方正、正大、大地、地上、上面、面团、团员、员工、工人、人家、家庭。方面、面条、条子、子女、女孩、孩童、童谣、谣言、言语、语文、文人、人家、家庭。方桌、桌子、子孙、孙女、女儿、儿童、童心、心上、上回、回家、家庭。方便、便当、当然、然后、后来、来回、回家、家庭。方法、法院、院士、士官、官人、人家、家庭。方圆、圆圈、圈地、地主、主人、人家、家庭。

  • 只有牛奶和鸡蛋可以做出什么吃的(高蛋白早餐食材排行)

    三、牛肉牛肉在肉类食材中蛋白质含量是最高,每100克中含有蛋白质20.2克,建早餐来一块煎牛排,有一刻钟的时间足够了。

  • 梦幻诛仙2苍羽阁加点(梦幻诛仙2苍羽阁飞雪连天)

    苍羽阁是《梦幻诛仙手游》新出的一个职业,很多玩家对于这个职业比较陌生。下面我就跟大家详细介绍一下苍羽阁的属性加点,一起来看看吧。苍羽阁属性加点:苍羽作为这款G里面的主输出,现行的加点的有2种。这类主要就是抢速度,普片存在于129的档次,因为等级等条件人物攻击本身高,速度快的话合体技能对对面的人比较有优势。主要还是看你等级在哪个档,才好做最佳选择。更多相关资讯攻略请关注:梦幻诛仙手游专题

  • 什么水果是蓝色的(什么水果是蓝色的什么蔬菜是蓝色的)

    蓝莓、蓝靛果、俄勒冈葡萄、蓝草莓、蓝榛子等水果是蓝色的。因其具有较高的保健价值因此风靡世界,是世界粮食及农业组织推荐的五大健康水果之一。俄勒冈葡萄的果实是可食用的小型蓝莓。俄勒冈葡萄的根有异苦味,这是由于它含有生物碱,包括最有名的黄连素。

  • 怎么去火气(怎样去火气最有效的方法)

    治疗上宜采用苦寒制火、清热解毒、泻实败火的原则和方法。虚火多因内伤劳损所致,如久病精气耗损、劳伤过度,可导致脏腑失调、虚弱而生内热、内热进而化虚火。根据病机不同,一般将虚火进一步分为阴虚火旺和气虚火旺两种病状。治疗时应以生津养血、滋阴降火为原则。治疗时应以补中益气、强肾兴阳、甘温除热为原则。分析上火虚实,针对用药非常重要。另外,有些去火的食品也可尝试,但也需对症。