ionicons-v5-f

可重构微处理器接口设计与应用实验

实验题目:可重构微处理器接口设计与应用实验

1. 课程简要信息

课程名称:微机原理与系统设计
课程学时:48 学时
项目学时:4学时
适用专业:电子信息工程
学生年级:大学三年级、第五学期

2. 实验内容与任务(限 800 字)

本实验的目的是使学生深刻认识微机的结构,熟练掌握硬件接口设计技术以及汇编语言程序设计技术,培养学生综合运用微机原理和接口技术设计微机应用系统的能力。为了让学生了解不同架构微处理器的特点,理解可重构微处理器的基本概念,本实验设计了两个同一层次但不同处理器架构下的实验任务,其中任务A是必选任务,任务 B 是可选任务。

任务 A(必选):利用可重构微处理器实验板和部分外围组件设计并实现一个微机控制的步进电机转速控制系统,具体要求如下:

1)在可重构微处理器实验板的 FPGA 中移植 8088 微处理器核(提供软 IP 核),在 FPGA 中实现一个8088微处理器;

2)步进电机转速分三档(1,2,3),每档转速可自行设定。设计微处理器与步进电机的接口电路,数据输出端口地址为 80H,并在实验板的FPGA 中实现该接口电路;

3)步进电机的三个转速档位可通过 $4 \times 4$ 矩阵键盘输入,设计微处理器与矩阵键盘的接口电路,其中四位行线的输出端口地址为 81H,四位列线的输入端口地址为4000H,在实验板的FPGA中实现该接口电路;

4)键盘输入的转速档位可通过实验板上任意一个 8段数码管显示,设计微处理器与 8 个数码管的接口电路,其中数码管使能控制端口地址为7FH,数码管数据端口地址为 70H,在实验板的FPGA中实现该接口电路;

5)在XDVM集成开发环境中设计汇编语言程序,将程序下载到实验板的8088微处理器核中,实现在数码管上显示步进电机的当前转速档位,并在键盘输入有效的情况下(1,2,3)调整步进电机转速到相应档位。

任务B(可选):在实验板的 FPGA中移植其它任意一种微处理器核(51、PIC、AVR、MSP430、STM32等),相应地配合其它集成开发环境,实现与任务 A相同的功能。

3. 相关知识及背景(限 150 字)

本实验是一个运用微机原理与接口技术解决现实生活和工程实际问题的典型案例,需要熟悉 FPGA 硬件逻辑设计、HDL 语言、微机结构、 $1 / 0$ 接口电路设计、步进电机工作原理与驱动电路设计、汇编语言程序设计/C 语言程序设计等相关知识与技术方法。此外,还涉及微处理器对存储器和 $\mathrm { I } / 0$ 的编址方式、存储器地址空间分配、输入输出的方式等工程概念与常用方法。

4. 实验环境条件

本实验实施需要的资源包括:

1)可重构微处理器接口设计与应用实验板一套(核心器件为 FPGA:Cyclone II-EP2C8),实验板如图 1 所示;

2)PC 机一台,预装 Quartus II 数字逻辑开发软件和 XDVM 汇编语言编译调试软件,其中XDVM集成开发环境如图2所示;

3)数码管、矩阵键盘、步进电机及其驱动器;

4)JTAG调试器及下载电缆一套,排线若干。


图 1. 可重构微处理器接口设计与应用实验板


图2. 模型微处理器( $\mathrm { x 8 6 }$ )汇编语言程序编译调试软件

5. 教学目标与目的(限 150 字)

本实验是微机原理与系统设计课程的基础性实验,实验目标是促使学生掌握微处理器的工作原理、硬件接口设计技术以及汇编语言程序设计技术,提高学生综合运用以上方法和技术解决工程问题的能力,培养学生进一步设计微处理器的创新意识。

6. 教学设计与实施进程

本实验是一个将微机原理与接口技术课程所学内容应用于工程实践的典型例子,由于要在可重构微处理器实验平台完成实验,所以这里不仅涉及到微机结构与组成、硬件接口设计、外设工作原理、汇编语言程序设计,还涉及到数字逻辑设计基础、HDL 语言、FPGA 逻辑设计与实现等内容,因此需要学生掌握扎实的基础知识,开展广泛的学习研究,进行充分的方案论证,具备较强的动手实践能力。本实验需要设计和实现的电路功能比较简单,但涉及的基础知识范围较广,使用的设计工具较多,综合性较强,建议同学们 2 人一小组合作完成实验任务,教师应在知识储备、课堂讲解、方案讨论等方面加强对学生的引导。

