- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
?
?
基于嵌入式的机械旋转编码开关信号检测软件设计
?
?
周首杰
摘要:嵌入式控制是指将单片机嵌入产品中,对产品起到控制作用。机械式旋转编码开关是通过人工操作旋转方向来控制某个量的增加或减小。虽然产生的信号只有两个,但是干扰信号的存在使信号准确检测变得相对困难。通常使用的检测方法有两种,一是通过中断方式进行外部信号的采集,二是通过查询方式进行信号的检测。本文对两种方法进行比较,进而采用较好的办法进行软件设计,有效滤除抖动带来的干扰信号影响。
关键词:嵌入式产品;机械旋转编码开关;信号检测;抗抖动;中断;查询
Abstract:Embeddedcontrolreferstoembeddingthesingle-chipmicrocomputerintheproductandplayingacontrollingroleontheproduct.Themechanicalrotarycodingswitchcontrolstheincreaseordecreaseofacertainamountbymanuallyoperatingthedirectionofrotation.Althoughonlytwosignalsaregenerated,thepresenceofinterferingsignalsmakesitrelativelydifficulttodetectthesignalsaccurately.Therearetwocommonlyuseddetectionmethods,oneistocollectexternalsignalsbyinterruption,andtheotheristodetectsignalsbyquery.Thispapercomparedthetwomethods,andthenadoptedabettermethodforsoftwaredesign,effectivelyfilteringouttheeffectsofinterferencesignalscausedbyjitter.
Keywords:embeddedproducts;mechanicalrotarycodingswitch;signaldetection;anti-jitter;interrupt;query
機械式旋转编码开关是通过旋转过程中产生的触点接通与断开来实现信号的检测,根据触点接通与断开的先后顺序来检测自身的旋转方向。接通与断开过程中存在触点抖动情况,使得单片机检测过程变得较为复杂[1-2]。本文提出两种软件检测方法,讨论其检测程序的编写。
1编码开关原理
图1是一种机械式旋转编码开关外形图。其中,1、2脚是作为按键开关使用的,这里不作讨论。A、B、C三脚是作为旋转信号提供的,下面重点讨论这三个脚的使用。在硬件接线中,人们将C脚接地,将A、B脚分别接单片机检测脚,那么在旋动旋钮时会形成A脚与C脚的接通与断开、B脚与C脚的接通与断开。A脚与C脚的接通与断开形成动作1,B脚与C脚的接通与断开形成动作2,动作1和动作2是不同时发生的,有一个先后顺序,如图2所示。
图2为分别向两个方向旋转旋钮时产生的波形图。当往A端子方向旋转时,A端子与C端子的接通或断开动作领先于B端子。如果往B端子方向旋转时,B端子与C端子的接通与断开动作领先于A端子与C端子的动作。人们就可以根据动作的先后顺序来判断旋钮是左旋还是右旋。
2编码开关的信号检测
通常,有两种方法可以检测编码开关的信号[3-4]。一种是采用中断方式来检测编码开关信号。另一种是采用查询方式来检测编码开关信号。下面对这两种检测方式进行一一讨论。
2.1中断方式检测编码开关信号
以A脚为例说明,将A脚接于单片机的P3.2(INT0),B脚可任接于单片机的一个普通IO口。将A脚设置成外部中断0输入状态,并设置成下降沿触发中断。将B脚设置成悬空输入状态。如果A脚产生中断,就表示A脚产生了电平下降,在中断服务程序中再来检测B脚是高电平还是低电平。如果B脚也是低电平,说明B脚已经于A脚前下降,说明B脚动作在前,那旋转方向就是往B脚方向旋转。往B端方向旋转波形图如图2(b)所示,此时在[Δt5]时间内检测B脚电平就行。如果B脚仍然是高电平,说明B脚电平还没有产生跳变,A脚跳变在前,说明旋转方向是往A脚方向旋转。往A端方向旋转波形图如图2(a)所示,此时在[Δt2]时间内检测B脚电平就行。
2.2查询方式检测编码开关信号
将
文档评论(0)