首先,单击
,弹出如上图5-8所示对话框,在目标页面上设置对应的晶
,进入调试界面如下图5-9所示。
振频率。其他不作修改。设置完成后,单击
图5-9 调试界面
点击
中对应的工具按钮则可以开始调试。
5.3 Proteus仿真软件
Proteus软件是英国Lab Center Electronice公司开发的EDA工具软件。从1989年问世至今已有20年的历史,在全球得到广泛应用。Proteus软件除具有和其他EDA工具软件一样的原理编辑、印制电路板制作外,还具有交互式的仿真功能。它不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界上最先进、最完整的多种型号微处理器系统的设计与仿真平台,真正实现了在计算机中完成电路原理图设计、电路分析与仿真、微处理器程序设计与仿真、系统测试与功能验证到形成印制电路板的完整电子设计、研发过程。
Proteus软件由ISIS(Intelligent Schematic Input System)和ARES(Advanced Routing and Editing Software)两个软件构成,其中ISIS是一款智能电路原理图输入系统软件,可作为电子系统仿真平台;ARES是一款高级布线编辑软件,用于制作印制电路板(PCB)。
第26页
Proteus电路原理图设计是在ISIS软件环境中进行绘制,该软件编辑环境具有友好的交互式人机界面,其设计功能强大,使用方便。
第27页
第6章 系统软件设计
6.1 系统流程
整个云台控制系统分为初始化,键盘扫描,串口中断,延时程序和步进电机运转五部分。主函数通过调用各子程序来实现键盘扫描,串口中断程序的调用来实现步进电机的控制。本设计的系统主程图如图6-1所示,中断子程序流程图如图6-2所示。
开始串口、定时器初始化自动运行标志位清零自动运行判断自动运行标志位按键扫描读取键值是否有键按下?是云台向上转动是是否等于1?否云台向下转动是否等于2?否云台向上左转动是是否等于4?否是云台向右转动是云台向上转动是否等于8?否是否等于16?
图6-1 系统主流程图
第28页
中断服务子程序读SBUF是云台向上转动是是否等于A?否云台向下转动是否等于B?否云台向上左转动是是否等于C?否是云台向右转动是云台向上转动是否等于D?否是否等于Z?否中断返回
图6-2 中断子程序流程图
6.2 初始化模块
所谓初始化就是在应用系统中,需要对软件进行初始化设置,以能够满足该系统的正常工作。在本系统中,如果没有初始化,则该系统无法正常工作。
本系统中初始化程序包括两部分,一部分是定时器初始化,另一部分是串口初始化。而这些都是通过设置相应的特殊功能寄存器来实现的。本设计中定时器初始化包括定时/计数器选择、定时/技术器工作方式、计数器装初值、打开定时器;串口初始化包括串口工作方式设置、打开串口、开总中断。和定时/计数器有关的特殊功能寄存器有TOMD、TCON,和串口相关的特殊功能寄存器有SCON、PCON。前面已经介绍了特殊功能寄存器,这里不再赘述。串口工作方式1的波特率由定时/计数器T1、T2的溢出速率和SMOD共同确定,计算公式为波特率=
第29页
(2SMOD/32)2(TI溢出率),TI溢出率=fosc/{12×[256—(TH1)]},本系统波特
率为9600bit/s,晶振频率为11.0592MHz,串口选择工作方式为1,所以初值等于0xfa。
定时计数器的初始化编程步骤:
1)根据定时时间要求或计数要求计算初值; 2)工作方式控制字送TMOD;
3)送计数初值到THx和TLx寄存器中; 4)启动定时/计数器,即将TRx置位。
6.3 延时模块
通过用C语言写一段循环程序,来占用CPU一段时间从而达到延时的目的。在该系统中,延时程序有至关重要的作用,一是作为普通的延时程序,而是产生步进电机的工作所需脉冲频率,延时的多少决定步进电机的转速,在本系统中,对步进电机的转速没有做过多要求,所以采用了for循环语句构成的比较简单的延时程序,如果对延时时间、步进电机转速有要求的系统中,则可以使用定时器定时,定时器的精度相当高。下面是采用普通延时的程序源代码: void delay(uint z)//延时
{ uint x,y;
for(x=z;x>0;x--) for(y=110;y>0;y--); }
6.4 串口中断模块
在本系统中,单片机通过串口向单片机发送远距离控制信号,一旦PC机发送控制信号后,单片机接受到信息产生中断,通过中断服务程序去控制步进电机动作。由于串口中断具有优先级别高的特点,所以不需要担心键盘和串口信息发生冲突。
第30页