单片机系统设计中开关的使用技巧

🏠 首页 《无线电》杂志 1996年 🔗 第1期 🔗 第31页 分类:无线电技术自学经验交流 🔗 陆小华 🔗, 周振安 🔗

开关是电路的基本器件之一,虽然种类繁多,结构各异,但就其本质可分为两大类型:一种是常开式(或常闭式)开关,它只有一种稳定状态,只有当人去触及并保持它时才改变状态,手一松开又自动恢复到原态。我们通常称这种开关叫按钮开关。用按钮开关构成的计算机键盘是微机系统人机会话的主要输入手段,因而其应用之广泛自不待言。有关这方面的应用介绍,文章、资料很多,因而本文不作介绍。

另一类型的开关就是我们通常使用的普通开关,它有两个稳态,即断开和闭合两个稳定状态,故有时我们也称其为状态开关。状态开关看起来简单,但在电路设计中若灵活使用,可使电路设计质量大大提高。本文将着重介绍这方面的使用技巧。

单片机管理下的状态开关使用

状态开关在传统用法中,多用来控制电路中某点的通与断两种状态,如电源开关等。在单片机系统中,当我们用状态开关作为系统输入器件来使用时,一旦被单片机管理起来,人们就可以实现用开关对机器的控制运行。如果用多个开关组合进行状态编码,就可以大大方便复杂系统的功能实现,从而灵活地实现人对机器的实时控制。

1.单片机与状态开关的基本接法

图1给出了单片机8031与状态开关S的两种基本接口方法。两个开关的状态都是通过8031的P1.0口读取。

图1
图1 🔍原图 (684×359)

图1(a)中,当S断开时,P1.0=1;当S闭合时,P1.0=0。

图1(b)中,结论正好相反,即当S断开时P1.0=0;S闭合时,P1.0=1。但无论哪种接法,均是通过开关S来控制P1.0的状态(“1”或“0”)。

显然,8031通过指令Move,P1.O可读取S的状态,根据开关的不同状态实现不同的功能,从而将人的意志传达给机器。

一个开关可以有两种状态,若用多个开关组合,就可以实现更多的状态编码,而每一种状态编码都可以定义一种功能。但要注意,这种用法虽然和通过键盘输入命令有某些相似,但本质上是有差别的。单片机对键盘的管理比起对状态开关的管理要复杂得多,键盘命令要求单片机在瞬间响应,单片机要一个不漏地捕捉到键盘键入的命令,就要定时地周期性扫描键盘,而对状态开关的管理,只在需要时读取开关状态就行了,根本无须周期性扫描键盘。很显然,它们各自的特征决定了二者有着不同的应用场合,无法互相取代。

下面举出状态开关在单片机系统中的几种常见用法。

2.使用举例

例l.某个单片机控制数据采集系统,其采样间隔为三十分,一小时,二小时,四小时可选。一种最简便的办法就是用两个状态开关组成四种状态编码来实现系统采样间隔可选。硬件方案如图2所示。

图2
图2 🔍原图 (461×302)

图2中P1.1、P1.0的编码与采样间隔的对应关系如下:

P1.1 P1.0 采样间隔

0 0 30分

0 1 1小时

1 0 2小时

1 1 4小时

即当S2、S1都闭合时,数采系统的采样间隔为30分一次;S2、S1都断开时,采样间隔为4小时一次。

S2、S1对系统采样间隔的控制过程可用图3框图来示意。

图3
图3 🔍原图 (440×641)

例2.在一个主机四个从机的多机通信系统中,用开关的状态编码实现对从机的地址编号。

如图4所示,四个从机分别通过状态开关编码定义了自己的机号(或地址号),分别为01号,02号,03号,04号。

图4
图4 🔍原图 (493×260)

主机发出的任何命令都必须包含有机器号,通过机器号来指定哪个从机应执行该命令,哪些机器不必执行该命令。实际上,四个从机对主机发出的任何命令都可接收到,但从机首先对命令中的机器号加以识别,即与本身机号加以比较,如果命令中的机号与本机机号一致,则执行该命令;若机号不符,则不作任何响应。各从机对主机命令的响应可由图5框示意。

图5
图5 🔍原图 (355×588)

同样从机对主机发请求时,也必须同时包含本身的机号信息,以便主机能识别出是哪台从机发出的请求。

从机机器号的编码也可采用图2所示电路。

利用状态开关改变电路组态

利用状态开关的灵活性来改变系统中部分电路的组态,从而实现多种功能扩展或一机多用,这也是现代电路设计中常见的设计思想。

例3.利用状态开关实现单片机系统的存储器扩展的灵活性。

我们知道,静态随机存储器6264、62128、62256均为28脚DIP芯片,它们之间仅引脚1,26接法不同,若将板上插座的1脚26脚通过两个状态开关进行控制转换,则该插座就可实现对6264,62128、62256三种存储器芯片的兼容。具体接法如图6所示。

图6
图6 🔍原图 (627×738)

图6中,当S2、S1都断开时,l脚、26脚均被电阻上拉为高电平,此时可插入6264(8KBX8);当S2断开,S1闭合时,26脚接单片机的地址总线A13,此时管座可插入62128(16KBX8);当S2、S1都闭合时,26脚接地址总线A13,1脚接地址总线的A14,则此时可插62256(32KBX8)。设计者可根据实际需要插接不同容量存储器时,只须将开关S2、S1拨到相应位置。

