图9 信号采集和A/D转换模块连接图
2.2.3 LED显示模块
图10 LED显示模块连接图
本设计的显示模块如图10示,采用的是LED数码管显示。LED与单片机的P0口和P2的部分口相连,由于P0口的驱动能力有限,因此本文使用了上拉电阻,这在一定程度上大大提高了它的驱动能力,从而保证LED显示模块稳定工作,避免显示结果出现闪烁的现象。LCD显示模块是用来显示油箱内的剩余油量的(油量单位是L),这样一来,驾驶员可以随时知道油量的多少,并在油量过低时及时进行补充油量。数字化的显示结果更形象、更直观、更明了,这是本设计的优点之一。
2.2.4 报警模块
图11 报警模块连接图
本设计的报警模块有LED灯光报警和蜂鸣器声响报警两部分组成。其中,两个LED报警灯分别与单片机的P3.0和P3.1相连接,为了增加驱动能力,保证报警灯的亮度,本设计中特意使用了上拉电阻。声响报警电路中的蜂鸣器与单片机的P3.7相连接。当油量剩余值高出预先设置的上限值时,LED高亮并伴有缓慢的低音调报警声;反之,当油量高于预先设定的下限值时,LED低亮并伴有急促的高音调报警声。
3. 仿真调试
本设计用C语言进行编程,通过Keil软件进行程序编译,生成**.HEX文件之后在Proteus软件环境下进行仿真。
C语言是一种极具生命力的语言,它简单易懂,功能全面,使用灵活方便,移植性好[9],很适合编写系统软件,很多原来用汇编语言编写的软件也完全可以用C语言来编写。在程序编译时采用Keil软件,它是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。它能提供丰富的库函数和功能强大的集成开发调试工具,采用全Windows界面,多数语句生成的汇编代码容易理解[10],尤其是在大型软件开发时更能体现高级语言的优势。在Keil环境下进行程序编译之后的编译结果如图12所示。由图12可以看出程序编写无误,并且成功生成了**.HEX文件,即程序编译成功。
图12 程序编译图
Proteus软件是英国Labcenter Electronics公司出版的著名的EDA工具软件[11]。在Proteus软件中画出原理图,向单片机中加入需要调试的程序的**.HEX文件,便可以进行仿真了。利用Proteus实现单片机系统仿真的过程一般分为四步,仿真步骤如下所述。
(1)在Proteus环境下进行选择元器件、电路图设计、电路连接和电气检测等(简称Proteus电路设计);
(2)在keil环境下进行源程序的设计、编辑、汇编编译、调试,最后生成目标代码文件(**.hex)(简称Proteus软件设计);
(3)再一次在Proteus环境下将生成的**.hex文件加载到单片机系统中,从而实现单片机系统的实时交互、协同仿真(简称Proteus仿真);
(4)最后仿真正确后,对实际单片机系统电路进行组装,并将目标代码文件(**.hex)下载到实际的单片机中运行、调试。若出现了问题,可与Proteus设计与仿真相互配合调试,直至运行成功(简称实际产品安装、运行与调试)。
系统整体软件仿真图如图13所示。
图13 软件仿真图
油量测量系统采用滑动变阻器作为模拟敏感信号,采集到的模拟信号经ADC0808转换后,通过单片机对转换的数字结果分析来实现油量测量,充分利用了单片机的内部资源,具有很高的性价比。所以该系统在一般的油量检测中均可应用。本设计采用AT89C51单片机作为测量油量的主CPU芯片,系统硬件设备结构简单合理,成本低,实时性好。本电路采用LED数码管显示出油量值,直观、稳定,易于实现,该显示方式可以推广到其他工程应用领域。 51单片机汽车油量检测报警器的设计+仿真图+源码(6):http://www.751com.cn/zidonghua/lunwen_912.html