微机原理课设.docx

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

微机原理课设.docx

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

微机原理课设.docx

微机原理课设

1设计任务描述

1.1设计题目:

交通信号灯设计

1.2设计要求

1.2.1设计目的

(1)查阅可编程并行芯片8255或其他相关资料;

(2)用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。

1.2.2基本要求

(1)利用微机原理试用箱,采用两组红,黄,绿发光二极管来模拟A,B两路交差路口的信号控制;

(2)按实际交通灯控制规程控制。

1.2.3发挥部分

(1)延时程序。

(2)中断程序。

(3)当路口发生事故时,强行A,B路口红灯全亮。

 

2设计思路

通过并行接口芯片8255和8086/88计算机的硬件连接,及与单位脉冲和开关及显示单元的连接,用中断控制器8259和延时的方法,来实现十字路口交通灯的模拟控制和强制故障。

把LED显示器上的灯表示为红灯,黄灯和绿灯分别接在8255的A,B端口,用8255的A口控制东西方向的交通灯,用8255的B口控制南北方向的交通灯,用中断控制器8259的MIR7接单次脉冲单元的KK1来模拟紧急交通事故的发生(强制东西和南北方向的红色交通灯全亮),利用8255的C口接单次脉冲单元的KK2来进行还原。

当程序正常运行时,根据交通规则,依次为东西方向的绿灯和南北方向的红灯亮,通过延时程序进行一段延时后,东西方向的绿灯灭后东西方向的黄灯调用子程序闪三次,随后东西方向的红灯和南北方向的绿灯亮并进行延时,延时后,南北方向的黄灯调用子程序闪三次,之后同理进行循环。

当按下KK1键(紧急事故)时,东西和南北方向强制红灯亮,当按下KK2键(还原)时,交通灯继续上一个状态进行正常循环。

以上就是我的整个设计思路。

 

3设计原理流程图

交通灯工作流程图中断服务程序流程图

 

4实际硬件接线图

 

图4.1实际硬件接线图

 

5源程序清单及注释

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

;每一组交通灯从左到右依次为红、黄、绿

;用8255A控制东西方向交通灯

;用8255B控制南北方向交通灯

;用8255C模拟事故结束

;用8259的MIR7接KK1模拟紧急情况发生(红灯全亮)

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

SSTACKSEGMENTSTACK;定义堆栈段

