精心整理加油站自动加油限制器设计摘要石油是当前最重要的能源,它的准确计量对国民生产和生活都有特别大的意义,加油站加油机的人工智能化已经成为势在必行的趋势针对加油机所要实现准确计量,自动加油等功能,采纳W78E516BP专用芯片设计了系统的计量电路,采纳两片EEPROM来存储数据及LCD显示屏来直观了显示数据在硬件设计的根底上,为完成通信需求,设计了相应的通信协议,并采纳了C语言开发了系统各个模块的软件局部,以实现其各局部的功能本设计的限制器准确度高,重复性达标,具有较高的稳定性和一样性在加油过程中能清晰的显示单价、总油量以及总钱数,最终完成了系统设计要求关键词:单片机,自动加油机,计量微处理器The Design of Gas Station Automatic Oiling ControllerABSTRACT Oil si the most important source of energy. The accurate measurement of oil has a great significance to the national production and lif, so the gas tankers of artificial intelligence has become the inevitable trend. For refueling tanker to realize accurate measuring,automatically and other functions. This issue using special W78E516BP microprocessor chips design the measuring circuit of the system,and the block two slices of EEPROM is used to store data and the LCD display intuitive to display data. On the basis of the hardware desing,in order to complete the communication protocols and uses C language to develop the software part of system modules, to realize the function of each part.The design of high accuracy measurement of the microprocessor, repeatability standard, with higher consistency and stability. In the refueling process it can clearly show the unit price, total oil quantily and total amount,which can well meet the design requirements. Key words: microcomputer, automatic refueling, measures microprocessor精心整理目 录1. 绪论 11.1自动加油机的背景及意义 1背景 1意义 11.2国内外探究现状 2国内现状 2国外现状 32.系统总体设计 42.1加油机的根本概念 42.2自动加油机总体设计思路 52.3自动加油机限制器的要求 6存储器 6专用通信口 6软件 6显示屏 62.4加油机的运用性能 63. 自动加油机限制器的硬件设计 83.1限制模块 8计量微处理器 8存储电路 8监控微处理器与计量微处理器通信接口 93.2时钟电路 103.3传感器模块 103.4主显示模块 113.5键盘及显示模块 133.6电源模块 144.自动加油机灵能限制系统接口协议 154.1监控微处理器与计量微处理器通信接口协议 15硬件接口 15通信协议 15通信吩咐 154.2税控加油机显示接口协议 185. 自动加油机限制器软件设计 205.1 语言选择 205.2软件流程图 205.3键盘软件设计 245.5键盘显示软件设计 285.6加油函数 315.7存储数据一样性 366.试验打算 376.1试验设备 376.2试验步骤 376.2留意事项 377.总结 39附录 40致谢 43精心整理1. 绪论1.1自动加油机的背景及意义1.1.1背景科学技术的飞速开展和新的技术革命,使运输业面临三大问题的挑战,即网络化、学问化和效劳化,以及由此带来的困难化,而加油站加油的滞后导致运输业开展的不平衡[1]。
因此将系统论、信息论和限制论为核心的系统科学思想和方法融入加油站的加油系统不仅是加油站开展的必由之路,更是整合运输业快速开展的快捷之路,实现加油站加油系统的自动化,已经成为了开展运输业的势必要求当前,我国正在大力推动国民经济和社会的信息化进程而石油和化学工业(下文简称“石化”)是我国国民经济的支柱产业石化的开展将有力地支撑和推动我国经济的开展[2]石化行的业开展规模与效益是关系我国国民经济增长的重要因素之一,中国石化自动化十五 规划中明确指出,要以信息化带动自动化,应用信息技术改造、提升石化产业,提高信息技术应用水平国家信息化领导小组指出:“坚持面对市场,寻求主导,能为了信息化而搞信息化,要遵照国民经济和社会开展的客观须要推动信息化;要用市场的方法开展信息哈;不能搞没有效益的信息化,更不能搞花架子”但是,当今中国石化行业的信息化相比照拟落后,尤其是加油站我国大多数加油站没有实现自动化,这消耗的大量的人力、物力和财力,按一个加油站六个人计算,每人工资2000算,一个月就得支出工资12000元还不包括吃饭与住宿的费用一年我国光这一方面支出约100亿元这些完全是没有必要的消耗,假如将这些资金用于改良加油站自动加油系统,那么我国加油站的开展将迎来新的机遇与挑战。
基于这样的背景下,加油站实现加油自动化已经成为开展国民经济的迫切须要1.1.2意义加油站是整个石化产业对外营销的窗口我国现有加油站9.3万座,山西省内在册加油站就有3318座,而自动加油站却只有区区的150座,只占山西省加油站总数的4.5%试想一下,假如将这些加油站全部实现自动化会有怎样的意义呢?通过自动化生产、测量、显示、限制等工具,这不仅可以代替人的体力劳动,而且可以代替人的脑力劳动精心整理 加油站自动加油系统的出现,可以实现对加油站加油过程的全自动化,司机通过加油卡或现金干脆进展加油操作,加油机可以通过司机赐予的信息自动对汽车进展加油操作,并干脆显示汽油的单价加油量和总钱数这将可将加油站原有工作人员的数量从6人减至1~2人,从而节约了大量的人力、物力和财力本系统能很好的供给自动加油效劳,具有很好的针对性、科学性及合理性,幸免了盲目[11]自动加油系统与传统的加油系统相比具有很大的优势:(1)运用便利,结算快捷,提高工作效率该系统为广阔用户省去了在排队等待?运用现金、清算、开票的时间,提高了加油站的工作效率,同时为用户供给了更加便利快捷的效劳,提高了企业的效劳水品2)有利于企业加强经营管理。
目前一些工作人员及加油站为了谋取私利,一般不向公司回笼结算,而是按低于国家规定的零售价格二次向市场销售,由于目前没有相应法规的约束,企业无法也无权查处,紧要地影响了单位经营利益另外,所属加油站的个别工作人员也利用油品的售价和低价购进的价差,私自串通,损公肥私采纳自动加油系统后可以有效的杜绝此类状况的发生3)与国际接轨,面对国际化我国自参加WTO以来,经济开展快速,而运输业却存在必须的短板,尤其是加油站的开展该系统的广发运用将进一步促进我国与世界的沟通,促进我国运输业的迅猛开展与壮大总而言之,加油站自动加油系统的研发与运用对现如今的经济开展有着不行过量的促进作用,对从事成油销售和加油效劳的企业均具有重要的意义1.2国内外探究现状1.2.1国内现状由于我国的汽车工业起步较晚,加油站技术还处在比拟楼后的局面截止2005年底我国的自动油站数量几乎为零不仅如此,在一些遥远山区还有相当数量的传统式人工手摇加油站加油难、加油慢、计量不准等问题造成大都市里排长队加油的怪现象这不仅制约了石化产业的生产,也干脆或间接的影响了其他与石化相关行业的开展因此,成品油销售时时被称为石化行业的软肋和瓶颈我国参加WTO以来,中国国内成品油市场面临与国际市场全面接轨,所以中国国有石油公司在油品零售市场的经营理念、营销方式和技术水平上将与国际石油公司全方位碰撞。
比照美国,中国的油品零售行业效率尚有较大差距中国车用油需求量约为5600亿升/年,是美国车用油品消费量的1/8,但是增长特别快速目前,加油站平均单站油品销售量仅为50万升/月,只是美国的1/10,因此成品油零售效率亟待进一步提高到2012年底,中国共有加油站9.3万座在技术装备方面,目前的加油站技术条件有限甚至完全没有技术设施根底,液位仪安装比例小于1.5%,自动加油机更是少之又少,就整个太原市而言,自动加油站只有区区的10座[11]因此,很多加油站还是人工操作、人工结算、人工统计,此外,正在运营中的加油站中尚有为数不少的机型属机械式加油机,无法对其实施自动化的加油监控和管理,对储油罐也没有采纳自动计量、监控系统,加油站透、漏油现象比拟紧要因此,加油站管理混乱,效率低下,损失紧要基于这种现状,实现加油站自动加油系统是必要的1.2.2国外现状自动加油技术在国外已有百年的生产、应用历史进入90年头以来,面对世界石化工业日益剧烈的竞争,全方位降低本钱,提高经济效益,已成为国外各大石化公司孜孜以求的目标对本钱最低化的追求推动了加油站自动化和信息化的进程随着世界跨入21世纪,石化工业也步入成熟期。
经济的全球化和学问经济时代的到来,使石化工业扩大了市场,提高了技术水平,但同时也使竞争变得更加剧烈,赢利空间渐渐变少加油站自动加油系统在西方兴旺国家已经到达了更高的技术水平一般每个加油站有6个加油口,只须要2人轮番值班即可经营而大量的自动加油机那么吸引了更多的客户,只要司机持有IC卡即可自己加油,加油站按国际标准建立,一般司机自主加油,只要2分钟时间即可搞定加油站技术的更新强化了石化企业的竞争实力国外兴旺国家加油站大局部实现了自动加油,能够在各地实现购油、结算等统一业务[3]比方美国的加油站技术含量就很高,80%以上的加油站安装有POS(中控)机和液位仪等设备,其中70%以上的加油站安装了维得路特公司的液位仪和管理系统来监测油罐运用网络管理加油站的进、销、存、付使运营效率大大提高,并削减了油品损失高技术和信息化的普遍的应用使美国出现了很多无人加油站,大约有85%的加油站采纳了自动式油和结算2.系统总体设计2.1加油机的根本概念加油机是为机动车添加燃油的一种自动测量系统功能是指加油机中测量变换器应能正确生成脉冲信号,经计量微处理器将计量数据真实、牢靠、平安的传输到监控微处理器[4]该数据经过监控微处理器处理后存入存储器,并同时送到显示器。
当在实现过程中出现错误时,加油机应被自动锁定,即不能进展加油工作测量变换器是流量计的组成局部,其主要功能是将被测流体的流量转变成机械的或者电的信号,传输给计数器计数器是流量计的组成局部,它按测量变换器的输出信号进展计数,也可以存储在存放器中,以备运用[5]自动加油机的原理是泵吸取地下储油罐的燃油,经油气分别器分气再入测量变换器,经电磁阀及加油枪解除测量变换器输出轴的角位移量经传感器转换成相应的电脉冲信号,由电子计数指示装置显示所输燃油的累计体积量假设为机械计数式加油机,那么测量变换器输出轴的角位移可干脆经机械计数指示装置显示燃油体积[6]潜泵加油机的泵源设在储油罐的燃油中,可向多台测量变换器输送燃油,再经油枪排出,计数指示装置同含泵加油机 一般状况下自动加油机由油泵、油气分别器、流量计〔测量变换器及计数显示局部〕、加油枪、电子系统〔限制、传输、操作、显示〕及电气、管路、报警器、机架外罩等局部构成特殊须要说明的是加油机是处在易燃易爆危急场所工作的输油设备,所以加油机电气电子部件及线路连接都必需按国家防爆标准制造并取证,以确保产品平安如图2.1所示,当自动加油机起先工作时,汽油在油泵作用下,流经油管、油泵、流量计、出油电磁阀、出油管、最终进入油枪,实现加油任务。
其中流量计负责将加油量转变为脉冲信号,经光电隔离后送往单片机,脉冲个数的多少与加油量流速的快慢根本上呈线性关系,只要对脉冲个数技术即可到达加油计量的目的[7]另外,加油机中的油泵电机和出油电磁阀是在单片机的限制下同步动作的,即电机开关的同时电磁阀也开关加油机工作原理框图如图2.1所示油管、油泵输出接口单片机光电隔离流量计LED显示输入限制报警器 数据爱护输出限制 图2.1加油机工作原理2.2自动加油机总体设计思路自动加油机电脑装置主要由传感器模块、限制模块、电源模块、显示模块、键盘及键盘显示模块等组成计量微处理器是限制器的核心,计量微处理器和监控微处理器通过通讯接口协调工作,限制加油机的正常运行定量加油时首先通过键盘输入加油定量值,计量微处理器将数据传送至监控微处理器进展直通显示,然后计量微处理器自动启动电机和大小阀;监控微处理器检测到测量变换装置正常工作时再翻开电机和小阀电机和小阀是由计量微处理器、监控微处理器共同限制的[8]电机驱动油泵加油,流量计转动通过传感器,产生计数脉冲信号(每个脉冲信号代表必须体积的油液),此时计数脉冲信号输入到计量微处理器,经过整形运算和定值变换后,有关数据存储到计量存储器中,同时显示加油数据。
国内外现有的加油机的计量微处理器大局部是由单片机(89C2051,80C32, 87C52等)构成,外加油量检测电路、电机启停限制电路、键盘处理电路(如MM74C922 )、显示电路(如NJU6433 LCD驱动器)、数据存储电路、日历时钟电路(如MC68HC68T1, DS 1302, DS 12C887等)、串行通信电路等[9]限制器的系统框图如图2.2所示主控芯片存储模块晶振时钟电路传感器模块继电器串口通信显示模块键盘 图2.2系统框图2.3自动加油机限制器的要求燃油加油机属于计量器具加油机应具备根本的存储数据功能、实时数据显示及可控操作的配套硬、软件2.3.1存储器加油机应有存储器存储数据存储器应固定坚固,存储数据不易改写和丧失;存储容量应保证正确记录、完整保存和平安传输有不行拆卸;数据要完整牢靠2.3.2专用通信口加油机应有供相关检查人员读取〔但不能改写〕存储器中数据的接口单机工作时需有IC卡传输方式〔用IC卡读取存储器中数据〕,联网时应具有通信传输方式,并采纳措施保证信号数据的平安性2.3.3软件软件是加油功能得以实现的重要组成局部,以简洁管用为根本原那么涉及数据存储功能的程序应采纳严格的加密措施,使其不能被复制和更改。
2.3.4显示屏设计上应便利阅读所显示的数码和字符,并实时显示数据,其显示内容应包括加油量、单价、金额和税额2.4加油机的运用性能1.计量准确度高通过运用说明,在一般状况下,加油机每百升误差仅在±0.3%之间,加装电磁比例阀后的加油机,准确度能到达±0.1%,这大大提高了加油机的准确度2.自动清零功能当须要进展加油操作时,油枪提起的瞬间,加油机显示屏的信息在短时间内能快速清零,这克制了原始机械加油机回零速度慢的缺点,缩短了加油时间,提高了工作效率3.输入数据简明自动加油机的键盘采纳优质的薄膜,键盘上的字符清晰可见,在按键时伴有语音提示,这在很大程度上较低了错误操作率4.显示性能优越显示屏包括单价(元/L)、加油量(L)、金额(元)3项内容在便利加油站工作的同时,也为顾客的付款供给了透亮度这也给加油员供给了定量操作的便利,加油员可以干脆通过显示屏清晰的了解到操作信息各窗口均采纳先进的背光源显示,做到即使在夜晚运用也能清晰的读出显示屏显示的各种数据3. 自动加油机限制器的硬件设计自动加油机限制器包括限制模块、时钟模块、传感器模块、主显示模块、键盘及显示模块、电源模块下面分别对限制器的各个模块进展分析介绍。
3.1限制模块限制模块主要由计量微处理器、监控微处理器、存储器、监控微处理器与计量微处理器通信接口[12]3.1.1计量微处理器计量微处理器是自动加油机的指挥中心,限制着加油机全部功能的实现在加油过程中,接收测量变换装置传来的脉冲信号,并对信号进展处理后发送到监控微处理器计量微处理器的功能有芯片W78E516BP来实现[13]W78E516BP是一个8位的微处理器,它有内在可编程系统MTP-ROM的8位微限制器它的指令集与8052芯片完全兼容W78E516BP包含一个64K字节的主存MTP-ROM和一个4K字节协助MTP-ROM, 512字节的RAM;四个8位双向位地址输入/输出口;还有一个附加的4位可编程端口P4;三个16位定时/计数器;一个串行口;具有2个优先级,8个中断源W78E516BP内的MTP-ROM允许程序内存被编程并允许读操作一旦代码被确认,用户可以爱护代码的平安W78E516BP微限制器有二个工作模式,空闲模式和低电压模式两者是可以通过软件选择的空闲模式关闭时钟处理器,但是允许外围设备的连续操作,低电压模式停顿晶振以到达最低耗电量外部时钟可以随时停顿,在任何状态都不影响处理器。
3.1.2存储电路因为加油机的特殊状况,对数据存储的要求较高,所以主板上用了两片EEPROM来存储数据AT24C01和AT24C02分别是1K和2K容量的串行12C的EEPROM它们的时钟线(SCL)连至计量CPU的P1.6, AT24C01的数据线(SDA )连接至计量CPU的P 1.3 , 24C02的数据线(SDA)连接至计量CPU的P3.5[14]加油过程中的加油数据如单价、本次加油量、加油金额、加油系数、提前关机量、提前关阀量等都须要刚好存入EEPROM,为了确保数据的存放平安,将数据同时存放在AT24C01和AT24C02中对AT24C01和AT24C02的读写操作要符合 IC协议,每次读写之前要对AT24C01和AT24C02送一个字节的吩咐字,下一字节为读写的地址:假设为读操作,吩咐字为十六进制数OATH,然后读出数据,可一次读出8个字节;为写操作,吩咐字为十六进制数OAOH,在地址字节之后干脆送出要写入的数据在实际电路中,计量处理器还扩展了8k的RAM芯片6264,它是随机存取储存器,计量微处理器所计算的加油数据会实时的存入RAM 6264中,以防治在加油过程中断电,加油数据丧失,该芯片外加电池供电,使其断电时加油数据不丧失,加油完毕将完整数据存入AT24C01和AT24C02。
由于外带电池,在突然断电时,它具有爱护数据不丧失的功能,每次启动加油机,它会自动检测比拟当次加油量与上次加油量相关数据,所以它还具有判定上次关机是否正常关机的功能[15]存储器受监控微处理器的唯一限制,能记录至少7年的数据,具有完善的掉电爱护功能,在瞬时掉电时可保证加油数据的平安存放,还具有良好的抗干扰实力,可以确保数据在高温、低温、潮湿、风沙、粉尘、油气污染、强电磁干扰、强辐射等恶劣条件下正常存入和读取[16]存储器功能由芯片AT45DB021来实现,该芯片是串行SPI的EEPROM,容量为1024页,每页264字节,具有硬件数据爱护功能,工作电压为2.7V-3.6V,工作频率最高为20MHz存储器容量应按每条枪不低于128kB的标准选用,以SPI接口与监控微处理器互连3.1.3监控微处理器与计量微处理器通信接口通讯接口专为计量微处理器与监控微处理器之间的通讯供给信道和缓冲区此接口的通讯通过监控微处理器芯片上的四条接口线S1, S2, S3和S4来完成,其中S1为时钟线,S2为数据线,S3和S4为握手线[17]计量微处理器发出恳求吩咐,监控微处理器分析并执行相应的操作,通过握手线来供给应答信号。
监控微处理器在空闲时置S3和S4为高电平,此时,计量微处理器可发送吩咐当把吩咐从第一字节最高位到最终字节最低位的128位数据(长度缺乏补0)打算好后,计量微处理器置低S3监控微处理器发觉S3为低时,在锁定S3为低电平的同时先把S4也置低,再由S1发送移位脉冲,从S2逐位读取吩咐数据位在完成接收并验证无误后,监控微处理器将S3置高,通知计量微处理器己接收完毕,随即执行该吩咐,此时S4仍保持低电平状态当执行完毕后将S4也置高等待接收和执行下一条吩咐吩咐与数据在计量微处理器时钟的限制下送入两片64位移位存放器HCF4517的输入端,将128位数据全部移入后,再在监控微处理器时钟的限制下将数据送入S2,完成数据的传递计量微处理器通过通信接口与监控微处理器进展吩咐和数据的传递3.2时钟电路依据实际状况须要,主控板上计量微处理器连接一片时钟芯片,选取了时钟芯片DS1302 DS1302是一款带有256个字节的时钟/日历芯片,地址和数据通过IZC总线传输在每次对数据字节的读写操作后,内建的字地址存放器自动增加内置的32.768KHZ的振荡器和RAM的前8个字节用于时钟旧历和计数器功能;下来的8个字节可用作报警存放器或当作RAM来运用。
剩下的240个字节都作为RAM由用户自由支配[18]该芯片有以下特点:(1)可作为IBM AT计算机的时钟和日历;(2)与MC 146818B, DS 1287的管脚兼容;(3)自带晶体振荡器及电池;(4)可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿;(5)用二进制码或BCD码代表日历和闹钟信息;(6)有12和24小时两种制时,12小时制时有AM和PM提示;(7)可选用夏令时模式;(8)可以应用于MOTOROLA和INTEL两种总线;(9)数据/地址总线复用;(10)内建128字节RAM, 14字节时钟限制存放器,114字节通用RAM;(11)可编程方波输出;(12)总线兼容中断(/IRQ中断恳求输出);(13)三种可编程中断:①时间性中断,可产生每秒一次直到每天一次中断;②周期性中断122ms到500ms;③时钟更新完毕中断在无外部电源供电条件下能正常走时7年以上3.3传感器模块传感器模块的作用是把固定体积油液按必须比例转换成脉冲个数工作时,流量计在排出固定体积油液的同时,通过输出轴带动传感器内分度回旋转,分度盘上的30(或60>个透光孔依次通过光槽,使光敏导电管和9014三极管不断地导通、截止,从而输出计数脉冲信号[19]。
传感器板是测量变换器的重要组成局部,它由两个光槽、丁一几个9014(三极管NPN型)及假设干个电阻和电容组成图3.1为传感器板电路图图3.1传感器板电路图电流经发光二极管使二极管发光,光敏导电管得到光照导通,9014三极管基极b因高电平导通,电流经9014电阻R11、三极管集电极、放射极e到地,N4为低电平;隔断发光二极管与光敏导电管之间的光路,光敏导电管因失去光照而截止,导致9014三极管基极b低电平截止,N4变为高电平N3产生电流信号的原理与N4一样工作时,流量计在排出固定体积油液的同时,通过输出轴带动传感器内分度回旋转,分度盘上的30(或60)个透光孔依次通过光槽,使光敏导电管和9014三极管不断地导通、截止,从而使N3与N4交替向主板发出计数脉冲信号脉冲计数是电脑加油机主板电路的主要工作,脉冲计数的准确程度关系到整个加油机加油的准确度传感器输出的两路脉冲有必须的相位差,依据此两路信号可判定分度盘的正转与反转,并由此判定出油的流向,刚好发觉漏油的状况[21]经现场测定,在最大流速时,脉冲频率约为70HZ,占空比约为50%,频率较低依据这种实际状况,采纳定时查询的方法来对脉冲进展计数。
可以定时5毫秒对口线扫描,对脉冲计数假设长期扫描未发觉有脉冲,可依据实际状况做出判定(如是否是定量加油数已到或已经挂枪或电机停顿转动等)做出相应的处理[22]3.4主显示模块LCD本身不发光只是调整光的亮度此次运用的LCD显示器是利用液晶的扭曲向列制成,这是一种电场效应,夹在两片导电玻璃电极间的液晶经过必须处理,它内部的分子呈90度的扭曲,当线性偏振光透过,其扭曲构造消逝,其旋光作用也消逝,偏振光便可以干脆通过;当去掉电场后液晶分子又复原其扭曲构造;把这样的液晶置于两个偏振片之间,变更偏振片的相对位置(正交或平行)就可得到白底黑字的显示形式[23]LCD七段显示器除了A-G这七个笔画之外,还有一个公共电极COM它可用静态方式驱动,也可用动态方式驱动前者加直流信号,后者加沟通信号,由于加直流信号将使LCD的寿命削减,故通常均采纳动态驱动方式[10]当加在笔划(A-G)中某个电极上的方波和公共电极(COM)上的方波信号一样时,相对电压为零,那么该笔划段不显示,当加在某笔划电极上的方波和公共电极上的方波信号相位相反时,那么有幅值二倍于方波幅值的电压加在液晶上,该笔划段被选中而显示显示板的作用是将二进制数转换成人们熟识的十进制数据显示出来,显示板主要由LCD液晶显示器、背光块、驱动器、方波产生器、地址安排器、与译码电路组成。
从主板限制CPU输出的5个信号为DS1, DS2, ST1, ST2, CP,其中DS1,ST1, CP送到一个显示板,DS2, ST2, CP送到另一个显示板,所以加在每一个显示板的脉冲信号只有三个:时钟脉冲CP、数据脉冲DS、选通脉冲ST这段时间内,有8个时钟脉冲和8个数据脉冲DS其中数据脉冲中有4个位选码,用于选择显示板中16个数字的其中一位,另4个是BCD码,是被选中的那个数字的内容(数字或字母)在图2-2中,串行数据脉冲DS加到移位存放器(4015)的输入端,在CP和ST的作用下,8个串行脉冲被并行输出,其中4个为位选脉冲,送到4514的输入端,高4位为显示BCD码,送到各个4543的输入端4514为4-16译码器,分别选择16个显示位的一个;4543是带锁存的BCD码到七段码的译码芯片,输出接至液晶显示片的数码端芯片4543是一个BCD-7段锁存/译码/驱动器,它输入BCD码,经锁存、译码后,输出7段显示器的字型码,并带段输出驱动器当该芯片位于静态工作方式时,作多位显示消隐之用当三位数字均为零时,只显示个位零,而十和百位的零不显示,被消隐移位存放器4015的Q0, Q1, Q2, Q3与4514的输入端(A, B, C, D) 相连,地址安排器的输出端S0, S1...... S15分别与4543的第一脚相连,因此依据4514输入端(A, B, C, D)的不同状态,有16种组合,每个周期只能输出一个高电平送给所对应的4543的第一脚锁存端,同时移位存放器的另4位输出信号Q4, Q5, Q6, Q7和每个4543的输入端(A, B, C, D)相连[26]。
另一方面4060产生的振荡信号(方波)被送到液晶的公共端(COM),另一路送给4543的限制输入端,从而保证4543输出端(和液晶相连)的频率和液晶公共端(COM)的频率一样这样在一个周期内只有一个数字(或字母)显示,其余15个数字都不显示,同理其次个周期显示另一个数字,因人眼的视觉作用及发送频率太快,看到的并不是一位一位的,而是整个显示屏同时显示图3.2显示板局部电路3.5键盘及显示模块键盘是单片机系统最常用的输入设备,由排列成矩形阵列形式的一系列按键开关组成操作人员通过键盘可以向CPU输入数据,地址或吩咐本电脑加油机采纳的是扫描式键盘电路图3.3为扫描式键盘电路,四根列线为HD74HC244P的输入端,由于上拉电阻lOKx4的作用,四根列线全部为高电平,当键盘上某个按键被按下闭合时,那么对应的行线和列线短路,此时该列线的输入电平和与之短路的行线输出电平一样[27]单片机在读键时,先使HD74HC374P的第一条行线输出低电平‘6019’,其它行线全部输出高电平“1",读列线的输入电平,如读得某列线输入电平为‘4019’,那么可确认该列线与第一条行线相交处的键被按下假设全部列线输入电平都为‘661’,那么再使其次条行线输出低电平“0”,其它全部输出高电平+1,读列线的输入电平,判定其次条行线上是否有键闭合。
依此类推直至第五条行线这种逐行检查键盘状态的过程称为对键盘进展扫描图3.3 扫描式键盘电路本单片机对键盘扫描采纳程序限制的随机方式,即CPU在空闲时才去扫描键盘CPU对键盘上键的识别,本设计采纳的内部计算法和查表法当确认某一键闭合时,依据该键所定义的是数字键或吩咐键做出数据或吩咐处理,实现人机通讯键显采纳8端液晶显示模块,实现电路与主显实现电路相像,锁存器74LS374的锁存信号由地址译码器74LS138产生[28]3.6电源模块电源一般分为开关电源和模拟电源两种开关电源稳定性好、温漂小、抗扰动实力强,但其构成困难、器件较多,这就造成了它对恶劣环境的适应实力较差,特殊是温度和电磁干扰会对它造成紧要的影响[29]模拟电源构造相对简洁,对恶劣环境的适应实力强,再加上隔离变压器和强、弱电局部的多极滤波,也可以得到很好的抗扰动实力另外,由于一般的稳压管无法供给主控板要求的大功率输出,经过论证我们采纳了由稳压管供给基准电压、由大功率场效应管带动输出的多级方案但由于容量和散热的须要,模拟电源一般体积较大不过,加油机内部空间较为富有,因此这一点并不构成障碍[25]4.自动加油机灵能限制系统接口协议4.1监控微处理器与计量微处理器通信接口协议4.1.1硬件接口监控微处理器与计量微处理器的通讯通过四条接口线Sl, S2, S3 (PIA),S4 (P1.2)来完成,其中S1为时钟线,S2为数据线,S3和S4为握手线。
4.1.2通信协议计量微处理器发出恳求吩咐,监控微处理器分析并执行相应的操作,通过握手线来供给应答信号 监控微处理器在空闲时置S3和S4为高电平,此时,计量微处理器可发送吩咐当吩咐从第一字节最高位到最终字节最低位的128位数据(长度缺乏补0)打算好后,计量微处理器置低S3监控微处理器发觉S3为低时,在锁定S3为低电平的同时先把S4也置低,再由S1发送移位脉冲,从S2逐位读取吩咐数据位在完成接收并验证无误后,监控微处理器将S3置高,通知计量微处理器已接收完毕,随即执行该吩咐,此时S4仍保持低电平状态当执行完毕后将S4也置高等待接收和执行下一条吩咐计量微处理器把S3置低后,假设超过2毫秒仍未发觉S3被置高,那么表示该吩咐没有被正确接收,可做相应处理对于必需等待结果的恳求,计量微处理器应循环等待假设计量微处理器从发送吩咐起等待超过200毫秒,S4仍为低电平,那么表示该恳求被监控微处理器拒绝[30]4.1.3通信吩咐吩咐格式为:长度码+吩咐码+参数+校验码其中长度码、吩咐码和校验码各占1字节,长度码是吩咐码、参数和校验码的字节数之和,校验码是吩咐码与参数逐字节的逻辑和。
在以下吩咐参数中,gun_ num为油枪位编号,OOH表示1号枪,OIH表示2号枪oil, money, price分别是油量(3字节)、金额(3字节)和单价(2字节)的BCD码,高位在前,小数位为2位year, month, day, hour, minute分别是年(2字节)、月(1字节)、日(1字节)、时(1字节)和分(1字节)的BCD码1,上电握手功能:上电时通知监控微处理器加电方式及显示方式吩咐码:OAOH参数:method+display_type+reserve说明:method为上电方式,A3为正常上电,3A为复显display_type为显示方式,OOH为串行段码,0111为串行BCD码,02H为并行BCD码一,03H为并行BCD码二reserve为预留(2字节)计量微处理器在上电运行后应循环发送该吩咐,直到监控微处理器通过握手线应答,表示相互握手胜利2.加油起先功能:通知监控微处理器己经摘枪,恳求加油吩咐码:OATH参数:gun-num说明:监控微处理器接到该吩咐后,开启相应油枪的锁定开关,通过握手线应答3.加油完毕功能:通知监控微处理器加油完毕吩咐码:OA2H参数:gun_num+oil+money+price说明:计量微处理器确认加油完毕油量不再变更时发送该吩咐,监控微处理器接到该吩咐后,锁定加油机,并通过握手线应答。
4.加油数据功能:通知监控微处理器当前正在加油的数据吩咐码:OA3H参数:gun_nuns+oil+money+price说明:为节约处理时间,计量微处理器可不必检测握手线S4的应答信号5.直通显示功能:在非加油状态下监控微处理器干脆显示计量微处理器发来的信息吩咐码:OA4H参数:gun-num+message+flag说明:其中message是要显示信息的BCD码,8字节表示16位信息,依次从单价屏低位依次至油量屏最高位flag代表是否点亮小数点(小数点位置固定),OOH不点亮,O1H为点亮6.查询明细记录功能:在显示屏上显示当次加油的明细记录吩咐码:OA5H参数:gun- num7.查询日志记录功能:在显示屏上显示给定日期的日志记录吩咐码:OA6H参数:gun-num+year+month+day说明:改动一次单价,新生成一条日志记录,采纳延时分屏滚动显示只显示整数局部,小数局部忽视8.查询月累计记录功能:在显示屏上显示给定月份的累计记录吩咐码:OA7H参数:gun_num+year+month说明:只显示整数局部,小数局部忽视9.恳求修改单价功能:计量微处理器恳求修改单价吩咐码:OA8H参数:gun_num+price说明:单价每日至多允许改动两次。
计量微处理器在接到键盘送来的恳求修改单价的恳求后,向监控微处理器发送该吩咐,经应答允许后,方可修改10.设置时钟功能:设置日历时钟生产企业应确保出厂前将时钟设置准确吩咐码:OA9H参数:year+month+day+hour+minute11.调试和检测用油确认功能:在出厂检验和计量部门在安装后的第一次现场检定后执行,记录出厂调试和计量检测用油量等信息吩咐码:OAAH参数:mode说明:mode为OOH表示出厂确认,为OIH表示计量部门在安装后的第一次现场检定确认12.查询时间功能:查询当前日历时钟的时间吩咐码:OABH13.查询累计加油信息功能:查询总累计加油信息吩咐码:OACH参数:gun_num+mode说明:mode为OOH表示总累计用油量,为OIH表示出厂调试用油量,为02 H表示计量部门在安装后的第一次现场检定后的用油量4.2税控加油机显示接口协议在税控加油机显示屏上,单价屏、金额屏和油量屏至多占用显示位4个、6个和6个,每屏自低位至高位分别依次用SO...... S15表示;每一显示位有8个显示段,依次用a, b, c, d, e, f, g和h表示,其中h为小数点[18]。
监控微处理器输出显示数据以兼容Intel MCS-51系列单片机外部存储器写操作时序的方式进展,供给4种数传输方式:①并行BCD码一,②并行BCD码二,③串行BCD码,④串行段码对于前三种方式,每一显示位上的显示值用BCD码表示,位选值用4位二进制码表示,从OOH...... OFH分别选择SO...... S15对于①和②,监控微处理器为显示输出供给2字节的地址单元A和B: A单元的高4位确定显示值,低四位确定显示位;B单元的低2位分别是1号枪和2号枪的显示数据锁存位,高2位分别限制S12和S6后的小数点点亮与否对于③和④,监控微处理器为每条枪的显示供给1字节的地址单元,该单元的低3位分别对应于显示器输入端的时钟线、数据线、锁存线,对该单元的一次写操作至多变更其中一位详细传输协议分述如下:1.并行BCD码一显示输出步骤为:①向B单元写入OFEH选中1号枪显示器或OFDH选中2号枪显示器;②向A单元低四位写入位选值;③向A单元高四位写入显示值;④重复步骤③和②,可更新多个显示位;⑤向B单元写入OFFH,锁存显示数据,完成一次显示输出操作2.并行BCD码二显示输出步骤为:显示输出步骤为:①数据锁存线置为低电平;②向A单元低四位写入位选值;③向A单元高四位写入显示值;④数据锁存线置为高电平,锁存并更新位选值指定显示位上的显示;⑤重复步骤①至④,可更新多个显示位[9]。
3.串行BCD码显示输出步骤为:显示输出步骤为:①显示值和位选值自高至低依次串行移入显示器每一位在时钟线的低电平期间送至数据线,接着由时钟线的上升沿移入显示器;②向锁存线发送一个正脉冲,锁存并更新位选值指定显示位仁的显示值③重复①和②两个步骤,可更新多个显示位4.串行段码监控微处理器的一次显示操作传输全部16个显示位共128个显示段的全部显示数据数据的传输时序自单价的最低位SO起依次至油量的最高位S15止;在每一显示位内,自h段起,依次经g, f, e, d, c, b至a段止128位数据经由数据线依次移入显示器;每一位数据在时钟线的高电平期间送至数据线,接着由时钟线的下降沿移入显示器;全部数据移入显示器后,向锁存线输出一个负脉冲以锁存显示数据并更新显示本系统设计时,依据监控微处理器的运用说明,设计出相应的主显接口电路,显示接口协议采纳方式3串行BCD码5. 自动加油机限制器软件设计5.1 语言选择由于整个程序比拟困难,且计算量较大,用到了较多的浮点数计算,所以程序的编写采纳了C语言由于脉冲频率较低,约为50HZ,所以对速度、时钟的要求并不是很高,所以选择C语言还是可以完成要求的[7]。
对于大多数51系列的单片机,运用C语言这样的高级语言与运用汇编语言相比具有如下优点:(1)不须要了解处理器的指令集,也不必了解存储器构造2)存放器安排和寻址方式由编译器进展管理,编程时不须要考虑存储器的地址和数据类型等细微环节3)指定操作的变量选择组合提高了程序的可读性4)可运用与人的思维更相近的关键字和操作函数5)与运用汇编语言相比,程序的开发和调试时间大大缩短6) C语言的库文件供给了很多标准的例程7)通过C语言可实现模块化编程技术,从而可将已编制好的程序加到 新程序中8) C语言可移植性好且特别普及,C语言编译器几乎适用于全部的目标系统,己完成的工程可以很简洁的转换到其它的处理器或环境中与汇编语言相比,C语言在功能上、构造性、可读性、可移植性、可维护性上有明显的优势,易学易用,因此出现了特地用51系列单片机编程的‘C语言—C51’,目前最先进的、功能最强大的C51编译器是Keil C515.2软件流程图程序起先运行后,在与税控芯片上电握手胜利后,对各局部进展初始化然后对提枪信号和键盘进展扫描假设检测到提枪信号,那么开启电机和电磁阀,起先加油,当加油完毕,检测到挂枪信号后,关闭电机、电磁阀、并对加油数据进展处理、累计、存储。
当检测到有键按下后,依据键值,调用不同的子程序作相应的操作由于键盘实现的功能较多,所以用到了大量的组合键,在编程时要用到多种标记位流程图见图5.1加油起先提枪上电握手初始化起先 否 是按键 否挂枪 否 是按键处理 是加油完毕数据处理 存储 图5.1 加油流程图主程序设计:void main(){uchar i,j; // 初始化bit ok;XBYTE[0x4000]=Oxff; P1=Oxff; P3=Oxff; EA=1;EXO=1;ITO=1;ET1=l;TMOD=0x10;for(i=O;i<4;i++) numbui=0;keyflag=1;dotflag=0x20;dlflag=0;sflag=1;num=0;watchdog();initfunQ;//加油参数初始化函数for(i=O;i<10;i++)qing();XBYTE[0x8067]=6;XBYTE[0x8068]=OxaO;XBYTE[0x8069]=Oxa3;XBYTE[Ox806a]=0x1;j=Communication();watchdog();break;}while(!j ) { watchdog(); displaybufj[0]=Oxf7; displaybufj[1]=0x00; displaybufj[2]=0x00; displaybufj[3]=0x00; displaybufj[4]=0x01; keydisplay(); while(l);//上电握手//握手不胜利处理displaybufj[0]=OX10;displaybufj[1]=Oxff;displaybufj[2]=OxOf;displaybufj[3]=Oxof;displaybufj[4]=0x00;keydisplay();//握手胜利处理aa:ok=checkcpu(); if(!ok) initfun(); XBYTE[0x4000]=Oxff; watchdog(); i=XBYTE[0x4000]; if((-i)& 1) if((keylock==Oxaa)ll(sflag))goto bb; if(numcount!=0) keytbcd();//检查CPU假设发觉有误,那么初始化加油函数/****提枪信号****/ for(i=O;i<3;i++)dlbui+1=numbui;if((dotflag&OXfD)==Ox10)dlflag=1;if((dotflag&OXfD)==Ox20)dlflag=2;if((dotflag&OxfD)=Ox40)dlflag=3;numcount=0;dotflag=dotflag&OXfD;else dlflag=0; } keyflag=0; addoilfun(dlflag); num=0; displaybuf[0]=dotflag&OxfD; displaybufj[1]=Oxff; displaybufj[2]=OXOf; displaybufj[3]=OxOf; displaybufj[4]=0x00; keydisplay(); } else sflag=0;bb: key_manage(); goto aa;//加油程序//键盘处理程序5.3键盘软件设计本设计通过键盘可以实现各种查询和设置功能,键功能的主要特征是串键,其中复合键操作。
键盘分布如图5.2所示 累计 找零 设置 查询 时重现 1 2 3日切换 4 5 6 月文字 7 8 9 退出 零 . 0 确认 图5.2 键盘分布键盘上每一个键都有一个自定义的键值对应由键盘上的位置码得到各自的键值通过查表得到该表放在数组keytab[20]串键的处理方法采纳标记位,标记位信息在字节变量Keyflag内,定义如下:Keyfla一个字节,用来表示8个复合键是否被按下"1”代表己经按下,"0”代表没被按下函数key_scan()检查是否有键被按下,并返回被按下键的位置码,位置码二行号*4十列号,由位置码查表keytab[]得到键值函数的实现采纳前面介绍的行扫描法:/*********键扫描************************/ucharkey scan(void) { uchar val,val,hnum=O,lnum=O,i; watchdog(); P15=1; val=Ox XBYTE[keycap]=val; delay(200); val1=XBYTE[keyrp]; if((val 1&OxOf)!=OxOf) XBYTE[0x4000]=Oxfb; for(i=O;i<1 O;i++) delay(255); XBYTE[0x4000]=Oxff; if((XBYTE[keyrp]&OxOf)!=OXOf) { val=0x01; while((val&0x20)!=0x20) { XBYTE[keycap]=val; delay(200); if((XBYTE[keyrp]&OXOf)!=OxOf) val_1=(XBYTE[keyrp]&OxOf)1OxfD; for(i=O;i<4;i++) { val=val+1;1; if((val l&OXOf)=OxOf)break; lnum=lnum+l; } hnum=hnum+1; valesh=(hnum+1)+lnum; XBYTE。