EM78P153构成多功能振动控制器

我们由一片EM78P153单片机构成一个有10个LED指示灯,4个按键,一路脉冲振动输出的电路,可用于小型按摩器等理疗产品,其中2个按键可设置多种按摩振动模式,另2个键可控制振动强度输出,由5个LED指示输出强度,另5个LED指示振动模式.虽然EM78P153仅有12个I/O口,512字节,却有如此强大的功能,而且芯片价格低廉,是一种高性能价格比的方案。

一.概述:
    我们由一片EM78P153单片机构成一个有10个LED指示灯,4个按键,一路脉冲振动输出的电路,可用于小型按摩器等理疗产品,其中2个按键可设置多种按摩振动模式,另2个键可控制振动强度输出,由5个LED指示输出强度,另5个LED指示振动模式.虽然EM78P153仅有12个I/O口,512字节,却有如此强大的功能,而且芯片价格低廉,是一种高性能价格比的方案。

右图是控制功能简图。
    我们用单片机的任意5个I/O口(除P63只能作输入端)连接到LED的公共负极,其中的一组(5个)的正极连接在一起用于振动强度指示,另一组(5个)连接在一起用于作振动模式指示,因为使用了分时动态扫描,每只LED点亮的时间比较短,为提高其亮度,需加大电流,所以我们在正极分别接了两个三极管作为开关管。当其b极为低时导通。点亮该组LED,反之,其b极为高时,LED熄灭。因为扫描的频率会大于60Hz,所以肉眼看起来却是连续点亮的,而且亮度也达到要求。

功能方框图
    因为EM78P153的I/O口有限,还需要四个I/O口作为键输入,我们采用了与LED负极共用的方法,在程序上我们在作为输入和输出端口使用,分别将I/O选择为输入或输出方式,这在程序上是非常容易实现的。我们可将点亮LED和识别键状态两种状态分别做成两个子程序,在主程序中分别调用它们即可。

    马达输出单独使用一个I/O口,因为电机上安装有偏心轮,当其转动时就会产生振动,控制电机的脉冲占空比即可实现输出振动的强弱,可用程序控制其转、停的时间间隔、由弱渐强或由强渐弱等多种脉冲的组合实现振动的多种模式。

    上下键为强度控制键,当强度为最小时按"DOWN"便会进入关机状态,所有功能停止,LED全熄,单片机进入睡眠状态,此时单片机的功耗是很低的,电流仅为数uA。以延迟电池使用寿命。当在停机状态时按“UP”即可开机并进入工作模式。

    EM78P153使用了内部时钟,复位电路也集成在芯片中,所以外围电路十分简洁,工作也更可靠和稳定。这对产品设计、生产和降低成本都是有好处的。

产品外观图
右图为产品外观图。

    程序设计时,我们可将不同的功能模式分成若干块,在每一块中只循环执行该功能,为使程序简洁易读,同时为了使程序不太大(因为单片机的ROM容量仅有512-1kB字节,过于重赘的程序有可能出现ROM不能装下所有的程序),凡是多次用到的程序段均做成子程序,只在主程序中相应位置调用它们即可。