自动加料机控制系统 - 图文(5)

2019-08-31 10:43

3.4 键盘及显示电路

键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干扰单片机的主要手段。本设计采用8255A为I/O扩展。 3.4.1 键盘接口

非编码键盘与单片机的接口单片机系统所用的键盘有编码键盘和非编码键盘两种。

编码键盘本身除了按键之外,还包括产生键码的硬件电路,只要按下某一个键,就能产生这个键的代码,一般称为键码,同时,还能产生一个脉冲信号,以通知CPU接收(输入)键码。这种键盘的使用比较方便,亦不需要编写很多程序,但使用的硬件较复杂,在微型计算机控制系统中使用还不多。

非编码键盘是由一些按键排列成的一个行列矩阵。按键的作用,只是简单地实现接点的接通和断开,但必须有一套相应的程序与之配合,才能产生出相应的键码。非编码键盘几乎不需要附加什么硬件电路,目前,在微型计算机控制系统中使用比较普遍。

使用非编码键需要用软件来解决按键的识别,防止抖动以及键码的产生等工作。 设有一个6行×5列的非编码键盘,其中有16个为数字键0~F,其余的为控制键,用以发布各种控制命令。键盘的行线接8155C口的六条线PC5~PC0,键盘的列线则接8155B口的5条线。在没有任何键按下时,所有键盘列线上的信号都是高电平。当有按键按下时,就会出现键的识别、防止抖动以及确定键码等一系列问题。

按键识别有各种方法,此系统只 “行扫描”法:

(1)确定是否有按键按下。CPU通过并行口输出000000到键盘的行线,然后检测键盘的列线信号。若没有键按下,则为11111。若有任一个按键按下,则有某一条列线为0,也就是当PB4~PB0不为11111时,就表示有键按下。

(2)通过“行扫描”确定已按键的行、列位置。所谓行扫描就是依次给每条行线输入0信号,而其余各行都输入1,并检测每次扫描时所对应的列信号。在图2中就是在C口先输出111110(PC5~PC0),然后是111101,直到最后是011111,并检测每次所对应的B口输入。

只有在某行上有键按下时,在这一行上输入0(其他行为1),在列输出上才能检测到0信号。若是输入为0的这一行上没有按键按下,则收到的列信号仍然全是1。因此,只要记下列信号不全为1时的C口输出及B口输入,就能确定以按键的位置。设图2中处于第3行第1列的键已按下,则必须是行输出信号为110111,检测到的

20

列信号为11101。对应于其他的行信号,列信号都是11111。这样,通过行扫描,就可以确定按键的行、列坐标。

(3)确定是否有多键同时按下。有时一次按下的键不止一个,这在一般情况下是由于误操作引起的,是不应该出现的通常称为窜键。出现这种情况时,就可能有不止一次会得到列信号不为全1,这时就不容易判断哪个键是真正需要按下的。为了处理这种情况可采取两种办法:一是行扫描一定是扫到最后一行才结束,而不是检测到列信号不为全1时就结束,以便发现窜键;二是如果出现了窜键,最简单的处理办法就是这次行扫描不算,再来一遍,即以最后放开的那个键为准。实际上,由于扫描的速度很快,真正找到两个键同时按下的情况是很少的。

(4)消除键抖动。一般按键在按下的时候有抖动的问题,即键的簧片在按下时会有轻微的弹跳,需经过一个短暂的时间才会可靠地接触。若在簧片抖动时进行扫描就可能得出不正确的结果。因此,在程序中要考虑防抖动的问题。最简单的办法是在检测到有键按下时,等待(延迟)一段时间再进行“行扫描”,延迟时间为10~20ms。这可通过调用子程序来解决,当系统中有显示子程序时,调用几次显示子程序也能同时达到消除抖动的目的。

21

3.4.2 8255A芯片介绍

自动加料系统有8个按键:启动两条生产线的“启动1”键和“启动2”键、分秒选择键、时间设置加/减键、显示生产线状态切换键,时间设置键,时间切换键,由于单片机的并行口有限。本系统采用8255A扩展并行口。 (1).8255A的内部结构

