基于8255的5位脉冲计数仿真电路的设计与实现
2014-12-05陈日莉
陈日莉
摘要:该文的研究目的是用Proteus软件设计一个5位8255脉冲计数仿真电路。该电路的实现用到了主板电路和译码电路,文中给出了脉冲计数仿真电路和汇编实现代码。该文同时讨论了影响检测分辨率的相关因素。该电路已由笔者应用在自己的实践教学中,该电路的有效性已得到验证。
关键词:Proteus;仿真;8255;脉冲计数
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)31-7519-04
Abstract: The aim of this research is to use Proteus software to design a 5 bit 8255 pulse counting simulation circuit. This circuit is realized by using the motherboard circuit and decoding circuit; this paper also presents pulse counting Simulation Circuit and assembly language implementation code. At the same time, this paper also discussed the related factors which interfere with measuring resolution.The circuit has been used in practice teaching by the author, so the effectiveness has been validated.
Key words: Proteus;simulation;8255; pulse counting
在介绍仿真电路之前,首先需要说明一下微型计算机的结构组成,以便于能很好地理解仿真接口电路是如何接入和工作的。现在的微型计算机基本都采用三总线结构 [1]。所有的设备部件都“挂”在总线上,包括核心部件CPU。这种结构的最大优点是可扩展性强、可维护性好,使用成本低。所以,目前市面上的微型计算机基本都采用这种结构。该文讨论的计数器电路属于I/O电路,下面详细介绍该电路。
1 PC主板和译码电路
微型计算机的部件(设备)都是通过总线连接在一起的。我们设计的功能性电路,必须有基本电路的支持,才能完成特定功能。以8086为蓝本的基本实验仿真电路有:主板和译码电路。
1.1主板
主板仿真电路是所有其他仿真电路的基础电路。我们将这个电路做成一个规范电路,每次上实验课时连同已经做好的译码电路一起发给学生,让学生在其基础上,添加设计一个功能接口仿真电路,完成实验。主板电路根据地址、数据信号分离三要素原理,CPU的AD0~AD15分别通过地址锁存器和数据驱动器,接入地址总线A0~A15和数据总线D0~D15,地址总线的高4位A15~A19和高8位有效信号#BHE,通过另一片锁存器接入总线。地址锁存器和数据驱动器的控制信号分别是地址锁存允许信号ALE和数据允许信号#DEN。ALE负责在T1期间分离出地址信号,并将其锁定到地址总线上,为系统提供地址信息。#DEN在T2~T4阶段接通数据驱动器,为系统的数据交换提供通道。[2]根据这一原理设计的8086最小模式仿真电路如图1所示。电路中地址锁存器使用74LS373芯片,数据驱动器使用74LS245芯片。目前,很多资料在讲到锁存器和驱动器时,仍以Intel8282和Intel8286为例。[2]其实,这两款芯片在市面上已很难找到了,替代它们的一般都是74系列的芯片,比如273,373,244,245等芯片。在8086仿真实验中,主板电路主要提供三总线信号。
4 检测分辨率分析
现在有一个问题,就是本电路可以计数脉冲的最大频率是多少?也就是检测分辨率的问题。从读入第一脉冲,计数输出完毕,到读取下一个脉冲,程序一共经历了43条指令,156个时钟周期[3]。那么,该电路计数的分辨率应该是CPU主频的1/156。假如CPU的主频是4.77M,电路的计数分辨率应该就是30.527K。如果程序中将计数循环改为宏调用,可节省32个时钟周期,计数分辨率可提高20%。这是一种以空间换时间的方法,这样做使程序代码空间扩大44%。关于程序空间和时间的问题,将另文讨论。
5 结束语
这种仿真电路目前我们已大量用于教学实践中,与传统的实验箱实验相比有着独特的优越性。
1) 可视化的电路教学。相对于实验箱的“黑盒子”式的电路,仿真电路展示了电路的内在联系,更加有利于学习与理解。
2) 实验电路设计更加灵活。实验箱电路是已经设计好的电路,可改变的线路有限,更不允许重新设计新的电路。而仿真电路,老师可以根据教学进度,从易到难,逐步带领学生设计实验电路。
3) 实验模式的变革。原来的实验箱电路,所做的只能是“验证型”实验,而仿真电路可以完成“设计型”实验,甚至“综合型”实验。
最后要强调的是,该文的电路设计主要用于教学,其基本出发点是使学生学习类似电路设计的原理和基本方法。但在教学中一定要强调仿真电路与实际电路之间的差距,比如像电路中一些去耦电容的使用,是需要电路设计经验和应用测试的。还有实验室里设计的电路和现场使用电路的差距,比如毛刺干扰会引起检测点的误触发等等。只要我们认真设计每一个电路和实验课程,仿真电路教学应用一定会带来喜人的效果。
参考文献:
[1] 谭浩强.微机原理与接口技术[M].北京:清华大学出版社,2001:181-183.
[2] 白素怀.Intel8086十六位微型计算机硬件软件及接口技术[M].西安:陕西科学技术出版社,1986:12-16.
[3] 沈美明,温冬婵.IBM-PC汇编语言程序设计[M].北京:清华大学出版社,2007:435-453.
[4] 戴梅萼,史嘉权.微型计算机计数及应用[M]. 4版.北京:清华大学出版社,2008:17-19.
[5] 刘海成.单片机及应用系统设计原理与实践[M].北京:北京航空航天大学出版社,2009:32-35.