收藏 分享(赏)

油箱液位测量仪设计.doc

上传人:精品资料 文档编号:10743730 上传时间:2020-01-04 格式:DOC 页数:22 大小:1.19MB
下载 相关 举报
油箱液位测量仪设计.doc_第1页
第1页 / 共22页
油箱液位测量仪设计.doc_第2页
第2页 / 共22页
油箱液位测量仪设计.doc_第3页
第3页 / 共22页
油箱液位测量仪设计.doc_第4页
第4页 / 共22页
油箱液位测量仪设计.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、摘要随着社会的进步、生产工艺和生产技术的发展,人们对液位的检测提出了更高的要求。而新型电子技术微电子技术和微型计算机的广泛应用于普及,单片机控制系统以其控制精度高,性能稳定可靠,设置操作方便,造价低等特点,被应用到油位系统的控制中来。本文介绍了用液位检测集成芯片 LM1042 和A/D 转换芯片 A/D574A,以及 AT89C51 单片机作为主控元件的油位检测的原理、电路及监控程序。用 LM1042 液位检测集成芯片测量液位,具有测量精度高、速度快、可靠、稳定等优点;采用单片机来控制液位信息的采集,并且计算出真实液位值,通过运算判断是否超限报警,使检测具有更高的智能性。关键词:电子技术,油位

2、检测,智能性油箱液位测量仪设计II目录1.系统方案设计11.1 概述 11.2 系统总体功能概述. 12 硬件部分设计 .22.1 核心芯片的选择 .22.2 硬件原理图 .63 软件部分设计 113.1 软件功能概述 113.2 主程序设计 113.3 定时器 T0 中断服务程序. 113.4 A/D 转换子程序 .133.5 LED 显示子程序 144 结论 15参考文献 16致谢 17附录 18油箱液位测量仪设计11.系统方案设计1.1 概述 本次设计系统以 AT89C51 为核心,当测量液面超过设定的液面上下限时,启动蜂鸣器和指示灯报警显示稳定,从而达到自动报警的功能。随着社会的进步、

3、生产工艺和生产技术的发展,人们对液位的检测提出了更高的要求。而新型电子 技术微电子技术和微型计算机的广泛应用于普及,单片机控制系统以其控制精度高,性能稳定可靠,设 置操作方便,造价低等特点,被应用到液位系统的控制中来。本文介绍了用液位检测集成芯片 LM1042 和 A/D 转换芯片 A/D574A,以及 AT89C51 单片机作为主控元件的液位检测的原理、电路及监控程序。用 LM1042 液位检测集成芯片测量液位,具有测量精度高、速度快、可靠、稳定等优点;采用单片机来控 制液位信息的采集,并且计算出真实液位值,通过运算判断是否超限报警,使检测具有更高的智能性。1.2 系统总体功能概述该系统以

4、AT89C51 作为核心控制部件,外加传感器。一片 A/D 转换芯片和一片数码管驱动芯片来完成系统的预期任务,即液位的检测、显示和超限报警。LM1042 外接的热阻探针温度的变化依赖于周围材料的热阻的大小,而空气和液体的热阻大小有很大差别,从而可以根据探针在液体中的深度不同时电阻的不同检测出液位的深度信息,由 LM1042 内部转换电路网络转换为与液位成线性关系的电压信号,再由 12 位逐次逼近型 A/D 转换芯片 AD574A 将模拟信号转换为数字信号,实现液位信息的输入,AT89C51 从 AD574A 读取液位信息后进行数据处理和超限判断,随后将处理过的数据输出到数码管驱动芯片 ICM7

5、218的 RAM 中,由 ICM7218 实现数码管的静态显示,若液位超限则由单片机驱动蜂鸣器报警。各部分功能:电源部分提供+5V +15V -15V 电压供系统各部分使用。传感器 LM1042 实现液位信息到电压信号的转换。AD574A 将传感器输出的电压信号经 A/D 转换后送到单片机。AT89C51 为处理器,实现液位信息的接收、数据处理、和输出到 ICM7218.蜂鸣器部分在单片机检测到液位超限是由单片机驱动实现声音报警。单片机对液位数据处理后输出,由 ICM7218 驱动数码管显示。油箱液位测量仪设计22 硬件部分设计2.1 核心芯片的选择(1)单片机 AT89C51AT89C51

