张玲 姚莉
摘要:针对数字逻辑电路实践教学中存在的问题,提出将集成数字芯片的驱动编写融入实践教学,对数字电路课堂教学涉及到的集成芯片,利用C语言实现驱动对其进行控制,并利用MCU芯片进行仿真。不仅提高了学生的学习兴趣和编程能力,而且有效改善了传统单纯验证性实验的教学效果,提高了学生对集成数字芯片的应用能力,为后续硬件相关课程的学习提供基础和保障。学生的反馈和阶段考核结果表明,该实践方式能有效地提高数字逻辑电路的教学效果。
关键词:数字逻辑电路;芯片驱动编写;实践教学
一、引言
数字逻辑电路是计算机专业的一门基础课,其教学目标包括数字信号的概念,组合逻辑电路和时序逻辑电路,常用的数字集成芯片,数字电路设计流程及应用。传统的数字逻辑电路实践教学一般采用传统的验证性实验[1-2]。为了提高学生的学习兴趣和动手能力,基于数字模块的综合设计[3]将抽象的数字逻辑模块与具体应用联系起来,对学过的电路模块通过仿真实现出来。基于硬件描述语言的数字集成电路前端设计法[4-5]将硬件描述语言引入进来,用硬件语言行为描述法描述。这些实践教学方法取得了一定的成效,一定程度上提高了教学效果。但针对计算机专业的同学来说,更注重的是数字集成芯片将来的应用,特别是数字集成电路驱动的编写和应用,如何将数字逻辑电路驱动的编写嵌入到数字逻辑电路时间教学中,并通过时序控制使得数字集成芯片工作起来是数字逻辑电路教学的一个重要任务。
本文提出以驱动编写为导向的数字逻辑电路实践教学,针对数字逻辑电路常用组合逻辑模块,如编码器和译码器模块、数据选择和分配器模块、串并并串转换等模块进行分析,通过微控制单元(MCU)对其时序进行控制,实现集成数字芯片的驱动;针对常用时序逻辑模块,如计数器模块,寄存器模块,通过MCU收发信号,实现相关集成数字模块的驱动。这种实践教学方式不仅提高了学生的学习兴趣,加深了对数字逻辑模块的理解,掌握相关硬件编程方法,而且对嵌入式开发过程有了一定的了解,为后续学习打下基础。教学结果表明以驱动为导向的实践教学较大程度的提高了数字逻辑电路的教学效果。
二、以驱动编写为导向的数字集成电路实践教学的教学设计
针对数字逻辑电路涉及的基本教学模块,根据数字逻辑电路教学的经验,在教学中设计了三个部分的实践教学:针对组合逻辑电路部分的实践,针对时序逻辑电路部分的实践安排和综合实践教学安排。
针对组合逻辑电路涉及的数字集成电路芯片,设计了以下相关模块:集成双全加器74LS183/C661的连线及驱动、4位集成数值比较器74LS85/C663的连线及驱动、8线-3线优先编码器74LS148、集成3-8译码器74LS138、电平驱动显示译码器74LS48、集成4选1选择器74LS151、1路4路数据分配器74LS139。
针对时序逻辑电路涉及的数字集成电路芯片,设计了以下相关模块:集成4位二进制同步加法计数器74161的连线方式及驱动实现、集成十进制同步加法计数器74160、8位单向集成移位寄存器74164、4位双向移位寄存器74LS194的连线及驱动实现、串并转换芯片74HC595和并串转换芯片74HC165的驱动的实现。
综合实践安排包括常用组合和时序逻辑模块组成的综合系统,本部分安排了两个小系统的实现:数字时钟的设计和实现和六路抢答器的设计和实现。
数字时钟利用基本数字电路制作小时电子钟,显示时分秒,其电路包括24进制计数器,60进制计数器,译码电路和显示电路模块。
六路抢答器利用数字电路设计抢答器,它允许8路参加,用LED小灯显示抢答结果,利用清除键对LED小灯灭灯。此电路包括门控电路、开关控制电路、数据锁存电路、8-3优先编码模块,案件输入模块、显示模块。
本实践教学穿插在理论课上和课后进行,在学习每部分数字模块基础上,对相关模块的应用环境和作用作以介绍,给出相应的原理图及时序控制原理介绍。这部分的教学要求学生进行预习,在时间教学课堂前,以报告形式完成硬件电路设计及相关关键代码设计,循序渐进,在实践教学时进行调试,并利用互动教学来验证、巩固教学内容。
三、数字集成电路芯片驱动编写--以串并转换集成芯片74HC595为例
数字集成电路芯片驱动编写的实质即对该芯片工作时序的控制。本小节为串并74HC595并串集成芯片为例,说明集成电路芯片驱动的编写方法。
74HC595是将串行信号转成并行数据信号的数字集成芯片,为了实现串并转换,它具有一个串行输入口,通过内部8位移位寄存器经过8个时钟周期将8个1位的串行信号转换成一个8位的并行信号,通过其内部8位缓冲寄存器及一个具有三态输出的移位寄存器将并行数据送出。为了让74HC595实现串并转换,必须根据其工作时序给出正确的控制信号。其工作时序图在图1中给出,该结构串行数据的输入和并行数据的输出分别用不同的时钟控制,分别为SCK和LCK,[Q0→Q7]并行输出端,[Q7']串行数据输出。
如时序图所示,其基本时序运行如下:在输入时钟SCK的上升沿控制下,8位串行数据从SDI送入,8个周期后,该8位数据被送入到74HC595的缓冲区;接着在输出时钟LCK的控制下,将8位并行数据从输出端Q0-Q7送出。并行数据输出在时钟信号LCK控制下,一个时钟上升沿便可完成输出。8位串行数据num1转成并行数据的关键时序代码为:for (j=0;j<8;j++) {CY=num1&0x01;num1=num1>>1;ds=CY;SCK=1; SCK=0; }
四、小结
本文提出以驱动编写为导向的数字电路的实践教学方法,并应用到数字电路实践教学中,学生反映较好。以驱动编写为导向进行数字电路的实践教学将抽象概念具体化,使学生认识到数字模块的作用和其应用场合,并利用proteus仿真软件进行仿真,增加了学生的学生兴趣。通过综合系统的实现,提高了学生的动手能力,并提高了学生利用C语言进行硬件编程的编程能力,为后续相关硬件课程的学习及从事数字集成电路的工作打下基础。
参考文献
[1]王尔中,庞涛,李鹏,郑丹,Multisim和Proteus仿真在数字电路课程教学中的应用,实验技术与管理,30(3):78-81.2013.
[2]唐凯,吴伟力,集成电路设计课程实验内容的探索,集美大学学报, 2013,14(3):121-124.
[3]毛松,EDA实验在数字集成电路设计课程中的应用,教育论坛,2012:159-160.
[4]陈海进,硬件描述语言与数字集成电路课程教学,2003,2(3):60-62.
[5]夏少波,荣丽丽,陈兆庆,数字集成电路试验教学探讨,山东电大学报,2008,4:39-40.
湖北理工学院教研项目:2014c25。
作者简介:张玲,女,(1980-),讲师,湖北理工学院计算机学院。endprint