本 科 毕 业 设 计 第
4 软件设计
系统软件设计说明
20页 共41页
在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。
在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。
模块程序设计法的主要优点是:
1)单个模块比起一个完整的程序易编写及调试;
2)模块可以共存,一个模块可以被多个任务在不同条件下调用; 3)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。
本系统软件采用模块化结构,由主程序﹑定时子程序、避障子程序﹑中断子程序显示子程序﹑调速子程序﹑算法子程序构成。
4.1主程序设计
主程序清单如下:
limiw equ 30h ;厘米位
miao equ 31h ;秒位 fenmi equ 32h ;分米位 fmiao equ 33h ;分秒位 meter equ 34h ;米位 fenzh equ 35h ;分位 point equ 36h ;小数点位 shimi equ 37h ;十米位 shifn equ 38h ;十分位
本 科 毕 业 设 计 第
sudu equ 39h ;速度控制 jishk equ 3ah ;记时开始
zhond equ 3bh zhodu equ 3ch zhon equ 3eh 21页 共41页
maicho equ 3fh jinweb equ 40h bhcs equ 41h
dpan equ 42h fenchu equ 43h fencun equ 44h pand equ 45h
fenmc equ 51h org 0000h ajmp main org 000bh ajmp st0 org 001bh ajmp st1 org 0100h main:
mov limiw,#00h mov miao,#00h mov fenmi,#00h mov fmiao,#00h mov meter,#00h mov fenzh,#00h
本 科 毕 业 设 计 第
mov point,#0bh mov shimi,#00h mov shifn,#00h mov jishk,#00h mov zhond,#00h mov zhodu,#00h mov zhon,#00h mov maicho,#00h mov jinweb,#03h mov bhcs,#00h mov sp,#6fh mov tmod,#21h mov th0,#3ch mov tl0,#0b0h mov th1,#9ch mov tl1,#9ch setb ea setb et0 setb et1 mov p1,#0aah acall xianshi 软件流程 如图4.1流程图所示:
22页 共41页
本 科 毕 业 设 计 第
初始化 23页 共41页
N 开关是否按下 Y 低速行驶 N 是否遇到黑线 Y 计时开始 计里程开始 高速行驶 转向子程序 Y 是否偏离 N Y 是否有障碍N 是否有光源 N 是否检测到黑线 避障子程序 Y 驶向光源 N 停车 Y
图4.1 流程图
本 科 毕 业 设 计 第
4.2显示子程序设计
程序清单如下: xianshi:
mov p1,#0aah mov p1,#0cch mov a,limiw swap a add a,miao mov p1,a nop nop
mov p1,#0ddh mov a,fenmi swap a add a,fmiao mov p1,a nop nop
mov p1,#0eeh mov a,#0b0h add a,point mov p1,a nop nop
mov p1,#0eeh mov a,meter swap a add a,fenzh mov p1,a
24页 共41页