1532.广播停播报警系统_第1页
1532.广播停播报警系统_第2页
1532.广播停播报警系统_第3页
1532.广播停播报警系统_第4页
1532.广播停播报警系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、广播停播报警系统一. 摘 要广播停播报警系统由报警器和统计查询两部分组成,报警器由单片机控制,负责实时监测立体声二路音频信号,如果发现停播,立即记录停播的日期和时间,信号恢复的时间等信息,并将它们储存在单片机内部的e2prom, 一旦有ic卡插入,便将储存在e2prom中的停播信息储存到ic卡上,再通过ic卡将停播信息用读卡器输入到电脑里,或直接由电脑通过rs-485接口从报警器处读取数据,再由管理软件进行分析汇总最后用报表的形式打印出来。管理软件还可以通过数据库处理,实现查询、统计等功能。本文试从以下几个方面对该报警器的设计开发过程进行论述:1 问题的提出,简要地说明了在怎么样的背景下开发该

2、系统的。2 该报警系统的设计思想。3 各部分的较为详细的说明、对有关元器件值的计算,器件资源的分配。4 主要程序的流程,程序语句。5 开发手段的简要论述。关键词:单片机 e2prom ic卡 rs-485接口 数据库二. 题目来源:现在的广播电台基本上已实现24小时不间断播音,音频工作站播也在自动播出中也占到越来越多的分量。在广播播出过程中,由于机器设备的偶发性故障及主持人、导播人员的失误,会造成停播事故,如果这种事故发生在比较重要的时段或比较重要的节目,会给国家造成无法挽回的损失,极大地影响广播电台在群众中的形象。本报警器的设计思路就是在工作中为解决此类问题而萌发的。设计的目的就是要在第一时

3、间发现停播故障,提醒有关人员及时处理,将损失降到最小。三. 前 言目前,随着国家各方面的飞速发展,广播电视事业也得到了长足的进步,我台也经历了一个高速发展期,从前几年的二、三个频道,间断播出到现在的八套节目不间断播出,有的甚至是双频播出。节目增加了,设备增加了,人员增加了,播出故障也有一定的增加。在对播出故障进行统计分析后发现,人为故障占了故障总数的绝大部分,其中包括主持人、值班人员操作不到位,节目录制、传送有问题,音频工作站故障等,甚至还包括值班人员打瞌睡,尤其是后半夜,这种情况更容易发生。我台现在的停播报警器是由中央电视台发射中心生产的dgn-16d型停播报警器,安装在总控机房。该报警器从

4、停播到报警有40秒的时间。从总控值班人员听到报警再到相关直播室处理故障时间较长。且由于没有记录功能,而值班人员往往忙于处理故障,故对停播的准确时间、停播时间的长度等记忆不准,给事后的故障分析造成困难,也会对播出故障率的统计、播出质量的考核等带来一系列的问题。为此,我们迫切需要一种新颖的多功能停播报警器能够解决上述报警器存在的问题。这次毕业设计正好为解决这个问题带来一个机会,同时也是对我这二年来的学习成果的一次全面检验和总结。通过这次实践,把学到的知识运用到工作中去,与工作经验相结合,提高自己的业务水平,使自己的工作做得更好。四报警器设计本报警系统由二大部分组成:报警器部分和应用程序部分,下面对

5、这二部分的设计思想、原理 框图以及涉及到的程序代码等作一个比较详细的论述。一 报警器部分:报警器的框图如下:6 位显示器 单片机电平显示信号调理左声道输入键盘输入报时音识别右声道输入后备电源ic卡及rs-485接口报警电平设置实时时钟电源,到各部分 图(1)原理框图 1.在开发这部分的时候主要考虑以下几个问题:a).接口问题:包括输入和输出接口;输入部分由于和广播设备连接,而广播设备一般均采用平衡输入方式,所以报警器的输入部分也采用平衡输入。输出部分考虑了二种方案,一是采用ic卡,该方案的优点是设备安装简单,缺点是由于采用有接触的ic卡,时间长了会产生接触不良的问题,另外,还需要在计算机端外购

