;******************************************************************************** ;* 日期: 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
|