微机课程设计-停车场出入管理系统

上传人:shaoy****1971 文档编号:108273820 上传时间:2019-10-23 格式:DOC 页数:23 大小:5.03MB
返回 下载 相关 举报
微机课程设计-停车场出入管理系统_第1页
第1页 / 共23页
微机课程设计-停车场出入管理系统_第2页
第2页 / 共23页
微机课程设计-停车场出入管理系统_第3页
第3页 / 共23页
微机课程设计-停车场出入管理系统_第4页
第4页 / 共23页
微机课程设计-停车场出入管理系统_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《微机课程设计-停车场出入管理系统》由会员分享,可在线阅读,更多相关《微机课程设计-停车场出入管理系统(23页珍藏版)》请在金锄头文库上搜索。

1、东南大学吴键雄学院 微机实验及课程设计课程设计报告停车场出入管理系统姓 名: 学 号: 61011108 专 业: 电类强化班 实 验 室: 组 别: 同组人员: 郑夏雯 设计时间:2013 年 5月28日 2013年 6月 4 日评定成绩: 审阅教师: 目 录一 课程设计目的与要求2二方案论证与原理设计2三详细(机理)设计3四方案实现与测试(或调试)7五分析与总结8一. 课程设计目的与要求(含设计指标)1、设计项目名称:停车场出入管理系统2、目的:1 巩固已学的微机原理与接口的基本知识;2 加强个人编程能力,学会用汇编语言编写简单使用的系统3 学会对8086,8253,8255等芯片的综合应

2、用,实现对停车场的出入进行智能管理。3、基本要求: 设计实现一停车场实时管理系统。要求实时显示车位空闲情况(初值可修改,最多99辆),并分别控制A、B两个出入口。每个出入口需要控制进出栏杆,并检测车辆进出,修改统计、显示车位空闲情况,并根据空闲情况控制进入。用2*2个开关模拟两个出入口的车辆进出光电信号,2个LED灯模拟栏杆输出控制(亮代表有效,禁止出入)。允许A口进B口出,反之亦是。4、设计指标1 要求用两个数码管实时显示车位空闲数目(0099);2 当有空位时,如有车辆到来,则在检测到信号(有效)后2秒钟打开进入栏杆,待车进入(信号无效)后1秒钟放下栏杆,空车位数减1修改;若无空位,则车辆

3、等待,直至有车位空出;3 当有车出停车场时则在检测到信号后2秒钟打开出车栏杆,带车离开3秒钟放下栏杆,空车位数加1修改;4 车位发生变化时,PC上同步显示记录。 5、拓展功能1 8*8点阵显示进出箭头,有车辆进出空时绿色,满时红色;2 自动记录车将进出时间和属性;3 考虑A、B、C、D四个出入口同时控制的情况,自动显示空位数,控制车辆二.方案论证与原理设计(或基本原理)对上述基本要求和设计指标进行需求分析,并基于所有的硬件资源,我们可以采用如下办法进行实现:对于光电信号的采集(开关模拟)可以通过8255C口输入并进行判断,对于栏杆的控制同样可通过8255C口进行输出控制;对于双数码管的显示,可

4、以采用动态显示的方法,利用8255A口输出数码管的七段译码,B口输出数码管的动态片选信号。实时的空车位保存于通用寄存器中(如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 a

6、l,08h;00001000jz goon1call testa1;a口开关1拨上,监测a口状态goon1: test al,04h;00000100jz goon2call testa2goon2: call testa3mov bh,a0mov bl,a1cmp bx,0909hjz loopsb:test al,02h;00000010jz goon3call testb1;b口开关1拨上,监测a口状态 goon3: test al,01h;00000001jz goon4call testb2 goon4: call testb3jmp loops exit: mov ah,4chin

7、t 21h入车程序控制,以A口为例 testa1 proc nearpush axpush dx ;a口开关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 21hmov state_a,01hmov dx,io8253b;计数器通道1地址,计数器赋2smov al,00h out dx,almov al,08h ;clk1接的是out0,经过两次分频,得出两秒ou

8、t dx,aljmp exit1 timecheck_a2s: mov dx,io8255d ;8255B口地址in al,dxand al,02h ;00000010bjz exit1mov dx,offset mess3mov ah,09hint 21hmov state_a,02hmov dx,io8255b ;开灯(栏杆打开)mov al,0bh ;00001011(C的5号口对应于栏杆信号)out dx,al exit1: pop dxpop ax rettesta1 endp 出车程序控制,以A口为例 testb1 proc near;b口开关1拨上,监测a口状态push axpu

9、sh dxcmp state_b,00hjz state_b1cmp state_b,01hjz timecheck_b2sjmp exit4state_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

10、 21hmov state_b,02hmov dx,io8255b;开灯(栏杆打开)mov al,09hout dx,al exit4: 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,i

11、oporta out dx,al mov cx,3000delay2: loop delay2 mov di,offset led mov 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 endp4. 方案实现与测试(或调试)1、用TD调试工具

12、对每个子程序模块进行单步断点测试,观察各寄存器,标志寄存器的状态是否正确,重点关注跳转指令处是否跳转正确。对中断服务子程序模块的调试重点检查断点的现场保护和现场的恢复,观察堆栈段的压栈和出栈的情况。2、整个程序连接起来,系统调试,对照流程图,确定各子程序的相互调用正确,条件转移正确,数码管的显示是否正确,是否能正常进入中断服务子程序和返回中断程序。一切正常后,对系统的功能逐一验证,检测每一项功能是否能正确执行。3、在程序的调试过程中,发现了原始程序中的一些小问题(如条件转移指令的跳转范围和修改计数值程序段等)并进行了更正。单步调试时程序很好的按照设计要求运行,各项要求均符合(除了精确延迟,因为是单步调试),实现了预定的功能。但是在动态运行时却出现了问题,主要表现在计数值不稳定,实际进出一次车却出现了进出几次的记录等等。经过仔细分析发现可能是由于拨码开关存在抖动现象,而CPU的运行频率很高,因此微机实际捕捉到的开关状态跳转不止一次,这就导致了计数值的不稳定和记录的多次显示。 为此改用脉冲信号代替拨码开关进行光电信号的模拟(脉冲信号进行了消抖处理),动态运行程序后发现实验现象正

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号