1)复习与自学内容:本实验的开设依附于微机原理与系统设计课程,但需要扎实的数字逻辑设计基础,因此需要学生认真复习数字逻辑设计的基础知识,尤其是数据选择器、地址译码方法、锁存器与触发器等内容应牢牢掌握。此外,还要引导学生自学或复习 HDL 语言,熟练使用 FPGA 硬件逻辑设计工具(例如 Quartus II 开发工具)要学习温度测量的基本方法,了解随着温度测量范围与测量精度要求的不同,在传感器选择、测量方法等方面不同的处理方法。

2)课堂讲解内容:课堂讲解内容主要包括实验平台介绍和涉及的外设电路说明,其中实验平台不仅包含可重构微处理器实验板,也包含 XDVM 汇编语言编译与代码生成软件。外设电路主要涉及 $4 \times 4$ 矩阵键盘、数码管显示电路、步进电机及其驱动电路等,尤其是步进电机的工作原理应让学生充分理解。

3)方案讨论:教师应启发引导学生设计总体实现方案,并分 3 大组分别讨论 3 个子模块的实现方案,即

 矩阵键盘的接口设计与按键检测程序设计方案;

 数码管的硬件接口电路设计与输出显示程序设计方案;

 步进电机的接口电路设计与调速控制程序设计方案。

每个大组推荐 1 人讲解负责的子模块实现方案,并与大家共享。注意,每个子模块的设计方案可能不唯一,例如接口电路的设计中地址译码可以采用组合门电路、专用译码器或数据比较器等不同形式,步进电机的激励方式也可能,各有优劣,应充分讨论其适合的应用领域,以便实际工程应用中选择适合的方案。

4)实验中的问题思考:本实验属于综合性基础实验,实现的任务比较简单,所以实际工程中遇到的一些问题一般不会出现,但仍建议教师启发性的引导学生思考本实验有关的实际工程问题的解决方案,例如:按键抖动问题及其消抖方法、利用多个数码管动态显示多个数字或字符的问题、大功率电机控制中的共地干扰问题及其隔离接口设计等。此外,本实验的电机调速控制是简单的开环控制,如何设计闭环控制系统提高电机转速控制精度也值得学生思考。

5)实验结果演示与验收:实验结果演示一般采用现场演示,对于实现功能不完整的小组,可要求其分析和总结问题所在,指出其知识点的薄弱环节。对于功能完全实现的小组,可鼓励他们课后根据自己的兴趣选择其它架构微处理器完成任务 B。

6)总结研讨:在实验完成后,从完成较好的组中选择几组同学,组织他们从实验方案设计、实验问题故障排除、未来改进思路等方面讲述实验的心得体会,总结共享学习经验,拓宽知识面。

7. 实验原理及方案

本实验要求实现的电路功能简单,因此完成实验任务的思路比较清晰,但每个子模块的设计与实现都必然是软硬件结合的,软件和硬件如何相互配合实现模块功能仍要仔细琢磨。利用可重构微处理器实验板完成该实验任务的特色在于,接口电路可与微处理器一起通过 HDL 语言在FPGA中实现。现对键盘输入模块、数码管显示模块、步进电机控制模块分别给出如下参考方案。

1)键盘输入模块结构及实现方案

矩阵键盘是嵌入式系统中常用的输入设备,其电路原理图如图 3 所示,16 个按键用于连接4条行线和4条列线,通过行线输出列线读入便可查询按键状态。由于 4条行线为输出,4条列线为输入,因此需要设计 1 个 4 位的输出接口和 1 个 4 位输入接口,输出接口的设计可参考数码管显示接口电路,输入接口如图 4 所示,通过数据选择器将 4 位列线数据读入。端口的地址译码电路可采用数据比较器实现,译码电路如图5所示。


图3 矩阵键盘电路原理图

