C51单片机006-矩阵键盘+LCD1602
关于矩阵键盘和数码管:
关于独立按键和矩阵按键:
矩阵按键每个按键各有两个io口连接,其实就相当于,
先选中第1/2/3/4行(列)接地,然后再读取另一个不接地的io口上的电平,这样就可以知道现在是哪一个按键按下了。
举例:现在选中第二行,从上到下就是1011(P17-1,P16-0,P15-1,P14-1)
此时读取的按键就是S5、S6、S7、S8(读取P13,P12,P11,P10的电平)
如果此时P11的电平为0,则此时S7被按下。
关于单片机IO口输入输出的一些浅显的电路解释:
假设现在P2_0=1;(PS:因为上电之后默认就是高电平)
(之前说过单片机是弱上拉,强下拉)
然后按键的另一端(这里假设是P1_0)P1_0设定为低电平0V
然后当按键按下的时候,P2_0原本的高电平就会被拉低,变成低电平。(之前说过单片机是弱上拉,强下拉)
关于单片机的IO口:
准双向口输出配置
谨记:能容易看出逻辑方法的代码才是好代码,哪怕方法笨一点也无所谓(反正单片机速度快,也不影响)