6、一个ic卡读写器。第二个方案是采用rs-485接口,该方案的优点是可以由计算机通过一个简单的信号电平转换器读写报警器,无触点接触,寿命较长,可靠性高,但是牵涉到布线问题。由于采用的单片机功能强大,编程方便,故在设计中将二种方案一并实施,以便让用户灵活选择应用。b).内部实时时钟的准确性问题:由于受到元器件及报警器大小的限制,不可能采用恒温槽等手段来提高精度,考虑到我们的输入信号中包含了非常稳定、准确的报时信号,故可以对该报时信号加以利用,对内置的实时时钟进行自动校准。c).延时器的问题:由于在广播系统中安装了音频延时器,可以将音频信号延时,最长可达长达十几秒,为自动校时带来极大的误差,所以必须

7、解决该问题。d).单片机的选择:要求功能强大减少外围电路;性能优良使得系统稳定;开发系统廉价;容易购买。下面对该部分的设计过程进一步进行阐述:2. 输入部分:输入部分由运算放大器ne5532及其外围电路及电源部分组成,原理图如下:为了防止音频信号在传输过程中引入噪音,专业音频设备之间的连接都采用平衡输入(出),以利用运放的高共模抑制特性来消除绝大多数以共模形式存在的噪音信号。共模抑制比(cmrr)是用来衡量共模信号被放大器抑制程度的一个综合指标,它由下式定义: (1)式中的gain是放大器的差模增益,vcm是输入端存在的共模电压,vout是输入共模电压在输出端的结果。假设运放为理想运放,其共模

8、增益由下式决定:代入(1)式,得:图 ()信号输入调理 可以看到,如果这四个电阻得到精确匹配的话,式中分母将趋于0,共模抑制比将会很高,也即共模干扰会被极大地抑制。由于二个电阻 (r14,r12) 相等,故该电路的差模放大倍数为。之所以取差模放大倍数等于是因为平衡输入的音频信号本来就具有较高的电压幅度,输入调理级主要是起平衡与不平衡转换及阻抗匹配的作用。3. 电平设置部分:原理图如下:图()电平设置原理图从图中看到,由vr1,r1到r9的电阻产生了个不同的直流电位,通过单片机控制的选模拟开关cd4051来选择其中的一个电位,通过模拟开关的脚输出, 进入精密电压比较器lm393的反相输入端。而其

9、同相输入端的信号则是由信号调理级来的音频信号,当音频信号大于反相输入端的直流电位时,lm393的输出端输出高电平,反之输出低电平。由于音频信号是一交流信号,负半周及电压小于反相输入端的直流电位的部分将被切除,故正常情况下lm393将输出一系列的脉冲信号,进入单片机的外部事件计数器。个不同的直流电位提供了个不同的检测灵敏度,可以根据需要选择,以避免本底噪声和音乐低潮时引发的误报警。电压比较器的输入端及输出端的电容c1和c2是为了避免电源及其它数字电路引起的干扰脉冲对这部分电路的稳定性产生影响。由于电压比较器的反相输入端是直流电位,故c1的容量可以取得比较大,这里取0.47u。上端的电位器是为了微

10、调电阻的阻值误差而引起的两个声道报警电平不相同。4. 报时信号检测电路:电路原理见图(4) 图 虽然内置的实时时钟电路具有较高的走时精度, 图(4)音频译码器(报时信号检测)年误差仅5ppm。 但是,一年的积累误差将达到158秒,即2分半钟以上,这是不允许的,故设置了此电路。 利用音频输入信号中的报时六响信号的最后一响,频率为1000hz,长度为1秒的音频信号来获取准确的时间信号, 用单片机自动对内置的实时时钟进行校准, 以在停播事故发生时准确记录下事故发生的日期、时间。这一部分的核心是一片音频译码器lm567。lm567的内部是一个锁相环电路,当输入端的输入信号中包含有在其捕捉范围内的信号时

11、,它的输出端8脚将会输出逻辑低电平。它的输入灵敏度非常高,只要高于20mv的、在电路捕捉范围内的信号就能被电路捕捉到。为了避免主持人使用延时器导致的时间误差,单片机仅在内部实时时钟在59秒到01秒的时间范围内进行自动校准。在这个电路中,有二处参数需要计算,一是捕捉频率,二是捕捉带宽。根据厂商提供的资料,捕捉频率由下式决定: 我们要捕捉的信号频率为1000hz,由于非标称值的电容很难买到,而非标称值的电阻可以用一固定电阻加电位器的方式容易地解决,故取电容的值为标称值0.1uf,代入上述公式,可以得到电阻值为9090.9欧取标称值为8.2k欧的电阻,加一标称值为2k欧的电位器,这样,当电阻与电位器

