找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9043|回复: 1
打印 上一主题 下一主题
收起左侧

单片机加L297和L298控制步进电机

[复制链接]
跳转到指定楼层
楼主
系统的设计框架


L297、L298N与电机的电路设计

系统的总电路设计此电路由一块STC89C51,3块L297、3块L298N、3台4相4拍步进电机器以及相关的电路组成。利用单片机3个并行I/O口的部分引脚(P0.0~P0.6,P1.0.~P1.6,P2.0~P2.6)连接驱动芯片,各个端口直接与驱动芯片L297直接相连,L297与L298N共用一个+5V的电源,输出+36V的步进电机驱动电压;L298N的2、3、13、14四个输出引脚直接与一个四相四拍的步进电机相连。以同样的方式,连接另外两台电机的控制电路。

系统的总电路设计图


步进电机转速控制可由程序延时来完成,也可由定时器延时来完成,相应的程序如下:


  1. PUSH      A                 ;保护现场

  2.       MOV      R4,#N            ;设置步长计数器

  3.       CLR       C                 ;转向标志为1,转移

  4. ORL       C,D5H

  5. JC         ROTE

  6. MOV         R0,#20H                ;正转控制字首址

  7. AJMP        LOOP

  8. ROTE:    MOV         R0,27H                 ;反转控制字首址

  9. LOOP:    MOV         A,@R0

  10. MOV         P1,A                  ;输出控制脉冲

  11. ACALL       DLY                    ;调用延时程序

  12. INC          R0                      ;控制字存储地址增1

  13. MOV         A,#00H

  14. .         ORL          A,@R0                ;是结束标志转移

  15. JZ        TPL LOOP1: DJNZ  R4,LOOP        ;步数不为0,转移

  16. POP          A

  17. RER

  18. TPL:    MOV         A,R0                  ;恢复控制字首址

  19. CLR         C

  20. SUBB        A,#06H

  21. MOV        R0,A

  22. AJMP LOOP1

  23. DLY:    MOV        R2,#M

  24. DLY1:   MOV        A,#M1

  25. LOOP:   DEC        A

  26. JNZ        LOOP

  27. DJNZ     R2,DLY1              

  28. RET

  29. 7.4  变频调速程序与相应的流程图

  30. 主程序:ORC              0000H

  31.              SJMP         START

  32.              ORG          000BH

  33.              LJMP         INT0

  34.              ORG          0030H

  35. START:     MOV         DPTR,addr16           ;T0初值地址指针

  36.              MOV         R3,1BH               ;赋频率阶梯记数器值

  37.              MOV         R2,1AH               ;赋阶梯步长计数器值

  38.              CLR          C

  39.              ORL          C,73H

  40.              JC            ROTE

  41.              MOV         R0,#20H               ;正转控制字首址

  42.              AJMP         PH

  43. ROTE:      MOV         R0,#27H               ;反转控制字首址

  44. PH:         MOV         TMOD,#01H           ;T0方式1定时

  45.              MOV         TL0,#00H              ;置T0初值

  46. MOV         TH0,        #00H  

  47. SETB        TR0                    ;启动T0

  48. SETB        ET0                    ;允许T0中断

  49. LOOP:       MOV         A,R3                  ;等待中断

  50.               JNZ           LOOP

  51.               CLR          EA                    ;CUP关中断

  52.               SJMP          [        DISCUZ_CODE_2        ]nbsp;                    ;结束



  53. 中断服务程序:

  54. INT0:         PUSH         A                      ;保护现场

  55.                MOV          A,@R0

  56.                MOV          P1, A                    

  57.                INC           R0

  58.                MOV          A, #00H

  59.                ORL          A, @R0

  60.                JZ            TPL                    ;是结束标志,转

  61. RR:            DEC          R2                     ;步长计数器减1

  62.                MOV         A, #00H

  63.                 ORL          A, R2

  64.                 JZ            THL                   ;阶梯步长计数器为0,转

  65. PRL:            CLR          C

  66.                 CLR          C, 71H



  67. JNC            ROTEL           ;是降频,转移

  68.                MOV           A, #00H

  69.                MOVC          A, @A+DPTR

  70.                MOV           TL0,A            ;升频T0赋初值低8位

  71.                MOV            A, #01H

  72.                MOVC          A, @A+DPTR

  73.                MOV            TH0,A           ;升频T0赋初值高8位

  74.                AJMP           QQ            

  75. ROTEL:        MOV            A, #80H

  76.                MOVC          A, @A+DPTR

  77.                MOV            TL0,A           ;降频T0赋初值低8位

  78. MOV              A, #81H

  79.                MOVC            A, @A+DPTR

  80.                MOV              TH0,A           ;降频T0赋初值高8位

  81. QQ:            POP              A                ;恢复现场

  82.                RETI                               ;中断返回

  83. THL:           DJNZ             R3,AT            ;频率阶梯减1不为0,转

  84.                AJMP             QQ

  85. AT:            MOV              R2,1AH           ;阶梯步长赋值

  86.                INC               DPTR

  87.                INC               DPTR            ;TO初值指针更新

  88.                AJMP              PRL

  89. TPL:           CLR               C

  90.                MOV              A, R0

  91.                SUBB             A, #06H

  92.                MOV              R0, A

  93.                AJMP              RR

  94.                END
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:495287 发表于 2020-6-20 01:58 | 只看该作者
C还没鼓捣明白,汇编看着更天书了:)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表