1234567891011121314151617181920STC89C52P1.0VCC40P1.1P0.039P1.2P0.138P1.3P0.237P1.4P0.336P1.5P0.435P1.6P0.534P1.7P0.633RESETP0.732P3.0EA'31P3.1ALE30P3.2PSEN'29P3.3P2.728P3.4P2.627P3.5P2.526P3.6P2.425P3.7P2.324XTAL2P2.223XTAL1P2.122VSSP2.0215678C8NY3P0350.1UFGNDVCC4RSTPWM-23DATAPWM-12BUSYVL1C91000UF+5VLS10.1UFC13 图3-10 NY3P035与STC89C52的接口电路图
3.7 本章小结
本章介绍了系统硬件电路设计部分以及各模块的工作原理,着重介绍了各模块所用到的一些芯片的主要参数,通过图片的形式给出了各模块与主控单片机之间的连接。
第四章 系统软件设计
这一部分将说明系统的软件设计环节,画出主流程图并分析程序设计原理,系统软件的设计环节是一个很重要的部分,此部分工作的进行需要认真仔细,要有清晰的思路与严密的逻辑,分清主次关系,理清前后顺序。
4.1 系统软件总体设计
下面是本设计的主流程图,主流程图是完成一个设计的指导,总领整个设计。
图4-1主程序流程图
本设计的主程序流程图如图4-1所示,单片机在上电之后紧接着就需要进行初始化,单片机在工作之前,先要对是否按下清零键进行一次检测,如果检测到清零键已经被按下了,就将重量的初始值置为零。接下来判断价格设置键是否被按下了,如果检测到价格设置键被按下了就进入下面的AD转换子程序,接下来的工作就是把上面所得到的数据交给数据处理程序进行处理,处理完成之后就进行显示和语音播报。
图4-2 LCD1602初始化子函数流程图
初始化子函数流程图如图4-2所示,首先完成对液晶自定义字库的调用设置DDRAM的地址后在第一行显示,根据显示数据的首地址来决定循环量的大小,在循环过程中不断的取字符代码直到终止,第二行的显示原理及过程和第一行一样,当两行都显示完毕之后就结束子程序。
4.2 程序设计原理
在硬件电路搭建起来以后,程序的设计就成了重中之重,一个设计能否顺利的实现预期的功能,不仅仅取决于硬件电路的搭建,程序出一点点问题也是不行
的。程序是这个设计的“血液”,有了程序这个“血液”设计也就“活了”。
在写程序之前先要对整体做一个设想,从程序实现的功能以及程序的构成等方面,这是写出一个能用程序所不可缺少的步骤[16]。首先画出了程序流程图,在检查程序流程图没有错误之后,按照流程图开始构思写程序,在开始前首先要对系统做一次初始化,即将重量的初始值赋零,紧接着判断清零键S3是否被按下,如果是调用清零,如果不是判断价格设置键S6是否被按下,若价格设置键被按下,则调用价格设置程序开始设置价格,然后启动模数转换程序开始数据的转换,完成以后调用语音数据开始播报总重量和总价。若果价格设置键没有被按下,则按照正常的程序进行下去,只是在播报价格的时候把总价播报为零元,总重量还是照常播报。
4.3 本章小结
本章介绍了系统软件设计部分,列出了主程序流程图以及液晶模块初始化子函数流程图,说明了程序设计原理。程序流程图是设计程序的主线,是完成一个完整的程序所必不可少的部分。