这里应注意地址选择信号应与列线数据所在输入通道相匹配,译码电路也可使用专用译码器、组合门电路等实现。矩阵键盘的扫描方式除逐行扫描外,还有其它方法,例如线翻转法。按键消抖可通过设计滤波电路来实现,然而采用软件消抖方式则更灵活、经济。


图4 矩阵键盘4位列线数据输入接口


图5 矩阵键盘4位列线输入端口地址译码电路

2)数码管显示模块结构及实现方案

由于实验板上共提供了 8 个数码管,为了更好地利用数码管资源,建议将 8 个数码管连接起来实现动态显示。8个数码管的使能端通过一个8 位数据输出端口来控制,8个数码管的字段数据端共用 1 个 8 位数据端口,因此共需设计 2 个 8 位数据输出端口。由于数据输出一般要锁存,因此可采用数据锁存器 74LS374 类似功能的芯片,图 6 给出了设计的 2 个 8 位端口的电路。

这里需要注意的是,必须结合数码管的结构和硬件连接方式写出数字0~9对应的编码数据,若使用动态显示还需注意使能信号和数据输出的频率不宜太快,否则出现闪烁现象。


图6 数码管数据和使能信号输出接口电路

3)步进电机控制模块结构及实现方案

步进电机是将电脉冲转换为角位移或者线位移的机电设备,只需以一定的规律控制多个绕组线圈的通电顺序便可以控制电机转动。本实验中步进电机可采用20BY20H04或28BYJ-48等,由于微处理器输出的信号不足以驱动步进电机,因此可采用 ULN2003 达林顿管或 DRV8833 桥式驱动电路,ULN2003 驱动器如图 7 所示。微处理器输出的驱动脉冲可通过设计类似于图 6 的数据输出接口实现即可。

这里需注意的是,电机转速要根据按键输入的档位进行调整,调速原理即调整微处理器输出脉冲的频率。步进电机驱动的激励方式不唯一,以四相步进电机为例,有四拍激励方式,也有八拍激励方式,四拍方式又可分为单相四拍和双相四拍,每种激励方式均有其优劣,实验中可尝试使用不同的激励方式。


图 7 ULN2003电机驱动电路原理图

8. 实验报告要求

实验报告需要反映以下工作:

1)实验方案论证。实验的硬件接口设计和程序设计均比较灵活,实现的方案较多,若尝试了多个方案进行验证,实验报告应包含对多个方案的优劣比较;2)微处理器核在 FPGA 中实现的问题记录。提供的微处理器 IP 软核一般是比较成熟的,出现

问题的概率不大,但给微处理器在 FPGA中配置存储器需要注意存储器地址空间分配,以及CPU复位后的启动地址与程序地址的关联的问题,实验报告应记录遇到的问题和解决方法;
3) 微处理器接口设计缺陷排除记录。当设计的接口电路对应的外围设备不能正常工作时,需要着重查找接口芯片的地址译码电路的可靠性;
4)程序设计流程。程序设计应包含按键检测与有效性判定、转速档位输出显示、步进电机调速控制等主要部分,并详细给出每个部分的子流程;
5) 程序调试记录。记录程序运行中遇到的逻辑错误,总结排除错误的经验,提出编写优秀汇编语言程序的建议;
6)实验结果总结。通过改变硬件接口设计和程序设计中的部分参数全面掌握实验中出现的现象,并能运用所学知识进行解释,总结实验体会与感悟。

9. 考核要求与方法(限 300 字)

1) 实物演示:要求的显示和控制功能是否均已实现,完成实验所需的时间如何;
2)实验方案优劣:电路设计方案的合理性,FPGA 中硬件资源的消耗程度,程序设计的效率和可读性、可维护性;
3) 创新能力:电路设计的可靠性,以及是否统筹考虑译码电路的设计,从而节省硬件资源,程序设计中是否使用了技巧提高了运行效率,或减少了代码大小;
4) 配合的默契程度:2 人一组完成本实验,是否有明确分工,硬件故障的排除和程序调试是否相互配合完成;
5) 实验报告:实验报告的规范性与完整性。

10.项目特色或创新(限 150 字)

综合性强:本实验要求学生熟悉FPGA硬件逻辑设计与开发、HDL语言、汇编语言程序设计、微机组成、硬件接口电路设计、存储器地址空间分配等相关知识与方法,考察了学生综合运用本课程所学知识的能力;

