单片机课程设计 步进电机程序.docx
- 文档编号:24277501
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:12
- 大小:17.85KB
单片机课程设计 步进电机程序.docx
《单片机课程设计 步进电机程序.docx》由会员分享,可在线阅读,更多相关《单片机课程设计 步进电机程序.docx(12页珍藏版)》请在冰豆网上搜索。
单片机课程设计步进电机程序
一、 设计的性质与目的:
性质:
该设计是在学生学完《单片机原理与应用》和电子学相关课程的基础上,结合测控技术与仪器和机电工程专业的特点进行的具有一定难度和覆盖面的综合性实践环节。
目的:
综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
二、 设计内容与要求:
1、 根据设计任务,设计该单片机应用系统的硬件电路图,软件流程图并编制相应的软件,实现硬件和软件的调试。
2、 按下不同的键,分别使步进电机实现顺时针和逆时针旋转一步,连续按键,不仅电机连续运转,显示器显示步进电机的状态。
3、 按下不同的键作步进电机速度及转向的控制并显示步进电机的状态。
A) 电机正向或逆向运转的切换
B) 电机加速运转
C) 电机减速运转
D) 电机按给定速度匀速运转
三、 实验注意事项:
1、 实验中所用仪器及设备均应按操作规程操作,实验前应仔细阅读指导书。
2、 实验应独立思考,发现问题尽量自己解决。
3、 实验结果需经老师检查后方算完成。
四、 设计方案:
1、步进电机工作原理及硬件连线图:
步进电机驱动原理是通过对它每相线圈中的电流的顺序切换使电机作步进式旋转,驱动电路有脉冲信号来控制,所以调解脉冲信号的频率变可以改变步进电机的转速,因此微电脑控制步进电机最合适。
如下图所示,实验使用的不仅电机用直流+5V电压,每相电流为0.16A,电机线圈由4相组成。
即Ф1(A);Ф2(B);Ф3(C);Ф4(D);
驱动方式为二相激磁方式各线圈通通电顺序如下表:
相
顺序 1 2 3 4
0 1 1 0 0
1 0 1 1 0
2 0 0 1 1
3 1 0 0 1
二相激磁通电次序
表中首先向Ф1线圈-Ф2线圈输入驱动电流,接着Ф2-Ф3,Ф3-Ф4,又返回到Ф1-Ф2,按这种顺序切换,点击按顺时针方向旋转。
这时的相序位0,1,2,3;如果使电机逆时针方向旋转,相序为3,2,1,0。
步进电机的驱动电路如右图所示,微电脑向步进电机输入端传送1或0信息,则可实现上述操作。
实验可通过不同长度的延时来得到不同频率的步进电机输入脉冲,从而得到多种步进速度。
连线方式:
A)74LS273的011-014分别接步进电机BA-BD,74LS273片选端CS2接08-1F.
B) 步进电机插头接J8。
2、程序设计思路:
根据题目要求,程序应具备以下几个功能:
可通过键盘控制步进电机的转速,方向
可通过LED数码管显示电机运行状态
电机运转状态可以是正反转,加速减速,五种不同速度的各种组合
3、硬件电路图:
4、软件流程图:
五、 子程序调试:
1、 显示子程序调试
显示子程序清单:
ORG 4000H
LJMP REST
ORG 4200H
REST:
MOV DPTR,#1B31H
MOV A,#0D3H
MOVX @DPTR,A
MOV A,#2AH
MOVX @DPTR,A
MOV A,#00H
MOVX @DPTR,A
MOV A,#40H
MOVX @DPTR,A
MOV A,#90H
MOVX @DPTR,A
MOV 20H,#00H
MOV 21H,#00H
MOV 22H,#00H
MOV R0,#21H
MOV R2,#02H
MAIN:
LCALL MANI
LJMP MAIN
MANI:
MOV DPTR,#1B31H
MOV A,#90H
MOVX @DPTR,A
MOV DPL,#30H
MANI1:
MOV A,@R0
LCALL TABLE
MOVX @DPTR,A
INC R0
DJNZ R2,MANI1
MOV R0,#21H
MOV R2,#02H
RET
TABLE:
INC A
MOVC A,@A+PC
RET
DB 3FH,06H,5BH,4FH
DB 66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH
DB 39H,5EH,79H,71H
DB 73H
END
编译并运行该程序,LED上应显示"00"改变21H及22H中的值,LED上应该显示对应的符号。
2、键盘中断服务程序调试
键盘中断服务程序清单:
ORG 4000H
LJMP REST
ORG 4200H
REST:
MOV SP,#70H
MOV DPTR,#1B31H
MOV A,#0D3H
MOVX @DPTR,A
MOV A,#2AH
MOVX @DPTR,A
MOV A,#00H
MOVX @DPTR,A
MOV A,#40H
MOVX @DPTR,A
MOV A,#90H
MOVX @DPTR,A
SETB EX0
SETB EA
LPP:
SJMP LPP
KEY:
PUSH ACC
PUSH PSW
PUSH DPL
MOV DPL,#30H
MOVX A,@DPTR
ANL A,#3FH
ACCEL:
CJNE A,#02H,DECEL
CLR TR1
MOV 25H,#01H
MOV 21H,#0AH
MOV 23H,#00H
SETB TR1
LJMP OUTK
DECEL:
CJNE A,#06H,BACK
CLR TR1
MOV 25H,#02H
MOV 21H,#0EH
MOV 23H,#0C0H
SETB TR1
LJMP OUTK
BACK:
CJNE A,#03H,FRONT
MOV 20H,#01H
MOV 22H,#0BH
LJMP OUTK
FRONT:
CJNE A,#07H,STOP
MOV 20H,#00H
MOV 22H,#0FH
LJMP OUTK
STOP:
MOV 25H,#00H
CJNE A,#08H,STEP1
CLR TR1
MOV 21H,#00H
LJMP OUTK
STEP1:
CJNE A,#09H,STEP2
CLR TR1
MOV 21H,#01H
MOV 23H,#00H
SETB TR1
LJMP OUTK
STEP2:
CJNE A,#0AH,STEP3
CLR TR1
MOV 21H,#02H
MOV 23H,#3FH
SETB TR1
LJMP OUTK
STEP3:
CJNE A,#0BH,STEP4
CLR TR1
MOV 21H,#03H
MOV 23H,#66H
SETB TR1
LJMP OUTK
STEP4:
CJNE A,#0CH,STEP5
CLR TR1
MOV 21H,#04H
MOV 23H,#7FH
SETB TR1
LJMP OUTK
SREP5:
CJNE A,#0DH,POINT
CLR TR1
MOV 21H,#05H
MOV 23H,#0C0H
SETB TR1
LJMP OUTK
POINT:
CJNE A,#05H,OUTK
CLR TR1
MOV 21H,#0DH
LCALL DIREC
OUTK:
POP DPL
POP PSW
POP ACC
RETI
END
将8279的IRQ端接INT01。
编译并运行该程序,依次按下各键,则20H-25H中的值会作对应的改变。
各键与20H-25H中的数值对应关系如下:
键位
地址 0键 1键 2键 3键 4键 5键 B键 F键 A键 E键 D键
20H -- -- -- -- -- -- #01H #00H -- -- --
21H #00H #01H #02H #03H #04H #05H -- -- #0AH #0EH #0DH
22H -- -- -- -- ―― ―― #0BH #0FH -- -- --
23H -- #00H #3FH #66H #7FH #0C0H -- -- #00H #0C0H --
24H #00H #00H #00H #00H #00H #00H -- -- #01H @02H #00H
注:
"--"表示不作变动
3、定时器中断服务程序调试
定时器中断服务程序清单:
ORG 001BH
LJMP TINT
ORG 4000H
LJMP REST
ORG 4200H
REST:
MOV SP,#70H
ANL TMOD,#0F0H
ORL TMOD,#02H
MOV TH0,#05H
MOV TL0,#05H
MOV 23H,#00H
MOV 20H,#00H
MOV 25H,#00H
MOV R7,#33H
MOV DPTR,#1B08H
SETB ET1
SETB EA
SETB TR1
LPP:
SJMP LPP
TINT:
PUSH ACC
PUSH PSW
PUSH DPL
LCALL DIREC
LCALL REL
OUTT:
POP DPL
POP PSW
POP ACC
RETI
DIREC:
MOV DPL,#08H
MOV R1,20H
MOV A,R7
CJNE R1,#00H,BACKD
FRONTD:
RR A
LJMP OUTD
BACKD:
CJNE R1,#01H,OUTD
RL A
OUTD:
MOVX @DPTR,A
MOV R7,A
RET
REL:
MOV R1,25H
CJNE A,#01H,REL2
MOV A,23H
CJNE A,#0C0H,REL1
MOV TH1,A
RET
REL1:
MOV TH1,A
INC A
MOV 23H,A
RET
REL2:
CJNE R1,#02H,REL0
MOV A,23H
JNZ REL3
MOV TH1,A
RET
REL3:
MOV TH1,A
DEC A
MOV 23H,A
RET
REL0:
MOV TH1,23H
RET
END
将273的011-018接LED0-LED7,运行该程序,可看到LED从左至右闪动,将步进电机接入011-014,则步进电机会停止转动。
调试该程序时,最初始使用的是定时器T0,但其与键盘作联调时,会出现定时器中断无效的问题,经查德原因是中断冲突,后改用定时器T1问题解决。
六、完整程序调试:
ORG 0003H
LJMP KEY
ORG 001BH
LJMP TINT
ORG 4000H
LJMP REST
ORG 4200H
REST:
MOV SP,#70H
ANL TMOD,#0F0H
ORL TMOD,#02H
MOV TH0,#05H
MOV TL0,#05H
MOVX @DPTR,A
MOV DPTR,#1B31H
MOV A,#0D3H
MOVX @DPTR,A
MOV A,#2AH
MOVX @DPTR,A
MOV A,#00H
MOVX @DPTR,A
MOV A,#40H
MOVX @DPTR,A
MOV A,#90H
MOVX @DPTR,A
MOV 20H,#00H
MOV 21H,#00H
MOV 22H,#00H
MOV 23H,#00H
MOV 24H,#0FFH
MOV 25H,#00H
MOV R0,#21H
MOV R2,#02H
MOV R7,#33H
SETB EX0
SETB ET1
SETB EA
MAIN:
LCALL MANI
LJMP MAIN
MANI:
MOV DPTR,#1B31H
MOV A,#90H
MOVX @DPTR,A
MOV DPL,#30H
MANI1:
MOV A,@R0
LCALL TABLE
MOVX @DPTR,A
INC R0
DJNZ R2,MANI1
MOV R0,#21H
MOV R2,#02H
RET
TABLE:
INC A
MOVC A,@A+PC
RET
DB 3FH,06H,5BH,4FH
DB 66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH
DB 39H,5EH,79H,71H
DB 73H
KEY:
PUSH ACC
PUSH PSW
PUSH DPL
MOV DPL,#30H
MOVX A,@DPTR
ANL A,#3FH
ACCEL:
CJNE A,#02H,DECEL
CLR TR1
MOV 25H,#01H
MOV 21H,#0AH
MOV 23H,#00H
SETB TR1
LJMP OUTK
DECEL:
CJNE A,#06H,BACK
CLR TR1
MOV 25H,#02H
MOV 21H,#0EH
MOV 23H,#0C0H
SETB TR1
LJMP OUTK
BACK:
CJNE A,#03H,FRONT
MOV 20H,#01H
MOV 22H,#0BH
LJMP OUTK
FRONT:
CJNE A,#07H,STOP
MOV 20H,#00H
MOV 22H,#0FH
LJMP OUTK
STOP:
MOV 25H,#00H
CJNE A,#08H,STEP1
CLR TR1
MOV 21H,#00H
LJMP OUTK
STEP1:
CJNE A,#09H,STEP2
CLR TR1
MOV 21H,#01H
MOV 23H,#00H
SETB TR1
LJMP OUTK
STEP2:
CJNE A,#0AH,STEP3
CLR TR1
MOV 21H,#02H
MOV 23H,#3FH
SETB TR1
LJMP OUTK
STEP3:
CJNE A,#0BH,STEP4
CLR TR1
MOV 21H,#03H
MOV 23H,#66H
SETB TR1
LJMP OUTK
STEP4:
CJNE A,#0CH,STEP5
CLR TR1
MOV 21H,#04H
MOV 23H,#7FH
SETB TR1
LJMP OUTK
SREP5:
CJNE A,#0DH,POINT
CLR TR1
MOV 21H,#05H
MOV 23H,#0C0H
SETB TR1
LJMP OUTK
POINT:
CJNE A,#05H,OUTK
CLR TR1
MOV 21H,#0DH
LCALL DIREC
OUTK:
POP DPL
POP PSW
POP ACC
RETI
TINT:
PUSH ACC
PUSH PSW
PUSH DPL
LCALL DIREC
LCALL REL
OUTT:
POP DPL
POP PSW
POP ACC
RETI
DIREC:
MOV DPL,#08H
MOV R1,20H
MOV A,R7
CJNE R1,#00H,BACKD
FRONTD:
RR A
LJMP OUTD
BACKD:
CJNE R1,#01H,OUTD
RL A
OUTD:
MOVX @DPTR,A
MOV R7,A
RET
REL:
MOV R1,25H
CJNE R1,#01H,REL2
MOV A,23H
CJNE A,#0C0H,REL1
MOV TH1,A
RET
REL1:
MOV TH1,A
INC A
MOV 23H,A
RET
REL2:
CJNE R1,#02H,REL0
MOV A,23H
JNZ REL3
MOV TH1,A
RET
REL3:
MOV TH1,A
DEC A
MOV 23H,A
RET
REL0:
MOV TH1,23H
RET
END
将各接线连接好,编译并运行整体程序,则可实现题目要求。
六、 实验收获及体会:
经过这两周的课程设计,使我对单片机系统有了更深的认识,更加是锻炼了我对所学知识的认知应用能力,在各位老师的悉心指导下,使我们认识到课程的重要性,同时也感受到理论与实践之间的差距,使我们对单片机系统的应用有了更加深刻的认识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课程设计 步进电机程序 单片机 课程设计 步进 电机 程序