收藏 分销(赏)

本科设计方案报告.docx

上传人:精**** 文档编号:3001877 上传时间:2024-06-12 格式:DOCX 页数:13 大小:230.44KB
下载 相关 举报
本科设计方案报告.docx_第1页
第1页 / 共13页
本科设计方案报告.docx_第2页
第2页 / 共13页
本科设计方案报告.docx_第3页
第3页 / 共13页
本科设计方案报告.docx_第4页
第4页 / 共13页
本科设计方案报告.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、大连理工大学本科设计汇报 题目: 交通灯自动控制系统设计 课程名称: 计算机原理试验 学院(系): 电信学部 专 业: 电子信息工程(英强) 班 级: 电英0902 学 号: 81541 学生姓名: 张策 成 绩: 年 1 月 8 日题目:交通灯自动控制系统设计1 设计要求利用试验台上彩色LED模拟两组“红黄绿”交通信号指示灯,将其分别作为主干道和支线道路信号灯。利用8253实现秒定时。主干线绿灯亮8秒,支线亮5秒,绿灯过渡到红灯时有一秒黄灯显示周期。利用试验台上两个单脉冲模拟两个人行横道“应急通行”按钮,当按动按钮时:信号立即转为绿灯,并延时一段时间,再转回到红灯,继续完成剩下时间。使用LE

2、D数码管模块显示信号周期时间“倒计时”。2 设计分析及系统方案设计能够将信号灯每一个状态设定成一个“状态字”,CPU只要经过8255APC端口每隔5秒钟更新一次“状态字”就能够实现信号灯正常工作。依据试验要求可将这些状态字设定如表3.1.3中内容。表3.1.3:信号灯状态字表 次序(状态)(空)主干路(南北)信号灯支线路(东西)信号灯状态字(16进制)D7D6D5D4D3D2D1D0-红黄绿红黄绿1000011000CH - 主干路行20001010014H - 主干路转换30010000121H - 支线路行40010001022H- 支线路转换(1) 设定D8255APC口作输出、显示信号

3、灯效果;(2) 设定8253CNT0工作于方法3,写入初值10000,将1MHZ信号分频为100HZ,再将CNT1设置为方法2,写入初值100,将100HZ分频为周期为1秒周期性方波;将分频后结果输入到8255PA0口;(3) 将D8255APA口设定为输入,并使用PA0和8253 OUT1连接,CPU经过查询PA0电平改变(秒信号),控制信号灯运行(经过设定计数来改变信号运行周期);(4) 分别使用两个单脉冲输出(正脉冲数出)和386模块MIR5和SIR0连接,作为“南北”和“东西”人行横道“紧急通行”呼叫信号。当产生呼叫信号后,该方向信号灯变为绿色,维持一段时间后,信号灯恢复正常运行;(5

4、) 设定D8255APB口作输出,连接LED显示“倒计时”。图 3.2 参考连接示意图8254/8253D7 OUT2 CLK2D0 GATE2 OUT1/RD CLK1/WR GATE1 A1 OUT0A0 CLK0GATE0/CS 200H1MHH时钟源+5V逻辑笔监测秒信号系统总线L7L0210H8255 D7 PC D0/RD/WRA1A0/CS PA0 系统总线SIR0单脉冲S10总线开放区MIR5单脉冲S9查询秒周期3 硬件电路图4 外围接口模块硬件电路功效描述(1)8259A芯片引脚图(2)8255芯片引脚图功效:8259A芯片用于管理可屏蔽中止,功效:PA口做输入,用于时钟在此

5、试验中用于管理各路紧急呼叫请 信号电平检测,PC口作输出,求信号。 用于状态显示。(3)8254芯片引脚图 功效:做分频器,用于产生周期为1S时钟脉冲信号5 主程序中关键变量说明变量名称内存单元功效Count10000H用于设定主干道通行时间Count20001H用于设定从干道通行时间CTR0002H0005H用于存放四个状态字LED0006H0020H用于存放0-F字型码,以供数码管显示用6系统软件中各个子程序功效描述子程序名称入口参数出口参数功效 描述INT5_PROC无无MIR5对应中止服务子程序,当主干道有紧急呼叫时,主干道绿灯亮INTS0_PROC无无SIR0对应中止服务子程序,当支

