课程设计红绿灯文档格式.docx
《课程设计红绿灯文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计红绿灯文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
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
MOVAL,0b4H
MOVAL,88H
MOVDX,PCTL
P30:
MOVAL,75H
MOVDX,PA
INCDX
MOVAL,0DH
CALLWP;
初始化
MOVAX,OFFSETINT8259
MOVBX,003CH
MOV[BX],AX
MOVBX,003EH
MOVAX,0000H
CALLFOR8259
movsi,0000h
STI
CON8:
CALLDIS
JMPCON8
;
------------------------------------
INT8259:
cli
MOVBX,OFFSETBUF
pushAX
MOVAL,BYTEPTR[BX+5]
CMPAL,0
JNZok2
MOVAL,10
MOVAL,BYTEPTR[BX+4]
JNZok1
MOVAL,6
ok1:
DECAL
MOVBYTEPTR[BX+4],AL
popAX
ok2:
MOVBYTEPTR[BX+5],AL
MOVAX,[BX+4]
CMPAX,0
JNZQQ1
CMPSTA,1
JZp31
JMPp32
QQ1:
popAX
XX59:
MOVAL,20H
MOVDX,Port0
movcx,0050h
xxx59:
pushcx
calldis
popcx
loopxxx59
movcx,3438h
IRET
X59:
MOVSI,0000H
CALLWP
JMPXX59
==============================
P31:
MOVSTA,2
MOVDX,PA;
切换1到2
MOVAL,0F3H
MOVAL,0CH
CALLDELAY2
MOVAL,0F7H
MOVAL,0AEH
MOVAL,0BH
JMPQQ1
P32:
MOVSTA,1
切换2到1
MOVAL,9EH
MOVAL,07H
MOVAL,0BEH
MOVAL,0FH
FOR8259:
MOVAL,13H
MOVAL,08H
MOVDX,Port1
MOVAL,09H
MOVAL,7FH;
IRQ7
RET
---------------------------
WP:
MOVBUF,10H;
MOVBUF+1,10H
MOVBUF+2,10H
MOVBUF+3,10H
MOVBUF+4,05H
MOVBUF+5,09H
--------------------------------
DIS:
MOVCL,20H
DIS1:
MOVAL,[BX]
PUSHBX
MOVBX,OFFSETLED
XLAT
POPBX
MOVDX,ZXK
MOVAL,CL
MOVDX,ZWK
PUSHCX
MOVCX,0100H
DELAY:
LOOP$
POPCX
CMPCL,01H
JZEXIT
INCBX
SHRCL,1
JMPDIS1
DELAY1:
MOVCX,0010H
DELY2:
LOOPDELY2
POPAX
DELAY2:
MOVCX,8000H
EXIT:
MOVAL,00H
--------------------------
CODEENDS
ENDH8
4、程序运行结果
将以上代码打入asm文件中,连接编译,装载,然后运行。
7段数码管由60开始倒计时,1秒减一,当数值为00时,系统调用交通灯状态函数,实现交通灯状态的切换,由状态1
(2)变为2
(1),黄灯闪三下,然后灭,对应的红灯灭-----绿灯亮,对应的绿灯没-----红灯亮。
5、课程设计总结
六、参考文献
1.冯博琴吴宁.微型计算机原理与接口技术.北京:
清华大学出版社,2007
2.吴宁陈文革.微型计算机原理及接口技术题解及实验指导.北京:
3.杨立主.微型计算机原理及接口技术学习与实验指导.北京:
中国水利水电出版社,2008
附录1:
芯片管脚图
1)
8253
2)
8259
3)
8255