微机原理课程设计.docx

上传人:b****1 文档编号:14098771 上传时间:2023-06-20 格式:DOCX 页数:22 大小:209.91KB
下载 相关 举报
微机原理课程设计.docx_第1页
第1页 / 共22页
微机原理课程设计.docx_第2页
第2页 / 共22页
微机原理课程设计.docx_第3页
第3页 / 共22页
微机原理课程设计.docx_第4页
第4页 / 共22页
微机原理课程设计.docx_第5页
第5页 / 共22页
微机原理课程设计.docx_第6页
第6页 / 共22页
微机原理课程设计.docx_第7页
第7页 / 共22页
微机原理课程设计.docx_第8页
第8页 / 共22页
微机原理课程设计.docx_第9页
第9页 / 共22页
微机原理课程设计.docx_第10页
第10页 / 共22页
微机原理课程设计.docx_第11页
第11页 / 共22页
微机原理课程设计.docx_第12页
第12页 / 共22页
微机原理课程设计.docx_第13页
第13页 / 共22页
微机原理课程设计.docx_第14页
第14页 / 共22页
微机原理课程设计.docx_第15页
第15页 / 共22页
微机原理课程设计.docx_第16页
第16页 / 共22页
微机原理课程设计.docx_第17页
第17页 / 共22页
微机原理课程设计.docx_第18页
第18页 / 共22页
微机原理课程设计.docx_第19页
第19页 / 共22页
微机原理课程设计.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理课程设计.docx

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

微机原理课程设计.docx

微机原理课程设计

前  言

《微机原理与接口技术》是计算机、电子类专业的专业基础课。

在课程体系种占有重要的位置。

课程设计的目的是配合平时的教学和实验,以达到巩固和消化课堂教学内容,进一步加强综合应用能力,启发创新思维的目的。

是培养学生综合素质,提高动手能力,提高发现问题和解决问题能力的重要阶段。

本次微机原理与接口技术课程设计报告共分为三章。

第一章总体设计思路,根据设计目的与要求提出设计思路;第二章硬件设计,对所用芯片及连接方法进行介绍;第三章软件设计,画出程序流程图,并用8086/8088汇编语言进行编程实现功能,列出带有注释的代码清单,完成全部设计。

作为学生,由于经验水平有限,在进行设计以及完成报告的过程中难免会不足和错漏之处,还恳请指导老师给予批评和指正。

 

目  录

程序清单18

课程设计任务书

课程设计内容:

设计一个具有8路抢答的抢答器,利用并行接口和开关键。

逻辑开关K0——K7代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下,此时在七段数码管上将其号码显示出来,并使喇叭响一声。

课程设计目标:

启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。

比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。

若选手抢答成功,LED显示器显示选手号码,扬声器鸣叫。

若选手抢答违规(主持人未按开始键),LED显示器显示违规选手号码,红灯亮,扬声器报警,并根据比赛规则进行对该选手进行扣分。

若系统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,LED显示器显示该选手的号码。

本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。

注:

1)抢答成功,扬声器的鸣叫声音频率为1KHz(1.5KHz)。

2)抢答失败,扬声器的鸣叫声音频率为0.5KHz(1KHz)。

3)扬声器鸣叫或报警的时间为12s(10s)。

进度安排:

2012年8月13日至2012年8月16日明确课程设计要求及内容,准备相关资料

2012年8月17日至2012年8月19日设计总体思路,熟悉芯片的相关知识,完成硬件设计并撰写课程设计说明书

2012年8月20日至2012年8月22日在完成硬件设计的基础上使用汇编语言来实现相应的功能并撰写课程设计说明书

2012年8月22日至2012年8月24日完成整个课程设计任务及课程设计说明书,实现相关功能

1总体设计

1.1基本工作原理

主持人按开始键,绿灯这后,选手才可抢答,否则违规。

若抢答成功,LED显示器显示选手号码,黄灯亮,扬声器鸣叫;若抢答违规(主持人示按开始键),LED显示器显示违规选手号码,红灯亮,扬声器报警。

1.2硬件总体设计

1.2.1系统总成方案

该竞赛抢答器所要器件:

中断优先级管理器8259A、可编程并行接口接口芯片8255、可编程定时器/计数器8253,三个一样的驱动器,黄、红、绿三个发光二极管,十三个电阻,一个8输入与非门,一个非门,一个扬声器,一个LED显示器,10个按键。

1.2.2内存单元编址

(1)中断优先级管理器8259A的端口地址为20H、21H

(2)可编程并行接口接口芯片8255A的端口地址为80H、81H、82H、83H

(3)可编程定时器/计数器8253的端口地址为40H、41H、42H、43H

1.2.3键盘及显示功能的定义

10个按键中,一个开始键一个复位键,另外8个用做8位选手的抢答按键。

扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。

LED显示器显示的内容与选手号对应,抢答成功或违规都要显示。

1.3软件总体设计

1.3.1存储单元的分配、标志位的含义

(1)定义一个TAB变量用来存储1~9的字形码信息,如下表

LED的管脚

对应的字形

对应存放在内存单元的字形码

dp、g、f、e、d、c、b、a

00000110

01011011

01001111

01100110

01101101

01111100

00000111

01111111

01101111

1

2

3

4

5

6

7

8

9

06H

5BH

4FH

66H

6DH

7CH

07H

7FH

6FH

表1.11~9的字形码信息

(2)、定义一个BZ变量作为标志位,用来选手抢答是否违规,BZ=0FFH时表示主持人已经按下开始键选手可以抢答,BZ=00H表示主持人未按下开始按键,选手不可以抢答。

1.3.2主程序框图

2硬件设计

2.1系统所选用各芯片的介绍

2.1.1中断优先级管理器8259A

(1)8259A内部结构[1]:

8259A采用NMOS工艺制成,有28根引脚,所有输入、输出端与TTL电平兼容,单一电源(Vcc=+5V)供电。

8259的内部主要组成部分,包括处理部件(中断请求寄存器IRR、优先级鉴别器PR及现行服务寄存器ISR)、控制部件(控制逻辑及中断屏蔽寄存器IMR)、数据总路线缓冲器、读/写逻辑以及级联缓冲器/比较器等5个部分。

(2)8259A主要的外部引脚:

D0~D7:

双向数据线,CPU与8259间利用这个数据总路线传送数据及命令。

写控制输入信号,同控制总路线上的

信号相连。

读控制输入信号,同控制总路线上的

信号相连。

A0:

地址选择信号,用来对8259A内部的两个可编程寄存器进行选择。

片选输入信号,低电平有效。

有郊时可通过数据总路线设置命令并对内部寄存器进行读出。

当进入中断响应时序时,该引脚状态与进行的处理无关。

INT:

由8259A向CPU发出的中断请求信号。

输入信号,接收CPU送来的中断响应信号INTA。

IR0~IR7:

8个中断请求输入信号,高电平或上升沿有效。

用于接收外设接口来的中断请求。

(3)8259A工作方式

优先级设置方式:

全嵌套方式(固定优先级方式)、特殊全嵌套方式(可响应同级中断方式)、轮转优先级方式、特殊轮转优先级方式。

中断源屏蔽方式:

普通屏蔽方式、特殊屏蔽方式。

中断结束方式:

中断自动结束方式、中断非自动结束方式(包括一般中断结束方式、特殊中断结束方式)。

系统总路线连接方式:

缓冲方式、非缓冲方式。

中断请求信号触发方式:

边沿触发方式、电平触发方式。

(4)8259A初始化控制字格式[2]

ICW1(芯片控制字)

D7D6D5

D4

D3

D2

D1

D0

000

特征位

1

触发方式

0边沿触发

1电平触发

0

单片选择信号

0多片8259级联

1单片8259

是不要ICW4

0不要(8080/8085)

1要(80X86)

ICW2(中断类型码控制字,D7~D3设置中断类型码)

D7

D6

D5

D4

D3

D2

D1

D0

×

×

×

×

×

0

0

0

ICW3(主片,级联时才用设置,各位为1则表示接有从片)

D7

D6

D5

D4

D3

D2

D1

D0

IR7

IR6

IR5

IR4

IR3

IR2

IR1

IR0

表2.18259A初始化控制字格式

ICW3(从片,级联时才用设置)

D7

D6

D5

