基于单片机的液位控制系统设计_第1页
基于单片机的液位控制系统设计_第2页
基于单片机的液位控制系统设计_第3页
基于单片机的液位控制系统设计_第4页
基于单片机的液位控制系统设计_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的液位控制系统设计基于单片机的液位控制系统的设计摘要液位测量广泛应用于工业、经济、生活等领域。本设计以水箱供水为模型,用于对水箱液位信号进行测量监控记录。基于单片机的液位测量装置具有测量准确、重复性好、功耗低、使用寿命长的特点,是广泛采用的技术。在深入学习科学发展观的同时,电子设备的设计也需融入可持续发展的设计理念。故此,在基于单片机的液位测量装置基础上,扩展实时监控、数据采集、计算机串行通信等功能,从而能够通过科学的方法将液位测量与统计科学结合,合理调度水资源,降低能源消耗。本文从系统方案选择与论证,硬件电路设计,系统软件与上位机软件设计等几个方面介绍了基于单片机的液位测量监控系统的设计过程,最终实现了液位的实时测量与监控。最后,本文总结了设计过程中出现的问题及解决方法,简要叙述了所获数据的处理方法,引出了进一步设计开发的思路。关键词:单片机;液位测量;实时监控;串口通信基于单片机的液位控制系统设计全文共63页,当前为第1页。

TheDesignofLiquidLevelControlSystemBasedonMCU基于单片机的液位控制系统设计全文共63页,当前为第1页。AbstractTheliquidlevelmeasurementiswidelyusedinindustry,economy,lifeandotherfields.Thisdesigntakethewatertankwatersupplyasamodel,usesincarriesonthesurveytothewatertankfluidpositionsignaltomonitortherecord.TheliquidlevelmeasurementdevicebaseonMCUiswidelyusedbecauseofmanycharacteristicssuchashighmeasurementaccuracy,goodrepeatability,lowpowerconsumptionandlongusefultime.WhenwestudyScientificOutlookonDevelopmentthoroughly,thedesignofelectronicaidshouldincludethethoughtofsustainabledevelopment.So,beyondtheliquidlevelmeasurementdevicebasedonMCU,expandthefunctionsofreal-timemonitoring,dataacquisition,serialcommunication.Throughthenewfunctions,thescientificmethodoftheliquidlevelmeasurementcouldbecombinedwithStatisticalScience,beusedtomanagethewaterresourcesreasonable,reduceenergyconsumption.Thisthesisintroducesthedesignprocessoftheliquidlevelcontrolsystembyseveralpartsassystemschema,thedesignofhardwarecircuit,thesoftwareofhostcomputerandsystemsoftware,ultimatelyachievedthelevelofreal-timemeasurementandmonitoring.Finally,thepapersummarizestheproblemsandsolutionsofthedesignprocess,describesbrieflythemethodofdataprocessing,andleadstoideasofthefurtherdesignanddevelopment.Keywords:MCU;LiquidLevelMeasurement;Real-timemonitoring;SerialCommunication基于单片机的液位控制系统设计全文共63页,当前为第2页。

基于单片机的液位控制系统设计全文共63页,当前为第2页。目录引言 1第1章绪论 21.1课题背景与研究意义 21.2国内外研究现状及发展 21.3本课题主要研究内容 3第2章系统总体方案 42.1系统设计要求 42.2系统框图 42.3硬件设计方案 42.3.1主控模块设计方案 52.3.2键盘模块设计方案 52.3.3显示模块设计方案 62.3.4数据存储模块设计方案 62.3.5时间模块设计方案 72.3.6A/D转换模块设计方案 82.3.7通信模块设计方案 92.3.8电机控制模块设计方案 10第3章硬件电路设计 113.1AT89S52硬件设计 113.2按键设计 133.3显示单元硬件设计 143.4存储单元硬件设计 153.5时间单元硬件设计 173.6A/D转换单元硬件设计 183.7通信单元硬件设计 193.8其他外围电路的设计 20第4章系统软件设计 224.1系统软件 224.1.1系统软件编译开发环境 224.1.2系统主程序流程图 224.1.3系统初始化 224.1.4显示与A/D转换的数据处理 244.1.5按键部分软件设计 254.1.6显示模块的软件设计 264.1.7A/D转换模块软件设计 264.1.8电机控制模块软件设计 264.1.9通信协议及通信模块软件设计 274.1.10时间模块软件设计 294.2上位机软件设计 30基于单片机的液位控制系统设计全文共63页,当前为第3页。4.2.1上位机软件开发编译环境 30基于单片机的液位控制系统设计全文共63页,当前为第3页。4.2.2上位机软件的界面设计 314.2.3上位机串口通信功能的实现 324.2.4上位机软件中的数据处理 34结论与展望 35致谢 37参考文献 38附录A系统电路原理图 39附录B外文文献及译文 40附录C主要参考文献的题录及摘要 49附录D系统软件源代码 52基于单片机的液位控制系统设计全文共63页,当前为第4页。

基于单片机的液位控制系统设计全文共63页,当前为第4页。插图清单图2-1系统总体框图………………………1图3-1AT89S52引脚及网络标号…………11图3-2复位电路及时钟电路………………13图3-3系统按键电路………………………14图3-474LS273及74LS47引脚图………14图3-5显示部分电路图……………………15图3-662256引脚图………………………16图3-7存储的单元电路……………………16图3-8DS1302引脚图………………………17图3-9时间单元电路………………………17图3-10ADC0804引脚图……………………18图3-11A/D转换单元电路图………………19图3-12MAX485引脚图……………………19图3-13串行通信模块电路图……………20图3-14继电器部分电路图………………20图3-15电源指示灯电路图………………21图4-1主程序流程图………………………23图4-2键盘程序流程图……………………25图4-3液位检测流程图……………………27图4-4通信检测流程图……………………28图4-5上位机软件界面效果图……………33图4-6水箱液位控制结构图………………33图5-1Matlab绘制图形……………………36基于单片机的液位控制系统设计全文共63页,当前为第5页。

