Thứ Sáu, 14 tháng 2, 2014

Điều khiển động cơ bước dùng 89S52

Bài viết này muốn cho các bạn hiểu rõ về động cơ bước và hoạt động của nó dựa trên VĐK 8051
- Hoạt động của động cơ bước:
    + Full-step
  + Half- step

- Mạch điều khiển:


 +  



+ Mạch nguyên lý

+ Mạch nguồn

+ Nút nhấn

+ Mạch in


+ Thành phẩm





CHƯƠNG TRÌNH HOẠT ĐỘNG

;-----------------------------------------------------------------------------------------------------------------
; Chuong trinh dieu khien dong co buoc -6 nut nhan:
;   +Nhan START de khoi dong chuong trinh hoat dong
;           + Nhan  STOP (nut Reset cua vi dieu khien) de   dong co  buoc
;           + Nhan thi dong co quay"1 buoc hay 1/2 buoc "phu thuoc theo su lua chon la haftstep hay fullstep
;           + Nhan lien tuc dong co quay lien tuc tuy thuoc vao che do chon la haftstep hay fullstep   
;---------------------------------------------------------------------------------------------------------
ORG 00H
                         
                        start                 equ      p1.0   
                        fullthuan          equ      p1.1
                        fullnghich        equ      p1.2
                        haftthuan         equ      p1.3
                        haftnghich       equ      p1.4
                                               
                        STEPPER     equ p2
                       
MAIN:
       mov A,#00000000B                              ; NAP TRẠNG THÁI ĐẦU ĐỘNG CƠ BƯỚC
       mov STEPPER,A                                  ; XUẤT RA ĐỘNG CƠ
       mov  R0,#0                                             ; GẮN BIẾN
;================================================================

KIEMTRAPHIM:                                                      
;-------------------
            nutstart:  mov r5,#50  
                        a0:  jb start,nutso1
                                       djnz r5,a0
                                                mov R0,#1
                                               
   nutso1:   mov r5,#100       
        a1:           jb fullthuan,nutso2 
            djnz r5,a1                                                                                            
                                    mov R0,#2       
;-------------------
   nutso2:         mov r5,#100
                a2:   jb fullnghich,nutso3
                        djnz r5,a2
                        mov R0,#3     
        
      
;-------------------
            nutso3:            mov r5,#100
                        a3:       jb haftthuan ,nutso4 
                                    djnz r5,a3                              
                         mov R0,#4     
        
;-------------------
            nutso4:            mov r5,#100
            a4: jb haftnghich,sosanh
                        djnz r5,a4                                
                        mov R0,#5
      
;================================================================
            sosanh:
;-----------------------------------------------------    
batdau:          
            cjne R0,#1,quayfullthuan                       ;  CHUONG TRINH NUT START
                                                mov A,#00000011B
                                                acall quay                                          
                                                mov R0,#0
                                               
;---------------------------------------------------      
quayfullthuan:
           
      cjne R0,#2,quayfullnghich                        
            rl A
            rl A                      
            acall quay
            mov  R0,#0                 
;-------------------        
quayfullnghich:
           
      cjne R0,#3,quayhaftthuan   
            rr A
            rr A                      
            acall quay
        mov  R0,#0 
;-------------------        
quayhaftthuan:
                           
                        cjne R0,#4,quayhaftnghich                
                        rl A                                         
                        acall quay
                        mov  R0,#0 



;-------------------      
quayhaftnghich:        
                                                                       
                        cjne R0,#5,quit                     
                        rr A                                                               
            acall quay     
            mov  R0,#0                           
;-------------------
quit:                
        ajmp KIEMTRAPHIM       
                        ret
;================================================================
quay:  
               acall delay
       mov  STEPPER,A
       PUSH ACC
       call delay10ms
       POP ACC                                                    
       ret                
       
;================================================================
;******  TAO THOI GIAN TRE KHOANG 200mS - TIME 0 - MODE1 

delay:
       push 00H                 
       mov R0,#2                                   
       mov TMOD,#01H            
            loop2:
       mov TH0,#HIGH(-50000)             
       mov TL0,#LOW(-50000) 
       setb TR0                   
       jnb TF0,$                
       clr TR0                   
       clr TF0                
       djnz R0,loop2             
       pop 00H                                                 
       ret
;=================THOI GIAN DELAY DU DE TAT TRANG THAI LED TRUOC ;================================DO ============================

delay10ms:
                        mov R5,#100
del1:    mov R6,#048
                        djnz R6,$
                        djnz R5,del1
                        ret                                       
end




Không có nhận xét nào:

Đăng nhận xét