微机原理与接口技术交通灯设计Word格式.docx

上传人:b****3 文档编号:6190646 上传时间:2023-05-06 格式:DOCX 页数:12 大小:54.26KB
下载 相关 举报
微机原理与接口技术交通灯设计Word格式.docx_第1页
第1页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第2页
第2页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第3页
第3页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第4页
第4页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第5页
第5页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第6页
第6页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第7页
第7页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第8页
第8页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第9页
第9页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第10页
第10页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第11页
第11页 / 共12页
微机原理与接口技术交通灯设计Word格式.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术交通灯设计Word格式.docx

《微机原理与接口技术交通灯设计Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术交通灯设计Word格式.docx(12页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术交通灯设计Word格式.docx

(1)分析问题——各端口应用——代码实现

(2)具体应用(8255的B口做灯信号的输出,A口做位选码的输出,C口做LED的输出。

(3)实验内容

1、系统中,8259采用初始化命令字ICW1、ICW2、ICW4和操作命令字OCW1,允许内部中断IRQ0和外部中断IRQ1

2、系统中,8255选用(10000000)方式选择字,A组工作0方式,A端口输出,PC3-PC7输出,B组0方式,B端口输出,PC3-PC0输出

3、系统中,8253选用(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制

2、程序流程

3、电路原理图

4、设计代码

STACKSEGMENTSTACK

DW64DUP(?

STACKENDS

DATASEGMENT

TIMERDB00H,30H;

IRQ0中断次数,通行剩余时间(A道30秒,B道30秒)初始设为B道通行

TABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;

七段码,用于显示时间,顺序不可调换

DISOFFDB00H,00H,00H,00H;

LED显示器缓冲区,数字(剩余时间)的个位和十位

RODDB00H;

当前道路通行状态(00:

为A通行道;

01为B通行)

LIGHTDB0D7H;

信号灯的输出信号(11010111)

KK1DB00H;

暂停开关KK1计数

LIGHTZTDB00H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,0000H;

数据段清零

MOVDS,AX

;

填写中断向量表

MOVAX,OFFSETIRQ0;

提取IRQ0的中断处理程序的偏移地址

ADDAX,2000H;

加载时IP=2000H(绝对地址)

MOVSI,0020H;

中断号0的矢量地址为(20H-23H)

MOV[SI],AX;

填写中断处理程序的偏移地址写进中断向量表

MOVAX,0000H

MOVSI,0022H

填写中断处理程序的段地址写进中断向量表

MOVAX,OFFSETIRQ1

ADDAX,2000H

MOVSI,0024H;

中断号1的矢量地址为(24H-27H)

MOV[SI],AX

MOVSI,0026H

加载数据段

MOVAX,DATA

MOVDS,AX

8259初始化

MOVAL,13H;

8259初始化ICW1(00010011)单片方式需写ICW4

OUT20H,AL;

端地址A0=0

MOVAL,08H;

ICW2(00001000)中断向量号的高五位(000001)

OUT21H,AL

MOVAl,01H;

ICW4(00000001)一般全嵌套,非缓冲,非自动中断结束,十六位机系统

OUT21H,AL;

特征位:

D7-D5=000

MOVAL,0FCH;

OCWl允许IRQ0、IRQ1中断

8255初始化

MOVAL,80H;

(10000000)方式选择字,A组工作0方式,A端口输出,PC3-PC7输出,B组0方式,B端口输出,PC3-PC0输出

OUT63H,AL

初始化8253

MOVAL,35H;

(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制

OUT43H,AL

MOVAX,380;

定时(频率乘以时间)

OUT40H,AL;

低字节

MOVAL,AH

高字节

STI;

开中断(允许CPU接收中断)

M:

CALLDISP2

CMPKK1,1

JZZT;

调用时间显示函数

CMPTIMER+1,04H;

判断是否到了最后4秒,到了则跳转

JZR1

CMPTIMER+1,00H;

判断通行时间是否结束,到了则跳转

JZR2

JMPDISP1;

如时间大于五秒,则直接按当前方式显示信号灯

R1:

CMPROD,00H;

如到了最后五秒,则判断是A道通行否?

ROD=00H为A道

JZR12;

如是A道通行,则改变状态

R11:

MOVLIGHT,7BH;

(01111110)改变为A道红,B道黄

信号输出

R12:

MOVLIGHT,0B7H;

(10110111)改变为A道黄,B道红

JMPDISP1

R2:

改变通行状态

JZR22

R21:

MOVLIGHT,0D7H;

如果当前B道通行结束,则切换为A道

MOVROD,00H

MOVTIMER+1,30H;

A道通行时间30秒

JMPDISP1

R22:

MOVROD,01H;

如果当前A道通行结束,则切换为B道ROD=01H为B道

MOVLIGHT,7DH

MOVTIMER+1,30H

JMPDISP1;

B道通行时间30秒

ZT:

JMPM

DISP1:

;

灯信号输出函数

MOVAL,LIGHT;

将灯信号输出到8255的B口

OUT61H,AL

STI

IRQ0:

PUSHAX;

现场保护

PUSHCX

PUSHF

MOVAL,TIMER;

取80次中断请求为一秒

INCAL

MOVTIMER,AL

CMPAL40H;

1秒判断?

JNEM1;

不到则跳转

MOVAL,00H;

毫秒数清零

MOVAL,TIMER+1;

剩余时间减1

SUBAL,01H

DAS;

调整为压缩BCD码

MOVTIMER+1,AL

M1:

MOVAL,20H;

中断复位

OUT20H,AL

POPF

POPCX

POPAX

STI

IRET

IRQ1:

;

暂停(恢复)

PUSHAX

PUSHF

MOVAL,KK1

CMPAL,00H;

判断当前的状态:

00为通行,01为暂停

JNEM2

INCAL;

改变当前状态

MOVKK1,AL

MOVAL,0FDH;

(11111101)关IRQ0中断,开IRQ1中断

OUT21H,AL

MOVAL,LIGHT

MOVLIGHTZT,AL;

///////////////////////////////////////////////////////////

MOVAL,77H;

(01110111)大、小道均为红灯

OUT61H,AL

JMPM3

M2:

;

恢复

MOVAL,00H

MOVKK1,AL

MOVAX,LIGHTZT;

//////////////////////////////////////////////////////////////////

MOVAL,0FCH;

(11111100)开IRQ0、IRQ1中断

M3:

MOVAL,20H

DISP2:

时间显示函数

AL=30HAX=?

30H

ANDAL,0FH;

AX=0000H

MOVDISOFF+3,AL;

DISOFF+3=00HDISOFFDB03H,00H,03H,00H

MOVDISOFF+1,AL;

DISOFF+1=00H

AL=30H

MOVCL,04H;

CL=04H

SHRAL,CL;

AL=03H

MOVDISOFF+2,AL;

DISOFF+2=03H

MOVDISOFF,AL;

DISOFF=03H

MOVSI,OFFSETDISOFF;

缓冲区的偏移地址

MOVDL,0F7H;

(11110111)将位选码初值送DL

MOVAL,DL;

AL=0F7H

AGAIN:

OUT60H,AL;

从A口输出位选码

MOVAL,[SI]

MOVBX,OFFSETTAB;

七段码的偏移地址AX=0003HBX=TAB

ANDAX,00FFH

XLAT;

MOVAL,BX+[AX];

将显示七段码送AL

OUT62H,AL;

将AL转换成七段码从B口输出

CALLDALLY;

调用延时1ms子程序

INCSI;

SI=SI+1

MOVAL,DL

TESTAL,01H;

4位显示完否?

JZM4

RORAL,01H;

DL循环右移一位

MOVDL,AL

JMPAGAIN

M4:

RET

DALLY:

循环256次

MOVCX,0010H;

延时子程序

T1:

MOVAX,0010H

T2:

DECAX

JNZT2

LOOPT1

CODEENDS

ENDSTART

六、心得体会

这周关于交通灯的设计是对我来说就是一次挑战,虽然说代码并非是我自己写的,可以说我是参考别人的,但是理解所有的设计代码我确实也花了不少时间,我除了要熟悉8259、8255、8253这些芯片,还得将它们合理的利用起来,由于之前对汇编知识的掌握相当差,理解起来是相当的困难,但是庆幸的事,我向同学和老师咨询中吸收了不少知识。

虽然说之前在课上学了这些理论知识,但如果没在实践中利用,你根本就不会发现自己到底是不是真的掌握了,这次我算是明白了,很多一部分的知识还是需要我自己在课下去补充。

在学习中,我们总是存在着局限性,在实践中,我们也存在着被动性,这些都是需要我们改正的地方。

实践是建在理论知识的基础上,所以当你要做一个实验时,没有一定的理论知识是不够的,和合理的将二者结合。

每次实践也是一次经验的积累,人只有在积累经验中方能成长。

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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