启发性强:本实验通过在 FPGA 中移植软 IP 核,以此代替定制化的微处理器,方便了不同架构的微处理器的接口设计与应用。通过整个实验流程不仅使学生掌握了微机原理与接口技术,更激发了学生设计微处理器,并在FPGA中实现微处理器的热情。

11.教学过程与结果

实验任务主要包括硬件设计和程序设计两部分,因此建议2人一组相互配合完成实验任务,实验教学过程和批阅的实验报告如图7所示。


图8 教学过程与实验报告

附件 1:《微机原理与系统设计》课程教学大纲

附件 1

《微机原理与系统设计》课程教学大纲

课程编号:EE3010

中文名称:微机原理与系统设计 英文名称:Microcomputer Principle and System Design

开课学期:第 5 学期

学 分:4 学 时: $4 8 \substack { + 2 0 + 1 6 }$

课程性质:必修课,专业平台基础课

适用专业:电子信息工程、电磁场与无线技术、信息对抗技术、遥感科学与技术

先修课程:C语言程序设计、模拟电子技术基础、数字电子技术基础

团队负责人:楼顺天 执笔人:张伟涛 核准院长:苏涛

一、课程的性质、目标与任务

依据中国工程教育认证协会最新制定(2015版)的认证标准之专业补充标准,《微机原理与系统设计》课程在电子信息与电气工程类专业和计算机类专业(自动化、电子信息工程、通信工程、电子科学与技术、计算机科学与技术、信息安全等专业)的课程体系中,是必备的工程基础和专业基础类课程,属于学科基础课。

本课程的教学目标有:

(1)通过本课程的学习,使学生系统地掌握以 CPU 为核心的微机系统的组成原理,理解微机系统中的基本概念,掌握 8086/8088 系列 CPU 的汇编语言程序设计技术和常用芯片的接口设计技术;

(2)使学生对本课程涉及的典型系统具有深入、全面的理解,掌握电子信息系统的综合设计方法;

(3)使学生能够掌握本专业涉及的工程设计概念、原则和方法,能够针对复杂电子系统工程问题制定合理的解决方案;

(4)通过本课程的学习,为学生学习后续课程、进行创新性研究和解决复杂工程问题,奠定坚实的工程基础。

本课程的开设有助于本科生达到如下毕业要求:

毕业要求毕业要求指标点
毕业要求3:设计/开发解决方案:能够设计针对电子信息工程的复杂工程问题解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,能够在设计环节中体现创新意识,并考虑社会、健康、安全、法律、文化以及环境等因素。指标点3-2:能够针对特定需求,设计满足指标和要求的系统、软硬件单元(部件)或工艺流程。
毕业要求4:研究:能够基于科学原理并采用科学方法对电子信息工程的复杂工程问题进行研究,包括设计实验、分析与解释数据,并通过信息综合得到合理有效的结论。指标点4-1:能够基于科学原理并采用科学方法对电子信息系统及软件、硬件模块进行研究。
毕业要求5:使用现代工具:能够针对电子信息工程领域的复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。指标点 5-3:掌握电子信息工程专业仪器、仪表等现代工程工具的基本原理、操作方法,并在复杂工程问题中选择并使用。

二、课程目标与毕业要求的对应关系

课程目标毕业要求二级指标毕业要求
1234
指标点3-2:能够针对特定需求,设计满足指标和要求的系统、软硬件单元(部件)或工艺流程。3.设计/开发解决方案:能够设计针对电子信息工程的复杂工程问题解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,能够在设计环节中体现创新意识,并考虑社会、健康、安全、法律、文化以及环境等因素。
指标点4-1:能够基于科学原理并采用科学方法对电子信息系统及软件、硬件模块进行研究。4.研究:能够基于科学原理并采用科学方法对电子信息工程的复杂工程问题进行研究,包括设计实验、分析与解释数据,并通过信息综合得到合理有效的结论。
指标点5-3:掌握电子信息工程专业仪器、仪表等现代工程工具的基本原理、操作方法,并在复杂工程问题中选择并使用。5.使用现代工具:能够针对电子信息工程领域的复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。

三、教学内容和基本要求

本课程的教学内容和基本要求对上述毕业要求指标点的支持在教学中的具体体现如下:

(一)数制与码制(2 学时)

1.教学内容

