发表意见

单片机自发明以来,已越来越广地运用于工农业生产,随着应领域的扩展,出现了形形色色的单片机型号,以适应不同的需要,但型号虽多,原理基本相同,在这里,我们以现在大学教程中应用最普遍的8051为依托,把单片机的位操作和字节操作结合起来,可将单片机应用扩展到非常复杂的场合中去。

大家知道,如果输入、输出信号线不超过32条,程序人员可任意将I/O引脚赋予输入或输出功能。但若遇到有更多输入变量的情况,32条I/O线当然就不够了。解决这个矛盾的途径之一是采用类似于键盘扫描的方法。

上图是一套48键扫描的原理图,如利用两个端口,可以完成8行8列的矩阵的需要,即可以设计成64种输入状态,若利用三个端口的话,可以完成8行16列的矩阵,即128种输入状态。具体如何完成对硬件电路的设计,可根据实际需要而定,对于软件的编制,其原理是一样的,只要能完成8行2列的矩阵扫描工作,多几列也可以方便地进行操作。下面我们通过对上图的原理及程序的设计,来介绍这种扫描方式的具体应用过程,希望能给需要这种应用设计的网友提供一定的参考。

在这里,我们将8051的P0口接在8列按键的一端,同时经100K的电阻接地。由于8051的P0与其他三个口不同,是一个开漏输出的口,是一个真正意义上的双向口,因为作为输入时该口引脚处于浮动状态,当该脚通过100K接地后,输入状态便为“0”。作为扫描控制端的行数据信息,接于P2口,由于P2口为准双向口,其内部接有上拉电阻,可提供0.25mA的输出电流,若以5V电源计算,等效于接了20K的上拉电阻,这样,若按键按下,在P0口上得到的电压定大于2/3Vcc,即逻辑“1”,而没有按下时,读取的状态为“0”,这样,通过对P0口数据的判断,便可知道是否有按键按下,具体按下的是哪个按键。

需要完成扫描时,P2口各I/O线按顺序向矩阵各行送出高电平信号;P0口随即将该列中每一个输入信号的状态读到单片机中。为此,在可按位寻址的片内RAM中要开辟一个6字节的数据区,以存放读入的数据。于是每个扫描周期完成后,便在该区得到一个所有输入信号的现行状态图。然后,可以直接对图内各元素进行所需的逻辑运算,得出具体的按键情况。

查看邮购需知!            我要订货!

联系地址:

生产与研发:浙江省杭州市西湖区转塘科技工业园区回龙张家堡30号

市场直销:杭州市登云路639号杭州电子市场1楼CK003号(南大门进入后中间第2间)

联系人:张建平 先生

电话/传真:

0571-89908336

0571-87649051

手机:13758273237

QQ:153286663

EMAIL:zjp@oldzhang.com

zjpsh001@163.com