单片机应用系统课程设计
说明书
专业年级:
姓名:
指导老师:
目录
一、步进电机 (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。
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 八拍
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
六、程序流程图
程序由初始化程序、中断初始程序、步进电机正反转驱动程序、转速计算程序、显示程序等组成,总体流程图如下:
七、调试结果及分析
程序清单:
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。