求一篇关于 基于51单片机楼宇对讲视频对讲设计的论文

现在位置:
基于51单片机的水位测试系统 详细内容
基于51单片机的水位测试系统
第一章& 引言1.1 课题简介
在工业和我们的日常生活中,对水位的监测是非常必要的。大到对江河,水库等的水位,特别在洪灾或者旱灾的时候,需要及时得到第一手数据;小到对水箱,热水器水位等家用贮水容器的监测,可以减少很多危险和不必要的损失。
现举一例:
在煤矿的开采过程中,会产生大量的水。为了保证煤矿的安全和开采煤矿的正常进行,应将这些水通过一水仓安全排放,因此不仅应控制水仓水位在一定的范围之内,同时要保持一定的上下限,超过了限度则报警,从而给其排水。
基于以上种种,本课题选择了《基于51单片机的水位测试系统》。1.2 水位测量现状
80年代以来,我国又发展了以自记遥测为主的水位测量技术。它主要是建立自记水位计,实现水位自动采集、存储、远传。同期,还发展了无人立尺观测技术,这种技术采用激光测距仪与经纬仪接口配套组成的一套设备,利用激光测距仪无须反射棱镜测定距离(测距精度:O~5m)的性能,配以经纬仪测角测定目标高程的一种测量方法。
随着近代科学技术的发展和新材料新器件的开发,采用传感器研制水位计近年来有较大发展。主要采用的传感器有超声波、光电、压力、接触式、浮于式等几种。超声波式水位计是将换能器向水面发射超声波,测量超声波传播时间,计算出水位。压力式水位计也是不需要水位测并,其基本原理是测量静水压力来实现水深的测量,已采用过波纹管和水银位移式压力传感器等方法。固态压力传感器由于其灵敏度高、体积小、寿命长、且有抗腐蚀性而受到重视,但由于半导体传感器受温度影响大等原因,使其实用受到限制。近年来固态传感器温度自动补偿问题有了进展,固态压阻式水位计已经得到应用。接触式水位计使用机电的方法用探头跟踪井内水面高低变化测量水位,已在少数领域使用,浮子式水位计,利用水球(或其它浮子) 作敏感器件,避免了温度、湿度等因素的影晌,性能稳定,工作可靠,因而得到长期使用和发展。
我国使用的自记水位计,最常见的为浮子式水位计。近年来,由于土建工程费用不断上涨,无需水位量的压力式水位计随着现代技术的发展和进步也日趋稳定和成熟,致使人们越来越重视使用压力式水位计。1.3 单片机技术的发展及应用现状
&&&& 单片微型计算机(简称单片机) 技术自1976 年美国Inter公司的MCS―48 单片机芯片问世以来,得到了迅猛的发展。世界上许多公司竞相推出了许多各具特色的单片机芯片,到目前为止世界各大公司已研制出大约50多个系列300 多个品种的单片机芯片产品。
近十多年来我国单片机的开发应用一直是以Inter 公司的8 位机MCS―48 和MCS ―51 以及16 位机MCS ―96 为主流系列。进入90 年代以后,世界上单片机技术发展很快,市场竞争激烈,而单片机应用领域更加广泛。随着改革开放政策的深入,世界上许多国家的著名单片机生产公司的优秀单片机系列产品进入我国的单片机市场。如: Motorola 的M68HC05. M68HC11 系列,Zilong 公司的Z8 系列等。
纵观各系列单片机产品的发展状况和特性,可以看出单片机正朝着以下两个方向发展。
1、是性能不断提高,功能越来越强,可以完成各种较为复杂系统的设计和应用。该类产品的典型代表有Inter 公司的MCS ―96 系列单片机和Motorola 公司的M68HC11 系列单片机。在我国,这类产品主要用于工业自动化控制。
2、 另一方面,在中小型的智能化产品中,尤其是在消费类电子产品的应用中,单片机则朝着超小型、低功耗、低成本、多品种等方向发展。目前已被广泛应用于智能化仪器仪表、家用电器、通讯器材、智能玩具等许多领域之中。在国内有着极为广阔的发展前景。该类产品的典型代表有Zilong 公司的CCP 系列单片机。
单片机制造业如此繁荣,应用就不言而喻了。
单片机可应用于电话机、寻呼机、手机、对讲机等电信设备,电视机、录像机、摄像机、 VCD机、洗衣机等家用电器,电子玩具,计算机外围设备,办公自动化设备,工业控制设备、仪器仪表,军用设备等等。有人这样说:“凡是能想到的地方,单片机都可以用得上”,这并不夸张。 全世界单片机的年产量数以亿计,应用范围之广,花样之多,一时难以详述。
单片机应用的意义不仅仅限于它的广阔范围以及所带来的经济效益,更重要的还在于从根本上改变了传统的控制系统设计思想和设计方法。 从前,必须由模拟电路或数字电路实现的大部分控制功能,现在已能使用单片机通过软件方法实现了。这种以软件取代硬件并能提高系统性能的控制技术称之为微控制技术。微控制技术标志着一种全新概念,随着单片机应用的推广普及,微控制技术必将不断发展和日趋完善,而单片机的应用则必将更加深入、
更加广泛。1.4 本课题的背景及意义
随着单片机的广泛应用,它逐渐被用于对矿井环境参数进行监测,大型设备的监控、故障诊断和保护,传统设备的技术改造,智能仪器仪表研制等等。
单片机用在矿井安全监控系统中,可以连续实时监控和跟踪井上、井下的各种安全参数和设备的工作状态,防止事故的发生,以及发生事故时作出及时处理,避免事故扩大。单片机用于提升机监控系统中,通过对提升机的运行速度、加速度和控制线路中的继电器等元器件进行在线检测,以确保提升系统的安全,还可以根据负荷的变化,自动控制电阻的切除,从而使启动平衡,减少对机械系统的冲击;单片机用于通风机检测系统中可以保证矿井通风安全;用单片机在线检测井下滚筒采煤机负载的变化情况,可以自动调整采煤机的高度,从而延长采煤机的使用寿命;单片机还可广泛应用于矿区变电所的无人(少人) 值守,井下电机车的调度、各种安全设施的研制、检测仪表的开发等许多方面。因此,单片机在煤炭企业具有广阔的应用前景。
鉴于以上种种,本课题主要研究如何对水位如何进行有效监控的方法,以期能够对解决一些工业和生活中水位监测提供一种思路。
第二章 &MCS-51系列单片机简介2.1 MCS-51系列单片机简介
MCS-51单片机是美国INTE公司于1980年推出的产品,它具有先进的结构和强大的功能更。并增加了一些电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品。
  MCS-51具有比较大的寻址空间,地址线宽达16条,即外部数据存储器和程序存储器的寻址范围达216=64kB,这作为单片机控制来说已是比较大的,这同时具备对I/O口的访问能力。此外,MCS-51采用模块化结构,可方便地增删一个模块就可引脚和指令兼容的新产品。从而容易使产品形成系列化。
