專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

8255單獨控制步進電機

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月30日   【字體:

 

 
;單獨用8255驅動步進電機轉動,A口輸入控制信號00、01、11,所對應的轉速越來越快,B口輸出控制步進電機轉動
 ;實現(xiàn)轉速調整是通過調整延遲參數(shù)來實現(xiàn)的
 CODE    SEGMENT
  ASSUME CS:CODE
 
 START:  PUSH CS
  POP DS ;數(shù)據(jù)段和代碼段共用一個段地址
  JMP MAIN
  DAT DW 0AFFH  ;定義延遲參數(shù)DAT
  NUM DB 08H,04H,02H,01H ;定義控制步進電機的循環(huán)信號
 
 MAIN:   MOV DX,021BH; 初始化8255,A口輸入,B口輸出
  MOV AL,90H
  OUT DX,AL
 
  MOV BX,OFFSET NUM;取循環(huán)信號的偏移地址
  MOV SI,0         ;控制計數(shù)器歸零
 
 ;------步進電機控制信號循環(huán)-----
 LOP:    MOV DX,219H
  MOV AL,[BX+SI]
  OUT DX,AL
  INC SI
  CMP SI,04H
  JNZ NEXT
  MOV SI,0
 
 ;-------檢測A口輸入信號-------
 NEXT:   MOV DX,218H
  IN AL,DX
  CMP AL,00H
  JZ NEXT1     ;若信號為00,則轉至NEXT1調整延遲參數(shù)DAT
  CMP AL,01H
  JZ NEXT2     ;若信號為01,則轉至NEXT2調整延遲參數(shù)DAT
  CMP AL,03H
  JZ NEXT3     ;若信號為11,則轉至NEXT3調整延遲參數(shù)DAT
 
  MOV CX,DAT
  LOOP $
  JMP LOP
 ;------控制信號循環(huán)結束-----
 
 NEXT1:  MOV DAT,0AFFH
  JMP LOP
 NEXT2:  MOV DAT,08FFH
  JMP LOP
 NEXT3:  MOV DAT,05FFH
  JMP LOP
 CODE    ENDS
  END START
 
 
關閉窗口

相關文章