基于51单片机自动加料机控制系统设计 第8页
(3)确定是否有多键同时按下。有时一次按下的键不止一个,这在一般情况下是由于误操作引起的,是不应该出现的通常称为窜键。出现这种情况时,就可能有不止一次会得到列信号不为全1,这时就不容易判断哪个键是真正需要按下的。为了处理这种情况可采取两种办法:一是行扫描一定是扫到最后一行才结束,而不是检测到列信号不为全1时就结束,以便发现窜键;二是如果出现了窜键,最简单的处理办法就是这次行扫描不算,再来一遍,即以最后放开的那个键为准。实际上,由于扫描的速度很快,真正找到两个键同时按下的情况是很少的。
(4)消除键抖动。一般按键在按下的时候有抖动的问题,即键的簧片在按下时会有轻微的弹跳,需经过一个短暂的时间才会可靠地接触。若在簧片抖动时进行扫描就可能得出不正确的结果。因此,在程序中要考虑防抖动的问题。最简单的办法是在检测到有键按下时,等待(延迟)一段时间再进行“行扫描”,延迟时间为10~20ms。这可通过调用子程序来解决,当系统中有显示子程序时,调用几次显示子程序也能同时达到消除抖动的目的。
3.5.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个端口的操作。
3.5.3 8255A引脚功能
8255A共有40个引脚,一般为双列直插DIP封装,40个引脚可分为与CPU连接的数据线、地址和控制信号以及与外围设备连接的三个端口线。
.D0~D7:双向三态数据总线。
.RESET:复位信号,输入,高电平有效。复位后,控制寄存器清0,A口、B口、C口被置为输入方式。
. :片选信号,输入,低电平有效。
. :读信号,输入,低电平有效。 有效时,允许CPU通过8255A D0~D7读取数据或状态信息。
. :写信号,输入,低电平有效。有效时,允许
.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与 、 、 信号一起,可确定8255A的操作状态,如图所示:
8255A功能操作
A1 A0
操 作
0
0
1 0
1
0 0
0
0 1
1
1 0
0
0 A口→数据总线
B口→数据总线
C口→数据总线
输入操作
0
0
1
1 0
1
0
1 1
1
1
1 0
0
0
0 0
0
0
0 数据总线→A口
数据总线→B口
数据总线→C口
数据总线→控制口
输出操作
x
1
x x
1
x X
0
1 x
1
1 1
0
0 数据总线为高阻态
非法状态
数据总线为高阻态
禁止操作
8255A与AT89C51接口电路。
在连接键盘电路采用8255A为扩展I/O口时,要在中间加入一个74LS373,74LS373是一个三态门的8D锁存器,它可以作为AT89C51外部的一个扩展输入口,借口电路的工作原理是当外设把数据准备好后,发出一个控制信号加到373的G端,即锁存端,使输入数据在373中锁存,同时信号加到AT89C51单片机的中断请求 端,单片机响应中断,在中断服务程序中执行下面程序:
MOV DPTR,#0BFFFH
MOVX A,@DPTR
在执行上面的第二条指令时,P2.6=0, 有效,通过或门后加到373的 端,即373的三态门控制端,使三态门畅通,锁存的数据读入到累加器A中。
电路如图所示:
3.6 外部存储器扩展电路
自动加料机存在两条生产线的输送、排料、满料、空料,共8个设置的重要数据需要读/写,并且能够提供掉点保护,所以就需要外阔程序存储器。程序存储器一般采用自读存储器,因为这种存储器在电源关断后,仍能保存程序,在系统上电后,CPU可取出这些指令予以重新执行。只读存储器简称ROM。ROM中的信息一旦写入之后,就不能随意更改,特别是不能在程序运行的过程中写入新的内容,故称之为只读存储器。
向ROM中写入信息叫做ROM编程。根据编程的方式不同,ROM分为以下几种:
(1)掩膜ROM是在制造过程中编程。因编程是以掩膜工艺实现的,因此称为掩膜ROM。这种芯片存储结构简单,集成度高,但由于掩膜工艺由于成本较高,因此只适合于大批量生产。
(2)可编程ROM(PROM)
PROM芯片出厂是并没有任何程序信息,是由用户用独立的编程器写入的,但PROM只能写入一次,写入内容后,就不能在进行修改。
(3)EPROM
EPROM是用电信号编程,用紫外线擦除的只读存储器芯片。在芯片外壳上的中间位置有一个圆形窗口,通过这个窗口照射紫外线射就可擦除原有的信息。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
基于51单片机自动加料机控制系统设计 第8页下载如图片无法显示或论文不完整,请联系qq752018766