6、线道路有紧急呼叫时,支线道路绿灯亮图3.3主程序步骤图(参考图3.1.(b)8255初始化PA为输入,PC为输出8255PA输入状态字修改查表指针指向下一个状态输出状态主程序8254初始化CNT0为模式3,赋初值CNT1为模式2,赋初值PA0=0?NY8255PA输入PA0=0?NY8255 PC为输出第一个信号状态字8259初始化(一)MIR5屏蔽字11011011SIR0屏蔽字111111108259初始化(二)MIR535H类型向量表SIR070H类型向量表开中止STI查询PA07主程序步骤图8程序清单IO_8255 EQU 210HIO_8253 EQU 200HDATA SEGMEN

7、T ORG 0000HCOUNT1 DB 0COUNT2 DB 0CTR DB 0CH,14H,21H,22HLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:CLIMOV AX,DATAMOV DS,AXMOV DX,IO_8255;8255初始化,A口输入,B口输出,C口输出ADD DX,3MOV AL,10010000BOUT DX,ALMOV DX,IO_8253;8253 CNT0初始化,工作于方

8、法3,BCD码计数ADD DX,3MOV AL,00110111BOUT DX,ALMOV DX,IO_8253;CNT0写入初值10000,将1MHzclk信号转变成100Hz MOV AL,0OUT DX,ALOUT DX,ALMOV DX,IO_8253 ;8253 CNT1初始化,工作于方法3,二进制计数ADD DX,3MOV AL,01010110BOUT DX,ALMOV DX,IO_8253;CNT1设置初值,初值为100,得到周期为1秒脉冲信号INC DXMOV AL,100OUT DX,AL;-设置386主8259中止屏蔽字-IN AL,21HAND AL,11011011B

9、 ;开放IR5中止和IR2OUT 21H,ALIN AL,0A1HAND AL,11111110B ;开放IR0OUT 0A1H,AL;-设置中止向量表-PUSH DSMOV AX,0MOV DS,AX ;-设置MIR5对应中止向量-LEA AX,CS:INT5_PROCMOV SI,35H ADD SI,SI ;找到中止向量起始地址 ADD SI,SI MOV DS:SI,AXPUSH CSPOP AXMOV DS:SI+2,AX;将中止服务程序段地址存入中止向量 ;-设置MIR5对应中止向量-LEA AX,CS:INTS0_PROC;AX指向SIR0中止程序入口地址MOV SI,70HAD

10、D SI,SIADD SI,SIMOV DS:SI,AXPUSH CSPOP AXMOV DS:SI+2,AXPOP DS ;还原DSSTI ;开中止 ;-若没有中止-DDD:MOV DX,IO_8255IN AL,DX ;取出8255AoAND AL,01H CMP AL,0JZ DDDCIRCLE: LEA BX,CTRMOV COUNT1,8 ;COUNT赋初值5,计时8SMOV DX,IO_8255ADD DX,2 MOV AL,BXOUT DX,AL ;C端口输出第一个状态LEA SI,LED MOV CL,COUNT1MOV CH,0ADD SI,CXMOV AL,BYTE PTR

11、 SIMOV DX,IO_8255ADD DX,1 OUT DX,AL ;B端口输出,使LED显示出对应数MAIN1:MOV DX,IO_8255IN AL,DX;取出8255AoAND AL,01H CMP AL,0JNZ MAIN1MAIN2:MOV DX,IO_8255IN AL,DXAND AL,01HCMP AL,01HJNZ MAIN2DEC COUNT1LEA SI,LED MOV CL,COUNT1MOV CH,0ADD SI,CXMOV AL,BYTE PTR SIMOV DX,IO_8255ADD DX,1 OUT DX,AL; B端口输出,使LED显示出对应数MAIN3:

12、MOV DX,IO_8255IN AL,DX; 取出8255Ao AND AL,01H CMP AL,0JNZ MAIN3CMP COUNT1,2 ; 判定是否达成最终一秒JNZ MAIN2MAIN4:MOV DX,IO_8255 IN AL,DX; 取出8255Ao AND AL,01H CMP AL,1JNZ MAIN4INC BXMOV DX,IO_8255ADD DX,2MOV AL,BXOUT DX,AL;C端口输出下一个状态DEC COUNT1LEA SI,LED MOV CL,COUNT1MOV CH,0ADD SI,CXMOV AL,BYTE PTR SIMOV DX,IO_8

13、255ADD DX,1 OUT DX,AL; B端口输出,使LED显示出对应数MAIN5:MOV DX,IO_8255IN AL,DXAND AL,01HCMP AL,0JNZ MAIN5MAIN6:MOV DX,IO_8255 IN AL,DX; 取出8255Ao AND AL,01H CMP AL,1JNZ MAIN6INC BXMOV COUNT2,5MOV DX,IO_8255ADD DX,2 MOV AL,BXOUT DX,AL;C端口输出下一个状态LEA SI,LED MOV CL,COUNT2MOV CH,0ADD SI,CX MOV AL,BYTE PTR SI MOV DX,

14、IO_8255ADD DX,1 OUT DX,AL; B端口输出,使LED显示出对应数MAIN7:MOV DX,IO_8255 IN AL,DX; 取出8255Ao AND AL,01H CMP AL,0JNZ MAIN7MAIN8:MOV DX,IO_8255IN AL,DXAND AL,01HCMP AL,01HJNZ MAIN8DEC COUNT2LEA SI,LED MOV CL,COUNT2MOV CH,0ADD SI,CX MOV AL,BYTE PTR SI MOV DX,IO_8255ADD DX,1 OUT DX,AL; B端口输出,使LED显示出对应数MAIN9:MOV D

15、X,IO_8255 IN AL,DX; 取出8255Ao AND AL,01H CMP AL,0JNZ MAIN9 CMP COUNT2,2 ; 判定是否达成最终一秒JNZ MAIN8MAIN10:MOV DX,IO_8255IN AL,DX; 取出8255Ao AND AL,01H CMP AL,1JNZ MAIN10INC BXMOV DX,IO_8255ADD DX,2 MOV AL,BXOUT DX,AL;C端口输出下一个状态DEC COUNT2LEA SI,LED MOV CL,COUNT2MOV CH,0ADD SI,CX MOV AL,BYTE PTR SI MOV DX,IO_

16、8255ADD DX,1 OUT DX,AL; B端口输出,使LED显示出对应数MAIN11:MOV DX,IO_8255IN AL,DXAND AL,01HCMP AL,0JNZ MAIN11MAIN12:MOV DX,IO_8255 IN AL,DX; 取出8255Ao AND AL,01H CMP AL,1JNZ MAIN12JMP CIRCLE;-设置MIR5对应中止服务子程序- INT5_PROC PROC FARPUSH AXPUSH BXPUSH CXPUSH DX;保护现场 QUERY1:LEA BX,CTRMOV AL,BXMOV DX,IO_8255ADD DX,2OUT

17、DX,AL;MIR5有中止请求,则让主干道绿灯亮,即C口输出第一个状态MOV CX,3000;延时一段时间 Y5:MOV DI,1000 Y4:DEC DIJNZ Y4LOOP Y5ADD BX,2MOV AL,BXOUT DX,AL ;恢复到之前第三状态MOV AL,20H ; 向主8259MIR5发送中止结束命令 OUT 20h,AL POP DXPOP CXPOP BXPOP AX ;恢复现场STIIRET INT5_PROC ENDP;-设置SIR0对应中止服务子程序- INTS0_PROC PROC FARPUSH AXPUSH BXPUSH CXPUSH DX;保护现场 QUERY

18、2:LEA BX,CTRADD BX,2MOV AL,BXMOV DX,IO_8255ADD DX,2 OUT DX,AL;SIR0有中止请求,则让支线路绿灯亮,即C口输出第三个状态MOV CX,3000;延时一段时间 Y7:MOV DI,1000 Y6:DEC DIJNZ Y6LOOP Y7LEA BX,CTR MOV AL,BXOUT DX,AL ;恢复到原来第一状态MOV AL,20H ; 向主8259MIR5发送中止结束命令 OUT 20h,ALMOV AL,20H ; 向从8259SIR0发送中止结束命令 OUT 0A0h,ALPOP DXPOP CXPOP BXPOP AX ;恢复

19、现场STIIRET INTS0_PROC ENDPCODE ENDSEND START9系统调试运行结果说明、分析所出现得问题,设计体会和提议(1)此次试验达成了预期效果,试验成功!(2)在调试过程碰到问题及处理方法问题1:在实施中止服务程序过程中,从片中止在处理完成后无法回到原来断点。处理方法:在实施从片中止服务程序时,在发送中止结束命令时只发送了从片中止结束命令。也应该加上对主片中止结束命令,因为从片中止请求是经过主片发送给CPU,也占用了主片,所以也需要对主片发送中止结束命令。问题2:在实施完中止服务程序以后,回到断点怎样保持其原来中止时计数不变?处理方法:在实施完中止服务程序以后,需要

20、实施一条回到原来状态程序,使之不仅能回到断点,而且也能延续其原来计时。(3)设计评价:此次设计采取了LED数码管显示倒计时,较为人性化,不过在显示代码部分并未采取调用函数,使得程序较为繁琐。不过本程序主,从干道亮灯时间和中止时间均可调,适适用于路况不一样多种道路。10 结论及设计体会 程序正常运行,状态转换正确,中止响应正确,倒计时显示正确,达成了试验要求。设计体会:这次大试验设计,不仅使我意识到自已对于以往知识掌握并不是很牢靠,更让我意识到自己不足。经过这段时间学习,我对可编程器件8255,8259,8253有了更深认识,掌握了其使用原理及编程方法,而且复习了汇编语言。这不仅仅帮我顺利完成了设计试验,更能帮助我在计算机原理理论考试中取好成绩!在试验过程中,经过不停调试,不停犯错,不停修改,提升了我处理编程问题能力,学会并掌握了调试方法。之前做接口部分试验时,因为理论课上还没讲,自己了解不好,在使用中要么常常碰到问题,要么成功了却不知其所以然。在全书学完以后做设计试验时,才恍然大悟,所以理论课能早点讲话,我认为此次设计试验会完成愈加快速和出色。最终,衷心感谢陈老师一个学期以来悉心教育和耐心指导!参考文件计算机原理综合试验教程M. 秦晓梅,陈育斌. 大连理工大学出版社,.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服