基于单片机的液位控制系统设计全文共63页,当前为第5页。表格清单表3-1端口引脚第二功能…………………12表4-1初始化参数及含义…………………22表4-2A/D转换幅值数据关系对照表……………………24表4-3通信协议……………28表4-4RS状态标志及含义………………29表4-5界面功能描述………………………31基于单片机的液位控制系统设计全文共63页,当前为第6页。基于单片机的液位控制系统设计全文共63页,当前为第6页。引言上世纪40年代,电子计算机的诞生,标志着人类电子技术进入了一个新的阶段。1976年单片机的推出为电子电路设计提供了新的思路,也促进了模拟电路向数字电路发展的历程。它在一片芯片上集成了完整的计算机系统。从它的发展来看,低功耗CMOS化、微型单片化、主流与多品种共存的发展趋势更进一步促使了单片机在各个行业的应用。这些应用,很大一方面体现在工业控制中。在工业上,使用单片机可以构成形式多样的控制系统与数据采集系统。单片机应用发展迅速而广泛。在过程控制中,单片机既可作为主计算机,又可作为分布式计算机控制系统中的前端机,完成模拟量的采集与开关量的输入、处理与控制计算,然后输出控制信号。单片机广泛用于仪器仪表中,与不同类型的传感器相结合,实现诸如电压、功率、频率、湿度、流量、速度、厚度、压力、温度等物理量的测量;在家用电器设备中,单片机已广泛用于电视机、录音机、电冰箱、电饭锅、微波炉、洗衣、高级电子玩具、家用防盗报警等各种家电设备中。在计算机网络与通信、医用设备、工商、金融、科研、教育、国防、航空航天等领域都有着十分广泛的应用。工程应用中液位的测量常用方法主要有超声波、激光红外测距、机械浮子、压力传感器测距等几种。这些测量方式对一般液位的测量来说各有各的优点,可根据不同的应用场合与要求进行选择。比如,常见的液位控制系统多采用浮标、电极等,这种控制形式结构简单成本低廉,但是控制精度不高,不能进行数值显示;另外容易引起误操作,与上位机进行信息交互比较困难。随着科技的发展,液位测量技术趋于智能化、微型化、可视化。本设计思想是用单片机做下位机,PC机做上位机,单片机与PC机相结合对水箱液位进行测量与监控。该设计要求具有一定的智能化,可操作性与稳定性好。基于单片机的液位控制系统设计全文共63页,当前为第7页。

基于单片机的液位控制系统设计全文共63页,当前为第7页。第1章绪论课题背景与研究意义在工农业生产中,常常需要测量液体液位。随着国家工业的迅速发展,液位测量技术被广泛应用到石油、化工、医药、食品等各行各业中。低温液体(液氧、液氮、液氩、液化天然气及液体二氧化碳等)得到广泛的应用,作为贮存低温液体的容器要保证能承受其载荷;在发电厂、炼钢厂中,保持正常的锅炉汽包水位、除氧器水位、汽轮机凝气器水位、高、低压加热器水位等,是设备安全运行的保证;在教学与科学研究中,也经常碰到需要进行液位控制的实验装置。国内外研究现状及发展液位测量的方法比较多,依据测量方式的不同可分为接触式与非接触式两种类型。●接触式测量法接触式测量法是指测量用传感器直接与容器内存储液体相接触,从而获得测量参数的方法。1.人工检尺法人工检尺法可用于测量油罐液位,其历史十分悠久。它利用浸入式刻度钢皮尺测量液位,这种方法具有测量简单、可靠性高、直观、成本低的优点,但人为读数误差大、无法实现自动检测与操作。2.电参数测量法常见的有电阻法、光电法、测重法、电容法、浮标法及声光电的反射回波法等。无论怎样,这些方法的关键是利用液位传感器将液位的相对位移量转换成为电压、电流、阻抗等便于进行电处理的物理量。限于篇幅,下面仅简单介绍电容测量法的基本原理。本方法所使用的电容通常由两块圆柱形极板或一个探极与罐壁构成。当液位不同时,电容器的介电常数就不同,故电容量也不同。在此基础上可以把电容量转化为电压、相移、频率、脉宽等物理量,再进行测量。电容式液位测量装置通常结构简单、灵敏度高、稳定性好、动态响应快,适合于恶劣的工作环境,生产成本也不高;但电容液位测量器需要考虑温度补偿,且介质的成分、水分、温度、密度等不确定变化因素直接影响测量结果的准确性,另外检测电路比较复杂,尤其是检测微小电容量的变化。●非接触式测量法非接触式测量法包括超声波法、调制型光学法、微波法等。其特点是测量手段并不采用浮子之类的固态物,而是利用声、光、射线、磁场等的能量。液位传感器不与被测介质接触,不受被测介质影响,也不影响被测介质,故适用范围广泛。特别是接触式测量装置不能适用的特殊场合,如高粘度、强腐蚀性、污染性强,易结晶的介质。下面简单介绍超声波法与微波法的测量原理。超声波法:换能装置将电功率脉冲转换为超声波,射向液面,经液面反射后再由换能器将该超声波转换为电信号,超声波法可用于多液面的测量。基于单片机的液位控制系统设计全文共63页,当前为第8页。超声波是机械波,传播衰减小,界面反射信号强,且发射与接收电路简单,因而应用较为广泛;但超声波的传播速度受介质的密度、浓度、温度、压力等因素影响,其测量精度往往较低。基于单片机的液位控制系统设计全文共63页,当前为第8页。微波法:微波通过天线辐射出去,经液面反射后被天线接收,然后由二次电路计算发射信号与接收信号的时间差得出液位。微波速度受传播介质、温度、压力、液体介电常数的影响很小,但液体界面的波动、液体表面的泡沫、液体介质的介电常数对微波反射信号强弱有很大影响。当压力超过规定数值时,压力对液位测量精度将产生显著影响。对波导管的锈蚀、弯曲与倾斜都会影响测量精度。●光纤测量法光纤液位检测是近年来出现的一种新技术。根据光导纤维中光在不同介质中传输特性的改变对液位进行测量。光纤液位测量有以下优点:精度高、灵敏度好、抗电磁干扰、耐腐蚀、电绝缘性好、检测现场无电、光路有抗扰性以及便于与计算机连接,便于与光纤传输系统组成网络等。目前,市面上进行液位测量的仪表种类繁多,但是同时具有测量、监控、数据记录及处理的液位测量装置并不多。在某些工业控制系统中,数据的测量这一基本功能已不能满足现代工业的要求,往往需要对大批数据进行记录,对其进行后期处理分析,实现差错控制、工艺改善、资源优化等一系列工作。为了获得大批量的数据,得到可靠的分析资料,往往需要长期、多网点的监控记录。在液位测量这一领域中,如江河湖海、城市用水等方面,大量数据长时间,多网点的采集记录分析具有普遍的意义。液位的变化分析,有助于人们进一步对自然环境、天气变化甚至是灾害预警提供可靠的支持。本课题主要研究内容本设计以水箱供水为模型,鉴于单片机液位测量装置的测量准确、重复性能好、功耗低、使用寿命长等特点,设计以单片机为基础的液位测量监控记录系统。具有实时液位测量监控数据处理等功能。设计具体内容分为以下几个方面:系统硬件电路设计以及单片机选型;系统软件设计;上位机软件设计以及上位机与下位机通信设计。基于单片机的液位控制系统设计全文共63页,当前为第9页。

