返回主页 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 论坛


;********************************************************************************
;* 日期: 2007-3-25 *
;* 版本: 3.0 *
;* 作者: 深圳学林电子有限公司 专业8051单片机教程站 *
;* 邮箱: sxj1974@163.com *
;* 网站: http://www.51c51.com http://www.8951.com 更多例程请登陆网站 *
;********************************************************************************
;* 步进电机端口:P1.0,P1.1,P1.2,P1.3 *
;* 硬件:此程序在本公司xlisp系列单片机实验仪运行通过 *
; 步进电机启动时,转速由慢到快逐步加速。 *
;* 步进电机匀速运行 *
;* 步进电机由快到慢逐步减速 * 
;********************************************************************************
;* 【版权】 Copyright(C)深圳学林电子有限公司 www.51c51.com All Rights Reserved *
;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
;********************************************************************************
; 步进电机步进角为 7.5度,一圈 360 度。
; 双四拍工作方式:
; AB-BC-CD-DA (即一个脉冲,转 7.5 度)
; 单双八拍工作方式:
; A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度)
;-------------------------------------------------------
; A组线圈对应 P1.0 (桔色)
; B组线圈对应 P1.1 (棕色)
; C组线圈对应 P1.2 (黄色)
; D组线圈对应 P1.3 (黑色)
;-------------------------------------------------------
RATE EQU 50H
BEEP BIT P3.7
K1 BIT P1.4
;-------------------------------------------------------
ORG 0000H
LJMP MAIN
ORG 0080H
;---------------- ---------正转-------------------------
MAIN:
MOV SP,#60H
MOV P1,#0F0H
MOV RATE,#10H
JB K1,$
ACALL BEEP_BL
;-------------------------------------------------------
;加速启动过程
;------------------------------------------------------- 
FFW_RISE:
MOV R0,#00H
FFW1:
MOV A,R0
MOV DPTR,#TABLE_F ;选择工作方式
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
INC R0
JNZ FFW1
MOV R0,#00H
MOV A,RATE
DEC A
MOV RATE,A
CJNE A,#1,FFW1 
;---------------------------------------------------
;匀速运行过程
;---------------------------------------------------
FFW_CONSTANT: 
MOV R1,#0FFH
FFW2: 
MOV A,R0
MOV DPTR,#TABLE_F ;选择工作方式

MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
INC R0
JNZ FFW2
MOV R0,#00H 
DJNZ R1,FFW2
;---------------------------------------------------
;减速停止过程
;--------------------------------------------------- 
FFW_FALL:
MOV R0,#00H
FFW3: 
MOV A,R0
MOV DPTR,#TABLE_F ;选择工作方式
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
INC R0
JNZ FFW3
MOV R0,#00H
MOV A,RATE
INC A
MOV RATE,A
CJNE A,#10H,FFW3 
JMP MAIN 
;-------------------------------------------------------
; 延时子程序
;-------------------------------------------------------
DELAY:
MOV R5,RATE
DEL2:
MOV R7,#5
DEL3:
MOV R6,#250
DJNZ R6,$
DJNZ R7,DEL3
DJNZ R5,DEL2
RET 
;-------------------------------------------------------
;蜂鸣器响一声子程序
;-------------------------------------------------------
BEEP_BL:
MOV R6,#100
BL1:
CALL DEX1
CPL BEEP
DJNZ R6,BL1
RET
DEX1:
MOV R7,#180
DEX2:
NOP
DJNZ R7,DEX2
RET
;-------------------------------------------------------
; 单双八拍工作方式
TABLE_F: ;正转表
DB 0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H
DB 00
TABLE_R: ;反转表
DB 0F9H,0F8H,0FCH,0F4H,0F6H,0F2H,0F3H,0F1H
DB 00
;-------------------------------------------------------
; 双四拍工作方式:
TABLE1:
DB 03H,06H,0cH,09H ;正转表
DB 00 ;正转结束
TABLE2:
DB 09H,0CH,06H,03H ;反转表
DB 00 ;反转结束
;-------------------------------------------------------
END