12、串联后的阻值在9090欧时,电位器的滑臂在中心附近,给调整留下余地。捕捉带宽是指当输入信号的频率高于或低于中心频率f0某一范围时,电路都会将它们视为有用信号而加以捕捉,这一频率范围由下式决定: 计算结果为中心频率f0 的百分数。式中:vi为输入信号的幅度(有效值),要求小于200mvc2为2脚上的电容值(uf)在厂商给出的参数中,最大捕捉带宽14% f0。考虑到元器件的误差及稳定性等问题,我们取捕捉带宽为10% f0,vi通过调整,输入信号设置在100mv左右。据此,通过上式计算,可以得到c2的值为1.14uf,取标称值1uf。1脚及8脚外围的元器件值按厂商的推荐值选取。5 .实时时钟电路:实

13、时时钟电路是一个可以在停电情况下由后备电池驱动的集成电路,对它的要求是电路简单,走时精度高,工作电流小。由日本精工爱普生公司生产的rtc4543就是这样一种电路。该电路采用soic-14微型封装,内置石英振荡器,外部无需调整走时精度。该芯片年走时误差在5ppm以内,工作电流仅为1ua3v,与单片机的接口为四线制,控制简单,价格便宜,比较适合在此系统中使用。下图为rtc4543的内部框图: 图(5)rtc4543内部框图上图中的输出电路部分可以输出1hz或32768hz的方波信号供外电路使用,总共有三个端子,分别是fout(信号输出端),fsel(1hz/32768hz选择端)和foe(输出使能

14、端)。在本系统中都没有使用,由于其内部有偏置电阻,故可以悬空。ce端为片选端,当需要对该芯片进行操作时,首先要选中该芯片,也即将该端置高电平,平时该端置低电平。w/r端为读写控制端,当需要对芯片进行写操作时,该端应该置为高电平,而要进行读操作时置为低电平。data端为数据端,读和写的数据都是通过该端进出芯片。clk端为读写操作提供同步时钟信号。该芯片内部具有年、月、日、星期、时、分、秒功能,其中大小月份和闰月均为自动调整,无需单片机干预,为应用带来了极大的方便。下表显示了该芯片内部寄存器的分布情况:表(1)rtc4553内部寄存器表msblsb秒(0-59)fdts40s20s10s8s4s2

15、s1分(0-59)mi40mi20mi10mi8mi4mi2mi1时(0-23)h20h10h8h4h2h1星期(1-7)w4w2w1日(1-31)d20d10d8d4d2d1月(1-12)tmm10m8m4m2m1年(00-99)y80y40y20y10y8y4y2y1表中的fdt为电池电压检测位,当电池电压低于1.70.3v时,该位被置。tm为芯片检测用下图为厂商推荐的读写时序图: 图(6)实时时钟rtc4543写时序图图(7)实时时钟rtc4543读时序图 表(2)实时时钟rtc4543读写时序特性表从上面的时序图可以看出,读出或写入数据时,都是在时钟脉冲的上升沿进行的,当单片机按上面的

16、时序发出一个读序列脉冲时,首先被读出的是秒寄存器的lsb位,接着该寄存器的各高位被顺序从data端读出,再往后,十秒、分、十分、时、十时、周、日、月、年等各寄存器的值按先lsb后msb的顺序分别读出。当单片机按上面的时序发出一个写序列脉冲时,要写入的数据由单片机送到data端,接着按先lsb后msb的顺序分别在clk上升沿时被写入rtc4543,各寄存器写入的顺序与读出时相同,也是从秒开始到年结束。6. ic卡的选择:由于该系统不涉及到金钱等需要绝对保证安全性的数据, 为求简单、合理,故采用了美国atmel公司生产的at24c02非加密ic卡, 它内含2048位,也即256字节的e2prom,

17、接口为二线串行结构,符合iso7816智能卡国际标准。每次停播事故需要向ic卡写入年、月、日,时、分、秒及停播时长、频道名等10个字节的数据,每张卡每次可以采集25次停播信息。由于停播事故发生的几率是比较少的,所以卡的容量可以满足使用要求。该卡的擦写次数高达100万次,读取次数不限,停电后的数据可保存100年。图(8)和图(9)所示为该ic卡的内部框图和读写时序。 图(8)atmel 24xx系列ic卡内部框图图(9)atmel 24xx系列ic卡读写图从上面的时序图我们可以清楚地看到,实际上,该ic卡采用的就是i2c总线通讯协议。该协议是由荷兰philips公司首先提出的,限于篇幅,我们不对