基于单片机的液位控制系统设计全文共63页,当前为第9页。第2章系统总体方案2.1系统设计要求本设计以水箱供水为模型,鉴于单片机液位测量装置的测量准确、重复性能好、功耗低、使用寿命长等特点,设计以单片机为基础的液位测量监控记录系统。它具有实时测量监控水箱液位高度并显示的功能,并根据实时水量与设置的上、下液位参数的比较,启动电机供水或停止水泵。在启动电机与停止水泵时,实时记录时间点与电机状态。液位测量高度≤5米,测量精度10%,AC220V供电。可通过上位机软件,可与监控记录系统进行通信,能够从PC机获取当前液位高度、电机状态、设备系统时间、上下液位高度等数据,并可根据需要改变系统默认的参数。同时可以获取设备运行时记录的数据,并能够对数据保存。能够根据一定的算法,计算分析单位时间水箱消耗水量,绘制图形,通过计算分析的结果,可以进行区域用水统筹,降低能源的消耗。2.2系统框图根据系统的设计要求,采用单片机为主控芯片,通过单片机数据地址总线及I/O端口,扩展数据存储模块、A/D转换模块、显示模块、时间模块、串口通信模块以及A/D转换、电机控制等外围电路,从而实现系统所需的设计功能。系统总体方案框图如图2-1:电机控制模块A/D转换模块电机控制模块A/D转换模块按键与显示模块时间模块存储模块通信模块单片机主控模块图2-SEQ图2-\*ARABIC1系统总体框图图中,信号流向仅指示了通过数据地址总线或I/O口上发生的数据信号,不包括控制信号。基于单片机的液位控制系统设计全文共63页,当前为第10页。2.3硬件设计方案基于单片机的液位控制系统设计全文共63页,当前为第10页。2.3.1主控模块设计方案单片机作为主控模块,使得在对单片机选型上有了较大的空间。单片机在30多年的发展历程中,形成了多公司、多系列、多型号“百家争鸣”的局面。因而,选择一个合适的单片机有时真的不太容易,要考虑的方面太多。大致总结出以下几点:1)单片机的基本参数。例如速度、程序存储器容量、I/O引脚数量等。2)单片机的增强功能。例如看门狗、双指针、双串口、RTC(实时时钟)、EEPROM、扩展RAM、CAN接口、I2C接口、SPI接口、USB接口。3)Flash与OTP(一次性可编程)。4)封装:DIP(双列直插),PLCC(PLCC有对应插座)还是贴片。5)工作温度范围,工业级还是商业机。6)功耗。 7)工作电压范围。例如设计电视机遥控器,2节干电池供电,至少应该能在1.8~3.6V电压范围内工作。8)供货渠道畅通。9)价格。10)烧录器价格,能否ISP(在线系统编程)。11)仿真器。12)单片机汇编语言支持。13)资料尽量丰富。14)抗干扰性能好。15)与其他外设芯片放在一起的综合考虑。根据以上因素:系统的实时性要求不高,因而运算速度无需很快,且系统规模不大,采用分时复用的方式使用总线,对I/O口的数量可以要求进一步降低。使用4路8位I/O接口即可满足设计要求;系统中需要扩展外部存储器对数据进行存储,数据存储量为32KB已满足要求,因此采用16位或准16位地址总线的单片机即可满足设计需要;由于是实验阶段,采用DIP(双列直插)封装的芯片便于实验,暂不考虑实际工业控制中的对外界环境的具体要求;系统采用AC220V供电,且对功耗没有具体要求,使用DC5V为芯片供电,便于系统外围电路的设计;芯片支持ISP可节省仿真器的投入。综上所述,采用与MCS-51兼容的AT89S52单片机满足设计要求。AT89S52是一种低功耗、高性能CMOS工艺的8位微控制器,具有8K在线系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令与引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.3.2键盘模块设计方案基于单片机的液位控制系统设计全文共63页,当前为第11页。基于单片机的液位控制系统设计全文共63页,当前为第11页。键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机输入数据、发送命令等功能,是人工干预单片机系统的主要手段。考虑到本设计实际需要的按键较少,故采用独立式键盘接口电路即可。2.3.3显示模块设计方案显示器是计算机的主要输出设备,在简单的工业控制系统中,常用的显示器有数码管显示器(LED),液晶显示器(LCD)等,该系统仅需显示液位高度,即数字量,采用LED显示器已能满足系统要求。系统中,要求测量范围≤5m,测量精度为10%,假设测量范围为5m,在10%精度的要求下,其测量的有效值为5*10%=0.5m。因而采用2位LED显示器便能满足设计要求。在单片机应用系统中,LED显示器的现实方法有两种:静态显示法与动态显示法。静态显示法的优点是显示程序十分简单,显示亮度大,由于CPU不必经常扫描显示器,所以节约了CPU的工作时间。但静态显示也有其缺点,主要是占用I/O口资源较多,硬件成本较高。所以静态显示法常用在显示器数目较少的应用系统中。为了解决静态显示占用I/O口资源的缺点,在软件上采用压缩BCD码输出显示数据,硬件上使用一个8位锁存器74LS273与两个BCD数码显示译码驱动芯片74LS47连接,减少对系统资源的占用时间。由于74LS47译码为共阳极数码管的码表,因而选用8段(带小数点)共阳极LED用于数据显示。高位显示米单位,低位显示分米单位,且高位小数点常亮。单片机使用1位I/O口控制数据的锁存。2.3.4数据存储模块设计方案使用AT89S52内部256字节的数据存储器记录数据是远远不够的,因而需要扩展数据存储器进行数据存储。数据存储器可选择的种类繁多,常用的有随机存取存储器(RAM)、只读存储器(ROM)与闪存(FLASH)。RAM是存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。ROM通常指固化存储器(一次写入,反复读取),它的特点与RAM相反。ROM又分一次性固化、光擦除与电擦除重写两种类型。闪存则是一种不挥发性(Non-Volatile)内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。NOR与NAND是现在市场上两种主要的非易失闪存技术。NAND闪存的存储单元则采用串行结构,存储单元的读写是以页与块为单位来进行(一页包含若干字节,若干页则组成储存块,NAND的存储块大小为8到32KB),这种结构最大的优点在于容量可以做得很大,超过512MB容量的NAND产品相当普遍,NAND闪存的成本较低,有利于大规模普及。基于单片机的液位控制系统设计全文共63页,当前为第12页。NAND闪存的缺点在于读速度较慢,它的I/O端口只有8个,比NOR要少多了。这区区8个I/O端口只能以信号轮流传送的方式完成数据的传送,速度要比NOR闪存的并行传输模式慢得多。再加上NAND闪存的逻辑为电子盘模块结构,内部不存在专门的存储控制器,一旦出现数据坏块将无法修,可靠性较NOR闪存要差。基于单片机的液位控制系统设计全文共63页,当前为第12页。NOR的特点是芯片内执行(XIP,eXecuteInPlace),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入与擦除速度大大影响了它的性能。NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入与擦除的速度也很快。应用NAND的困难在于FLASH的管理与需要特殊的。可以看出ROM的存储复杂,不适宜实时系统的数据存储。FLASH是一个不错的解决方案。鉴于系统的复杂程度,暂时不考虑使用FLASH作为存储单元。根据设计要求,记录某一记录点(电机状态改变时刻)的状态与时间需要6字节数据,即年(2000-2099年)、月(1-12月)、日(1-31日)、时(0-23时)、分(0-59分)、状态(0或1)这些数据,如果系统长时间的工作,将会有大批量的数据产生,假若数据存储空间不够大,将会产生数据的覆盖,从而降低了对数据分析的准确性。因此选用32K字节的数据存储器,可以记录大于5000项记录点数据,考虑到水箱上水与耗水的频繁程度不高,5000项数据已基本满足后期数据处理的需求。在实际应用中,系统设计在不掉电的工作环境下;软件上,上位机软件对数据提取后即可保存在PC机中,5000项数据进行时间上的缓冲是充足的。为节省CPU的工作时间,且由于RAM存储速度快、使用方便等特点,从而可以忽略了RAM掉电数据丢失的缺点。2.3.5时间模块设计方案通过单片机的定时器,可以设计时间功能,然而单片机自身的产生时间数据大大占用了系统的资源,降低了工作效率,甚至影响了其他功能的实现,因此在本设计方案中,采用了外部芯片提供时间信号,用以系统记录时间信息。目前市场上的时钟芯片很多,如DS1302/DS1307/HT1380/HT1381/PCF8563等。DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历与31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日期、日、月、年的信息,每月的天数与闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线(1)RES(复位),(2)I/O(数据线),(3)SCLK(串行时钟)。时钟/RAM的读、写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低,保持数据与时钟信息时功率小于1mW。DS1302是由DS1202改进而来,增加了以下的特性双电源管脚用于主电源与备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。下面将主要的性能指标作一综合:实时时钟具有能计算2100年之前的秒、分、时、日期、星期、月、年的能力,还有闰年调整的能力。31*8位暂存数据存储RAM。串行I/O口方式使得管脚数量最少。宽范围工作电压2.0~5.5V。工作电流2.0V时,小于300nA。读/写时钟或RAM数据时有两种传送方式单字节传送与多字节传送字符组方式。基于单片机的液位控制系统设计全文共63页,当前为第13页。8脚DIP封装或可选的8脚SOIC封装。基于单片机的液位控制系统设计全文共63页,当前为第13页。简单3线接口。与TTL兼容Vcc=5V。可选工业级温度范围-40至+85摄氏度与DS1202兼容。在DS1202基础上增加的特性:对Vcc1有可选的涓流充电能力;双电源管用于主电源与备份电源供应;备份电源管脚可由电池或大容量电容输入;附加的7字节暂存存储器。 综上所述,选用DS1302时间芯片完全满足设计的需求。2.3.6A/D转换模块设计方案A/D器件与芯片是实现单片机数据采集的常用外围器件。A/D转换器的品种繁多、性能各异,在设计数据采集系统时,首先碰到的就是如何选择合适的A/D转换器以满足系统设计要求的问题。选择A/D转换器件需要考虑器件本身的品质与应用的场合要求。基本上,可以根据以下几个方面的指标选择一个A/D器件。1)A/D转换器位数A/D转换器位数的确定,应该从数据采集系统的静态精度与动态平滑性这两个方面进行考虑。从静态精度方面来说,要考虑输入信号的原始误差传递到输出所产生的误差,它是模拟信号数字化时产生误差的主要部分。量化误差与A/D转换器位数有关。一般把8位以下的A/D转换器归为低分辨率A/D转换器,9~12位的称为中分辨率转换器,13位以上的称为高分辨率转换器。10位以下的A/D芯片误差较大,11位以上对减小误差并无太大贡献,但对A/D转换器的要求却提得过高。因此,取10位或11位是合适的。由于模拟信号先经过测量装置,再经A/D转换器转换后才进行处理,因此,总的误差是由测量误差与量化误差共同构成的。A/D转换器的精度应与测量装置的精度相匹配。也就是说,一方面要求量化误差在总误差中所占的比重要小,使它不显著地扩大测量误差;另一方面必须根据目前测量装置的精度水平,对A/D转换器的位数提出恰当的要求。目前,大多数测量装置的精度值不小于0.1%~0.5%,故A/D转换器的精度取0.05%~0.1%即可,相应的二进制码为10~11位,加上符号位,即为11~12位。当有特殊的应用时,A/D转换器要求更多的位数,这时往往可采用双精度的转换方案。2)A/D转换器的转换速率A/D转换器从启动转换到转换结束,输出稳定的数字量,需要一定的转换时间。转换时间的倒数就是每秒钟能完成的转换次数,称为转换速率。确定A/D转换器的转换速率时,应考虑系统的采样速率。例如,如果用转换时间为100us的A/D转换器,则其转换速率为10KHz。根据采样定理与实际需要,一个周期的波形需采10个样点,那么这样的A/D转换器最高也只有处理频率为1KHz的模拟信号。把转换时间减小,信号频率可提高。对一般的单片机而言,要在采样时间内完成A/D转换以外的工作,如读数据、再启动、存数据、循环计数等已经比较困难了。3)采样/保持器基于单片机的液位控制系统设计全文共63页,当前为第14页。采集直流与变化非常缓慢的模拟信号时可不用采样保持器。对于其他模拟信号一般都要加采样保持器。如果信号频率不高,A/D转换器的转换时间短,即采样高速A/D时,也可不用采样/保持器。基于单片机的液位控制系统设计全文共63页,当前为第14页。4)A/D转换器量程A/D转换时需要的是双极性的,有时是单极性的。输入信号最小值有的从零开始,也有从非零开始的。有的转换器提供了不同量程的引脚,只有正确使用,才能保证转换精度。在使用中,影响A/D转换器量程的因素有:量程变换与双极性偏置;双基准电压;A/D转换器内部比较器输入端的正确使用。5)满刻度误差满度输出时对应的输入信号与理想输入信号值之差。6)线性度实际转换器的转移函数与理想直线的最大偏移。ADC0804是单路8位逐次比较型双极性输入A/D转换器,转换时间小于。量化间隔:(2-1)绝对量化误差:(2-2)相对量化误差:(2-3)在液位传感器误差与参考电压误差不大的情况下,ADC0804是完全满足设计误差要求的。2.3.7通信模块设计方案AT89S52单片机内部有一个全双工异步串行I/O接口,占用P3.0与P3.1两个引脚。利用该接口,可实现系统与上位机的通信。不同设备间串口通信的过程中,需要采用相同的的接口标准才能通信。典型的串行通讯标准是RS232与RS485,它们定义了电压,阻抗等,但不对软件协议给予定义。RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(ElectronicIndustryAssociation)代表美国电子工业协会,RS(EcommededStandard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。。它规定连接电缆与机械、电气特性、信号功能及传送过程。区别于RS232,RS485的特性包括:1)RS-485的电气特性:逻辑“1”以两线间的电压差为+(2~6)V表示;逻辑“0”以两线间的电压差为-(2~6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。2)RS-485的数据最高传输速率为10Mbps。3)RS-485接口是采用平衡驱动器与差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。基于单片机的液位控制系统设计全文共63页,当前为第15页。4)RS-485接口的最大传输距离标准值为4000英尺,实际上可达3000米,另外RS-232-C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。基于单片机的液位控制系统设计全文共63页,当前为第15页。因RS-485接口具有良好的抗噪声干扰性,长的传输距离与多站能力等上述优点就使其成为首选的串行接口。PC机作为上位机,一般情况下带有RS-232C通信接口,鉴于RS-485接口的优点与系统实际工作环境的需要,系统采用RS-485接口标准,使用RS-232/RS-485转换器与PC机连接进行通信。MAX485接口芯片是Maxim公司的一种RS-485芯片。采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式。它完成将TTL电平转换为RS-485电平的功能。2.3.8电机控制模块设计方案由于设计中没有规定水泵电机的参数规格,而且不同型号的水泵参数不尽相同,电气参数的不同使得在电路上的设计差异较大,因此在此仅作理论演示。选用继电器作为电机控制的元件。继电器是一种电子控制器件,它具有控制系统(又称输入回路)与被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。继电器主要产品技术参数:1)额定工作电压。是指继电器正常工作时线圈所需要的电压。根据继电器的型号不同,可以是交流电压,也可以是直流电压。2)直流电阻。是指继电器中线圈的直流电阻,可以通过万能表测量。3)吸合电流。是指继电器能够产生吸合动作的最小电流。在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。4)释放电流。是指继电器产生释放动作的最大电流。当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态。这时的电流远远小于吸合电流。5)触点切换电压与电流。是指继电器允许加载的电压与电流。它决定了继电器能控制电压与电流的大小,使用时不能超过此值,否则很容易损坏继电器的触点。根据以上的参数,结合设计的演示性,选用额定工作电压120VAC/24VDC,工作电流3A,控制电压5VDC的小型继电器。基于单片机的液位控制系统设计全文共63页,当前为第16页。

