Flash存储器编程是,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端.
3.3 各单元模块的联接
完成各模块的设计后,模块按照功能的不同连接成整体的电路图。各模块的具体联接图见附录一。
23 第 页
4 软件设计
4.1 软件设计原理及设计所用工具
软件的主要功能是根据系统的工作原理,框图,先制定各部分程序的流程图,然后再根据流程图编写各部分程序,通过调试各部分程序运行正确无误后,再进行主程序的调试,看是否能实现预期的功能。
系统能否完全正常工作,最主要的也是最关键的是看软件程序是否正确,它关系到系统功能的实现,可以说,软件是一个系统的灵魂。
本设计所使用的软件工具如下: 1.开发平台:KeilC51; 2.编写语言:C/C++;
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,是目前最流行开发80C51系列单片机的软件,提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(micro;Vision)将这些部份组合在一起。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
Keil C51语言编译工具都是以ANSL-C作为基础进行开发的,因此,一种C语言环境下所编写的 C语言程序,只需将部分与硬件相关的地方和编译连接的参数进行适当修改,就可方便移植到另外一种系列上。也就是说,基于 C语言环境下的嵌入式系统能基本达到平台的无关性。
用C语言开发的代码便于开发小组计划项目,灵活管理,分工合作以及后期维护,基本上可以杜绝因开发人员变化而给项目进度,后期维护或升级所带来的影响。从而保证整个系统的品质,可靠性以及可升级性。
4.2 主程序流程图
恒压供水控制器对生活供水、消防供水系统进行监控,要求软件具有高可靠性、高稳定性、高抗干扰能力,检测信号准确,有良好的动静态性能,该软件按结构化流水设计,分为若干功能部分,采用C语言编写。本设计的软件主程序用来动态显示系统的压
24 第 页
力,压力的采样和系统的控制环节都在中断处理程序中, 主流程图如图4-1:
开始 主程序初始化,开T0中断,设置T0为10ms的中断 Y 是否键按下 N 按键处理子程压力的动态显示
图4-1 主程序流程图
4.2.1 T0中断服务程序
主要包括:A/D转换程序;D/A转换程序;控制程序。
程序流程图如下:如图4-2示,变频器控制M1电机,M2电动机由单片机控制,其标志位为M2。
1.A/D转换子程序
其主要任务是把压力传感器检测的压力转换成数字量,并送入单片机处理,程序见附录。
2.D/A转换子程序
其主要任务是把经PID处理过的数据转换成模拟量,来控制变频器输出电压的频率,来控制水泵的转速,以达到控制供水压力的目的。
25 第 页
进入T0中断 读A/D转换器 PID调节 N N 是否为最大值 N Y Y 标志位M2是否为1 标志位M2是否为1 Y 清标志位M2为0 ,(关M2电机) 是否为最小值 Y N N 置标志位M2为1,(开M2电机)。 PID调节数据送D/A转换器 返回 图4-2 T0中断服务程序流程图
26 第 页
相关推荐: