课程介绍:
《微机原理与接口技术实验》是一门与《微机原理与接口技术》理论课程紧密结合的、独立开设的专业基础实验课程。也是计算机科学技术专业一门重要的实践课程。
本实验课程安排有一定的相关性和继承性,可以培养学生的全面理解、准确分析微型计算机硬、软件系统的能力。本课程通过精心组织的单元实验和综合设计实验,强化了理论课程的教学效果,加深学生对相关课程内容的理解,并培养学生计算机硬件技术和开发微机应用系统的实践的软件综合设计能力和课题实现综合能力。
本实验采用的实验装置为复旦大学科教仪器厂研制的FD-SJ8088A微机实验系统,它和IBM-PC任何型号的微机相连即构成一个完整的实验系统。覆盖微型计算机的处理器级的体系结构(16位和32位并重)、底层汇编及C语言编程、A/D转换、D/A转换、并串行输入/输出接口技术等。其实验系统由一块系统板组成。系统板包括系统电路和实验电路两部分,系统电路部分包括CPU、监控电路、存储器译码、I/O译码、时钟电路等部分。实验电路部分包括实验芯片电路、输入/输出电路,并提供一块面包板作为新增加的实验芯片插座。
实验基本辅助电路有:
单脉冲发生器,每按一下S1,可在J23的两个插孔中产生极性相反的两个脉冲,脉冲宽度由用户按下的时间决定。
时钟信号发生器电路。该实验装置提供两套时钟信号,分别由RC电路和8MHz晶振组成。RC振荡器的时钟信号频率可通过调节电位器P4来改变,晶体振荡器输出固定8MHz的时钟频率。
逻辑电平开关电路。逻辑电平开关电路中有八个独立的开关,开关向上时,相应的插孔输出高电平“1”,向下拨时,输出低电平“0”。
发光二极管(LED)显示电路。当输入端为高电平“1”时,发光二极管点亮,当输入端为低电平“0”时,发光二极管为暗。
交通灯显示电路。该系统提供一套摸拟交通路口交通灯的发光二极管显示电路,J16-J19四组插孔从左到右分别对应四组红黄绿灯,当输入端为高电平“1”时,发光二极管点亮,当输入端为低电平“0”时,发光二极管为暗。
计数分频电路。该实验装置提供两片74LS393组成的计数分频电路。可进行2分频、4分频、8分频直到256分频。 两芯片即可组成两独立的分频电路,也可将两独立的分频电路组成一个更大的分频电路。
模拟电压输出电路。用户调节电位器W#即可在插孔J4得到0—5V的模拟电压,为A/D转换提模拟电压信号。
键盘。该实验装置提供了一个16键的键盘。
数码管显示电路。该实验装置提供4个数码管的七段数码显示。七段数码管电路由位驱动电路和段驱动电路两面三刀部分组成。当位驱动电路输出低电平,此位数码管便显示数据,而段驱动电路的输出控制显示内容,当位控制端为低电平时,为高电平的笔画则点亮。
FD-SJ8088A微机实验系统可完成实验模块有:
单脉冲发生器(正、负脉冲), 时钟脉冲发生器(RC可调,8M晶振),
简单I/O输入(74LS244)输出(74LS373),可编程并行接口电路(8255A),可编程串行接口电路(8251A), 数/模转换电路(DAC0832),逐次比较型模/数转换电路(ADC0809),双积分型模/数转换电路(MC14433),可编程定时/计数器(8253),存储器RAM(6264),I/O地址译码电路,电平开关电路,发光二极管显示(LED)电路,计数分频电路(LS393),16键键盘电路,七段数码管显示电路,可编程键盘显示接口(8279),可编程中断接口(8259)
教学大纲:
一、课程性质与目的
《微机原理与接口技术实验》是一门与《微机原理与接口技术》(课程编号:101025)理论课程紧密结合的、独立开设的专业基础实验课程。
本课程通过精心组织的单元实验和综合设计实验,强化理论课程的教学效果,提高学生的计算机底层硬、软件综合设计能力和实现能力。
本课程内先后安排的实验,有一定的相关性和继承性,可以培养学生的全面理解、准确分析微型计算机硬、软件系统的能力。
本课程还指导本科生开展一些初步的、独立的探索性研究工作,以培养他们的创新意识和创新技能。
二、课程面向专业
计算机科学与技术专业、信息安全专业。
三、实验基本要求
1、覆盖微型计算机的处理器级的体系结构(16位和32位并重)、底层汇编及C语言编程、A/D转换、D/A转换、并串行输入/输出接口技术等。
2、单元实验在相应的理论教学的重点和难点处设置,用理论来指导实验,用实验来验证理论。
3、对于综合设计实验,教师仅给出需求分析;学生参照教程自行设计并完成实验。
四、实验教学基本内容
1、安排单元型实验6个(共11学时),即:8259中断控制器、 8255并行接口、 8251串行通信接口、A/D转换、D/A转换、DMA传送。
2、安排综合设计性实验4个(共6学时),即:实模式向保护模式转换,保护模式下的中断操作,保护模式下的PIT 8254编程,Linux下的键盘驱动程序。
五、实验内容和主要仪器设备与器材配置
序号 | 实验项目 | 内容提要 | 实验类别 | 每组人数 | 实验学时 | 主要仪器设备 | 设备复套数 | 主要消耗材料 | 所在实验室 | ||
验证 | 综合 | 设计 | |||||||||
1 | 实模式向保护模式转换 | 编写系统引导程序,转换到保护模式,并实现基本的键盘输入和屏幕字符输出功能 |
| ü |
| 1 | 2 | PC机,仿真环境 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
2 | 8259中断控制器 | 硬件触发中断,完成输入/输出 |
| ü |
| 2 | 1 | FD-SJ8088A实验仪,PC机 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
3 | 保护模式下的中断操作 | 在保护模式下对PIC 8259A编程,设置中断描述符表IDT,并设置键盘中断,实现中断方式输入 |
| ü |
| 1 | 1 | PC机,仿真环境 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
4 | 8255并行接口 | 数码管显示;小键盘监视;模拟交通灯控制。(以上3项中选做2项) |
| ü |
| 2 | 2 | FD-SJ8088A实验仪,PC机 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
5 | 保护模式下的PIT 8254编程 | 在保护模式下用PIT获取时间间隔 |
| ü |
| 1 | 1 | PC机,仿真环境 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
6 | 8251串行通信接口 | 单机/双机异步发送和接收 |
| ü |
| 2 | 2 | FD-SJ8088A实验仪,PC机 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
7 | A/D转换 | 用ADC 0809测量外部模拟信号,结果经LED输出 |
| ü |
| 2 | 2 | FD-SJ8088A实验仪,PC机 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
8 | DMA传送 | 用8237控制DMA方式的数据传送 |
| ü |
| 2 | 2 | FD-SJ8088A实验仪,PC机 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
9 | Linux下的键盘驱动程序 | 通过I/O端口获取并显示键盘设备事件信息 |
| ü |
| 1 | 2 | PC机 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
10 | D/A转换 | 用DAC 0832输出模拟信号,结果经LED输出,观察亮度。 |
| ü |
| 2 | 2 | FD-SJ8088A实验仪PC机 | 60 | 集成芯片、导线等 | 计算机专业实验室 |
六、实验预习和实验报告的要求、考核方式
1、要求学生在实验进行之前,充分地预习实验指导书和教学网站提供的相关资料,做好硬、软件设计。
2、实验报告要求包括:设计思想(方案),硬件连接图(或仿真环境配置文件),源程序及其详细注释,调试中遇到的问题,最终结果,对结果的讨论。
3、以实验报告和在实验学时中进行的验收演示为考核依据;单元实验成绩占60%,综合设计实验成绩占40%。
七、学时分配
总学时 | 理论课学时 | 实验学时 | 习题学时 | 现场实践学时 | 上机学时 | 考核学时 |
17 |
| 17 |
|
|
|
|
教学计划:
实验 序号 | 实验项目名称 | 实验 学时 | 每组 人数 | 每批 组数 | 实验开设时间 (第 周星期 第 节) | 实验地点 | 每人每时消耗材料费(元) | 备注 |
1 | TDS-MD微机数字实验系统概述 | 2 | 2 | 16 | 8/二/3、4 8/四/3、4 | H310 |
|
|
2 | 系统认识实验 | 2 | 2 | 16 | 9/二/3、4 9/四/3、4 | H310 |
|
|
3 | 数码转换程序设计及程序调试(1) | 2 | 2 | 16 | 10/二/3、4 10/四/3、4 | H310 |
|
|
4 | 数码转换程序设计及程序调试(2) | 2 | 2 | 32 | 11/二/3、4 | H310、H305 |
|
|
5 | 运算类程序设计实验 | 2 | 2 | 32 | 11/四/3、4 | H310、H305 |
|
|
6 | 分支、循环类程序设计实验 | 2 | 2 | 32 | 12/二/3、4 | H310、H305 |
|
|
7 | 排序程序设计实验 | 2 | 2 | 32 | 12/四/3、4 | H310、H305 |
|
|
8 | 子程序设计实验 | 2 | 2 | 32 | 13/二/3、4 | H310、H305 |
|
|
9 | 显示程序设计实验 | 2 | 2 | 32 | 13/四/3、4 | H310、H305 |
|
|
典型案例
013187 的 Ranos是一个非常优秀的 os 作品,可扩展性很强,文档也比较全面。
代码目录的结构如下:
+---boot
+---boot.ASM 系统初启,进入保护模式,加载内核的汇编部分
+---boot.c 定义加载内核的C语言部分
+---Common.h_
+---FAT.h \__ 结构定义
+---PE.h ____/
+---Kernel
+---Initialize 系统初始化
+---Init.c
+---Kernel
+---fs.c 文件系统
+---Interrup.c 时钟键盘中断服务
+---systemcall.c 系统调用
+---task.c 进程管理
+---Idle.c Idle进程
+---mm
+---mm.c 内存管理
+---Slab.c Slab算法管理小块动态数据
+---page.c 页的管理
+---io
+---console.c 屏幕常用函数定义
+---disk.c 读磁盘函数
+---Keyboard.c 转换键盘码函数
+---Include
+---Ranos 与特定CPU无关的头文件
+---Kernel.h
+---Interrupt.h
...
+---i386 与特定CPU有关的头文件
+---Kernel_i386.h
+---Interrupt_i386.h
...
+---asm
+---i386
+---Interrupt.asm 中断相关
+---shell 控制台应用程序
+---Demo1 演示应用程序