自动加料机控制系统的制作方法_4

文档序号:9879535阅读:来源:国知局
123无极12V直流控制24V的交流继电器,并利用光耦合器件P521和MCU隔开。89C51的Pl初始值为0FFH,所以加一个74LS04反相器使得继电器初始不产生闭合,使用MC1413为无源驱动器,IN4007组成继电器的续流二极管。
[0121]键盘及显示电路
键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干扰单片机的主要手段。本发明采用8255A为I/O扩展。
[0122]键盘接口
非编码键盘与单片机的接口单片机系统所用的键盘有编码键盘和非编码键盘两种。
[0123]编码键盘本身除了按键之外,还包括产生键码的硬件电路,只要按下某一个键,就能产生这个键的代码,一般称为键码,同时,还能产生一个脉冲信号,以通知CPU接收(输入)键码。这种键盘的使用比较方便,亦不需要编写很多程序,但使用的硬件较复杂,在微型计算机控制系统中使用还不多。
[0124]非编码键盘是由一些按键排列成的一个行列矩阵。按键的作用,只是简单地实现接点的接通和断开,但必须有一套相应的程序与之配合,才能产生出相应的键码。非编码键盘几乎不需要附加什么硬件电路,目前,在微型计算机控制系统中使用比较普遍。
[0125]使用非编码键需要用软件来解决按键的识别,防止抖动以及键码的产生等工作。
[0126]设有一个6行X5列的非编码键盘,其中有16个为数字键O?F,其余的为控制键,用以发布各种控制命令。键盘的行线接8155C 口的六条线PC5?PC0,键盘的列线则接8155B 口的5条线。在没有任何键按下时,所有键盘列线上的信号都是高电平。当有按键按下时,就会出现键的识别、防止抖动以及确定键码等一系列问题。
[0127]按键识别有各种方法,此系统只“行扫描”法:
(I)确定是否有按键按下。CPU通过并行口输出000000到键盘的行线,然后检测键盘的列线信号。若没有键按下,则为11111。若有任一个按键按下,则有某一条列线为0,也就是当PB4?PBO不为11111时,就表示有键按下。
[0128](2)通过“行扫描”确定已按键的行、列位置。所谓行扫描就是依次给每条行线输入O信号,而其余各行都输入1,并检测每次扫描时所对应的列信号。在发明2中就是在C口先输出111110 (PC5?PCO),然后是111101,直到最后是011111,并检测每次所对应的B口输入。
[0129]只有在某行上有键按下时,在这一行上输入O (其他行为1),在列输出上才能检测到O信号。若是输入为O的这一行上没有按键按下,则收到的列信号仍然全是I。因此,只要记下列信号不全为I时的C 口输出及B 口输入,就能确定以按键的位置。设发明2中处于第3行第I列的键已按下,则必须是行输出信号为110111,检测到的列信号为11101。对应于其他的行信号,列信号都是11111。这样,通过行扫描,就可以确定按键的行、列坐标。
[0130](3)确定是否有多键同时按下。有时一次按下的键不止一个,这在一般情况下是由于误操作引起的,是不应该出现的通常称为窜键。出现这种情况时,就可能有不止一次会得到列信号不为全1,这时就不容易判断哪个键是真正需要按下的。为了处理这种情况可采取两种办法:一是行扫描一定是扫到最后一行才结束,而不是检测到列信号不为全I时就结束,以便发现窜键;二是如果出现了窜键,最简单的处理办法就是这次行扫描不算,再来一遍,即以最后放开的那个键为准。实际上,由于扫描的速度很快,真正找到两个键同时按下的情况是很少的。
[0131](4)消除键抖动。一般按键在按下的时候有抖动的问题,即键的簧片在按下时会有轻微的弹跳,需经过一个短暂的时间才会可靠地接触。若在簧片抖动时进行扫描就可能得出不正确的结果。因此,在程序中要考虑防抖动的问题。最简单的办法是在检测到有键按下时,等待(延迟)一段时间再进行“行扫描”,延迟时间为10?20ms。这可通过调用子程序来解决,当系统中有显示子程序时,调用几次显示子程序也能同时达到消除抖动的目的。
[0132]8255A芯片介绍
自动加料系统有8个按键:启动两条生产线的“启动I”键和“启动2”键、分秒选择键、时间设置加/减键、显示生产线状态切换键,时间设置键,时间切换键,由于单片机的并行口有限。本系统采用8255A扩展并行口。
[0133](I).8255A的内部结构
8255A的内部结构有以下几部分组成:
a.并行I/O端口 A、B、C 8255A的内部有3个8位并行I/O 口:A 口、B 口、C 口。3个I/O 口都可以通过编程选择为输入口或输出口,但在结构和功能上有所不同。
[0134]A 口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器。
[0135]B 口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。
[0136]C 口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。
[0137]当数据传送不需要联络信号时,这3个端口都可以用作输入口或输出口。当A 口B 口需要有联络信号时,C 口可以作为A 口和B 口的联络信号线。
[0138]b.工作方式控制电路:8255A的三个端口在使用使可分为A、B两组。A组包括A口 8位和C 口高4位:B组包括B 口 8位和C 口低4位。两组的控制电路中分别有控制寄存器,根据写入的控制字决定两组的工作方式,也可对C 口每一位置“I”或清“O”。
[0139]c.数据总线缓冲器:数据总线缓冲器是三态双向的8位缓冲器,是8255A与单片机数据总线的接口,8255A的DO?D7可以和AT89C51单片机的P0.0?P0.7直接相连。数据的输入输出、控制字和状态信息的传递,均可通过数据总线缓冲器进行。
[0140]d.读/写控制逻辑:8255A读/写控制逻辑的作用是从CPU的地址和控制总线上接受有关信号,转变成各种控制命令送到数据缓冲器及A组和B组的控制电路,控制A、B、C3个端口的操作。8255A共有40个引脚,一般为双列直插DIP封装,40个引脚可分为与CPU连接的数据线、地址和控制信号以及与外围设备连接的三个端口线。
[0141].DO?D7:双向三态数据总线。
[0142].RESET:复位信号,输入,高电平有效。复位后,控制寄存器清0,A 口、B 口、C 口被置为输入方式。
[0143].:片选信号,输入,低电平有效。
[0144].:读信号,输入,低电平有效。有效时,允许CPU通过8255ADO?D7读取数据或状态信息。
[0145].:写信号,输入,低电平有效。有效时,允许
?A1A0:端口控制信号,输入。2位可构成四种状态,分别寻址A 口、B 口、C 口和控制寄存器
?ΡΑ0?PA7:A 口数据线,双向。
[0146].PBO?PB7:B 口数据线,双向。
[0147].PCO?PC7:C 口数据/信号线,双向。当8255A工作于方式O时,PCO?PC7分为两组(每组4位)并行I/O数据线;当8255A工作于方式I或方式2时,PCO?PC7为A 口、B 口提供联络信号。
[0148]AlAO与、、信号一起,可确定8255A的操作状态,如发明所示:
8255A功能操作
Al AO
操作
O
0
1O I
OOO
0I
1
I OO
OA 口一数据总线B口一数据总线C口一数据总线输入操作O
0
1
I OI
0
1II
I
I O
O
O
O OO
0
O数据总线一A 口数据总线一B 口数据总线一C口数据总线一控制口输出操作
X
1
XX
I
X X
0
1X
I
I IO O数据总线为高阻态非法状态
数据总线为高阻态禁止操作
8255A 与 AT89C51 接口电路。
[0149]在连接键盘电路采用8255A为扩展I/O 口时,要在中间加入一个74LS373,74LS373是一个三态门的8D锁存器,它可以作为AT89C51外部的一个扩展输入口,借口电路的工作原理是当外设把数据准备好后,发出一个控制信号加到373的G端,即锁存端,使输入数据在373中锁存,同时信号加到AT89C51单片机的中断请求端,单片机响应中断,在中断服务程序中执行下面程序:
MOV DPTR,#0BFFFH MOVX A,ODPTR
在执行上面的第二条指令时,P2.6=0,有效,通过或门后加到373的端,即373的三态门控制端,使三态门畅通,锁存的数据读入到累加器A中。
[0150]外部存储器扩展电路
自动加料机存在两条生产线的输送、排料、满料、空料,共8个设置的重要数据需要读/写,并且能够提供掉点保护,所以就需要外阔程序存储器。程序存储器一般采用自读存储器,因为这种存储器在电源关断后,仍能保存程序,在系统上电后,CPU可取出这些指令予以重新执行。只读存储器简称ROM。ROM中的信息一旦写入之后,就不能随意更改,特别是不能在程序运行的过程中写入新的内容,故称之为只读存储器。
[0151]向ROM中写入信息叫做ROM编程。根据编程的方式不同,ROM分为以下几种:
(I)掩膜ROM是在制造过程中编程。因编程是以掩膜工艺实现的,因此称为掩膜ROM。
这种芯片存储结构简单,集成度高,但由于掩膜工艺由于成本较高,因此只适合于大批量生产。
[0152](2)可编程 ROM (PROM)
PROM芯片出厂是并没有任何程序信息,是由用户用独立的编程器写入的,但PROM只能写入一次,写入内容后,就不能在进行修改。
[0153](3) EPROM
EPROM是用电信号编程,用紫外线擦除的只读存储器芯片。在芯片外壳上的中间位置有一个圆形窗口,通过这个窗口照射紫外线射就可擦除原有的信息。
[0154](4)E2PR0M
这是一种用电信号编程,也用电信号擦除的ROM芯片,对E2PR0M的读写操作与RAM存储器几乎没有什么差别,只是写入的速度慢一些,但断电后能够保存信息。
[0155]此发明采用外扩E2PR0M的扩展方式。E2PR0M是电擦除可编程自读存储器,其突出优点是能够在线擦除和改写,无须像ERPOM那样必须用紫外线照射才能擦彻,较新的E2PR0M产品在写入时能自动完成擦除,且不再需要专用的编程电源,可以直接使用单片机系统的+5V电源。
[0156]常用的E2PR0M 芯片有 2816/1816A,2817/2817A,2864A。本发明采用的是用 2864A的扩展方式。
[0157]2864A有四种工作方式:
(O维持方式
当为高电平时,2864A进入低耗维持方式。此时,输出线呈高阻态,芯片的电流从140mA降至维持电流60mA。
[0158](2)读方式
当和均为低电平而为高电平时,内部的数据缓冲器被打开,数据送上总线,此时,可进行读操作。
[0159](3)写方式
2864A提供了两种数据方式:字节写入和页写入页写入:2864A片内设置了 16字节的“页缓冲器”,并将整个存储器阵列划分成512页,每页16个字节。页的区分可由地址的高9位来确定,地址线的低4位用以选择页缓冲器中的16个地址单元之一。写方式时,为低电平,在下降沿,地址码AO?A12被片内锁存器锁存,在上升时数据被锁存。片内还有一个字节装载限时定时器,只要时间未到,数据可以随机地写入页缓冲器。在连续向页缓冲器写入数据的过程中,不用担心限时定时器会益处,因为每当下降沿时,限时定时器自动被复位并重新启动计时。
[0160]字节写入:字节写入的过程与页写入的过程类似,不同之处是仅写入一个字节,限时定时器就溢出。
[0161](4)数据查询方式
数据查询是指用软件来检测写操作中的页存储周期是否完成。
[0162]在页存储期间,如对2864A执行读操作,那么读出的是最后写入的字节,若芯片的转储工作未完成,则读出数据的最高位是原来写入字节最高位的反码。据此,CPU可判断的编程是否结束。如果读出的数据与写入的数据相同,表示芯片已完成编程,CPU可继续向2864A装载下一页数据。
[0163]2864A与单片机接口时,2864A的片选端与高地址线P2.7连接,P2.7=0才能选中2864A,这种线选法决定了 2864A对应多组地址空间,即:0000H?1FFFFH,2000H?3FFH1,4000H?5FFFH,6000H?7FFHL这8K字节存储器可作为数据存储器使用,但掉电后数据不丢失。2864A与AT89C51接口电路如发明:单片机由于受引脚数的限制,数据线和地址线是复用的,由PO 口兼用。为了将它们分离出来,以便同单片机片外的扩展芯片正确的连接,需要在单片机外部增加地址锁存器。我们这本发明中使用74LS373。74LS373是一种带有三态门的8D锁存器,
其引脚的功能如下:
D7?DO:8位数据输入线 Q7?QO:8位数据输出线
G:数据输入锁存选通信号,高电平有效。当该信号为高电平的时候,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。
[0164]:数据输出允许信号,低电平有效。当该信号为低电平的时候,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平的时候,输出线为高阻态。
[0165]看门狗MAX813L电路
几乎所有的单片机都需要复位电路,对复位电路的基本要求是:在单片机上电时能可靠复位,在下电时能防止程序乱飞导致EPROM中的数据被修改;另外,单片机系统在工作时,由于干扰等各种因素的影响,有可能出现死机现象导致单片机系统无法正常工作,为了克服这一现象,除了充分利用单片机本身的看门狗定时器(有些单片机无看门狗定时器)夕卜,还需外加看门狗电路;除此以外,有些单
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1