例4. 利用状态开关实规模拟通道的单端输入和双端输入之间的转换。

图7(a)所示为单端输入式电路,由两片八选一模拟开关4051实现16路单端输入式的模拟通道。模拟开关4051的八个输入端由C、B、A的编码选择,C、B、A的八种编码状态000~111分别对应l~8道。3脚为输出端,6脚为片选端(高禁止,低允许)。片选端和通道选择信号由单片机的某个输出口来驱动。显然,当Q8=0时,4051(l)允许,4051(2)禁止,C、B、A的编码将4051(1)的相应输入端与输出脚3接通。当Q8=1时,4051(1)禁止,4051(2)允许,C、B、A编码将4051(2)的相应输入端与输出脚3接通,从而实现16通道单端输入工作方式。

图7
图7 🔍原图 (1264×1612)

图7(b)为双端输入式电路,与图7(a)相比较,两片4O51仅输出端3脚和片选端6脚接法不一样。图7(b)中4051(l)的3脚接运放OP的反相端,4051(2)的3脚接运放OP的同相端。为了实现差动信号输入,两片4051必须同时允许,故图7(b)中用Q8同时控制两片4051的6脚,当Q8=0时,两片4051都允许,反之Q8=1时,两片4051都禁止。图7(b)构成的8通道差动式输入的端钮显然是l-9,2-10,…8-16,可见同样的硬件资源,双端输入比单端通道数要减少一半。

仔细观察图7(a)、(b)两图发现,只要将图中两片4051的3脚、6脚作适当处理,即采用状态开关(或跳线)就可将(a)、(b)两个电路组合到一起,实现多组态电路的合并,电路结构如图8所示。

图8
图8 🔍原图 (1434×799)

图8中采用了S1、S5共五个状态开关来实现电路组态变换,其对应关系如下:

当S1、S3、S5闭合,S2、S4断开时,图8电路等效于图7(a)电路,即单端输入方式;

当S1、S3、S5断开,S2、S4闭合时,图8电路等效于图7(b),即双端差动式输入方式。

上述设计思想在现行电路设计中被广泛采用,利用这种思想可以大大提高电路设计的性能价格比。

拨盘开关的接口及应用

拨盘开关简称拨盘,其原理可视为多个状态开关的组合,在智能化的测量仪表中也经常使用,这里作一简单介绍。

l)BCD码拨盘的结构及逻辑真值表

一片拨盘实际上是四个状态开关按照一定的逻辑关系组合而成的。BCD码拨盘有0~9十个位置,或十个状态。每个位置分别与0~9相对应,代表拨盘输入的十进制数。拨盘共有五条引出线,如图9所示,其中C为输入(控制线)l、2、4、8为输出。这四根输出线与控制线C在内部或通或断,按照一定逻辑关系受控于拨盘的位置。下表给出拨盘位置与内部开关的逻辑真值表,其中输出为“0”表示该线与控制线C断开,为“1”表示该线与C接通。

图9
图9 🔍原图 (386×447)
图10
图10 🔍原图 (800×536)

由输入输出逻辑真值表可知,当控制线C接高电平时,其输出状态正好是输入十进制数的8421代码。

2)单片拨盘与单片机的接口

图10给出一片拨盘与8031单片机的接口电路,其中控制线C被上拉至V\(_{cc}\),所有输出线通过10kΩ电阻接地,四根输出线通过8031的P1口连接。显然,所有与C内部相连的输出线状态为“1”,内部与C不连的输出线状态为“0”(这种逻辑关系称为正逻辑)。

图11
图11 🔍原图 (751×431)

由P1口读取的状态即是拨盘输入十进制数的8421代码。例如拨盘位置为“6”时,按照逻辑真值表应该是2、4线与C接通,则8031由P1口读取的代码应是0110。

同理也可将拨盘接成反码输出的形式,如图11所示,控制端C接地,输出线通过10kΩ电阻接电源V\(_{cc}\),此时8031由P1口读取的代码即是拨盘输入数的反码。例如拨盘输入5,根据逻辑真值表,应是1、4线与C接通,由P1.3~P1.0读取的状态为1010各位取反后为0101,正好是5的BCD代码。

图12
图12 🔍原图 (751×395)

3)多片拨盘与单片机的接口

一片拨盘可以输入一位十进制数,当有多位十进制数需要输入时,则可将多片拨盘组合起来。图12示出四片拨盘与单片机系统的接口电路。

图13
图13 🔍原图 (1226×718)

图12中拨盘1、2组成一个字节,拨盘3、4组成一个字节。当P1.0=0时,输入口读取的是拨盘1、2的输出;当P1.1=0时,输入口读取的是拨盘3、4的输出。由于4个拨盘的输出端都通过电阻上拉,而控制端C是低有效,因而输入到单片机的都是拨盘的反码。

注意,P1.0、P1.1不能同时为“0”,否则会出现混乱!

4)拨盘的应用

①在智能测量仪表中,用拨盘来控制某些参数,例如智能信号源的输出频率可以用拨盘来调节,精密直流电压源的电压输出幅度也可用拨盘来调节。

②在多输入通道采集系统中用拨盘来指定系统对某个通道完成特定功能。例如只对某通道进行连续采样,或者需要显示某个通道的信息等等。

总之拨盘的应用领域是很多的,本文限于篇幅,就不列具体实例了。 (周振安 陆小华)