数字式直流电机调速系统设计 毕业论文 下载本文

开始源程序编辑有语法错误?否在线动态调试是有逻辑错误?否EPROM固化是结束

图4-1 单片机软件调试流程图

软件设计和调试可以分为下面几个步骤:

第一步,建立用户源程序。用户通过开发系统的键盘、CRT显示器以及开发

32

系统的编辑软件,按照所要求的格式、语法规定,把源程序输入到开发系统中,并保存在磁盘上。

第二步,在开发系统机上,利用汇编软件对第一步输入的用户源程序进行汇编,变为可执行的目标代码。

第三步,动态在线调试。也就是对用户源程序进行调试。第一、二步是一个纯粹的软件运行过程,这一步要求在线仿真器的配合,才能对用户源程序进行调试。 其中对于与用户样机无硬件联系的用户程序,如计算程序在没有语法错误的情况下仍然需要通过在线调试的手段考虑可能存在的逻辑错误,一旦发现需要返回第一步进行修改,直到逻辑错误纠正为止。对于与用户样机硬件紧密相关的用户程序,如接口驱动程序,一定要先排除硬件故障后再于硬件配合,通过在线调试考虑可能存在的逻辑错误,一旦发现需要返回第一步进行修改,直到逻辑错误纠正为止。

第四步,将调试完毕的用户程序通过EPROM编程器,固化在EPROM中。

4.1.2主程序设计

主程序包括如下3个环节:

(1)实现各种初始化,包括设置堆栈指针、DAC0832芯片零输入、8255A芯片初始化、定时/计数器0初始化、时钟初始化输入,以及开中断、定时/计数器启动等。

(2)实现显示。

33

(3)不断地进行键扫描,判断是否有键按下。无,返回现实;有,根据按键实现相应的人机对话。

主程序流程图如图4-2所示

开始单片机初始化设置(包括设置堆栈指针、DAC0832及8255A及8155芯片、定时器/计数器0等的初始化设置)开中断显示时钟及各种电机参数不断对键盘进行扫描,判断有键按下否?否是延时20ms不断对键盘进行扫描,判断有键按下否?否是对按键进行分析,得键号转各处理子程序结束

图4-2 主程序流程图

34

主程序的内存分配如表4.1所示

表4.1 系统设计内存分配表

地址 30H~4FH 50H~63H 64H~67H 68H~6FH 70H~76H 77H

功能 堆栈 置采样值 置滤波结果 置转换结果 时钟缓冲区 NC 地址 78H~7AH 7BH 7CH 7DH 7EH 7FH 功能 显示缓冲区 键号记忆区 采样值缓存区 报警信息存储单元 输出控制存储单元 给定值存储单元 4.1.3时钟初值输入子程序

该子程序的功能是要求通过6次按键,输入系统开机运行的时间。6次按键分别输入时钟的十时、时、十分、分、十秒以及秒值。该子程序需要包括以下4个功能:一是通过键扫描和键分析得到每次输入的键号;二是将每次输入的键号送到时钟缓冲区(70H~75H单元)保存;三是将时钟缓冲区的内容送到显示缓冲区;四是调用显示子程序实现显示(每铵一次键显示一次)。这里,特别要强调的是由于MCD子程序和显示子程序中均需要用到R0寄存器,而且时钟初值输入子程序本身也要用到R0寄存器,故在调用两个子程序前要先将R0的内容送到B寄存器暂时保存,待两个子程序执行完以后,再将B寄存器的内容送到R0寄存器。

35