采用P89LPC922芯片实现智能仪器前面板的设计

发布时间:2023-04-03  

引言:

许多仪器的前面板通常是由诸多的旋钮、按键组成的混合界面。传统的仪器前面板上通常有两种旋钮,一种是电位器,用于调节连续变化的量;另一种是档位开关,用于调节间隔变化的量。它们嵌入在测量电路中,可以直接改变仪器的参数和设置。而在现代智能仪器[1]中,这两类调节均可以通过数字旋钮由微控制器将用户操作的变化量反馈给仪器的主处理器,再由主处理器改变仪器的参数和设置。所以,智能仪器上的数字旋钮和传统仪器上的旋钮在原理和处理方法上有很大不同。为了节省成本,面板处理往往采用体积小、性价比高的单片机(MCU)。运用单片机不但经济灵活,并可充分利用MCU逻辑处理的优势,大大简化外围连线,对旋钮按键混合控制系统[2]的处理尤为突出。


设计采用LPC900系列的P89LPC922Flash单片机来实现软件处理。P89LPC922采用高性能的处理器结构,6倍于标准80C51器件的速率,并自带波特率发生器。充分考虑单片机的资源和处理速度,分模块设计——按钮电路,旋钮电路,串口电路,扫描电路。用protel完成电路原理图,制作电路板,在KeilC环境下编写软件。软件和硬件相结合,协同实现整个面板。


1 硬件设计及原理

1.1 旋钮电路设计

1.1.1 数字旋钮的工作原理

本设计选用常见的编码器EC16系列作为数字旋钮,如图1。4、5脚供固定之用,3脚接VCC(+5V),1、2脚在转动时输出连续脉冲。这种旋钮只有两种操作,即正旋和反旋。通过示波器可以观察到如图所示的旋钮转动时1、2脚的波形。

采用P89LPC922芯片实现智能仪器前面板的设计

每次转动1、2脚都会产生脉冲信号,正旋时1脚先变高,反旋时2脚先变高。也就是说,正旋和反旋输出信号的相位不同,只要检测出相位,就可以识别正旋和反旋。


1.1.2鉴相电路设计

本文设计的鉴相电路见图2,附箭头所指数字标号对应的波形(以正旋为例)。旋钮的1、2脚分别与D触发器的D端和CLK端连接,根据上面所述旋钮的工作原理,正旋时1脚(D)先变高,2脚(CLK)上升沿时Q端输出1,反旋转时输出0, 端则相反。因此根据Q、 输出为10还是01就可以判断出转动方向。但是,如果继续正旋,Q、 将维持现状(图2中的④③),因此还必须检测脉冲个数来反映转动量。这时不用考虑1、2脚的相位,可将2个信号相与产生新的信号(图2中的⑤),可利用该信号分别和Q、 相与即可分辨出每次旋钮的转动。

采用P89LPC922芯片实现智能仪器前面板的设计

最后的输出为⑥和⑦,正旋时⑦线有脉冲,⑥线一直为低,反旋则两根线相反。至此完成了鉴相,下面要解决如何与单片机接口的问题。


1.2 扫描电路设计

用户操作面板时,为了能及时准确地识别哪个按钮和哪个旋钮动作,将按钮和旋钮统一扫描和编码,发送给主机。综合按钮和旋钮特点,根据实际需要采用了8×8的矩阵式键盘结构[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口)。

采用P89LPC922芯片实现智能仪器前面板的设计

扫描电路的工作原理是:单片机先让②为高,使74ALS245输出为高阻态,然后从P0口输出列扫描数据,再给①高电平,延时后将①变低,使74ALS373锁存列扫描信号,将②变低使74ALS245输出有效,由于数据方向恒定,这样行值数据就从245输入到单片机的P0口。


为了将按钮和旋钮的扫描统一起来,我们把正旋和反旋当做不同的两个按钮按下,旋钮的正旋或反旋也对应唯一的行值和列值。这里的巧妙之处就是采用了三态缓冲器74LS240,每个旋钮电路的输出信号⑥和⑦(即前面图2鉴相电路输出)分别接到74LS240的两组输入端,两组数据的输出都接到4根行线,由列扫描线控制输出哪一组数据。比如:扫描第二列,⑦对应那组输出到4根行线供单片机读入,此时⑥对应那组的输出被禁止。若第二列有旋钮正旋,则其对应的⑦上有脉冲,经240反相后,单片机检测到低电平数据,与按钮按下的情况一致。图3中只用了一片74LS240,可以接4个旋钮,这个电路可以扩充到四片74LS240接16个旋钮。


1.3 与主机通信电路设计

用串口与PC机通信要用串口连线,我们将其3、5脚引出,通过一片MAX232,即可与单片机的串口连接,其电路相对简单,这里不多做叙述了。外部晶振频率选用高频晶振12MHZ,用922自带的波特率发生器,设置波特率为9600,每个字节发送时间约1ms,可以满足高速率和准确性的要求。波特率太低影响速度,太高影响串口数据传输的正确性。


2 软件实现

2.1 按键的抗干扰处理

通常当按键按下以后(不考虑人的操作因素),会有一个5-10ms的抖动期,用软件延时来进行去抖处理。当按键释放后才向主机发送数据,具体方法是用状态机,将按键过程分成以下几个状态S0—S4,如图4所示:

采用P89LPC922芯片实现智能仪器前面板的设计

