主要是利用了单片机的P0口和P2口。采用两个共阳数码管作显示。第一个数码管接的a、b、c、d、e、f、g、h分别接P0.0~P0.7口,用于显示电机正反转状态,正转时显示“1”,反转时显示“一”,不转时显示“0”。第二个数码管的a、b、c、d、e、f、g、h分别接P2.0~P2.7口,用于显示电机的转速级别,共七级,即从1~7转速依次递增,“0”表示转速为零。电路如图6所示。
图 6 显示电路
(5)总体电路图
把各个部分的电路图组合成总电路图,如图 7所示。
图7 Proteus仿真图
10
绘制原理图和PCB图是注意库中没有的原件要自己会出,注意电气特性。PCB图布线要尽量少交叉。
图 8 Protel电子线路原理图
11
图9 PCB图
2.3.4元件清单
表三 元件名称、大小和封装形式.
元件名称 R1 R6 R4 R5 R3 X1 C1 C2 C3 R2 R7 R8 A2 A1 U1 U3 S2 S3 S5 U2 大小 1K 10K 10K 10K 10K 12MHZ 22 22pF 22pF 100 100 100 AMBERCA AMBERCA AT89C51 MOTOR STEPPER SW-PB SW-PB SW SPDT ULN2803 封装形式 AXIAL0.4 AXIAL0.3 AXIAL.3 AXIAL0.3 AXIAL0.3 XTAL1 RB.2/.4 RAD0.1 RAD0.1 AXIAL0.3 AXIAL0.3 AXIAL0.3 DIP12 DIP12 DIP40 TO-3 DIP DIP4 SDPT DIP18 12
2.3.5 软件设计
(1)系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。若初始化P1=11H、速度和方向初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图10所示。
延时 启动计时器 Y 停止计时器 N 速度值为0? Y 停止计时器 启动开关为0? N 显示 初始化 开始 13
图10主程序流程图
(2)定时中断设计步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就快。在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。程序流程图如图11所示。
图 11定时中断程序流程
中断返回 恢复现场 重送相关状态 发速度脉冲 读方向指示 N 保护现场 T0中断入口 中断次数-1=0? Y Y 14