基于单片机的液位控制系统设计全文共63页,当前为第16页。第3章硬件电路设计3.1AT89S52硬件设计AT89S52引脚定义及功能介绍如图3-1。图3-图3-SEQ图3-\*ARABIC1AT89S52引脚及网络标号P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序与数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在FLASH编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0与P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)与定时器/计数器2的触发输入(P1.1/T2EX),具体如下所示:在FLASH编程与校验时,P1口接收低8位地址字节。引脚号第二功能:P1.0/T2(定时器/计数器T2的外部计数输入),时钟输出P1.1/T2EX(定时器/计数器T2的捕捉/重载触发信号与方向控制)基于单片机的液位控制系统设计全文共63页,当前为第17页。P1.5MOSI(在系统编程用)基于单片机的液位控制系统设计全文共63页,当前为第17页。P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在FLASH编程与校验时,P2口也接收高8位地址字节与一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。表3-1端口引脚第二功能端口号第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程与程序校验的控制信号。RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX与MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。基于单片机的液位控制系统设计全文共63页,当前为第18页。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H~FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。基于单片机的液位控制系统设计全文共63页,当前为第18页。XTAL1:振荡器反相放大器与内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。为了便于接下来的说明,单片机各管脚网络标号定义如图3-1。要使单片机按照设计要求正常工作,完整单片机最基本的工作要求,考虑到系统无需精确地定时功能,且为了方便串口通信波特率的计算,采用11.0592MHz的晶振提供系统时钟。并附加复位电路,组成单片机最小系统。根据电路设计规范与AT89S52芯片手册,设计时钟电路与复位电路如图3-2:图3-SEQ图3-\*ARABIC2复位电路及时钟电路图中网络标号RST连接单片机RST引脚,具有上电复位与手动复位的功能;XTAL1与XTAL2连接单片机XTAL1与XTAL2引脚,且并联两个30pF匹配电容使晶振起振。由于单片机P0口作普通I/O口时不能输出高电平,因此需接上拉电阻,实际电路中,使用8*10KΩ电阻作为上拉电阻。3.2按键设计键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机系统输入数据、发送命令等功能,是人工干预单片机的主要手段。考虑到本设计实际需要的按键较少,故采用独立式键盘接口电路。它是将每个独立按键按一对一的方式直接接到单片机的I/O口上,通过程序扫描查询方式实现与单片机系统交互的。在程序查询方式下,通过I/O端口读入按键状态,当有按键按下时,相应的I/O端口变为低电平,而未被按下的按键在上拉电阻作用下为高电平,这样通过读I/O口的状态判断是否有按键按下。系统按键电路如图3-3所示。基于单片机的液位控制系统设计全文共63页,当前为第19页。下图中,S2~S5便是控制显示用的按键。其作用就是通过按动它们实现对高低警戒液位的设置。具体来说,S3、S4分别实现数字的增一与减一,S2、S5则作为高低警戒液位的模式选择与确认键。基于单片机的液位控制系统设计全文共63页,当前为第19页。图3-SEQ图3-\*ARABIC3系统按键电路3.3显示单元硬件设计在显示单元上,使用了74LS273带公共时钟复位八位触发器与74LS47共阳极BCD显示译码驱动芯片。两个芯片的管脚图如图3-4:图3-图3-SEQ图3-\*ARABIC474LS273及74LS47引脚图74LS273与74LS47引脚功能说明:74LS273:1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;基于单片机的液位控制系统设计全文共63页,当前为第20页。当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上。基于单片机的液位控制系统设计全文共63页,当前为第20页。74LS47上BI/ROB,LI,RBI引脚为控制引脚,主要用于测试与脉冲控制,均为低电平有效,设计上不适用此项功能,因此均接高电平。A0~A3是BCD输入,分解74LS273输出的高、低四位。a~g用于共阳极数码管的相应管脚的连接。为了保护LED数码管,在74LS47与LED之间添加限流电阻,以满足数码管的工作需要。根据以上的设计思路,设计电路图如图3-5:图3-图3-SEQ图3-\*ARABIC5显示部分电路图3.4存储单元硬件设计存储模块的硬件设计比较简单,由于AT89S52单片机为数据线与低8位地址线复用,需要使用地址锁存芯片74LS373。上文中已叙述,使用32KRAM作为存储芯片,因此选用与51系列兼容的62256随机数据存储器。该模块中使用的两个芯片管脚功如图3-6:基于单片机的液位控制系统设计全文共63页,当前为第21页。在62256中,A0~A14管脚为地址总线,共15位,寻址范围可达到32kB;I/O0~I/O7为8位三态双向数据接口;Vcc,Vss为电源与地;CS是片选接口,低电平有效;OE/WE分别是读选通与写选通数据输入输入线,低电平有效。基于单片机的液位控制系统设计全文共63页,当前为第21页。图3-图3-SEQ图3-\*ARABIC662256引脚图图3-SEQ图3-\*ARABIC7存储的单元电路基于单片机的液位控制系统设计全文共63页,当前为第22页。74LS373引脚位置与功能与74LS273差异不大,区别在于其1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态);当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3、4、7、8、13、14、17、18的状态。74LS273也可以作为地址锁存器来用,作锁存器时,对273来说,1(CLR)脚必须接高电平,ALE信号经过反相后接11脚(因为单片机的ALE信号是以下降沿方式出现)对373来说,1脚接低电平,保证使能,11脚直接接单片机的ALE信号。基于单片机的液位控制系统设计全文共63页,当前为第22页。按照常规的连接方法设计电路图3-7如示。3.5时间单元硬件设计DS1302因其较小的体积,占用I/O口资源少等特点,是常用的时间芯片。此次设计采用DIP-8封装,管脚功能如图3-8:图3-SEQ图3-\*ARABIC8DS1302引脚图其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中电压较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2供电,当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1与X2是振荡源接口,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传输。RST输入有两种功能:首先RST接通控制逻辑,允许地址/命令序列送入移位寄存存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果传送过程中RST置为低电平,则会终止此次传输,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端。SCLK始终是输入端,用来输入串行时钟信号。根据DS1302的特点,设计电路如图3-9:图3-SEQ图3-\*ARABIC9时间单元电路基于单片机的液位控制系统设计全文共63页,当前为第23页。在实际应用中,起控制、输入输出的三个端口上拉较弱,容因产生信号串扰,因此加上了上拉电阻与单片机P1口相连,加强信号的稳定性;为了保证时钟的可靠性,在Vcc1上使用了CR2032纽扣电池作为备用电源,输出电压为3V,从而保证了系统掉电状态下,时钟能够继续保持运行。基于单片机的液位控制系统设计全文共63页,当前为第23页。3.6A/D转换单元硬件设计A/D转换模块是系统中较为重要的一部分,由于涉及到模拟部分,A/D转换器的结构较为复杂。图3-SEQ图3-\*ARABIC10ADC0804引脚图图3-SEQ图3-\*ARABIC10ADC0804引脚图以下是ADC0804管脚及功能的介绍:/CS芯片选择信号。/RD外部读取转换结果的控制输出信号。/RD为高电平时,DB0~DB7处于高阻抗:/RD为低电平时,数据才会输出。/WR用来启动转换的控制输入,相当于ADC的转换开始(/CS=0时),当/WR由高电平变为低电平时,转换器被清除;当/WR回到高电平时,转换正式开始。CLKIN,CLKR时钟输入或接振荡元件(R,C)频率约限制在100kHZ~1460kHZ,如果使用RC电路则其振荡频率为1/(1.1RC)。/INTR中断请求信号输出,低地平动作。VIN(+)VIN(-)差动模拟电压输入。输入单端正电压时,VIN(-)接地;而差动输入时,直接加入VIN(+)VIN(-)。AGND,DGND模拟信号以及数字信号的接地。VREF辅助参考电压。DB0~DB78位的数字输出。VCC电源供应以及作为电路的参考电压。设计满偏电压为5V,则VREF辅助参考电压为5V/2=2.5V,在10%的误差范围内,无需过分苛刻参考电压的电压源,由于系统中DC5V供电,采用两只相同阻值电阻分压,便能近似得到2.5V的参考电压。系统中使用10K电阻与150pF电容组成RC振荡电路,根据技术手册计算公式:(3-1)其振荡频率约为606kHz,满足芯片要求。基于单片机的液位控制系统设计全文共63页,当前为第24页。另外,以阻抗型液位传感器为模型,液位传感器阻值变化与液位的高度是成正比的,因此需要将电阻值转换为电压值匹配A/D转换器。常用的阻抗-电压转换法如欧姆法。由于被测阻抗两端电压正比于被测电阻,可把被测阻抗转换为电压测量。即基于单片机的液位控制系统设计全文共63页,当前为第24页。(3-2)式中,是转化电压,恒定电流,为被测电阻,为比例系数。因此,液位高度的变化同样正比于输入电压,故而A/D转换器输出的数据正比于液位高度。为了简化设计调试过程,使用系统内部5V电压作为模拟输入,VIN(-)直接接地,通过接入传感器分压将阻抗转换为电压信号,接入电位器可实现模拟输入。根据以上参数分析,设计电路如图3-11:图3-SEQ图3-\*ARABIC11A/D转换单元电路图3.7通信单元硬件设计MAX485仅有8个管脚,电路设计比较简单。图3-图3-SEQ图3-\*ARABIC12MAX485引脚图RO引脚接到单片机串口接收引脚RXD(P3.0),DI引脚接到单片机串口发送引脚TXD(P3.1)。由于MAX485为半双工通信方式,不能同时发送与接收数据,只能通过控制RE与DE引脚的状态来进行发送数据与接收数据的转换。为了节省单片机I/O口资源,将RE与DE引脚连在一起,输入低电平时,MAX485处于接收状态;输入高电平时,其处于发送数据状态。定义RE与DE连接在一起的网络标号为E,接入单片机P1口,用于发送与接收的转换。A,B端为发送接收差分信号端,一般需在A,B端之间加匹配电阻,匹配电阻为120Ω。基于单片机的液位控制系统设计全文共63页,当前为第25页。硬件电路如图3-13:基于单片机的液位控制系统设计全文共63页,当前为第25页。图3-SEQ图3-\*ARABIC13串行通信模块电路图3.8其他外围电路的设计继电器电路设计。由于使用单片机I/O口的驱动电流较弱,不满足继电器吸合电流参数的要求,所以需使用三极管驱动继电器吸合。设计电路如图3-14。为了防止电源尖峰脉冲引发的噪声干扰以及高频信号线间的耦合干扰,在电源入口处及芯片顶端或底端,接入去耦电容,以增强系统的稳定性。电源指示灯设计如图3-15。基于单片机的液位控制系统设计全文共63页,当前为第26页。图3-SEQ图3-\*ARABIC14继电器部分电路图基于单片机的液位控制系统设计全文共63页,当前为第26页。图3-SEQ图3-\*ARABIC15电源指示灯电路图基于单片机的液位控制系统设计全文共63页,当前为第27页。