由于MCS-51集成了几乎完善的8位中央处理单元,处理功能强,中央处理单元中集成了方便灵活的专用寄存器,硬件的加、减、乘、除法器和布尔处理机及各种逻辑运算和转移指令,这给应用提供了极大的便利。
MCS-51的指令系统近乎完善,指令系统中包含了全面的数据传送指令、完善的算术和逻辑运算指令、方便的逻辑操作和控制指令、对于编程来说,是相当灵活和方便的。MCS-51单片机的工作频率为2-12MHz,当振荡频率为12MHz时,一个机器周期为1us,这个速度应该说是比较快的。
MCS-51系列单片机主要包括和8751等通用产品,其主要功能如下:  ?8位CPU?4kbytes 程序存储器(ROM)?128bytes的数据存储器(RAM)?32条I/O口线?111条指令,大部分为单字节指令?21个专用寄存器?2个可编程定时/计数器?5个中断源,2个优先级?一个全双工串行通信口?外部数据存储器寻址空间为64kB?外部程序存储器寻址空间为64kB?逻辑操作位寻址功能?双列直插40PinDIP封装?单一+5V电源供电&& MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“名机”,为以后的其它单片机的发展奠定了基础。正因为其优越的性能和完善的结构,导致后来的许多厂商多沿用或参考了其体系结构,有许多世界大的电气商丰富和发展了MCS-51单片机,象PHILIPS、Dallas、ATMEL等著名的半导体公司都推出了兼容MCS-51的单片机产品,就连我国的台湾WINBOND公司也发展了兼容C51(人们习惯将MCS-51简称C51,如果没有特别声明,二者同指MCS-51系列单片机)的单片机品种
  MCS-51把微型计算机的主要部件都集成在一块心片上,使得数据传送距离大大缩短,可靠性更高,运行速度更块。由于属于芯片化的微型计算机,各功能部件在芯片中的布局和结构达最优化,抗干扰能力加强,工作亦相对稳定。因此,在工业测控系统中,使用单片机是最理想的选择。单片机属于典型的嵌入式系统,所以它是低端控制系统最佳器件。
  MCS-51的开发环境要求较低,软件资源十分丰富,介绍其功能特性书籍和开发软件随处可取,只需配备一台PC(个人电脑――对电脑的配置基本上无要求),一台仿真编程器即可实现产品开发,早期的开发软2.2& 8051单片机简介
MCS51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如,,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而且8051单片机也成为了MCS-51系列的代表。
8051是MCS-51系列单片机中的代表产品,它内部集成了功能强大的中央处理器,包含了硬件乘除法器、21个专用控制寄存器、4kB的程序存储器、128字节的数据存储器、4组8位的并行口、两个16位的可编程定时/计数器、一个全双工的串行口以及布尔处理器
8051其内部RAM大小为128B,两个16位的计数器,5各中断源。而且8051单片机采用了HMOS工艺:具有高速度、高密度等特点。
8051中集成了完善的各种中断源,用户可十分方便地控制和使用其功能,使得它的应用范围加大,可以说它可以满足绝大部分的应用场合。
图1& 8051的引脚图2. 3&& 引脚定义和功能
& &8051单片机芯片采用40引脚双列直插封装(DIP)方式。引脚和逻辑符号如图2-1
&& MCS-51是高性能单片机,因为受到集成电路芯片引脚数目的限制,所以有许多引脚只能双功能复用。各引脚符号与功能简要说明如下:
(1)&&& 主电源引脚Vcc和Vss
Vcc电源端,工作电源和编程校验()为+5V。Vss接地端。
(2)&&& 时钟振荡电路引脚XTAL1和XTAL2
XTAL1和XTAL2分别用作晶体振荡电路的反相器输入和输出端。在使用内部振荡电路时,这两个端子用来外接石英晶体,振荡频率为晶振频率,振荡信号送至内部时钟电路产生时钟脉冲信号;若采用外部振荡电路,则XTAL2用于输入外部振荡脉冲,该信号直接送至内部时钟电路,而XTAL1必须接地。
(3)&&& 控制信号引脚RST/Vpd ALE/PROG PSEN和EA/Vpp
1.&&& RST/Vpd:RST为复位信号输入端。当RST端保持两个机械周期(24个时钟周期)以上的高电平时,使单片机完成复位操作。第二功能Vpd为内部RAM的备用电源输入端。当主电源Vcc一旦发生断电,降到一定电压值的时候,可通过Vpd为单片机内部RAM提供电源,一保护片内RAM中的信息不丢失,使上电后能继续正常运行。
2.ALE/PROG:ALE为地址锁存允许信号 ;在访问外部存储器时,ALE用来锁蹲存P0扩展地址低8位信号;在不访问外部存储器时,ALE以时钟振荡频率为1/6的固定速率输出,因而它又可用作外部定时或其他需要。但是,在遇到访外部数据存储器时,回丢失一个ALE脉冲。ALE能驱动8个LSTTL门输入。第二功能PROG是作为8751内部EPROM编程时的编程脉冲输入端。
3.PSEN:外部程序存储器ROM的读选通信号;当访问外部ROM时,PSEN产生负脉冲作为外部ROM的选通信号;在访问外部数据RAM或片内ROM时,不会产生有效的PSEN信号。PSEN可驱动8个LSTTL门输入端。
4.EA/Vpp:EA访问外部程序存储器控制信号。对。它们的片内有4KB的程序存储器,当EA为高电平的时,CPU访问程序存储器有两种情况,第一种情况,访问的地址空间在0-4KB范围内,CPU访问片内程序存储器;第二种情况,访问的地址范围超过4KB时,CPU将自动执行外部程序存储器的程序,即访问外部ROM。对于8031,EA必须接地,只能访问外部ROM。第二功能Vpp为对8751EPROM的21V编程电源输入。
(4)4个8为I/O端口P0,P1,P2和P3
P0口是一8位漏极开路的双向I/O口;P1,P2,P3口(P1.0-P1.7)是一个内部带上拉电阻的准双向I/O口,4个8位I/O接口的 32个引脚构成了MCS-51单片机的基本输入输出的接口功能。2. 4& MCS-8051内部硬件祥述
(1)算术逻辑单元ALU
算术逻辑单元ALU在定时控制逻辑电路发出的内部控制信号的控制下,可以用来完成二进制数的四则运算和布尔代数的逻辑运算。主要包括带进位和不带进位的加法,带借位的加法,8位无符号数乘除,逻辑与,或,异或,加1减1,求反,循环左右移位,比较和条件转移的判断等操作。
(2) 累加器A
累加器是CPU中工作最频繁的寄存器,MCS-51系列单片机在结构上仍然以累加器A作为重要部件,它是一个8位的寄存器。在逻辑类操作时,累加器A往往在运算前暂存一个操作数,而运算后又保存其结果。
(3) 程序状态字寄存器PSW
程序状态寄存器PSW也是一位8位寄存器,用来存放运算结果的一些特征。其每位的具体含义如下:
&& D7&&&&&& D6&&&&&& D5&&&&& D4 &&&&&&&D3&&&&&& D2&&&&&& D1&&&&& D0
PSW寄存器每位的功能.标志号和位地址
辅助进位标志
寄存器区选择MSb
寄存器区选择LSb
1、进位标志Cy:它表示运算是否有进位(或借位)。如果操作结果在最高位有进位或有借位,则该位为“1”状态,否则清“0”。
2、辅助进位标志AC:半进位标志。它反映了两个8位数运算低4位是否有半进位位,即低4位相加或减是否有进位或借位,如有,则AC为“1”状态否则为“0”状态。
3、溢出标志位OV:反映运算结果是否溢出。溢出时OV为“1”状态否则为“0”状态溢出标志和进位标志是两种不同性质的标志。溢出是指在有正负号的两个数运算时,结果数超出了+127~~-128D。而进位位是指两个数据最高1位(第七位)相加或减有否进位或借位。用此两个标志位时应注意吻合。
4、奇偶标志P:反映累加器A中数据的奇偶性。如果累加器的8位中“1”的个数为奇数,则P为“1”状态。否则P为“0”状态。
(4) 程序存储器
&一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。&&&&MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。&&&&8051片内有4kB的程序存储单元,其地址为0000H―0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意:&&&&其中一组特殊是0000H―0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。
另一组特殊单元是0003H―002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下&&&&&0003H―000AH&&外部中断0中断地址区。&&&&&000BH―0012H&&定时/计数器0中断地址区。&&&&&0013H―001AH&&外部中断1中断地址区。&&&&&001BH―0022H&&定时/计数器1中断地址区。
&&& 0023H―002AH&&串行中断地址区。
以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,每段只有8个地址单元是不能存下完整的中断服务程序的,因而一般也在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。(5) 数据存储器
数据存储器也称为随机存取数据存储器。MCS-51单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个是内部数据存储区和一个外部数据存储区。MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。8051内部RAM共有256个单元,这256个单元共分为两部分。其一是地址从00H―7FH单元(共128个字节)为用户数据RAM。从80H―FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。从图1中可清楚地看出它们的结构分布。&&&&在00H―1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0―R7来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为R0―R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL工程师们又安排了一个寄存器――程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的第3和第4位(RS0和RS1),即可选中这四组通用寄存器。
(6) I/O口
1.P0作为地址数据总线时,T1和T2是一起工作的,构成推挽结构。高电平时,T1打开,T2截止;低电平时,T1截止,T2打开。这种情况下不用外接上拉电阻.而且,当T1打开,T2截止,输出高电平的时候,因为内部电源直接通过T1输出到P0口线上,因此驱动能力(电流)可以很大,这就是为什么教科书上说可以"驱动8个TTL负载"的原因.
2。P0作为一般端口时,T1就永远的截止,T2根据输出数据0导通和1截止,导通时拉地,当然是输出低电平;截止时,PO口就没有输出了,(注意,这种情况就是所谓的高阻浮空状态),如果加上外部上拉电阻,输出就变成了高电平1.
3。其他端口P1 P2 P3,在内部直接将P1口中的T1换成了上拉电阻,所以不用外接,但内部上拉电阻太大,电流太小,有时因为电流不够,也会再并一个上拉电阻。4.在某个时刻,P0口上输出的是作为总线的地址数据信号还是作为普通I/O口的电平信号,是依靠多路开关MUX来切换的.而MUX的切换,又是根据单片机指令来区分的.当指令为外部存储器/IO口读/写时,比如 MOVX &A,@DPTR ,MUX是切换到地址/数据总线上;而当普通MOV传送指令操作P0口时,MUX是切换到内部总线上的. 2.5& AT89C51简介
下图为AT89C51的引脚图
图2&& AT89C51引脚图
1、 51系列单片机及89c51/89s51均采用40Pin封装的双列直接DIP结构。上图是它们的引脚配置:40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:(1)电源引脚Vcc 40脚 正电源脚,工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。GND 20 接地端(2)外接晶体引脚
图3& 外接晶体引脚
Pin19:时钟XTAL1脚, Pin18:时钟XTAL2脚,  XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。  型号同样为AT89C51的芯片,在其后面还有频率编号,有12,16,20,24MHz可选。大家在购买和选用时要注意了。如AT89C51 24PC就是最高振荡频率为24MHz,40P6封装的普通商用芯片。(3)复位 RST 9  在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的0000H处开始运行程序。常用的复位电路如下图所示。
图4&& 复位电路  复位操作不会对内部RAM有所影响。当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。复位是单片机重新执行程序代码的意思。8051的复位方式可以是自动复位,也可以是手动复位,见下图。此外,RESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源, 以保证单片机内部RAM的数据不丢失。
输入输出(I/O)引脚:  Pin39-Pin32为P0.0-P0.7输入输出脚,称为P0口,是一个8位漏极开路型双向I/O口。内部不带上拉电阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八个LSTTL负载电路。通常在使用时外接上拉电阻,用来驱动多个数码管。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,不需要外接上拉电阻。
Pin1-Pin8为P1.0-P1.7输入输出脚,称为P1口,是一个带内部上拉电阻的8位双向I/0口。P1口能驱动4个LSTTL负载。通常在使用时外不需要外接上拉电阻,就可以直接驱动发光二极管。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
在单片机工作时,我们 可以通过用指令控制单片机的引脚输出高电平或者低电平。如:指令CLR ,清零的意思。CLR P1.0 ;让单片机从第一脚输出低电平。指令 SETB,置1的意思。SETB P1.0 ;让单片机从第一个脚输出高电平。 Pin21-Pin28为P2.0-P2.7输入输出脚,称为P2口,是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。 Pin10-Pin17为P3.0-P3.7输入输出脚,称为P3口,是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接控制信息。
P1-3端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流。
除此之外P3端口还用于一些专门功能,具体请看下表。
串行通讯输入(RXD)
串行通讯输出(TXD)
外部中断0( INT0)
外部中断1(INT1)
定时器0输入(T0)
定时器1输入(T1)
外部数据存储器写选通WR
外部数据存储器写选通RD
 上拉电阻简单来说就是把电平拉高,通常用4.7-10K的电阻接到Vcc电源,下拉电阻则是把电平拉低,电阻接到GND地线上。具体说明也不是这里要讨论的,接下来还是接着看其它的引脚功能吧。(5)其它的控制或复用引脚 1) ALE/PROG 30 访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6)。在访问外部数据存储器时,出现一个ALE脉冲。对Flash存储器编程时,这个引脚用于输入编程脉冲PROG 2) PSEN 29 该引是外部程序存储器的选通信号输出端。当AT89C51由外部程序存储器取指令或常数时,每个机器周期输出2个脉冲即两次有效。但访问外部数据存储器时,将不会有脉冲输出。 3) EA/Vpp 31 外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。要使AT89C51只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必须保持低电平。对Flash存储器编程时,用于施加Vpp编程电压。