18、该协议进行进一步讨论。 图(10)lm3915内部框图 7. 电平指示电路: 电平指示电路采用了美国国家半导体公司的专用芯片lm3915。 从内部结构图上我们可以看到,比较器正端的十个电阻的阻值排列使得输入信号每增加3db点亮一个发光管,从而使得发光管的指示与人耳听到的声音强度一致。在应用中我们采用了厂家推荐的线路。8. 单片机:基于以下的原因,我们选择了microchip公司的16f877单片机: (1). 该单片机采用了精简指令集系统(risc),总共才35条指令。(2). 采用了指令总线与数据总线分离的哈佛结构,指令总线宽度为14位,数据总线为8位,除两条转移指令外,其余指令均为单字节指

19、令。采用流水操作的方式运行,代码空间小,运行速度快。如果采用4mhz的石英振荡器,运行速度可达1mips。该单片机运行速度最高可 达5mips,是标准8051单片机的810倍。(3). 片内资源丰富,具有足够的i/o端口,内含256字节的e2prom,8k字节的程序存储器和368字节的ram,设定的数据可以直接存储在芯片上的e2prom内,停电情况下可保存10年以上,无需另加存储器。(4). 芯片驱动能力强,能直接驱动发光二极管。(5). 芯片程序存储器采用flash结构,内有8级堆栈,十四个内外中断源,三个定时器,还集成了8路精度高达10位的a/d转换器、pwm脉宽调制器,i2c总线收发器、

20、同步/异步串行收发器及看门狗,掉电复位,上电延时等单元电路。(6). microchip公司提供免费的集成开发环境,编写、编译、软件仿真均在同一界面下运行,芯片本身带有debug功能,如配有廉价的在线调试器(icd),可以完成硬件实时仿真和程程序烧写。下面我们对该单片机及其在本应用系统内的资源分配和开发环境进行简单的说明:图(10)所示为16f877单片机的管脚图,从图中我们可以看到,由于该单片机的功能较多,所以大部分管脚都赋予二个甚至三个功能。芯片共有5组i/o口,它们分别是:porta,portb,portc,portd,porte口,其中porta只有5条口线,而porte仅有3条, 图

21、(11)pic16f877管脚图但它们可以输入模拟量进行a/d转换, 精度为10 位。 其余的口均有8条口线。所有的口线均可以 通过软件单独设置成输入或输出状态并且可以随时转换,这个特性给应用带来了极大的方便。下表简要说明了该单片机的管脚特性。 表(3)pic16f877管脚定义表引脚名i/o特性电平功能osc1/clkin输入cmos振荡输入osc2/clkout输出振荡输出mclk输入斯密特复位输入,低电平有效ra0/an0ra1/an1ra2/an2ra3/an3/vrefra4/t0ckira5/an4/ssi/oi/oi/oi/oi/oi/ottlttlttlttl斯密特ttlpor

22、ta口为双向可编程i/o,亦可作a/d输入兼参考电压输入端兼tmr0计数信号输入端兼同步串行从属器件选择输入rb0/intrb1rb2rb3i/oi/oi/oi/ottl/斯密特ttlttlttlportb口为双向可编程i/o,带可编程弱上拉,兼外部中断输入rb4rb5rb6rb7i/oi/oi/oi/ottlttlttlttl具电平变化中断功能具电平变化中断功能具电平变化中断功能具电平变化中断功能rc0/t1oso/t1ckirc1/t1osi/ccp2rc2/ccp1rc3/sck/sclrc4/sdi/sdarc5/sdorc6/tx/ckrc7/rx/dti/oi/oi/oi/oi/o

23、i/oi/oi/o斯密特斯密特斯密特斯密特斯密特斯密特斯密特斯密特portc口为双向可编程i/o,兼tmr1振荡输出、tmr1时钟输入兼tmr1振荡输入、ccp2模块输入输出兼ccp2模块输入输出兼同步串行通讯时钟兼spi通讯数据输入、i2c通讯数据线兼spi通讯数据输出线兼异步串行通讯发送端、sci同步通讯时钟端兼异步串行通讯接收端、sci同步通讯数据端rd0/psp0rd1/psp1rd2/psp2rd3/psp3rd4/psp4rd5/psp5rd6/psp6rd7/psp7i/oi/oi/oi/oi/oi/oi/oi/o斯密特/ttl斯密特/ttl斯密特/ttl斯密特/ttl斯密特/t

