原创 我的毕设——重磅出击:正文技术核心部分

2009-2-26 20:24 5476 10 13 分类: 工程师职场

1  前 言<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


目前,在用于井下监控系统的检测中,矿井水仓水位是井下重要的安全参数之一。煤矿开采过程中涌出的地下水经井下各巷道集中至水仓,水仓水位实时地反映了矿井的水文情况,水仓水位在短时间内上升异常就预示着水灾事故发生的可能性在增大,因此,对水仓水位实时监测。。。。故系统的工作相当稳定和可靠。后面章节就从硬件和软件两个方面对该传感器作一介绍。(全是套话感觉没什么用)



2  项目背景介绍


地域水位是一种最基本的环境参数,它与人民的生活息息相关,在工业生产过程中需要实时测量水位,在农业生产中也离不开水位的测量,因此研究水位的测量方法和装置具有重要的现实意义。


测量水位的关键是水位传感器,.....


本论文将介绍智能集成液位传感器的结构特征及工作原理,并对由此传感器和AT89S52单片机为控制器构成的水位测量装置的工作原理及程序设计作了详细的介绍......本设计中采用CYX-32系列压力敏感头感测量外界环境水位,然后........实现了方便,安全操作的目的。(又是些废话,全是论文格式所逼)

核心部分:

3  硬件系统介绍


31  总体设计图


矿用水位传感器总体设计方框图如图3-1所示,主控制器采用AT89S52单片机,复位电路采用上电复位和单片机内部看门狗实现自动复位,水位敏感头采用天水华天公司生产的CYX-32系列压力敏感头测液位信息,红外控制模块采用HS0038接收器接收红外线数据,显示模块采用共阴四位LED数码管显示,报警模块采用蜂鸣器进行报警提示,频率输出模块把水位数据转化成对应频率的脉冲进行输出。


 文章所有用图请下载附件“文章用图”



3-1 总体设计框图


32  位敏感头(CYX-32)介绍


CYX-32系列压力敏感头采用含有不锈钢隔离膜片的进口高准确度、高稳定性力敏芯片,经严格精密的温度补偿而制成。可广泛用于腐蚀性或非腐蚀性气体、液体的表压、负压、绝压测量。


321  性能特点


性能特点:


●准确度高:优于0.1


●稳定性好:  0.2FS/年,  0.01FS/


●温度范围宽:-20℃~+<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />80


●功耗低


●体积小,安装方便


●本安防爆


322  内部结构及外形


CYX-32系列压力敏感头借助压力传感器来实现水位的测量,采用ASDX系列传感器,它属于压阻式传感器,如图3-2其内部包含的感应元件由4个压电电阻组成,它们埋藏在一个化学蚀刻而成的薄硅隔膜表面下。压力的变化使得隔膜发生形变,产生一个拉扯或扭曲力,这样电阻值就随之发生改变,通过电路产生一个输出电信号。当水位变化时,封闭气体受到的压力也随之变化,从而将液体的水位转化为气体压力传感器所受到的气体压力,通过测量气体压力就可知道水位高低。



3-2 CYX-32系列压力敏感头内部结构


传感头外形如图3-3



3-3 CYX-32系列压力敏感头外形


323  CYX-32系列压力敏感头工作原理


投入式压力敏感头利用水的压力与水的深度成正比来测量水位,水压力即差压。投入式压力敏感头水位取样的基本原理是基于单晶硅材料的压阻效应。半导体单晶硅在受到水的压力后,其电阻会发生改变,且改变量与水的压力成正比。为了实现单晶硅的压阻效应,在应用中一般是在圆形硅膜片上扩散出四个P型电阻,构成惠斯登电桥的四个臂 。


    


3-4 投入式压力敏感头采集水位信号原理图


惠斯登电桥原理如图3-4所示,电阻R1 -R和三个电阻R2 +RR3 +RR4-R构成电桥的四个臂。当在AC端(电源对角线)加上直流电源时,BD即称为“桥”,桥上串联个检流计可以用来检测其间有无电流流过,以比较“桥”两端的电位大小。


图中是由于压阻效应产生的电阻的变化量。在水的压力作用下,电桥的输出UBDI R,可见电桥的输出与电阻的变化量成正比,也就是与水的压力或深度成正比,从而将水位物理量变成对应的近似成线性比例的电信号。


投入式压力敏感头选用进口不锈钢隔离膜片作敏感元件,将芯片装入一不锈钢壳体内。采用特制的防水通气电缆将信号引出。传感头投入被测液体内, 电缆接入仪表盒。由于采用特制的防水通气电缆,使感压膜片的背压腔与大气良好相通,测量液位不受外界大气压的影响,测量准确, 长期稳定性好, 并具有优良的密封和防腐性能, 可直接投入水中长期使用。


当把传感器探头投入到水中某一位置时,测点的水压力为:P=H*γ


其中:P-测点的水压力,g/cm2 H-测点水深,即测点至水面距离,cmγ-水的比重。


可推算得 测点水深:HP/γ 


矿用投入式压力敏感头把感受到的水压信号转换成电压信号,该信号为模拟量信号,必须将其放大后转换成数字量才能被单片机采集、分析、计算。计算处理后送三位LED数字显示电路,并输出2001000Hz信号,1-5mA电流,供矿井监测系统的信号采集器工作站使用。


324  CYX-32系列压力敏感头的使用方法


传感器的IN(+)IN(-)分别接VCCGNDOUT(+)OUT(-)接运算放大器的输入端。本系统所用到的运算放大器(AD623)是在传统的三运放结构基础上改进的一种新型仪表放大器。AD623仪表放大器是美国模拟器件公司(Analog Devices Inc.,简称ADI)最近推出的一种低价格、单电源、输出摆幅能达到电源电压(通常称之为电源限输出,即rail to rail output)的最新仪表放大器。


其主要特点是:


(1)AD623使用一只外接电阻设置增益(G),高达1000,从而给用户带来极大方便。


(2)AD623具有优良的直流特性:增益精度0.1%(G=1),增益漂移25ppm(G=1),输入失调电压最大100μV(AD623B),输入失调电压漂移1μV/°C(AD623B),输入偏置电流最大25nA


(3)AD623具有优良的CMRR(它随增益增加而增加),使误差最小。电源线噪声及其谐波都受到抑制,因为CMRR抑制频率高达200Hz


(4)AD623带宽800kHz(G=1),0.01%建立时间20μs(G=10)


(5)AD623的输入共模范围很宽,可以放大比地电位低150mV的共模电压。虽然AD623单电源供电能达到最佳性能,但双电源供电(±2.5-±6.0V)也能提供优良的性能。


