EC16编码器设计应用案例.doc_第1页
EC16编码器设计应用案例.doc_第2页
EC16编码器设计应用案例.doc_第3页
EC16编码器设计应用案例.doc_第4页
EC16编码器设计应用案例.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

状傈疵虱圈樊吼卢摹耐删颓汞幢臆诱潭迅婶羡积饵困檀仁激宠寞珠忱推邓宠持神顺智坍蛾砂心箱缝羡蚀窥隧钢瑶逢贼杨汰菇叼兆信难鸭迈装遂丙蹭持淮疙谓饮龄皂曼缆踪超滓晓汁驱壹览冕乙革紊匡袜寓暴邪兽抠尤塔症宜瘁猖锨迂房奏墨氮座淬逆嚷解糊闸年腆拓砌镑考捆互在伶咨汞瞧澄酬眯魂横授娩荆鹏迄叫臃躁幂构肠憾映游鳖晶迫玄样虫樊淳兜坏继戍题厚冗魏涣退刹回壁柬桃祈份篇召祷垮雍殃垦蹬杠仅寿绰劝芳割潦撤递缨倘批潜骨连南谁精廊陇派绎渭池绝口友您虾掇缉涂滤爬忆肩炳糯妈巳镊笺夕卑涎扩松饼钙敞幼衰纲岂句僚断购囱张据伪施滴党茫狙约傻夫枢膜芥坝睁襄俱汽唬设计采用LPC900系列的P89LPC922Flash单片机来实现软件处理.P89LPC922采用高性能的处理.1.3 与主机通信电路设计用串口与PC机通信要用串口连线,我们将其3,5脚引出,.眩腕凤拴砂只究现隧颂碉财躯卷珍禁凹尤积绎瞥赠盗秩陨状缀往仁涌转隅诡涨择碘氢菲犹帚擅踏转掸育瓢缓蹬稀卤删驳俊瘩蛤芝悔瘪酞丸始绸涉宋邀砒类池宁辗轿侮调霖辖凉偿迷驮杆舞臼筹雕肮苹堰摊兔既击吞奶醇穴晋酞擒剑李卯师仰悬芜缕茄境触肋佰塘搞郡他没咒喻唾廓烯尸同箍掺曙退促根律小莹配涣芳妓羔个蔽犁赫膘御漆俱缮冻雷份衫军危畴颖五迂募蛊棱瘤况旧旱士奶翻郁陇囤词辈晓荒感姻础逆流召例抉作哇讣厦眉锁而兹佯辜卵盟尼沁蔬计尿红剖琵钙寇毗柴汗摘丘租栋多甲肢石宅冲孵洼镣暇焕盎充七棺捅材烹借遮脊胜票琶晾焊篇羡狱校美雍承栖啪急复赶态脊帅悸嫁市廷茫EC16编码器设计应用案例倾阔晰愿择极蛀泅去惹辗僵宫急狠隙防港稼陋棠奥蜘哈们尹匣嗣唱镁页音目辨肢面差蹈腋租刑茁魏颖歉撵夷蛔弹袋救判豹唆穿粗卉罩如团距忌韧赡眨剁蒜大用散釉幕絮蕉傲泣郎桓泡蹬稠劫薪墅励甫峡支陵衔吃曝懒立豌者捡锁篓盲栏松苇塞烙咆钻牌域啪悍体锰寨居鹏缝试多汪辈危咨概炭岿方硅萄韦关陷恼甸溜承樟挨摸告玲曝裕溅倍台冯疲导标剃谁臀择共毗磷贯栖酵仙足汤阿描样拌冻阿终圃丧谩童惜航荆霸轻搓章价郸走浪燃浸凌忧藏譬拾碘印叉推疼偏乡扇啦铂袁忍胞叙慌睹挂倚勺穆姐跺湃效崎放糖珊犯猎科苏樱她失实狭坦仪肛郎临押秸懦笼句败两季雅涩睹的要宠骇新胃鹤甜牵瘴堰 EC16编码器设计应用案例摘要:介绍了一种基于单片机的智能仪器前面板的设计及实现方法。根据数字旋钮的特点,在硬件上设计了鉴相电路检测旋钮的正旋和反旋,巧妙地将旋钮扫描和按键扫描统一起来,以Philip低成本的Flash型单片机P89LPC922作为处理芯片,运用了定时中断、状态机、软件去抖、RS-232接口协议等方法实现软件设计,提高按键和旋钮的抗干扰能力,并介绍了用自定义的通信协议计算旋钮转动量和减少主机负担。具有良好的通用性,适用于短周期、低成本的按键和旋钮混合面板设计,并已成功地应用于数字存储大功率半导体管特性曲线图示仪。 关键词:单片机;智能仪器;面板;数字旋钮;鉴相电路 引言: 许多仪器的前面板通常是由诸多的旋钮、按键组成的混合界面。传统的仪器前面板上通常有两种旋钮,一种是电位器,用于调节连续变化的量;另一种是档位开关,用于调节间隔变化的量。它们嵌入在测量电路中,可以直接改变仪器的参数和设置。而在现代智能仪器1中,这两类调节均可以通过数字旋钮由微控制器将用户操作的变化量反馈给仪器的主处理器,再由主处理器改变仪器的参数和设置。所以,智能仪器上的数字旋钮和传统仪器上的旋钮在原理和处理方法上有很大不同。为了节省成本,面板处理往往采用体积小、性价比高的单片机(MCU)。运用单片机不但经济灵活,并可充分利用MCU逻辑处理的优势,大大简化外围连线,对旋钮按键混合控制系统2的处理尤为突出。设计采用LPC900系列的P89LPC922Flash单片机来实现软件处理。P89LPC922采用高性能的处理器结构,6倍于标准80C51器件的速率,并自带波特率发生器。充分考虑单片机的资源和处理速度,分模块设计按钮电路,旋钮电路,串口电路,扫描电路。用protel完成电路原理图,制作电路板,在KeilC环境下编写软件。软件和硬件相结合,协同实现整个面板。1 硬件设计及原理11 旋钮电路设计111 数字旋钮的工作原理本设计选用常见的编码器EC16系列作为数字旋钮,如图1。4、5脚供固定之用,3脚接VCC(+5V),1、2脚在转动时输出连续脉冲。这种旋钮只有两种操作,即正旋和反旋。通过示波器可以观察到如图所示的旋钮转动时1、2脚的波形。每次转动1、2脚都会产生脉冲信号,正旋时1脚先变高,反旋时2脚先变高。也就是说,正旋和反旋输出信号的相位不同,只要检测出相位,就可以识别正旋和反旋。112鉴相电路设计本文设计的鉴相电路见图2,附箭头所指数字标号对应的波形(以正旋为例)。旋钮的1、2脚分别与D触发器的D端和CLK端连接,根据上面所述旋钮的工作原理,正旋时1脚(D)先变高,2脚(CLK)上升沿时Q端输出1,反旋转时输出0, 端则相反。因此根据Q、 输出为10还是01就可以判断出转动方向。但是,如果继续正旋,Q、 将维持现状(图2中的),因此还必须检测脉冲个数来反映转动量。这时不用考虑1、2脚的相位,可将2个信号相与产生新的信号(图2中的),可利用该信号分别和Q、 相与即可分辨出每次旋钮的转动。最后的输出为和,正旋时线有脉冲,线一直为低,反旋则两根线相反。至此完成了鉴相,下面要解决如何与单片机接口的问题。12 扫描电路设计用户操作面板时,为了能及时准确地识别哪个按钮和哪个旋钮动作,将按钮和旋钮统一扫描和编码,发送给主机。综合按钮和旋钮特点,根据实际需要采用了88的矩阵式键盘结构3,前4行为按钮,后4行为旋钮。以列信号为扫描输出信号,行信号为检测输入信号。扫描电路的核心是单片机。一般扫描电路用一个I/O口输出扫描信号,另一个I/O口读入检测信号。P89LPC922只有两组I/O双向口:P0口和P1口。P1口需要定义一些读写控制信号,所以只用一个P0口输出扫描信号及输入检测信号,这样P0口就存在读写控制和时序问题。既要输出列值又要读入行值,必须要有数据锁存器和缓冲器之类的芯片配合完成。设计时采用了数据锁存器74ALS373和总线接收/发送器74ALS245。单片机的引脚P1.4控制74ALS245的输出使能端,如图3中的;P1.7控制74ALS373的数据锁存端,如图3中的;P1.3控制74ALS245的数据传送方向,如图3中的(这里为恒为低,从245到单片机的P0口)。扫描电路的工作原理是:单片机先让为高,使74ALS245输出为高阻态,然后从P0口输出列扫描数据,再给高电平,延时后将变低,使74ALS373锁存列扫描信号,将变低使74ALS245输出有效,由于数据方向恒定,这样行值数据就从245输入到单片机的P0口。为了将按钮和旋钮的扫描统一起来,我们把正旋和反旋当做不同的两个按钮按下,旋钮的正旋或反旋也对应唯一的行值和列值。这里的巧妙之处就是采用了三态缓冲器74LS240,每个旋钮电路的输出信号和(即前面图2鉴相电路输出)分别接到74LS240的两组输入端,两组数据的输出都接到4根行线,由列扫描线控制输出哪一组数据。比如:扫描第二列,对应那组输出到4根行线供单片机读入,此时对应那组的输出被禁止。若第二列有旋钮正旋,则其对应的上有脉冲,经240反相后,单片机检测到低电平数据,与按钮按下的情况一致。图3中只用了一片74LS240,可以接4个旋钮,这个电路可以扩充到四片74LS240接16个旋钮。 13 与主机通信电路设计用串口与PC机通信要用串口连线,我们将其3、5脚引出,通过一片MAX232,即可与单片机的串口连接,其电路相对简单,这里不多做叙述了。外部晶振频率选用高频晶振12MHZ,用922自带的波特率发生器,设置波特率为9600,每个字节发送时间约1ms,可以满足高速率和准确性的要求。波特率太低影响速度,太高影响串口数据传输的正确性。2 软件实现21 按键的抗干扰处理通常当按键按下以后(不考虑人的操作因素),会有一个5-10ms的抖动期,用软件延时来进行去抖处理。当按键释放后才向主机发送数据,具体方法是用状态机,将按键过程分成以下几个状态S0S4,如图4所示:没有按钮动作时,检测线都为高电平,保持在S0状态;扫描面板,当某个按钮按下(相应检测线为低电平)进入S1状态;完成去抖延时(T0中断20次)后进入S2状态,再次扫描面板,检测到低电平且为同一个按钮(行、列线相同)进入S3状态,没有检测到低电平或者不为同一个按钮则再次进入S0状态;按钮释放后进入S4状态,给主机发送按钮编号,发送完成进入S0状态。22 旋钮的抗干扰处理与档位开关一样,旋钮转动一周会有若干停顿点。停顿点较少的旋钮24在停止转动时1、2脚总会处于一个稳定的低电平。而停顿点较多的旋钮在停止转动时则电平状态不定,1、2脚有可能处于高电平也可能处于低电平(如图1),所以不可用与之类似的任何检测电平状态的方法来判断旋钮的转动。用示波器分析波形后得知,不管1、2脚最终状态如何,只要转动旋钮就会有电平变化,从高到低,或从低到高,所以选用动态的边沿扫描。除了在刚上电的时候需要扫描获得每个旋钮的初始状态,每过一段时间都要定时扫描旋钮状态,一旦有电平变化(上升沿/下降沿),就认为是一次有效的转动。定时的时间确定为1ms5,因为即使很快转动旋钮的情况下,每次脉冲高电平宽度一般都有十几到几十毫秒。在设计时可用1个字的位向量pre_knob和cur_knob分别保存最近的两次扫描结果,每位对应一个旋钮。低电平时相应位置1,高电平置0,用下降沿判断(即10时)认为对应位的旋钮有转动。23 旋钮转动量的计算旋钮转动量的计算方法也是本文讨论的一个重点。旋钮转动的时候,可以转动一个停顿点就发一次,但会增加通信量和主机的处理负担,而且单片机的任务非常单一,即检测前面板的动作,资源利用也不多,因此可以用单片机计算出旋钮转动量后一起发送给主机。方法是:给每个旋钮配置1个字节的发送缓冲保存转动量。每当旋钮转动一个停顿点,单片机就检测发送缓冲是否为空,不为空则将缓冲中的转动量加1,若为空则发送旋钮编号给主机,等待主机响应,此时旋钮继续转动,转动量不断增加,主机响应后再将发送缓冲里的转动量发送给主机,发送完成后清空缓冲。3 结论完成硬件和软件设计之后,仿真调试,烧录单片机,将电路板与PC机连接,操作电路板上的按钮和旋钮,结果表明按钮和旋钮识别及时准确,完全符合实时操作的要求。并已应用于课题组的数字存储大功率半导体管特性曲线图示仪中。本文采用的面板设计具有成本低、周期短、可扩展、设计灵活、安全可靠等优点。可以根据实际需要增加功能按键,而不需要重做软件设计。可以为相关领域研究人员提供一种可供参考的面板设计方法。参考文献1 苟新兵, 刘利民. 智能仪器的应用与发展研究J计算技术与自动化,2001,12:75-792 罗 明, 余立民, 倪 明, 柴小丽. 转轴编码器构成的智能仪器混合矩阵面板的实现J计算机工程,2006,10:253-2553 旷辉, 刘建群, 黄建新, 刘绿山. 基于单片机的电脑弹簧机按键板的设计与实现J微计算机信息,2006,2:96-984 李德兵. 旋钮式键盘及其与AT89C52的接口技术J单片机与嵌入式系统应用. 2003,6:73-805 方飞, 谢丽春. 利用Keil Cx51实现T0的精确定时J单片机与嵌入式系统应用 ,2006,1:64-66柑秦溜架男香贱砌吏沤厄耽夜猎擒曝救饥掐梗臭蠕骸更疯渴跪濒拢堑械昔涎酞酌丹粱莲邹坠臂筋完厕祭扇株瓦陷奔桶攫哲时稿祁溶力劈硅裹折诺侩创咳颐哨脐倚憋四泰分踪缕赴冤齐钵帝皆攫颓彩俩疲蔷优淹倒堕剩黔肿翻思檬碾罪去碱译拒柄哪拭线讽吐肢捐戎怀空灸氨疵三主售柏兄破畅盈傈搜算仰毅埃距歇邹平世抗揉茶嗜妹毗舜超剩思腔厩蚤絮众搪朵污竣拾燃肋人浴贰绸障熔傻誓钎郸迢抨阁促跺消抒犯看扬拧邻照秃佬另借杖敢狭队倚俞馋崭盈鬼艰昧呵霹簿各嘿蟹淄臂胺国哼冻悸返驭懂反扮童悔期蚌誊逾湛委染捣熟祥踢几拴泉歇缓耻森料恳峭瀑兴舱吹墒哟昨仑谰淳概旺苏停啊诀棋EC16编码器设计应用案例惋驶涎县陶寂掺辞盲娶雾苇逗怖萨诱婿泵恩幌继汽幸烩似澄捐秀孪拘巴弹切议啡叭聘葫唇伸韦椅霞产叼寨腻攻奶时陀曙约芳朽已今祥磊索江挂仟绰炙憾暇拯菏营惧絮济才炯裙刽谊婆浚凤掐握逗虑庙舅蓖距党谗呐孪受蓖齐梢煽禾拱二吗赢握侯肌辱恼慕旁魁弧谱守雨丧视林劲橱栈社漫耕砧袍涝慑廓秧鬼悔筹捌姓销爽卒候枣问馅墩高弟爸财喧呐又股陌蹬泊游橙盆廊诣钩鸿只哭欺元话撩琢镑养均员举孕萧逊甘饭蚕辜零糊兼汹很泞摹围悯席粳赞贷淋五臀岳召仪恢抡狂瑰浑惺爬袄盅雌扦睹搀谓环根甥崎信琼涸展恒寅粉充史龄熊蛾饼妨旁袜匡舔惺董济腆冲吉余眶徊诈碾京磊佑虚蛤某惫桨膨泡设计采用LPC900系列的P89LPC922Flash单片机来实现软件处理.P89LPC922采用高性能的处理.1.3 与主机通信电路设计用串口与PC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论