24、tl斯密特/ttl斯密特/ttl斯密特/ttlportd口为双向可编程i/o,兼并行口功能。作并行口时输入为ttl输入,作普通i/o口时为斯密特输入re0/rd/an5re1/wr/an6re2/cs/an7i/oi/oi/o斯密特/ttl斯密特/ttl斯密特/ttlporte口为双向可编程i/o,亦可作a/d输入,兼并口读控制亦可作a/d输入,兼并口写控制亦可作a/d输入,兼并口片选控制vdd/vss电源、地pic16f877在本系统中起着核心作用,音频信号的检测、报警电平的设置、实时时钟的读写、自动校时、显示、rs-485通讯、ic卡的读写、键盘的操作等无不通过它进行。在本系统中,该芯片的

25、i/o口的配置情况如下:porta口: ra0用做报时信号识别输入端。ra4用做tmr0计数器输入端,用来检测右声道的信号。portb口: rb0-rb7用做发光数码管的段驱动,由于驱动能力较强,故该口通过220欧限流电阻后直接与led数码管相连。portc口: rc0 用做tmr1计数器输入端,用来检测左声道的信号。rc1用做rs485通讯口的读写控制端。rc3-rc7用做ic卡接口,其中:rc3用做ic卡插入检测。rc4用做ic卡电源控制。rc5用做ic卡数据线。 rc6用做ic卡时钟线。rc7用做ic卡复位线。portd口: rd0-rd2用做显示位译码器74ls145的输入。 rd3用

26、做键盘输入。 rd4-rd7用做实时时钟rtc4543的读写控制,其中:rd4用做片选。rd5用做读写控制。rd6用做时钟线。rd7用做数据线。porte口: re0-re2用做8选1模拟开关cd4051的选择控制,当re0-re2从000变化到111时,模拟开关的x0-x7端分别与输出端x连通,从而完成电平选择的目的。该端口的电平选择数据当设置完成后将存储在单片机内部的e2prom中,一旦来电后将自动调出。报警器的面板布置如图(12)所示。报警器的人机对话由6位led数码管及六个按键来完成,时间的调整、报警电平门限的调节,报警延时的调整等均通过这六个按键来实现。六个键均为双功能键,具体安排如

27、表(4)所示。 图(12)停播报警器面板布置图 表(4)键功能分配表键状态 功能k1k2k3k4k5k6设置状态参数选择报警延时调整年或时调整月或分调整调日或清秒调整门限正常状态进设置状态消报警音显示年月日显示年月日报警延时显示显示门限下面,我们对上表进行进一步说明:k1:在正常状态下,按k1键3秒,报警器进入设置状态,此时,再按k1,显示将在时、分、秒,年、月、日,报警门限及延时时间之间转换。长按k1键3秒,将退出设置状态。k2:正常状态下消除报警音响,设置状态下调整报警延时时间,可在099秒之间调整。k3:正常状态按下可显示年月日,设置状态下可调整年或时,取决k1选择的参数。k4:正常状态

28、按下可显示年月日,设置状态下可调整月或分,取决k1选择的参数。k5:设置状态下可调整日或秒清零,取决k1选择的参数k6:正常状态按下可显示报警动作门限,以db显示,设置状态下可调整报警动作门限,以db显示。9. 下图为主程序及部分主要子程序的结构框图,及部分典型的汇编语言源程序: (1)主程序框图:图(13)主程序流程图(2)键盘显示程序框图:图(14)键盘、显示子程序流程图(3)ic卡读写及通讯子程序框图: 图(15)ic卡读写及rs-485通讯子程序流程图(4)以下为ic卡读写的汇编语言子程序:由于该单片机要求将子程序放在程序存储器的上部,故以下的程序中被调用的子程序均在程序入口的上部.s

29、tartmovlw 8h 将8送至计数器movwf bitconmovlw b00001000 将portc的3脚置为输入,其余为输出tris portcbsf portc,scl 数据线/时钟线均为高bsf portc,sdanopbcf portc,sda 拉低数据线,发出议规定的开始信号movlw b10101110 准备发出1010信号(协议btfsc wr,2 规定的开始信号)movlw b10101111movwf datbitloop rlf dat,1 bitloop子程序将8bit数据发送bcf portc,scl 到数据线上(该段程序读写共用)bsf portc,sdabt

