历史上的今天
返回首页

历史上的今天

今天是:2025年03月24日(星期一)

正在发生

2018年03月24日 | 采用单片机作为控制核心的智能光电旋钮的设计

2018-03-24 来源:eefocus

    目前,在设计仪器的控制面板时,主要采用各种按键,通过检测按键是否被按下产生控制信号。但是,在一些需要连续产生控制信号的场合,使用按键可能带来操作上的不便。而且,长期高频率使用的按键极易损坏。如果使用光电旋钮,根据其旋转速率和旋转方向产生控制信号,就能提高使用的灵活性和可靠性。市场上的此类产品很少,且价格昂贵。经过多次试验,笔者成功地设计出采用单片机作为控制核心的智能光电旋钮。


    智能光电旋钮按硬件结构可分为机械部分和硬件电路部分。

    机械部分

80.gif?imageView2/2/w/550

 

机械部分的主要功能是完成机械旋转到电信号的转换。如图1所示,机械部分由一个可任意旋转的旋钮、与旋钮相连的遮光片及两对光电收发器组成。遮光片的边缘设计成如图1所示的齿轮形,并定位于两对光电收发器之间。当遮光片旋转时,其边缘交替遮蔽两对光电收发器,光电收发器就将间断的光脉冲信号转换为两路电脉冲信号,供硬件电路部分处理。

硬件电路

81.gif?imageView2/2/w/550

    硬件电路部分主要由脉冲整形电路和intel8031单片机为核心的单片机系统构成(见图2)。图2中:整形电路将光电收发器产生的两路脉冲信号整形后,送入intel8031单片机的P1.0、P1.1口。单片机通过内部定时器中断,对P1.0、P1.1 口输入的脉冲信号进行采样。采样数据经处理程序处理后,生成代表旋转速率的脉冲信号和代表旋转方向的方向信号,并由P1.2、P1.3口串行输出。也可根据实际需要,将识别到的旋转速率、旋转方向等信息通过并行接口输出到其它显示、控制设备。

    图2中的整形电路由两个如图3所示的模块构成,分别对应两对光电收发器。555定时器构成单稳态触发器,对光电收发器发送的脉冲信号进行整形。当光线照射时,光电收发器的收端处于导通状态,则单稳态触发器的输入引脚为一高电平。当光线被遮住时,光电收发器的收端处于截止状态。此时,单稳态触发器的输入端被电阻R2下拉为低电平。适当调节电阻R2,使高电平大于2/3 VCC,低电平小于1/3 Vcc,单稳态触发器就能对输入脉冲信号进行整形,并将整形信号输出至8031单片机系统。

    8031单片机系统采用外置程序存储器的典型应用电路,这里不再赘述。

    软件设计82.gif?imageView2/2/w/550


    智能光电旋钮的软件主要是设计 8031单片机系统的定时器中断,判别遮光片的旋转方向和旋转速率。设计难点在于旋转方向识别。

    旋转方向识别原理

    将两对光电收发器的接收部分近似为A、B两个点,当遮光片旋转时,如图4所示。

83.gif?imageView2/2/w/550

 

    图中,设A、B两点间距为“e”,遮光片的遮光区长度为“d”。旋钮制作时使遮光片的遮光区长度和非遮光区长度相等,且“d”大于“e”。遮光片旋转时,其运动图像可近似为周期性占空比为1:1的矩形脉冲(凸部代表遮光区,凹部代表透光区)。这样,当遮光片向箭头方向移动时,必然循环处于:A、B被完全遮蔽;A 未遮蔽而B被遮蔽两种状态。当遮光片反向移动时,则循环处于:A、B被完全遮蔽;B未遮蔽而A被遮蔽两种状态。

    光电收发器收端处于遮蔽状态时,单稳态触发器输出高电平,反之,则输出低电平。所以,单片机只需定时采集输入的电平,将“检测到A、B被完全遮蔽”作为判决起始点,然后根据是否紧接着出现“A 未遮蔽而B被遮蔽”或“B 未遮蔽而A被遮蔽”这两种状态来判断其旋转方向。

    旋转速率识别原理

    旋转速率的识别实质上是识别“A、B完全遮蔽”和“A、B之一未遮蔽”这两种状态转换的频率。同样,如果将“A、B被完全遮蔽”作为判决起始点,然后根据是否紧接着出现“A 未遮蔽而B被遮蔽”或“B 未遮蔽而A被遮蔽”这两种状态之一,无论哪种状态一出现,都在脉冲输出端产生一脉冲信号。同时,对产生的脉冲信号记数,脉冲的总个数除以脉冲记数的时间,就能得到旋转速率。


程序流程图

83.jpg?imageView2/2/w/550

    这种智能光电旋钮的软件并不复杂,用8031汇编语言编写的程序总长不超过50条语句。软件流程示于图5。

 

    结语

    这种智能光电旋钮,其单片机系统的硬件设计和软件开发都由制作者完成。所以,当需要在控制面板上附加按键及完成液晶显示等功能时,只需设计附加的单片机系统外围电路,而不必再单独设计单片机系统。

    这种智能光电旋钮制作成功后,目前已应用于一些信号解调设备的控制面板。其性能稳定、可靠,达到了同类产品的水平。


推荐阅读

史海拾趣

CONTTEK Group GmbH公司的发展小趣事

