微机原理课程设计交通灯.docx

上传人:b****8 文档编号:8885928 上传时间:2023-02-02 格式:DOCX 页数:16 大小:50.70KB
下载 相关 举报
微机原理课程设计交通灯.docx_第1页
第1页 / 共16页
微机原理课程设计交通灯.docx_第2页
第2页 / 共16页
微机原理课程设计交通灯.docx_第3页
第3页 / 共16页
微机原理课程设计交通灯.docx_第4页
第4页 / 共16页
微机原理课程设计交通灯.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

微机原理课程设计交通灯.docx

《微机原理课程设计交通灯.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计交通灯.docx(16页珍藏版)》请在冰豆网上搜索。

微机原理课程设计交通灯.docx

微机原理课程设计交通灯

沈阳航空航天大学

 

课程设计报告

 

课程设计名称:

微机系统综合课程设计

课程设计题目:

带数字显示的交通灯

 

目录

第1章总体设计方案1

1.1课程设计的内容和要求1

1.2课程设计原理1

1.3课程设计思路2

第2章详细设计方案3

2.1实现方法3

2.2模块设计4

2.2.1主程序流程图________________________________________________4

2.2.2中断程序流程图______________________________________________5

2.3程序连线图6

第3章调试及结果分析7

3.1调试步骤及方法7

3.2实验结果7

参考文献8

附录(源程序)9

第1章总体设计方案

1.1课程设计的内容和要求

一、课程设计内容:

1.通过调研,了解交通灯的工作过程;

2.用实验箱中的数码管和红绿发光二极管实现带数字显示的交通灯;

3.两个数码管显示干线等待时间,另两个数码管显示支线等待时间;

4.干线等待时间为30S,支线等待时间为60S。

二、课程设计要求:

1.认真查阅相关资料;

2.独立设计、调试并通过知道教师现场验收;

3.撰写课程设计报告。

1.2课程设计原理

根据课设题目的要求,按照时间控制原则,利用8255A并行接口原则和8253定时器原则,采用8259时间中断方式和8279数码管显示设计一套十字路口交通灯管理系统,干线通行时间(或支线禁止时间)60秒,支线通行时间(或干线禁止时间)30秒,周而复始。

 

1.3课程设计思路

定时模块是为8259提供中断请求信号的。

由一片8253实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。

中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间减少一秒,从而达到动态显示的效果。

显示模块是由一块8255A芯片与LED红绿显示灯组成,由8255A来接收信号,从而控制红绿灯亮灭的时间,实现交通灯控制。

计时模块是由8279实现的,通过计时器和中断同时控制实现数码管显示。

 

第2章详细设计方案

2.1实现方法

本程序由主程序、定时中断子程序和外部中断子程序组成。

主程序主要负责系统初始化和等待中断。

定时中断子程序主要负责数码管显示刷新和红绿灯各种状态切换。

8253计数的起由8255的PA0控制,8255的PA0输出1时,8253开始计数,通过8279显示在数码管上,交通灯按正常状态切换工作,PA0输出0时,计数器停止工作,交通灯不再按正常状态切换。

8253开始计数后每1s发出一个中断申请信号,在中断子程序中先刷新数码管,然后判断当前状态,进入相应的处理程序进行处理。

 

2.2模块设计

2.2.1主程序流程图

图2.1主程序流程图

 

2.2.2中断程序流程图

图2.2中断程序流程图

 

2.3程序连线图

图2.3程序连线图

 

第3章调试及结果分析

3.1调试步骤及方法

程序编好输入进电脑,将AEDK实验箱的硬件连接好,再进行调试,分步进行调试,看看每部分是否完善,再进行改错,主要检查中断是否产生,所有模块都能正常工作为止,全速运行得出想要的结果。

3.2实验结果

全速运行下,数码管上显示是60和00,LED灯显示是东西是红色的,南北是绿色的,并且60是递减变化,每次减1操作,当变为00时,红灯变绿灯,绿灯变红灯,这时00变成30,继续递减操作,每次减1,直到变成00为止,红绿灯也变为相反,周而复始。

 

参考文献

[1]龚尚福.微机原理与接口技术[M].西安:

西安电子科技大学出版社,2003

[2]沈美明,温冬蝉.IBM-PC汇编语言程序设计[M].北京:

清华大学出版社,2001

[3]郑初华.汇编语言、微机原理及接口技术[M].北京:

电子工业出版社,2006

[4]王忠民.微型计算机原理[M].西安:

西安电子科技大学出版社,2003

 

附录(源程序)

C8279EQU22AH

D8279EQU228H

C82590EQU220H

C82591EQU221H

STACKSEGMENT

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK

MAIN:

 

JMPAA

tabDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;0~9

NUMDB03H,05H,01H,02H,02H,07H,01H,09H

OLDKEYDB00H

FLAGDB00H

NOWDB00H

TIMEDB8DUP(0)

 

AA:

MOVAX,CS

MOVDS,AX

CLI

CALLINIT8255

CALLINIT8259

CALLINIT8253

CALLi8279

PUSHDI