30、fss status,cbcf portc,sdabsf portc,scldecfsz bitcon,1goto bitloopbcf portc,sclmovlw sdaintris portcbsf portc,sclbtfsc portc,sdagoto startbcf portc,sclmovlw sdaouttris portcretlw 0bytewr rlf dat,1 此段为写ic卡(一个字节)bcf portc,sclbsf portc,sdabtfss status,cbcf portc,sdanopbsf portc,scldecfsz bitcon,1 goto b

31、ytewrbcf portc,sclmovlw sdaintris portcbsf portc,sclbtfsc portc,sdaretlw 1bcf portc,sclmovlw sdaouttris portcretlw 0stop movlw sdaout 协议规定的停止信号tris portcbcf portc,sdanopbsf portc,sclnopbsf portc,sdaretlw 0byterdbcf portc,scl 此段为读ic卡(一个字节)movlw sdaintris portcmovlw 8movwf bitconrnx bcf portc,sclbcf s

32、tatus,c btfsc portc,sdabsf status,crlf dat,1bsf portc,scldecfsz bitcon,1goto rnxmovlw sdaout bcf portc,scl tris portctack bcf portc,sda 发出确认信号 nop bsf portc,scl retlw 0ic卡读写子程序入口:iccard movlw 5 movwf len 每次读写5个字节 movwf wlenwr1 call start 调用start子程序 movf add,0 读写地址送dat寄存器 movwf datmovlw 8movwf bitcon

33、call bytewr 调用写字节子程序btfsc wr,1 判断要读还是写?goto rd 读,到rdmovlw b10110010;13 写movwf 4next1 incf 4, 1 写一字节 movf 0, 0 movwf dat movlw 8movwf bitconcall bytewrdecfsz wlen,1 5字节是否写完?goto next1 没有,再到next1goto stop 写完,到stoprd bsf wr,2 call start movlw b10110010;13 movwf 5next3 movf len,0 读5个字节 movwf wlennext4 i

34、ncf 4,1 call byterd 调用字节读子程序 movf dat,0 movwf 0 decfsz wlen,1 5字节是否写完? goto next4 没有,再到next4retlw 110. 接口电路:报警器通过下图所示的线路结构与计算机相连,以与计算机进行通讯,交换数据。如光用ic卡也可以完成单向数据交换的工作。 图(16)报警器与计算机连接框图rs-485接口是一个适合在工业环境中使用的、抗干扰能力较强的总线结构。rs-232、rs-422与rs-485都是串行数据接口标准,最初都是由电子工业协会(eia)制订并发布的,rs-232在1962年发布,命名为eia-232-e,

