《基于单片机的智能涂料搅拌器设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能涂料搅拌器设计.doc(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科论文目 录摘 要IAbstractII引 言31 系统总体架构61.1 需求分析与方案设计61.2 系统架构71.3 系统器件选择72 系统硬件设计92.1 单片机外围电路设计92.2 LCD1602液晶显示电路设计142.3 电机外围电路设计152.4 供电电路设计163 系统软件流程设计173.1 系统总体流程173.2 LCD显示程序设计183.3 液位传感器的程序设计193.4 电机定时与转速控制程序设计193.5 按键控制程序设计214 系统调试254.1 焊接与调试254.2 程序烧录与调试254.3 系统调试264.4 遇到的问题及解决方法27结 论28参考文献29附录1 原
2、理图31附录2 源程序清单32致 谢52本科论文摘 要目前,在社会主义现代化建设中,涂料市场也在不断发展,因而对搅拌设备的需求也越来越高。为了通过新型的涂料搅拌器设计使得涂料生产的成本降低,减少大量的人力物力提高工作效率,本文进行了基于单片机的智能涂料搅料器设计。基于单片机的智能涂料搅料器设计可以通过外部按键进行控制,利用内部单片机对外部按键以及传感器进行响应,进而控制电机的转速、转向和转动时间。可以适应不同情况下的搅料需求,能够进行正反转,转速调整,定时搅拌等功能。本文首先分析了基于单片机的智能涂料搅料器设计的设计需求,完成了系统架构设计。在此基础上进行了单片机外围电路设计,液晶显示外部电路
3、设计,电机外部电路设计,开关电路设计。在完成硬件电路设计的基础上,进行了软件流程设计,包括对LCD液晶显示控制程序,电机定时以及转速控制程序,按键控制程序。经过实验验证,结果表明基于单片机的智能涂料搅料器设计可以灵活调整工作模式,在启动、停止,正反转,定时设置等模式之间灵活调整。真正实现“一套设备,一机多用,一步到位”。关键词: 单片机;LCD;控制程序AbstractAt present, with the continuous development of the paint market, the demand for mixing equipment is higher and hig
4、her. In order to reduce the cost of coating production, reduce a large number of human and material resources and improve the work efficiency through the design of a new type of coating agitator, an automatic mixing system based on single chip microcomputer is designed in this paper.The design of in
5、telligent paint agitator based on single chip microcomputer can be controlled by external keys. The internal single chip microcomputer can respond to external keys and sensors, and then control the rotation speed, steering and rotation time of the motor. It can adapt to the needs of mixing materials
6、 in different situations, and can carry out positive and negative rotation, speed adjustment, timing mixing and other functions. Firstly, this paper analyzes the design requirements of intelligent paint agitator based on MCU, and completes the system architecture design. On this basis, the periphera
7、l circuit design of MCU, the external circuit design of LCD, the external circuit design of motor and the switch circuit design are carried out. On the basis of hardware circuit design, the software flow is designed, including LCD display control program, motor timing and speed control program, key
8、control program.The experimental results show that the design of intelligent paint agitator based on single chip microcomputer can adjust the working mode flexibly, and adjust between the start, stop, forward and reverse, timing setting and other modes. Truly realize one set of equipment, one machin
9、e with multiple functions, one step in place.Keywords: MCU; LCD; Control program引 言目前,随着涂料市场的不断发展,对搅拌设备的需求也越来越高。为了使新型的涂料搅拌器设计能够降低涂料生产的成本,减少大量的人力物力提高工作效率,因此对涂料搅拌设备进行了大量的研究。建筑涂料是涂料工业重要的组成部分之一,建筑涂料种类繁多,主要包括室内涂料、外墙涂料、地坪涂料、防火涂料等多种功能性涂料。建筑涂料的种类的多少、质量的好坏对美化城乡居住建筑、改善城乡环境具有重要意义。智能涂料搅拌设备有着广阔的发展空间,不仅仅是市场推动其发展,
10、而且新材料、新工艺的产生,必将对化工设备要求更高,研究基于单片机的智能涂料搅拌有着重要的意义。众所周知,在建筑材料生产过程中需要对一些配制好的涂料进行搅拌,这些配制好的涂料一般呈粘稠状液体,经过搅拌以后使各种成分混合均匀,涂料的性质才会达到最佳,才能用于下一道工序的使用,因此,搅拌的工序就显得尤为重要。国外搅拌器械的发展历史悠久,18世纪40年代,在德国、美国、俄罗斯等国家,出现了以蒸汽机为动力源的自落混合搅拌器,其混合室由多面体木质圆筒组成,直到1880年钢铁才开始代替木板,但形状仍然是多面体的1。1888年,法国申请了一项用于修建战前道路的混凝土搅拌机的专利。20世纪初,圆柱形混合搅拌器开
11、始流行起来。形状的改善避免了涂料在搅拌筒内壁的凝固和沉积,提高了搅拌质量和效率。1908年,美国出现了第一台由内燃机驱动的搅拌器,随后电动机成为主要动力源2。从1913年到1950年,亚洲大陆的日本开始用搅拌机生产预混料。在此期间,各种有无叶片的自落式搅拌机的发明和应用仍然是主流。自落式搅拌机依靠搅拌筒将物料提升到一定高度的自落来完成搅拌。在操作过程中,随着搅拌筒的转动,物料被固定在搅拌筒内壁上的叶片提升到一定高度,然后靠自身重量下落。由于颗粒下落高度、时间、速度、下落点和滚动距离的不同,材料中的颗粒相互渗透、渗透和扩散,最终达到均匀混合。该搅拌方式结构简单,可靠性高,维护简单,功耗小,搅拌筒
12、和搅拌叶片磨损轻,但搅拌强度低,生产效率低,搅拌质量差。根据搅拌筒的形状和出料方式,有筒式搅拌机、双锥反转出料搅拌机、双锥斜卸式搅拌机3和对开式搅拌机等,其中筒式简易搅拌机技术性能落后,1987年被建设部列为淘汰产品。随着各类涂料的广泛使用和施工规模的大型化、复杂化,对质量和产量的要求不断提高,有效地促进了搅拌设备性能和技术水平的提高和发展。来自世界各地的研究人员开始对涂料搅拌机的结构、传动方式、搅拌室内衬材料和调漆生产工艺进行改进和探索。20世纪40年代末,德国Elba公司发明了强制搅拌器4,与自落式搅拌器不同,强制式搅拌器是利用旋转的叶片迫使物料按照预定的轨迹进行剪切、挤压、滚压和抛掷,使
13、物料在剧烈的相对运动中均匀搅拌。与自落式搅拌机相比,强制式搅拌机混合效果强,混合质量好,混合效率高,但搅拌筒和搅拌叶片磨损大,功耗大。根据不同的结构特点,主要有立轴涡流式浆机、立轴行星式浆机、立轴对流式浆机、单横轴式浆机和双横轴式浆机5。目前国内常用的有两种搅拌工序,第一个是人工搅拌,这种方式会耗费大量的劳动力,而且人工搅拌力量有限,只能用于搅拌份量很小的涂料,在涂料用量很大的情况下,效率很低,无法实用。此外,在遇到一些黏度较大或颗粒较大的混合粉时,由于人工搅拌力量速度有限,涂料可能发生凝集,导致出现混炼不足、搅拌处理时间长,无法充分混合,工作效率非常低下。第二种是利用机器来进行,在过去相当长
14、的一段时间里,涂料生产中的分散研磨设备主要由分散机、砂磨机和三辊磨床组成。这些传统设备具有各自不同的功能,实现了涂料生产的不同需求。然而,也有不同的局限性。如分散机:用于中高档涂料的生产,只能用于预分散,不能达到中高档涂料所要求的碎浆效果;砂磨机:可连续生产,但不适用于炭黑等难分散颜料的加工;浆体粘度高,加工难度大;清洗困难,残留物多,这是砂磨机的主要限制;三辊磨床6:适用于加工高粘度浆体和难分散颜料。但露天作业使作业环境恶劣,作业安全性差,散料损失大。结构复杂,调试困难,生产效率低。传统的涂料生产设备已经使用多年,但其局限性也很明显。然而,现有的混合搅拌器也存在许多缺点,其结构过于简单。只有
15、一个旋转轴被添加到桶。桶里的油漆是通过轴的连续转动而搅拌的。运行过程中噪声较大,建成后均匀性不理想,容易出现分层和残渣问题。同时,会消耗大量的电能,造成浪费。本文设计了基于单片机的智能涂料搅料器设计,基于单片机的智能涂料搅料器设计可以通过外部按键进行控制,内部单片机对外部按键以及传感器进行响应,进而控制电机。可以适应不同情况下的搅料需求。所设计的基于单片机的智能涂料搅料器设计,主要需要实现以下一些功能,首先系统能够接收外部人为控制,实现电机的正转反转,使得涂料能够充分搅拌;第二点是电机能够以不同的速度进行搅拌,使用过程中可以实现灵活的加速与减速操作;第三点是如果搅拌时间较长,可以设置定时,同时
16、通过液位传感器也可进行定时,实现无人值守,减轻工人压力,提高效率;第四点是以上这些操作、流程、转速等都可以实时显示,让使用者能够清楚目前的状态。1 系统总体架构1.1 需求分析与方案设计本次所设计的基于单片机的智能涂料搅料设计,主要需要实现以下一些功能,首先系统能够接收外部人为控制,实现电机的正转反转,使得涂料能够充分搅拌;第二点是电机能够以不同的速度进行搅拌,使用过程中可以实现灵活的加速与减速操作;第三点是如果搅拌时间较长,可以设置定时,同时通过液位传感器也可进行定时,实现无人值守,减轻工人压力,提高效率;第四点是以上这些操作、流程、转速等都可以实时显示,让使用者能够清楚目前的状态。为了实现
17、上述功能,初步设定了两种方案,第一种是利用涂料气动搅拌装置,结合计时与供电设计实现搅拌系统的定时。优点是气动混合搅拌器可以无级调速。只要控制进排气门的开度,即控制压缩空气的流量,就可以调节电动机的输出功率和转速。气动混合器可以正向或反向旋转。只要用控制阀简单地改变气动马达的进排气方向,就可以实现气动马达输出轴的正反转,实现瞬时换向。气动混合搅拌器的工作环境不受振动、高温、电磁、辐射等的影响,适用于恶劣的工作环境,能在易燃、爆炸、高温、振动、潮湿、粉尘等不利条件下正常工作。气动混合搅拌器的配套气动马达具有过载保护功能,不会因过载而失灵。如果过载,气动马达的速度只会降低或停止。当过载消除后,电机可
18、以立即恢复正常运行,而不会对零件造成任何损坏。可长时间满负荷连续运行,气动电机温升小,气动混合器起动转矩大,可直接带负荷起动。启动和停止都很快,不像电动搅拌机有时会烧坏影响使用。但气动搅拌装置容易产生涂料搅拌不彻底, 容易产生死角,在完成工作后清洗困难等问题。同时在气动装置升降以及操作过程中需要两人配合完成, 操作非常繁琐。第二种方案是利用单片机作为处理器,接收外部的按键控制来对电机工作模式进行调整,电动机可实现正转以及反转操作,同时也可以进行变速操作便于针对不同材质的涂料进行换挡工作7。在不同环境中电动机搅拌器也可正常稳定运行,适应能力强,对于粉尘,潮湿等不利条件下都可正常工作。利用LCD1
19、602液晶对系统的操作、流程、转速等都可以实时显示。对于操作人员来说无疑是提供了极大的便利,不需要像以往那样凭借经验来判断系统的工作状态,大大增加了工作的 安全性。通过液位传感器来设定搅拌时间,即使初次操控也可实现操作。该方案具有成本低,易于操控,在不同环境下系统工作情况均表现良好对于设计提出的要求也能很好的实现。对上述两种方案进行对比,首先是从系统复杂度上进行考虑,方案一中需要添加一些传感器,这必然会增加系统硬件的设计复杂度,对这些数据进行处理又会增加软件复杂度;其次我们从实现及使用上来讲,通过单片机控制电机来形成一套搅拌系统,要比通过气动马达更为可靠有更高的性价比,同时在后期保养时相对比较
20、容易。因此选用单片机作为处理器来控制电机进行涂料搅拌器的设计。1.2 系统架构如图1.1所示为基于单片机的智能涂料搅料器设计系统架构框图,系统以STC89C51单片机作为中央处理器。单片机接收外部晶振以及复位控制,为了实现不同情况下的电机工作,通过不同的按键开关来分别对应控制,单片机对按键进行检测,检测到对应的按键按下后,输出信号控制电机执行正转、反转、转速调整、定时等。同时液位传感器检测搅拌深度从而控制搅拌时间,上述过程统一通过LCD1602来进行实时显示。液位传感器LCD液晶显示开关按键电机单片机晶振复位图1.1 基于单片机的智能涂料搅拌设计系统架构1.3 系统器件选择结合上文的系统需求分
21、析,为了接收外部对系统工作模式的控制与改变,在基于单片机的智能涂料搅料器设计中使用按键电路来实现,单片机实时进行检测外部输入命令,调整电机状态。整个系统的运行都依靠单片机来进行操控,不同的单片机类型功能也不一样,经过仔细考虑和结合实际情况,采用的是STC89C51单片机。因为此程序的代码不是十分的繁多,所以为了节约成本没有采用比较复杂成本比较昂贵的STM32或者是MSP430等单片机。而去采用STC89C51单片机。显示部分用LCD1602液晶来显示当前的信息,相比于数码管显示, LCD1602显示的字符量更多,弥补信息量比较少,显示内容有限的缺陷,它可以显示字母,数字还可以显示特殊的符号。选
22、用谐振式液位传感器来探测搅拌涂料的深度,从而控制搅拌时间,该传感器同其他传感器相比性价比高,不需要传感器深入到涂料当中探测,更加安全。2 系统硬件设计结合第一章的系统需求分析以及器件选型,我们首先需要结合对基于单片机的智能涂料搅料器设计中的各个模块的硬件电路完成设计。2.1 单片机外围电路设计单片机对传感器和外设进行控制,对外部输入的数据和信号进行收集计算,并进行相应的操作。STC89C51单片机是基于单片机的智能涂料搅料器设计中的核心,围绕其需要展开很多电路实现系统中的相关功能,我们首先需要完成对单片机外围电路的设计。2.1.1 STC89C51单片机介绍STC89C51有32个I/O口可以
23、连接更多的外设和传感器,8k字节的FLASH存储器可以进行更多的计算缓存,512字节的RAM大大提高了反应速度。STC89C51单片机的烧录也非常简单,通过TX和RX口,采用对应的编译器就可以将程序烧录进去。图2.1 STC89C51单片机封装引脚如图2.1所示为STC89C51单片机封装引脚,完成自动搅料系统电路设计之前首先需要对管脚进行了解。VCC:供电电压。GND:接地。P0、P1、P2、P3:I/O引脚,可以在本次设计中作为输入输出端口,用以向LCD液晶输入信息等。P3口特殊功能口,具体如下表所示:表2.1 P3口的第二功能端口名称功能P3.0RXD(串行输入口)P3.1TXD(串行输
24、出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。PSEN:外部程序存储器的选通信号。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.1.2 STC89C51单片机外围电路设计根据第一章对基于单片机的智能涂料搅料器设计需求分析,结合单片机所完成的具体工作以及单片机的管脚介绍,最终总结单片机外围电路需要进行几个方面的设计。(1
25、)单片机供电部分:在设计过程中,为保证单片机正常运作,首先根据芯片数据手册中的管脚定义,完成对单片机的供电设计即对应管脚接电源和接地。单片机外部晶振:本次设计中,单片机使用外部的12MHZ晶振9,本次设计18管脚是外部晶振的输入端,让19管脚接地。(2)控制LCD1602进行信息显示:芯片的32到39管脚即P0口是单片机的8个I/O口,本次自动搅料系统设计中,液晶需要显示的搅料系统转速、转向、定时时间等相关数据由这个8个端口送交给LCD液晶显示,由于单片机的P0口没有上拉电阻,是高阻状态,因此外接一个10k 的排阻;同时依据液晶显示的数据手册,对液晶显示进行操作还需要涉及三个控制管脚,因此在单
26、片机P2.5,P2.6和P2.7三个端口10给出三个控制信号。(3)对按钮开关进行响应,控制系统的工作:首先需要设计一个开关K1,用来控制整个搅料系统,对整个系统进行复位。由于单片机的复位端口RST高电平有效,我们将开关K1一端接高电平一端连接到单片机的复位端口RST,这样在开关按下的时候复位端口将会感知电平发生变化。复位电路如图2.2所示图2.2 开关电路为了实现搅料系统“一套设备,一机多用,一步到位”的特点,需要实现电机开始与停止,正转与反转,加速与减速,计时等功能。图2.3 按键控制电路为了实现外部对系统运作的控制,我们选择按钮开关来进行控制,为了简化后续程序设计复杂度,每个开关负责一个
27、功能。按键控制电路如图2.3所示,我们设计了8个开关K2-K9,考虑到单片机的I/O口既可以做输出也可以作输入,为了对开关按键进行响应,将K2-K9分别通过一个排阻连接到单片机的P1.0至P1.7口,另一端供地,此时I/O口作为输入11,这样在开关按下的时候,对应的单片机端口就为低电平,程序再对端口的电平进行判断及后续执行相应的处理操作,即可完成对开关的判别与响应。搅料系统中各个开关按键的功能分配如下K2:启动键,按下以后电机开始转动;K3:停止键,按下以后电机停止;K4:电机正转;K5:电机反转;K6:加速,按下以后电机加速;K7:减速,按下以后电机加速;K8:设置计时时间的分增加;K9:设
28、置计时时间的秒增加。(4) 控制电机电路:在搅料系统中使用电机的端口中,EN端口是电机使能端口;CW/CCW端口接收外部输入的逆时针或顺时针方向转动的控制信号;PWM端口是接收外部输入的不同占空比的PWM波。在本次对搅料系统的设计中,为了操控所使用的直流电机正常工作,单片机的P3.4口与电机的EN口相连,用以控制电机是否运作;P3.5口与CW/CCW端口相连,用以控制电机的转向;P3.7口用以输出PWM波12,用以调节电机的转速。(5)调试与显示电路:在完成搅料系统的电路设计以及完成后续程序设计之后,需要将程序完成烧录,进行功能的调试,因此需要设计一个调试口,调试口的收发分别接到单片机的P3.
29、0(RXD)和P3.1(TXD),还有一端接地。调试口电路如图2.4所示图2.4调试电路为了直观体现搅料系统的工作状态,除了LCD液晶显示之外,设计了一个发光二极管LED显示,LED一端接电源VCC,一端接单片机的P3.2口,但二极管工作的时候电流不能太大,一般是5mA左右,在LED正常导通的时候13,其两端的电压一般是1.7V,为了保护二极管,外接了一个2K电阻。指示灯电路如图2.5所示图2.5 LED显示电路程序设计中,通过设置P3.0口的高低电平即可完成LED的导通,对系统的状态进行显示。(6)液位传感器电路: 在涂料搅拌系统中,谐振式液位传感器通过四个接口实现与单片机之间的通信。VCC
30、端口连接5V电压,为液位传感器提供电源,RXD端口与单片机P3.0端口连接用于信息的接受14,TXD端口与单片机P3.1端口连接用于信息的发送。GND端口接地。如图2.6即为基于单片机的智能涂料搅料器设计中液位传感器的电路。图2.6液位传感器电路(7)读取内部存储器:依据芯片的数据手册,单片机的31管脚在接高电平时,单片机使用内部存储器。结合上一节介绍,系统中所使用的STC89C51单片机有内部ROM,因此在本次设计中,将该管脚一只接高电平。最终,如图2.7即为基于单片机的智能涂料搅料器设计中STC89C51单片机外部电路。图2.7 STC89C51单片机外部电路设计2.2 LCD1602液晶
31、显示电路设计2.2.1 LCD1602液晶显示器介绍本次设计采用LCD1602液晶显示器作为输出显示器,LCD1602液晶屏显示利用液晶的特性,通过改变电压达到控制区域显示,最终显示出想要的图形或者数字。如表2.2所示为LCD1602数据手册15给出的芯片接口定义,是我们在进行电路设计以及后续编程实现数据显示过程中的重要依据。表2.2 LCD1602芯片接口定义编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data i/o2VDD电源正极10D3Data i/o3VL液晶显示偏压信号11D4Data i/o4RS数据/命令选择端12D5Data i/o5R/W读/写选择端13D6Data
32、 i/o6E使能信号14D7Data i/o7D0Data i/o15BLA背光源正极8D1Data i/o16BLK背光源负极2.2.2 LCD1602液晶外围电路设计本次设计LCD1602液晶显示屏上展示搅料系统的工作状态、转速、转向和定时时间,上面一行显示工作状态和转向,下面一行显示转速和定时时间。结合对整个搅料系统的工作设计,LCD1602液晶显示外围电路设计分为以下几个部分。(1)液晶供电部分:结合LCD1602液晶显示的数据手册,为了在基于单片机的智能涂料搅料器设计中使的液晶正常工作,需要完成供电设计。(2)与单片机之间的通信:依据数据手册,7到14号管脚是其数据口,在基于单片机的
33、智能涂料搅料器设计中,液晶需要通过这个8个数据口从单片机接收信息再进行显示。(3)液晶显示的控制为了保证与单片机的通讯,还有三个控制管脚。依据数据手册,LCD1602液晶的6管脚为使能端口,在数据传输的时候,高电平有效,连接单片机的P2.5口;5管脚为读写选择端,将其连接到单片机的P2.6口,接受单片机给出的控制信号;4管脚为数据/命令选择端16,连接单片机的P2.7口。(4) 液晶显示的对比度调节依据数据手册,LCD1602液晶的3管脚是调节显示对比度的端口,考虑到工人群体对显示屏亮度比较敏感或者有不同喜好,在电路设计中,系统的使用者可对显示对比度的调节。 最终,如图2.8即为基于单片机的智
34、能涂料搅料器设计中LCD液晶外部电路。图2.8 LCD1602液晶显示电路图2.3 电机外围电路设计本次使用的电机有四个接口:VDD是电源正极,设计中接12V电源,GND是使能端口,接单片机的P3.4口,用以接收控制信号,控制电机工作与否;CW/CCW端口是控制电机正转或者是翻转的端口,当搅料系统的转向需要发生改变的时候,由单片机的P3.5口输出控制信号即可;3端口是PWM端口17接收外部输入的方波信号,转速就是由方波信号的占空比来决定,当搅料系统的电机转速需要调节时,由系统中的单片机输出不同占空比的PWM即可。图 2.9电机外围电路设计 2.4 供电电路设计在基于单片机的智能涂料搅料器设计中
35、,单片机和LCD正常工作的电压是5V,而电机正常工作需要12V电压,结合此需求,我们采用系统用12V供电,后续通过LM7805电源芯片使12V电压转化成5V的电压供给单片机及LCD。图2.10 供电电路3 系统软件流程设计结合第二章的系统需求分析,在完成了系统电路的设计以后,系统的主要功能还需要通过软件实现,需要进行相关软件流程设计,实现基于单片机的智能涂料搅料器设计预定的相关功能。软件流程设计采用模块化设计的方法,即在程序编写之前,首先结合基于单片机的智能涂料搅料器设计硬件电路以及系统需求对程序进行功能模块化,再编写各个模块的程序,使程序易于编写、调试和修改。程序设计过程中的软件开发环境选用
36、Keil软件。3.1 系统总体流程基于单片机的智能涂料搅料器设计系统程序架构如图3.1所示,当整个系统运行时,首先是各个部分的初始化,由于系统要实现对电机的控制,还需要完成包括单片机的中断设置等。初始化液晶显示初始状态传入液位信号按键检测开关按下N根据按键执行不同的操作液晶更新系统工作模式结束开始Y 图3.1 程序架构初始化完成以后,LCD1602液晶需要显示系统初始状态:停止运行,正向,转速5000。同时按键检测程序不断对开关的状态进行判断,液位传感器对液位进行检测设置定时时间18,当开关按下后,根据之前的设定,不同开关执行相对应的程序,来对搅料系统的工作模式进行改变。在执行模式更改的同时,
37、通过LCD1602液晶来实时显示目前所处的状态,便于使用者使用。3.2 LCD显示程序设计在基于单片机的智能涂料搅料器设计中,为了便于使用者直观了解系统目前的工作状态,LCD1602液晶需要显示系统工作状态(开始、停止)、电机的转向(CW、CCW)、电机转速、电机定时时间等,并根据开关对系统的控制,实时对自动搅料系统这些信息进行更新19。按照设置,第一行显示系统工作状态(开始、停止)、电机的转向(CW、CCW),第二行显示电机转速、电机定时时间。如图3.2为LCD1602子程序流程图。 LCD初始化 子程序入口 LCD清屏 单片机向LCD写命令 单片机向LCD写数据 显示数据 返回 N 图3.
38、2 LCD1602子程序流程图根据LCD1602的数据手册,在使用LCD1602之前需要进行初始化,初始化需要完成2个工作,通过程序为LCD1602写入相关设置指令。如图3.3所示为LCD1602内部的RAM地址映射图:图3.3地址映射图如图3.4所示为LCD1602写操作时序:图3.4 LCD1602写操作时序写入数据需要以下几个步骤:首先需要通过RS信号确定是写数据还是写命令20,因为写数据是指显示什么内容,写命令是写入什么指令。第二步:R/W端口输入一个低电平;第三步:将数据从单片机的I/O口输送给液晶的数据端口;第四步:在E端口给一个持续高电平,即可完成写操作。3.3 液位传感器的程序
39、设计 在基于单片机的智能涂料搅料器设计中,为了便于操作使系统更加智能化,谐振式液位传感器需要通过RXD与TXD端口与单片机进行信息的交换,单片机根据得到的液位信号设定搅拌时间。从而实现根据不同深度自动设置定时时间的功能。单片机串口初始化,然后接受传感器数据,按照显示要求取出8,9,10三位,分别送给显示屏,然后将这三位通过公式转换成常量,从而判断水深做出倒计时时间。水位的计算公式为:(RX_Buffer8-0x30)*100+(RX_Buffer9-0x30)*10+(RX_Buffer10-0x30)3.4 电机定时与转速控制程序设计在基于单片机的智能涂料搅料器设计中,单片机需要控制电机持续
40、转动的时间。持续转动的时间就由单片机内部的定时器设定,当计数记满以后产生一个中断,并产生相应的信号以控制电机的EN端口21,控制电机停止或转动。本次基于单片机的智能涂料搅料器设计中,根据单片机外界11.0592MHz的晶振,通过计算可得单片机的一个机器周期为:同时单片机最多可计数65535个,因此中断溢出一次的时间约为65ms。而在实际使用系统的过程中,对电机的定时通常应是设定时间在分秒量级,比如1分10秒,为了程序设计中取整数倍比较方便,我们设定定时器计时时间为10ms。如此,中断一百次以后,就是时间过去了1秒。同时在程序设计中,判断中断为100次以后,则计数参数减1,即为电机还需要运行的时
41、间少1秒。当计数参数为0,也就是计数时间减少为0的时候,通知单片机的P3.4口输出恒为低电平的信号,控制电机的EN端口,使电机停止转动。转速控制程序设计,在基于单片机的智能涂料搅料器设计中,为了对电机的转速进行调节,我们需要通过与电机PWM相连的P3.7端口输出不同占空比的PWM波形。占空比是高电平持续时间占一个周期的百分比,占空比越大,也就是P3.7口输出的高电平时间越长,电机转速越快。单片机输出PWM波的时候,通常有下列办法:第一个是利用软件延时,当设定的时间到,对输出的高低电平取反,。第二个是利用定时器对高低电平时间进行控制。第三个是PWM控制器。为了便于程序设计,基于单片机的智能涂料搅
42、料器设计系统程序设计中,我们选用上述第二种方案,即单片机内部的定时器实现对高低电平的持续时间控制22。结合方案的介绍,我们可以首先需要确定一个恒定的周期(50ms),实现方法即可通过上文的计数器,我们为了保证步长足够小,设定中断时间为10微秒,本次设计中,中断次数用参数usCnt来表示,最大计数次数为5000次,即usCnt最大值为5000,达到5000以后置0。而后我们更改对计数的判决门限(用参数rCnt来表示)来设置不同长度的高电平。然后计算定时器的初值N:N=10/1.0910根据计算得到的初值,计算装入TH1和TH2的数TH1= (65536-10)/256=255.9TH2= (65
43、536-10)%256=246最终装入的初值为255(0xFF)和246(0xF6)。单片机每产生中断一次,就对此时的中断计数值usCnt进行判断,若是大于5000则置0,同时对rCnt和usCnt来作比较,若rCnt的值大于usCnt的值,则控制P3.7口输出高电平23,控制电机的PWM端口,否则P3.7口输出低电平,如此形成了一个PWM信号,送交给电机的PWM口,控制转速。当外部按键K6按下的时候,rCnt值加大,则高电平占整个周期(5000)的比例加大,电机转速会加快。3.5 按键控制程序设计根据基于单片机的智能涂料搅料器设计,系统在开关按下的时候需要对其工作状态(启动、停止),工作模式
44、(转速、计时时间)等进行灵活响应并调整24,实现适应在不同情况下进行搅料。 为了实现上述功能,进行按键控制程序设计,如图3.5为按键检测程序流程图。图3.5 按键检测流程图(1)Key1:复位键由于开关按键连接到单片机的复位端口RST口,为了方便操作,我们首先对RST口进行声明,即将RST端口定义为Key,后续程序中不断的对Key值进行检测判断即可再执行相关的指令。根据电路设计,理论上在Key值为0时,表明开关被按下,但由于手动按下开关再释放的这个过程有一定的抖动现象,因此我们判断Key值为0以后加上一个去抖操作,通常加上一个10ms的延时即可,延时过后再次对Key值进行判断,如果Key值仍为
45、0,即表明开关按下,单片机进行复位,整个程序重新执行。然后判断Key值是否恢复到1,如果为1表明按键被释放,再次回到程序入口,不断检测Key值是否为0,判断开关是否按下,如果Key为0则继续等待。(2)Key2:启动键由于开关按键连接到单片机的P1.0口,为了方便操作,我们首先对P1.0口进行声明,即将P1.0端口定义为Key2,后续程序中不断的对Key2值进行检测判断即可再执行相关的指令。Key2值为0以后加上一个去抖操作,通常加上一个10ms的延时即可,延时过后再次对Key2值进行判断,如果Key2值仍为0,即表明开关按下,通知单片机的P3.4口输出恒为高电平的信号,控制电机的EN端口,使
46、电机开始以设置的转速转动。然后判断Key2值是否恢复到1,如果为1表明按键被释放,再次回到程序入口,不断检测Key值是否为0,判断开关是否按下,如果Key2为0则继续等待。(3)Key3:停止键由于开关按键连接到单片机的P1.1口,为了方便操作,我们首先对P1.1口进行声明,即将P1.1端口定义为Key3,后续程序中不断的对Key3值进行检测判断即可再执行相关的指令。Key3值为0以后加上一个去抖操作,通常加上一个10ms的延时即可,延时过后再次对Key3值进行判断,如果Key3值仍为0,即表明开关按下,通知单片机的P3.4口输出恒为低电平的信号,控制电机的EN端口,使电机停止转动。然后判断Key3值是否恢复到1,如果为1表明按键被释放,再次回到程序入口,不断检测Key3值是否为0,判断开关是否按下,如果Key3为0则继续等待。(4)Key4:正转键由于开关按键K4连接到单片机的P1.2口,为了方便操作,我们首先对P1.2口进行声明,即将P1.2端口定义为Key4,后续程序中不断的对Key3值进行检测判断即可再执行相关的指令。Key4值为0以后加上一个去抖操作,通常加上一个10ms的延时即可,延时过后再次对Key4值进行判断,如果Key4值