&第三章& 系统设计方案
本课题为基于MCS-51系列单片机的水位测量显示仪,可分为以下几个模块。分别对各个模块进行方案设计讨论。3.1 电源模块
方案一:直接购买市场上已有的稳压电源模块,比如+5V、+12V 开关电源。这样做的优点是电源稳定,质量可靠;但价格比较高。
方案二:可以由变压器把市电降压,然后整流,在经过稳压电路,可以得到5V 电源。这种方法广泛用于电子产品中。
方案三:因为在做实验的时候都离不开电脑,每个电脑的扩展口上都有USB插槽,而现在应用日渐广泛的USB接口上提供+5V的电源。我们可以借用这个电源,只需要引出一根接口线出来即可。其优点是简单,投入小。但缺点也不容忽视,这样是很危险的,因为另一端是连着电脑的,容易对电脑造成伤害。
综合考虑:对于系统的主体部分使用变压器降压供电,对于不便于使用变压器的地方可以使用稳压电源模块供电。3.2 水位测量传感部件的选择
目前用于测量水位的传感方式比较多:
方案一:电容式传感器,通过电容的变化来测量水位的变化。电容传感器的种类也很多,在大量测量时,电容式传感器是用电容传感器和二线制电路转换组成。这种方法很原始,所以经济,但精度不高。
方案二:采用光电反射法,传感器采用红外发射和接收二极管。就是利用了激光的光束能量集中的优点, 把它作为光源, 激光束以一定角度直接射到水面上,反射后的激光束就照在接收的光敏电阻上,利用光敏电阻受光照射后其阻值发生变化的特性, 做成深井中的光电水位传感器,对本系统起着极其重要的作用, 但就目前而言,此方面的传感器不是很多,价格也昂贵。
方案三:超声波传感,它是通过超声波探头发出超声波脉冲,超声波被物料或液面反射,探头测量出脉冲遇到被测目标后返回的时问,通过回析来测量距波分离。超声波传感器的安装及参数调节相对于压力式较为复杂。
方案四:压力传感器是将压力信号转换成电压信号的敏感器件。被测压力作用在应变体上,使应变体上的应变电桥由无压力状态下的平衡进而产生失衡,其失衡深度及失衡所产生的电位差的大小、方向与作用在应变体上的压力大小、方向成正比。
主要特点:
􀂊 灵敏度高,
􀂊 稳定性好线性好,
􀂊 漂移小过载能力强,可靠性好
􀂊 独特的温度补偿电路,温度影响小调校,维护方便
􀂊 可直接安装,防水,防尘,防震,防腐,防爆,无工业污染
根据这些传感器的特点及使用环境的要求,尤其针对煤矿的特点:在煤炭的开采过程中,会有许多泥沙、煤炭颗粒之类的固体,在如此恶劣的环境条件下,传感器的使用极为限制,另外,还有精度选择的问题。
综合考虑要方案四3. 3 电流-电压转换
&&& 方案一:使用电流电压转换芯片,这种方法的优点是电路简单,范围广,误差小,但费用昂贵。
方案二:纯硬件电路图。结合模拟电路、数字电路的特点,设计并画出硬件电路图以实现转换功能。
综合考虑使用方案二
图5& 电压电流转换电路3.4 单片机模块
MCS-51单片机是美国INTE公司推出的产品,他具有先进的结构和强大的功能,其指令数达111条,MCS-51单片机可以算是相当成功的产品。
图6& AT89C51的引脚图
其主要功能有:
&#KB程序存储器(ROM)
&#KB的数据存储器(RAM)
&#条I/O口线
&#个专用寄存器
&#个可编程定时/计数器
&#个中断源,2个优先级
􀂊一个双全工串行通信口
􀂊外部数据存储器寻址空间为64KB
􀂊外部程序存储器寻址空间为64KB
􀂊逻辑操作位寻址功能
􀂊双列直插40PinDIP封装
􀂊单一+5V电源供电
MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑为操作功能及面向控制的丰富的指令系统,为以后其他单片机的发展奠定了基础。3.5 警戒线设置按钮
使用AT89C51中 P1口的其中三个引脚,用其中之一与单片机的INT0口连接,通过中断来作为按钮的功能键,另外两个通过下拉电阻接地。做单一功能键使用。3.6 显示模块
静态显示:这种方法直接驱动数码管或采用译码驱动芯片(如74LS48)等方法对数码管译码驱动,每位数码管都稳定的显示数据。这种方法优点是简单,亮度可以做的比较高。
动态显示:这种方法是在静态显示的基础上优化得来的,利用人眼视觉暂留的特点,对所有要显示的数码管控制使其轮流显示,常用的方法是数据线共用,轮流片选所有的数码管。这种方法比静态驱动电路简单一些。
(1)&&& LED数码显示器的结构和工作原理
&&&&& LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成。根据各管的亮暗组合成16进制数,小数点和有限个字符。常见LED显示器的内部结构有供阳极和供阴极两种不同的形式。如图4所示其中COM为公共点,发光二极管的阳极作公共接线端COM的称为共阳极显示器,如图4(C)所示;发光二极管阴极作为公共接线端COM的称为共阴极显示器,如图4(D)所示。
图7 &&LED显示器
条形发光二极管在内部排成图4(a)形式,分别为a,b,c,d,e,f,g,dp。当显示器的某一个发光二极管通电时,该二极管发光。由接口电路控制某几个发光管通电,就可以显示出某一数码或字符.例如,使b,c,f,g这4个发光二极管通电,就可以显示成数码“4”使a,b,e,f,g这5个发光二极管通电,就可以显示成字符“P”。
共阳极的COM端一般接电源+5V,共阴极的COM端一般接电源的“地”,其余各端分别经限流电阻接各自不同的段码驱动端。
(2)&&& 字型码(字段码)
& 由显示器的结构可知,直接将要显示的数码或字符发送到显示器的驱动端是不可能正确显示的,七段码LED显示器所显示是由对应的字形代码确定的,包括小数点dp,可用一个字节来表示。例如,共阴极LED显示数码“6”,则要a,c,d,e,f位高电平,因此驱动数据为3DH& 如下所示
& D7&&&& D6&&&& D5&&&&& D4&&&&& D3&&&&&& D2&&&&&& D1&&&&&&& D0
& dp&&&&& g&&&&& f&&&&&&& e&&&&&&& d&&&&&&& c&&&&&&&& b&&&&&&&& a
& 0&&&&&& 0&&&&& 1&&&&&&& 1&&&&&&& 1&&&&&&& 1&&&&&&&& 0&&&&&&&& 1
&其中,3DH称为共阴极显示器显示数码“6”的字型码(字段码)。根据字形显示代码,共阴极LED的字形显示代码列于下表,其中共阳极LED的字形显示代码取该表中对应字形代码的反码即可。
段&& 符& 号
十六进制代码
F3H3.7声光报警电路
方案一、光报警。采用发光二极管等光学器件,在超过上下限时驱动其发光。
方案二、声报警。对水位的上下线进行设置,当实际水位超过设定值时使用三极管驱动蜂鸣器进行报警。
综合考虑:只使用光报警时当无人职守时太危险;声报警在外界环境声音太大时又不易被发觉。因此使用生光同时报警,当水位超过警戒线时声光报警系统同时向外界发出报警信号。
在用声音或灯光报警时,连续的声响或常亮& 灯光往往不易引起人们的警觉,只有断续的声音或闪烁的灯光,才能取得最佳报警效果。由门控震荡器组成的声光报警电路如下图所示。由于非门CD4011构成两极门控振荡器。其中,A和B组成低频震荡器,振荡频率f1=0.455/(R2C1)=1Hz,周期约1s。R5为下拉电阻。常态下使Uc=0V。仅当Uc=0V。仅当Uc端接高电平时才起振,Bo端交替输出的高低电平经过VT1,使发光二极管LED闪烁发光,闪光周期也是1s.C和D组成音频振荡器,振荡频率为f1=1kHz.仅当Bo=1时,第二极振荡器才起振。通过达林顿VT2,VT3及输出变压器T,驱动扬声妻BL发出断续的声音报警声。蜂鸣器电路是配合数字万用表的200兆电阻挡专用于检测线路通,断的。其优点是操作者不必观察显示值,只需注视被测线路和表笔。凭有无声音及是否发光来判定线路的通断。不仅操作简便,而且能大大的缩短检测的时间。具有声,光指示的蜂鸣器电路如下图所示利用低功耗运放IC1(1/4LM324)作为比较器使用,其同相输入端(第三脚)接参考电压U3=0.41V。设反相输入端(第二脚)电压为U2。当Rx无穷大的时候,U2约等于U+-Ucom=+2.8V。因U3小于U2,故比较器输出低电平,一方面迫使门空振荡器停振,另一方面还令VT截止,LED不发光。当Rx小于某一值时,U2约等于0V,U3大于U2,比较器输出高电平。于是门控振荡器起振,驱动压电陶蜂鸣器发出2kHz的声音。与此同时,VT导通,LED发出红光,利用BZ和LED起到声,光同步指示的最佳效果。R7为偏置电阻,R8和C2分别为振荡电阻和振荡电容。调整R2,R4的阻值,可改变比较器的参考电压,重新设定使蜂鸣器发声的电阻。
图8& 声光报警电路
第四章& 硬件设计4.1 电源模块
给系统供电,由外部的稳压电源模块和变压器一起供电,电路板中只留有4 芯电源接口,分别为+12V、-12V、+5V、GND。从稳压块输出的电压到达芯片的电源引脚时电压有可能不会很稳定,是因为由于距离原因和某些干扰信号的存在。因此,实际设计的系统中往往要加上一定的电源抗干扰措施,常用的方法就是在距离芯片VCC 和GND 最近的地方加上滤波电容,稳定电压,减小纹波及外来的高频干扰。本系统使用从市面上买来了稳压源,内部电路图略。4.2 水位传感器接口 4.2.1 传感器简介
传感器是测量装置和控制系统的首要环节。即处于复杂的测量、控制系统的入口处。如果没有传感器对原始数据进行精确可靠的测量,那么,无论是信号转换或信息处理,或者最佳数据的显示和控制,都将成为一句空话。可以说,没有精确可靠的传感器,就没有精确可靠的自动检测系统。
传感器就是用来将非电量转换为电量或电参量 (R、L、C)的装置。 因此,传感器至少应具备以下两方面的功能:①能感受非电量; ②将非电量转换为电量或电参量。4.2.2 压力传感器简介
压力传感器是将压力信号转换成电压信号的敏感器件,其工作原理简述为:被测压力(液态、气态)作用在应变体上,使应变体上的应变电桥由无压力状态下的平衡进而产生失衡,其失衡深度及失衡所产生的电位差的大小、方向与作用在应变体上的压力大小、方向成正比。这一失衡状态下产生的差势电位信号经集成电路中缓冲放大器放大,再经I/V转换成与压力信号成正比的4 ~0mA或0~20mA或12±8mA的电流。从整体上看,传感器和变送器的良好组合,最终就是一个高稳定度,高线性度的I/P转换器(Electric current/Pressure)。基本结构如图4.1所示:
图6 &传感器及外部电路结构图
本系统选用飞腾机电公司的FT-1系列压力传感器
该压力传感器的传感芯片采用先进的离子注入技术在软体基片上经高能离子载体衍射形成金属薄膜电阻,再经严格的激光修正技术,精确的阻值校正、零偏差校正、温度补偿后搭构成应变式惠斯顿电桥。应变式电桥能随所受压差的大小成正比线性改变其输出信号,此信号即为仪表放大器的输入信号。
主要技术参数:
􀂾 输出: 4-20mADC,二线制
􀂾 过载极限:满量程×2
􀂾 电源: 24VDC±10%
􀂾 防水,防尘:IP65
􀂾 负载电阻: ≤600Ω&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
􀂾 防震: 频率10~1000HZ
􀂾 电气连接: M20×1.5内螺纹 加速度≤10g/s
􀂾 温度范围:使用温度-20℃~+80℃
􀂾 防爆: iaⅡCT5 存储温度-40℃~+125℃
􀂾 稳定性: ±0.2%FS/年&&&&&&&&&& &&&&&&&&&&&&
􀂾 温度影响:零点误差±1%FS/50℃
􀂾 重量: kg(-20℃~70℃)满量程误差±1%FS/50℃(-20℃~70℃)给传感器提供+24V电源,并接收传感器传来的4-20mA电流环信号。共留有4芯接线座。4.3 电流-电压转换
把传感器传送过来的电流信号转换成便于单片机采样检测的电压信号,输出电压范围为0到+5V。电路如图4.2所示。所选用的运放为高精度双电源运放OP37。考虑到电流环的带负载能力,选用的电阻rw1为250欧姆,此电阻必须为精密电阻,以减小A-V转换的误差。输出的电压信号送至单片机的RA0引脚。
图9 &电流-电压转换电路4.4 A/D 转换模块
模拟量输入通道的核心是模/数转换器,简称AD或ADC,通常也把模拟量输入通道简称为A/D通道。现在,A/D转换电路已集成在一块芯片上,一般用户无需了解其内部电路的细节,只需掌握芯片的外特性及使用方法。4.4.1 A/D转换器简介
为了能正确地使用A/D转换器,必须了解它的工作原理、性能指标和引脚功能。
1.A/D转换器的工作原理
常用的A/D转换器的工作原理可分为逐位逼近式和双积分式两种。其中,逐位逼近式用的比较普遍。逐位逼近寄存器SAR输出的二进制编码送至D/A转换器,D/A转换器的输出电压VO与模拟量输入电压VIN经比较器进行比较后,再控制SAR的数字逼近。逐位逼近式A/D转换器采用类似于天平称重的原理,从SAR的最高位开始逐位进行比较,并逐位确定其数码取“1”还是取“0”,比较完毕就把SAR状态送到数字量输出锁存器。
2.A/D转换器的性能指标
A/D转换器的性能指标是正确选用ADC芯片的基本依据,也是衡量ADC质量的关键数据。
(1)转换时间或转换速度:转换速度是指完成一次A/D转换所需时间的倒数,是一个很重要的指标。ADC型号不同,转换速度差别很大。通常,8位逐位逼近式ADC的转换时间为100us左右。
(2)转换精度:ADC转换精度由模拟误差和数字误差组成。模拟误差是比较器、解码网络中电阻值以及基准电压波动引起的误差。数字误差主要包括丢失码误差和量化误差,前者属于非固定误差,由器件决定;后者与ADC输出数字量位数有关,位数越多,误差越小。
(3)分辨率:用来表示ADC对输入模拟信号的分辨能力,即ADC芯片输出的数字编码能反映多少微小的模拟信号变化。
(4)量化误差:对采样信号进行编码,用数字量表示,只能用最小量化单位的整数倍来表示,因此存在一定的误差,这个误差成为量化误差。理想A/D转换器的量化误差为-2LSB~+2LSB。
(5)失码:如果差分线性误差大于或等于一个量化单位,则ADC输出端的有些数码不会出现其正确值,这种现象称为失码。
还有失调误差、增益误差、非线性误差、温度系数等衡量指标。4.4.2 ADC0809简介
1.ADC0809的结构
ADC0809采用逐位逼近式工作原理。主要有8路模拟量选通开关、8位A/D转换器和三态数据输出锁存器三部分组成。采用28脚双列直插式封装,其性能指标一般,价格低廉,便于与单片机连接,因而应用十分广泛。
2.ADC0809引脚功能
ADC0809引脚排列如图4.2所示。
各引脚功能说明如下:
VIN0~VIN7:8路0~5VDC模拟量输入端。
A、B、C:3位地址线。
&&& ALE:允许地址锁存信号,输入,高电平有效。
&&& CLK:输入时钟脉冲断,标准频率640kHz。
&&& START:启动信号,输入,高电平有效。
EOC:转换结束信号,在A/D转换期间EOC
为低电平,一旦转换结束即变为高电平。EOC可用&&& 图4.2 ADC0809引脚图
作向CPU申请中断的信号,或供CPU查询A/D转
换是否结束的信号。
DO0~DO7:8位输出数据线三态输出锁存,可与&&&&&
CPU数据线直接连接。
OE:允许输出信号,输出,高电平有效。在A/D转换过程中,OE为低电平,DO0~DO7 呈高阻状态。当A/D转换完毕,OE为高电平,则输出DO0~DO7状态。
REF(+),REF(-):基准电压源正、负端标准值+5VDC。
VCC 、GND:工作电源+5VDC端和地端。
图10& ADC0809引脚图
3.ADC0809性能指标
􀂾总分辨率:8位。
􀂾总的非调整误差:-1LSB~+1LSB。
􀂾转换时间:100us。
􀂾具有锁存控制功能的8路模拟开关,能对8路模拟电压进行转换。
􀂾输出电平与TTL电平兼容。
􀂾单一+5V电源供电。基准电压由外部提供,典型值为+5V,此时允许模拟量输出范围为0~5V。4.5 单片机模块
本系统选用MCS-51 单片机8051。利用到它具有4KB的ROM,128KB的RAM的特点。单片机选用6M晶振。系统还保留有复位按钮。如图4.3所示。4.6 警戒线设置按钮
键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。这部分是单片机系统中的按钮RB0、RB1、RB2。如图4.3所示,用来人工设置水位警戒线的上下限。RB0用来进入设置状态,依次状态如下:
进入水位上限设置-&进入水位下限设置-&退出设置,并保存当前的值到ROM。
当进入上下限设置后,RB1 和RB2 按钮分别来增加、减小当前的值。
图11& 警戒线按纽4.7 显示模块
用来显示当前水位的值。三位数字格式为*.**。在设置水位上、下警戒线时则显示当前人工输入的数据。这部分硬件电路如图。显示采用动态扫描的方法,由三极管隔离驱动。RE 端口负责片选。如图4.4 所示。
图12 &数码显示电路4.8 声光报警电路
图13& 声报警示意图
第五章& 软件设计5.1 软件说明
根据系统的功能要求,程序主要完成如下功能:
􀂾 采集水位传感器信号转化后的电压信号
􀂾 接收传感器传送的RS485 信号
􀂾 实时处理数据,并显示(动态扫描)
􀂾 当检测到到超出警戒线时执行语音报警程序
􀂾 通过按键控制,设置水位警戒线5.2 程序设计思路
主程序初始化相应的寄存器和变量及相应的管脚后,进入主循环。主循环负责对外部的传感器信号转化后的电压信号采样,处理,转化成相应的值,并送到对应的缓冲区。然后对值进行判断是否超警戒限,若是则启动相应的声光报警程序;否则完成此次循环。
中断程序中,主要负责数码管的动态扫描和响应按键产生的中断来设置上下水位警戒线。动态扫描的频率约1K 左右(可在调试中测试找到最佳扫描频率),它的时钟周期由单片机内部定时器T2 来设置。
当检测到INT0 中断标志位INTF 为1 时,表明有人按下按键RB0,此时进入水位上下限的设置程序。循环检测RB1、RB2 口的状态,判断是否有按键按下。若有则要对当前的水位上下限进行加或减一。若按下RB0 则依次切换:上限设置-&下限设置-&保存并退出5.3 程序设计流程图
&SHAPE& \* MERGEFORMAT
图14 &&主程序流程图
&SHAPE& \* MERGEFORMAT
图15 &中断服务程序流程图5.4程序说明 5.4.1 主程序
(1)初始化
Di(); //关闭所有中断
Ini_Display(); //LED 数码管显示初始化
Ini_key(); //按键初始化
Ei(); //打开所有中断
5.4.2 数码显示模块
(1)初始化
(2)动态扫描程序
if ( i==0x01 )
PORTD = Seg_L[ LED[1] ];
i=PORTE=0x02;
这只是点亮一个数码管的程序,依靠语句 i=PORTE=0X02 、0X04、0X01,来依次点亮,利用人眼视觉暂留的特点,对所有要显示的数码管控制使其轮流电量。
(3)译码表(略)5.4.3 键盘模块
(1)键盘初始化
中断主要由中断控制寄存器INT0 来控制。INT0 是一个可读/写寄存器,含有定时器TMRO 溢出、RB 口的变化和外部INT 引脚中断等各种允许控制和标志位。RBO/INT 引脚上的外部中断由边沿触发,当INT0 位(OPTION寄存器第6 位)被置1 时,选用上升沿触发,如该位被清零,则由下降沿触发。当检测到引脚上有规定的有效边沿时,便把INTE 位(INTCON 的D4 位)置1。在重新开放这个中断之前,必须在中断服务程序中对INTE 位清零。PORTB 每个管脚都有可编程之弱上拉,设置RBPU 位(OPTION&7&)可以打开/关闭这些弱上拉。当I/O 管脚被设成输入时,则其弱上拉自动关闭。
当芯片上电复位后,RBPU=1,所有弱上拉被关闭,可由用户程序将它们打开(置RBPU=0)。
TRTSB 寄存器为PORTB 口方向寄存器“1”=输入,“0”=输出,程序如下:
RBPU=0; //RB 口内部弱上拉使能
INTEDG=0; //下降沿触发
TRISB=0 //PORTB 端口设置为输入
INTF=0; //清除INTF 中断标志
INTE=1; //打开INT0 中断
(2)键盘中断处理
先定义键盘设置状态的变量(0:正常工作 1:进入上限设置 2:进入下限设置):unsigned char key_slt=0;
定义正在执行INT0 的中断程序标志,防止重复进入:static bit on_int=0;判断是否正在执行中断,打开中断后,立即清除。程序如下:
if (on_int==1) //如果正在执行,跳出,防止重复执行
on_int=1; //设置正在执行标志
ei(); //打开中断,让数码管扫描程序继续执行
INTF=0; //清除INT0 中断标志
delay_ms_int(200); //延时200ms
再判断键盘设置处于什么状态,是正常还是上、下限,当然,如果在
此三种情况,需要将其强行回到正常态。在读取水位上下限的时候,需要
先对数码显示管重新设置,程序如下:
if (key_slt==0)
eeprom_wr( Data_EEPROM,Add_Down_EEPROM );
//写入水位下限到EEPROM
LED[2]=LED[1]=LED[0]=0;
//重置数码管数值
else if (key_slt==1) //进入水位上限设置
i = Data_EEPROM = eeprom_rd( Add_Up_EEPROM );
//读取EEPROM 中的水位上限
LED[0] = i % 10;
LED[1] = i % 10;
LED[2] = //重新设置数码管显示的数据
else //进入水位下限设置
eeprom_wr(Data_EEPROM,Add_Up_EEPROM);//首先写入水位上限到EEPROM
delay_ms_int(1); //加入一点延时
i = Data_EEPROM = eeprom_rd( Add_Down_EEPROM );
//读取EEPROM 中的水位下限
LED[0] = i % 10;
LED[1] = i % 10;
LED[2] = //重新设置数码管显示的数据
(3)键盘设置水位
定义控制水位预定值增加的按键:#define Key_Up RB1
定义控制水位预定值减小的按键:#define Key_Down RB2
先判断是否进入键盘输入状态,如果没有,则返回,再判断是哪个键按下,使增加键还是减少键。同样,在显示设置值时要先对数码管重新设置。主要程序如下:
if (Key_Up==0)
Data_EEPROM++;
i = Data_EEPROM;
LED[0] = i % 10;
LED[1] = i % 10;
LED[2] = //重新设置数码管显示的数据
while (Key_Up==0) //等待到按键松开
减少程序同增加程序一样,只要将递增改为递减。5.4.4 声光报警模块
1)上限报警
报警的时候则设于ISD1420 的接口PORTC 为输出,否则为输入。
程序如下:
TRISC &= 0b;//设置端口为输出
PORTC &= 0xe0; //禁止语音播放,地址清零
PORTC |= 0x01; //打开语音播放使能,送地址0x00
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250); //延时1 秒钟
TRISC |= 0b; //与ISD1420 接口设置为输入
2)下限报警
只有送的地址不一样,送地址0x05 到PORTC 口。
第六章 &系统调试
该系统设计完成,代码编写完编译通过、电路图设计完成之后,按原理图焊出板子,因为第一次系统地做如此全面的系统,所以错误的分析和各种干扰的排除,占用了大部分时间。
(1) 采样值偏离实际值 。干扰叠加在有用信号上 ,使数据采样值偏离信号真实值,引起采样值误差, 将直接影响计算结果 。
(2) 程序运行出轨。随机干扰因素破坏了程序计数器PC值,使 CPU 从ROM 中读取指令时出错,改变了程序执行的正常颇序,可能会迸入某一种非预期的死循环而使系统失去控制。
(3)计算或逻辑错误 。干扰可能引起数据存储器数据发生改变,也可能在读(或写)一个数据时数据线或地址线受干扰发生改变,就会造成读(或写)一个坏数据或者读(或写)一个错误地址。如果这是一个中间结果或者采样数据 ,就会造成计算错误 。如果这是一个标志字,就会造成逻辑紊乱,使输出失去控制,有可能引起装置误动或拒动 。6.1 硬件调试
(1)初步调试:看看板子是否有短路,电源能否正常供应。编写一简单程序看是否能运行。
(2)对元件进行测试:元件的质量是保证系统完成既定功能的重要保证,由于以前未用过本系统所用的一些器件,所以必须对它的参数很了解,为此我翻阅了大量的数据手册。
(3)出现运放补偿不足,在设计时,为了提高高频响应,其补偿量较小,当反馈较深时会出现自激现象.通过测量其开环响应的BODE 图可知,随着频率的提高,运放的开环增益会下降,如果当增益下降到0db 之前,其相位滞后超过180 度, 则闭环使用必然自激.
这种自激出现在运放闭环使用,而且增益较低的情况下,一般只有增益小于10的情况下才能出现.其实这种自激最好解决,正确的选择运放即可,对于一些高速运放,其厂家手册中都会注明最低的闭环增益. 本系统选用OP37;运放。6.2 软件调试
首先编写一些小程序写入,如二极管的驱动,再将各模块的程序依次写入运行。一些语法或编程思想上的错误倒是好解决,但一些看不见的干扰会令人困惑。例如:程序会因干扰而一下子跳到不可预测的地址上,使程序混乱,发生不可设想的后果,导致事故。 为了防止上述情况发生,除了在硬件上采取必要的抗干扰措施外,在单片机程序设计中 ,充分挖掘软件的抗干扰能力 ,采取一定的措施, 将干扰的影响抑制到最小程度。
解决办法:
(1)消除数据采集干扰[1]
对于实时数据采集系统来说,为了消除传感器通道中的干扰信号,运用CPU运算控制功能,实现模拟滤波的类似功能,这就是数字滤波。随着微机运算速度的提高,数字滤波在实时数据采集系统只的应用越来越广。其常用的方法主要有:
1、算术平均发。对一点数据连续多次采样,计算其算术平均值,以其平均值作为该点采样结果。
2、比较取舍法。当控制系统测量结果在个别数据存在偏差时,为了剔除个别错误数据,可采用比较取舍法,即对每个采样点连续采样几次,根据所采数据变化情况确定舍取办法,剔除偏差数据。
3、采样值的加权平均值。由于干扰造成的采样数据偏大或偏小,对于不同采样时刻得到的采样值给以不同的权,这样得到的加权平均值可能更准确。
4、一阶递推数字滤波法。这种方法是利用软件完成RC低通滤波器的算法,实现用软件方法替代硬件RC滤波器。
(2)设置时间监控器[1]
程序在运行过程中 ,有时由于某种噪声干扰的影响 ,会出现死循坏的现象。 当程序进入死循环时,使程序从死循环中解脱到正常状态的办法,又称为“看门狗”(WTD)。时间监控器由硬件组成,每当设定的定时时间到,就向CPU发出一个复位信号,强迫CPU复位。在程序正常运行时每隔一定时间(小于监控器的设定时间)就使时间监控器清零,即可保证监控器不会发出复位信号。但程序一旦进入死循环,就无法及时清零时间监控器,势必造成时间监控器定时时间到,发出复位信号使系统强制复位。
(3)设置软件陷阱
通常 CPU 的 ROM 存储区存在着大量的未用空问,而当程序受到干扰后 ,经常会跳到这些地址上,为了捕捉到这种干扰,可在这些区域设置陷阱----引导程序片段,一旦程序落入这片区域时,就将其引导到特定的处理程序上而恢复正常。
这种措施的优点是抗干扰处理简单 。缺点是其与 CPU 未用的存储数量有关,未用的空间越多则捕提到干扰的概率越大,故具有一定的局限性。
(4)指令复执技术[1]
在工业控制系统的故障中,多数属于瞬间性故障,即具有随机性的瞬间干扰所引起的故障,采用指令复执技术可以有效地克服这种瞬间性故障。指令复执技术是指在程序执行的过程中,一旦发现错误,就重复执行被错误干扰的现行指令。实现指令复执时,应注意以下两点:
1、发现错误时,应立即保留现行指令的地址,以便重新执行。
2、应保留现行指令所使用的数据,以便在重新执行现行指令时使用。
以上两点可以用软件来实现,也可以用硬件来实现,但用硬件来实现时,设计微处理器及其他的外围芯片的结构较为困难,而使用软件来实现时,可不改动原来芯片的位置。当然,要花费一定的软件开销去判断关键指令的执行是否有错,一旦有错,应使PC-1给PC,并保留上一条指令结束时的现场,以便重复执行现行指令。
指令复执的次数没有统一的规定,一般可用良种方法来控制:
1、规定一个复执次数,如果在规定次数内故障消失,则复执成功,否则复执失败。
2、规定复执执行时间,如果在规定时间内故障消失,则复执成功,否则复执失败。
在软件系统的编制过程中 ,随着硬件元件的性能不断提高,价格的不断降低 , 采用软 、硬件统一考虑, 软、 硬件相结合的抗干扰措施一起使用, 将会大大提高微机保护的抗干扰能力 。
􀂾 该系统存在的问题及改进方法
限于我所学的知识结构,我制作的基于MCS-31单片机8051的水位测量显示仪必然有某些局限性,或许还有些问题有待更正。
该系统整体而言经济实惠、程序也不是太复杂,是水位测量的首选方案。但局部有些缺陷,例如电源的接口不是很方便。而且测量显示可以再通过总控室的电脑显示出来,以便及时发现问题,少一些事故。
本人所设计的装置还没有去现场进行调试,因此该装置的稳定性和抗干扰性有待进一步完善。
另外,就是报警模块其实可以使用内部的软件代码来实现,就更经济了。
􀂾 结论
我的毕业设计完成了基于MSC-51单片机的水位测量显示仪。该系统解决了煤炭开采过程中大量积水的测量显示问题。该系统采用PIC系列单片机,由于其指令精简、流水线取指令的方式,抗干扰能力强,性能价格比高,在世界上具有很高的名气。所以该系统有广泛的应用前景。本人在毕业设计中主要完成了原理图的设计、电路板的设计、硬件调试、软件设计等工作。
本系统的设计和论文的撰写是在我的指导老师梁纯的指导下完成的,在毕业设计的期间,梁老师渊博的知识、对待科研工作严谨的态度,以及在学习和生活上对我无微不至的关怀都给我留下了深刻的印象,在校外的那段时间,我时常与他联系,总能得到他热心的帮助。在此论文完成之际,谨向梁老师表示深深的谢意和由衷的敬意。
同时,还要感谢在校期间吴兴华老师在设计过程中的指导,才能使我的毕业设计能够顺利地完成。在此,表示对他们诚挚的谢意。
最后,感谢家人、朋友这些年来给我的支持和鼓励。
[1]冯文旭、刘传玺等 单片机应用技术.中国矿业大学出版社.2003-5
[2]郑堤 唐可洪等 机电一体化设计基础机械工业出版社 2005-1
[3] 胡汉才.单片机原理及接口技术,清华大学出版社 1996-7
[4] 曹国清 数字电路与逻辑设计. 中国矿业大学出版社 1998-8
[5]康华光、陈大钦.电子技术基础-模拟部分(第四版).高等教育出版社.1999-6
[6]谭浩强 C 程序设计 .清华大学出版社.1991-8
没有相关文章
推 荐 阅 读
阅 读 排 行
专 题 列 表
Corporation </small Inc. 网站备案号:鄂ICP备号-2 
基于架构  

我要回帖

更多关于 楼宇对讲 的文章

 

随机推荐