图3.2 51单片机最小系统及按键电路
3.4 按键电路
采用6个开关来控制步进电机,即“单拍”、“双拍”和“单双拍”、“启动闭合”、“高低速切换”、“正反转切换”。当波动开关按下其中一个按键时,当开关向上时,使对应IO口就接通5v电源;向下时,对应IO口接通地。如下为按键电路:
图3.3 按键电路
7
3.5 步进电机驱动电路
步进电机的驱动电路如图3.3所示,驱动芯片采用ULN2003A。
图3.4步进电机的驱动电路
3.6 步进电机拍数显示电路
由80C51的P0口取出显示码,从80C51的P2.0-P2.3输出位选码,设计中我们主要用到4位显示步数既可。原理图如下:
图3.5 显示电路
8
3.7 LED显示电路
用3个不同颜色的发光二极管来作为指示灯显示,将P3.6接D2,P3.7接D3,P3.3接D1,正转时D2指示灯亮,反转时D3指示灯亮,不转时D指示灯亮。电路图如下:
图3.6 指示灯接线图
9
第四章 程序设计
1.1 程序设计思路
设计说明:首先复位单片机,然后从P3口读出开关状态,判断是否启动,没启动绿灯亮重新确认启动。启动后再次读取P3口数据,判断工作方式并将对应的用来存储步进电机工作方式字的数组首地址值给q。由P3.4口的双向开关来控制步进电机的正反转,如果是正转则红灯亮,反转则绿灯亮。在电机每走一步后,步数记数加1,然后通过LED显示把工作步数显示出来。再从P3口把状态信息读出来,与之前的P3口的状态信息进行比较。如果状态信息没有改变,电机继续运行。如果状态信息改变了,就需要重新返回程序的开端,对电机的运行状态进行判断,让电机重新以新的状态运行。由此,开关的状态在电机每走一步都会查询一遍,做到实时地反映。
10
开始 P3口、步数清数码管输出0 启/停按键K3按下? 选D1显示灯亮 N 以已选择的序列输出控制字 启/停按键K3按下? 步数自增一 Y K0/K1/K2选择工作方式控制字序列 数码管输出步进步数 正/反转按键K4按下? N 调速键K5按下? N Y 选择正转控制字序列 D2亮 选选择反转控制字序列 D3亮 延时2 1 延时
图4.1 总体流程图
11