;******************************************************************************** ;* 步进电机正反快慢程序,步进电机端口:P1.0,P1.1,P1.2,P1.3 * ;******************************************************************************** ;* 日期: 2007-3-25 * ;* 版本: 3.0 * ;* 作者: 深圳学林电子有限公司 专业8051单片机教程站 * ;* 邮箱: sxj1974@163.com * ;* 网站: http://www.51c51.com http://www.8951.com 更多例程请登陆网站 * ;******************************************************************************** ;* 硬件:此程序在本公司xlisp系列单片机实验仪运行通过 * ;******************************************************************************** ;* 【版权】 Copyright(C)深圳学林电子有限公司 www.51c51.com All Rights Reserved * ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! * ;********************************************************************************

hex格式文件下载(点右键,目标另存为hex即可直接烧写) 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
|