标题:
IO端口不够用?TinyHMI助你以一当十
[打印本页]
作者:
51黑电子爱好者
时间:
2016-4-13 15:02
标题:
IO端口不够用?TinyHMI助你以一当十
你是否在设计电路时也曾因为单片机的
IO
端口不够用而烦恼过?更换引脚多的型号会增加成本,不更换又完成不了需求?今天就和大家分享一个
ZLG
的
TinyHMI
,看它是怎么巧妙地将
IO
口以一当十。
TinyHMI是一个简易人机界面板,它提供了8位显示数码管和8个输入按键,虽然仅仅使用简单的串行接口控制,但足能满足较复杂的系统对人机界面的需求。其实TinyHMI之所能如此神奇,其中的奥秘就它的两片74HC595。74HC595具有8位移位寄存器和一个存储器,三态输出功能,移位寄存器和存储器有相互独立的时钟。移位寄存器有一个串行移位输入(DS),一个串行输出(Q7’),一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时,存储寄存器的数据输出到总线。
如图2所示,常规的方式来控制8位显示数码管和8个输入按键需要用到24个IO端口;但如图3所示,使用两片74HC595芯片作为驱动的TinyHMI,仅仅只需要用到4个IO即可完成同样的需求。TinyHMI的工作原理是通过DS和SH-CP,先将要显示的位码(即要显示数码管哪一位)发送,再将要显示的段码(即要显示什么符号)发送,然后再由ST-CP让所有输出一统翻转,完成一个完美的“串转并”。因为数码管是逐位显示,所以可以在8根位数据线上分别连接按键,检测所有按键公共端,根据公共端状态和数码管位数据线的状态,就可以得出每个按键的状态啦。
图2 使用常规方法控制数码管和按键
图
3 使用74HC595控制数码管和按键
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1