工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->光电电路图->其他光电实用电路图->基于单片机构成的呼叫指示系统

基于单片机构成的呼叫指示系统

作者:dolphin时间:2016-09-29

  在大型机关、旅馆和医院中,常需要有一种内部联络和呼叫系统,以便在旅客(病员)和服务人员之间建立必要的联络。而一般的内部通话系统都比较昂贵,经常采用的是比较便宜的呼叫指示器。本文介绍的这种呼叫指示系统在声音提示的同时,能够用视频显示各呼叫点的号码(房间号或床位号)。其另一个优点是:这种由微控制器组成的呼叫指示系统结构则相对简单,成本低,安装也很方便。

  这种呼叫指示系统具有以下特性:

  1.仅用两根线就可以连接所有呼叫点。

  2.系统最多可连接36个呼叫点(分为两个回路,每个18个点)。

  3.控制板上的7段码显示器可指示呼叫点的号码,同时蜂呜器产生音频报警。蜂鸣音可以用应答键终止。

  4.改变呼叫点的号码不需要改变连接线,十分方便。

  5.系统还可以很方便地扩展更多的呼叫点。

  一、系统概述
  
  上图给出了呼叫指示系统的原理框图。系统包括:通过一根双芯屏蔽电层肘,双路系统更为有效。

  下图显示了分布在两个回路中的不同呼叫点的连接方式下表。列出同一层和不同层呼叫点连接详情。

  二、硬件结构
  
  下图给出以Motorola公司的MC68MC7051JIA微控制器为主组成的一个呼叫指示系统的4个主要部分。分别为:呼叫检测部分;模拟/数字转换(ADC)部分;显示部分和微控制器部分。当呼叫检测部分检测到某个呼叫点有按键按下时,一个(由与此按键串联的电阻所决定的)直流电压通过导线传送到模拟/数字转换(ADC)部分。ADC将此模拟信号转换为相应的数字信号。再经微控制器作译码和识别,并在7段码显示器上显示出呼叫点的号码。

  呼叫检测部分:用双芯屏蔽电缆将呼叫点与控制器连接在一起。使用屏蔽电缆是为了减少干扰。电阻Rext1~Rext18分别与按键1~按键18串联后接入回路。对于回路1和回路2来说对应的电阻值相同。呼叫回路1和回路2由一个6.4V的有温度补偿的电源供电。R24和R25(1.2k)用来限制电源的电流。R22和R23固定在控制板上,电容C11和C12旁路噪音信号。Vo是当某一呼叫键按下时,在内部电阻R22和R23上的电压降。各呼叫点所使用的典型终端电阻值和其所对应的电压降VO的值见下表。电压降Vo的值是由每次按下的按键(严格地说,是由键上串联的电阻值)所决定的。

  CD4051(lC6)是一个CMOS的8选1模拟多路选择器。具有二进制数字控制端A、B和C,用此3位控制信号选择相应的8个通道之1连接到输出端。下图给出了集成电路CD4051的连接细节。本项目仅使用了CD4051的两个通道。

  两个呼叫回路的输出由多路选择器不断地扫描,回路1的输出接到通道0(CH-O),回路2的输出接到通道1(CH-1)。

  恒温补偿电压源Vret由国家半导体公司的温度补偿雪崩二极管LM329(IC5)来驱动。使用温度补偿电压源是非常必要的,因为Vret的一点变化,都会引起电阻R22和R23上的电压降变化,从而导致呼叫点号码识别错误。

  集成电路LM329产生固定的电压输出值为6.9V,并且具有低达0.8Q的动态阻抗,低的动态阻抗缩小了由于输入电压变化、负载变化和馈入电阻值漂移所引起的误差。

  当所有呼叫键均未按下时,电压Vo是0伏。当有键按下时Vo的值由下式给定:

  VO-VrefxR22/(R24+Rext+R22)(伏)这里R24为1.2kΩ,而R22为10kQ。集成电路LM324(lC4)中包括N1~N4,做为电压跟随器用来分别缓冲各输入信号电压。

  模拟/数字转换(ADC)部分:

  R22上的电压在有呼叫键按下时,变化范围在OV—5.2V之间(见下表)。这一模拟电压由ADC0801(lC2)转换为数字形式。ADC0801是一个8位精度的逐步逼近型CMOS模/数转换器。20脚DIP型封装;输入转换电压范围为0~5V;用单-5V电源供电。有两个模拟电压输入端分别是:Vin(+)和Vin(-)。

  可用于不同形式的电压输入信号。当模拟信号是单极性,即电压变化范围在0~5V之间时,Vin(+)用做信号输入,而Vin(-)接地。

  模/数转换器的第4脚(CLK-IN)需要一个时钟信号。其频率范围为lOOkHz—800kHz。用户可以有两种选择:可以在CLK-IN脚上接入一个外部时钟;也可以通过在(19)脚和④脚上外接电阻和电容来使用片内时钟。这里我们使用第2种方法向ADC提供时钟,时钟频率按下式计算。

  f=l/l.1RC(Hz)ADC0801的3个信号(CS,WR和RD)用于控制与微控制器接口。当片选信号CS变低电平时,芯片有效。当写信号线WR变低时,内部逐次逼近型电阻复位,同时输出线变为高阻状态。当WR的电平由低变高时,A/D转换开始。转换完成后,中断请求线INTR保持为低电平,并且数据被放到输出线上。INTR信号用于表示A/D转换已经完成。在将读出线RD变低而读出数据之后,INTR线复位。

  vCC为5V时,ADC的输入电压可以在0~5V范围内,对应的数字输出值为OOH~FFH之间。但是,通过使用Vref/2脚,可以将满量程时的输出限制于较低的范围内。Vref/2上的电平决定了转换步长的大小。例如,一种可选的步长是25mV(6.4/256),就是说:Vin(+)上的6.4V模拟电压可以转换为输出端数据FFH(11111111b)。

  ADC的时钟频率约为600kHz.从而得到约100ms的转换周期。

  ADC可以连续地将模拟输入转换为数字输出。这减少了当两个或更多的呼叫开关同时按下时出现错误的可能性。

  下表给出了不同呼叫点产生的模拟电压Vo和转换后得到的数字值。

  当没有呼叫时,对应的数据值从10D~200D(参考下表)。转换后的数据需经微控制器的进一步的识别和处理,产生呼叫信号。

  锁存和显示部分:显示设备是用户和呼叫指示器之间的接口。呼叫点的位置以号码形式显示在以时分扫描技术驱动的3个7段码显示器(DIS1~DIS3)上。DIS1显示楼层号,同时DIS2和DIS3显示呼叫点号。所有7段码显示器共享一组公共的输入线,当第1组要显示的数字输入时,仅有第1个7段码显示器使能(工作),在几个毫秒之后,当第一组数据被后面的数字数据替代时,恰好第2个7段码显示器使能。所有数字都以这种方式显示出来后,继续这一循环。由于这一过程每秒重复100次,产生的效果是:所有的数字显示都一直在亮着。74LS47(lC7)是BCD-7段码的译码/驱动器;晶体管2N2907(T1~T3)用于共阳极7段码显示器的驱动。

  微控制器(ICl)的端口A用于读取ADC的输出,即要显示的数据。8位锁存器74LS373(lC3)用于避免总线的竞争和冲突。在显示器刷新时锁存器变为可以穿透,数据按显示要求由微控制器提供,通过IC3送到显示器。在此期间,ADC0801的数据线由于RD和WR电平为高而处于高阻态。一旦全部数字刷新完毕,微控制器从ADC读取数据时,锁存器变为不可穿透,这样即使数据线上有某些变化,也不会影响到显示的数据。

  假定要显示的数据是BCD码‘126’。首先,‘1’的BCD码(0001)被放在74LS47(lC7)的输入端,IC7的输出端产生相应的7段码,经晶体管T1的选择,数字‘1’显示在显示器DIS1上,间隔大约2ms。以类似的方式,数字‘2’和‘6’,借助晶体管T2、T3的控制,分别显示在DIS2和DIS3上,所有数字每10ms刷新一次,定时器每lOms产生一次中断,显示器的刷新由定时中断服务程序来完成。

  微控制器部分:MOTOROLA公司的MC68HCJIC微控制器(ICl)编程为实现下述功能:

  ●扫描各呼叫点是否有按键按下。

  ●从ADC0801读取数据。

  ●识别按下的键所在位置。

  ●显示呼叫点的号码并且自动给出指示。

  ●检查应答键是否按下,如按下,终止蜂鸣音。

  下图显示了如何将各个部件连接到微控制器上。端口A用于读出来自ADC的数据,经识别后送出去显示。当控制器读ADC时,端口为输入模式,而在数据显示期间,同一端口被定义为输出模式。端口B则用于控制ADC和锁存器的操作功能。

  电源:电源电路显示于下图,交流市电经变压器X1降压,次级输出标称值为12V-0-12V、300mA的交流电压。经全波整流二极管D1和D2整流,并由电容C5滤波。输出的直流直接供给LM324( lC4)作为参考电压。同时,再经稳压器IC7805( lC8)稳压后输出,作为包括IC4和参考电路在内的整个电路的供电电源。

  三、软件
  
  MOTOROLA公司推荐的集成电路开发环境( IDE)软件,用于微控制器的编程和系统开发。开发工具包括:编辑器、汇编器和编程器软件。可以支持MOTOROLA公司的设备编程和进行软件仿真,电路内置式仿真器与开发板( POD)一起组成了完整的仿真器和非实时的输入/输出模拟器。可以用于对MC68HC705J系列的微控制器设备中的代码进行仿真、编程、排错和调试。当你将开发板( POD)连接到主计算机和目标电路系统上时,在代码仿真期间,也可以使用目标系统的实际输入和输出线。你也可以使用ISC05JW软件编辑和汇编不含从POD板上来的输入/输出信号的独立的代码。 此开发板( MC68HC705JICS)能够通过串行口与任何运行WINGDOWS 3.X/WINDOWS9X的IBM计算机连接。

  软件实现如下的功能:

  1.初始化微控制器的端口A和B.定时器和显示器。

  2.使用ADC监控呼叫点按键按下。

  3.显示呼叫点数据。

  4.识别呼叫点号码。

  为完成上述系统功能,软件需要很多管理技巧和内部模块。主要的软件模块有:INIT【初始化);IDENTIFY(识别);DISPCON(显示变换);REFRESH(刷新);READ(读数据)和ACKNOWLEDGE【应答)等模块。各模块的操作顺序和逻辑功能可以从源程序代码中了解。下面对每一模块的功能做简要的讨论。

  INIT(初始化):微控制器的端口A和B最初定义为输出端口,锁存器定义为穿透模式,最初的显示为‘000’,表示没有呼叫键按下。定时中断初始化为每10ms产生一次中断。

  IDENTIFY(识别):程序在这一部分分析ADC来的数据,识别呼叫点标识。如果发现有某一个按键按下,就将以16进制表示的相应的呼叫点号存入显示寄存器中。

  DISPCON(显示变换):微控制器基本上以16进制处理数据,但是为了显示需要,必须转换为BCD码。此软件模块的功能就是找出16进制数据的10进制数值。

  REFRESH(刷新)和READ(读数据):微控制器的定时器初始化为每10ms产生一次中断,为了实现多路显示,显示器必须每10ms强制刷新一次。在定时中断服务程序中,微控制器读取ADC的数据并且刷新显示器。

  ACKNOWLEDGE(应答):呼叫可以使用应答键来回应,当有人呼叫时,按下应答键,显示器恢复为‘000’,呼叫产生的蜂鸣音停止。

  四、呼叫指示器的安装
  
  根据呼叫点的号码,将各按键连接到一个回路或分别接入两个回路中。

  显示将根据连接不同而变化。一般来说,呼叫点位于不同的房间中。Rext是决定呼叫点号码的电阻,它与按键串联后接在呼叫回路中。应该使用电铃式按键开关,而Rext装在开关内部。这样,呼叫号码的改变只需要通过更换Rext就可以实现了。

  注意事项:软件程序CALLNEW.ASM;以及CALLNEW.S19和相关数据,可以在本刊的网站上下载。

  此电路的实际大小的单面印刷线路板图见上图,其元件安装见下图。



评论

技术专区