学习各种进制数之间的转换,计算机中有符号数的表示、运算及溢出规则;学习 BCD 编码方法及运算、ASCII 编码方法及常用字符的 ASCII 码。

2.基本要求

(1) 掌握常用数制(2、10、16 进制数)的表示方法及其相互之间的转换;
(2) 掌握有符号数的两种表示方法:原码表示和补码表示;
(3) 掌握补码的运算规则和溢出规则;
(4) 牢记常用字符的 ASCII 码。

3.重点、难点

重点:有符号数的表示。
难点:有符号数运算的溢出规则。

4.作业及课外学习要求

完成数制与码制一章的习题,主要练习数制间的转换、有符号数的补码表示、运算和溢出判断。

(二)8086CPU 结构与功能(4 学时)

1.教学内容

学习 CPU 的外部、内部结构、功能结构、寄存器组织,存储器和 I/O 组织。

2.基本要求

(1) 了解 CPU 的外部、内部结构和功能结构;
(2) 掌握 CPU 的寄存器组织;
(3) 了解存储器和 I/O 的组织方式。

3.重点、难点

重点:CPU 的寄存器组织。

4.作业及课外学习要求完成 CPU 结构与功能一章的习题,主要练习寄存器的使用,加深对处理器状态标志位的理

解,逻辑地址与物理地址的对应关系等。

(三)8086CPU 指令系统(10 学时 $^ { + 4 }$ 学时上机)

1.教学内容

学习 8086CPU 的指令系统、数据与转移地址的寻址方式。

2.基本要求

(1) 了解 8086CPU 指令的分类;
(2) 重点掌握数据和转移地址的寻址方式;
(3) 熟练掌握常用指令的用法,包括数据传送、算术运算、逻辑运算、移位和标志位操作指令;
(4) 掌握解决复杂工程问题的程序所需的指令,包括转移、循环控制、子程序调用与返回、中断调用与返回、字符串操作和 I/O 输入输出指令;
(5) 学会定义和使用宏指令。

3.重点、难点

(1) 重点:数据的 8种寻址方式;
(2) 重点:数据传送、算术运算、逻辑运算、移位和标志位操作指令;
(3) 难点:转移、循环控制、子程序调用返回、中断调用返回、字符串操作和 I/O 输入输出等指令。

4.作业及课外学习要求

完成 CPU 指令系统一章的习题,主要练习数据的寻址、指令的合法使用、堆栈的使用以及各种指令的特殊用法等。安排 4 个学时的上机练习,主要练习 8 种数据寻址方式以及各种指令的灵活使用,利用学习的指令编写完成特定功能的语句。

5.对毕业要求指标点的具体贡献

指标点2-1:掌握了通用微处理器的寻址方式和指令集等计算机工程基础知识;

指标点4-1:对微处理器的指令系统具有全面的理解,掌握了进行汇编语言程序设计的基本要素。

(四)汇编语言程序设计(10 学时 $\mathbf { + 1 6 }$ 学时上机)

1.教学内容

学习汇编语言结构化程序设计技术,包括:分支、循环、子程序、中断服务程序设计,学习汇编语言伪指令,并结合汇编语言指令编写完整的程序,学习汇编语言程序的调试技术。

2.基本要求

(1) 分析实际问题,明确任务要求和目的,了解汇编语言设计的基础知识;
(2) 掌握汇编语言程序的完整结构;
(3) 掌握汇编语言程序汇编、连接与调试的过程;
(4) 掌握分支程序、循环程序及子程序的设计技术。

3.重点、难点

(1) 重点:汇编语言程序的完整结构;
(2) 重点:分支程序、循环程序及子程序的设计技术;
(3) 难点:子程序设计中的参数传递方式。

4.作业及课外学习要求

完成汇编语言程序设计一章的习题,主要练习分支程序设计、循环程序设计、子程序设计技术,编写完整汇编语言程序。本章学习的课外学习共安排 12 学时上机,分 3 次完成,主要练习源程序的编译、链接和调试方法,练习分支程序、循环程序和子程序的设计,并设计能够实现某一功能要求的复杂程序,并检验结果。除上机练习外,布置汇编语言程序设计大作业,实现字符串处理、数值排序和转换、系统时间修改和显示、图形图像动态显示以及数据统计等功能。