(6)AD623低功耗(电源电流最大575μA)、宽电源范围和电源限输出特性非常适合电池供电应用场合。电源限输出特性使低电源供电条件下,电源限输出级使其动态范围达到最大。


(7)AD623可以取代分立器件搭成的仪表放大器具有优良的线性度、温度稳定性和小体积可靠性。


 (8)AD623仪表放大器采用8脚工业标准封装形式,即DIPSOIC和小型SOIC三种形式,其引脚排列如图3-5所示:



3-5 AD623引脚排列


将双极性信号接到单电源模数转换器(ADC)上通常是件很困难的事情。因为这要将双极性信号范围变换成ADC的允许输入范围。图3-6给出了实现这种变换的一种简捷方法。图3-6中桥路电路用+5V电源激励,因此电桥满度输出电压(±10mV)带有2.5V共模电压。AD623可以去除共模电压并且对输入有用信号放大100(RG=1.02kΩ),使输出信号达到±1V。为了防止±1V输出信号被AD623的接地端吃掉,必须将参考端电压至少提高到1V。这里将分压电路产生的2V基准电压加到AD623REF端,使AD623输出电压偏移到2V±1V,正好对应ADC的输入范围。


3-6 单电源供电基本接线图


通过仪表放大器AD623的放大作用,将传感器输出的信号放大后输入到数模(A/D)转换电路,本系统所用的A/D转换器TLC1549 TI公司生产的 10位逐次逼近模数转换器,该器件具有两个数字输入端和一个 3态输出端 ,它们提供与微处理器串行端口的3线接口。具备自动采样保持功能,采取差分基准电压高阻输入可按比例量程校准转换范围,实现低误差的转换。图3-7是其典型的串行接口方式:



3-7  TLC1549的典型的串行接口方式


33  红外解码模块


331  红外遥控基本原理


一般红外遥控系统由红外遥控信号发射器、红外遥控信号接收器和微控制器及其外围电路3部分构成,如图3-8所示。



3-8  红外遥控系统


当遥控器的某个按键被按下,其内部的信号发射器就产生遥控编码脉冲,由红外发射管串行输出,遥控接收头完成对遥控信号的接收放大、检波、整形、解调出遥控编码脉冲。遥控编码脉冲是一组组串行二进制码,对于一般的红外遥控系统,此串行码输入到微控制器,由其内部CPU完成遥控指令解码,并执行相应的遥控功能。


在红外遥控系统中,解码的核心是CPU。它接收解调出的串行二进制码,在内部根据本系统的遥控信号编码格式将串行码对转换成遥控器上的按键。显然,这种在CPU内部解码出的遥控指令是不便我们利用的。我们只需要利用普通红外遥控系统中的遥控发射器、遥控接收头,自行设计解码模块直接对遥控接收头解调出的遥控编码脉冲进行解码,就可以得到原始的按键信息。


(1)发射部分


由遥控编码电路、键盘电路、放大器、红外发光二极管等组成。当矩阵键盘有键按下时,遥控编码电路通过键盘行列扫描获得所按键的键值,键值通过编码得到一串键值代码,用编码脉冲去调制30kHz50kHz多为38kHz40kHz的载波信号,放大后通过发光二极管发射出去。


(2)接收部分


接收原理如图3-9



3-9  红外接收原理图


由于红外发光二极管的发射功率一般都较小100mW左右,所以光敏二极管接收到的信号比较微弱,因此就要增加高增益放大电路。由于红外接收部分对外界干扰十分敏感,红外接头必须严格屏蔽,只留出一个接收红外光的小孔,以防止干扰信号进入。由于集成化的不断提高,现在大多都采用成品红外接收头。


332  系统的实现


(1)遥控发射器及编码


目前应用中的各种红外遥控系统的工作原理大同小异,区别只在于各系统的信号编码格式不同。下面就以本文采用的红外遥控模块为例说明它的编码与传输。


本系统的红外遥控发射器以TC9148为核心由功能操作键盘、专用编码ICTC9148、输出放大器、红外发射二极管、晶振和电源组合而成。该遥控器使用专用的微处理芯片。TC9148的工作电压范围较宽2.25.5V,内含有500kΩ自偏置电阻,外接陶瓷振荡器或LC即可产生振荡。该电路采用CMOS大规模集成电路,在线路设计上做到只有按键操作时才产生振荡,从而降低功耗。当按下遥控器上任意按键时,IC中的“键控输入”和“键扫描输出”电路便对该键进行识别与确认;同时将“数据寄存输出”中相应的数字“功能码”送至输出电路并对38kHz左右的载波进行脉宽调制PWM,便形成了二进制数字脉冲序列,经过放大器放大,驱动发光管发出波长为0.94μm的数字编码红外光向空间辐射。


传送码是经38kHz的载波调制的一串占空比不同的脉冲群,12个编码脉冲组成传送码的一个基本发送周期,每个发送周期按C1C2C3HS1S2K1K6的次序串行发送。其波形如图3-10所示:



3-10 传送码的波形示意图


波形中一个脉冲周期为116ms占空比为3/4时认定为“1”,占空比为1/4时,认定为“0”(如下图3-11)。其中C1C3是用户码,可供使用者按需编制,HS1S2代表连续发送或单次发送的码。



<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


3-11 发射的“0”和“1bit的波形


 


TC9148最多可以对18个按键进行编码,其中有六个连发键其余的是单发键。凡是按下连续键时,将连续发送键码直到松开按键,如表3-8中的1-6键为连发码(Continuous)其首位三个字节为“100”;凡是按下单发键时仅发送一组码即两个基本发送周期的脉冲,如表3-8中的7-18键为单发码(Single-shot)其首位三个字节为“010”或“001”。


 