没有按钮动作时,检测线都为高电平,保持在S0状态;扫描面板,当某个按钮按下(相应检测线为低电平)进入S1状态;完成去抖延时(T0中断20次)后进入S2状态,再次扫描面板,检测到低电平且为同一个按钮(行、列线相同)进入S3状态,没有检测到低电平或者不为同一个按钮则再次进入S0状态;按钮释放后进入S4状态,给主机发送按钮编号,发送完成进入S0状态。


2.2 旋钮的抗干扰处理

与档位开关一样,旋钮转动一周会有若干停顿点。停顿点较少的旋钮[2][4]在停止转动时1、2脚总会处于一个稳定的低电平。而停顿点较多的旋钮在停止转动时则电平状态不定,1、2脚有可能处于高电平也可能处于低电平(如图1),所以不可用与之类似的任何检测电平状态的方法来判断旋钮的转动。


用示波器分析波形后得知,不管1、2脚最终状态如何,只要转动旋钮就会有电平变化,从高到低,或从低到高,所以选用动态的边沿扫描。除了在刚上电的时候需要扫描获得每个旋钮的初始状态,每过一段时间都要定时扫描旋钮状态,一旦有电平变化(上升沿/下降沿),就认为是一次有效的转动。定时的时间确定为1ms[5],因为即使很快转动旋钮的情况下,每次脉冲高电平宽度一般都有十几到几十毫秒。在设计时可用1个字的位向量pre_knob和cur_knob分别保存最近的两次扫描结果,每位对应一个旋钮。低电平时相应位置1,高电平置0,用下降沿判断(即10时)认为对应位的旋钮有转动。


2.3 旋钮转动量的计算

旋钮转动量的计算方法也是本文讨论的一个重点。旋钮转动的时候,可以转动一个停顿点就发一次,但会增加通信量和主机的处理负担,而且单片机的任务非常单一,即检测前面板的动作,资源利用也不多,因此可以用单片机计算出旋钮转动量后一起发送给主机。

方法是:给每个旋钮配置1个字节的发送缓冲保存转动量。每当旋钮转动一个停顿点,单片机就检测发送缓冲是否为空,不为空则将缓冲中的转动量加1,若为空则发送旋钮编号给主机,等待主机响应,此时旋钮继续转动,转动量不断增加,主机响应后再将发送缓冲里的转动量发送给主机,发送完成后清空缓冲。


3 结论

完成硬件和软件设计之后,仿真调试,烧录单片机,将电路板与PC机连接,操作电路板上的按钮和旋钮,结果表明按钮和旋钮识别及时准确,完全符合实时操作的要求。并已应用于课题组的数字存储大功率半导体管特性曲线图示仪中。


本文采用的面板设计具有成本低、周期短、可扩展、设计灵活、安全可靠等优点。可以根据实际需要增加功能按键,而不需要重做软件设计。可以为相关领域研究人员提供一种可供参考的面板设计方法。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    反相放大器电路图 反相放大器输入输出波形: 反相放大器输入输出波形 二、同相放大器电路图......
    必须具有非常平坦的响应和非常低的谐波失真水平。   函数发生器: 函数发生器是一种信号发生器,用于生成简单的重复波形。通常,这种信号发生器类型会产生波形或函数,例如正弦波、锯齿波、方波和三角波。   早期的函数发生器往往依赖于直接产生波形的模拟振荡器电路......
    如何使用RIGOL的仪器进行FM信号生成和分析;本应用笔记涉及使用RIGOL的仪器进行FM信号生成和分析。将使用任意波形发生器来产生信号,并使用频谱波形分析仪来显示,调制和分析结果波形。 调频......
    普源任意波形发生器DG4202,200MHz,采样率500MSa/s;普源任意波形发生器DG4202产品参数: 普源任意波形发生器DG4202主要参数:输出频率200MHz,采样率500MSa......
    DG800系列函数/任意波形发生器的功能作用及特点分析;DG800系列函数/任意波形发生器产品简介: DG800系列函数/任意波形发生器是一款集函数发生器、任意波形发生器、噪声发生器、脉冲发生器......
    DG900函数/任意波形发生器的功能及产品特点分析;一、DG900系列函数/任意波形发生器产品描述 DG900系列函数/任意波形发生器是一款集函数发生器、任意波形 发生器、噪声发生器、脉冲发生器......
    架构。如果 DUT 要求典型的正弦波形和方波 ( 等等 ) 及能够在两个频率之间几乎即时切换,任意波形 / 函数发生器(AFG) 是当仁不让的选择。泰克AFG 的另一个优势是成本低,对不要求 AWG(任意波形发生器......
    浅谈任意波形发生器及通道合并功能;信号源是电工程师常用的一种测量仪器,而信号源又分为很多种,如正弦波信号源、脉冲发生器以及任意波形发生器等等。但任意波形发生器是信号源比较特殊的一种,它具有其它信号源波形......
    方便科研教学,合二为一,把函数信号发生器与计数器设计成一台仪器。 2 仪器设计 图1是具有函数信号发生器和计数器的仪器电路结构框图,它是由ICL8038函数发生器、方波输出接口、三角波输出接口、正弦......
    Spectrum仪器为数字化仪和任意波形发生器提供数字脉冲发生器功能;Spectrum仪器公司宣布推出数字脉冲发生器(DPG)功能,用于公司旗下高分辨率和中速的数字化仪和任意波形发生器(AWG)系列......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>