(五)总线及其形成(4 学时)

1.教学内容

学习总线的定义、分类以及 8086/8088CPU 在各种方式下的系统总线的形成技术。

2.基本要求

(1) 了解总线的基本知识和一些常用的芯片;
(2) 掌握 8086 的引脚功能及时序关系;
(3) 掌握系统总线的形成;
(4) 了解两种 CPU:8088 与 8086 的差异。

3.重点、难点

重点:8086 的引脚功能及信号时序关系;
难点:最大方式下系统总线的形成。

4.作业及课外学习要求

完成总线及其形成一章的习题,主要练习总线的有关概念、分类,CPU 引脚功能以及信号时序。通过计算机仿真加深对 CPU 引脚时序的认识,并形成总线信号。

(六)存储器设计(4 学时)

1.教学内容

了解存储器的类型以及主要技术指标,并利用常用存储器芯片完成微机系统的扩展存储器设计。

2.基本要求

(1) 了解存储器的分类和主要性能指标;
(2) 掌握几种常用存储器芯片的用法;
(3) 掌握微机系统中扩展存储器设计方法;
(4) 了解多端口存储器设计技术。

3.重点、难点

重点:扩展存储器设计方法;
难点:8086 系统中奇偶存储体的设计。

4.作业及课外学习要求

完成存储器设计一章的习题,主要练习利用常用存储器芯片进行扩展存储器设计。在计算机上通过 proteus 虚拟仿真,给系统配置存储器,并对存储器进行读写操作,检验设计是否正确。本章结束后安排一次 5 学时实验课,完成存储器扩展设计实验。

(七)常用芯片的接口技术(3 学时)

1.教学内容

学习微机系统中外设接口的编址方式、输入/输出的基本方法和常用芯片的接口技术。

2.基本要求

(1) 理解 I/O 接口、I/O 端口的概念(2) 了解微机系统中外设接口的编址方式;(3) 掌握输入/输出的基本方式;(4) 掌握常用芯片的接口设计技术。

3.作业及课外学习要求

完成常用芯片接口技术一章的习题,主要练习 I/O 端口的编址方式,基本输入输出方式的却别和优缺点,以及利用常用接口芯片进行接口电路设计。本章结束后安排一次 5 学时实验课,完成3个I/O 端口扩展设计。

(八)中断系统与中断控制器 8259A(4 学时)

1.教学内容

学习有关中断的基本概念、8086 的中断系统,重点学习可编程中断控制器 8259A 的编程与应用。

2.基本要求

(1) 了解中断的基本概念;
(2) 掌握 8086 的中断系统;
(3) 掌握可编程中断控制器 8259A 的编程技术。

3.重点、难点

重点:8086 的中断系统;
难点:8259A 的编程技术及应用。

4.作业及课外学习要求

完成第八章的习题,主要练习对中断系统有关概念的理解以及 8259A 的编程,并利用8259A 实现中断方式下的输入输出操作。此外,通过计算机仿真练习中断方式下的数据输入输出。本章结束后安排一次 5 学时的实验课,要求使用 8259A 在系统中进行扩展中断源管理。

(九)定时/计数器 8253 应用设计(4 学时)

1.教学内容

学习 8253 的引脚功能及特点、8253 的内部结构及工作原理、8253 的控制字及工作方式、8253 与系统总线的接口方法及 8253 的应用设计。

2.基本要求

(1) 了解定时/计数器 8253 的内部结构及工作原理;
(2) 掌握定时/计数器 8253 的编程技术和应用。

3.作业及课外学习要求

完成第九章的习题,主要练习 8253 的初始化编程,以及利用 8253 解决实际工程问题中出现的定时和计数应用。此外,通过计算机仿真练习通过8253实现的定时与计数应用。本章结束后安排一次 5 学时的实验课,要求使用 8253 定时设计交通信号灯系统。

(十)并行接口芯片 8255A 应用设计(3 学时)

1.教学内容

学习并行接口芯片 8255A 的引脚功能及特点、8255A 的内部结构及工作原理、8255A 的控制字及工作方式以及 8255A 与系统总线的接口方法,重点介绍 8255A 的应用设计。

2.基本要求

