资源描述:
《步进电动机驱动程序(汇编)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、.步进电机正转loop:movR3,#0FFh ;30h送ff即-1main:INCR3 mova,R3tt: MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A ;送显示 movr7,#5decr7 lcalldelay ;延时一段时间 cjnea,#06H,main ;如果是最后一个数据重新开始 ljmploop ; 否则R3清除 retTAB: DB03H,09H,0CH,06H;步进电机正转表
2、DELAY:;延时程序MOV R5,#255D3:MOVR2,#25D4:DJNZR2,D4DJNZR5,D3RET;步进电机控制程序p3.2正转,p3.3反转,p3.4停止 步进电机接p1.0p1.1p1.2p1.3 org00hstop:orlp1,#0ffh ; 步进电机停止loop:jnbp3.2,for2 ;如果p3.2按下正转 jnbp3.3,rev2 ;如果p3.3按下反转 jnbp3.4,stop1 ;如果p3.4按下停止 jmploop
3、 ;反复监测键盘for:movr0,#00h ;正转到tab取码指针初值for1:mova,r0 ;取码 movdptr,#table ; movca,@a+dptr jzfor ;是否到了结束码00h cpla ;把acc反向 movp1,a ;输出到p1开始正转 jnbp3.4,stop1 ; 如果p3.4
4、按下停止 jnbp3.3,rev2 ; 如果p3.3按下反转 calldelay ;转动的速度 incr0 ;取下一个码 jmpfor1 ;继续正转rev:movr0,#05h ;反转到tab取码指针初值rev1:mova,r0 movdptr,#table ;取码 movca,@a+table jzrev ;是否到
5、了结束码00h cpla ;把acc反向 movp1,a ;输出到p1开始反转 jnbp3.4,stop1 ; 如果p3.4按下停止 jnbp3.3,rev2 ; 如果p3.3按下反转 calldelay ;转动的速度 incr0 ;取下一个码... jmprev1 ;继续反转stop1:calldelay
6、 ; 按p3.4的消除抖动 jnbp3.4,$ ;p3.4放开否? calldelay ;放开消除抖动 jmpstopfor2:calldelay ; 按p3.2的消除抖动 jnbp3.2,$ ;p3.2放开否? calldelay ;放开消除抖动 jmpforrev2:calldelay ; 按p3.3的消除抖动 jnb
7、p3.3,$ ;p3.3放开否? calldelay ;放开消除抖动 jmprevdelay:movr1,#40 ;步进电机的转速20ms d1:movr2,#248 djnzr2,$ djnzr1,d1 rettable: db03h,09h,0ch,06h ;正转表 db00