您现在的位置: 主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > 51单片机(STC89C52RC) IO扩展实验 -
本文所属标签:
为本文创立个标签吧:

51单片机(STC89C52RC) IO扩展实验 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-08 

[导读]  最近碰到了需要扩展IO口的情况了,正在想办法从lcd1602身上挤出几个IO口,另一种可行的方法是添加专用IC,google之发现可以有更好的方法,网上流传经典IO接按键法,可以用5个IO口实现5X5矩阵键盘.参考这里:   我参照

  最近碰到了需要扩展IO口的情况了,正在想办法从lcd1602身上挤出几个IO口,另一种可行的方法是添加专用IC,google之发现可以有更好的方法,网上流传经典IO接按键法,可以用5个IO口实现5X5矩阵键盘.参考这里:

本文引用地址: http://www.21ic.com/app/mcu/201807/782608.htm

   我参照着实验了一番,并用protues仿真看看;用上面的例子,如图:


  原理还是采用的是查询的方法进行扫描的,请看其描述:

  用3个IO口作行扫描,2个IO作列检测(为方便描述,我们约定:设置某一IO口输出为“0”――称其 为“扫某IO口”)。用行线输出扫键码,列线检测是否有按键的查询方法进行扫键。扫键流程:在行线依次输出011,101,110扫键值,行线每输出一个 扫键值,列线检测一次。当列线检测到有按键时,结合输出的扫键值可以判断相应的按键。

  仿真的时候用atmel89c51单片机,选取P1口的0-4,就是不通过,当列作为输入状态(为1时),某IO置0时,接通交叉的按钮,列却没有变化,依旧为高电平.什么原因呢?百思不得其解,用一个小实验,将按钮接行的一端直接接到地,则列状态改变,那么也就是这个上拉电阻的问题咯, 突然想到,P1口内是已经内置了上拉电阻的,能够实际输出高电平,那么再接一个上拉电阻就是白搭了,于是去掉上拉电阻部分,功能正常.为再次验证,将端口接到P0口的0-4,电路依旧按照上图所示,功能正常,验证正确.

  经典接按钮一文中并没有提及是在什么单片机中实现的,只是提供了一个原理,实际当中需要注意IO口的上拉电阻问题,不过这个原理确实是蛮经典的,设计不错.




              查看评论 回复



嵌入式交流网主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > 51单片机(STC89C52RC) IO扩展实验 -
 

"51单片机(STC89C52RC) IO扩展实验 -"的相关文章

网站地图

围观()