(1) 了解 8255A 的引脚功能、内部结构及工作原理;
(2) 掌握 8255A 的控制字及工作方式;
(3) 掌握 8255A 的初始化编程,掌握 8255A 在实际问题中的应用技术。

3.重点、难点

重点:8255A 的控制字及工作方式;

4.作业及课外学习要求

完成第十章的习题,主要练习 8255A 的几种工作方式间的区别,应用场合,利用 8255A 设计输入或输出接口,实现微机系统与外设的数据交换。并且,通过计算机仿真深入了解 8255A的工作方式及应用。本章结束后安排一次 5 学时的实验课,要求使用 8255A 设计开关显示接口以及键盘显示接口。此外,本章结束后布置硬件接口设计综合大作业,要求通过 proteus 虚拟仿真软件完成对系统总线形成、扩展存储器设计、利用 8259A 的中断设计、8253 定时器交通信号灯设计以及 8255A 并行接口打印机设计的仿真任务,实现复杂综合应用。

(十一)实验(16 学时)

共安排实验 4 个,每个 4 学时,实验内容如下:

实验名称实验内容
1.扩展存储器设计实验本实验在讲授完系统总线的形成和扩展存储器设计后开设,要求在80x86微机上选择合适的存储器芯片分别扩展设计8K字节的 SRAM和8K字节的EEPROM,要求对EEPROM中写入特定数据后,再从其中读出并写入到SRAM中,最后将SRAM中的数据和EEPROM数据进行比较,检查错误。
2.中断系统实验本实验在讲授完中断系统和可编程中断控制器8259A之后开设,要求利用单脉冲作为中断源,中断触发方式采用边沿触发,CPU响应中断后在屏幕上显示特定字符串。此外,利用一片8259A对系统中某一中断源进行级联扩展,将3个中断源通过从片8259A的IR0,IR1,IR2引脚接入系统,当中断发生时在屏幕上显示中断类型号和描述该中断的字符串。
3.计数/定时器实验本实验在讲授完定时计数器 8253及其应用之后开设,要求在实验板上扩展一片8253,利用计数器0输出2KHz方波,并作为计数器1的计数脉冲输入,将计数器1做10分频器使用,设计出硬件电路,编写程序对8253进行初始化完成工作方式选择和时常数写入,最终利用示波器观察输出波形,验证设计是否正确。此外,利用74LS273 设计简单的输出接口,用于LED显示,利用 8253进行定时,配合LED显示设计交通信号灯,红绿灯时间可自行设定。
4.可重构微处理器设计实验本实验在讲授完可编程并行接口芯片8255A及其应用之后开设,要求利用一片8255A实现一个行列扫描键盘接口,利用PA口做行线,用PB口做列线,并利用PC口控制七段LED 显示器,当有键按下时,在数码管上显示0-F用于识别按键,并设计步进电机控制的数据端口,实现按键控制的步进电机调速。在实验平台上设计硬件接口电路,并编写程序完成要求的功能。

四、课程目标与教学内容、考核方式对应关系表

课程目标教学内容考核方式
课程目标1(一)数制与码制(二)8086CPU结构与功能(三)8086CPU指令系统(四)汇编语言程序设计(五)总线及其形成(六)存储器设计(七)常用芯片的接口技术(八)中断系统与中断控制器8259A(九)定时/计数器 8253应用设计(十)并行接口芯片8255A应用设计W,Q
课程目标2(五)总线及其形成(六)存储器设计(七)常用芯片的接口技术W,D,R
课程目标3(四)汇编语言程序设计(五)总线及其形成(六)存储器设计(七)常用芯片的接口技术W,D
课程目标4(四)汇编语言程序设计W,R

注:W:作业,Q:考试,P:口头发表,D:课程设计,R:大作业

五、教学方法

针对具体教学内容,采用归纳式教学或演绎式教学,体现“学生主体、教师主导”的教学思想。以课堂讲授为主,学生自学为辅,针对具体难点问题,开展专题讨论和习题课。针对程序设计部分安排上机仿真练习,使学生熟练掌握汇编语言程序设计技术;针对接口设计部分,开设课内实验,同时布置来源于实际工程问题的大作业,使学生利用所学知识练习解决具有综合性的复杂工程问题。

六、课程学时分配

总学时 $4 8 \substack { + 2 0 + 1 6 }$ 学时,课堂讲授 48 学时,上机 20 学时,实验 16 学时。

