51单片机课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河北工业大学计算机硬件技术基础
课程设计报告
学院:能环学院班级:热能073 设计人:高远学号:070679 同组人:澹台金耒
一、设计题目
步进电动机控制
二、问题提出
该题目提出的目的是培养利用所学的计算机硬件基础知识(MCS-51)进行简单的软硬件设计的能力,掌握程单片机开发的一般过程和方法。了解步进电机的工作原理,掌握它的转动控制方式和调试方法.
三、总体设计
1、用P1口实现对步进电动机的驱动。通过对P1口低四位赋值,实现步进电机的单线
八拍的驱动,并且赋值通过查表实现。
单双八拍:(A—AB—B—BC—C—CD—D—DA—A)
TAB1:DB 08H,0CH,04H,06H,02H,03H,01H,09H
2、用P3口实现对步进电机的调速,调正反转和起停的控制。
P3.0: 0为有效1为无效…………正转
P3.1: 0为有效1为无效…………反转
P3.2: 0为有效1为无效…………起停
P3.3: 0为有效1为无效…………速度1时间间隔70ms
P3.4: 0为有效1为无效…………速度2时间间隔50ms
P3.5: 0为有效1为无效…………速度3时间间隔30ms
P3.6: 0为有效1为无效…………速度4时间间隔10ms
(1)通过外部中断INT0实现对P3.2口的置1或着置0,通过判别P3.2口来实现对电动机的起停控制。
(2)通过判别P3.0,P3.1口的值来决定正转或者反转。
(3)通过内部中断T\C0的方式1实现时间间隔的控制,通过P3.3,P3.4,P3.5,P3.6的1或者0来实现不同的转速。
四、具体设计
1、流程图
2、电路图
3、实验程序
ORG 8000H LJMP MAIN ORG 8003H LJMP INT0_ ORG 800BH AJMP DIANJI ORG 8010H
MAIN:MOV TMOD,#01H ;设置计数器0工作于方式0 MOV R2,#4CH ;对计数器设初值 MOV R3,#00H MOV TH0,R2 MOV TH1,R3
SETB EA ;开总中断 SETB ET0
SETB TR0 ;启动计数器 MOV A,#00H MOV R4,#0AH MOV R5,#00H
MOV DPTR,#TAB1 ;默认正转 JNB TR0,STOP
SPEED:JNB P3.3,SPEED1 ;检测速度 JNB P3.4,SPEED2 JNB P3.5,SPEED3 JNB P3.6,SPEED4
P1.0 P1.1 P1.2 P1.3
BA BB BC BD
CTRL:JNB P3.0,ZHENG ;检测正反转
JNB P3.1,FAN
AJMP SPEED
ZHENG:CLR EA ;查表1
MOV DPTR,#TAB1
SETB EA
AJMP CTRL
FAN: CLR EA ;查表2
MOV DPTR,#TAB2
SETB EA
AJMP CTRL
INT0_:CPL TR ;外部中断申请程序RETI
STOP:SJMP $ ;停止
SPEED1:CLR EA ;间隔70ms MOV R2,#04H
MOV R3,#00H
SETB EA
AJMP CTRL
SPEED2:CLR EA ;间隔50ms MOV R2,#4CH
MOV R3,#00H
SETB EA
AJMP CTRL
SPEED3:CLR EA ;间隔30ms MOV R2,#94H
MOV R3,#00H
SETB EA
AJMP CTRL
SPEED4:CLR EA ;间隔10ms MOV R2,#0DCH
MOV R3,#00H
SETB EA
AJMP CTRL
DIANJI:CLR ET0 ;驱动子程序CLR TR0
MOV TH0,R2
MOV TL0,R3
DJNZ R4,RETI_
MOV R4,#0AH
MOV A,R5
MOVC A,@A+DPTR
MOV P1,A
INC R5
CJNE R5,#08H,RETI_
MOV R5,#00H
RETI_:SETB ET0
SETB TR0
RETI
TAB1:DB 08H,0CH,04H,06H,02H,03H,01H,09H ;正转
TAB2:DB 09H,01H,03H,02H,06H,04H,0CH,08H ;反转
END
五、设计中困难及解决
⑴对步进电动机不了解,一开始不知道如何编写程序;
通过老师给的程序基本了解了步进电机如何驱动。
⑵步进电机有三种驱动方式,自己对脉冲占空比不了解,对调速产生困难;
通过给内部中断赋不同初值,来解决步进之间的时间间隔实现速度的变化。
⑶由于实现的功能较多,采用的中断较多,不知如何连线;
通过询问老师和同学,参考实验书,采用集中用P3口,用排线连接。
优缺点:
优点:采用了多种中断,并且连线简洁;程序结构清晰易懂,模块分明。
缺点:由于对步进电机的了解较少,于是在对步进电机的速度控制上速度变化不是很明显;对程序中一些位的设置理解不深,直接从课本例题中抄,导致程序修改很多次仍不知错在何处;由于本身实现的功能较多,加上时间紧,所以创新处较少。
六、收获体会
通过此次课程设计,对于单片机的应用有了进一步的了解,认识到其与实际生活联系的紧密性,加深了对所学知识的掌握和巩固。对于程序的运行及各项指令的运用有了更加明确的了解,如:中断过程的实现,定时器\计数器的控制、工作方式以及应用,中断控制,有了更加明确的概念。
在短短的几天时间里,设计这一程序并不是一件非常容易的事,在设计过程中,我们感到过沮丧,也有最后设计出来后的喜悦。起初,在试验台前半天、一天都没有个什么结果,很令人丧气,已经开始有人答辩,内心更是着急,最后终于有了结果,电动机能够按照程序运转,并达到了各项基本要求,自然又感到喜悦及完成任务后的轻松。虽然我们没有得到期望中的好成绩,但是我们已经努力了。
希望在以后的课程设计中,如果可以的话,时间尽量向前提些,这样可以留给同学们多些复习时间。另外,还希望以后的课程设计题目较以往的设计题目能有所改变,不要每届学生的题目和程序都如出一辙。