利用MedWin开发应用程序的一般步骤为:
(1)新建项目文件。在项目名称输入栏内,用户必须输入项目名称,并且项目名不得超过8个字符,不可以使用汉字以及“- ,?,*,/” 等DOS 文件名所不可以使用的字符,也不可以输入盘符和路径。
(2)添加文件。
(3)打开项目文件。对于已经存在的项目文件,可以直接打开项目文件进入第四步操作。
(4)编辑,编译/ 汇编/ 连接。
(5)错误信息关联。如果没有错误,进入第优尔步操作;如果出现错误,修改文件后重复进行第四步操作。
(6)产生代码并装入仿真器。
4.2 武器射击发数记录仪的软件模块及流程图
4.2.1 主程序流程图
武器射击发数记录仪的软件主要完成的任务是对整形得到的脉冲进行计数,对记录的数据进行存储、按键实现串口的通信及对存储器的清零、读取时钟及存储等。系统的主程序实际上是一个等待中断的,其具体流程图如图4.1所示。
图 4.1 系统主程序流程图
4.2.2 系统各模块程序设计
4.2.2.1 时钟模块程序设计
DS12C887各个状态寄存器的参数设置如下:状态寄存器A置为20H,它表示采用的时钟频率为32678Hz,禁止脚SQWF输出;状态寄存器B置为1A,它表示允许更新周期结束中断,为24小时模式,时标寄存器内容用十进制表示,禁止方法输出和夏令时服务。DS12C887的数据口与MCU的PO口直接相连,MCU通过PO口对DS12C887初始化并读取其当前时钟值,以便串口通信进行显示和外部存储器进行存储。初始化子程序流程图如图4.2所示:
图 4.2 DS12C887 初始化子程序流程图
图 4.3 系统时钟主程序和中断子程序
4.2.2.2 存储模块程序设计
该模块实现对时间和记录数据的存储功能。AT24C04读写子程序流程图如图4.4所示:
图4.4 AT24C04读写子程序流程图
4.2.2.3 串口通信模块程序设计
该模块完成从存储器中读取日期和发数到上位机显示的功能,并且当存储器存满时显示已存满,可以方便清除存储器的操作,保证系统的正常运行。RS232接口通讯流程如图4.5所示。
图 4.5 RS232接口通讯流程
4.2.2.4 计数子程序设计
单片机对设计发数的计数功能由计数子程序完成,为了不让计数程序占用单片机过多的资源,本设计采用中断计数方式,产生一个脉冲中断计数一次。其流程图如图4.6所示。
图 4.6 计数子程序流程图
4.2.2.5 按键子程序设计
两个按键,分别实现通讯与清存储器的功能,能够和上位机进行通讯,并且当外部存储器存满时可以清零继续存储。其流程图如图4.7所示
图 4.7 按键子程序流程图4.3 小结
本章首先介绍了软件开发平台MedWin,阐述了软件开发的一般步骤。在对武器设计发数记录仪的程序组成有了大体了解之后,对整个系统的软件进行了模块化分析,确定了各个模块的功能之后。概述了系统主程序的工作流程,设计并实现武器设计发数记录仪的各功能所需的子程序及流程图。 MedWin+AT89C51单片机武器射击记录仪设计+PCB图纸(10):http://www.youerw.com/zidonghua/lunwen_2571.html