完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
外部扩展芯片
这种算是最容易想到的一种IO扩展的方案,通过串行线与扩展芯片通信,从而控制扩展芯片多个输入输出口。 比如远程IO扩展芯片CH423,该芯片可以支持8 个双向输入输出引脚和 16 个通用输出引脚,并且还支持输入电平变化中断。 此图源于CH423 中文手册 我们只需要通过MCU的IIC外设或者模拟IIC与CH423进行通信,从而对该芯片进行写入与读取即可完成IO口的读写,实现了IO的扩展需求。 使用CH423外扩主要的缺点是成本太高,对于低端产品或许用一块这样的芯片就可以换一块更好的主控芯片。 另外一种比较便宜点的方法是采用串转并,并转串的移位芯片,比如74HC165(数据从并转串)、74HC595(数据从串转并);当然如果需要数据锁存就需要锁存器来进行搭建如74HC574等等。 采用芯片扩展终究还是会使得电路板的体积变大,甚至还需要硬件工程师花更多的时间设计电路等,当然芯片扩展也是有其优点的,能让主控MCU与外界隔离,从而起到保护MCU的作用等等。 AD按键 一个好的思想往往能够解决一系列的问题,对于MCU而言按键的变化无非就是改变了电平的状态,如果我们把按键看成一个整体,对于MCU而言其就相当于一个传感器,所以我们可以把按键进一步抽象成一个整体,通过设计电路使得按键的状态变化体现在一个模拟量上来,MCU通过AD转换从而形成一一映射关系得以检测。
以上通过按键按下改变电路,从而形成不同的阻值的下拉电阻,比如当K1按下ADC直接到地,从而检测为0V,当K2按下R1和R2形成串联分压,从而此时ADC检测出来为3.3V/2,依次类推即可检测出各个按键的状态。 然而细心的读者应该会想到,这样的电路似乎不支持多个按键按下的检测吧。比如当K1和K2同时按下,这样ADC直接链接到地,从而无论如何检测出来还是0V。于是画了如下电路,供大家参考: |
|
|
|
只有小组成员才能发言,加入小组>>
3322 浏览 9 评论
3000 浏览 16 评论
3497 浏览 1 评论
9070 浏览 16 评论
4090 浏览 18 评论
1190浏览 3评论
612浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
603浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2341浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1899浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 06:23 , Processed in 1.208920 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号