自动存包柜的设计与仿真内容摘要:

电平有效。 当该信号为高电平的时候,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。 OE:数据输出允许信号,低电平有效。 当该信号为低电平的时候,三态门打开,锁存器中数据输出到数据输出线。 当该信号为高电平的时候,输出线为高阻态 [8]。 系统 I/O 接口扩展 由于我们采集的数据量较多,因此 CPU 的 I/O 口线不够用,所以我们使用8255A 扩 展 I/O 口,以满足系统的要求。 8255A 是 Intel公司生产的通用可编程并行 I/O 接口芯片。 1 8255A 内部结构 8255A 内部由四部分电路组成。 它们是 A 口、 B 口和 C 口, A 组控制器和 B组 控制器,数据缓总线冲器及读写控制逻辑,如图 26 所示: 10 数据总线缓冲器数据总线缓冲器读写控制逻辑读写控制逻辑A 组控制A 组控制B 组控制B 组控制A 组端口A ( 8 )A 组端口A ( 8 )A 组端口C ( 4 )A 组端口C ( 4 )B 组端口B ( 8 )B 组端口B ( 8 )B 组端口C ( 4 )B 组端口C ( 4 )D 7 D 0I / 0PA 7 PA 0I / OPC 7 PC 4I / OPC 3 PC 0I / OPB 7 PB 0RDWRA 0A 1CSREST 图 26 8255A 的内部结构 ( 1) A 口、 B 口和 C 口。 A 口、 B 口和 C 口均为 8 位 I/O 数据口,但结构上略有差别。 A 口由一个 8 位的数据输出缓 冲 /锁存器和一个 8 位的数据输入缓冲 /锁存器组成。 B 口由一个 8 位的数据输出缓冲 /锁存器和一个 8 位的数据输入缓冲器组成。 三个端口都可以和外设相连,分别传送外设的输入 /输出数据或控制信息。 ( 2) A、 B 组控制电路。 这是两组根据 CPU 的命令字控制 8255 工作方式的电路。 A 组控制 A 口及 C 口的高 4 位, B 组控制 B 口及 C 口的低 4 位。 ( 3) 数据总线缓冲器。 它是一个 8 位的双向三态驱动器,用于与单片机的数据总线相连,传送数据或控制信息。 ( 4) 读 /写控制逻辑。 这部分电路接收 MCS51 送来的读 /写命令和选口地址,用于控制 对 8255A 的读 /写 [9]。 2 8255A 的引脚功能 8255A 有 40 条引脚,采用双列直插式封装。 引脚如图 27 所示: 11 图 27 8255A 引脚图 ( 1) 数据总线( 8 条): D0~ D7:三态双向数据总线, 8255A 与 CPU 数据传送的通道,当 CPU 执行输入输出指令时,通过它实现 8 位数据的读 /写操作,控制字和状态信息也通过数据总线传送。 ( 2) 控制总线( 6 条): RESET:复位信号,输入高电平有效。 一般和单片机的复位相连,复位后,8255A 所有内部寄存器清 0,所有口都为输入方式。 CS:片选信号线 ,当这个输入引脚为低电平时有效,表示芯片被选中,允许8255A 与 CPU 进行通讯。 RD:读信号线,当这个输入引脚为低电平时,允许 8255A 通过数据总线向CPU 发送数据或状态字。 WR:写入信号,当这个输入引脚为低电平时,允许 CPU 将数据或控制字写入 8255A。 A0、 A1:地址输入线。 这两位的 4 种组合 00、 0 11 分别用于选择 A、B、 C 口和控制寄存器。 ( 3) 并行 I/O 总线( 24 条):这些总线用于和外设相连,分别与 A、 B、 C口相对应,用于 8255A 和外设之间传送数据,共分三组: PA0~ PA7:端口 A 输入输出线,一个 8 位的数据输出锁存器 /缓冲器,一个 8位的数据输入锁存器。 12 PB0~ PB7:端口 B 输入输出线,一个 8 位的 I/O 锁存器,一个 8 位的输入输出缓冲器。 PC0~ PC7:端口 C 输入输出线,一个 8 位的数据输出锁存器 /缓冲器,一个 8位的数据输入缓冲器。 ( 4) 电源线( 2 条): VCC 为+ 5V 电源线,允许变化 177。 10%; GND 为地线。 3 输入输出电路 自动存包柜的设计中输入输出部分是十分重要的一个环节,输入输出系统就是人与计算机之间建立联系,交换信息的设备,即人机交互设备。 在这里我们需要输入存包取包命令,检 测箱内是否有物体,在顾客需要的时候检测密码,并自动打开柜门,还需要显示是否有空箱以及空箱的位置,来为顾客提供选择。 键盘设计 键盘在单片机应用系统中能实现向单片机输入数据、命令等功能,是人工干预单片机的主要手段。 该系统中键盘的主要功能是用于顾客选择适当 的包柜存包 ,用按键来控制柜门的打开, 键 盘是用 8031 单片机 经 74LS373 扩展一片 8255A构成键盘借口电路的。 键盘的闭合与否,映在行线输出电压上就是呈现出高电平或低电平,相反如果高电平表示断开的话,那么低电平就表示键闭合,所以通过对行线电平的高低状态 的检测,便可以确认按键按下与否。 常用的键盘接口分为独立式按键接口和矩阵式键盘接口。 我们在这里选用矩阵式键盘接口,如图 31 所示: 5 VR 1R 2R 3R 40 12 3 45 9101415 19 图 31 矩阵式键盘 13 矩阵式键盘工作原理:按键设置在行、列线交点上,行列线分别连接到按键开关的两端,行线通过上拉电阻接到 +5V 电源上。 平时无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。 列线电平如果为低电平,则行线电平为低电平;列线电平如果为高,则行线电平也为高电平。 这是识别矩阵键盘按键是否被按下的关键所在。 由于矩阵键盘中行、 列 线为多键共用,各按键均影响该键在行和列的电平,因此各按键彼此将互相发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置 [10]。 键盘实际是一组按键开关的集合,是向系统提供操作人员干预命令和数据的接口设备这里我们选用 4*4 矩阵键盘接口,用 14 个按键控制箱门的打开,其中,数字键 10 个,分别为 0~9,功能键 4 个,“ ON/C”表示存包键,“ =”表示取包键,“ +”表示确定键,“ — ”表示取消键。 如图 32 所示: 图 32 4*4 矩阵键盘 该键盘工作方式采用的是外部中断扫描,中断式键盘 扫描原理是:当有键按下将会触发一个中断源,提醒处理器进行键值扫描查询。 键盘的中断方式一般有定时中断和外部中断两种,本系统采用的是外部中断 INT0。 单片机先让行线输出低电平,当有键按下时列线电平不全为高,将触发外部中断 INT0,单片机进入中断后先延时去抖动,再扫描查寻键盘,读出键值,然后处理相应的键值处理子程序,无键按下则不进入中断,单片机不扫描,从而节约了大量的资源 [11]。 显示系统设计 为了使操作人员及时掌握生产情况,在一般的微型计算机控制系统或者智能 14 仪器当中,都配有显示程序。 常用的显示器件有: ① 显示和记录仪表, ② CRT显示终端, ③ LED 或者 LCD 显示器, ④ 大屏幕显示器。 本次设计所采用的是 LED数码管。 LED 数码管是由发光二极管组成,由于材料的不同,可以发出各种单色光线。 根据发光二极管内部的连接方式不同,又有共阴极或共阳极两种形式。 如图33 所示: abcdefgdpbacdefgdp 共阴极 共阳极 图 33 LED 显示器 LED 数码管具有结构简单,体积小,功耗低,响应速度快,易于匹配,寿命长,可靠性高等优点。 本次设计我们使用两个 4 位数码管来显示 8 位密码,数码管如图 34 所示: 图 34 4 位数码显示管 输出系统功能扩展 由于本人能力有限,考虑不周,此次设计的存包柜与实际应用的自动存包柜 15 相差甚远,功能不全,而且还存在一些问题。 按实际应用中,根据各种需要,可以在此设计基础上进行扩展。 如: ( 1)限位开关:利用电磁铁或可控硅、电磁耦合器,再加上一些机械装置,就能实现柜门的自动开关。 ( 2)光电开关:对存包柜进 行检测,实时显示无物的箱号。 ( 3)打印机:将产生的随机密码打印出来。 ( 4)语音服务:用户存取包时,语音致词“欢迎使用”、“请关门”、“谢谢使用”等。 ( 5)报警服务:用户忘记关门时,提醒顾客关门。 4 系统程序设计及仿真 为了使本系统的整个程序清晰明白,便于调试和修改,程序设计时把系统的各种功能分为若干部分,于每一部分功能编制相对独立的程序块,对各程序在运行的时候各负其责。 主程序模块设计 该模块的功能包括显示的初始化,判断是否有空箱,键盘扫描,密码扫描等功能。 存储柜通上电以后,单片机上电,首先 进行程序的初始化,包括定时器,外部中断等初始化,以及各参数初始值的设定。 默认存储柜为初始状态,根据存包指令,扫面计数器的存储包状态,用数码管显示存储柜号和密码。 主流程图如图 41 所示: 16 通 电 开 始通 电 开 始显 示 空 箱显 示 空 箱初 始 化初 始 化状 态 判 断状 态 判 断取 包取 包存 包存 包读 密 码读 密 码门 是 否 关 好门 是 否 关 好打 印 密 码打 印 密 码门 开门 开取 物 关 门取 物 关 门门 是 否 关 好门 是 否 关 好报 警报 警返 回返 回报 警 提 醒关 门报 警 提 醒关 门 密 码 是 否 正 确 N YYNNY 41 主程序流程图 键输入子程序模块 键盘采用扫描工作方式 ,输入程序功能有以下 4 个方面: (1) 判断键盘上有无键闭合,其方法为扫描口 PA0~ 7 输出全“ 0”,读 PC口的状态,若 PC0~ 3 为全“ 1”(键盘上行线全为高电平)则键盘上没有闭合键 ,若 PC0~ 3 不全为“ 1”,则有键处于闭合状态。 17 (2) 去除键的机械抖动 ,其方法为判断出键盘上有键闭合后,延迟一段时间再判别键盘的状态,若仍有键闭合,则认为键上有一个键处于稳定的闭合期,否则认为是键的抖动。 (3) 判别键闭合的键号,方法对键盘的列线进行扫描,扫描口 PA0~ 7 依次输出: 相应的依次读 PC 口的状态,若 PC0~ 3 为全“ 1”则列线为“ 0”的这一列上没有键闭合。 闭合键的键号等于为低电平的列号加上为低电平的行的首键号。 (4) 使 CPU 对键的一次闭合仅做一次处理,采用。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。