D4

D3

D2D1D0

0

0

0

0

0

ID2ID1ID0从片INT接于主片的引脚

000IR0

001IR1

…………

111IR7

ICW4(方式控制字)

D7D6D5

D4

D3

D2

D1

D0

000

嵌套方式

0全嵌套方式

1特殊全嵌套方式

缓冲方式

0非缓冲方式

1缓冲方式

缓冲方式下

0本片为从片

1本片为主片

中断结束方式

0中断非自动结束

1中断自动结束

系统类型08080/8085

180X86

表2.28259A初始化控制字格式

(5)8259A操作命令字格式

OCW0(中断屏蔽字,各位为1则被屏蔽)

D7

D6

D5

D4

D3

D2

D1

D0

IR7

IR6

IR5

IR4

IR3

IR2

IR1

IR0

OCW1(轮转优先级和中断结束字)

D7

D6

D5

D4D3

D2D1D0

轮转位

0非轮转

1轮转

选择标志位

1L2~L0无效

1L2~L0有效

中断结束位

0非中断结束

1中断结束

特征位

00

标志位

000IR0优先级最低

001IR1优先级最低

OCW2(特殊屏蔽、查询和状态读取字)

D7

D6

D5

D4D3

D2

D1

D0

0

特殊屏蔽方式允许位

0禁止特殊屏蔽方式

1允许特殊屏蔽方式

特殊屏蔽方式位

0非特殊屏蔽方式

1特殊屏蔽方式

特征位

01

中断查询位

0非中断查询

1中断查询

读寄存器

0禁止读

1允许读

0读IRR

1读ISR

表2.38259A操作命令字格式

2.1.2可编程并行接口接口芯片8255A

(1)8255A内部结构[1]:

8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。

8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读/写控制逻辑;数据总路线缓冲器。

(2)8255A主要的外部引脚

PA7~PA0:

A口的8条I/O线。

8条线只能同时作为输入或输出,不能分开使用,可设置成双向口,也只有A口允许这样做。

PB7~PB0:

B口的8条I/O线。

不可以设置成双向口,其它和A口一样。

PC7~PC0:

C口的8条I/O线。

不可以设置成双向口,但它可以分拆为两组即高4位和低4位,这两组可以任意设置为输入或输出。

除了作为独立的I/O线外,C口还经常为A口、B口服务,配合A口、B口作联络线使用。

A1、A0:

端口地址选择信号。

用于选择8255A的3个数据端口和一个控制口。

当A1A0=00时,选择端口A;为01时,选择端口B;为10,选择端口C;为11时,选择控制口。

(3)8255A工作方式

方式0:

基本的输入/输出方式。

A口、B口、C口都可以工作在些方式下。

方式1:

选通输入/输出方式(应答方式)。

A口、B口工作在此方式下。

方式2:

双向传输方式。

只有A口可以工作在此方式下。

(4)8255A方式控制字格式[2]

D7

D6、D5

D4

D3

D2

D1

D0

1

A口

A口

C口

高4位

B口

B口

C口

低4位

00方式0

01方式1

1x方式2

0输出

1输入

0输出

1输入

0方式0

1方式1

0输出

1输入

0输出

1输入

表2.48255A方式控制字格式

2.1.3可编程定时器/计数器8253

(1)8253的内部结构[1]:

8253采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。

它包括3个计数器(即计数器0、1、2)、数据总路线缓冲器、读/写逻辑以及控制寄存器等4个部分。

(2)8253的外部引脚

A1、A0:

地址输入线,用来址8253内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。

CLK0、CLK1、CLK2:

时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。

CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。

当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。

GATE0、GATE1、GATE3:

门控输入端,用于外部控制计数器的启动计数和停止计数的操作。

两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。

OUT0、OUT1、OUT2:

计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。

(3)8253的工作方式

方式0:

减1计数到0,产生中断请求信号。

方式1:

减1计数到0,产生可重复触发的单稳态负脉冲信号。

方式2:

减1计数到1,分频器(速率信号发生器)。

方式3:

减1计数到初值的1/2,方波发生器。

方式4:

减1计数到0,软件触发产生选通负脉冲信号。

方式5:

减1计数到0,硬件触发产生选通负脉冲信号。