6、单片机简介单片机是把微型计算机主要部分集成在一块芯片上的单芯片微型计算机。单片机应用系统的基本构成如图 2如图 2 单片机应用系统的基本构成AT89C51 简介AT89C51 主要参数如表所示:AT89C51 含 E2PROM 电可编闪速存储器。有两级或三级程序存储器保密系统,防止 E2PROM 中的程序被非法复制。不用紫外线擦除,提高了编程效率。程序存储器 E2PROM 容量可达 20K 字节。AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS8 位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51

7、指令集和输出管脚相兼容。由于将功能 8位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.主要特性:与 MCS-51 兼容4K 字节可编程闪烁存储器油箱液位测量仪设计3寿命:1000 写/擦循环全静态工作:0HZ-24HZ三级程序存储器锁定128*8 位内部 RAM32 可编程 I/O 线两个 16 位定时器/计数器5 个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2.管脚说明:VCC:供电电压GND:接地P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8T

8、TL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,他可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FLISH 进行校验时,P0 输出源码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉位高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLISH 进行校验时,P1 口作为第八地址接受。P2 口位一个内部上拉电阻的 8 位双向 I/O 口,P2

9、口缓冲器可接收,输出 4个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。胖口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,p2 口输出地址的高八位。在给地址“1”时,他利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出器特殊功能寄存器的内容。P2 口在 FLISH 编程和校验时接受高八位地址信号和控制信号。P3 口:P3 口管脚是八个带内部上拉电阻的双向 I/O 口,可接受输出 4 个TTL 门电流。当 P3 口写入“1”后,他们被内部上拉为高电