基于单片机的液位控制系统设计全文共63页,当前为第27页。第4章系统软件设计4.1系统软件4.1.1系统软件编译开发环境8051系类单片机共拥有111条系统指令,可实现51种基本操作。然而汇编语言指令却有程序的可读性低,程序开发人员的开发时间长与开发难度大,程序移植性差等缺点。C语言是一种编译型程序设计语言。它兼顾了多种高级语言的特点,并具备汇编语言的功能。用C语言来编写目标系统软件,会大大缩短开发周期,增加软件的可读性,便于改进与扩充。用C语言进行51系列单片机程序设计是单片机开发与应用的必然趋势。KEILC51开发工具套件可用于汇编C语言程序、汇编源程序,链接与定位目标文件与库,创建HEX文件以及调试目标程序。本设计使用KEILC51μVision3为开发编译环境,使用C语言编写程序,实现各模块功能设计。4.1.2系统主程序流程图系统主程序的功能主要是完成对单片机的初始化,设置警戒液位的上下限,实时显示液位值以及键盘扫描等工作。主程序流程图如图4-1所示。4.1.3系统初始化该模块在系统上电开机时将系统端口、数据存储区、标志位、指针、地址等赋予有含义的值。具体分为以下几个模块列表描述。基于单片机的液位控制系统设计全文共63页,当前为第28页。表4-1初始化参数及含义基于单片机的液位控制系统设计全文共63页,当前为第28页。模块变量/端口初始值功能控制端口初始化adRD/P1.31A/D转换芯片数据读入控制,初始为不读入adWR/P1.40A/D转换芯片转换控制,初始为停止E/P1.50通信接收发送控制,初始为接收DIS/P1.60显示数据锁存控制,初始为保持RELAY/P1.71继电器控制,初始状态为断开波特率发生器初始化TMOD0x22单片机片内定时/计数器工作在方式二SCON0x40串行口为8位UART工作方式TH10xf4波特率设置为4800bpsTL10xf4IE0禁止定时器中断TR11启动定时器REN1允许串行口接收数据时间初始化sec0x00初始化系统时间为200时0分0秒星期六其中sec,min,hr,date,mon,day,year依次为秒、分、时、日、月、星期、年min0x00hr0x00date0x01mon0x01day0x06year0x11数据参数初始化xmark0x7531数据存储状态标志字节指针numtab0x0001数据存储区指针uplq0xCF高液位警戒高度,初始值downlq0x10低液位警戒高度,初始值初始化过程中,调用A/D转换模块获得首次液位数据,同时将其显示,完成初始化工作开始开始CPU初始化参数设定是否有按键采样子程序显示实时液位数据处理子程序控制电机启停按键处理是否图4-SEQ图4-\*ARABIC1主程序流程图基于单片机的液位控制系统设计全文共63页,当前为第29页。基于单片机的液位控制系统设计全文共63页,当前为第29页。4.1.4显示与A/D转换的数据处理系统中,显示输出的要求为压缩BCD码,而A/D转换输入的数据是8位16进制码,因此在实现显示之前需要编码的转换。对8位A/D转换器而言,其十六进制、相对满偏电压比率、相对电压幅值的关系对应如表4-2:表4-2A十六进制二进制满刻度比率相对电压幅值Vref=2.5V高四位低四位高四位电压低四位电压F111115/1615/2564.8000.320E111014/1614/2564.4800.280D110113/1613/2564.1600.260C110012/1612/2563.8400.240B101111/1611/2563.5200.220A101010/1610/2563.2000.200910019/169/2562.8800.180010008/168/2562.5600.160701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.020000000/160/2560.0000.000综上,电压幅值与液位高度在数值上是相等的。为了通过LED直观显示液位高度,进行转换的思路如下:设输入8位二进制数据为,的商即为以分米为单位的液位高度数据,余数为以厘米为单位的数据,由于显示位数仅为2位,最低位为分米,固使用“二舍三入”的办法保留分米单位的整数倍数据。为了将这个数据转换为为压缩BCD码,再将,得到的商左移四位(相当于乘以16)为压缩BCD码高四位,余数为压缩BCD码低四位,二者相加,就是最终的结果。显示转换部分程序简略如下:uchardis_transform(ucharnum){ucharac,quotient,play,mid;ac=num%5;quotient=(num-ac)/5;if(ac>2)quotient++;基于单片机的液位控制系统设计全文共63页,当前为第30页。ac=quotient%10;基于单片机的液位控制系统设计全文共63页,当前为第30页。mid=(quotient-ac)/10;play

温馨提示

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

评论

0/150

提交评论