序号课程内容学时教学方式
1数制与码制2讲授
28086CPU结构与功能4讲授
38086CPU指令系统10讲授
48086CPU指令系统上机练习8上机
5汇编语言程序设计12讲授
6汇编语言程序设计上机练习12上机
7总线及其形成4讲授
8存储器设计4讲授
9存储器设计实验4实验
10常用芯片的接口技术1讲授
11接口技术及8255A应用设计3讲授
12并行接口设计实验4实验
13定时/计数器 8253应用设计4讲授
14定时/计数器实验4实验
11中断系统与中断控制器 8259A4讲授
12中断系统实验4实验

七、考核内容及成绩评价方式

学生最终成绩由平时作业成绩、课内实验成绩、期末考试成绩和大作业成绩等组合而成。各部分所占比例如下:

 平时作业成绩: $1 0 %$ 。主要考查学生对每节课所讲授的知识点的理解和掌握程度。

 上机与课内实验成绩: $2 0 %$ 。主要考查学生对课堂理论知识的灵活运用程度,并通过

对所学知识的灵活运用考查学生完成实验要求的方案设计和程序设计能力,以及撰写实验报告的能力。

期末考试成绩: $7 0 %$ 。主要考核本课程的基本概念、程序设计和接口设计的掌握程度。考试形式为闭卷笔试,题型一般有:1、选择题;2、填空题;3、简答题;4、程序设计题;5、硬件接口设计题;6、综合设计题等。

八、说明

(一)与相关课程的分工衔接

本课程的先修课程主要是计算机导论、C 语言程序设计、数字电子技术基础、模拟电子技术基础等,后续课程主要有数字信号处理、单片机原理与应用、自动控制技术、DSP 系统设计等。该课程与先修的各种程序设计语言的联系和区别主要表现在:先修的各种程序设计语言,例如 C 语言、Visual Basic、MATLAB 等都属于高级程序设计语言,它们更多地面向应用程序设计,本课程讲授的汇编语言是与底层硬件结合最紧密的一种程序设计语言,它侧重于硬件的驱动程序设计;计算机导论介绍的是计算机系统的概要,而本课程更加详细地介绍了微机系统内部各部件的内外结构和连接方式;模拟电子和数字电子技术基础课程侧重于模拟电路和数字电路的原理,分析方法以及应用的介绍,它是本课程讲述系统设计的基础,本课程在其基础上介绍了更加复杂的系统设计原理和方法。本课程是后续几门课程的工程基础,例如数字信号处理和自动控制技术,它们侧重于信号的滤波、变换等信号处理技术,其工程实现需要借助于本课程所讲授的原理和方法。此外,单片机原理与应用、DSP 系统设计是本课程的扩展和延伸,本课程所讲授的大部分工程设计经验和方法对着两门课程的学习有重要的借鉴意义。

(二)其他说明

九、推荐教材与参考资料

(一)教材

楼顺天,周佳社,张伟涛,微机原理与接口技术(第二版),北京:科学出版社,2015。(普通高等教育“十一五”国家级规划教材)

(二)参考资料

[1] 周明德,蒋本珊,微机原理与接口技术(第二版),人民邮电出版社,2007.

[2] 王永山,王博,微型计算机原理与应用(第三版),西安电子科技大学出版社,2009.
[3] 冯博琴,吴宁,微型计算机原理与接口技术(第三版),清华大学出版社,2011.
[4] 邹逢兴,陈立刚,李春,微型计算机原理与接口技术,清华大学出版社,2007
[5] 邹逢兴,滕秀梅,徐晓红,微型计算机原理与接口技术实验指导,清华大学出版社,2009
[6] Mazidi M. A., Mazidi J. G., Causey D., X86 PC: Assembly Language, Design, and Interfacing,(5th Edition), Prentice Hall, 2009.
[7] Cady Frederick M., Microcontrollers and Microcomputers Principles of Software and HardwareEngineering (2nd edition), Oxford University Press, USA, 2009.

获奖信息

获奖等级 一等奖
年份 2021

作品信息

学时分类 1-6学时

作者信息

作者
张伟涛,任爱峰,袁晓光
学校
西安电子科技大学

电工电子实验教学资源平台 苏ICP备09069895号-19