收藏 分销(赏)

微机原理课程设计实现交通灯的仿真.docx

上传人:xrp****65 文档编号:6136912 上传时间:2024-11-28 格式:DOCX 页数:13 大小:108.97KB
下载 相关 举报
微机原理课程设计实现交通灯的仿真.docx_第1页
第1页 / 共13页
微机原理课程设计实现交通灯的仿真.docx_第2页
第2页 / 共13页
微机原理课程设计实现交通灯的仿真.docx_第3页
第3页 / 共13页
微机原理课程设计实现交通灯的仿真.docx_第4页
第4页 / 共13页
微机原理课程设计实现交通灯的仿真.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、 青 岛 大 学理学与信息科学学院通 信 原 理 课 程 设 计 报 告设 计 题 目 交通灯微机接口设计 学生专业班级 电子信息工程07级2班 学生姓名(学号) 林飞(20074345) 指 导 教 师 孙洁老师 完 成 时 间 实 习(设计)地点 信息楼机房 微机原理课程设计报告一、 设计题目数字控制系统在交通路灯管理中的应用二、 设计内容设有一十字路口,1、3为南北方向,2、4为东西方向。每个路口均有红、黄、绿三个灯初始状态为四个路口的红灯亮,3秒之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口通车;延时45秒后,1、3路口绿灯闪烁3秒,后绿灯灭,黄灯亮,3秒后,1、3路口的红灯

2、亮,而同时2、4路口的绿灯亮,2、4路口开始通车;延时40秒后,2、4路口绿灯闪烁3秒后绿灯灭,黄灯亮,3秒后,2、4路口的红灯亮,同时1、3路口的红灯亮(即四个路口的红灯亮),3秒之后,1、3路口的绿灯亮,2、4路口的红灯亮,重复上面的过程。三、 设计思路与步骤1)设计内容分析:通过分析设计要求找出灯亮的规律:1. 东西南北两个方向起始状态全为红,延续3秒。2. 东西方向红灯亮,南北方向绿灯亮,延续45秒。3. 东西方向红灯亮,南北方向绿灯以频率1HZ闪烁3秒。4. 东西方向红灯亮,南北方向黄灯亮,延续3秒。5. 东西方向绿灯亮,南北方向红灯亮,延续40秒。6. 东西方向绿灯亮以频率1HZ闪

3、烁3秒,南北方向红灯。7. 东西方向黄灯亮,南北方向红灯亮,延续3秒。8. 东西方向红灯亮,南北方向红灯亮循环以上步骤。通过分析灯亮的规律,总结出如下的功能表:交通灯亮灭功能表灯状态南北红L1东西红L2南北黄L3东西黄L4南北绿L5东西绿L6 L7无效 L8无效状态1 11 0 0 0 0 0 0状态2 0 1 0 0 1 0 0 0状态3010 001 0 0 0状态4 0 1 1 0 0 0 0 0 状态5 1 0 0 0 0 1 0 0状态61 0 0 0 001 0 0状态71 0 0 1 0 0 0 0转换成控制码为:交通灯控制码表 十六进制 二进制状态1 03H 00000011B

4、状态2 12H 00010010B状态3 02H 12H 00000010B 00010010B状态4 06H 00000110B状态5 21H 00100001B状态6 01H 21H00000001B00100001B状态7 09H 00001001B2)电路设计的思路:1、计时功能实现逻辑:通过8253计数器0和计数器1级联实现准确定时;用8255的A口低六位控制东西、南北路口交通灯的状态;灯的亮灭可直接由8086输出0,1控制。用8259A管理可屏蔽中断即开机初始化。采用两个计数器级联的方式, 并且计数器0工作于方式3用于产生方波信号,计数器1工作方式0,计数到时高电平信号。计数器1的