(4)8253方式控制字格式[2]

表2.58253方式控制字格式

D7D6

D5D4

D3D2D1

D0

00选计数器0

01选计数器1

10选计数器2

00计数器锁存

01只读写低8位

10先读写高8位

11先读写低8位再读写高8位

000方式0

001方式1

X10方式2

X11方式3

100方式4

101方式5

0二进制计数

1BCD计数

2.2系统所选用各芯片的工作方式[3][5]

2.2.1中断优先级管理器8259A的工作方式

(1)、芯片控制ICW1:

采用边沿触发,单片8259,要写入ICW4控制字

(2)、中断类型码ICW2:

设置IR0~IR7的中断类型码依次为08H、09H、…、0FH

(3)、方式控制ICW4:

优先级设置方式为全嵌套方式即固定优先级方式,系统总线连接方式为主片工作在缓冲方式下,中断结束方式采用中断非自动结束方式,8259工作在80X86系统上。

2.2.2可编程并行接口接口芯片8255A的工作方式

(1)、A口工作在方式0,做为输入端口用于连接选手按键(PA7~PA0依次对应按键1~8);

(2)、B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7~PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚);

(3)、C口也必须工作在方式0,高4位做输入端口(本次设计中只用PC4、PC5,分别用于连接复位键和开始键),低4位做输出端口(PC3~PC0,经驱动器2后PC1、PC2、PC3分别用于连接黄、红、绿三个发光二极管,PC0连接到8253的GATE1端,以控制通道1的计数)。

2.2.3可编程定时器/计数器8253的工作方式

(1)、通道0:

操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。

(2)、通道1:

操作类型为先读写低字节再读写高字节,工作在方式1即可重触发的单稳态触发器,计数格式为BCD码,计数初值为0。

(3)、通道2:

操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。

2.3系统所选用各芯片的连接

2.3.1各芯片与CPU的连接

8259A、8255A、8253的数据总线D7~D0端、

端、

端、

端、

端、INT端分别与CPU的D7~D0数据总线、片选端、

端、

端、

端、INTR端。

8255A、8253的A1、A0端分别接入CPU地址线的A1、A0端,8259的A0端接到CPU地址线的A0端;

2.3.2各芯片之间的连接和与外设的连接

8259A的IR2端接选手按键信息输出端;8255A的A口的PA7~PA0依次接“按键1”~“按键8”,B口的PB7~PB0通过驱动器1接到LED显示器,C口的PC4、PC5分别接复位键和开始键,PC3、PC2、PC1经驱动器2分别接绿灯发光二极管、红灯发光二极管、黄灯发光二极管,PC0接到8253的GATE1端;8253的GATE0端接+5V电压,OUT0的输出接入CLK1端,OUT1的输出经反相器后接入GATE2端,CLK0和CLK1接入1MHz的频率发生器,CLK2经驱动器3接扬声器。

3软件设计

3.1子程序的流程图

图3.1子程序流程图

3.2子程序清单(带有注释)[4][5]

;中断服务子程序

KEYINTPROCFAR

PUSHAX;保护现场

PUSHBX

PUSHDX

PUSHDS

CLI;并使本次中断压入堆栈中的IF=0

;(关中断)

INAL,80H;从8255的A口获取选手按键信息

NOTAL;将按键字节信息取反

MOVCX,8;计数8次

LOP4:

SHRAL,1;获取选手号码

LOOPNZLOP4

MOVAX,CX;把选手号传给AX

MOVBX,OFFSETTAB;查段码(字形码)

XLAT;将选手号转换成TAB中对应的LED

;字形码

OUT81H,AL

TESTBZ,OFFH;判断标志位是否为FFH

JZLOP5

MOVAL,00H;置8253通道2计数值

OUT42H,AL

MOVAL,10H

OUT42H,AL

MOVAL,03H;黄灯亮,抢答成功

OUT82H,AL

JMPKKK

LOP5:

MOVAL,00H;置8253通道2计数值

OUT42H,AL

MOVAL,20H

OUT42H,AL

MOVAL,05H;红灯亮,抢答违规

OUT82H,AL

KKK:

MOVAL,20H;给8259发中断结束命令,写OCW2

