(3) 元器件布局。采用手工布局,把元器件一个一个地移动、旋转,放到板边以内,按照一定的规则摆放整齐。
(4) 布线。综合运用自动布线与手工布线:自动布线前,先用手工布一些重要的网络;自动布线以后,用手工布线对PCB的走线进行调整,直到全部布通。
(5) 复查。根据“PCB检查表”,内容包括设计规则,层定义、线宽、间距、焊盘、过孔设置,并且重点复查器件布局的合理性。
在设计过程中还要注意电源、地线的处理,数字电路与模拟电路共地的处理和设计规则检查等方面。
2.6 本章小结
本章主要讨论了如下几方面的内容:
(1) 设计了单片机最小系统,包括电源电路、时钟电路、复位电路的设计。
(2) 介绍了RS232标准总线和STC89C52的串行通信的特点,并设计了串口通信电路。
(3) 选择了PMD03C型步进电机和相应的PMM33A2-C11型步进电机驱动器的型号并设计了驱动器接口电路。
(4) 完成总体硬件电路和PCB板的设计,并制作出PCB板。
3 软件设计
本系统主要流程图如图3.1所示,主要包括系统初始化、通信参数设置、串口通信、电机驱动部分。在本系统中,上位机用MFC实现串口编程和参数设定,单片机由C语言完成编程。
图3.1 系统主要流程
3.1 下位机控制程序
3.1.1 Keil C51
本文中单片机软件部分采用Keil C51软件编写。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能性、结构性、可读性、可文护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起。
在Keil C51中做完一个完整的工程后,还需要在Keil C51中进行进一步操作才能将已经编译好的程序下载到单片机中供其运行,因为编写程序只是纯软件的开发过程。将Keil C51生成后缀名为.HEX的文件写入单片机后可查看调试结果。
Keil C51的集成环境如图3.1.1所示,本课题所建工程中将程序集成在一个文件“下位机步进电机.c”中。
图3.1.1 Keil C51的集成开发环境
3.1.2 程序总体设计
单片机程序流程图如图3.1.2所示。源程序见附录B。
当接通电源时,首先对单片机的工作状态进行初始化。主要内容有:设置串行口工作在模式1,8-bit UART, 使能接收;设置定时器1工作在模式2,8-bit reload;SMOD=1,串行口波特率加倍;设置为最常用的波特率9600b/s;默认message=0x00;打开总中断和串口中断等等。
由于message=0x00,单片机处于休眠状态,等待中断唤醒,定时器不工作,电动机不运转。
直到串口接收到中断,并且message=0xaa时,单片机通过串口接收上位机发出的数据并进行处理后,得到控制步进电机正反转(d)、转速(v)、工作模式(modle)、行程(step)的数据:
(1) 若d=0xdd,则CCWX=0,电机正传,滑块上升;若d=0xcc,则CCWX=1,电机反转,滑块下降。
(2) 利用数据v设置控制步进电机转速的时钟信号,每当产生一次上升沿,步进电机转动一步。
(3) 若modle=0,则步进电机单步运行后进入等待中断状态;若modle=1,则步进电机连续运转,直到接收到从上位机发出的停止运行的中断后进入等待中断的状态;若modle=2,则步进电机运转step所设定的行程后进入等待中断状态,或者在运行过程中,接收到中断命令直接进入等待中断状态。 三通管拉制仪材料分配系数精确控制系统设计+PCB+源程序(8):http://www.youerw.com/jixie/lunwen_2394.html