微机实验课程设计—停车场出入管理系统(共30页).doc
《微机实验课程设计—停车场出入管理系统(共30页).doc》由会员分享,可在线阅读,更多相关《微机实验课程设计—停车场出入管理系统(共30页).doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上东南大学自动化学院 微机实验及课程设计课程设计报告停车场出入管理系统 姓 名: 学 号: 专 业: 自动化 实 验 室: 计算机硬件技术 组 别: 同组人员: 实验时间: 2015年06月16日 报告时间: 2015年06月20日评定成绩: 审阅教师: 目 录一 课程设计目的与要求2二方案论证与原理设计2三详细(机理)设计3四方案实现与测试(或调试)7五分析与总结8一. 课程设计目的与要求(含设计指标)1、设计项目名称:停车场出入管理系统2、课程设计目的: 巩固已学的理论课原理和基本知识; 加强编程和调试能力,学会用汇编语言编写简单使用的系统 学会对8086,8253
2、,8255等芯片进行综合应用3、基本要求: 设计实现一停车场实时管理系统。要求实时显示车位空闲情况(初值可修改,最多99辆),并分别控制A、B两个出入口。每个出入口需要控制进出栏杆,并检测车辆进出,修改统计、显示车位空闲情况,并根据空闲情况控制进入。用2*2个开关模拟两个出入口的车辆进出光电信号,2个LED灯模拟栏杆输出控制(亮代表有效,禁止出入)。允许A口进B口出,反之亦是。4、设计指标 要求用两个数码管实时显示车位空闲数目(0099); 当有空位时,如有车辆到来,则在检测到信号(有效)后2秒钟打开进入栏杆,待车进入(信号无效)后1秒钟放下栏杆,空车位数减1修改;若无空位,则车辆等待,直至有
3、车位空出; 当有车出停车场时则在检测到信号后2秒钟打开出车栏杆,带车离开3秒钟放下栏杆,空车位数加1修改; 车位发生变化时,PC上同步显示记录。 5、拓展功能 8*8点阵显示进出箭头,有车辆进出空时绿色,满时红色; 自动记录车将进出时间和属性; 考虑A、B、C、D四个出入口同时控制的情况,自动显示空位数,控制车辆二.方案论证与原理设计(或基本原理)对上述基本要求和设计指标进行需求分析,并基于所有的硬件资源,我们可以采用如下办法进行实现:对于光电信号的采集(开关模拟)可以通过8255C口输入并进行判断,对于栏杆的控制同样可通过8255C口进行输出控制;对于双数码管的显示,可以采用动态显示的方法,
4、利用8255A口输出数码管的七段译码,C口输出数码管的动态片选信号。实时的空车位保存于通用寄存器中(如BX,BH表示十位,BL表示个位);对于等待时间的控制,可以通过微机内部的延迟得到,但若想要得到精确地时间,则可以利用8253定时器实现,具体做法是利用双通道计数器的级联实现对1MHz时钟信号的1000*1000分频,得到1HZ的信号,即可得到1s精确延迟。程序的基本框架如下:1.对系统进行初始化,显示当前空车位数;2.利用输入指令从8255C口低四位输出光电信号。若检测到有效信号,则对其判断端口和进出性质;若无有效信号,则继续检测信号;3.对有效信号的性质进行判定:若为出信号,则执行出车程序
5、(跳转指令实现);若为进信号,则先判断是否有空位(判断BX是否为0),若有空位,则执行进车程序,否则等待并检测是否有出车信号,至有空位出现;4.出车时首先需要一定得延迟,然后输出控制打开栅栏信号,经过一定的延迟之后,检测出车信号是否无效(表明车已经出去),无效则输出关闭栅栏信号,修改计数值并显示,否则继续等待,重复检测。三.详细(机理)设计 1、系统工作流程图(如下所示) 2、关键部分程序片段 端口信号的检测和判断控制mov bh,a0;数码管的高位mov bl,a1;数码管的低位cmp bx,0000h;如果没有空车位就转向bjz btest al,08h;jz goon1call test
6、a1;a口开关1拨上,监测a口状态goon1: test al,04h;jz goon2call testa2goon2: call testa3mov bh,a0mov bl,a1cmp bx,0909hjz loopsb:test al,02h;jz goon3call testb1;b口开关1拨上,监测a口状态 goon3: test al,01h;jz goon4call testb2 goon4: call testb3jmp loops exit: mov ah,4chint 21h 入车程序控制,以A口为例 testa1 proc nearpush axpush dx ;a口开关
7、1拨上,监测a口状态cmp state_a,00h ;空闲jz state_a1 cmp state_a,01h;a口状态前jz timecheck_a2sjmp exit1state_a1: mov dx,offset mess8;提示有车准备进入 mov ah,09h int 21h mov state_a,01hmov dx,io8253b;计数器通道1地址,计数器赋2smov al,00h out dx,almov al,08h ;clk1接的是out0,经过两次分频,得出两秒out dx,aljmp exit1timecheck_a2s: mov dx,io8255d ;8255B口
8、地址in al,dxand al,02h ;bjz exit1mov dx,offset mess3mov ah,09hint 21hmov state_a,02hmov dx,io8255b ;开灯(栏杆打开)mov al,0bh ;(C的5号口对应于栏杆信号)out dx,al exit1: pop dxpop ax ret testa1 endp 出车程序控制,以A口为例 testb1 proc near;b口开关1拨上,监测a口状态push axpush dxcmp state_b,00hjz state_b1cmp state_b,01hjz timecheck_b2sjmp exi
9、t4state_b1: mov dx,offset mess9;提示有车准备离开 mov ah,09h int 21hmov state_b,01hmov dx,io8253c ;计数器赋2smov al,00hout dx,almov al,08hout dx,aljmp exit4 timecheck_b2s: mov dx,io8255din al,dxand al,01hjz exit4mov dx,offset mess4mov ah,09hint 21hmov state_b,02hmov dx,io8255b;开灯(栏杆打开)mov al,09hout dx,al exit4:
10、pop dxpop ax ret testb1 endp 两位数码管动态显示程序 disp proc near;显示子程序 push dx mov di,offset led mov byte ptr bz,bl add di,bz mov al,00 mov dx,ioporta out dx,al mov al,2 ;选择数码管,低位 mov dx,ioportb out dx,al mov al,byte ptrdi ;LED显示数字 mov dx,ioporta out dx,al mov cx,3000delay2: loop delay2 mov di,offset led mov
11、 byte ptr bz,bh add di,bz mov al,00 mov dx,ioporta out dx,al mov al,4 ;选择数码管,高位 mov dx,ioportb out dx,al mov al,byte ptrdi ;LED显示数字 mov dx,ioporta out dx,al mov cx,3000delay3: loop delay3 pop dx retdisp endp四. 方案实现与测试(或调试)1、用调试工具对每个子程序模块进行单步断点测试,观察各寄存器,标志寄存器的状态是否正确,重点关注跳转指令处是否跳转正确。2、整个程序连接起来,系统调试,对照
12、流程图,确定各子程序的相互调用正确,条件转移正确,数码管的显示是否正确,是否能正常进入中断服务子程序和返回中断程序。一切正常后,对系统的功能逐一验证,检测每一项功能是否能正确执行。硬件实物图: 连接运行结果:(1)输入空闲车位初值66;(2).数码管显示空闲车位数66(3)K7为1,车辆到来PC上显示有车想从A门进入,此时有车位,车从A门进入箭头显示车进入(4)K6为1,信号无效,1s后放下栏杆车进入后数码管显示空闲车位65车进入后PC显示空闲车位65无车需进入时显示禁止图案(5)B口出车情况类似箭头显示车出车出后数码管显示空闲车位67车出后PC显示空闲车位67考虑极端情况:(6)输入空闲车位
13、初值01数码管显示空闲车位数01K7上拨为1,车辆到来PC上显示有车想从A门进入,有车位,车从A门进入车进入后数码管显示空闲车位为00K7再次为1,车辆到来PC上显示有车想从A门进入,无车位,提示无车位(7)输入空闲车位初值99数码管显示空闲车位数PC显示空闲车位为99,提示停车场内没有车四提高与创新研究1)88 点阵显示进出箭头; 已实现,见以上过程图中。2)对于拓展功能2,我没能有一个较好的实现思路。3)对于拓展功能3,将两个出入口改为四个出入口,其他要求不变,因此只需在程序中添加四出入口的控制转移程序(安排原理和双口差不多)和对应的进出控制程序(这个可以复制双出口程序的代码,只需稍加改动
14、即可)。这里只需要注意一点,那就是C口8位需要全部用来作为输入,输入8个拨码开关的信号,因此8255的控制字要做对应的改变。这里可以改用B口的高四位作栅栏的控制信号。但此次实验中未实现。五分析与总结该系统已经能够基本完成所需求的功能,且运行稳定,因此具有一定的价值。当然,程序中仍然有待改进的地方。不过综合最后运行结果来看,还是算不错的完成了该有的功能,包括用8253精确定时,而不是用软件延时;进出点阵箭头的显示等。参考书目:东南大学微机系统与接口课程组,微机实验及课程设计教程(试用版2.0),东南大学初出版社,南京,2009年2月附录:data segmentioport equ 0b800h
15、-280h ;tpc卡中设备的io地址io8253a equ ioport+280h ;计数器通道0地址io8253b equ ioport+281h ;计数器通道1地址io8253c equ ioport+282h ;计数器通道2地址io8253d equ ioport+283h ;8253控制寄存器地址io8255a equ ioport+288h ;8255A口地址 io8255b equ ioport+28bh ;8255控制寄存器端口地址 io8255c equ ioport+28ah ;8255C口地址io8255d equ ioport+289h ;8255B口地址protheq
16、u ioport+290h ;行选protlrequ ioport+298h ;红选protlyequ ioport+2a0h ;黄选num db 3,4 dup(0)a db 00h,00h ;用于存放空闲车位的十位和个位state_a db 00h ;标志a口状态,0表示空闲,1表示状态前,2标志状态中,3标志状态后state_b db 00h ;标志b口状态,0表示空闲,1表示状态前,2标志状态中,3标志状态后 led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;八段LEDCopyright DB *,0DH,0AH DB * Southeast
17、 University *,0DH,0AH DB * *,0DH,0AH DB * Wei ji xi tong yu jie ko *,0DH,0AH DB * *,0DH,0AH DB * System on parking lot management *,0DH,0AH DB * *,0DH,0AH DB * kuangzhenguo *,0DH,0AH DB * *,0DH,0AH DB * 2015-06 *,0DH,0AH DB *,0Dh,0Ah,$ ;版权信息mess1 db Please input the available parks scale num(0099):
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 实验 课程设计 停车场 出入 管理 系统 30
限制150内