OUT20H,AL

POPAX;恢复现场

POPBX

POPDX

POPDS

IRET

KEYINTENDP

小结

通过本次微机原理课程设计,我又在学习过一遍微机原理及接口技术之后,再一次巩固了知识。

更加深入的认识了8259A、8255A、8253三种芯片的用法,以及汇编语言的知识和设计方法。

这次课程设计,我学会了许多课本上学不到的东西,思考和解决问题的能力,受益匪浅。

课程设计过程中,我觉得是对课本知识的巩固和加强,由于课本上的知识太多,同时平时又没有好好的运用和理解个芯片的功能,而且考试的内容有限,所以在这次课程设计过程中,我们了解很多元件的功能,对其在电路中的使用有更多的认识。

经过了近两个星期的努力,终于完成了小学期微机原理的课程设计,这其中虽然遇到了不少的困难,但是通过查看书籍、搜索网络、请教同学,最终还是解决了所遇到的问题,课程设计的任务提高了我们发现问题,解决问题的能力。

但是在整个报告中可能还存在着这样那样的问题、不足之处,还是希望老师能给与纠正与指导。

参考文献

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

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

[2]朱定华.微机原理、汇编与接口技术.北京:

清华大学出版社,2005

[3]洪永强.微机原理与接口技术.北京:

科学出版社,2004

[4]周明德.微机原理与接口技术实验指导与习题集.北京:

人民邮电出版社,2002

[5]刘永华等.微机原理与接口技术.北京:

清华大学出版社,2006

课程设计图纸

程序清单

主程序清单(带详细注释)

DATASEGMENT

TABDB06H,5BH,4FH,66H,6DH,7CH,07H,7FH,67H;1~9的段码

;(字形码)

BZDB00H

DATAENDS

STACKSEGMENTPARASTACK‘STACK’

DB100HDUP(?

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE

START:

MOVAX,,DATA

MOVDS,AX

;8259A初始化

MOVAL,13H;初始化8259A的ICW1

OUT20H,AL

MOVAL,08H;送中断类型码基值,8259A的ICW2

OUT21H,AL

MOVAL,0DH;一般中断结束方式,8259A的ICW4

OUT21H,AL

;8255A初始化

MOVAL,98H;置8255A工作方式

OUT83H,AL

XORAL,AL;B口、C口初始化

OUT81H,AL

OUT82H,AL

;8253初始化

MOVAL,37H;置8253通道0控制字

OUT43H,AL

MOVAL,00H;置8253通道0计数初值为4000

OUT40H,AL

MOVAL,40H

OUT40H,AL

MOVAL,73H;置8253通道1控制字

OUT43H,AL

MOVAL,00H;置8253通道1计数初值为3000OUT41H,AL

MOVAL,30H

OUT41H,AL

MOVAL,B7H;置8253通道2控制字

OUT43H,AL

MOVAL,00H;置8253通道2控制字

OUT42H,AL

MOVAL,00H;置8253通道2计数初值为0

OUT42H,AL

MOVAL,00H

OUT42H,AL

;中断设置

MOVAH,25H;设置抢答按键中断向量

MOVAL,0AH;中断类型号为入口参数

MOVBX,SEGKEYINT;DS:

DX指向4字节地址

MOVDS,BX

MOVDX,OFFSETKEYINT

INT21H

STI;使IF置1,开放可屏蔽中断

;主循环

LOPM:

INAL,82H;检测开始键

TESTAL,20H;检测C口的PC5端

JZLOP2;开始键未按下即PC5=0,则跳转检测

;复位键

LOP1:

INAL,82H;检测开始键是否已经弹起,即PC5=0

TESTAL,20H

JNZLOP1;开始键没有弹起再重新检测

MOVAL,00H;关LED显示器

OUT81H,AL;送到B口

MOVAL,08H;绿灯亮

OUT82H,AL;送到C口

MOVBZ,0FFH;置标志

STI

LOP2:

INAL,82H;检测复位键

TESTAL,10H;检测C口的PC4端

JZLOPM;复位键未按下即PC4=0,则跳转再检

;测开始键

LOP3:

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

当前位置:首页 > 农林牧渔 > 林学

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

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