10、平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流,这是由于上拉的缘故。P3 口也作为 AT89C51 的一些特殊功能口,如下所示:P3 口管脚备选功能P3.0 RXD (串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(计时器 0 外部输入)P3.5 T1(计时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电油箱液位测量仪设计4平

11、时间。ALE/PROG:当访问外部存储器时,地址所存允许的输出电平用于锁存地址的低位字节。在 FLISH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定是目的。然而要注意的是:每当用作外部数据存储器是,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高,如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的的选通信号。在有外部程序存储器取指

12、期间,每个机器周期两次/PSEN 有效。但在访问外部存储器时,这两次有效的/PSEN 信号讲不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部存储器(0000H-FFFFH) ,不管内部是否有程序存储器。注意加密方式 1 时,/EA 将内部锁存为 RESET;当/EA端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP).XTAL1:反响放大振荡器的输入及内部时钟工作电路的输入XTAL2:来自反响振荡器的输出。3.I/O 口引脚:a:P0 口,双向 8 位三态 I/O 口,此口为地址总线(低 8 位)及数据总线分时复用;b:P1

13、口,8 位准双向 I/O 口c:p2 口,8 位准双向 I/O 口,与地址总线(高 8 位)复用;d:P3 口,8 位准双向 I/O 口,双功能复用。(2)传感器 LM1042传感器由液位检测专用集成芯片 LM1042 和一组热探针组成,实现液位信号到电压信号的转换。LM1042 使用热阻探针技术来测量非可燃性液体的液面高度,它能提供一正比于液位高度的输出,可进行单次或重复测量,所有控制热阻探针、检测热阻探针的短路和开路所需的监控电路都集成在 LM1042 芯片内部。此外该芯片还可采用其他传感器信号或线性输入作为输入信号。该器件采用 16 脚 DIP 封装。芯片的主要特点如下;集成有热阻探针的

14、控制电路;可单次测量或重复测量;具有探针短路、开路检测功能;电源或控制输入端具有 50V 的瞬态电压保护电路;电源范围 7.518V;内部有电源调节器;可在-40+80的工作温度范围内工作。LM1042 的结构如图 2-2 所示:油箱液位测量仪设计5(3)A/D 转换芯片 AD574AAD574A 是美国模拟数字公司推出的单片高速 12 位逐次比较型 A/D 转换器,内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动较零和自动极性转换功能,只需外接少量的阻容元件即可构成完整的 A/D 转换器,其主要功能特性如下;分辨率:12 位非线性误差:小于1/12LB

15、S 或1LBS转换速率:25us模拟电压输入范围:0-10v 和 0-20v,0-5v 和 0-10v 两挡四种电源电压:15v 和 5v数据输出格式:12 位/8 位芯片工作模式:全速工作模式和单一工作模式其原理结构图如图 2-3 所示:油箱液位测量仪设计6(4)数码管驱动芯片 ICM7218ICM7218 是 INTERSIL 公司生产的一种性能价格比较高的通用 8 位 LED 数码管驱动电路,28 脚双列封装,是一种多功能 LED 数码管驱动芯片,可与多种单片机接口使用。ICM7218 的输出可直接驱动 LED 显示器,不需外接驱动电路,其构成的显示电路结构简单,使用方便。其引脚图和内框

16、图如图 2-4 和 2-5 所示:2.2 硬件原理图(1)电源部分油箱液位测量仪设计7电源电路如图 2-6 所示:VC+15V-15VV120TR1TRAN-2P2SBR12W05GC120u C310uVI1 VO3GND2U17805VI1 VO3GND2U27815VI2 VO3GND1U37915C40.1uC60.1uC100.1uC20.1uC80.1uC70.1u C510uC220uC2120u C910uS1图 2-6 电源电路本系统供电为市电 AC220v,经变压器 T1 降为交流 18v,经整流桥堆整流后得到脉动直流电压 18v,再分别经三端稳压器 LM7805、LM78

17、15、LM7915 分别得到 VCC(+5v)、+15v 和-15v ,其中电解电容 C1、C3、C22、C5、C7、C9 起滤波作用,C2、C4、C23、C6、C8、C10 是旁路电容,起抑制干扰的作用。(2)传感器电路传感器电路如图 2-7 所示:+15V INSTRT7 MEAS1 PROBE5 SUP6 PRBREF3 VREF16 OSC 10 RAMPR13 RAMPC12AUXOUT14LAMP9MEM C15PNPBS4U4LM1042C130.1ufC1422ufR13100kQ1R110 C10.1ufC12TANZHENR310KR26.8KC1222uf图 2-7 传感

18、器电路油箱液位测量仪设计8在传感器电路中,7 脚和 10 脚是用于探针 2 的调整,由于本系统只用到探针 1,故只需将 7 脚和 10 脚接地即可;1 脚是热阻探针输入端;5 脚是探针故障检测端;6 脚是电源端;3,4 脚分别接 PNP 管的发射极和集电极用于给探针提供 200MA 的固定电流;16 脚为模拟电压输出端,输出与液位成正比的模拟电压;12,13 脚用来调整探针的测量周期;9,14 脚外接两个电容作为探针的记忆电容,记忆探针的电压值。(3)A/D 转换电路A/D 转换电路如图 2-8 所示:图 2-8A/D 转换电路本系统经过采用 AD574A 芯片,其中 1 脚为电源端;10 脚

19、输出标准 10V 电压经过变阻器 R4 连接到 8 脚给芯片内部解码网络供电;9 脚为地端;12 脚外接电阻网络用于调整零点,13 脚为 0-10V 量程输入端;14 脚为 0-20V 量程输入端,此系统不用;7,11 脚为基准电压输入端;16-19 脚接单片机 P1.4-P1.7用于输出低 4 位,20-27 脚接单片机 P1.0-P1.7 用于输出高 8 位;28 脚输出转换完成信号,6,3,4,5 脚用于控制芯片的工作方式,2 脚接地代表芯片用于 12位转换。当传感器信号输入 13 脚,单片机控制 6 脚为高电平,3,4,5 脚为低电平时,芯片使 28 脚输出低电平并启动 12 位 A/

20、D 转换,转换完成后置位 28 脚,允许单片机读取数据,当单片机检测到 28 脚为高电平,控制 6 脚为高电平,油箱液位测量仪设计93,4,5 脚为低电平读取高 8 位,再 4,6 脚为高电平,3,5 脚为低电平读取低 4位,这样就完成一次 A/D 转换和数据读取。(4)单片机外围电路及蜂鸣器电路单片机外接 12MHZ 晶振,在 9 脚外接手动复位电路;P0.3 接蜂鸣器用于报警。电路如图 2-9 所示:ID0ID1ID2ID3ID4ID5ID6ID7WRITEMODED0 RC0CSA0CEU5-28D1D2D3D4D5D6D7VCVCXTAL218XTAL119ALE30 EA31 PSE

21、N29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 3P0.7/AD7 32P1.01 P1.12 P1.23P1.34 P1.45 P1.56P1.67 P1.78P3.0/RXD10P3.1/TXD1P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD17P3.6/WR16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 2P2.2/A10 23P2.3/A1 24P2.4/A12 25P2.5/A13 26P2.6/A1

22、4 27U6AT89C51PROGRAM=Text1.HEXR172kR181k U8Y112.0MHZC1630PFC1730PFVCS0 C1810uVCR810kQ22N3906S2图 2-9 单片机外围及蜂鸣器电路(5)ICM7218A 显示电路ICM7218A 显示电路如图 2-10 所示:WRITEMODEID0ID1ID2ID3ID4ID5ID6R110k R1210kVCVCSEGa27 SEGb3 SEGc1 SEGd25 SEGe2 SEGf24 SEGg26DIGIT115 DIGIT216 DIGIT323 DIGIT420 DIGIT517 DIGIT62 GROUN

23、D28/WRITE8 MODE9 DIGIT721 DIGIT818ID0 12ID1 1ID2 13ID314ID4 10ID5 6ID6 5ID7 7Vc19DP 4C1ICM7218A图 2-10 ICM7218A 显示电路本系统显示用的 4 位七段数据管由数据管专用驱动芯 ICM7218A 驱动,油箱液位测量仪设计1027,3,1,25,2,24,26 脚分别接数据管的 ag,15,16,23,20 脚为位选,分别控制4 位数码管的亮灭,ID07 为数据线,接单片机 P2 口,WRITE,MODE 是写控制位和模式控制位,分别接单片机 P0.6,P0.7。油箱液位测量仪设计113 软件

24、部分设计3.1 软件功能概述在系统的硬件确定以后,功能完善的软件能够很好的指导和协调硬件的工作,可使系统发挥其最大的作用,并且便利以后的更新换代升级。一个完整的系统都离不开对系统状态的监控,为了更好的协调软件,硬件各个部分正常工作就必须对整个系统进行严密监控。在本系统中定时器 T0 中断服务程序担任数据读取,处理和输出显示任务,每隔一定的时间对 A/D 转化进行一次采样,并进行相应的处理,在经过 LED 驱动电路来实现液位的显示。而主程序完成的任务相对简单,它只是完成初始化和启动 T0 定时的工作。3.2 主程序设计在本系统中主程序完成的任务相对简单,它只是完成初始化和启动 T0 定时的工作。

25、图 3-1 主程序设计3.3 定时器 T0 中断服务程序T0 中断服务程序完成的任务比较多,主要包括:每一秒启动一次 A/D 转油箱液位测量仪设计12换,读取并处理数据,显示和超限报警。T0 中断服务程序流程图如图 3-2 所示:其中读取和处理数据放到 A/D 值读取子程序;显示放到 LED 显示子程序;由于液位是一种变化比较缓慢的量,故只需每隔一定时间检测一次即可满足需要,在此选定一秒检测一次,即 1 秒进行一次 A/D 转换。由于本系统所用晶振为 12MHZ,故定时器每计时一次用时为 1/12*10(-6)*12S=1us,因此定时器为 16 位定时器,故最多计时 216=65536 次,

26、即计时 65536US=65.536MS,此时用定时器 T0 定时 50ms,则当定时器定时 20 次,共定时 20*50MS=1S,满足系统需要。据 TC=M-T/T 计数(T=50ms,T 计数=1us,M=216)得 TC=15536 则定时器初值为 TH0=3C,TL0=B0。超限预警则是通过把 A/D 转换值与上下限值比较得出液位是否有超限,若超限则输出高电平驱动蜂鸣器报警。图 3-2 定时器 T0 中断服务子程序油箱液位测量仪设计13图 3-3 A/D 转换子程序3.4 A/D 转换子程序A/D 转换子程序主要完成 A/D 值的读取以及数据的处理。因为 AD574A 进行 A/D

27、转换的过程中第 28 脚 STS=0,转换完成后 STS=1,故启动 A/D 转换后要先检测 STS,若 STS 为高电平才进行 A/D 值读取操作,A/D 值读取要先写读高8 位控制字,然后读取高 8 位,再写入读低 4 位控制字然后读取低 4 位,将读取得到的 12 位数据用于计算得到液位值,然后再对液位值逐步分离,分别得到数码管显示饿百位,十位,个位和一位小数位,并将它们放到字符数组A/DV【4】中,用于 LED 显示,A/D 转换子程序流程图如图 3-3 所示:油箱液位测量仪设计143.5 LED 显示子程序LED 显示子程序主要完成液位值的显示,本系统采用数码管专用驱动芯品ICM72

28、18 驱动 4 位七段数码管用于液位值的显示,只需要把要显示的数据写入ICM7218 的 RAM 中即可,由于该芯品默认驱动八位数码管,必须写入 8 字节显示数据,而此系统只用低 4 位,只需把高 4 位置为随机数即可,故先通过ICM7218 的控制位 WR=0 和 MODE1 使芯片工作于方式 1,写入控制字,然后使MODE=0 使芯片工作于方式 0,写入 8 字节数据即可完成液位值的 LED 显示。LED 显示子程序流程图如图 3-4 所示:图 3-4 LED 显示子程序油箱液位测量仪设计154 结论本次毕业设计主要是为了改善现有液位检测系统精度不高,速度慢,智能化程度低的缺点,给生产提供

29、精度更高,速度更快,更加智能的液位检测系统。整个系统实现了预期的目标,达到了控制的高精度,高速,智能型的要求:1 高精度:使用 LM1042Z 作为长安其能够输出与液位成正比的电压信号,使用 AD574A 作为 A/D 转换芯片,来达到提高精度的目的,LM1042 作为能够输出与液位成正比信号的电压信号,AD574A 是 12 位 A/D 转换芯片,并非线性误差仅为1LBS。2 高速:使用 AD574A 作为 A/D 转换芯片,其转换时间仅为 25US。3 智能型:单片机 AT89C51 读取液位信息经过处理得到液位高度,并判断是否超限,若超限则驱动蜂鸣器报警,提高系统智能化程度 。但是也存在

30、不少的不足,由于电源的波动,传感器的电气特性等问题,使得A/D 转换结果有时波动很大,这样就可能出现误报警。由于时间的关系,系统中本应具有的根据液位变化自动调节液位的功能没有实现,而只是实现了超限报警。由于上述缺点的存在,此系统不是很完善,还有待进步改进和完善。通过这次设计,更加深入的理解和掌握了这方面的知识,对本专业的认识也更加深入,使自己对本专业更加的热爱,对本科阶段四年的学习做了进一步的总结,更加明确了自己学习的目标和方向,由很多感悟和体验心得。而且,对工程设计的流程和步骤有了清晰的认识,为自己日后的学习和研究打下了坚实的基础。在这次系统设计过程中,我深刻的认识到要做好一个项目,不仅需要

31、学好本身相关知识,还要广泛涉猎其他学科知识。不仅需要有坚实的知识,还要有坚强的意志和精益求精的精神,追求,只有这样才能做好工程项目。才能成为一名合格的人才。油箱液位测量仪设计16参考文献1王清. 机械工程测试技术教学改革探讨J. 科技信息(科学教研),2008,17:500.2谢锋云. MATLAB 在机械工程测试技术中应用探讨J. 佳木斯大学学报(自然科学版),2008,05:603-605.3吴文秀,汪建华,周思柱. MATLAB 在机械工程测试技术教学中的应用J.科技资讯,2006,26:105-106.4林近山. 关于机械工程测试技术教学改革的几点思考J. 潍坊学院学报,2011,02

32、:149-150.5张志刚,石晓辉,富丽娟. 机械工程测试技术课程理论教学的改革与创新J. 科技创新导报,2011,23:147-148.6石磊. 案例教学法在机械工程测试技术的应用J. 机电技术,2011,05:147-148.7王文娟. MATLAB/Simulink 在机械工程测试技术基础教学中的应用J. 农业科技与装备,2009,04:52-54.8李敏通,朱兆龙,查峥. “机械工程测试技术”教学方法研究探讨J. 教育教学论坛,2012,04:189-190.9张凤生,王海峰,孙忠义,李智,杨倩. 机械工程测试技术课程教学改革与实践J. 教学研究,2012,01:92-94.10文成,

33、周传德. 工程案例法在“机械工程测试技术”课程教学中的应用J. 重庆科技学院学报(社会科学版),2012,21:188-190.11吴世雄,王成勇. “机械工程测试技术”教学改革的探索J. 广东工业大学学报(社会科学版),2007,S1:108-109.12C 语言程序设计教程第三版.高等教育出版社13单片机 C 语言 windows 环境编程宝典.北京航空航天大学出版社148051 C 语言实习.中国水利水电出版社15单片机原理及其接口技术(第二版) .清华大学出版社油箱液位测量仪设计17致谢首先要感谢我的父母,是他们用辛勤的汗水浇灌着我的生命,省吃俭用供我完成学业,教导我在人生道路上迈好每

34、一步。其次要感谢我的恩师,他严谨的治学、和蔼的性格教导始终让我如沐春风,激励着我走向学术的大门。论文开题后,老师多次指导收集材料、进行数据分析,多次对论文提出修改意见,为我的论文费尽心血,还关心我的学习生活,在生活和学业上都给我极大的帮助。我的这篇文章从开题到写作成型再到几次修改完善,经过了一个不断学习、不断探索的阶段,现在拿在手上喜悦和辛酸涌上心头。在此我要感谢我的父母亲朋、良师益友和无私帮助过我的人们。最后要感谢我的同窗好友们,他们给我一个温暖的集体、一个良好的学习生活环境,在论文的修改阶段也是给予了许多帮助。毕业来临,今后我将继续将这种求真务实的治学态度带到人生中的每一个阶段,将这份感恩

35、铭记于心。油箱液位测量仪设计18附录主程序代码#include#define A_DIN P1#define ICMOUT P2sbit Buzzer=P03;sbit ICMMODE=P06;sbit ICMWR=P07;sbit STS=P30;sbit RC0=P31;sbit A0=P32;sbit CS0=P33;sbit CE=P34;unsigned char A_DV0,A_DV1; /A_D 转换得到值unsigned Hmax,Hmin; /上下限值unsigned char A_DV4; /当前液位值float U1,U2,H;void T0Run(void); /T0

36、启动子程序void Icmdis(unsigned char A_DV); /LED 显示子程序void A_DRun(void); /启动 A_D 转换子程序unsigned char A_DReA_D(void); /A_D 转换子程序int AAA;bit Bjj(int AAA,unsigned Hmax,Hmin); /数值比较函数char T0c=0; /T0 计时次数 main()P0=0x07; /设置输入位P1=0xff; P3=0x01;Hmax=3000; /上限值,根据实际情况设定Hmin=10; /下限值 ,根据实际情况设定T0Run();void T0Run(voi

37、d) /T0 启动子程序IE=0x82; /启动中断 T0 TMOD=0x01; /设置 T0 工作于模式 1TH0=0x3C; TL0=0xB0; /送入计数初值油箱液位测量仪设计19TR0=1; /启动定时器 T0void time0(void) interrupt 1TH0=0x3C;TL0=0xB0; /重装计数初值T0c+;if(T0c19) /如果计时 20 次即 1s T0c=0;A_DRun(); /启动 A_D 转换A_DReA_D(); Icmdis(A_DV);Bjj(AAA,Hmax,Hmin);void A_DRun(void) /启动 A_D 程序 RC0=1; /

38、启动 12 位转换CS0=0;CE=1;A0=0;unsigned char A_DReA_D(void) int A_DV2;float A_DV3;A0=0;RC0=0;A_DV1=A_DIN; /读取高 8 位 A0=1;A_DV0=A_DIN; /读取低 4 位A_DV0=A_DV0/8;A_DV2=A_DV1*16+A_DV0; /计算 A_D 转换值A_DV3=(A_DV2-U1)*H/(U2-U1); /计算液位值AAA=A_DV3*10;A_DV0=AAA%10; /逐位分离液位值A_DV1=(AAA%100)/10;A_DV2=(AAA%1000)/100;A_DV3=AAA/1000;油箱液位测量仪设计20A_DV1=A_DV1|0x80; /第一位显示小数点return A_DV4;void Icmdis(unsigned char A_DV) /LED 显示子程序 char i;ICMWR=0;ICMMODE=1; /工作模式 1ICMOUT=0xB0; /输出模式控制字ICMMODE=0; /工作模式 0for(i=0;iHmax|AAAHmin)Buzzer=1;return 1;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报