專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

8255單獨(dú)控制步進(jìn)電機(jī)

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

 

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

相關(guān)文章