?? step.asm
字號:
;實驗目的:步進電機的使用
;1、步近電機的驅動
;2、如何控制步進電機的位移距離
;系統設計
;1、本實驗采用4相4拍步進電機,步進角為7.5
;2、步進電機驅動口連接在RA0-RA3
;硬件要求:
;撥碼開關S1第6位到第8位置ON,S1其他位和其他撥碼開關斷開
;撥碼開關S15置ON
;其他撥碼開關關閉。
include<p16f877a.inc> ;包含877A的頭文件
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
;芯片配置字,看門狗關,上電延時開,掉電檢測關,低壓編程關,加密,4M晶體HS振蕩
#define step1 9h ;轉動第1步驅動信號(不同的電機,可以引出線順序不一樣)
#define step2 0ch ;轉動第2步驅動信號(本程序以“常州市豐源微特電記有限公司的35BY48S053”電機為基礎)
#define step3 6h ;轉動第3步驅動信號
#define step4 3h ;轉動第4步驅動信號
count equ 20h
org 00h ;復位入口
nop ;ICD所需要的空指令
goto main ;跳轉到主程序
org 05h
;****************************主程序***************************
main
banksel adcon1
movlw 07h
movwf adcon1 ;設置所有A口為普通數字口
banksel trisa
clrf trisa ;設置A口為輸出
clrf status
clrf porta
movlw .12 ;電機旋轉一周需循環次數 360/(7.5*4)
movwf count
loop
movlw step1 ;第1步
movwf porta
call delay
movlw step2 ;第2步
movwf porta
call delay
movlw step3 ;第3步
movwf porta
call delay
movlw step4 ;第4步
movwf porta
call delay
decfsz count,1 ;是否旋轉完一周
goto loop ;否,繼續轉動
clrf porta ;是,停止轉動
goto $-1 ;停機
;*******************************延時程序********************************
;控制輸出的頻率
delay
movfw 0FH
movwf 21h
movlw 0ffh
movwf 22h
decfsz 22h,1
goto $-1
decfsz 21h,1
goto $-5
return
;******************************源程序結束*******************************
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -