课程设计红绿灯.docx

上传人:b****7 文档编号:25820941 上传时间:2023-06-15 格式:DOCX 页数:15 大小:72.21KB
下载 相关 举报
课程设计红绿灯.docx_第1页
第1页 / 共15页
课程设计红绿灯.docx_第2页
第2页 / 共15页
课程设计红绿灯.docx_第3页
第3页 / 共15页
课程设计红绿灯.docx_第4页
第4页 / 共15页
课程设计红绿灯.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

课程设计红绿灯.docx

《课程设计红绿灯.docx》由会员分享,可在线阅读,更多相关《课程设计红绿灯.docx(15页珍藏版)》请在冰豆网上搜索。

课程设计红绿灯.docx

课程设计红绿灯

微机原理与接口技术课程设计任务书

一、设计题目:

交通灯设计

二、设计目的

⒈了解交通灯管理的基本工作原理

⒉熟悉8259A中断控制器的工作原理和应用编程

⒊熟悉8255A并行接口的各种工作方式和应用

⒋熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法

⒌掌握多位LED显示问题的解决

三、设计要求及主要技术指标

1、设计要求:

交通灯的设计:

2、确定总体电路原理方框图。

主要技术指标:

交通灯要求用秒表显示灯停留时间的长短,用12个led表示交通灯实际运行状态。

四、需要的主要电子元器件

8253定时器:

用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ7。

8255并口:

用做接口芯片。

8259中断控制器:

用于产生中断。

LED:

10个LED用于显示交通灯状态

五、设计报告总结。

1、对所得结果进行分析

2、分析讨论设计中出现的故障及其排除方法

3、心得体会

一、方案论证与比较

1.1方案提出

方案一:

采用8253产生1hz的时钟脉冲,通过8259中断,系统计时并实时显示,当时间从60到00时,系统调用函数切换红绿灯状态。

方案二:

采用8253的t0产生1hz的时钟脉冲,out0输出,clk1输入,计时,cpu实时读取计数值,并显示,当计数到60时,系统调用函数切换红绿灯状态。

1.2设计方案的论证和选择

在实际应用中,采用中断的方式进行计算,系统的可靠性比扫描的可靠性好,特别是在交通灯这种需要高可靠性的场合,故采用方案一。

二、系统的功能及设计框图

2.1系统的全部功能、要求及技术指标。

要完成本设计,首先必须了解交通路灯的亮灭规律。

设有一个十字路口,1、3为南,北方向,2、4为东,西方向,初始态为4个路口的红灯全亮。

之后,1、3路口的绿灯亮,2、4路口的红灯亮,数码显示管开始倒计时(60秒),1、3路口方向通车。

数码显示管的数值为零后,1、3路口的绿灯熄灭,1、3路口的红灯亮,同时2、4路口的绿灯亮,数码显示管重新置入初值,2、4路口方向开始通车。

数码显示管的数值为零后,2、4路口的绿灯熄灭,再切换到1、3路口方向。

之后,重复上述过程。

用8088做CPU,8253做定时器,8255做LED和数码显示管的接口芯片,8259做中断控制器。

数码显示管的初值定为60秒,8253定时时间为1秒,定时时间到引起中断,执行中断服务程序。

在中断服务程序中,检查数码显示管的数值是否为零,若为零,则改变1、3和2、4交通灯的状态,数码显示管置初值;否则,数码显示管当前值减1,交通灯状态不变。

2.2确定设计框图(系统包含的单元电路及结构)和总体设计方案

本系统设计的交通灯以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8259做中断控制器产生中断。

在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。

8253采用计数器0,工作于方式3,使8253的OUT0端输出周期性的脉冲信号。

信号频率为1hz,8253的OUT0端就会输出一个脉冲的信号,此信号接8259的IR7,当中断触发后,CPU即处理,使7段显示模块上的时间发生变化。

当倒计时到00秒时,系统调用函数切换交通灯状态。

2.3单元电路的分析与设计:

各功能模块电路的定性说明以及计算分析。

1、显示模块

显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由两个字节构成,分别保存秒的高位和低位。

硬件上由两个7段LED构成,软件上由扫描显示的方法实现。

显示时分为位端口地址和字形口地址,要将两者对应起来才能正确显示。

2、定时模块

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

由一片8253实现,选用定时器0,工作在方式3,输出值应为1s,其输出信号可作为8259的中断请求信号。

3、中断处理模块

中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒1次,中断程序该为时间按秒增加,并显示。

只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。

5、交通灯状态显示模块

交通灯状态显示模块实时显示交通灯状态,通过8255芯片,将状态显示。

1)8255交通灯电路图

 

2)8253方波产生电路图

3)8259中断控制电路图

3、源程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE,ES:

CODE

ORG3400H

H8:

JMPp8259

ZXKEQU0FFDCH

ZWKEQU0FFDDH

PAEQU0FFD8H

PBEQU0FFD9H

PCEQU0FFDAH

PCTLEQU0FFDBH

LEDDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H

BUFDB88H,00H,00H,00H,00H,00H

STADB01H

;MOVBX,0h

;MOV

Port0EQU0FFE0H

Port1EQU0FFE1H

P8259:

CLI

MOVDX,0FFE8H

MOVAL,36H

OUTDX,AL

MOVDX,0FFE5H

MOVAL,0ffH

OUTDX,AL

MOVAL,0b4H

OUTDX,AL

MOVAL,88H

MOVDX,PCTL

OUTDX,AL

P30:

MOVAL,75H

MOVDX,PA

OUTDX,AL

INCDX

MOVAL,0DH

OUTDX,AL

CALLWP;初始化

MOVAX,OFFSETINT8259

MOVBX,003CH

MOV[BX],AX

MOVBX,003EH

MOVAX,0000H

MOV[BX],AX

CALLFOR8259

movsi,0000h

STI

CON8:

CALLDIS

JMPCON8

;------------------------------------

INT8259:

cli

MOVBX,OFFSETBUF

pushAX

 

MOVAL,BYTEPTR[BX+5]

CMPAL,0

JNZok2

MOVAL,10

pushAX

MOVAL,BYTEPTR[BX+4]

CMPAL,0

JNZok1

MOVAL,6

ok1:

DECAL

MOVBYTEPTR[BX+4],AL

popAX

ok2:

DECAL

MOVBYTEPTR[BX+5],AL

MOVAX,[BX+4]

CMPAX,0

JNZQQ1

CMPSTA,1

JZp31

JMPp32

 

QQ1:

popAX

XX59:

MOVAL,20H

MOVDX,Port0

OUTDX,AL

movcx,0050h

xxx59:

pushcx

calldis

popcx

loopxxx59

popcx

movcx,3438h

pushcx

STI

IRET

X59:

MOVSI,0000H

CALLWP

JMPXX59

;==============================

P31:

MOVSTA,2

MOVDX,PA;切换1到2

MOVAL,0F3H

OUTDX,AL

INCDX

MOVAL,0CH

OUTDX,AL

CALLDELAY2

MOVDX,PA

MOVAL,0F7H

OUTDX,AL

INCDX

MOVAL,0DH

OUTDX,AL

CALLDELAY2

MOVDX,PA;切换1到2

MOVAL,0F3H

OUTDX,AL

INCDX

MOVAL,0CH

OUTDX,AL

CALLDELAY2

MOVDX,PA

MOVAL,0F7H

OUTDX,AL

INCDX

MOVAL,0DH

OUTDX,AL

CALLDELAY2

MOVDX,PA;切换1到2

MOVAL,0F3H

OUTDX,AL

INCDX

MOVAL,0CH

OUTDX,AL

CALLDELAY2

MOVDX,PA

MOVAL,0F7H

OUTDX,AL

INCDX

MOVAL,0DH

OUTDX,AL

CALLDELAY2

MOVDX,PA

MOVAL,0AEH

OUTDX,AL

INCDX

MOVAL,0BH

OUTDX,AL

JMPQQ1

P32:

MOVSTA,1

MOVDX,PA;切换2到1

MOVAL,9EH

OUTDX,AL

INCDX

MOVAL,07H

OUTDX,AL

CALLDELAY2

MOVDX,PA

MOVAL,0BEH

OUTDX,AL

INCDX

MOVAL,0FH

OUTDX,AL

CALLDELAY2

MOVDX,PA;切换2到1

MOVAL,9EH

OUTDX,AL

INCDX

MOVAL,07H

OUTDX,AL

CALLDELAY2

MOVDX,PA

MOVAL,0BEH

OUTDX,AL

INCDX

MOVAL,0FH

OUTDX,AL

CALLDELAY2

MOVDX,PA;切换2到1

MOVAL,9EH

OUTDX,AL

INCDX

MOVAL,07H

OUTDX,AL

CALLDELAY2

MOVDX,PA

MOVAL,0BEH

OUTDX,AL

INCDX

MOVAL,0FH

OUTDX,AL

CALLDELAY2

MOVAL,75H

MOVDX,PA

OUTDX,AL

INCDX

MOVAL,0DH

OUTDX,AL

JMPQQ1

FOR8259:

MOVAL,13H

MOVDX,Port0

OUTDX,AL

MOVAL,08H

MOVDX,Port1

OUTDX,AL

MOVAL,09H

OUTDX,AL

MOVAL,7FH;IRQ7

OUTDX,AL

RET

;---------------------------

WP:

MOVBUF,10H;初始化

MOVBUF+1,10H

MOVBUF+2,10H

MOVBUF+3,10H

MOVBUF+4,05H

MOVBUF+5,09H

;--------------------------------

DIS:

MOVCL,20H

MOVBX,OFFSETBUF

DIS1:

MOVAL,[BX]

PUSHBX

MOVBX,OFFSETLED

XLAT

POPBX

MOVDX,ZXK

OUTDX,AL

MOVAL,CL

MOVDX,ZWK

OUTDX,AL

PUSHCX

MOVCX,0100H

DELAY:

LOOP$

POPCX

CMPCL,01H

JZEXIT

INCBX

SHRCL,1

JMPDIS1

DELAY1:

MOVCX,0010H

DELY2:

CALLDELAY2

LOOPDELY2

POPCX

POPAX

RET

DELAY2:

PUSHCX

MOVCX,8000H

LOOP$

POPCX

RET

EXIT:

MOVAL,00H

MOVDX,ZWK

OUTDX,AL

RET

;--------------------------

CODEENDS

ENDH8

4、程序运行结果

将以上代码打入asm文件中,连接编译,装载,然后运行。

7段数码管由60开始倒计时,1秒减一,当数值为00时,系统调用交通灯状态函数,实现交通灯状态的切换,由状态1

(2)变为2

(1),黄灯闪三下,然后灭,对应的红灯灭-----绿灯亮,对应的绿灯没-----红灯亮。

5、课程设计总结

六、参考文献

1.冯博琴吴宁.微型计算机原理与接口技术.北京:

清华大学出版社,2007

2.吴宁陈文革.微型计算机原理及接口技术题解及实验指导.北京:

清华大学出版社,2007

3.杨立主.微型计算机原理及接口技术学习与实验指导.北京:

中国水利水电出版社,2008

附录1:

芯片管脚图

1)

8253

2)

8259

3)

8255

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

当前位置:首页 > 表格模板 > 合同协议

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

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