资源描述
单片机应用系统课程设计
说明书
专业年级:
姓名:
指导老师:
目录
一、步进电机 2
1、步进电机介绍 2
2、步进电机分类 2
3、技术指标 3
4、步进电机工作原理 4
二、单片机最小系统及电源电路 5
1、最小系统 5
2、电源电路 6
三、步进电机驱动电路 6
1、驱动电路 6
2、单电压型驱动电源 7
3、对驱动电源的要求 7
四、显示电路 8
五、程序设计 8
1、正反转程序 8
2、测速计算程序 9
3、显示程序 9
4、双四拍及八拍驱动程序 10
六、程序流程图 11
七、调试结果及分析 12
一、步进电机
1、步进电机简介
2、步进电机分类
3、技术指标
4、步进电机工作原理
(1)工作原理
(2)驱动方式
电机驱动方式可以采用双四拍(AB→BC→CD→DA→AB)方式,也可以采用单四拍(A→B→C→D→A)方式,或单、双八拍(A→AB→B→BC→C→CD→D→DA→A)方式。各种工作方式时序图如下:(高电平有效)
二、单片机最小系统及电源电路
1、最小系统
单片机最小化系统是指单片机能正常工作所必要外围元件,重要可以提成时钟电路和复位电路。
(1)时钟电路
(2)复位电路
2、电源电路
用固定式三端集成稳压电路7805设计制作持续可调直流稳压实际电路如图所示,图中R1取220Ω,R2取680Ω重要用来调节输出电压。输出电压Uo≈Uxx(1+R2/R1),该电路可在5~12V稳压范畴内实现输出电压持续可调。
其中1接整流器输出电压,2为公共地,3为5V输出电压
三、步进电机驱动电路
1、驱动电路
步进电机驱动可以选用专用电机驱动模块,在本实验中采用达林顿驱动器ULN2803,该芯片单片最多可一次驱动八线步进电机。
达林顿管
步进电机与单片机连接
2、单电压型驱动电源
输入脉冲为0时,VT截止;输入脉冲为1是,VT导通,在接通瞬间,电容C短接电阻R,电流由E®L®C®VT,电阻在电流达到恒定后起限流作用,此时电流由 E®L®R®VT。
输入脉冲消失后,VT截止,L两端将产生一感应电压,增长二极管 D 续流,续流电流:L®R®D®L 。
电路图如下:
3、对驱动电源规定
抱负驱动电源使电机绕组电流应尽量接近矩形波,事实上,步进电机是感性负载,绕组中电流不能突变,而是按指数规律上升或下降,从而使整个通电周期内,绕组电流平均值下降,电机输出转矩下降。
而当电机运营频率很高时,电流峰值明显不大于额定励磁电流,从而导致电机转矩进一步下降,严重时不能启动。
为了提高步进电机动态特性,必要改进电流波形,使先后沿陡度增大,办法有电阻法和电压法,本次课程设计采用单电压型驱动电源。
四、显示电路
在本实验中,采用总线方式驱动八段显示管时,故将八段驱动方式选取开关拨到“内驱”位置。
实验仪提供了6 位8段码LED显示电路,采用动态方式显示。8位段码、6位位码是由两片74LS374输出,将KEY/LED CS 接到CS0上,则段码地址为08004H,位码地址为08002H。
某些显示电路
五、程序设计
1、正反转程序
实验采用单四拍驱动方式,反转只需把START子程序中 #30H改为#34H即可,详细实现程序如下:
2、测速计算程序
实验以定期器T0作为计数器,定期器T1作为定期器每0.2ms中断一次,以方式2工作。
3、显示程序
由于使用实验箱内驱显示方式,将KEY/LED CS 接到CS0上,则段码地址为08004H,位码地址为08002H。
八拍
START: MOV P1,#09H
ACALL DELAY
MOV P1,#01H
ACALL DELAY
MOV P1,#03H
ACALL DELAY
MOV P1,#02H
ACALL DELAY
MOV P1,#06H
ACALL DELAY
MOV P1,#04H
ACALL DELAY
MOV P1,#0CH
ACALL DELAY
MOV P1,#08H
ACALL DELAY
LJMP START
DELAY: MOV R0,#100
LOOP: MOV R1,#200
DJNZ R1,$
DJNZ R0,LOOP
RET
END
4、双四拍及八拍驱动程序
双四拍
START: MOV P1,#09H
ACALL DELAY
MOV P1,#03H
ACALL DELAY
MOV P1,#06H
ACALL DELAY
MOV P1,#0CH
ACALL DELAY
LJMP START
DELAY: MOV R0,#100
LOOP: MOV R1,#200
DJNZ R1,$
DJNZ R0,LOOP
RET
END
六、程序流程图
程序由初始化程序、中断初始程序、步进电机正反转驱动程序、转速计算程序、显示程序等构成,总体流程图如下:
七、调试成果及分析
程序清单:
ORG 0000H
LJMP MAIN
ORG 001BH;定期器1中断入口
LJMP T_1
ORG 002FH
MAIN:
MOV SP,#6FH;给堆栈赋地址
;MOV SCON,#0C0H
MOV TMOD,#2EH;定期器T0作为计数器,定期器T1作为定期器每0.2ms中断一次,工作方式为方式2
MOV TL1,#37H;0.2ms
MOV TH1,#37H
MOV TL0,#00H;计数器低8位清零
MOV TH0,#00H;计数器高8位清零
SETB EA;容许中断
;SETB ET1;容许定期器/计数器1中断
SETB TR1;启动定期器1
SETB TR0;启动计数器0
MOV P1,#00H
MOV R4,#200
MOV R5,#50
MOV 30H,#01H;正转
MOV 31H,#02H
MOV 32H,#04H
MOV 33H,#08H
MOV 34H,#08H;反转
MOV 35H,#04H
MOV 36H,#02H
MOV 37H,#01H
START:
MOV R0,#30H;#34H反转
MOV R3,#4
LOOP:MOV A,@R0
MOV P1,A
LCALL DELAY
INC R0
DJNZ R3,LOOP
SJMP START
DELAY:
MOV R7,#25
DL1:MOVR6,#100;25*100*2=5ms
DL2:DJNZ R6,DL2
DJNZ R7,DL1
RET
SHUZI:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共阳极
;DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,07FH,6FH;共阴极顺
T_1:
DJNZ R4,LOOP2
DJNZ R5,LOOP1
MOV A,TL0;
LCALL LED
MOV TL0,#00H
MOV R4,#200
MOV R5,#50
LOOP2: RETI
LOOP1: MOV R4,#200
RETI
LED:
MOV B,#10;每2s读一次数,则转速n=m*60/2*3,即
n=10m
MUL AB;脉冲数乘10得转速,存于A中
MOV B,#100
DIV AB
PUSH ACC
MOV A,B
MOV DPTR,#SHUZI
MOVC A,@A+DPTR
MOV DPTR,#8004H
MOVX @DPTR,A
MOV DPTR,#8002H
MOV A,#01H
MOVX @DPTR,A
LCALL DELAY1
POP ACC
MOV B,#10
DIV AB
PUSH ACC
MOV A,B
MOVC A,@A+DPTR
MOV DPTR,#8004H
MOVX @DPTR,A
MOV DPTR,#8002H
MOV A,#02H
MOVX @DPTR,A
LCALL DELAY1
POP ACC
JZ OUT
MOVC A,@A+DPTR
MOV DPTR,#8004H
MOVX @DPTR,A
MOV DPTR,#8002H
MOV A,#04H
MOVX @DPTR,A
LCALL DELAY1
OUT: RET
DELAY1: MOV R4,#40
LOOP3: MOV R5,#25
DJNZ R5,$
DJNZ R4,LOOP3
RET
END
展开阅读全文