毕业设计 单片机-智能注油系统设计与实现 下载本文

内容发布更新时间 : 2024/5/31 21:20:29星期一 下面是文章的全部内容请认真阅读。

石家庄学院毕业设计(论文)

4.5液位检测程序设计

液位检测传感器选用为浮球液位开关,其输出为开关量,而不是信号量,故在输出端与单片机引脚之间,串联一5K电阻,以防止电路过大,烧坏单片机。液位检测流程图如图4-5所示: 开始程序初始化液位是否过低NY允许注油禁止注油、蜂鸣器报警 图4-5 液位检测流程图

液位检测程序如下: while(~W){ nw=1; delay1ms(5); displaymainpart(); delay1ms(50); LB=1; }

15

智能注油系统设计与实现

结论

设计实物经过调试,工作正常。系统通电后,首先设计出工作和停息时间。在工作时间内,当红外对射管检测到手套经过时,继电器工作,指示灯发亮一次;当在停息时间内,不管有无手套经过,继电器均停止工作,指示灯一直熄灭。当油位过低时,蜂鸣器报警,继电器停止工作,指示灯熄灭。总体来说达到了所需要求。

但由于时间问题,和个人能力有限,智能注油系统还有很多方面有待提高,具体有一下几点:

(1)没有具体介绍红外对射管所涉及的原理,这在系统应用中也比较重要,有利于更加深刻的了解注油系统的工作原理。

(2)对于时钟部分的定时功能,只能单纯的设定工作时间周期,和停息周期,周而复始,而不能规定具体工作日期。

(3)硬件布线可进一步优化,使得硬件系统外观更加简约;程序方便可进一步简化,提高单片机运行速度。

在制作只能注油系统时,需要考虑到很多因素,诸多细节。在每一个环节都可能出现意料之外的事情,有时候一个引脚的意外短路,就需要花上半天的时间来检测每一个焊点,每一根导线。几句程序的错误,就可能要花几天的时间去调试。通过对注油系统硬件和软件方面的制作,不仅积累了很多经验,巩固了专业课知识,做到了知行合一,而且锻炼了自己的动手能力,为以后工作打下了坚实的基础。本文还有很多不足之处,恳请专家和老师的批评和指正。

参考文献

[1] 李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2006. [2] 余永权,汪明慧.单片机在控制系统中的应用[M].北京:电子工业出版社,2003.

[3] 何希才.传感器及其应用电路[M].北京:电子工业出版社,2001. [4] 仉大志. 谈ALPHA电子注油器及其管理.《世界海运》2013年第4期 [5] 宫宇龙,周瑞涛,吕松. 基于HYDSIM的电控气缸注油器设计与仿真.《起重运输机械》 2012年第9期

[6] 陈智君,吴丹雯. 电控注油器控制系统研发.《中国航海》2012年第2期 [7] 童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2001. [8] 戴佳等.51单片机C语言应用程序设计[M].北京:电子工业出版社,2003. [9] 杨泽荣.基于MCS-51单片机的液晶1602显示设计.《科学与财富》 2013年 第12期

[10] 王凯,马明涛.基于单片机的主动对射式红外报警系统.《商情》 2011年 第15期

16

石家庄学院毕业设计(论文)

[11] 胡学海主编. 单片机原理及应用系统设计.电子工业出版社,2008. [12] 张洪润,蓝清华.单片机应用技术教程[M].北京:清华大学出版社,1997. [13] 范久臣.实时时钟芯片在单片机系统中的应用[J].沈阳教育学院学报,2005.

[14] 周正华.51单片机POV趣味制作详解[M].北京:北京航空航天大学出版社,2011.

[15]侯伯亨,刘凯,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,2009.

17

智能注油系统设计与实现

附录1硬件仿真图及实物图

LCD1LM016LC31uFR11kVSSVDDVEERSRWE456D0D1D2D3D4D5D6D77891011121314C133p123RP1U2X1CRYSTAL18XTAL219XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161712310*8的排阻456789RESPACK-8C2U33X2I/OSCLKRST67533p9RSTX2CRYSTAL2VCC2X1VCC1DS130218293031PSENALEEABAT13.6V设置上调下调12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SRCFILE=lcd2.cSW1SW-SPSTR31kQ12N5550SW2SW-SPSTBUZ1BUZZERU112345671B2B3B4B5B6B7BCOM1C2C3C4C5C6C7C916151413121110ULN2003AR4100RL1G2R-1E-DC5D1LED-BLUE

18

石家庄学院毕业设计(论文)

附录2部分源程序:

#include #include

unsigned char code digit[]={\ unsigned char mode

TH,TL,TN,TD,length,tempswitch1,tempswitch2,state11=1,amode,alarmmode1, nw=0,alarmmode2,minutes,hours,minutess,hourss,flagall; unsigned char

minuteb=0,hourb=0,secondb=0,minutea=0,seconda=0,seconds,secondss,houra=0,minute1,second1,hour1,led=0,temp; sbit le=P2^6; sbit W=P3^2; sbit SCLK=P1^1; sbit DATE=P1^0; sbit REST=P1^2;

//DS1302时钟输入 //DS1302数据输入 //DS1302复位端口

//数字代码

sbit SET=P1^4; //DS1302设置模式选择位 sbit ADD=P1^5; //增加 sbit RED=P1^6; //减小 sbit CANL=P1^7; sbit WZ=P2^4; sbit LB=P2^3;

void delay1ms(int i)//1毫秒延时 { int j,k; while(i--) for(j=76;j>1;j--); for(k=29;k>1;k--); }

void delaynus(unsigned char n) //延时若干微秒 {

unsigned char i; for(i=0;i

/*******DS1302模块*************/

void Write1302(unsigned char date)//向1302写数据

19