版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目:基于单片机的汽车燃油量检测及显示系统设计页引言改革开放以来,特别是近几年我国汽车工业发展势头强劲。据中国汽车工业协会统计,去年1至7月,汽车全行业完成工业总产值3723.82亿元,同比增长29.44%:主要经济指标增长都比较大,实现了增产增收。汽车产业作为国民经济支柱产业的地位越来越突出。产品销售收入3598.88亿元,同比增长31.05%:利润总额221.90亿元,同比增长51.14%。去年交通运输设备制造业对工业增长的贡献率首次跃升至40个工业行业之首。以汽车制造业为主的交通运输设备制造业已取代电子信息通信业,成为名副其实的领头羊。随着市场需求的不断扩大,我国汽车工业的发展潜力也非常之大。据有关部门分析,近几年我国汽车消费市场的消费结构已发生了很大变化。载货汽车的需求量仍将持续增长,农村汽车市场对轻、微型客货车需求也将会有较大增长。特别是轿车、客车,尤其是微型客车的需求量将会有较大增长,市场份额将更进一步的提高。随着国家有关鼓励私人购车政策的出台,预计个人购车比例将逐年快速增长。汽车燃油量检测及显示系统是汽车电子电器系统的重要组成部分。目前,大部分汽车油箱内燃油量的检测还是运用传统机械浮子的方法,虽然传统机械浮子的运用广泛,但是这类传统方法的缺点也是不能够忽视的,其缺点在于当路面颠簸,拐弯,启动,刹车,加速等情况引起液面升降发生时,会使机械浮子的随着液面升降而升降,从而使液位检测数据起伏,从而导致油表指针的晃动,进而导致燃油存量显示精度低。大多数汽车的燃油显示仪表依旧是三刻度式仪表,但是由于传统机械浮子的限制,从而将导致燃油量读数的低精度,低精度导致了汽车驾驶员对汽车现存燃油量读取出现误差,判断是否该添加汽车燃油时只能依靠经验加油,并不具有准确性,所以有可能造成汽车的抛锚,造成交通堵塞,甚至造成安全事故的发生。因此设计一种新型的高精度的汽车燃油量检测及显示系统是非常有必要的,乃大势所趋,同时因为随着社会的发展,机械设备必然将越来越智能化,简单化,所以新型的高精度的汽车燃油量检测及显示系统将会具有非常广阔的市场。
第1章绪论世界上第一辆汽车是由德国人卡尔·本茨(1844~1929)于1885年10月研制成功的,一举奠定了汽车设计基调,即使现在的汽车也跳不出这个框架,随着汽车行业的发展。汽车成为了“改变世界的机器”、推动社会进步的车轮。在今天,汽车已经成为我们日常生活中不可或缺的重要组成部分。汽车的普遍使用,改变了经济社会结构,形成一整套新的经济、文化、生活体系。汽车虽然很大限度地改善人的生活质量,推进社会进步,促进了经济发展。但是汽车行业的快速发展同时也付出了资源和环境的代价。因为石油是不可再生资源,从而导致了油价高居不下和全球能源危机。目前,大部分汽车油箱内燃油量的检测还是运用传统方法:在汽车油箱内由一个浮子连接金属杆,尾部是一个可移动接点连接到一个可变电阻,然后连接到仪表盘的油量表,随着油箱内液面地变化,影响浮子高度,再由可移动连接杆,导致可变电阻阻值发生变化,最终仪表盘上显示出现存的燃油量。但是这类传统方法的缺点在于当路面颠簸、启动、加速、刹车拐弯等情况引起的液面升降,导致浮子高度的变化,进而会导致油表指针的晃动,影响燃油存量显示精度。同时大多数汽车的燃油显示仪表依旧是三刻度式仪表,但是由于传统机械浮子的限制,从而将导致燃油量读数的低精度,低精度导致了汽车驾驶员对汽车现存燃油量读取出现误差,判断是否该添加汽车燃油时只能依靠经验加油,并不具有准确性,所以有可能造成汽车的抛锚,造成交通堵塞,甚至造成安全事故的发生。因此。因此本题目的目的在于采用以单片机为核心的汽车燃油量相对精准检测及显示系统的设计。在不同行驶状况下,燃油液位的起伏大致满足正态分布,于是通过求出一段时间内的液位均值从而求得较精确的燃油液位,从而换算出此时的汽车燃油量,相比传统的机械浮子具有较高的精确度,同时针对不规则形状的油箱也仅需仅仅改变单片机系统而不需要对硬件进行改动。1.1本文研究背景目前国内许多研究所和大学以及汽车生产企业都在对汽车燃油量检测及显示进行攻克。其工作主要方向分为单片机控制模块和信号采集模块。信号采集模块是为了获得更精确更实时的信号,单片机控制模块的任务是开发出更精确性能更加完美的汽车燃油量检测及显示系统。信号模块的关键是传感器。我国研究团队各自采用了不同的传感器进行研究。参考发表的研究成果,重庆仪表研究所提出了一种采用磁敏油位传感器采集油位信号的方法;宁波工程学院的研究人员提出了一种根据电控喷油发动机的喷油特性采集信号的方法;山东省公会管理干部学院的研究者提出了采用电容式传感器来采集油量信号进行研究的方法;上海交通大学的研究者则提出采用了压力式传感器采集信号的方法。上海交通大学杨希介绍了由压力传感器、单片机等组成的测量系统硬件设计,给出了系统软件控制流程。实验结果表明该系统相较于传统浮子具有更好的稳定性及准确度。国家仪表功能材料工程技术研究中心刘成超提出了一种基于单片机的数字化的汽车油量测量系统,其实验表明该系统与传统的燃油量测量及显示系统相比,具有更直观、可靠性好、寿命长、精度高的特点。事实上这类高精度的基于单片机的汽车燃油量及显示系统设计已近有所运用,但是其运用范围非常之小,仅仅运用于科学邻域或者技术研究和造价昂贵的车辆,其根本原因是这个系统的造价过于昂贵,不适合普通车辆的制造以及普及。各个国家的研究机构以及汽车制造企业的面临的难题在于低造价同时拥有高精度或者更高精度的特性。1.2本文研究目的及意义虽然传统机械浮子和三刻度式仪表的运用广泛,但是其缺点也是非常明显不可忽视,传统机械浮子、方法的缺点在于当路面颠簸,启动,刹车等情况引起的液面升降时,会导致油表指针的晃动,从而影响燃油存量显示精度。同时三刻度式仪表的优点在于直观,但是其低精度的问题也不可忽视。低精度导致了汽车驾驶员只能依靠经验加油,并不具有准确性,所以有可能造成汽车的抛锚,造成交通堵塞,甚至造成安全事故。本文研究的目的以及意义在于通过单片机系统设计一种更加精确直观的燃油量检测及显示系统,来克服传统机械浮子和三刻度式仪表低精度的缺点,能够使驾驶员判断燃油量时更加快捷方便,简化驾驶员的工作以及减少由于燃油问题导致的道路危险状况的发生。1.3本文研究发展趋势如今此类汽车燃油量检测及显示系统主要运用与科学领域和技术研究以及名贵汽车之上,将面临的难题是造价问题以及使系统更加精确的问题。燃油量检测及显示系统未来的发展趋势必将更加智能化,检测系统会更加精确、更加快捷、更高的稳定性以及信息采集更高的可靠性。同时将会减小单片机系统的成本,需求的是更小成本但具有更好的采集性能,最终在数字显示器上进行精确显示而不是如今使用的三刻度式仪表。同时能在小型造价车辆于中型造价车辆上得到运用。1.4本文研究主要工作基于传统机械浮子和三刻度式仪表的精度较低的问题,设计一种高精度的基于单片机的汽车燃油量检测及显示系统。需要对市场现状、各给企业以及研究机构已完成的突破进行查找以及了解、进行中外文献的查找与阅读以及整合,最终得到设计思路以及设计方案,然后进行硬件的选择,完成电路图的绘制,完成软件编程无误,进行实验以及仿真以及完成实物的制作,对实验内容进行总结得出结论,最终完成此篇内容的编写。①市场现状的了解②相关文献的查阅③文献整合④得出设计方案⑤硬件电路图的绘制⑥软件编程⑦进行仿真与调试⑧得出实验结论⑨论文编写1.5本章小结本章介绍了课题以及汽车燃油量检测及显示系统行业现状以及当前系统所存在的缺点,大学和研究所的一些实验与突破以及行业未来的发展趋势,同时介绍研究本课题的目的以及意义,最后介绍了本课题需要完成的工作。
第2章燃油量检测及显示系统设计方案本设计区别于传统汽车燃油量的检测的区别在于通过液压传感器,单片机系统,数字显示器代替传统的机械浮子以及三刻度式仪表。燃油量的检测是通过在汽车油箱底部中央安装压力传感器完成瞬时液压信号的采集,然后通过A/D转换,将实时数字信号输入单片机系统,通过单片机系统进行燃油量液位均值的计算以达到提高精确度的作用,对于形状规则的油箱通过以均值液位乘以油箱底面积便可换算出实时燃油量,对于形状不规则油箱可以在形状不规则处划此时的液位范围提前测试出此范围内的体积,液位在此范围内直接提取此液位的体积便可,形状规则处可用函数进行运算,工作完成之后在数字显示器上得以显示。2.1系统功能要求⑴精确采集信号同时通过求均值得到更精确的液位从而得到精确的燃油量。⑵在燃油量不足时声光报警提醒驾驶员燃油量不足。⑶燃油量在数字显示器上进行显示。⑷设计思路要有可实现性,通过模拟实验进行验证。2.2汽车燃油量检测及显示系统技术方案本次设计的系统采用在油箱底部中央安装一个压力传感器来对液位高度进行采集,通过单片机系统求得液位均值,通过压力公式P=ρgh,算出液面高度H,再与油箱底面积相乘,得到体积,最后算出燃油量的多少。通过单片机系统算出短时间内的燃油液位均值,从而得到相对精确的汽车燃油量,从而达到更加精确的汽车燃油量检测,最后再将数据反映在数字显示器上。系统由压力传感器、A/D转换器、单片机系统、输出装置、数字显示器组成。图2-1为本课题系统设计框图图2-1系统设计框图2.3汽车燃油量检测及显示系统基本组成油量检测通过液位传感器进行信号采集,经过一系列计算得到实时燃油量,然后通过数字显示系统进行显示,显示系统使用LCD1602显示器,其特点在于微功耗、体积小、显示内容丰富、超薄轻巧。检测系统通过传感器进行液位检测,因为工业及液压传感器液位的限制,所以程序仿真通过开关进行输入信号模拟,实物通过自制的液位传感器进行模拟,实物液位传感器有两个液位传感器,传感器A进行液位的测量,同时计算出2s内的液位均值,以求更加精确的液位值,另一个传感器B进行实时油量检测,检查汽车有无漏油情况发生。2.4使用单片机STC89C51进行输入信号处理当传感器采集信号之后,由A/D转换器将电信号转化为数字信号后,输入单片机STC89C51,经过单片机运算之后,若有漏油情况或油量不足时进行声光报警同时将信号输入至显示器LCD1602进行显示。2.5本章小结本章介绍了本课题设计以及实物需要满足的功能要求,这是思路的最起始的由来也是最后设计结果的验证,然后对设计思路进行了规划给出程序框图以及将设计需要的元件以及模块进行了选择和列举。
第3章燃油量检测与系统硬件的设计与元件选择3.1传感器制作由于液压传感器的种种限制条件,在实物制作时,传感器使用自己制作的模拟传感器进行模拟信号输入。本次设计所采用的水位传感器和电路连接如图所示,传感器由六根附铜线组成,它的工作原理是运用了水能导电的特性,最长(第一根)的检测线作为电源正极,剩下的五根线作为液位检测线,即为这个传感器设计了五个检测级别。五个检测级别与五根检测线依次对应,当检测线与单片机端口连接工作时,若此时水位达到任何一根检测线时,正极通过水与检测线形成回路,电源正极得以传输高电平给系统。其工作原理图如图3-1自制传感器原理图所示:图3-1自制传感器原理图3.2单片机选择本课题单片机选择STC89C51,STC89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash3.2.1主要特性主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。3.2.2引脚功能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.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在线系统编程用)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口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能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)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。STC89C51引脚图如图3-2所示:图3-2STC89C51引脚图3.3本章小结本章介绍了所选用的芯片STC89C51同时展示了STC89C51引脚图并介绍了芯片的功能以及其的优点特性。同时介绍了模拟液压传感的所设计的传感器,介绍了它的原理以及满足的功能。
第4章显示器的选择4.1数字显示器与三刻度式仪表优缺点比较全数字仪表盘与三刻度式仪表盘相比,优点在于:首先高端的全数字仪表盘的响应速度要快于传统三刻度式仪表盘,其次全数字仪表盘的显示内容更加丰富,可以定制化。然后与传统三刻度式仪表相比更加智能化,科技感十足。而且可以通过明显的燃油量数字变化判断此时有关汽车油箱内燃油的实时情况同时具有高精度,其缺点在于全数字仪表盘观看时不如三刻度式仪表盘直观。4.2数字显示器型号选择数字显示器选择LCD1602,LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形。LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。LCD1602采用标准的16脚接口,其中:第1引脚:GND为电源地第2引脚:VCC接5V电源正极第3引脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。第4引脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5引脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6引脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第7~14引脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。第15引脚背光正极。第16引脚背光负极。LCD1602特性:微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。LCD1602引脚图如图4-1所示。图4-1LCD1602引脚图4.3LCD1602液晶资料主要技术参数如表4-1所示表4-1LCD1602液晶参数显示电容16×2个字符芯片工作电压4.5-5.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95×4.35(WXH)mm接口信号说明如表4-2所示表4-2LCD1602接口信号编号符号引脚说明编号符号引脚说明1VSS电源地9D2DataI/O2VDD电源正极10D3DataI/O3VL液晶显示偏压信号11D4DataI/O4RS数据/命令选择端(H/L)12D5DataI/O5R/W读/写选择端(H/L)13D6DataI/O6E使能信号14D7DataI/O7D0DotaI/O15DLA背光源正极8D1DotaI/O16DLK背光源负极外形尺寸如图4-2所示图4-2LCD1602外形尺寸4.4液晶显示电路液晶显示模块LCD1602采用HD44780控制器。HD44780内置了字符产生RA(CGRAM)、字符产生器(CGROM)、显示数据RAM(DDRAM),具有简单而功能较强的指令集,字符可以实现闪烁、移动等功能。HD44780控制器包括两个8位寄存器、指令寄存器(IR)和数据寄存器(DR)、字符发生器RAM(CGRAM)、显示数据RAM(DDRAM)、忙标志(BF)、地址计数器RAM(AC)。寄存指令码就存放在IR中,不能读出只能写入;而寄存数据存放在DR中,内部操作自动写入到CGRAM和DDRAM中产生数据。BF为高电平时,液晶模块处于内部处理模式,不会响应外部操作指令和接受数据。CGROM由8位字符码生成5×7点阵字符160种和5×10点阵字符32种。DDRAM就是用来寄存待显示的字符代码,共有80个字节。在此电路模块中可以给用户提供当前消毒柜的温度、工作状态等信息显示,方便用户便于观看。在本设计中排阻RESPACK-8接在AT89C51单片机的P0口,因为P0口的内部没有上拉电阻,因此不能输出高电平,所以要接上拉电阻。一般上拉电阻选择10k。排阻RESPACK-8接单片机中是为了驱动,由于电流不够,加排阻来增加电流,排阻中有9个引脚,其中一个引脚接VCC。P0口可以作为I/O口使用,也可以作为地址/数据总线使用。这里P0口作为I/O口使用,在输出数据时,输出级是漏极开路电路,所以必须要外接上拉电阻。液晶显示电路如图4-3所示。图4-3液晶显示电路液晶显示LCD1602是为+5V的电压驱动,它可以显示两行,屏幕每行可以显示16个字符,带背光。因此就相当于32个LED数码管,并且不能显示汉字,内部含有128个字符的ASCII字符集子库,只有并行接口,没有串行接口。它的工作电流为2.0mA(5.0V),显示容量为16×2个字符。1602型液晶接口信号说明如表4-3所示。表4-31602液晶接口信号说明引脚号管脚名称引脚说明引脚号管脚名称引脚说明2VDD电源+5V10D3数据总线3V0液晶显示对比度调节段11D4数据总线4RS数据/命令选择端(H/L)12D5数据总线5R/读写选择端(H/L)13D6数据总线6E使能信号14D7数据总线7D0数据总线15LEDA背光电源正级(接+5V)8D1数据总线16LEDK背光电源正级(接地)上述中,当V0对比度最弱时接+5V电源,当V0对比度最强时接地,可能会产生“鬼影”时对比度过高,因此在使用时可以使用一个10kΩ的电位调节器来调整其对比度。当使能信号为1时,表示读取信息;当使能信号从1变为0时,执行命令。当RS为1时,表示数据寄存器;当RS为0时,表示指令寄存器。当R/为1时,表示读状态;当R/为0时,表示写状态。LCD1602的字符液晶命令集如表4-4所示。表4-4LCD1602的字符液晶命令集命令指令编码RSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏0000000001光标归位指令000000001*字符进入模式00000001I/DS显示开关控制指令0000001DCB显示光标移位000001S/CR/L**功能设定指令00001DLNF**设置CGRAM地址0001CGRAM地址(ACG)设置DDRAM地址001DDRAM地址(ADD)忙信号/地址计数器01BF由最后写入的CGRAM/DDRAM地址设置指令设置的CGRAM/DDRAM地址CGRAM/DDAM写数据10写入1字节数据,需要先设置RAM地址命令中复位显示器的功能是清屏,光标归位,光标移动到左上方。命令中光标归位的功能是地址计数器(AC)清零,DDRAM的数据不变,光标移动到左上角。命令中字符进入模式的功能是设置字符进入时的屏幕移位方式,I/D=1表示写入或读出新数据后,AC值自动加1,光标右移;I/D=0表示写入或读出新数据后,AC值自动减1,光标左移。命令中显示开关的功能是设置显示开关、光标开关、闪烁开关。其中,D=1显示屏开,D=0显示屏关;C=1表示有光标,C=0表示无光标;B为高电平时表示光标闪烁,B为低电平时表示光标不闪烁。命令中显示光标移位的功能是设置字符与光标移动。其中,S/C=1时,RL=0则字符和光标左移,否则右移;S/C=0时,RL=0则光标左移,否则右移。命令中功能设置的功能是设置DL、显示行数、字体。其中,DL=1时数据长度是8位;DL=0时表示D4~D7共4位,分两次送1字节。N=0为单行显示,N=1为双行显示。F=1为5×10点阵字符,F=0为5×7点阵字符。.命令中设置CGRAM地址的功能是设置6位的CGRAM地址以读/写数据。命令中设置DDRAM地址的功能是设置7位的DDRAM地址以读/写数据。命令中忙信号/地址计数器的功能是读忙标志及地址计数器。其中,BF=1时,LCD忙;BF=0时,LCD就绪。命令中CGRAM/DDRAM写数据的功能是向CGRAM/DDRAM写入一字节数据并递增或递减AC。命令中CGRAM/DDRAM读数据的功能是从CGRAM/DDRAM读取一字节数据并递增或递减AC。4.5本章小结本章介绍了全数字仪表盘与传统三刻度式仪表相比较数字显示器的优点,以及介绍了所选择显示器的型号是LCD1602,以及它的功能与特性,对显示器LCD1602器件引脚功能进行了介绍。第5章软件设计5.1软件编程通过Keil文件进行编程。其内容要包括1s内检测液位的均值然后通过单片机系统换算然后通过显示系统显示,燃油量不足时进行燃油量不足声光报警,液位迅速下降时的燃油漏油声光报警功能,在所有问题解决完毕后生成hex文件。编程流程图如图5-1所示图5-1编程流程图5.1.1软件简介Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译。5.2软件简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、软件仿真调试功能强大。5.3系统测试系统测试硬件平台组装和程序加载的完成,并不代表我们的工作结束。想要深入全是项重要的工作测试的目的是希望能以最少的人力和时间测试的目的就是希望能以最少的火、人力和时间发现潜在的各种错误和缺陷。应根据开发各阶段的需求、设计等文档或程序的内部5.4本章小结本章对所运用到的软件进行了介绍,以及通过各个软件需要完成的工作以及要求。第6章仿真与实物6.1电路功能介绍仿真电路需要完成的功能应该与任务书与实物和现实所需功能进行符合,同时这也是任务的思路以及设计最初始的开端。仿真电路以及实物需要满足以下功能:⑴燃油量正常测量⑵燃料油不足时声光报警⑶燃油量过高时声光报警⑷油箱漏油时声光报警6.2系统原理图通过对任务书的理解以及中外文献的阅读,得到了初步的设计方案,对元件进行了了解以及选择,然后运用Protues软件进行电路图的绘制同时运用Kiel软件进行软件编程,当程序无错误时生产文件导入电路图,对电路进行测试,当仿真电路图达到所需要求后,最终得到了电路仿真图。图6-1系统原理图由于液位传感器仿真的限制,使用液位传感器通过滑动变阻器进行模拟,通过最左端滑动变阻器模拟此时的燃油量输入信号,滑动变阻器最低时设置为燃油量不足,最高时设置为燃油过多,在最低和最高为正常燃油量。6.3燃油量正常时显示电路汽车在正常行驶中,能汽车燃油量显示系统让驾驶员了解到此时的燃油量,本设计通过滑动变阻器进行燃油量液位测量的模拟,在燃油量正常时,系统能正常使用,数字显示器能够正确显示出此时的燃油量。燃油量正常显示图如图6-2所示图6-2燃油量正常电路图当滑动变阻器划片处于最低与最高之间时,即液位传感器检测出此时燃油液位,输入至单片机系统,单片机系统判断出此时燃油量属于正常情况,蜂鸣器不发出声音,同时数字显示器LCD1602显示出此时燃油量。6.4燃料油过高时声光报警在驾驶员进行加油时,如果显示系统出问题,使驾驶员读取到的燃油量产生误差,导致加油时所加的量出现错误判断,此时如果邮箱内燃油量超过警戒刻度,系统运行报警程序。仿真通过滑动变阻器阻值进行模拟,滑动变阻器调至最高时,单片机系统判断此时燃油量过多,系统运行声光报警功能。燃料油过多时声光报警图如图6-3所示图6-3燃油量过多声光报警图当滑动变阻器划片处于最低时,即液位传感器检测出此时燃油液位,输入至单片机系统,单片机系统判断出此时燃油量过高,蜂鸣器发出声音进行报警,同时数字显示器LCD1602显示出此时燃油量。6.5燃油量不足时声光报警在驾驶员行驶过程中,当汽车燃油量不足时,汽车电路系统应该提醒驾驶员此时油箱内燃油量不足应该添加燃油,避免汽车半路抛锚导致的交通堵塞,甚至是交通事故的发生。仿真电路通过滑动变阻器阻值进行液位检测模拟,当滑动变阻器调到最低时,单片机系统判断此时燃油量不足,运行声光报警功能。燃油量过高时声光报警电路图如图6-4所示图6-4燃油量不足声光报警图当滑动变阻器划片处于最高时,即液位传感器检测出燃油量液位,将燃油量信号输入至单片机系统,单片机系统判断此时燃油量过高,此时蜂鸣器发出声音进行报警,同时数字显示器LCD1602显示出此时燃油量。6.6油箱漏油报警电路在驾驶员行驶过程中和停止时,当汽车油箱故障出现漏油情况时,汽车电路系统应该提醒驾驶员此时油箱出现了漏油情况,发出报警。电路仿真通过调节漏油速度进行模拟,当漏油出现时,系统运行声光报警功能。油箱漏油报警电路图如图6-5所示图6-5油箱漏油报警电路图当滑动变阻器划片处于最低与最高之间,即液位传感器检测出燃油量液位,将燃油量信号输入至单片机系统,单片机系统判断此时燃油量正常,同时漏油速度由开关进行模拟信号,漏油速度过快,将信号输入至单片机系统,单片机系统判断此时漏油,蜂鸣器发出声音进行报警,同时数字显示器LCD1602显示出此时燃油量。6.7燃油量正常实物当汽车正常行驶燃油无漏油情况,燃油量无不足或过多情况时,显示器显示此时的燃油量,未来展现实物在不同液位时有不同的燃油量,于是列举多个图片,进行实物功能验证。实物演示图如6-6,6-7,6-8,6-9所示图6-6燃油量足够实物图图6-7燃油量足够实物图图6-8燃油量足够实物图图6-9燃油量足够实物图6.8燃油量不足时进行声光报警当燃油量不足时,实物功能应该有声光报警,燃油量显示。从而提醒驾驶员应该添加燃油,以避免燃油量不足的情况发生。其实物图如图6-10所示图6-10燃油量不足声光报警6.9油箱漏油实物在汽车行驶或者停止时,汽车油箱如果出现漏油情况,系统应该运行声光报警功能,提醒驾驶员此时油箱出现故障,应及时处理,防止意外发生。油箱漏油实物图如图6-11所示图6-11油箱漏油报警实物图6.10本章小结本章进行了仿真电路图的各个工作状态的演示以及介绍,同时演示了实物的各个工作状态以及实物图。
第7章结论本课题的研究对象是现代文明的标志汽车,这是一个与科技文明发展与智能化普及有关的命题,它在我们的日常生活中扮演着很重要的角色。通过对任务书的解读和对参考文献的查找与阅读以及市场现状、研究背景进行了一定的了解,为了解决传统的汽车的燃油量检测及显示系统低精度的缺点,从而设计了一种高精度的汽车燃油量检测及显示系统。并且对设计项目的市场有一定良好方向的期望,随着科技与人类需求的提高,汽车发展势必越来越简易以及智能化,所以此设计在未来将会有良好的发展范围以及市场。论文主要对以下方面进行了研究⑴对燃油检测及显示系统进行了总体方案和功能模块的设计,从电路图设计、代码编程、器件选择、到仿真以及实物模拟,力求做出完美的设计⑵电路图设计,对电路进行层层分析,力求达到任务书所要求。⑶程序编程,力求用最短最简洁的程序实现燃油量检测以及燃油量显示系统的设计。⑷实物制作,完成实物的制作,对设想进行模拟,测试设计能否完成。⑸误差测试,对实物进行测试,排除误差后,对实验结果进行分析。通过几个月的文献阅读,相关知识学习,逐步实现了任务书所要求的功能,能够进行燃油量的精确检测、低油量时声光报警、数字显示器进行显示。在这几个月的学习以及设计中,深深知道自己知识储备的不足,但是经过学习逐渐完成了本次的设计,对所学知识有了一个整理以及活学活用。虽然在过程中遇到的困难有很多,但是这股不断专研不断学习的精神将会是一笔难得的财富,让自己明白了任何阶段来说都有用的一个词:“学而无涯苦作舟”面对困难,要去克服它,然后就会发现一片新的天地。参考文献杨希.一种基于单片机系统的汽车燃油量测量系统设计%DesignofMeasurementSystemforAutomotiveFuelAmountBasedonSCM[J].汽车技术,2007,000(011):29-31.程越,谢佩军.基于AT89S8252单片机的汽车瞬时燃油油量检测系统的设计[J].微型机与应用,2009(20):30-32+39.刘成超.一种汽车燃油量测量及数字显示系统的设计[J].装备制造技术,2011(01):79-81.马梦克,潘俊龙.基于单片机的燃油量系统检测设计[J].科技致富向导,2014(11):200-200.程越.AT89S8252单片机在汽车瞬时燃油油量检测中的应用[J].中国仪器仪表,2009(05):67-69.王秀.MCUSimulationTeachingBasedonProtein%基于Proteus的单片机仿真教学的研究[J].科技信息,2010,000(035):180,186.胡丹峰,徐清源,施国梁.PIC单片机在汽车燃油油量检测中的应用[J].仪器仪表用户,2005(02):46-47.彭伟.单片机C语言程序设计实训100例:基于AVR+PROTEUS仿真[M].2010.??IkerH,HüseyinCanbolat.Conceptforanovelgrainlevelmeasurementmethodinsilos[J].ComputersandElectronicsinAgriculture,2009,65(2):258-267.Microchip.PIC16F87X用户手册[EB/OL]林嘉.基于89S52的LCD1602程序设计[J].电脑知识与技术,2012(26):214-216.
致谢在此,在论文结束之际,我要向我的两位导师蒋雪琴老师和笪贤进老师表示感谢,在论文的编写方面以及实物的设计,论文的编写上给我提供了很多帮助,帮助我解决了很多问题,在资料的查阅上、整理上、课题的设计上都给了我很多启发。在此感谢成都工业学院电子工程学院的老师们,在我求学期间给予的帮助与耐心的教导,感谢老师无私的奉献,悉心教导,从而帮助我开阔自己的眼界、制定自己的未来、能成功的完成学业。同时感谢我的室友宋东伦、赵光煜在我编写论文时遇到困难时给予我的帮助,帮我渡过了很多难关,谢谢他对我的鼓励。在学校的学习生活中让我明确了以后的发展方向,学校老师同学对我的帮助是一笔无价的财富,我将在以后的生活工作中备受鼓励!
附录附录A控制程序#include"reg52.h"#include"lcd1602.h"#include"ADC0832.h"sbitbeep=P3^4;//·äÃùÆ÷sbits1=P2^0;//¸ßÓÍÁ¿ÉèÖÃsbits2=P2^1;sbits3=P2^2;//µÍÓÍÁ¿ÉèÖÃsbits4=P2^3;sbits5=P2^4;//©ÓÍÉèÖÃsbits6=P2^5;ucharhang1[]="Oil:000";ucharhang2[]="L:000H:000000";ucharvalue=0,value1=0,value2=0;//ÓÍÁ¿uintsum=0,cishu=0,time=0;ucharlow=20,high=100,leakage=3;//¸ßµÍ·§Öµ£¬Â©ÓÍËÙ¶Èvoidmain(){TMOD|=0X01; TH0=0X3C; TL0=0XB0; ET0=1;//´ò¿ª¶¨Ê±Æ÷0ÖжÏÔÊÐí EA=1;//´ò¿ª×ÜÖÐ¶Ï TR0=1;//´ò¿ª¶¨Ê±Æ÷ init_1602(); value1=ADC();//³õʼ»¯ÓÍÁ¿ value2=value1; while(1) { if(!s1)//¸ßÓÍÁ¿ÉèÖà { delay_uint(1000);//ÑÓʱ·À¶¶ if(!s1) { if(high<120) high++; } while(!s1); } if(!s2)//¸ßÓÍÁ¿ÉèÖà { delay_uint(1000);//ÑÓʱ·À¶¶ if(!s2) { if(high>low) high--; } while(!s2); } if(!s3)//µÍÓÍÁ¿ÉèÖà { delay_uint(1000);//ÑÓʱ·À¶¶ if(!s3) { if(low<high) low++; } while(!s3); } if(!s4)//µÍÓÍÁ¿ÉèÖà { delay_uint(1000);//ÑÓʱ·À¶¶ if(!s4) { if(low>0) low--; } while(!s4); } if(!s5)//©ÓÍÉèÖà { delay_uint(1000);//ÑÓʱ·À¶¶ if(!s5) { if(leakage<100) leakage++; } while(!s5); } if(!s6)//©ÓÍÉèÖà { delay_uint(1000);//ÑÓʱ·À¶¶ if(!s6) { if(leakage>1) leakage--; } while(!s6); } }}voidTimer0()interrupt1{ uchari; i=0; TH0=0X3C; TL0=0XB0; value=ADC(); if(cishu<20)//²âÁ¿20×éÊý¾Ý { cishu++; sum+=value; } else { cishu=0; value1=sum/20; sum=0; if(value1<value2)//Åжϱ¨¾¯ { //©ÓÍ if(value2-value1>leakage) { i++; time=60; write_string(1,9,"leak"); } } value2=value1; } if(value1<low)//ÓÍÁ¿µÍ { i++; time=60; write_string(1,9,"low"); } if(value1>high)//ÓÍÁ¿¸ß { i++; time=60; write_string(1,9,"high"); } hang1[4]=value1/100+0x30;//ÏÔʾ hang1[5]=value1%100/10+0x30; hang1[6]=value1%10+0x30; hang2[2]=low/100+0x30; hang2[3]=low%100/10+0x30; hang2[4]=low%10+0x30; hang2[8]=high/100+0x30; hang2[9]=high%100/10+0x30; hang2[10]=high%10+0x30; hang2[13]=leakage/100+0x30; hang2[14]=leakage%100/10+0x30; hang2[15]=leakage%10+0x30; write_string(1,0,hang1); write_string(2,0,hang2); if(i)//Æô¶¯·äÃùÆ÷ beep=0; else { beep=1; if(time>0) time--; else { write_string(1,9,""); } }}#include"lcd1602.h"voiddelay_uint(uinti){ while(i--);}/*********************************************************************Ãû³Æ:write_com(ucharcom)*¹¦ÄÜ:1602ÃüÁÊý*ÊäÈë:ÊäÈëµÄÃüÁîÖµ*Êä³ö:ÎÞ***********************************************************************/voidwrite_com(ucharcom){ e=0; rs=0; rw=0; P0=com; delay_uint(20); e=1; delay_uint(20); e=0;}/*********************************************************************Ãû³Æ:write_data(uchardat)*¹¦ÄÜ:1602дÊý¾Ýº¯Êý*ÊäÈë:ÐèҪдÈë1602µÄÊý¾Ý*Êä³ö:ÎÞ***********************************************************************/voidwrite_data(uchardat){ e=0; rs=1; rw=0; P0=dat; delay_uint(20); e=1; delay_uint(20); e=0; }/*********************************************************************Ãû³Æ:write_string(ucharhang,ucharadd,uchar*p)*¹¦ÄÜ:¸Ä±äÒº¾§ÖÐijλµÄÖµ£¬Èç¹ûÒªÈõÚÒ»ÐУ¬µÚÎå¸ö×Ö·û¿ªÊ¼ÏÔʾ"abcdef"£¬µ÷Óøú¯ÊýÈçÏ write_string(1,5,"abcdef;")*ÊäÈë:ÐУ¬ÁУ¬ÐèÒªÊäÈë1602µÄÊý¾Ý*Êä³ö:ÎÞ***********************************************************************/voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }/*********************************************************************Ãû³Æ:init_1602()*¹¦ÄÜ:³õʼ»¯1602Òº¾§*ÊäÈë:ÎÞ*Êä³ö:ÎÞ***********************************************************************/voidinit_1602(){ write_com(0x38); //Êý¾Ý×ÜÏßΪ8룬ÏÔʾ2ÐУ¬5x7µãÕó write_com(0x0c); //¿ªÏÔʾ£¬Óйâ±ê£¬¹â±êÉÁ˸ write_com(0x06); //¹â±ê×Ô¶¯ÓÒÒÆ delay_uint(1000); //µÈ´ýÉèÖÃÍê³É}#ifndef__LCD1602_H_#define__LCD1602_H_/*****************************
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全自查工作总结资料15篇
- 第5课 呵护美好的生命教学设计小学地方、校本课程黑教版生命教育
- 八年级下册Lesson 20 A Computer Helps!教案及反思
- 全国浙教版初中信息技术八年级下册第二单元第8课《人工智能中的算法》教学设计
- 2026年香菇收购合同(1篇)
- 第2节 人口与生物多样性(选学)教学设计高中生命科学沪科版第三册-沪科版
- 人教版七年级下册第六章 第二节 自然环境 教学设计
- 鲁教版 (五四制)八年级下册6 一元二次方程的应用教案设计
- 期中教学设计中职基础课-基础模块1-高教版(2021)-(英语)-52
- 《异地就医直接结算服务规范》编制说明
- 汽车喷漆工艺中的涂层微观结构与性能
- 能源微生物学的课件
- “超额利润资料新提成”薪酬激励方案
- 北京野鸭湖湿地自然保护区
- 传热学每一章习题
- 安徽鑫泰新材料有限公司年产10万吨氨水及1万吨亚硫酸氢钠项目环境影响报告书
- 课程负责人说课
- 列车网络控制系统设计-HXD2型电力机车网络控制系统-毕业设计【完整版】
- GB/T 4989-1994热电偶用补偿导线
- GB/T 13912-2020金属覆盖层钢铁制件热浸镀锌层技术要求及试验方法
- 人教统编版高中历史必修中外历史纲要下中古时期的欧洲教学课件1
评论
0/150
提交评论