新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于89C55和GAL16V8,MC1413的步进电机驱动器的设计(06-100)

基于89C55和GAL16V8,MC1413的步进电机驱动器的设计(06-100)

——
作者:哈尔滨圣邦微电子有限公司 任明岩 孙金英 钱海波时间:2008-04-07来源:电子产品世界收藏

  软件设计

本文引用地址:http://www.eepw.com.cn/article/81278.htm

  通常,的脉冲控制是由逻辑电路实现的。在计算机控制的系统中,也可以通过编制程序,由扩展I/O口输出脉冲来决定电机的运行方式、方向及转速。这种方式电路简单、控制灵活,但占用CPU的时间过多,每次驱动电机时,PC机都得被占用。GAL器件有多种型号,根据设计的需要,同时从经济的角度考虑,选用GALl6V8来实现四相混和式进行控制。使用ABEL语言编程,原码如下:

 module motor
 title
 Operation of the simulator on devices with
 motor
                      DATA I/O Corp.      21 10 2002
          FB1     device 'P16V8R';
          D1,D2,D3,D4        pin 2,3,4,5;
          F1,F2,F3,F4,F5,F6,F7,F8      pin
  19,18,17,16,15,14,13,12;
  equations
          F8      = D1&D2&D3&D4;
          F7      = D1&D2&D3&!D4;
          F6      = D1&D2&!D3&D4;
          F5      = D1&D2&!D3&!D4;
          F4      = D1&!D2&D3&D4;
          F3      = D1&!D2&D3&!D4;
          F2      = D1&!D2&!D3&D4;
          F1      = D1&!D2&!D3&!D4;
end motor。

  设置软件陷阱

  当程序进入到非程序区,只要在非程序区设置拦截措施,使程序进入陷阱,然后强迫程序回到初始状态。如对CPU的RST指令对应的字节码为0FFH,如果不用的程序存储区预先写入0FFH,则当程序因干扰而“飞”到该区域执行代码时,就相当于执行1条RST指令,从而达到系统复位的目的。

  程序流程图如图2。



推荐阅读

评论

技术专区

关闭