5、输出端OUT1接入8255芯片的PC0口,通过查询8255的C口的值,以完成计时功能。将计数器0的输出OUT0接到计数器1的输入端CLK1,而CLK0的输入采用1.19MHZ的时钟频率, 计数器0计数初值为59499=0E86BH,则OUT0=20HZ, 即计数器1的时钟频率为20HZ。当计数器1的记数初值为9时,0.5S后OUT1输出一高电平。8086通过读取8255C口的值,来决定对A口写入的数据。因此每隔0.5秒8086变换灯的状态,持续6次即完成3秒的闪烁功能。当计数器1的记数初值为899时,45S后OUT1输出一高电平。通过查询8255的C口PC0的状态改变,达到延时45秒的作用。同

6、理计数器1的计数初值分别为59、799时,分别为3、40秒的延时。2、 译码电路设计 通过分析8259、8253、8255各端口地址,设计合理的地址译码电路。8259的地址为20H、21H,8253的地址为40H、41H、42H、43H,8255的端口地址为0F0H、0F1H、0F2H、0F3H。故芯片的地址只与8086的地址的低8位有联系,不妨设高十二为全为1将它们相与后作为38译码器的始能信号E3。再分析发现8259、8253、8255各端口地址的低八位其中D2、D3均为0,将8086的地址总线的D2、D3作为38译码器的始能信号E1、E2。将8086的地址总线的D0、D1分别与8253和

7、8255的A0、A1连接,利用D4、D5、D6、D7构成译码电路。将8086的地址总线的D0与8259的A0连接,利用D2、D4、D5、D6、D7通过38译码器构成译码电路。具体见下图所示:3、 总体硬件电路构成框图82593片8282地址译码电路82538286数据缓冲器8255交通灯80868284A口控制灯提供时钟信号计数器1的OUT1向8255的C口PC0写8086通过读8255C口的数来记时,相当于构成了反馈系统4、 电路图:初始化8259、8253、8255且L1、L2亮等待8253延时3s时间是否到?否等待8253延时45s时间是否到?否等待8253延时3s时间是否到?否等待82

8、53延时3s时间是否到?否L2、L5亮L2亮,L5闪烁L2、L3亮L1、L6亮等待8253延时40s时间是否到?否L1亮,L6闪烁等待8253延时3s时间是否到?否L1、L4亮等待8253延时3s时间是否到?否3)软件流程图:4)程序代码:* MY8259_ICW1 EQU 20H ;实验系统中 8259的ICW1端口地址 MY8259_ICW2 EQU 21H ;实验系统中8259的ICW2端口地址 MY8259_ICW3 EQU 21H ;实验系统中8259的ICW3端口地址 MY8259_ICW4 EQU 21H ;实验系统中8259的ICW4端口地址 MY8259_OCW1 EQU 2

9、1H ;实验系统中8259的OCW1端口地址 MY8259_OCW2 EQU 20H ;实验系统中8259的OCW2端口地址 MY8259_OCW3 EQU 20H ;实验系统中8259的OCW3端口地址 MY8253_COUNT0 EQU 40H ;实验系统中8253计数器0端口地址 MY8253_COUNT1 EQU 41H ;实验系统中8253计数器1端口地址MY8253_COUNT2 EQU 42H ;实验系统中8253计数器2端口地址 MY8253_MODE EQU 43H ;实验系统中8253控制寄存器端口地址 MY8255_A EQU 0F0H ;实验系统中8255的A口地址 M

10、Y8255_B EQU 0F1H ;实验系统中8255的B口地址 MY8255_C EQU 0F2H ;实验系统中8255的C口地址 MY8255_MODE EQU 0F3H ;实验系统中8255的控制寄存器地址* DATA SEGMENT CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量 IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量 DATA ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,3508H INT 21H MOV IP_BAK,

11、 ES ;保存INTR原中断处理程序入口偏移地址 MOV CS_BAK, BX ;保存INTR原中断处理程序入口段地址 MOV AX,SEG INITIAL MOV DS,AX MOV DX,OFFSET INITIAL MOV AX,2508H INT 21H ;设置中断向量 MOV DX,MY8259_ICW1 ; 初始化实验系统中8259的ICW1 MOV AL,13H ;边沿触发、单片8259、需要ICW4 OUT DX,AL MOV DX, MY8259_ICW2 ;初始化实验系统中8259的ICW2 MOV AL,08H ;IR0中断类型号 OUT DX,AL MOV DX,MY8

12、259_ICW4 ;初始化实验系统中8259的ICW4 MOV AL,03H ;自动结束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1 MOV AL,0FEH ;打开IR0的屏蔽位 OUT DX,AL MOV AL,00H MOV DX, MY8259_OCW2 ;初始化实验系统中8259的OCW2,完成8259的初始化 OUT DX,AL QUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3发送查询命令 MOV AL,0CH OUT DX,AL IN AL,DX ;读出查询字 TEST AL,80H ;判断中断是否

13、已响应 JZ QUERY ;没有响应则继续查询 AND AL,01H CMP AL,00H JNE QUERY ;若不是IR0请求,继续查询 L4: INT 08H ;调用08H中断程序 CALL DELAY3S ;延时3秒 MOV DX,MY8255_A ;写8255的A口 MOV AL,12H OUT DX,AL ; L2、L5亮 CALL DELAY45S ;延时45秒 MOV CX, 03H ;周期1S,循环三次完成灯闪烁 L2: MOV DX,MY8255_A ;写8255的A口 MOV AL,02H OUT DX,AL ; L2亮 、L5灭 CALL DELAYHALFS ;延时0

14、.5秒 MOV DX,MY8255_A MOV AL,12H OUT DX,AL ; L2、L5亮 CALL DELAYHALFS ;延时0.5秒 DEC CX JNZ L2 ;L2亮,L5闪烁 MOV DX,MY8255_A ;写8255的A口 MOV AL,06H OUT DX,AL ; L2、L3亮 CALL DELAY3S ;延时3秒 MOV DX,MY8255_A ;写8255的A口 MOV AL,21H OUT DX,AL ; L1、L6亮 CALL DELAY45S ;延时40秒 MOV CX,03H ;周期1S,循环三次完成灯闪烁 L3: MOV DX,MY8255_A ;写8

15、255的A口 MOV AL,01H OUT DX,AL ; L1亮 、L6灭 CALL DELAYHALFS ;延时0.5秒 MOV DX,MY8255_A ;写8255的A口 MOV AL,21H OUT DX,AL ; L1、L6亮 CALL DELAYHALFS ;延时0.5秒 DEC CX ;L1亮,L6闪烁 JNZ L3 MOV DX,MY8255_A ;写8255的A口 MOV AL,09H OUT DX,AL ; L1、L4亮 CALL DELAY3S ;延时3秒 JMP L4 ;循环一次完成,跳到L4重新开始循环 MOV AH,4CH INT 21H ;返回DOS INITIA

16、L PROC ;中断类型号08H的中断子程序 MOV DX,MY8253_MODE ;对8253初始化 MOV AL,36H OUT DX,AL MOV AX, 0E86BH MOV DX,MY8253_COUNT0 OUT DX,AL MOV AL,AH OUT DX,AL ;计数器0工作方式3 ,OUT0为频率20HZ的方波 MOV DX, MY8255_MODE MOV AL,89H OUT DX,AL ;8255初始化完成 A口输出,C口输入 MOV DX,MY8255_A MOV AL,03H OUT DX,AL ;两个红灯L1、L2亮,灯初始化完成 IRET INITIAL END

17、P ;开机初始化完成 DELAY3S PROC ;延时3S子程序 MOV AL,51H MOV DX,MY8253_MODE OUT DX,AL MOV AL,59H MOV DX,MY8253_COUNT1 OUT DX,AL ;计数器1工作方式0 ,计数初值为59 L1: MOV DX, MY8255_C IN AL,DX CMP AL,01H LOOPNZ L1 RET DELAY3S ENDP DELAY45S PROC ;延时45S子程序 MOV AL,71H MOV DX,MY8253_MODE OUT DX,AL MOV AX,0899H MOV DX,MY8253_COUNT1

