ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:19.15KB ,
资源ID:573116      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-573116.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(交通灯课程设计.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

交通灯课程设计.docx

1、交通灯课程设计1需求分析在当今社会里,交通越来越发达,车辆也越来越来多,由此也带来了大量交通问题。在本次课程设计中,我们针对现实生活中常看到的红绿灯,运用汇编语言及接口技术来模拟十字路口的交通灯,对交通灯进行控制,并实现一定的功能。我们通过一些接口芯片:定时/计数器8253,并行接口8255A,中断控制器8259A和8086 计算机的硬件连接,通过8253 定时及编延时子程序的方法(设备条件有限,不能依靠纯硬件实现)、利用8259 的中断功能及8255A 并口输出数据功能做了一实时操作系统,来模拟对十字路口交通灯的控制。具体如下:(1)用8253 计时器来完成时间的设定;(3)用8259 中断

2、控制器来进行紧急情况处理,如警车执行任务等情况;(4)通过8255A 并口来控制LED 发光二极管的亮灭,输出为0 则亮,输出为1 则灭;(5)用8255 来输出绿灯的倒计时间。2设计方案及分工在这个方案里,我们将此设计分为5 个模块,即:实现电路设计、连接电路以及各模块间整合的模块、实现交通灯循环的模块、对中断进行处理的模块、实现绿灯倒计时的显示模块、实现夜间控制模块。具体分工如下:xx:实现8253、电路设计、连接电路以及各模块间整合的模块xx:实现夜间控制模块xx:实现交通灯循环的模块xx: 对中断进行处理的模块xx: 实现绿灯倒计时的显示模块我们想通过这次设计,具体实现以下功能:以80

3、86CPU 为核心设计一个交通灯控制系统,通过8255 并口来控制LED 发光二级管的亮灭,输出0 为亮,输出一为灭;用8253 来实现一个定时器(隔一定时间发生一边沿跳变,引发8259 中断);用8259 来实现对中断的处理;设有一个十字路口,东西方向与南北方向各有一个红绿灯,初始状态为东西路口的红灯亮南北路口的绿灯,南北方向的路口通车,并显示南北路口绿灯的倒计时间。延迟一定时间之后,南北路口与东西路口都为黄灯亮,延迟一定的时间后,南北方向的红灯亮,东西路口的绿灯两,东西方向的路口通车,并显示东西路口的绿灯倒计时间。延迟一定时间后直接跳变为东西方向的红灯亮,南北路口的绿灯亮。如上所述循环一定

4、次数后假设进入晚上,屏幕上显示Good Night!此时这两个路口的黄灯开始闪烁,数码管清零并且闪烁。延迟一定时间后假设进入早晨并在屏幕上显示Good Night!并实现交通灯的循环。如果遇到紧急情况,采取紧急中断并且两个方向路口的红灯全亮确保紧急情况得到妥善处理,并且不管。在紧急情况中断处理模块里通过拨动按钮KK2 来触发中断,使各个路口的灯全显示红灯,并在屏幕上输出Waring!中断完成后跳回原来的状态,继续运行。 3.各个模块的实现3.1交通灯循环模块(XX)311设计思想十字路口分为南北方向和东西方向,各个方向有红黄绿三灯,其循环过程如下:1:东西方向路口的红灯亮,南北路口的绿灯亮;2

5、:东西路口与南北路口都为黄灯亮;3:东西方向路口的绿灯亮,南北方向路口的红灯亮;4:不经过黄灯亮,直接跳变为状态1;5:按如上过程循环;312流程图图3-1 8255 并口输出流程图313具体实现用8255 控制交通灯的循环,具体状态如下(0:灯亮1:灯灭)表1 交通灯循环状态表状态D7(东西红)D6(东西黄)D5(东西绿)D4(南北红)D3(南北黄)D2(南北绿)D1D01011110112101101113110011114011110118255 初始化: A 口输出B 口输出C 口输出工作在方式08255 控制字为: 1 0 0 0 0 0 0 0,即80H32实现绿灯倒计时模块(XX

6、)321设计思想十字路口在东西方向和南北方向各有一个绿灯倒计时显示,建一个Table 存放字模。当东西路口为绿灯时在第一个数码显示管上显示剩余时间。首先让BX 指向Table 的首址,将计数器中当前DL 中的值赋给AL,通过相应的加减然后在Table 中找出相应的字模通过8255 赋给数码显示管,本次课程设计用的是静态显示,当DL 中的是发生变化时数码管上显示的数字也随着变化,以次来实现在数码管上显示绿灯的倒计时间。当南北路口为绿灯时,过程与上面的描述类似。33实现夜间控制模块(XX)331设计思想由于十字路口的交通灯是按一定的方式和固定时间进行循环的,并且每循环一次所需时间为一秒,所以,根据

7、C=T/L(C 为白天交通灯循环的次数, T 为白天(6:0024:00)的总时间长度,L 为交通灯循环一次的时间长度)可计算出白天交通灯循环的次数,由白天交通灯循环的次数便可判断出是否让系统进入夜间控制,因此设计一个记录白天交通灯当前循环次数的变量加以记录,并将此变量与预设白天循环次数进行比较即可。当系统判断出应进入夜间控制后,将四个方向的四部交通灯全部变为黄灯闪烁,并让四部计时器(LED)于黄灯交替闪烁。黄灯闪烁的次数根据C=T/L(C为夜间交通灯黄灯闪烁的次数,T为夜间(24:006:00)的总时间长度,L为交通灯黄灯和计时器(LED)闪烁一次的时间长度)计算得出,并将此值作黄灯闪烁的设

8、定值,当黄灯闪烁次数与设定值相等时,系统便转换为白天控制模式。34中断处理模块(XX)341设计思想定时器8253 连接着IRQ0,每当定时一定时间就可以触发IRQ0 中断程序,也是主程序;同时IRQ7 连接着一边沿触发,来处理应对紧急情况。35实现计数器模块(XX)351设计思想由8253 作为一定时器,每隔一定时间引发一次IRQ0 中断,中断服务程序中有一变量记录着时间值,从30H 开始,依次累加,直到3AH,该值再变为30H。依据这个值,系统在每个值下会有着对应的状态。如此往复,来实现对交通灯的模拟。在这个值基础上,另有一变量,它在时间值走完一个时序循环,它自加一,当达到一定数值,就会进

9、入夜间模式。当该模式完成时,该变量清零,再次进入正常工作模式。352流程图 等待初始化添IRQ0中间断量初始化8255初始化8259初始化8253初始化时间值 主程序流程图 4源代码DATA SEGMENTWE DW ?YK DB ?开始添IRQ0 中断向量初始化8255等待初始化8259初始化8253初始化时间值ZLC DB ?B2 DB ?TIME DW ?STRING1 DB 0AH,0DH,Good Night!,00HSTRING2 DB 0DH,Good Morning!,0AH,00HSTRING3 DB 0DH,WARNING!,0DH,00HTABLE DB 66H,4FH,

10、5BH,06HDATA ENDSSTACK SEGMENT STACKDW 64 DUP(?)STACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE, DS:DATASTART:MOV AX,DATAMOV DS,AXPUSH DS ; DS:00 压栈MOV AX,0000HMOV DS,AX ;置数据段MOV AX,OFFSET IRQ0ADD AX,2000HMOV SI,0020HMOV SI,AXMOV AX,0000HMOV SI,0022HMOV SI,AXMOV AX,OFFSET IRQ7ADD AX,2000HMOV SI,003CHMOV

11、SI,AXMOV AX,0000HMOV SI,003EHMOV SI,AXPOP DSMOV AL,80H ;8255MOV DX,63HOUT DX,ALMOV AL,0FCH ;8259OUT 21H,ALMOV AL,15H ;8253OUT 43H,ALMOV AL,0FFHOUT 40H,ALMOV DL,30HMOV ZLC,30HA1: STIJMP A1IRQ0:CALL WPMOV AH,01HMOV AL,DLCMP AL,3AHJNZ A2INC ZLCCMP ZLC,32H ;与换行数比较JNZ N1CALL ZPP ;调用子程序N1: MOV AL,0DH ;换行I

12、NT 10HMOV AL,30HA2: INT 10HINC AXMOV YK,AL ;YK=ALCMP DL,3AH ;DL 与3A 比较JNZ W1 ;跳向W1MOV DL,30H ;相等则令DL=30HW1: MOV AH,DLCALL WJJ ;从B 口输出MOV AL,YKMOV DL,ALMOV AX,0120HINT 10HMOV TIME,0099H ;变量TIME 赋值,延时子程序起作用CALL DALLYMOV AL,20HOUT 20H,ALIRETIRQ7: mov time,0660hMOV AL,01110111BOUT 61H,ALMOV AH,06HMOV BX

13、,OFFSET STRING3INT 10Hcall DALLYmov al,20hout 20h,almov time,0020hIRETWJJ:CMP AH,34HJL HONGCMP AH,35HMOV AL,1111BOUT 60H,ALJL HUANGCMP AH,35HJG LVHONG:MOV AL,7DHMOV DX,61HOUT DX,ALMOV BX,OFFSET TABLEMOV B2,0111BCALL CHENXIJMP XXHUANG:MOV AL,0BBHMOV DX,61HOUT DX,ALJMP XXLV:MOV AL,0D7HMOV DX,61HOUT DX

14、,ALMOV BX,OFFSET TABLEMOV B2,1110BCALL CHENXIADD AH,06HXX:RETZPP:PUSH DXPUSH AXMOV AL,1111BOUT 60H,ALMOV AH,06H ;显示晚上提示信息MOV BX,OFFSET STRING1 ;取STRING1 的地址INT 10H ;显示MOV CX,08HMOV TIME,0060H ;变量TIME 赋值,延时子程序起作用ZP:CALL WPMOV AL,0BBHMOV DX,61HOUT DX,ALCALL DALLYMOV AL,0FFHMOV DX,61HOUT DX,ALCALL DALL

15、YLOOP ZPMOV AH,06H ;显示早上提示信息MOV BX,OFFSET STRING2INT 10H ;显示POP AXPOP DXMOV ZLC,30HRETWP:PUSH AXPUSH BXCLI ;屏蔽IRQ0MOV AL,01HOUT 21H,ALMOV AL,68HOUT 20H,ALSTIMOV AL,48HOUT 20H,ALMOV AL,00HOUT 21H,ALPOP BXPOP AXRETCHENXI:PUSH AXPUSH BXMOV AL,B2OUT 60H,ALSUB AH,30HMOV AL,AHXLATOUT 62H,ALPOP BXPOP AXRET

16、DALLY: PUSH AXMOV AX,TIMEMOV WE,AXA3: MOV AX,0560HA4: DEC AXJNZ A4DEC WEJNZ A3POP AXRETCODE ENDSEND START5设计心得通过本次课程设计,我们熟悉了芯片8253、8259、8255 的功能和应用。学会了用汇编语言设计一个程序的方法。虽然程序中有一部分是现成的,但我们还是通过查书或问老师的方式读懂了它的思路。在实现数码管显示数字的过程中,我们学会了先画流程图再编写程序的良好习惯,它有利我们理清思路,更快更简洁地编写出程序。在用到8259、8255 芯片时,通过编程进一步掌握了它们的功能。本次课程设计提高我们的自学能力和合作精神。在实现计数功能部分,可以用硬件也可以用软件实现,我们选择了硬件即通过8253 来实现。在成功调试并运行后,我们不忘去尝试能否用软件实现。在编程的过程中遇到了许多细节方面的问题,我们通过讨论一起解决了一些问题。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2