8255A的内部结构有以下几部分组成:

a.并行I/O端口A、B、C 8255A的内部有3个8位并行I/O口:A口、B口、C口。3个I/O口都可以通过编程选择为输入口或输出口,但在结构和功能上有所不同。 A口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器。

B口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。 C口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。 当数据传送不需要联络信号时,这3个端口都可以用作输入口或输出口。当A口B口需要有联络信号时,C口可以作为A口和B口的联络信号线。

b.工作方式控制电路:8255A的三个端口在使用使可分为A、B两组。A组包括A口8位和C口高4位:B组包括B口8位和C口低4位。两组的控制电路中分别有控制寄存器,根据写入的控制字决定两组的工作方式,也可对C口每一位置“1” 或清“0”。 c.数据总线缓冲器:数据总线缓冲器是三态双向的8位缓冲器,是8255A与单片机数据总线的接口,8255A的D0~D7可以和AT89C51单片机的P0.0~P0.7直接相连。数据的输入输出、控制字和状态信息的传递,均可通过数据总线缓冲器进行。 d.读/写控制逻辑:8255A读/写控制逻辑的作用是从CPU的地址和控制总线上接受有关信号,转变成各种控制命令送到数据缓冲器及A组和B组的控制电路,控制A、B、C3个端口的操作。

22

3.4.3 8255A引脚功能

8255A共有40个引脚,一般为双列直插DIP封装,40个引脚可分为与CPU连接的数据线、地址和控制信号以及与外围设备连接的三个端口线。 .D0~D7:双向三态数据总线。

.RESET:复位信号,输入,高电平有效。复位后,控制寄存器清0,A口、B口、C口被置为输入方式。

.CS:片选信号,输入,低电平有效。

.RD:读信号,输入,低电平有效。RD有效时,允许CPU通过8255A D0~D7读取数据或状态信息。

.WR:写信号,输入,低电平有效。有效时,允许

.A1A0:端口控制信号,输入。2位可构成四种状态,分别寻址A口、B口、C口和控制寄存器

.PA0~PA7:A口数据线,双向。 .PB0~PB7:B口数据线,双向。

.PC0~PC7:C口数据/信号线,双向。当8255A工作于方式0时,PC0~PC7分为两组(每组4位)并行I/O数据线;当8255A工作于方式1或方式2时,PC0~PC7为A口、B口提供联络信号。

A1A0与 RD、WR、CS信号一起,可确定8255A的操作状态,如图所示:

23

8255A功能操作

A1 0 0 1 0 0 1 1 x 1 x A0 0 1 0 0 1 0 1 x 1 x RD 0 0 0 1 1 1 1 X 0 1 WR 1 1 1 0 0 0 0 x 1 1 CS 0 0 0 0 0 0 0 1 0 0 A口→数据总线 B口→数据总线 C口→数据总线 数据总线→A口 数据总线→B口 数据总线→C口 数据总线→控制口 数据总线为高阻态 非法状态 数据总线为高阻态 操 作 输入操作 输出操作 禁止操作 8255A与AT89S52接口电路。

在连接键盘电路采用8255A为扩展I/O口时,要在中间加入一个74LS373,74LS373是一个三态门的8D锁存器,它可以作为AT89S52外部的一个扩展输入口,借口电路的工作原理是当外设把数据准备好后,发出一个控制信号加到373的G端,即锁存端,使输入数据在373中锁存,同时信号加到AT89S52单片机的中断请求INT0端,单片机响应中断,在中断服务程序中执行下面程序: MOV DPTR,#0BFFFH MOVX A,@DPTR

在执行上面的第二条指令时,P2.6=0,RD有效,通过或门后加到373的OE端,即373的三态门控制端,使三态门畅通,锁存的数据读入到累加器A中。 电路如图所示:

24


自动加料机控制系统 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:法释〔2013〕22号-最高人民法院关于适用《中华人民共和国企业破

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: