?? abdain.asm
字號:
;步進電機正反快慢程序
org 00h
x1:mov r3,#48 ;一圈48步
start:mov r0,#00h ;正轉取碼初值
start1:
mov p1,#0ffh ;先停止
mov a,r0
mov dptr,#table
movc a,@a+dptr
jz start ;是否到了結束碼00?
cpl a
mov p1,a ;輸出運轉
call delay ;調用慢速的延時轉動
inc r0 ;取碼指針加1取下一個碼
djnz r3,start1 ;是否走了48步?
mov r3,#48 ;是則重新設定48步
start2:
mov p1,#0ffh
mov r0,#05 ;逆轉的取碼初值
start3:mov a,r0
mov dptr,#table
movc a,@a+dptr
jz start2
cpl a
mov p1,a
call delay2
inc r0
djnz r3,start3
jmp x1 ; 重復開始
DELAY: ; 延時程序 (慢速)
MOV R7,#255
D1:MOV R6,#50
D2: DJNZ R6,D2
DJNZ R7,D1
RET
DELAY2: ; 延時程序 (快速)
MOV R5,#255
D3:MOV R2,#25
D4: DJNZ R2,D4
DJNZ R5,D3
RET
table:
db 03h,09h,0ch,06h ;正轉表
db 00
db 06h,0ch,09h,03h ;反轉表
db 00
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -