超声波水位图纸程序

合集下载

基于单片机的超声波测水位

基于单片机的超声波测水位

基于单片机的超声波测水位报警系统目录摘要 (1)1 绪论 (2)1.1 项目研究背景及意义 (2)2 总体设计方案及论证 (2)2.1 总体方案设计 (2)3 硬件实现及单元电路设计 (3)3.1 主控制模块 (3)3.2 电源设计 (4)3.3 超声波测试模块 (4)3.3.1 超声波的特性 (5)3.3.2 超声波换能器 (6)3.4 超声波传感器原理 (8)3.5 测距分析 (12)3.6 时钟电路的设计 (13)3.7 复位电路的设计 (13)3.8 声音报警电路的设计 (14)3.9 显示模块 (14)4 软件设计 (15)4.1 主程序工作流程图 (15)5 总结 (17)6 参考文献 (17)附录 (18)附件1:原理图 (18)附件2:程序 (19)附件3:元件清单 (29)附件4:实物图 (30)摘要STC89C52是STC系列单片机里应用比较广泛的一款,在自动控制领域里享有很高的价值,以其易用性和多功能性受到了广大电子设计爱好者的好评。

本次设计主要是利用STC89C52单片机、超声波传感器完成测距报警系统的制作,以STC89C52为主控芯片,利用超声波对距离的检测,将前方物体的距离探测出来,然后单片机处理运算,与设定的报警距离值进行比较判断,当测得距离小于设定值时,STC89C52发出指令控制蜂鸣器报警。

关键词:超声波传感器STC89C521 绪论1.1 项目研究背景及意义由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。

因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。

可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。

超声波液位测量系统设计

超声波液位测量系统设计

推出:故被测量液体的液位:H=Ho-h-d上式中:H是被测量液体的液位;Ho是超声波传感器到容器底部的距离;h是超声波传感器到浮子顶部的距离,通过测量的时间计算其值;ho是超声波传感器到校准环的距离,可根据最高液面调整校准环的高度;d是浮子顶面到液面的距离。

由此可见,测量时与超声波的速度无关,不存在因温度,湿度,气压影响超声波的速度给系统带来的误差。

该系统要实现其功能和减少系统误差,装置必须满足以下要求:其一,测量管的底部与被测液体连通,便于被测液体进入测量管;其二,浮子的密度必须小于被测液体的密度,且浮子具备抗腐蚀性;其三,校准环和浮子应选有利于超声波反射的材料;其四,测量管采用抗腐蚀性强的不锈钢材料。

超声波液位测量系统设计阳华忠 孙传友 长江大学电信学院 4340231 引言目前,超声波技术发展迅速,不断渗透到各个领域,如在军事、医疗、测绘等方面都有广泛的应用。

液位的测量和控制也是日常生活中一个重要的领域,液位的测量方法有很多。

例如:差压法测量液位,电容法测量液位,温度补偿超声波法测量液位等等。

但采用这些方法会因恶劣的环境和液体密度的变化给测量带来较大的误差,因某些液体具有腐蚀性而腐蚀测量装置。

针对上述问题,本设计提出了基于浮子的参比法,由SPCE061A凌阳单片机,LM1812超声波专用集成芯片相结合的方法,解决上述问题。

本系统可靠性高,适用性强,精度高。

2 参比法液位测量原理参比法其原理是利用超声波换能器发出的超声波脉冲,通过气介质传播,在密度变化较大的界面处形成反射回波传到换能器并将其接收。

若测出超声波从发射到接收的时间,就可以精确地计算出被测液体的液位。

其原理如图1,当超声波发射后,接收超声波的传感器就会依次接收到两束回波信号,一束回波是在校准环处产生的,测量的时间为To。

另一束回波是在浮子处产生的,测量的时间为T。

浮子随被测液体的液位变化而变化,超声波在浮子以上的气介质中传播。

由于在相同的环境中工作,超声波到校准环和到浮子顶面的速度相等。

超声波液位计的设计

超声波液位计的设计

实验5—12 超声波液位计的设计液位测量是超声波测量技术应用较为成功的领域之一,广泛应用于化工、石油和水电等部门作油位、水位等的测量。

【实验目的】1. 了解超声波脉冲回波法测液位的基本原理。

2. 测量介质中声速及液位。

3. 学会自行设计各种方式的液位测量方法。

【实验原理】液位测量分为连续测量和定点测量。

在连续测量液位方面,应用最为广泛的是超声波脉冲回波法,它多数是以测量超声脉冲在介质中传播时间为基础的,也有以测量衰减为基础的。

脉冲回波法超声液位计的工作原理是发射探头发射出超声脉冲,在被测液体介质或其它借以测量的传声介质中传播至液面。

经液面反射后,超声脉冲被接收探头所接收,测量超声脉冲从发射至接收所经时间,根据介质中的声速,可以通过计算求得探头至液面的距离,从而即可确定液面,如图5-12-1所示。

图5-12-1 脉冲回波式超声液位计原理图根据探头的工作方式,脉冲回波式超声液位计可分为气介式(图5-12-1(a ))、液介式(图5-12-1(b ))和固介式(图5-12-1(c ))。

对于单探头方式,如果从发射超声脉冲到接收到超声脉冲所经过的时间为t ,超声在介质中传播的速度为c ,则探头至液面的垂直距离L 可以按下式求出:ct L 21 (5-12-1)大学物理实验197液位的升降表现为L的变化,只要知道传声介质中的声速c,则L就可以通过精确地测量时间t来确定。

图5-12-1(c)是固介式超声液位计的情况。

把一根作为传声介质的固体棒插入液体中,上端要高出最高液位,将探头安装在固体棒的上端,探头可以收到自液面与固体棒相交处反射的回波,它同样地是根据测量超声脉冲从发射到接收所经过的时间t,确定探头至液面的垂直距离L,进而确定液位。

需要指出的是,对于固介式超声液位计,声速c是所选用波型在固体中的声速,因为在固体棒中有很多波型可以传播,其传播速度是不尽相同的。

由上可知,脉冲回波式超声液位计测量液位需要知道超声波在传声介质中的传播速度c,才能通过传播时间t求出液位。

基于单片机超声波水位控制C语言程序

基于单片机超声波水位控制C语言程序
unsigned char KEY_flag=0; //按键选择标志
//延时函数
void Delay_ms(int jj) //延时函数
{
int ii; //延时变量
while(jj--)//延时n毫秒
for(ii=0;ii<116;ii++);//延时1毫秒
}
void Conut(void) //测量函数
TH0=0; //定时器清零
TL0=0; //定时器清零
TH1=0xf8; //2MS定时
TL1=0x30; //2MS定时
ET0=1; //允许T0中断
ET1=1; //允许T1中断
TR1=1; //开启定时器
if((S/10>SET_H)||(S/10>SET_H)) //水位过低过高报警,
{
LED=0;SPEAK=0; //报警
}
else
{
LED=1;SPEAK=1; //不报警
}
////////////////////////////////
Table[2]= SET_H%10+0X30;
LCD1602_Disp_ZF(0x86+0x40,Table,3);
Table[0]= SET_L/100+0X30; //显示最小值
Table[1]= SET_L%100/10+0X30;
Table[2]= SET_L%10+0X30;
{
KEY_flag++; //模式选择
ISP_ERASE(0x2c00); //注意:字节编程时必须要先要擦除整个扇区

JCS型二线制超声波液位仪操作手册

JCS型二线制超声波液位仪操作手册

北京昆仑海岸传感技术有限公司ArrayJCS型二线制超声波液位计用户手册超声波液位计……………………………………………………………………保修政策:●用户在维修时请出示保修卡。

在保修期内因正常使用出现的故障,可凭保修卡享受规定的免费保修。

●保修期限:本公司产品保修期由验收日期起算十二个月内。

以下情况不在免费保修范围内:●产品或其部件已超出免费保修期。

●因使用环境不符合产品使用要求而导致的硬件故障。

●因不良的电源环境或异物进入设备所引起的故障或损坏。

●由于未能按使用操作手册上所写的使用方法和注意事项进行操作而造成的故障。

●由于不可抵抗力如:雷电、水火灾等自然因素而造成的故障。

擅自拆机修理或越权改装或滥用造成的故障或损坏。

限制说明:●请用户妥善保存保修卡作为保修凭证,遗失不补。

本保修卡解释权限归本公司所有,本公司有权对本卡内容进行修改,恕不事先通知。

7超声波液位计目录1概述 (1)2 技术指标 (1)3仪表安装 (2)3.1仪表外形尺寸 (2)3.2仪表接线 (2)3.3安装参数含义 (3)3.4仪表安装原则 (3)3.5安装注意事项 (4)4仪表调试 (4)4.1键盘说明 (4)4.2密码说明 (4)4.3 参数的设置 (4)4.3.1 液位标定(P01) (4)4.3.2 20mA设置(P02) (5)4.3.3显示模式设置(P03) (5)4.3.4探头高度(P04) (5)4.3.5反应速度设置(P05) (5)4.3.6 盲区设置(P06) (6)4.3.7 4~20mA测试设置(P09) (6)超声波液位计保修卡回执 (7)超声波液位计1、概述衷心感谢您选购本公司超声波液位计!本仪表包含多项专利技术,具有安全、清洁、精度高、寿命长、稳定可靠、安装维护方便等特点,适用酸、碱、盐、防腐、高温等各种领域。

本仪表可通过4~20mA连接到显示表或各种DCS系统中,为工业的自动化运行,提供实时的液位数据。

利用超声波传感器测液位的方法

利用超声波传感器测液位的方法

文章编号:1001-9227(2002)05-0051-03利用超声波传感器测液位的方法郏东耀(郑州大学物理工程学院,450052) 摘 要:介绍了一种高精度的超声波传感器,利用PIC16C63单片机的捕捉功能来计算超声波在液体中的传播时间,进而计算出超声波在液体中的传播距离来实现对液位的精确测量。

该传感器测量精度高,性能稳定可靠。

关键词:智能传感器 捕捉功能 超声波测液位ABSTRACT:The smart instrument of ultras onic liquid-level-detector is described in this article.Liq2 uid level can be measured precisely by this kind of instrument.KEY WORDS:Smart instrument Liquid level detector Ultras onic detector中图分类号:TP212.0文献标识码:B0 引 言的应用。

液位的测量有很多种方法,其中超声波测量方法有很多其它方法不可比拟的优点:a)测量精度高;b)响应时间短可以方便的实现无滞后的实时测量;c)非接触测量,性能稳定可靠,对液体的物理化学性质的适应性极强(如:不怕酸碱等强腐蚀性液体等)。

超声波测量液位的基本原理是:由超声探头发出的超声脉冲信号,在液体中传播,遇到空气与液体的界面后被反射,接收到回波信号后能得到超声波传播时间。

根据其传播速度和传播时间计算出其传播距离,得到液位高度。

本系统利用PIC16C63单片机的捕捉功能实现对超声波信号进行准确的计时,从而实现了高精度的液位测量。

1 系统的硬件结构及功能传感器与外部的接口如图1所示:该智能传感器与外部共有四条接口信号线,它们分别是:地线G ND、电源线+12V、两个RS232串口信号线TX D和RX D,同外部的接线简单方便。

超声波液位检测

超声波液位检测

压电传感器
压电型超声波传感器的工作原理:利用压电效应的原理, 压电效应有逆效应和顺效应,超声波传感器是可逆元件, 超声波发送器就是利用压电逆效应的原理。在压电元件上 施加电压,元件就变形。在图a所示的已极化的压电陶瓷 上施加如图b所示极性的电压,外部正电荷与压电陶瓷的 极化正电荷相斥,外部负电荷与极化负电荷相斥。由于相 斥作用,压电陶瓷在厚度上缩短,在长度上伸长。若施加 的极性变反,如图c所示,压电陶瓷在厚度上伸长,在长 度上缩短。
第一级放大:
当超声波返回时,在换能器共振板振动上产生共振,使得 换能器两端产生电压,由于电压幅值较小,首先进入由12 、13、14引脚的运放和R2、R3、R1组成的反相放大器。
带通滤波、第二级放大:
经放大后的电压进入由8、9、10引脚,5、6、7引脚的运 放及其外围电容电阻组成的带通滤波器,实际为低通和高 通滤波器的组合,由滤波器将40KHZ频率选出,去除杂波 ,并进行二次放大。
接收电路
电压比较、反相输出:
最后信号进入由1、2、3脚运放构成的电压比较器中,当3 脚的信号大于1/2电源电压时输出高电平,否则输出低电 平,但是由于TL074无法做到轨-轨输出,需要通过Q2转换 为TTL电平才能被单片机正确识别,另外Q2还起到一个反 相器的作用。
信号分析处理
系统发出8个40khz超声波,超声波在空气传播,遇到障碍 物返回,超声波接收头将声波转换成微弱的电信号(如图 中接收到的信号)经过接收电路放大接收到的微弱信号转 换放大成方波(图为信号经过接收电路后的波形),发射 与接收用去的时间即t=T1-T0。
超声波液位检测系统
电子1342 常新
1304451209
设计方案:
超声波液位检测系统框图

超声波液位测量计的设计22页PPT

超声波液位测量计的设计22页PPT


27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰

28、知之者不如好之者,好之者不如乐之者。——孔子
ቤተ መጻሕፍቲ ባይዱ

29、勇猛、大胆和坚定的决心能够抵得上武器的精良。——达·芬奇

30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
22
超声波液位测量计的设计
11、不为五斗米折腰。 12、芳菊开林耀,青松冠岩列。怀此 贞秀姿 ,卓为 霜下杰 。
13、归去来兮,田蜀将芜胡不归。 14、酒能祛百虑,菊为制颓龄。 15、春蚕收长丝,秋熟靡王税。

26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭

超声波的应用-水位监测报警器(显示部分)解析

超声波的应用-水位监测报警器(显示部分)解析

水位监测报警器(显示部分水位监测报警器(显示部分目录摘要 (3引言 (4一、方案论证 (41.1 电源模块 (41.2 水位检测模块 (51.4 显示模块 (72.1电源模块 (82.2 控制模块和显示模块 (8三、测试说明 (93.1测试所用仪器 (93.2 模块测试 (93.2.1 电源模块测试 (93.2.2 控制模块测试及显示模块测试 (10四、测试数据 (10五、结束语 (10六、参考文献 (10第二届电子设计大赛水位监测报警器(显示部分摘要:水位监测报警器是利用在江河湖海监测水位高度的水位监测系统。

该系统在实际应用当中,能准确显示水水位的高度。

水位监测报警器设计新独特,具有体积小,灵敏度高、工作稳定的特点,更重要的就是能够远程接收信号,实现远程自动控制,大大提升技术性能。

现在重点介绍水位监测报警器的显示部分的内部电路、性能及应用。

关键词:水位监测报警器 MC74HC4511N芯片共阴显示数码管水位监测报警器(显示部分引言发光二极管是利用于水位显示高度的电子元件,自从上个世纪90年代已被人们在水位产品中广泛应用。

但由于它不能显示具体的数字,所以现在逐渐被人们所在取代。

水位监测器是在以前的水位系统监测系统基础上进行技术改造的高科技产品。

它应用了共阴显示数码管,能更为准确地、直观地观察水位,再加上应用了MC74HC4511N 芯片,工作稳定,灵敏度高,能够实现远程自动控制,大大提升了综合技术性能。

一、方案论证根据题目要求和本系统的设计思想,系统主要包括图一所示的模块电源模块水位监测模块控制模块数码管显示模块图一系统模块1.1 电源模块方案1:利用交流电源来驱动整个系统工作,把交流电220伏利用变压器降压到交流电压5伏,再把交流电压转变为直流电压。

在此方案中,利用220伏交流电转变为5伏交流电过程中,利用变压器降压比较困难,且准确不高。

最后还要将交流电转变为直流电,实现过程中需要比较多的元件,以及经济上比较昂贵。

超声波水位测距仪的设计

超声波水位测距仪的设计
MA40是双用型传感器[2],即发送和接 收集成于一体。当超声波遇到水面时发生反 射,反射波回到超声波传感器,超声波接收 器将超声波调制脉冲变为交变电压信号,再 将所得的交变电压信号放大,输入到音调译 码器中,音调译码器的输出由高电平跃变为 低电平,作为中断信号输入到5】单片机的 INTl管脚。INTl端产生一个中断请求信号, 单片机响应外部中断请求,执行外部中断服 务子程序,停止计时,取得超声波往返的时 间差。通过计算公式:s=340£/2算出液位计 离水面的距离,从而计算出水位的高度。这 些都可以通过对51单片机编程实现。
程师。研究领域:机电一体化产品设计。
(编辑:吴智恒)
2004. [2]沈宇雯.电机自动测试系统[J].电机技术,2006, (2). [3]赵奇平,程浩,陈汉汛.电动燃油泵预测试试验台开发[J]
机电工程技术,2006,35(3):18—19,81.
第一作者简介:陈汉汛,男,1955年生,大学本科,教授。研究 领域:信号测试。已发表文章50多篇。
2系统原理
图2为系统方框图。如图所示,整个系统的核心是 805l单片机㈨。所选用的超声波传感器是MA40型传感器, 它的工作电压是40kHz的脉冲信号,这可很容易地用软件 编程使5l单片机的P1口中的第0位产生40kHz方波的方 法来实现。并在第一个脉冲产生时开始启动计时。40kHz的
图l 方案图
波,当超声波遇到水面经液面向上反射到液位计,液位计 接收到反射回的超声波时,由单片机CPU算出超声波往返 一次所用的时间,即可算出液位计到水面的距离£,液位 高度^可由公式:^=日叫·t/2算出。式中口为超声波的传
万方数据
图4 超声波接收电路
(5)报警电路 一般在实践生产中往往是对水塔的水位控制在某一个 范围内,如果低于某一下限值或高于某一上限值都会对生 产带来影响。因此,一般在测量系统中都配有相应的报警 电路。在这里主要是用发光二极管作为报警器件,分别有 绿、黄、红三个发光二极管,它们的阳极各接一个限流电 阻后一起接到+5V的电压上,阴极分别接单片机的P1.1、

超声波传感器原理以及液位测量的完整实例讲解含原理图

超声波传感器原理以及液位测量的完整实例讲解含原理图

超声波传感器原理以及液位测量的完整实例讲解含原理图
一、超声波传感器
1、相关知识:
超声波传感器是利用超声波的特性研制而成的传感器。

超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。

超声波对液体、固体的穿透本领很大,尤其是在阳光不透明的固体中,它可穿透几十米的深度。

超声波碰到杂质或分界面会产生显著反射形成反射成回波,碰到活动物体能产生多普勒效应。

因此超声波检测广泛应用在工业、国防、生物医学等方面。

1、工作原理:
超声波传感器主要材料有压电晶体(电致伸缩)及镍铁铝合金(磁致伸缩)两类。

这里主要分析一下压电晶体材料的超声波传感器,压电晶体材料的超声波传感器主要应用了某些特殊材料的压电效应和逆压电效应的特性,也就是超声波传感器的发送器和接收器两部分,发送时,在压电晶体端通上高压500V以上的高压脉冲,利用逆压电效应的特性,使晶片发射出一束频率落在超声波范围内、持续时间很短的超声振动波,超声振动波到达被测物体底部后,超声波绝大多数
所以液位H为:H=H2-H1
通过如上的简单计算即可测得液位的高度。

4、超声波传感器的常见分类:
一、根据使用方法:可分为收发一体型、收发分体型(收发各一只);
二、根据结构来分:可分为开放型、防水型、高频型等;
三、根据使用环境:可分为空气中和水声换能器;等等。

超声波液位计参数说明、调试步骤、维护与故障处理

超声波液位计参数说明、调试步骤、维护与故障处理

常用参数及意义E: 4.2 瞬时回波距离;此时表示被测物到传感器表面的空间距离为4.2m;若为省略号时表示没有接收到回波信号S: 1.11 表示信号的幅度为1.11v;最大值为2.5VGn:37.6%对应回波所处距离的增益N: 1.9% 干扰噪声值T: 23.2℃传感器表面温度Normal:回波信号能被正确识别调试窗口右面参数及意义1.Dist:当前料位所在空距。

2.C-Dist:发出脉冲后被确认为有效的空距。

3.E-Dist:仪表输出空距。

4.Size:当前有效回波幅度值。

5.Gain:当前增益值。

6.Recov:储备增益当前启动值。

7.Noise:当前噪音值。

8.Temp: 当前仪表感知的环境温度值。

9.Confirm:当前确认次数。

10.Hold:当前保持时间。

11.WinFw:窗口前端所处位置。

12.WinBk:窗口后端所处位置。

电脑上物位计调试步骤:一.进入调试软件1. 双击GosHawk软件,弹出GosHawk的工作界面;2. 点击View按键后,选择点击Options,待弹出Properties对话框,然后关闭该对话框;3. 接上步,点击GosHawk工作界面中的Connect按键,待出现Info参数表后,可以点击Diag进入回波动态画面。

4. 点击Setup,从中选择需要设定的菜单目录进行如下二、三、四各步骤的操作(二三四几步的调试同样适用于在仪表上手动调试)。

二.快速设定(即Quick Set)1.设定高物位(即Hi Level)低物位(即Lo Level)注意:高物位要大于盲区值(仪表盲区请参看使用说明书第12页)2.选择测量介质(即Application);3.设定进料速度(即Fill Rate)出料速度(即Empty Rate),要求是按照最大的进出料速度设定(出厂设定值能够满足许多工矿的应用)。

4.进出料阻尼参数(即Damp Fill与Damp Empty),在设定进出料速度时,软件通过计算,已经将该参数设定好,但可以根据具体情况将该参数增大或减小。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delay_50us_1602(20);
LCD1602_E = 0;
}
void LCD1602_init(void)
{
delay_50us_1602(300);
LCD1602_write_com(0X38);
delay_50us_1602(100);
LCD1602_write_com(0X38);
delay_50us_1602(100);
Table1[3]= '.';//显示当前值
Table1[4]= S%10+0X30;//显示当前值
LCD1602_Disp_ZF(0x88,Table1,5); //显示当前值
}
}
void main(void)//主函数
{
LCD1602_init();//液晶初始化
//////////////////////0123456789ABCDEF
if((S>=700)||flag==1) //超出测量范围显示“-”
{
flag=0; //数据无效标志
}
else
{
Table1[0]= S/1000+0X30;//显示当前值
Table1[1]= S/100%10+0X30;//显示当前值
Table1[2]= S/10/10+0X30;//显示当前值
}
void LCD1602_write_com(unsigned char com)
{
LCD1602_E = 0;
LCD1602_RS = 0;
LCD1602_RW = 0;
LCD1602_Data= com;
delay_50us_1602(10);
LCD1602_E = 1;
delay_50us_1602(20);
{
unsigned char i;
LCD1602_write_com(addr);
for(i = 0;i < (num*1);i++)
LCD1602_write_data(*(pt++));
}
ISP_PROGRAM(0x2c00, SET_H/256);//记忆存储
ISP_PROGRAM(0x2c01, SET_H);//记忆存储
ISP_PROGRAM(0x2c02, SET_L/256);//记忆存储
ISP_PROGRAM(0x2c03, SET_L);//记忆存储
}
while(!KEY1);//等待按键抬起
LCD1602_write_com(0X38);
LCD1602_write_com(0X38);
LCD1602_write_com(0X08);
LCD1602_write_com(0X01);
LCD1602_write_com(0X06);
LCD1602_write_com(0X0C);
}
/*******************************************
Conut(); //计算显示距离函数
/////////////////////////////////////
if((S/10>SET_H)||(S/10>SET_H)) //水位过低过高报警,
{
LED=0;SPEAK=0; //报警
}
else
{
LED=1;SPEAK=1; //不报警
}
////////////////////////////////
unsigned int SET_H=100,SET_L=10;//最高值和最低值
bit flag =0; //测量标志位
unsigned char Table[3],Table1[5];//显示数组
unsigned char KEY_flag=0; //按键选择标志
//延时函数
void Delay_ms(int jj) //延时函数
}
}
/********************************************************/
void zd0() interrupt 1//T0中断用来计数器溢出,超过测距范围
{
flag=1;//中断溢出标志
}
/********************************************************/
#include<reg52.h>
#include <intrins.h>
#include "LCD1602.h"
#include "STCEEPROM.h"
sbit RX = P3^6; //定义超声波端口
sbit TX = P3^7;
sbit LED = P2^0; //LED
sbit SPEAK = P2^1; //蜂鸣器
SET_L = ISP_READ(0x2c02)*256+ISP_READ(0x2c03);//读取存储的最小值
EA=1; //开启总中断
while(1)//函数循环
{
while(!RX);//当RX为零时等待
TR0=1;//开启计数
while(RX);//当RX为1计数并等待
TR0=0;//关闭计数
函数名称:Disp_ZF
功能:控制液晶显示字符
参数:addr--显示位置的首地址
pt--指向显示数据的指针
num--显示字符个数
返回值:无
********************************************/
void LCD1602_Disp_ZF(unsigned char addr,const unsigned char * pt,unsigned char num)
TH1=0xf8;//2MS定时
TL1=0x30;//2MS定时
ET0=1; //允许T0中断
ET1=1;//允许T1中断
TR1=1;//开启定时器
EA=1;//开启总中断
EA=0;//关闭中断
SET_H = ISP_READ(0x2c00)*256+ISP_READ(0x2c01);//读取存储的最大值
{
int ii;//延时变量
while(jj--)//延时n毫秒
for(ii=0;ii<116;ii++);//延时1毫秒
}
void Conut(void)//测量函数
{
time=TH0*256+TL0;//距离计数
TH0=0;//定时器清零
TL0=0;//定时器清零
S=(time*1.87)/10; //算出来是CM、转换
_nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_();
_nop_(); _nop_();_nop_();
_nop_(); _nop_(); _nop_();
}
if(!KEY2)//设置加
{
Delay_ms(10);//延时去抖动
if(!KEY2) //设置加
{
if(KEY_flag%2==0)SET_H++; //设置加
if(KEY_flag%2==1)SET_L++; //设置加
}
}
if(!KEY3) //设置减
{
Delay_ms(10);//延时去抖动
TX=0;
}
}
//////////////////////////////////////////////////
#include "LCD1602.h"
void delay_50us_1602(unsigned int t)
{
unsigned char j;
for(;t>0;t--)
for(j=19;j>0;j--);
if((S/10>SET_H)) //水位过低打开水泵
{
Motor; //打开
}
else
{
LED=1;SPEAK=1; //关闭
}
if(!KEY1) //切换设置最大值时去抖动
if(!KEY1)//切换设置最大值和最小值
{
KEY_flag++;//模式选择
ISP_ERASE(0x2c00);//注意:字节编程时必须要先要擦除整个扇区
void zd3() interrupt 3
{
TH1=0xf8;//2毫秒定时初始化
TL1=0x30;//2毫秒定时初始化
timer++;//计数
if(timer>=100)//计数100次,200毫秒
{
timer=0;
TX=1;//200MS启动一次模块
_nop_(); _nop_(); _nop_();
LCD1602_Disp_ZF(0x80," Now S: CM ",16);
//0123456789ABCDEF
LCD1602_Disp_ZF(0x80+0X40,"Set H: L: ",16);
TMOD=0x11;//设T0为方式1,GATE=1;
TH0=0;//定时器清零
TL0=0; //定时器清零
LCD1602_E = 0;
}
void LCD1602_write_data(unsigned int dat)
{
相关文档
最新文档