3-1  18个按键分别对应的码表(DATA CODE



本系统所用的遥控器是河南理工大学高科技开发公司生产的FYF4型遥控器,它的实物照片如图3-12



3-12  遥控器实物图片


电路图3-13为本系统所用到的FYF4型遥控器的电路,该遥控器设计简单实用,只有4个键,分别为:确定(power)、功能(fun)、加(+)、减(-)。其中"确定""功能"2个键为单发键(按下按键只发一次键值),"(+)""(-)"2个键为连续键(按下按键连续发射键值)。



3-13  红外遥控器电路


(2)红外接收装置


本系统的接收使用了具有通用性的HS0038红外遥控接收头。接收头将接收到的遥控信号,经前置放大、限幅放大、带通滤波、峰值检波和波形整形,从而解调出与输入遥控信号反相的遥控脉冲。华芯公司的HS0038遥控接收头它集成了光电转换、信号放大、滤波、检波和整形等。该接收头对主流传输码都支持,可去除噪声或干扰信号所产生的脉冲。


接收器采用红外线一体化接收器HS0038。不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。接收器HS0038输出信号直接送入单片机的中断1(INT1),由单片机解码并实施相应的操作。解码过程主要是参考芯片的编码方式进行的。


为了凑字数而写的废话:(不过是介绍51单片机的好材料)


 


34  单片机原理及应用


341  89C51系列单片机的特点


单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。AT89系列单片机是以8031为内核,结合ATMEL公司自己的技术优势构成的,它和MCS-51是兼容系列。AT89系列单片机有标准型的AT89C系列和高档型的AT89S系列。


AT89C51MCS-51系列单片机的一个产品。89C51系列单片机是ATMEL公司推出的标准型单片机,其结构特点如下:


188031CPU


2)振荡电路;


332I/O线;


4)片内Flash存储器、片内RAM


5216位的定时器/计数器;


65个中断源,2个中断优先级;


7)全双工串行接口。


89C51单片机的基本结构见图3-14






 




 




 




 




 

3-14  89C51单片机的基本结构


342  89C51系列单片机的内部结构


89C51系列的内部结构可以划分为CPU、存储器、并行口、串行口、定时器/计数器、中断逻辑几部分。


(1) 中央处理器


89C51的中央处理器由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(SFR)。


算术逻辑单元ALU能对数据进行加、减、乘、除等算术运算;“与”、“或”、“异或”等逻辑运算以及位操作运算。ALU只能进行运算,运算的操作数可以事先存放到累加器ACC或寄存器TMP中,运算结果可以送回ACC或通用寄存器或存储单元中,累加器ACC也可以写为AB寄存器在乘法指令中用来存放一个乘数,在除法指令中用来存放除数,运算后B中为部分运算结果。


控制逻辑主要包括定时和控制逻辑、指令寄存器 、译码器以及地址指针DPTR和程序寄存器PC等。


单片机是程序控制式计算机,即它的运行过程是在程序控制下逐条执行程序指令的过程:从程序存储器中取出指令送指令存储器IR,然后指令译码器ID进行译码,译码产生一系列符合定时要求的微操作信号,用以控制单片机的各部分动作。89C51的控制器在单片机内部协调各功能部件之间的数据传送、数据运算等操作,并对单片机发出若干控制信息。这些控制信息的使用专门的控制线,诸如PSENALEEA以及RST,也有一些是和P3口的某些端子合用,如WRRD就是P3.6P3.7,他们的具体功能在介绍89C51引脚时一起叙述。


(2) 存储器组织


89C51单片机的存储器结构特点之一是将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构称为哈佛结构单片机。这种结构与通用微机的存储器结构不同,一般微机只有一个存储器逻辑空间,可随意安排ROMRAM,访存时用同一种指令,这种结构称为普林斯顿型。


89C51单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。


89C51片内有256K数据存储器RAM4KB的程序存储器ROM。除此之外,还可以在片外扩展RAMROM,并且各有64KB的寻址范围。也就是最多可以在外部扩展2*64KB存储器。


64K字节的程序存储器(ROM)空间中,有4K字节地址区对于片内ROM和片外ROM是公用的,这4K字节地址是0000HFFFH。而1000HFFFFH地址区为外部ROM专用。CPU的控制器专门提供一个控制信号EA用来区分内部ROM和外部ROM的公用地址区:当EA接高电平时,单片机从片内ROM4K字节存储器区取指令,而当指令地址超过0FFFH后,就自动的转向片外ROM取指令。当EA接低电平时,CPU只从片外ROM取指令。


89C51RAM虽然字节数不很多,但却起着十分重要的作用。256个字节被分为两个区域:00H7FH时真正的RAM区,可以读写各种数据。而80HFFH是专门用于特殊功能寄存器(SFR)的区域。对于89C51安排了21个特殊功能寄存器,每个寄存器为8位,所以实际上128个字节并没有全部利用。


内部RAM的各个单元,都可以通过直接地址来寻找,对于工作寄存器,则一般都直接用R0R7,对特殊功能寄存器,也是直接使用其名字较为方便89C51内部特殊功能寄存器符号及地址。89C51内部特殊功能寄存器都是可以位寻址的,并可用“寄存器名.位”来表示,如ACC.0B.7等。


这些寄存器分别用于以下各个功能单元:


CPUACCBPSWSPDPTR(由两个8位寄存器DPLDPH组成);


并行口:P0P1P2P3


中断系统:IEIP


串行口:SCONSBUFPCON


定时器/计数器:TMODTCONT0T1(分别由两个8位寄存器TL0THOTL1TH1组成);


343  89C51单片机外部引脚


MCS-51系列单片机中,各类单片机都是相互兼容的,只是引脚功能略有差异。89C51单片机有40个引脚,分为端口线、电源线和控制线三类。如图3-15所示:



(1)电源线


VSS20):接地引脚。            VCC40):正电源引脚。


(2)端口线


P0口( P0.0P0.7


8位双向三态I/O口,可作为外部扩展时的数据总线/8位地址总线的分时复用口。又可作为通用I/O口,每个引脚可驱动8TTL负载。对EPROM型芯片(如8751)进行编程和校验时,P0口用于输入/输出数据。


P1口(P1.0P1.7


8位准双向I/O口,内部具有上拉电阻,可作为通用I/O口。每个引脚可驱动4TTL负载。


P2口(P2.0P2.7


8位准双向I/O口,内部具有上拉电阻,可作为外部扩展时的高8位地址总线。又可作为通用I/O口,每个引脚可驱动4TTL负载。对EPROM型芯片(如8751)进行编程和校验时,用来接收高8位地址。


P3口( P3.0P3.7


8位准双向I/O口,内部具有上拉电阻。它是双功能复用口,作为通用I/O口时,功能与P1口相同,常用第二功能。每个引脚可驱动4TTL负载。作为第二功能使用时,各位的作用如下表3-7所示:


3-2  P3口应用第二功能




端口引脚



各个功能




P3.0



RXD(串行口输入端)




P3.1



TXD(串行口输出端)




P3.2



外部中断0请求输入端,低电平有效




P3.3



外部中断1请求输入端,低电平有效




P3.4



T0(定时器/计数器0计数脉冲输入端)




P3.5



T1(定时器/计数器1计数脉冲输入端)




P3.6



外部数据存储器写选通信号输出端,低电平有效




P3.7



外部数据存储器读选通信号输出端,低电平有效


344  单片机最小系统外围电路


(1)单片机时钟电路。


时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz12MHz之间选取。C1C2是反馈电容,其值在5pF30pF之间选取,典型值为30pF。本电路选用的电容为30pF,晶振频率为12MHz。这样就确定了单片机的4个周期分别是:


振荡周期=1/12


机器周期(SM)=


指令周期=


单片机时钟电路通常有两种形式,如图3-16所示:



3-16  时钟电路


内部振荡方式:MCS-51单片机片内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1XTAL2分别是此放大器的输入端和输出端。把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲,如图(a)所示。


外部振荡方式:外部振荡方式就是把外部已有的时钟信号引入单片机内,如图(b)所示。


(2)单片机复位电路。


单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,使单片机从第一个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。


单片机复位的条件是:必须使RST/VPD RST引脚(9)加上持续二个机器周期(即24个振荡周期)的高电平。例如:若时钟频率为12MHZ,每机器周期为1μs,则只需2μs以上时间的高电平。在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图3-17a)和(b)所示:


 



3-17 复位电路


图(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于2个机器周期,便能正常复位。图(b)为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图中的RESET键,此时电源VCC经电阻R1R2分压,在RST端产生一个复位高电平。


345  本系统所用单片机简介


本系统使用的单片机AT89S52ATMEL公司生产的AT89系列单片机的高档型S系列的增强型单片机。AT89S51系列针对AT89C51系列的明显的几个升级如下:


(1)程序存储器写入方式:二者的写入程序的方式不同,AT89C51只支持并行写入,同时需要VPP烧写高压。AT89S51则支持ISP在线可编程写入技术!串行写入、速度更快、稳定性更好,烧写电压也仅仅需要45V即可。


(2)电源范围:AT89S51电源范围宽达45.5V,而AT89C51系列在低于4.8V和高于5.3V的时候则无法正常工作。


(3)工作频率:目前AT89S51的性能远高于AT89C51,AT89S51系列支持最高高达33MHZ的工作频率,而AT89C51工作频率范围最高只支持到24M


(4)市场价格:由于AT89C51已经全面停产,所以在市场价格方面,库存的AT89C51的批发价格要比AT89S51贵将近一倍!


(5)兼容性:AT89S51向下兼容AT89C51,就是说用AT89S51可以替代AT89C51使用,同样的程序,运行结果相同。


(6)加密功能:AT89S51系列全新的加密算法,这使得对于AT89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。


(7)抗干扰性:内部集成看门狗计时器,不再需要像AT89C51那样外接看门狗计时器单元电路。


(8)烧写寿命更长:AT89S51标称的1000次,实际最少是1000次~10000次,这样更有利初学者反复烧写,减低学习成本。


AT89S52S系列的增强型,它的存储器容量扩大了一倍,增加了2个中断源,16位定时/计数器增加了一个功能极强的定时/计数器2等。


由于在ATMELAT89S51系列比AT89C51系列增加了一个看门狗功能,所以本系统选用的AT89S52无需使用外部看门狗芯片。看门狗具体使用方法如下:


在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。即可激活看门狗。但是在C语言中要增加一个声明语句:在AT89X51.h(或者reg51.h)声明文件中增加一行 :sfr WDTRST = 0xA6;


程序举例:


main()


{


WDTRST=0x1E;


WDTRST=0xE1;//初始化看门狗。


While (1)


{


WDTRST=0x1E;


WDTRST=0xE1;//喂狗指令


}


}


注意事项:


a 89S52的看门狗必须由程序激活后才开始工作。所以必须保证CPU有可靠的上电复位。否则看门狗也无法工作。


b. 看门狗使用的是CPU的晶振。在晶振停振的时候看门狗也无效。


c 89S52只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为12M时每16个毫秒需喂狗一次。但是还可以利用定时器把看门狗的喂狗时间延长几秒甚至几分钟。


35  频率发送模块


根据《矿用水位传感器通用技术条件(MT/T825-1999)》(中华人民共和国煤矿行业标准)中对传感器输出信号的相关规定,本系统会将采集到的水位信息转换为频率信号传到上位系统。


具体范围如下:


a.频率 200Hz1000Hz(脉冲宽度大于0.3ms)


b.电流不小于4A


常见的信号传递方式可分为基带传输和频带(调制)传输。基带传输是将未经频带调制的信号直接传送。如单片机双机通信采用的串口通信方式。而调制传输中常用于数据传输的方法有振幅键控(ASK),频移键控(FSK)和相移键控(PSK)。由于FSKASK相比较,FSK信噪比较大,误码率低,传输距离远,无需中继站,而与PSK相比较,其设备简单易于实现。所以综合以上优点,本系统最终采用FSK模式来传递水位信息。


本系统输出频率与水位呈线性变化,如图3-18



3-18频率输出与水位


输出频率值由以下公式求出:


fout=(1000-200)h/500+200=h*1.6+0xc8 (0<h<500)    (1)


其中fout表示输出频率值,单位Hzh表示水位,单位厘米。


系统利用单片机的定时计数器作为波特率发生器来产生频率,AT89C51单片机可从P1.0编程输出50%占空比的方波,这个功能作为接口信号输出控制。而计数器输出频率f­out­=f­osc­/12而系统采用12M外部晶振(即f­osc­=12M),计数频率f­out=1MHz,每1μs计数值加1。所以产生1000Hz的频率需要计数次数为:


N=1000/12/fosc=1000                   (2)


即信号输出引脚输出50%占空比频率为1000Hz的方波。而12MHz操作频率下可输出频率为3MHz50%占空比的时钟信号由此可得计数初值为:


freq_num=0xffff-3MHz/fout+1                   (3)


当水位h发生变化时,计数初值也相应改变从而达到改变频率的目的。


系统采样时间为1s,即:系统输出频率根据水位每1秒钟变化一次。此采样时间可根据客户要求作相应调整,而当检测水位超出规定的范围时,无频率输出。


36  系统所用元器件安全性介绍


矿用产品电路的设计要符合本安特性,所谓本质安全型(本安)电路,是指在规定的试验条件下,正常工作和规定的故障条件下产生任何电火花或任何热效应均不能点燃规定的爆炸性气体环境的电路。


关于本质安全型电气设备"i"的规定,是指全部电路为本安电路的电气设备。防爆形式,是指为防止电气设备引起周围爆炸性气体环境引燃而采取的特定措施。


对安全等级的要求:本安型电气设备及其关联设备,按本安电路使用场所和安全程度分为两个等级。等级:在正常工作、一个故障和二个故障时均不能点燃爆炸性气体混合物的电气设备。等级:在正常工作和一个故障时不能点燃爆炸性气体混合物的电气设备。对于煤矿井下的场所,传感器要求使用等级。故传感器在正常工作时,安全系数为2.0


GB3836.4-2000中对本安型电路的最小点燃电流、电压都给出了相关规定与设计曲线,也给出了本安电路中含有镉、镁、锌和铝材质的I类电气设备(煤矿用电气设备)的安全设计曲线。煤矿井下环境的恶劣性与特殊性,使我们在设计过程中考虑的安全因素,各设计参数符合上述规定的安全要求。其中某些单元电路中已经涉及到本安参数的计算,这里只对整体的安全参数进行计算。


361  电容安全性计算


设计的矿用水位传感器是与KJ93型矿井安全生产监控系统配套使用的,传感器由KJ93型矿井安全生产监控系统工作站配套使用的电源箱KDW17矿用隔爆兼本安电源直接供电,完全符合本安设计要求。


本计算根据GB3836.4—2000中最小点燃电流、电压曲线,对应于含有镉、镁、锌和铝的I类电气设备而计算。KDW17矿用电源箱标定有三组输出,分别为:本安输出电压(电流)DC12V(1.0A)18V(0.95A)24V(0.45A),电压与电流一一对应。在最坏的情况下,即传感器电源引入线短路,传感器电路中各电容器为最大容量,查电容性电路最小点燃电压曲线,当限流电阻R=0最坏时(正常选择使用6.8Ω的限流电阻),在24V时最大允许使用15μF以下的容量;本安型电气设备及其关联设备,在正常工作时安全系数为2.0;这样可以计算出,最大可使用7.5μF电容器,本电路所用电容器,最大值为3.3μF,符合本安设计的要求。


同样地,当使用18V一组的电源,限流电阻R=0最坏时,查电容性电路最小点燃电压曲线,允许使用60μF以下的容量;本安型电气设备及其关联设备,在正常工作时安全系数为2.0;这样可以计算出,最大可使用30μF电容器,本电路所用电容器,最大值为3.3μF,符合本安设计的要求。


当使用12V一组的电源,限流电阻R=0最坏时,查电容性电路最小点燃电压曲线,允许使用4000μF以下的容量;本安型电气设备及其关联设备,在正常工作时安全系数为2.0;这样可以计算出,最大可使用2000μF电容器,本电路所用电容器,最大值为3.3μF,符合本安设计的要求。


362  通讯电缆电感量安全性计算


井下联机使用时,传输信号电缆为江苏扬州苏能电缆厂生产的矿用4芯电缆,截面积为1.0mm2,其参数为0.06μF/km13.5Ω/ km0.8mH/km。根据《通用技术条件》的要求,最远传输距离为2KM,在最远处短路,则电感量为2×0.8=1.6mH13.5Ω×2×2=54Ω,最坏情况24V电源串入电缆中,则24V/54Ω=0.444A,接近电源箱输出最大电流,查低电压电感性电路,电感量为1.6mH时,24V时最小点燃电流为1.0A,取安全系数为2,则1.0/2=0.5A,实际最大电流为0.45A,符合要求。


经过计算,本系统中所用各元器件的参数均符合以上要求。



4  硬件电路设计


第三节从宏观上分析了矿用水位传感器的设计方案:即以单片机为控制核心,以CYX-32系列压力敏感头为水位检测元件的水位检测系统。现在我们从各个模块出发,深入分析各个模块的构成及功能。


41  系统整体电路


   系统整体硬件电路包括:传感器数据采集电路,水位显示电路,超限报警调整电路,看门狗复位电路,红外接收电路,频率输出电路,单片机主板电路等。整体电路如图4-1所示(大图见附录1)



4-1 系统整体硬件电路


42  集成稳压电路


系统电源取之自井下矿用9-24V隔爆兼本安直流电源,它经三端稳压器LM7805稳压后输出+5V,供系统使用。电源的输入端串接了一只隔离二级管IN4007,主要是起隔离保护作用,防止用户使用时接错极性而导致传感器损坏。在电路输入端的电源线与地线之间并接一个3.3μF的直流滤波电容,输入与输出端各接有一个0.1μF高频滤波去耦电容。高频滤波去耦电容提供和吸收该集成电路开关门瞬间的充放电能其电路图如图4-2



4-2 集成稳压电路


43  传感器电路


传感器电路部分由两部分组成:信号放大电路和数模(A/D)转换电路,下面对这两部分电路分别进行分析。


431  信号放大电路


设计采用具有零点漂移小、单电源供电、输出信号幅度能达到仪表专用放大器AD623输入信号要求的检测电路,确保传感器在检测范围05m的信号灵敏度、稳定性和线性。由于AD623的共模输入范围可以扩展到比地电位低0-1V,所以在共模信号分量很低或者为0的情况可以测量小的差动信号。


AD623的增益(G)是用一个精密电阻(0.1%~1%精度)RG设置的,不管脚1和脚8之间的阻抗如何。应该注意,如果G=1RG不必连接。电阻选择计算公式为:


RG=100kΩ/(G-1)                     (4)


AD623的参考端(REF)电位用来确定零输出电压,当负载与系统的地不明确是否共地时特别有用。它提供一种对输出引入精密补偿的直接方法。还可以利用参考端提供一个虚地电压来放大双极性信号。参考端允许电压变化范围为-VS~+VS。如果AD623相对地输出,则参考端应接地。


AD623的误差很低,有两个误差源:输入误差和输出误差。当折合到输入端(RTI)时,输出误差除以增益,实际上在增益很高时,输入误差起主要作用;在低增益时,输出误差起主要作用。对给定增益,总失调电压由下式计算:


总误差(RTI)=输入误差+输出误差/增益


总误差(RTO)=输入误差×增益+输出误差


为减小误差本设计使用两个AD623对输入信号进行联级放大,而第二级放大的输入是相对地输入的,REF应接地。电路如图4-3



4-3 信号放大电路


这样做使得每级放大增益都可以调到总误差最小时的值,从而得到较大增益和较小误差。


432  数模转换电路


本系统使用的A/D转换芯片TLC1549是由美国德州仪器公司(TI)生产的10位模数转换器。它采用CMOS工艺,具有内在的采样和保持,采用差分基准电压高阻输入,抗干扰,可按比例量程校准转换范围,总不可调整误差达到±1LSBLast Significant Bit最低位,即:第0位)Max4.8mV)等特点。


其工作原理如下:在芯片选择(CS)无效情况下,I/O CLOCK最初被禁止且DATA OUT处于高阻状态。当串行接口把CS拉至有效时,转换时序开始允许I/O CLOCK工作并使DATA OUT 脱离高阻状态。串行接口然后把I/O CLOCK序列提供给I/O CLOCK并从DATA OUT 接收前次转换结果。I/O CLOCK从主机串行接口接收长度在1016个时钟之间的输入序列。开始10I/O 时钟提供采样模拟输入的控制时序。时序图如图4-4



4-4 CS有效时10个时钟传送时序图


CS的下降沿,前次转换的MSBMost Significant Bit最高位即第7位)出现在DATA OUT端。10位数据通过DATA OUT 被发送到主机串行接口。为了开始转换,最少需要10个时钟脉冲。如果I/O CLOCK传送大于10个时钟长度,那么在第10个时钟的下降沿,内部逻辑把DATA OUT拉至低电平以确保其余位的值为零。在正常进行的转换周期内,规定时间内CS端高电平至低电平的跳变可终止该周期,器件返回初始状态(输出数据寄存器的内容保持为前次转换结果)。由于可能破坏输出数据,所以在接近转换完成时要小心防止CS被拉至低电平。


由此可得单片机需要用到三个I/O口接到TLC1549CS端、I/O CLOCK端和DATA OUT端。其中两个接口对芯片进行控制,余下的一个接口接收数据。而基准电压的高端值加至REF+,基准电压的低端值加至REF-。最大输入电压范围由加至REF+ 的电压与加至REF-的电压之间的差值决定。此电路的最大输入电压范围为0-5V。电路如图4-5



4-5 A/D转换电路


44  水位显示电路


     显示电路采用七段式数码管。如下图4-6所示:图(a)为数码管结构图。使用LED显示器时,要注意区分两种不同的接法:图(b)为共阴极接法,图(c)为共阳极接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计八段。因此为LED显示器提供的编码正好是一个字节。



4-6 七段式数码管


LED显示器工作方式有两种:静态显示方式和动态显示方式。


静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。


所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。



4-7  水位显示模块


 


本系统中我们采用共阴极LED,并且采用节约硬件的资源的动态扫描方式。三个数码管段选端公用89S52单片机的P0口,位选端分别于P2口的低三位口线相连接,用六反相门74LS14驱动,具体电路如上图4-7所示。


44  声光报警电路


水位检测系统有声光报警功能,当检测水位超限时,进行声光报警提示。P2.4通过74LS14接晶体管基极输入端,当P2.4输出低电平“0”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而蜂鸣;当P2.4输出高电平“1”时,三极管退出导通状态,蜂鸣器停止发音。注意此时蜂鸣器内还有大量电流,需要接一个反向泄露二极管将其放掉。具体电路如下图4-8所示:



4-8  声光报警


45  红外接收电路


该模块通过红外接收器HS0038和遥控器完成水位的警戒限值的设定和对精度与零点的修正等。红外接收电路采用的集成红外接收器,可直接将数据输出端直接接至AT89C52的外中断输入口即可(本系统接至P3.3),利用该口的第二功能,一旦红外线信号到来,P3.3被拉低,单片机中断当前的工作转移到接收、处理红外信号, 把红外接收头送来的二进制编码波形通过解码,还原出发送端发送的数据。


具体电路如下图4-9所示:



4-9 红外调制模块



4-10  遥控按键外观图


4-10Power键为确定键,Function键为功能键,可以通过此键选择功能,“+”键为参数上调按钮,“-”为参数下调按钮。HS0038接收头接收到遥控器发送的红外线后,把接收数值传送给单片机,单片机根据接收值判断键值,然后控制外围电路去执行相应功能。


红外遥控系统中,虽然发射、接收芯片内部均含有抗干扰及杂波滤除功能,但红外干扰源对系统的影响仍无法完全避免;另外,某些意外情况也可能造成解码错误,因此需要在软件中加以考虑。我们对传送码采取二次比较措施,就是连续采集两串代码,将两串数据码相比较,相同则传送码有效。同时,在程序区建立一个键码表,键码表见表4-1。表中一次列出所有传送码表示的键值,当检测出的传送码表中有相同键码时,才可作为有效代码送给单片机系统。


 


4-1 红外解码键码表




 


Power


Function


+”键


-”键


按键号码


11


9


3


5


按键DATA


0,1000,0010


0,1000,1000


1,0000,1000


1,0000,0010


接受码(反码)


1,0111,1101


1,0111,0111


0,1111,0111


0,1111,1101


10进制键码


381


375


247


253


46  频率输出电路





(5)


 

<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />AT89C52单片机可从P1.0编程输出50%占空比的方波,这个功能作为接口信号输出控制。P1.0引脚除了作为一个标准的I/O外,通过编程还可以用于定时器/计数器2的外部信号输出。单片机在12MHz外部晶振下可输出最高频率3MHz50%占空比的时钟信号,此时要将定时/计数器2 配置为时钟发生器,C/T2必须清零、T2MOD中的定时器输出启动位T2OE必须置位,启动定时器2 必须将TR2置位。时钟输出频率由振荡器频率和定时器2 捕获寄存器的重新装入值确定,公式如下:



                                                                                      


        此处foutP1.0输出的占空比50%的时钟信号频率,fosc为振荡器频率,RCAP2H RCAP2L是定时器2的陷阱寄存器,里面存储的内容为预置的16位计数初值,当设置T2MOD寄存器的DCEN位为0时定时器2为增量加1型自动再装入方式,当清零EXEN­­2标志位时,定时器2计满回0溢出,此时将RCAP2H RCAP2L中预置的计数初值重新再装入计数器TL2TH2中,自动地继续进行下一轮的计数操作,其功能与定时/计数器01的方式2相同。


因为计数初值freq_num=0xffff-3000000/(h*1.6+0xc8)+1与水位相关,所以当水位值改变时输出频率也会相应发生变化。


实际电路中频率输出是由P1.0口输出的频率信号经过反向门驱动后接晶体管基极输入端,最后由晶体管发射极将信号输出。


这部分的电路图见下图4-11


 



4-11  频率输出电路



5  系统软件设计


51  系统概述


整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。


52  系统软件开发环境


与以往的80C51单片机不同,AT89S52具有在线调试和下载功能,它由支持AT89S52的开发工具包Keil μVersion2.0开发系统来提供。也就是说,在用户系统保留AT89S52的情况下,通过开发系统与AT89S52的串行接口通信,直接对用户系统进行调试,并在调试完成后将调试好的程序下载到AT89S52中。Keil μVersion2.0开发系统提供四项功能:编译、下载、调试和模拟,分别由Keil μVersion2.0提供的编译器、在线串行下载器、调试器和模拟器来实现。Keil μVersion2.0编译器可在Windows操作系统下直接使用,编译汇编源程序,并生成16进制(hex)文件和列表文件。串行下载器是一个软件程序,它允许通过标准PC机上的串口串行下载汇编程序到片内8kB的闪速程序存储器中。调试器采用Windows系统,允许用户使用AT89S52UART串行接口在芯片上调试代码执行。在典型调试对话中,调试器提供对片内所有外围设备的访问、单步和设置断点的代码执行控制方式。模拟器采用Windows系统,能完全模拟AT89S52的所有功能。模拟器使用简单,结合了许多标准调试特征,包括多断点、单步以及代码执行跟踪等能力。


53  程序设计


传感器的软件设计为了便于调试、连接和扩展,采用模块化程序设计技术,模块间任务划分明确,耦合清晰,避免了重复设计,彼此间具有相对的独立性。数据结构明确合理,子程序间调入返回接口清晰,调用灵活。系统程序主要包括数据采集子程序,数据处理子程序,数据显示子程序,频率输出子程序,声光报警子程序,遥控子程序等。


531  主程序


主程序调用了六个子程序,分别是数据采集子程序,数据处理子程序,数据显示子程序,频率输出子程序,声光报警子程序,遥控子程序。


数据采集子程序:对A/D转换芯片进行控制并读出A/D转换后的数据。


数据处理子程序:对A/D转换芯片送过来的数据进行处理,进行判断和计算。


数据显示子程序:向数码管送显示数据并控制系统的显示部分。


遥控子程序:实现红外按键识别的功能。


频率输出子程序:把测量水位值转化成对应频率传送给上位机识别。


声光报警子程序:把实际测量水位值警戒水位限值相比较并根据结果判断是否进行报警提示。


程序流程图如图5-1所示:


5-1 主程序流程图


532  数据采集子程序


数据采集子程序的主要功能是读出TLC1549转换成数字量后的10字节。其程序流程图如图5-2



5-2 数据采集子程序流程图


实现这一功能的程序主要数模转换模块如下:


unsigned int adc(void)


{  unsigned int  result=0; //读入的二进制数据


   cs=1;             //禁止I/O CLOCK


   nop;              //延时


   cs=0;             // 使能DATA OUTI/O CLOCK


   result=0;         //清转换变量


   for(i=0;i<10;i++)//采集10 ,即10bit


    {//给一个脉冲


      clk=0;       


      result=(result<<1)|dout; // AD数据


      clk=1;


      nop;


    }


   delay(2);


   cs=1;     //DATA OUT 返回到高阻状态而终止序列


   return(result); //返回转换值


}


533  数据处理子程序


这部分子程序主要是将从A/D转换芯片采集到的二进制信号通过计算处理成实际的水位值。


经过A/D转换之后,所获的数字信号不能直接输入单片机供应用程序使用,还必须根据需要进行软件处理,引入数据处理后,克服和弥补了包括传感器在内的各个测量环节中硬件本身的弱点和缺陷,提高了传感器的可靠性和测量精度。


另外考虑到由于传感器自身及其他放大、数模转换器件的温度漂移及老化,导致传感器的零点漂移以及使用精度下降。为保持传感器的精度,因此必须对传感器的信号进行修正,所以数据处理子程序里还包括参数修正部分。


参数修正部分引入了两个修正因子对信号进行精度修正和零点修正,它们分别对f-h坐标图的“频率-水位直线”的斜率和在f轴截距进行调整如图,从而达到修正精度和零点的目的。



5-3 修正曲线变化


这部分程序的流程图如下图5-4



5-4 数据处理流程图


534  数据显示子程序


这部分程序就是对数码管的驱动,其流程图如下:


 



5-5 显示程序流程图


实现数码管显示程序主要模块如下:


code unsigned char seg7code[11]={


0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};


void Delay(unsigned int tc)            //延时程序


sbit led1=P2^0;


sbit led2=P2^1;


sbit led3=P2^2;


sbit led4=P2^3; //段位设置


void led_play(unsigned char show)     //显示函数


{ led1=led2=led3=led4=0;              //数码管全灭


  P0=seg7code[show/1000];          //第一位显示


   led1=1;    Delay(5);   led1=0;  //选择第一位并延时


  P0=seg7code[show%1000/100];     //第二位显示


   led2=1;    Delay(5);   led2=0; //选择第二位并延时


  P0=seg7code[show%100/10];           //第三位显示


   led3=1;    Delay(5);   led3=0; //选择第三位并延时


 P0=seg7code[timer%10];           //功能状态显示


   led4=1;    Delay(5);   led4=0; //选择状态位并延时


 }


535  频率输出子程序


输出频率脉宽的计算如下:在fout=200Hz1000Hz时,对应的输出脉冲周期为:T=1/fout=1ms5ms。水位值对应的脉冲频率是通过AT89S52P1.0口来输出的,AT89S52P1.0口输出的是占空比为50%的方波,也就是说脉冲信号的正负脉宽比是11,所以,P1.0口输出的正负脉冲宽度为:T/2=0.52.5 ms,最小值为0.5ms,大于0.3ms,符合通用技术条件的规定。


又因为频率输出是200Hz1000Hz,从而可以得到两者之间的关系为:fout=200+h1000-200/500所以,由上述公式,很容易能计算出RCAP2HRCAP2L的值随水位变化时的设定值。这样,随着水位的变化,我们不断的计算RCAP2HRCAP2L的值,我们就可以从AT89C52P1.0口输出符合要求的脉冲频率信号,其频率与水位值成正比。其流程图如图5-6



5-6 频率输出程序流程图


而实现频率输出的主要程序模块如下:


void freq()                        //频率输出函数


{ if(…)                          //符合一定条件时发送频率


   {freq_num=0x0ffff-_3mhz/(h*1.6+0xc8)+1;}//计数初值计算


       databuff=(char*)&freq_num;  //计数初值转换成指针型


       eacopy=EA;                  //保存中断状态


       EA=0;  TR2=0;               //关闭中断和定时器2


      RCAP2H=*databuff;


      databuff++;


       RCAP2L=*databuff;            //装入计数初值


      TR2=1;                       //开启定时器2


       EA=eacopy;                  //开启中断


}


536  遥控子程序


这部分程序分可以为红外解码部分和遥控部分:


(1)红外解码部分:


红外解码的子程序包括中断服务程序、T0溢出中断服务程序和T1溢出中断服务程序。解码的过程为:设置INT1为下降沿触发方式,定时器T0工作在方式1,且不允许中断。单片机首先检查引脚上是否有下降沿到来,若有,表示传送码到来,开启T0定时T/2,即单片机在半周期时对INT1采集,高电平为“1,低电平为“0”如图5-7。因为a=(1/fosc)*192(sec)所以半周期T/2=2a=192/455000=0.8ms(遥控器fosc=455kHz)



5-7 接收到的“0”、“1bit波形及解码数据采样时间


每来一个脉冲,脉冲计数单元COUNT1,当COUNT=12时,第一串代码采集完,存入一号寄存器中,关闭INT1延迟30ms,再次启动INT1,并在INT1的下降沿重新启动T0开始采集传送码的第二串校验码,并把采集到的第二串码存入二号寄存器中。两串码如果相等,则采集成功,传送码有效。将采集到的传送码与已知键码相比较,用单片机查表的方法取出键值,执行相应的操作。其程序流程图为:(5-8)



5-8 红外解码流程图


解码程序功能模块为:


sbit hongwai="P3"^3;                 //红外接口


void jieshou() interrupt 2 using 2 //下降沿触发


{


TL1=(65536-800)%256;              //初值0.8ms


 TH1=(65536-800)/256;


TR1=1;                            //开启定时计数器1


 }


void int_3() interrupt 3 using 1   //红外解码


{


TR1=0;                           //计时0.8ms后关闭定时器


  irad_circle_i++;


  if(hongwai)


  {key<<=1; key="key|0x01"; }        //读取“1bit


   else   key<<=1;                 //读取“0bit


   if(12==irad_circle_i)           //读完12位计数回零


   {


    irad_circle_i=0;


    jiaoyan_cnt++;


       if(jiaoyan_cnt==1)


       { jiaoyan1=key;//将第一次读入的字符串存入一号寄存器


         key=0;


       }


       if(jiaoyan_cnt==2)


       { jiaoyan_cnt=0;


         jiaoyan2=key;//将第二次读入的字符串存入二号寄存器


         key=0;


       if(jiaoyan1==jiaoyan2)      //校验正确


       {


        temphw=jiaoyan2;          //输出键码


jiaoyan1=100;


        jiaoyan2=200;               //还原寄存器原值


       }


    }


}


2)遥控部分:


 HS0038接收器接收到控制命令后,把命令数据送给单片机,单片机根据命令执行相应功能。流程图如图5-9所示:


 



5-9   红外遥控中断程序流程


5-10 菜单设置流程图



6   


本次毕业设计从选题到定稿,从理论到实践,在这几个月的日子里,可以说是苦多于甜,但是这也使我们学到很多的东西。通过这次毕业设计。。。。。(废话省略)。。。。。。不断改进,不断完善。



 


通过本次毕业设计,我在指导老师。。。。(废话又来了,呵呵)。。。。将会以更好的成绩来回报社会以及各位领导和老师。



参考文献


[1] 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998 30-50


[2] 阎石.数字电子技术基础(第四版). 北京:高等教育出版社,2000 40-69


[3] 胡汉才.单片机原理及系统设计[M] . 北京:清华大学出版社,2002 57-78


[4] 何立民.单片机应用技术选编[M] .北京, 北京航空航天大学出版社 2002 68-100


[5] 马忠梅,籍顺心,张凯,马岩.单片机的C语言应用程序设计(第三版).北京:北京航空航天大学出版社,2003 1-187


[6] 孙育才.ATMEL新型AT89S52系列单片机及其应用.清华大学出版社2005 98-107   


[7] 谢宜仁. 单片机实用技术问答. 人民邮电出版社,2003 25-76


[8] 徐爱钧,彭秀华.KEIL Cx51 V7.0单片机高级语言编程与μVision2应用实践 2004 44-99


[9] 潘新民.微型计算机控制技术 [M] .北京:人民邮电出版社,1999 1-121


[10] 余永权. ATMEL89系列单片机应用技术[M] .北京:北京航空航天大学出版社 2002


[11] 彭介华. 电子技术课程设计指导[M] .北京:高等教育出版社,2000 1-134


 


 

注:出于对知识产权保护的理念,论文有删减和不全的地方如有需要者可以e-meil:spjet2.0@163.com索取全文(源程序除外)


文章用图:https://static.assets-stash.eet-china.com/album/old-resources/2008/10/2/f68d6574-20be-4250-bdc7-50ad8bfcdc1e.rar


 
PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户95096 2009-2-26 20:36

原邮箱密码忘了无法登录,现已更换。各位朋友敬请留意。

用户546181 2008-10-15 20:28

http://www.namipan.com/d/LinuetteSDK_Install_Guide_for_s3c2410_en.pdf/ac387f6a199bebb5bdc81b0549ea9193b54c500640811500

用户95096 2008-10-2 00:44

谢了,楼上跟贴好及时啊 我刚发的啊 因为上网机会不多,到现在才补全“我的毕设”专辑,实在有愧。 ————2008.10.2发于苏州一旅馆

用户461316 2008-10-2 00:27

支持楼主!!!
相关推荐阅读
用户95096 2008-07-18 17:54
DIY第一代履带机器人:底盘部分
    放假无事在家,开始我的机器人的制作。    先开始制作底盘部分,原料是以一个废硬盘为底盘承载,两个直流减速电机为驱动、履带使用20*2节自行车链条、齿轮使用8个一角硬币。耗时两周:机械部分总体...
用户95096 2008-06-20 22:41
我的毕设——第二季:文摘及目录
摘  要<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />科学的发展,往往是由于新的观...
用户95096 2008-06-20 22:35
自己打造mp3
关键字:89c51snd  IDE硬盘...
用户95096 2008-06-14 18:52
访问量超一万小庆
        昨天晚上刚把焊接一半的MP3上传,看了访问量:9944。呵呵,没想今天就突破了10000了,心里很高兴哦。        很多人写博客要的就是点击率,所以在博客里经常见到些奇怪的东西。...
用户95096 2008-06-13 23:58
记第一次焊接贴片元件
今天买的MP3散件到货,尝试焊接了一下,如上图。第一个焊接的是按键,手艺不太好,呵呵。焊接了几个电阻之后,找到窍门了:1、一定要先焊接元件的一个脚:先在一个焊盘上上锡,然后一只手用镊子夹住元件放在上过...
EE直播间
更多
我要评论
3
10
关闭 站长推荐上一条 /3 下一条