18、 OUT DX,AL MOV AL,AH OUT DX,AL ;计数器1工作方式0 ,计数初值为899 L5: MOV DX, MY8255_C IN AL,DX CMP AL,01H LOOPNZ L5 RET DELAY45S ENDP DELAYHALFS PROC ;延时0.5S子程序 MOV AL,51H MOV DX,MY8253_MODE OUT DX,AL MOV AL,09H MOV DX,MY8253_COUNT1 OUT DX,AL ;计数器1工作方式0 ,计数初值为9 L6: MOV DX, MY8255_C IN AL,DX CMP AL,01H LOOPNZ L6

19、RET DELAYHALFS ENDP DELAY40S PROC ;延时40S子程序 MOV AL,71H MOV DX,MY8253_MODE OUT DX,AL MOV AX,0799H MOV DX,MY8253_COUNT1 OUT DX,AL MOV AL,AH OUT DX,AL ;计数器1工作方式0 ,计数初值为799 L7: MOV DX, MY8255_C IN AL,DX CMP AL,01H LOOPNZ L7 RET DELAY40S ENDP CODE ENDS END START四、 设计总结设计心得:通过这次课程设计针对设计的内容和要求,我利用8086、8259

20、、8253、8255、8282、8286以及38译码器和门电路设计了交通灯数字控制系统。通过利用汇编,编写了软件控制程序。同时查阅资料,用PROTEL软件设计出了硬件系统。在这次课程设计的过程中,我无论是在关于X86系列的相关知识或在接口芯片的初始化及应用方面还是在利用所学到知识全面设计系统方面收获都很大。刚拿到设计题目觉得无从下手,经过仔细分析问题之后找到了行之有效的解决问方法。虽然六盏灯一共有七种不同的亮灭状态,其实只需用8255的A口的低六位不同状态即可控制。针对不同的延时时间,采用8253的计数器0和计数器1的级联可以准确定时。考虑到绿灯闪烁频率为1HZ,故让8253的计数器0的输出O

21、UT0为20HZ的方波作为计数器1的时钟频率。这样对8253计数器1的计数初值写不同的值即可实现不同的定时。本系统的核心计时方法是:8253计数器1的输出OUT1送给8255的C口的PC0,然后8086读8255的C口的值来判断是否改变灯的状态。8255的C口相当于控制系统中的反馈环节,是本系统的能够准确及时的原因所在。对于硬件系统的设计查阅相关资料,从而引入了8284、8282、8286芯片使硬件系统更加完善。硬件设计最大的问题是地址译码电路的设计,针对这一问题我先找出8259、8253、8255芯片的端口地址之间的联系再利用数字电子技术知识解决了地址译码电路问题。 通过设计交通灯数字控制系

22、统将软硬充分相结合,学会了很多有用的知识锻炼了软硬相互协调的能力。同时也增强了全面系统考虑问题的能力,以及硬件设计能力。可以说这次课程设计很成功,在自己学习独立思考的情况下找到了分析问题解决问题的方法。这对以后的学习和工作具有重要的指导意义!设计中存在的问题: 虽然这个系统用到了8259并编写中断子程序,但是仅仅应用于系统的开机初始化或复位。对于程序执行并没起到调用中断减轻系统负担的作用,有待改进。计时功能的实现是通过8086不断查询8255C口状态来实现的,加重了8086的负担不利于系统的快速执行。此外利用PROTEL软件花硬件系统图,虽然充分利用到总线的作用简化了电路连接问题,但是应用总线

23、时没有标号这是不规范的。如果是设计真正的硬件系统必须要符合电路绘制的要求,否则无法实现仿真和应用。对课程设计的建议: 虽然花了很长时间编写软件程序设计硬件系统,但这一切还是理论上的。汇编程序通过汇编、编译、链接生成、执行,但是却还是不知道能不能与硬件系统很好的配合。希望学校能提供机会和条件,让我们能够去真正将理论和实践相结合。 最后谢谢老师这个学期的指导和帮助!五、 参考资料1、王忠民等. 微型计算机原理. 西安:西安电子科技大学出版社. 2003年7月2、洪永强. 微机原理与接口技术. 北京:科学出版社. 2004年3、朱定华. 微机原理、汇编与接口技术. 北京:清华大学出版社 2005年4、周明德. 微机原理与接口技术实验指导与习题集. 北京:人民邮电出版社. 2002年

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信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 

客服