LEADI,TIME

MOVBYTEPTR[DI+7],0

MOVBYTEPTR[DI+6],3

MOVBYTEPTR[DI+5],0

MOVBYTEPTR[DI+4],0

MOVBYTEPTR[DI+3],0

MOVBYTEPTR[DI+2],0

MOVBYTEPTR[DI+1],0

MOVBYTEPTR[DI],0

POPDI

CALLDIS_TIME

STI

JMP$

 

i8279:

MOVDX,C8279

MOVAL,0

OUTDX,AL

MOVAL,38H

OUTDX,AL

RET

INIT8255:

MOVAL,82H

MOVDX,213H

OUTDX,AL

MOVDX,210H

MOVAL,0FFH

OUTDX,AL

RET

INIT8259:

MOVAL,13H

MOVDX,220H

OUTDX,AL

MOVDX,221H

MOVAL,30H

OUTDX,AL

MOVAL,03H

OUTDX,AL

MOVAL,0FEH;OCW1

OUTDX,AL

INAL,DX

MOVAX,0

MOVDS,AX

MOVSI,30H*4

MOVAX,OFFSETINTR0

MOV[SI],AX

MOVAX,CS

MOV[SI+2],AX

MOVAX,CS

movds,ax

RET

INIT8253:

MOVAL,36H

MOVDX,203H

OUTDX,AL

MOVAX,61440

MOVDX,200H

OUTDX,AL

MOVAL,AH

OUTDX,AL

RET

RUN_TIME:

PUSHAX

PUSHDX

PUSHCX

PUSHBX

PUSHDI

LEADI,TIME

CMPFLAG,1

JEZHUGAN

MOVBL,BYTEPTR[DI+7]

CMPBL,0

JEc7;有进位

DECBL;加百分之一秒

MOVBYTEPTR[DI+7],BL

JMPaddend0

c7:

MOVBYTEPTR[DI+7],9

MOVBL,BYTEPTR[DI+6]

CMPBL,0

JEc6

DECBL;有进位

MOVBYTEPTR[DI+6],BL

JMPaddend0

c6:

MOVBYTEPTR[DI+6],0

MOVBYTEPTR[DI+7],0

MOVFLAG,1

MOVBYTEPTR[DI+1],0

MOVBYTEPTR[DI],6

ZHUGAN:

MOVBL,BYTEPTR[DI+1]

CMPBL,0

JEc1;有进位

DECBL;加百分之一秒

MOVBYTEPTR[DI+1],BL

JMPaddend0

c1:

MOVBYTEPTR[DI+1],9

MOVBL,BYTEPTR[DI]

CMPBL,0

JEc0

DECBL;有进位

MOVBYTEPTR[DI],BL

JMPaddend0

c0:

MOVBYTEPTR[DI+1],0

MOVBYTEPTR[DI],0

MOVFLAG,0

MOVBYTEPTR[DI+7],0

MOVBYTEPTR[DI+6],3

addend0:

MOVAL,20H

MOVDX,C82590

OUTDX,AL

POPDI

POPBX

POPCX

POPDX

POPAX

RET

DIS_TIME:

PUSHDI

MOVAX,CS

MOVDS,AX;显示时间

LEABX,tab

MOVAL,90H

MOVDX,C8279

OUTDX,AL

MOVDX,D8279

LEADI,TIME

MOVAL,BYTEPTR[DI+7]

XLAT

OUTDX,AL

MOVAL,BYTEPTR[DI+6]

XLAT

OUTDX,AL

MOVAL,40H

OUTDX,AL

MOVAL,40H

OUTDX,AL

MOVAL,40H

OUTDX,AL

MOVAL,40H

OUTDX,AL

MOVAL,BYTEPTR[DI+1]

XLAT

OUTDX,AL

MOVAL,BYTEPTR[DI]

XLAT

OUTDX,AL

POPDI

RET

DIS_DENG:

CMPFLAG,1

JEDISZHUGAN

MOVAL,01H

MOVDX,210H

OUTDX,AL

JMPENDD

DISZHUGAN:

MOVAL,02H

MOVDX,210H

OUTDX,AL

ENDD:

NOP

RET

INTR0PROC

PUSHAX

PUSHDX

PUSHCX

PUSHBX

PUSHDI

CALLRUN_TIME

CALLDIS_TIME

CALLDIS_DENG

POPDI

POPBX

POPCX

POPDX

POPAX

IRET

CALLDIS_DENG

INTR0ENDP

CODEENDS

ENDMAIN

 

课程设计总结:

经过这次课程设计,我对汇编语言和各个接口芯片8259、8279、8253、8255有了进。

通过和同学的交流,开阔了自己的想法,通过使用更好的方法,程序更加高效。

在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。

一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。

程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。

因此在整个设计过程中大部分时间是用在程序上面的。

很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。

因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。

通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有到的困惑,经过一番努力才得以解决。

整个课设过程中,我得到许多老师和同学的无私帮助和鼓励,这也是课设的另一个收获。

指导教师评语:

 

指导教师(签字):

      年月日

课程设计成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1