35、作为工业标准,以保证不同厂家产品之间的兼容。rs-422由rs-232发展而来,它是为弥补rs-232之不足而提出的。为改进rs-232通信距离短、速率低的缺点,rs-422定义了一种平衡通信接口,将传输速率提高到10mb/s,传输距离延长到4000英尺 (速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。rs-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为tia/eia-422-a标准。为扩展应用范围,eia又于1983年在rs-422基础上制定了rs-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲

36、突保护特性,扩展了总线共模范围,后命名为tia/eia-485-a标准。由于eia提出的建议标准都是以“rs”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以rs作前缀称谓。我们在设计该接口时,采用了美国美信(maxim)公司的产品max487。最多可以在该总线(双绞线)上挂128个报警器。五.单片机开发至此,我们对该报警器的线路结构、器件的选择、必要的计算及功能的设置作了较为详细的介绍,下面对16f877单片机的开发环境作一简单介绍。生产16f877单片机的美国microchip公司免费提供了针对该公司全系列单片机的集成开发环境mplab-ide,目前,在该公司网站可以下载的最新版本为mp

37、lab ide v6.20,地址为:,安装完运行该软件后将看到如下的操作界面:主窗口的左边部分是源程序编辑窗口,在这里进行程序的编写工作。当模拟仿真时,该窗口中的高亮条指示目前运行的语句。右边部分窗口从上到下分别是:特殊寄存器窗口(sfr窗口):显示单片机内部各特殊寄存器的当前值,红色表示刚运行完的语句改变了原来的值(下同)。下图所示为刚进行了上电复位模拟,故很多寄存器改变了原来的值。 图(17)pic系列单片机集成开发环境右边中间的窗口为内部通用寄存器显示,该窗口显示单片机内部ram的值。下面的为用户自定义的观察窗口,在这里,用户可以定义自己感兴趣的sfr或ram的值进行观察。浮动在上面的窗

38、口为寄存器值修改窗口,用户可以任意改变fsr或ram的值,以观察程序的运行是否符合预期的结果。该开发系统还提供了其他许多其他的窗口,如最小以纳秒为单位的计时器可以观察程序运行的时间和指令数。pc值改变窗口可以任意改变程序的运行起点。堆栈窗口可以观察堆栈的使用情况等等。下图为该开发环境的工具栏,它只是其中的一种工具栏,通过工具切换按钮可以切换到其他工具栏,如项目工具栏、编译工具栏和编辑工具栏等。工具切换 查找字符串 标题栏 菜单 停止运行 完全单步 复位 打开ram窗口 打开自定义观察窗口 打开、保存项目 编辑按钮 仿真运行 单步 打开rom窗口 打开sfr窗口 编译 图(18)pic系列单片机

39、集成开发环境工具栏上图的工具栏中,单步和完全单步的不同点在于:单步运行时将子程序作为一条程序来运行而完全单步将进入子程序,单步运行子程序中的每一条程序。该系统只要用通用文本编辑器按一定格式编辑一个简单的文件,还能模拟外部中断、任意管脚的电平变化等情况。所以说该开发系统是一个使用简单、功能强大的系统。该开发系统还支持许多硬件设备,在开发此报警器的过程中 我们使用了mplab在线调试器(mplab icd),它是一种强大、低成本的实时开发工具,适合于pic16f87x flash系列处理器。mplab icd是利用pic16c87x的在线调试能力工作的。其特点是和microchip的在线串行编程器

40、(icsp)配合,利用mplab-ide的用户界面实现价格低廉的在线编程和调试。开发者可以通过观察变量、单步运行以及设置断点对源代码进行开发调试。可以通过全速运行对硬件进行实时测试,该开发器经过使用,效果比较满意。六. 应用程序设计为了与上面介绍的停播报警器配合工作,我们还用visual basic 6.0编写了一个配套的应用程序,它可以通过数据库处理,实现查询 统计等功能,开发时的界面如下图所示: 图(19)用vb6.0开发应用程序该应用程序可以通过rs-485接口读取报警器的数据,也可以对报警器进行设置。还具有通过ic卡读写器对ic卡进行读写等功能。其主要功能有:1 通过rs-485接口读

41、取报警器的数据,也可以对报警器进行设置。2 通过ic卡读写器对ic卡进行读写。3 对读取的数据进行处理,包括:每个频道的总停播次数、月停播次数及周停播次数进行统 计,对总停播时间进行统计,计算停播率,分析停播原因等。4 对各频道的停播情况进行查询并对结果以表格的方式显示出来。5 对统计或查询出来的结果以类似报表的格式打印出来,以便进一步处理。除了常规的欢迎界面、登录界面外,就是主界面了,该程序的主界面如下图所示:图(20)应用程序主界面(上面表格中的数据是演示性质的,并无实际意义)该界面的大部分由一个数据框占据,下部是一排按钮,单击“读取ic卡”按钮,程序将会通过外接在串行口上的ic卡读写器读

42、取ic卡上的数据,每个频道的停播数据由十个字节组成,它们分别是:年、月、日,时、分、秒及停播时长、频道名代码。年、月、日,时、分、秒各占1个字节,停播时长、频道名代码各占2个字节。当程序读到连续的二个“ff”时,表示此次采集的数据到此为止,结束读取数据。接着,程序转入如下图所示的“本次读入”窗口: 图(21)本次读入窗口 在此窗口中显示本次读入的数据,用“上一条”和“下一条”来显示不同的停播信息,在“停播原因”中,用户可以进行修改,但是,“操作原因”、“编播故障”和“设备故障”三个时间的和必须等于“停播时长”中显示的时间,否则,程序将弹出一个警告窗口并且一定要等到输入合法的数据后才能继续运行,如果输入的数据不规范,如多输入或少输入数据,程序也会弹出一个警告窗口要求重新输入,以此来保证数据的正确性。按“返回”钮后将返回到主界面。按下“查询”按钮后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论