网站导航: 首页 > 设计参考 > 正文 文章搜索
用AVR单片机驱动6线步进电机
 
文章编号:
100713171114
文章分类: 单片机 AVR
点 击:
...
关 键 词: 步进电机
文章来源:
互联网
摘 要:
介绍如何用AVR单片机控制6线步进电机,并给出源代码

  自从六十年代初期步进电机面世以来,在过去几年它的重要性大大提高了 它用来驱动时钟和其
他采用指针的仪器,打印机 绘图仪 磁盘光盘驱动器 各种自动控制阀 各种工具,还有机器人等
的机械装置 关于马进电机工作原理请参考有关资料 
    下面用单极 1-2 相激磁方法步进电机做实验,即1 极 2 极 1 极 2 极 ....极以次循环,如何
用单极二相激该方法控制步进电机,由读者或用户自行编制程序实验 

实验选用 4.5V 步进电机,用 5V 即可,实验时节省一组步进电机驱动电源;
型号:MA82135; 相数:2 相; 电压:4.5V; 电流/相:0.12A; 电阻欧姆:34 /相; 重量:30g

 
  1. ;*********************************************   
  2. ;*   步进电机控制程序(单极 1-2 相)            *   
  3. ;*                                           *   
  4. ;*SLAVR742.ASM                               *   
  5. ;*use ULN2803 ;使用 PC0-PC3 驱动步进电机      *   
  6. ;*use 11-17new bord                          *   
  7. ;*********************************************   
  8. .include"8515def.inc"    
  9. .def   temp    =r16    
  10. .def   dt      =r19    
  11. .def   np      =r17    
  12. .def   step    =r18    
  13. .def   TStep   =r20    
  14. .def   cnt     =r21    
  15. .equ   turntab=0x0200    
  16. .org  $0000    
  17.        rjmp   RESET    
  18. .cseg    
  19. .org  0x010    
  20. RESET:    
  21.        ldi  temp,low(RAMEND)  ;设堆栈   
  22.        out  SPL,temp    
  23.        ldi  temp,high(RAMEND)    
  24.        out  SPL+1,temp    
  25.        ser   TEMP    ;C 口设置为输出   
  26.        OUT   ddrc,TEMP    
  27.        ldi   zl,low(turntab*2)  ;步进电机旋转资料指针   
  28.        ldi   zh,high(turntab*2)    
  29.        ldi   np,4   
  30.        ldi   temp,$44    
  31.        out   portc,temp   ;初始化   
  32.        ldi   TStep,$25    
  33.        rcall delay    
  34.        ldi   cnt,10   
  35.        clt    
  36. rep:   ldi   step,192   
  37.        ldi   TStep,1     ;1--255   
  38.        rcall turn    
  39.        dec   cnt    
  40.        brne  rep    
  41. loop:  nop    
  42.        rjmp  loop    
  43. ;*************************************************************   
  44. ;  t=1  uncircle turn   ;T=1 逆时针转                         *   
  45. ;  t=0   circle  turn   ;T=0 顺时针转                         *   
  46. ;   96  step  a  turn                                        *   
  47. ;  TStep is  time  of a step  ;                              *   
  48. ;*************************************************************   
  49. turn:  brts uncircle  ;判转向   
  50.        inc   np   ;正转   
  51.        cpi   np,8   
  52.        brne  next    
  53.        clr   np    
  54. next:  push  zl    
  55.        add   zl,np    
  56.        lpm    
  57.        out   portc,r0    
  58.        pop   zl    
  59.        rcall delay    
  60.        dec   step    
  61.        brne  turn    
  62.        ret    
  63. uncircle:    ;反转   
  64.        dec   np    
  65.        cpi   np,$ff    
  66.        brne  next    
  67.        ldi   np,$07    
  68.        rjmp  next    
  69. delay:  push   TStep  ;延时子程序   
  70. del1:   ldi    dt,70   
  71. del2:   push   dt    
  72. del3:   dec    dt    
  73.         brne   del3    
  74.         pop    dt    
  75.         dec    dt    
  76.         brne   del2    
  77.         dec    TStep    
  78.         brne   del1    
  79.         pop    TStep    
  80.         ret    
  81. .org   turntab    
  82. ;       0    1    2    3    4    5    6    7  ;步进电机旋转资料表   
  83. .db    0x11,0x99,0x88,0xcc,0x44,0x66,0x22,0x33    
  84.    

 

 
相关文章:

 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4