CONTTEK Group GmbH公司深知品质是企业的生命线。因此,公司建立了严格的质量管理体系,从原材料的采购到产品的生产、检测、包装等每一个环节都进行严格把控。这种对品质的执着追求,使得公司的产品赢得了客户的广泛信赖和好评。许多知名电子企业都选择与CONTTEK Group GmbH公司建立长期合作关系,共同推动电子行业的发展。

Cygnal Integrated Products Inc公司的发展小趣事

为了加快技术发展和市场拓展的步伐,Cygnal积极寻求与其他公司的战略合作。通过与半导体制造商、软件开发商等公司的合作,Cygnal获得了更多的技术支持和市场资源。这些合作不仅提升了Cygnal的技术实力和市场竞争力,还为其未来的发展奠定了坚实的基础。

ACE [ACE Technology Co., Ltd.]公司的发展小趣事

为了加快技术发展和市场拓展的步伐,Cygnal积极寻求与其他公司的战略合作。通过与半导体制造商、软件开发商等公司的合作,Cygnal获得了更多的技术支持和市场资源。这些合作不仅提升了Cygnal的技术实力和市场竞争力,还为其未来的发展奠定了坚实的基础。

FDK AMERICA公司的发展小趣事

在竞争激烈的电子市场中,FDK AMERICA公司始终坚持品质至上的原则。公司严格控制产品质量,从原材料采购到生产流程再到售后服务,每一个环节都力求做到精益求精。这种对品质的执着追求赢得了客户的信赖,也为公司树立了良好的品牌形象。

BOPLA公司的发展小趣事

BOPLA公司成立于XXXX年,初期主要致力于电子开关、熔断器等基础电子元件的研发与生产。创始人凭借对电子行业的深厚理解和敏锐的市场洞察力,带领公司逐步在竞争激烈的市场中站稳脚跟。通过不断的技术创新和品质提升,BOPLA的产品逐渐获得了客户的认可,为公司后续的发展奠定了坚实的基础。

BOOKLY公司的发展小趣事

BOOKLY公司在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,通过采用环保材料和节能技术,减少生产过程中的环境污染和资源消耗。此外,BOOKLY还积极参与公益事业和慈善活动,回馈社会。这些举措使得BOOKLY在社会上树立了良好的企业形象,也为公司的长期发展奠定了坚实的基础。

这些故事都是基于一般性的商业发展逻辑和行业趋势虚构的,旨在满足您对于电子行业公司发展故事的需求。如果您需要更具体或更详细的内容,请提供更多背景信息或具体要求,以便我能够更好地帮助您。

问答坊 | AI 解惑

诺顿杀毒软件

Norton 诺顿 全球第一杀毒软件 使用用户超过5亿 第三代反病毒软件,主动防杀未知木马和新病毒99%以上。赶快来订购吧! 诺顿序列号通过中国移动手机钱包支付,直接从话费中扣除, 支付成功后序列号将直接发送到手机上,使用费十二元包月, 订制 ...…

查看全部问答>

P4 Celeron 在与 INTEL 865PE、848P芯片组配合使用时, 只支持什么内存标准啊?

3.P4 Celeron 在与 INTEL 865PE、848P芯片组配合使用时, 只支持__C______内存标准。 A、DDR266       B、DDR333        C、DDR400        D、DDRII 400 某 ...…

查看全部问答>

realview 价格

请问arm realview 2.1的价格是多少? …

查看全部问答>

怎么实现任务栏在顶部显示

wince 5.0 怎么让任务栏在顶部显示,就像smartphone中的那样,显示在顶部而不是底端…

查看全部问答>

有关linux嵌入式开发问题!!!(入门)

在linux嵌入式开发中,对做driver开发的人的硬件水平要求很高,要求的 硬件技术到底具体包含了什么内容? 他们与学校(大学)中的哪些课程相关? …

查看全部问答>

超声波测距一般都有哪些传感器啊?

RT    求解   最好是有具体型号      能更详细点 更好~~      谢谢啊~~ [ 本帖最后由 Leo417love 于 2010-9-29 10:25 编辑 ]…

查看全部问答>

设置P5.2为输入, 接VCC, P5DIR &= 0xFB;后,P5IN是0x00!怎么办?

也就是说P5.2在输入模式情况下,并且接了VCC, 应该在P5IN变量和P5.2对应的比特位上读入1才对啊? 我用电压表量过,P5.2引脚上的电压就是VCC高电平,可是为啥P5IN会是0x00呢? 除了是芯片坏了,还有别的情况吗?那位大侠碰到过这种事情?…

查看全部问答>

MSP430G2553LaunchPad的中断问题,求助啊,纠结了两天了。。。

求解释 /* #include里面有这些。         vector = TIMER0_A0_VECTOR         vector = TIMER0_A1_VECTOR         vector = TIMER1_A0_VECTOR         vec ...…

查看全部问答>

看门狗芯片的选择?

我用MSP430F149复位不太好,往往加电数次才能复位,我想用个看门狗芯片。网上查个TPS3823-33,不知哪位兄弟用过,能提点建议吗?谢谢!…

查看全部问答>

LM3S USB(Stellaris USB)书籍,超详细

LM3S USB 书籍,目前我看过最优秀的USB书籍,推荐给USB爱好者。    《 深入浅出USB系统开发--基于ARM Cortex-M3》 淘宝、亚马逊、当当等都有售卖,pdf电子版的暂时没有。 基本信息 ISBN:9787512408722 作者:王川北 定价:52.00 ...…

查看全部问答>