《微机原理与接口技术》课程教学实践
摘要:如何在有限的课时内,使学生获得最大的收益,改革课堂教学方法是十分必要的。该文介绍了作者在具体章节及知识点的处理上的一些实践与教法。主要是强调探讨式教学,强调提出问题与解决问题的教学模式。学生参与提出问题,学生就有了解决问题的愿望和自觉性。通过一步步的引导启发,学生们看到了解决问题的途径,并积极参与解决问题的过程,把学生的注意力完全吸引到课堂上,大大提高了课堂教学效果。
关键词:微机原理;接口技术;教学方法;模型机
中图分类号:G642文献标识码:A文章编号:1009-3044(2010)04-0922-02
Curriculum Teaching Practice on "Principle and Interface Technology of Microcomputer"
YUAN Bao-she
(College of Information Science & Engineering, Xinjiang University, Urumqi 830046, China)
Abstract: How to make students in big benefit within the finite classes, the reform in classroom teaching method is more necessary. The article introduces some practices and teaching methods which the writer accumulates in dealing with the right chapter and knowledge points. It is mostly emphasis on inquiry-based teaching and on "asking and solving problem" teaching model. The students participate in asking questions, so that they can have the desirability and consciousness to solve them. From inducting and enlightening step by step, the students could see the way to solve the problems, and positively participate in the course to solve them. Therefore the students" attention is attracted to the class, and it also greatly improves on the classroom teaching effects.
Key words: theory of Microcomputer; interface technology; teaching method; model machine
微机原理与接口技术课是计算机科学与技术专业重要的专业基础课。由于本课程紧密结合目前社会上广泛应用的微型计算机系统组织教学,学生毕业后接触的也都是微型计算机系统,他们在计算机硬件及体系结构方面的知识也主要来自这门课程,可以说是一门受益面广、影响力大的主干课程。
通过改进课堂教学方法,引入探讨式、解决问题式的课堂教学模式。重视课堂提出问题,重视学生参与提出问题,积极引导学生探讨解决问题,通过课堂演示实验验证解决问题[1],创造热烈、互动的课堂教学气氛,是提高课程教学质量的重要途径。
我们强调互动式课堂教学模式,就是始终坚持让学生参与课堂教学,把学生的注意力拉到课堂上来。本文介绍了作者在具体章节及知识点的处理上的一些具体教法,供交流。
1 一些章节的教学方法探讨
1.1 关于计算机工作原理
为了深刻地理解与掌握计算机工作原理,最好是通过自己设计一个简单的模型计算机。
首先开门见山地和学生一起设计一个简单的模型计算机[2]。可以先提问学生咱们设计一个几位的模型机?内存用多大?设计多少条指令等等。学生可能会说8位、16位、32位等,内存256M、512M等,指令100条200条等,你说都可以。但考虑到原理是一样的,位数多并不直观,就用8位吧。内存多少原理一样,就用256字节吧。指令多少都行,考虑到课堂时间有限,就设计15条吧。这样,就和学生达成了设计目标。
开始设计了。问学生计算机应该有哪些部件?学生说有运算器、控制器、存储器、输入设备和输出设备。
好了,你先和学生一起设计一个运算器。它包括一个8位的加法器,用两个暂存器寄存参与运算的数,画出示意框图即可。然后再提出,最好多有几个通用寄存器,用来寄存参与运算的数据或中间运算结果,可以避免过多的与内存交换数据。就设计3个吧,起个名字叫AL、BL、CL寄存器吧。
下一步,设计存储器。你说8位的D型触发器可以构成1字节的数据寄存器,如果有8个这样的寄存器就可以构成8Bx8的存储器(这里是为了形象)。那么,就需要3根地址线来选择哪个单元。画一个3-8线译码器,输出选中8个寄存器。就有了存储器的概念,有了地址线的数量与存储单元数量关系的概念,有了存储器读写的概念。256字节存储器需要8根地址线,8根数据线,外加读写控制线。所以,地址寄存器应该是几位的?程序计数器应该是几位的?学生就知道了。
下一步,设计控制器。先说控制器的功能是取指令、分析指令、执行指令。取来的指令要放在一个寄存器中,叫指令寄存器。分析指令就是对指令译码,看是什么指令?讲3-8线译码器等。咱们的15条指令用4位操作码,只需要一个4-16译码器就可以分析出取来的指令是什么指令。执行指令就是发出控制信号,在时序电路配合下可以顺序发出相应的控制信号。
把这3部分通过总线连接起来,就构成了计算机的核心部分。用一个373芯片连接8个开关做输入设备,用一个273芯片连接8个LED做输出设备,在地址寄存器下连接8个开关便于外部预置地址。这样,就设计好了一台模型计算机的硬件组成。
下面,你可以给总线起个名字,叫BUS吧。如果要把开关上的8位数送给AL寄存器,应该打开哪几个门?这些门都有控制信号,叫微操作信号。给这些微操作信号起个名字吧,例如叫K→BUS,BUS→AL等。这样,你就和学生画出了全部的微操作信号,并给每个微操作(约20个)信号都起了名字。
在幻灯片上显示该模型机的数据通道示意框图,把全部微操作信号都画上。让学生讲如果要把开关上的8位数送暂存器A,应该顺序发哪些信号?如果要实现两数相加,应该顺序发那些信号?要求每个学生都搞懂应该顺序发那些信号?然后再讨论能不能让控制器顺序发这些信号。这就引入了时序电路,在时序信号的配合下顺序发出这些控制信号,就可以完成指令的任务。
下面,设计指令系统。由于课时有限,实际设计的模型机一定要简化,便于理解,几条指令即可。例如有取立即数指令,存储器存取数指令,寄存器传送指令,加立即数指令,加寄存器指令等。用4位数表示操作码,2位表示源寄存器,2位表示目标寄存器。8位二进制数就可以表示一条寄存器加指令了。以ADDAL,BL 指令为例,可以约定它的机器指令为 0111 0110,其中0111代表寄存器加指令的操作码,其后的01代表AL寄存器,10代表BL寄存器,让学生完全看明白了。
最后,举一个只有几条指令的小程序的例子,可以包括ADDAL,BL 指令。通过地址开关用手工的办法把小程序的机器码写入内存,置上首地址,开始自动执行程序。在取指令时,将0111 0110 指令取到指令寄存器,译码器分别对操作码译码知道是ADD指令,源、目标寄存器译码知道了是ADDAL,BL 指令。要执行这条指令,应该顺序发哪些信号呢?学生们说出来了。然后,告诉学生用组合逻辑电路就可以产生这些信号,学生明白了。
模型机麻雀虽小,五脏俱全。要多花一点时间(至少5节课),完全搞懂一个简单的单总线架构的模型计算机设计,确实搞懂计算机的程序存储、自动执行的原理,把握计算机的本质,是学好本课的关键。
1.2 关于芯片引脚
学习芯片时不是简单的介绍该芯片内部有什么?有那几条腿?而是问学生,你认为该芯片内部应该有什么?应该有哪些腿?例如一个2KB×8的存储器芯片,应该有8根数据线,11根地址线,1根片选线,1根读写控制线。一片8255,应该有哪些引脚?学生们看到,3个并行口就有3×8=24线,需要8根数据线,需要地址线,需要片选线、读写控制线等,一算,自己就推出来了,不用背。
1.3关于时序图
教材上一开始就讲到总线周期时序图[3],学生感到不能理解。可以先从简单的时序图开始,搞懂一种,后面就都理解了。以存储器读写时序为例,让学生自己提出测试1KB×8的存储器芯片的测试方案,然后教师用多媒体在屏幕上打出测试方案图。10个开关做地址线,8个开关控制数据线,数据线上连8个指示灯做数据显示。让学生自己用语言描述测试步骤:先拨上地址,再置上数据,给出片选信号,发写命令等。自己能用语言熟练的描述出来了,知道了先做什么?后做什么?就有了时序的概念。再画出时序图,就理解了。可以把例子举得再细些,例如从内存1230H单元取一个数,设该单元原先存的数据是56H,则可以在地址总线上标注1230H。读命令后,经过一定的时间,数据56H被读出,在数据总线上标上56H。存储器读写时序图就看懂了。由此,可以引申到总线周期时序图。
1.4 关于8253
关于定时器、计数器,不是一上来就讲8253内部,而是先假设自己用J-K触发器设计了一个8位的计数器芯片,画一个示意框图。它该有8根数据输出线,8根数据预置线,1根计数脉冲输入端,一根计数溢出输出端,串行计数。先讲加1计数,又讲到减1计数,再讲到予置数后减1计数。原理讲清楚了,再谈到能否用这个减1计数器当定时器?讨论定时器与计数器是同一套电路,区别在哪里呢?知道了,计数器的输入是已知的固定频率时,就可以做定时器。然后,告诉同学们,我们很需要这样的定时器、计数器,而且还需要好几个。8253就是这样的定时器、计数器。它包括3个独立的计数器,因此就应该有哪些引脚?学生自己就知道了该有哪些引脚,内部该有哪些部件,该怎样控制它工作。原理搞懂了,思路清晰了,编程序控制8253就容易了。
1.5 关于8237
每节课都要把单总线架构的微型机框图画出来,然后具体介绍其中的某一部分。使学生看到了我们今天的课讲得是哪一部分?该部分在整个计算机中位置与作用? 根据原理它应该与哪些部件相连? 帮学生理清思路。在讲解8237芯片时,先把单总线架构的计算机框图的存储器到I/O接口之间留一个空间,问学生,成块数据传送时如果用程序控制,是什么样的?用中断控制,是什么样的?引入DMA原理,能不能搞一个芯片,放在存储器到I/O接口之间,专门负责完成这件任务?如果应该,那么这个芯片应该是什么样子的?学生自己就思考了。需要地址寄存器寄存存储器的首地址,需要计数器控制传送的字节数,需要方式寄存器约定工作方式,需要由这个控制器发出读写控制信号等等。在这个芯片工作时,需要控制总线,因此CPU应该放弃总线控制权。原理说清楚了,学生自己感觉到了,你再拿一个实际的8237去讲,学生就明白了。
1.6 关于8251
讲串行接口时先回顾并行接口。提出设计一个串行接口,考虑用一个并行寄存器,先把8位数存起来,然后再串行发出去。知道了需要在并行口的输出端加一个串行移位器,移位器需要时钟才能移位,这就是发送时钟,在时钟的同步下一位一位的发送或接收数据。因此,芯片应该有8位数据线,应该有移位输出与移位输入线,应该有移位时钟线,应该有读写控制线及中断请求线等等。收发双方应该使用相同的移位频率。这样,就明白了8251的设计。
2 结束语
通过引入探讨式课堂教学模式,强调了互动教学,引导学生从被动接受到主动去思考,从死板记忆到按原理分析记忆。学生们学习兴趣高,理解的透,掌握的好,是提高课程教学质量的重要途径。另外,所有的举例都有学生参与,变数大,需要的课时多。这就要求教师非常熟悉教学内容,熟悉本课程相关的应用,并能把前期的课程的内容与后续课程的内容有机的结合。同时,要注意把握主次,核心思想掌握后,有些具体处理上的细节就不细介绍了,因为课时有限。
参考文献:
[1] 袁保社.《微机原理与接口技术》课堂实验教学方案设计[J].电脑知识与技术,2008(3):1361-1363.
[2] 王爱英. 计算机组成与结构[M].北京:清华大学出版社,2007-11:176-183.
[3] 戴梅萼,史嘉权.微型计算机技术及应用[M].北京:清华大学出版社,2003-11:29-35.