DW32DUP(?

SSTACKENDS

CODESEGMENT;定义代码段

ASSUMECS:

CODE,SS:

SSTACK

START:

MOVAL,89H;10001001

MOVDX,646H

OUTDX,AL;输入8255控制字

;A、B口输出C口输入工作方式0

PUSHDS;初始化中断向量表

MOVAX,0

MOVDS,AX

MOVSI,003CH

MOVDX,OFFSETJJSG

MOV[SI],DX

MOVAX,SEGJJSG

MOVSI,003EH

MOV[SI],AX

CLI

POPDS

SET8259:

MOVAL,13H

OUT20H,AL;ICW1边沿触发单片要ICW4

MOVAL,08H

OUT21H,AL;ICW2中断向量码

MOVAL,01H

OUT21H,AL;ICW4非缓冲非自动8088

MOVAL,7FH

OUT21H,AL;OCW1IR7非屏蔽

STI

WEGREEN:

MOVAL,03H

MOVDX,640H

OUTDX,AL;东、西方向亮绿交通灯

MOVAL,0C0H

MOVDX,642H

OUTDX,AL;南、北方向亮红交通灯

MOVBX,0FFH

TT1:

MOVCX,2FFFH;通过BX计数来控制TT1循环次数

MOVAL,03H;使中断返回时保持上一状态

MOVDX,640H

OUTDX,AL

LOOP$

DECBX

JNZTT1;调用延时程序

MOVCX,3;东、西方向黄灯循环次数

WEYELLOW:

MOVAL,18H

MOVDX,640H

OUTDX,AL;东、西方向黄灯亮

MOVBX,0FH

TT2:

CALLDELAY

DECBX

JNZTT2;调用延时程序

MOVAL,00H

MOVDX,640H

OUTDX,AL;东、西方向黄灯灭

MOVBX,0FH

TT3:

CALLDELAY;调用延时程序

DECBX

JNZTT3

LOOPWEYELLOW;循环东、西黄灯亮灭过程

SNGREEN:

MOVAL,0C0H

MOVDX,640H

OUTDX,AL;东、西方向亮红交通灯

MOVAL,03H

MOVDX,642H

OUTDX,AL;南、北方向亮绿交通灯

MOVBX,0FFH;用BX控制TT4的循环次数

TT4:

MOVCX,2FFFH

MOVAL,03H;中断返回后保持上一状态

MOVDX,642H

OUTDX,AL

LOOP$

DECBX

JNZTT4

MOVCX,3;南、北方向黄灯循环次数

SNYELLOW:

MOVAL,18H

MOVDX,642H

OUTDX,AL;南、北方向黄灯亮

MOVBX,0FH

TT5:

CALLDELAY

DECBX

JNZTT5;调用延时程序

MOVAL,00H

MOVDX,642H

OUTDX,AL;南、北方向黄灯灭

MOVBX,0FH

TT6:

CALLDELAY;调用延时程序

DECBX

JNZTT6

LOOPSNYELLOW;循环南、北黄灯亮灭过程

JMPWEGREEN;整个交通灯过程循环

DELAY:

PUSHCX;延时程序

MOVCX,2FFFH;设置CX循环计数值

PUSHAX

POPAX

LOOP$

POPCX

RET

JJSG:

PUSHDX

PUSHAX

MOVDX,640H;紧急事故发生时强制东西方向红灯亮

MOVAL,80H

OUTDX,AL

MOVDX,642H;紧急事故发生时强制南北方向红灯亮

MOVAL,80H

OUTDX,AL

GZD:

MOVDX,644H

INAL,DX

ANDAL,01H

JZGZD

MOVAL,20H;OCW2关中断

OUT20H,AL

POPAX

POPDX

STI;开中断

IRET;中断返回

CODEENDS

ENDSTART

 

6主要芯片介绍

6.1可编程的并行接口8255

6.1.18255的引线图

 

图6.18255的引线图

8255引脚功能:

RESET:

复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。

CS:

片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。

RD:

读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

WR:

写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写入8255。

D0~D7:

三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:

端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数

据输入锁存器。

PB0~PB7:

端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

PC0~PC7:

端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。

端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。

A1、A0:

端口地址总线,8255中有端口A、B、C和一个内部控制字寄存器,共4个端口,由A0、A1输入地址信号来寻址。

6.1.28255的控制字

7

6

5

4

3

2

1

0

控制C口抵4位

1:

输入

0:

输出

控制B口8位

1:

输入

0:

输出

方式选择

0:

方式0

1:

方式1

控制C口高4位

0:

输出

1:

输入

控制A口8位

0:

输出

1:

输入

方式选择

00:

方式0

01:

方式1

1X:

方式2

 

 

 

功能控制

0:

位操作

1:

方式选择

 

图6.28255的控制字

6.1.38255的内部结构

1、数据总线缓冲器:

这是一个双向三态的8位数据缓冲器,它是8255与微机系统数据总线的接口。

输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。

2、三个端口A,B和C:

A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。

B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓

冲器。

C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。

3、A组和B组控制电路:

这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。

方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。

对C口按位复位命令字可对C口的每一位实现置位或复位。

A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。

4、读写控制逻辑:

用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。

6.2中断控制器8259

6.2.18259的引线图

图6.38259引线图

D0~D7为双向数据线,与系统总线的数据线相连接。

编程时控制字,命令字由此写入;中断响应时,8259的中断向量码由此提供给CPU。

WR,RD为写和读控制信号,与系统总线的读写信号相连接。

CS为片选信号,只有CS为低电平时,才能实现CPU对8259的写或读操作。

通常在

 

系统总线中连接地址译码器。

A0是8259内部寄存器的选择信号。

它的不同状态对应不同的内部寄存器。

使用中,通常接地址总线的某一位,INT为8259的中断请求输出信号,可直接接到CPU的INTR输入端。

INTA为中断响应输入信号。

在中断响应过程中CPU的中断响应信号由此端进入8259。

CAS0~CAS2为级联控制线。

当多片8259级联工作时,其中一片为主控级芯片,其他均为从属级芯片。

主控级芯片的CAS0~CAS2作为输出,连接到各从属级芯片的CAS0~CAS2上。

当某从属8259提出中断请求时,主控级8259通过CAS0~CAS2送出相应的编码给从属级,使从属级中断被允许。

SP/EN为双功能引线。

当工作在缓冲模式时,它为输出,用以控制缓冲传送;在非缓冲模式时,它用作输入。

当SP=1时,指定8259芯片为主控级;SP=0时,指定它为从属级。

IR0~IR7中断请求输入端。

其他外设中断请求可加在8259的IR0~IR7的任一端上。

该信号可以是上升沿有效,也可以是高电平有效。

6.2.28259的内部控制字

8259工作之前必须通过CPU来命令它。

CPU命令分为两大类:

一类是初始化命令字(ICW),主要是为了让8259处于初始化状态;另一类是操作命令字(OCW),使初始化的8259去执行具体的某种操作方式。

[一]初始化命令字

1.初始化命令字ICW1

1

LTIM

A

S

IC4

1:

需要ICW4

0:

不需要ICW4

1:

单片8259

0:

多片8259级联

1:

间隔为4

0:

间隔为8

1:

电平触发

0:

边沿触发

8080/85模式下,中断

低口低8编程位

图6.4初始化命令字ICW1

2.初始化命令字ICW2

8086/88模式下,仅用ICW2提供不同中断源的中断向量码。

当中断响应时,根据中断

向量表获得入口地址。

3.初始化命令字ICW3

该命令字用于多片8259的级联。

4.初始化命令字ICW4

0

0

0

SFNM

BUF

M/S

AEOI

PM

1:

8086/88模式

0:

8080/85模式

1:

自动EOI

0:

非自动结束

0X:

非缓冲方法

10:

缓冲方式/从属片

11:

缓冲方式/主控片

1:

特殊全嵌套方式

0:

一般嵌套方式

图6.5初始化命令字ICW4

[二]操作命令字OCW

对8259初始化之后,该芯片就进入工作状态,准备好接收IR端进入的中断请求。

1.操作命令字OCW1

它用于设置对8259中断的屏蔽操作。

该八位的操作字的某一位为1时,它就屏蔽相对应的IR输入。

2.操作命令字OCW2

该命令字用来设置优先级是否循环、循环的方式及中断结束的方式

 

7设计总结

为期一周的微机原理课程设计结束了。

刚开始接触设计时,根本不知道这是干什么的,也不知道该从哪下手,总之是一头雾水。

但是,通过王老师给我们的指导,以及大量的查阅资料,我慢慢知道了设计的原理与思路,奔跑与教室与图书馆之间,从早到晚的设计,一步一步地完成了交通信号灯设计一的原理方框图和实际硬件接线图。

虽然我设计的题目很简单,但是每一步我都是认认真真完成的。

使我从中学到了很多设计中用到的知识。

交通信号灯虽然不复杂,但是用到的理论知识是非常有用的,可编程的并行借口8255与CPU的连接,中断控制器8259的使用,使我使用对微机原理这一门学科有了更深的了解。

当然,在这过程中,我也遇到了一些困难。

比如中断控制器的使用与连接,应该从何输入,从何输出信号。

在选择硬件连接上,哪一种方法是最适合我用的逻辑想法,接起来更方便。

曾经在这些问题上,我花了很多时间和精力查阅不多的书籍。

从中我也学到了怎样利用学过的知识去发挥地更好。

通过亲自查找材料,提高了自身自学能力。

一周的课程设计时间很短暂,面对复杂的程序,我们都很晚才结束学习。

通过紧张的设计学习,我会更努力的学好微机原理课程和其他课程。

这次设计使很多同学都有了紧张的学习状态。

所以曾经遇到的难题和烦恼都已不算什么,答辩的结果证明了我们的能力,完整的报告证明了我们的付出。

虽然时间紧张,工作量大,身心劳累,但学到的知识和设计的经验确实使自己提高了很多。

而这些经验都会伴随着我今后的学习,也为我们以后完成毕业设计打下基础。

 

致谢

感谢曲老师在这次微机原理设计中对我的辅导与大力帮助。

没有了老师的帮助,我的设计不会有这么大的改差。

感谢学校给我们提供设计场所,这次微机原理设计让我对微机原理这门学科有了更加深刻的认识。

感谢所有帮助我完成本次设计的人,是你们让我更加成功的完成这次课程设计。

 

参考文献

[1]夏业敏.微机实验.北京:

北京大学出版社,1988.

[2]张金训.微型计算机原理及应用实验指导书.北京:

机械工业出版社,1988.

[3]陈金华.可编程序控制器应用技术.北京:

电子工业出版社,1995.

[4]胡学林.可编程序控制器教程(实训篇).北京:

电子工业出版社,2004.

[5]宋杰,汪志宏,江敏.微机原理与接口技术课程设计.北京:

机械工业出版社,2005

[6]袁任光.可编程序控制器应用技术与实例.广州:

华南理工大学出版社,2003.

 

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

当前位置:首页 > PPT模板 > 动态背景

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

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