首页 > 范文大全 > 正文

基于51单片机的数字化无载波报警系统

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于51单片机的数字化无载波报警系统范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】本文以51单片机和为核心,设计数据采集系统和串口通讯系统,对发射机的播音状态进行实施检测,一旦出现故障第一时间发出警告,提醒当班者,及时对故障机进行处理,以防止或减少停播。

【关键词】单片机;无载波报警;数字电路

1.引言

对于无线局发射台站而言,安全播出是生命线,优质零秒播出一直是我们追求的目标。为此我台先后进行多种技术改造,研发创新,力保播音成绩实现“不间断,高质量,讲效益,重安全”。其中,模拟式无载波报警系统是一项实用性强,可靠性高,快速准确的报警系统,一直沿用至今。

无载波报警系统的取样信号来自平衡/不平衡转换器的输出馈管,也就是说和调幅度测试仪接受同一个输入信号。在发射机运行过程中,只要载波信号低于某一值,该系统就会发出警告声提醒值班者检查处理,采取应急措施。经过多年的维护经验,载波信号消失的故障有:射频放大电路断激励,自动增益控制器击穿,高前管碰极,各种原因引起的调制器封锁,末前阴流过荷,掉高压,电子管推动力不足,高末管碰极等等,可以说,发射机绝大部分故障都可以被该系统检测到,因此他在我台机房的广播发射播音中,承担着非常重要的监视角色。但是其电路冗杂,需要大量电阻,电容,二极管,三极管等分立元件,数字元器件只是简单的与或非器件,硬件调试维护困难。电路图如下1所示。而基于单片机的数字式无载波报警,可以省去繁多的电阻电容二极管,以及中等集成芯片,只需数字采样电路,串口通讯等电路即可。

图1 模拟式无载波报警电路图

2.硬件电路设计

2.1 51单片机介绍

本方案使用51型单片机ST89C52RC。51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。其功能如下:8位CPU・4kbytes程序存储器(ROM)(52为8K);128bytes的数据存储器(RAM)(52有256bytes的RAM);32条I/O口线・111条指令,大部分为单字节指令;21个专用寄存器;2个可编程定时/计数器・5个中断源,2个优先级(52有6个);一个全双工串行通信口;外部数据存储器寻址空间为64kB;外部程序存储器寻址空间为64kB;逻辑操作位寻址功能・双列直插40PinDIP封装;单一+5V电源供电;CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率为12M。

这里要详细介绍2个概念:第一,总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(能有多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。

第二数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的──数字,或者说都是一串‘0’和‘1’组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不能由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元能由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不一样的应用电路中各不相同。

2.2 电路硬件原理及设计

数字式无载波报警系统,需要数字取样电路,省去电阻,电容,二极管,三极管等分立元件,只需要几个集成芯片就可以实现功能。具体电路如图2所示:

图2 系统硬件电路

在图2-1中,74LS245是三态缓冲驱动器,接受左边来的载波取样信号,将其变成标准的TTL信号输出,送给单片机。其中DIR是方向选择端,即控制信号从A流向B,还是从B流向A;EN为使能端,置低电平时芯片工作;AB为信号端。本系统中,DIR为高电平,信号从A流向B,而不能从B流向A,这样能够防止瞬间高电压通过缓冲器进入采样传感器,保护传感器。载波信号经过74LS245处理后,送到单片机的IO口,我们选择P1口接受载波信号。单片机对信号进行处理,识别哪部机器出问题。P2口连接指示灯,将故障机器对应的灯点亮。P32口外接扬声器电路,首先接继电器,使得控制信号与驱动信号有效隔离。当单片机检测到无载波报警时,P32口输出低电平,继电器线包吸合,扬声器被供电发出报警。电容X1和X2以及晶振Y1组成晶振电路,为单片机提供12MHz的基准频率。开关S1和电阻R2以及电解电容C9组成单片机的复位电路,当程序锁死或单片机死机的时候,按下开关S1,系统可以重启。

最后,还要设计一个指示灯电路,即电路图中发光二极管D7和电阻R7。以此观察软件调试时程序的入去运行情况,当调试结束开始正式使用后,这个指示灯继续显示程序的运算状态,当它的显示状态不正常,值班员可以手动将单片机复位,以减少不必要的失误。

3.系统软件设计

下面给出本系统的软件部分内容,包括流程图和具体代码。

3.1 流程图

图3-1 软件流程图

3.2 代码编写

下文对软件代码进行编写,主要有几个部分:宏定义,载波信号读取,数据处理,指示灯和扬声器控制。我们机房有6部发射机,即需要采集6路数字信号,而单片机的IO口是8位,所以还涉及到位提取和位运算。

#include

#include

sbit AUD=P3^2;//设P32脚为扬声器控制信号

sbit CTL=P3^3;//设P32脚为程序指示灯控制信

define DataIn P1//将P1口赋予宏定义DataIn

define DataOut P2//将P1口赋予宏定义DataOut

void main( )

{

char a,b,c[6],i; //初始化字符型变量

ADU=1; //初始化扬声器保持静音状态

while(1) //进入循环

{

for(intj=0;j

CTL=~CTL; //程序指示灯控制信号取反,指示灯闪烁表示程序正常

a=DataIn; //将载波信号通过P1口传给变量a

dataOut=a; //将载波信号通过变量a传给P2口

for(i=0;i

{

c[i]=a%2; //数组c读取a的位数据,得到每台发射机的载波状态

a=a>>1; //变量a右移一位,下次将另一台发射机状态传给数组c

if(c[i]==0) //数组c中某个值为0,表示对应的发射机载波消失

AUD=0; //扬声器报警

Else

AUD=1; //当6部发射机载波都正常时,扬声器静音

}

}

}

4.总结

实践证明,此次数字化改造完全达到所需目的,减少了复杂的分立式元器件数量,简化电路减轻调试工作量。方便维护查找问题,而且在该系统中,单片机多个引脚和资源处于保留状态,如串口通信,P0口,中断资源,计时器定时器等等,为以后扩展功能打下基础。