采用多51单片机的液位监控仪设计
3 软件结构设计
由于3个单片机同时复位,所以复位后3个单片机是处于并行工作状态的。1#单片机的主要工作是将所有路液位模拟量转换成数字量保存起来。它可根据键盘命令或系统默认格式将采集加工后的结果传送给2#单片机显示及3#单片机输出控制,也可根据命令只监测指定的某1路或某几路的液位变化。2#单片机的主要工作是读入键盘命令,加工处理后,向1#和3#发布命令,然后根据反馈结果在LCD上显示出来。也可根据1#单片要同采集到的数据,不断更新其显示内容。LCD显示方式可多种多样,可循环显示指定的某几路液位,或固定显示某1路液位,或循环显示某1个月的每天或某天的每班输入输出量等。每1路液体的比重、计算修正值、液位上下限高度设定等都可通过键盘输入并保存起来。也可通过键盘设定密码,防止别人或误操作破坏设定内容,键入方式应设计成无须看说明书,只要按照LCD显示上的提示进行选择即可。3#单片机的主要工作是根据键盘命令或1#单片机及时采集到的数据,发出控制信号或打印输出结果,打印输出格式可根据键盘命令进行选择。3个单片机的工作流程框图分别如图2、图3和图4所示。
3个单片机之间通过串行口,除传送正常的数据、命令外,3者之间还要进行互相监督(这是I/O扩展芯片很难做到的)。
①相互之间传送信息后一定要进行印证,也就是发送者要及时收到接收者的回执;
②3者之间定时互访,确保相安无事;
③每次上电复位除自检外,还要互检。
互相监督的目的是为提高整个系统的性能,为系统维护提供方便。1#和3#单片机上都配有2个发送二极管,用于监测指示另外两个单片机工作是否正常。2#单片机本身有LCD显示,无需发光二极管。串行通信中断服务程序、发送程序流程图及定时互访程序流程图等因比较简单没有给出。
4 调试
在一个系统中,使用多个单片机对整个系统调试确实会带来一些不便。系统中有多少个单片机最好就有多少个单片机开发装置,这对调试是有极大帮助的,因为在调试中可随时查看每个单片机的状态,但实际当中往往不会有多个,只有1个。
每个单片机的程序基本上是由两部分组成的,一部分是与其它单片机没有任何联系的独立部分,另一部分是单片机之间相互通信联系的部分(这部分程序量较小)。调试时先把单片机各自独立部分调试出来,这部分对单片机应用人员来说不会有问题。然后调试单片机相互之间的串行通信程序,先把相互之间的简单通信建立起来,相互之间能识别传递数据后,再逐步把完整的程序一步一步添加进去。在设计、编制程序时要想到如何调试,这样在编制程序时就会有意识地程序分成有效的块,调试时就可以一块一块地调试。多单片机调试方法较多,此是一孔之见。
结语
在一个液位监控系统中采用多个单片机是一种尝试,但它确实简化了系统设计,便于分工和多人投入协作,也便于产品改进更新。其最显著的效果是缩短了产品的设计、调试和生产的周期。
评论