直流电机驱动指导讲义.docx
《直流电机驱动指导讲义.docx》由会员分享,可在线阅读,更多相关《直流电机驱动指导讲义.docx(23页珍藏版)》请在冰豆网上搜索。
直流电机驱动指导讲义
硬件课程设计讲义
一、设计题目:
基于MSP430单片机的小直流电机控制器设计2
二、MSP430F413单片机硬件结构及其程序设计方法2
1.MSP430F413单片机硬件结构2
⑴MSP430F413单片机硬件结构框图:
2
⑵MSP430F413单片机引脚图:
3
⑶16位CPU3
⑷片内存储器4
⑸MSP430F413单片机片内外设控制字4
2.MSP430F413最小系统的设计方法6
3.MSP430F413单片机寻址方式和指令7
⑴寻址方式7
⑵指令概述7
4.LCD驱动电路和显示程序8
⑴MSP430F413液晶显示驱动电路9
⑵液晶屏外形图及段位表9
⑶液晶屏七段译码表10
⑷液晶显示程序10
5.MSP430F413单片机程序设计方法11
三、直流小电机转向控制和转速控制方法12
1.直流小电机转向控制原理和电路设计12
2.小直流电机转向控制和转速控制原理和电路设计13
3.基于MSP430单片机的小直流电机控制器电路设计13
四、软件程序设计和调试14
1.建立MSP430汇编源文件和项目文件14
2.建立编译和连接路径17
3.MSP430开发工具连接方法19
4.编译和调试程序20
硬件课程设计讲义
自动化系电工电子教研室刘刚2005-11-6
一、设计题目:
基于MSP430单片机的小直流电机控制器设计
基于MSP430单片机的小直流电机控制器硬件结构框图:
二、MSP430F413单片机硬件结构及其程序设计方法
1.MSP430F413单片机硬件结构
⑴MSP430F413单片机硬件结构框图:
⑵MSP430F413单片机引脚图:
⑶16位CPU
MSP430CPU具有一个16位的精简指令计算机结构,对应用是高度透明的。
所有的操作,除了程序流程指令,都是通过源操作数的7种寻址模式和目标操作数的4种寻址模式的组合对寄存器操作进行的。
CPU集成了16个寄存器,减小了指令执行时间。
寄存器到寄存器操作的执行时间是一个CPU周期。
其中4个寄存器用作特殊用途:
一个是程序计数器,一个堆栈指针,一个状态寄存器和一个常数发生器。
其余寄存器都可以用作通用寄存器。
外围模块通过数据、地址和控制总线与CPU相连。
通过所有存储器操作指令对它们进行控制操作。
⑷片内存储器
⑸MSP430F413单片机片内外设控制字
例1:
看门狗定时器
看门狗定时器(WDT)的主要功能是在软件发生问题之后执行一次重启动。
使用时对WDT设置间隔定时时间,程序正常工作时,在间隔定时未到之前,清零WDT重新计时,无时间到的复位信号;程序发生问题时,无法清零WDT,间隔时间到后WDT产生复位信号。
MSP430看门狗定时器(WDT)是带有中断和复位功能的16位增计数器。
工作方式由WDTCTL寄存器内容决定。
MSP430看门狗定时器(WDT)模块用作定时器时(产生中断信号而不产生复位信号),WDT的控制寄存标号、地址和控制字如下所示:
/*************************************************************
#define WDTCTL_ 0x0120
sfrw WDTCTL = WDTCTL_;
/* ACLK=32.768KHz 定时器模式*/
#define WDT_ADLY_1000 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL /* TACLK*2POWER15=1000ms " */
#define WDT_ADLY_250 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0 /* TACLK*2POWER13=250ms " */
#define WDT_ADLY_16 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1 /* TACLK*2POWER9=16ms " */
#define WDT_ADLY_1_9 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0 /* TACLK*2POWER6=1.9ms " */
/*************************************************************
define定义一个在整个文件中都有效的值。
sfrw寄存器类型的字。
例2:
输入输出端口
①P1,P2输入输出端口
分别有7个寄存器控制端口操作(字节操作)。
控制寄存标号、地址和控制字如下所示:
/*************************************************************
P1IN(0x0020)/*Port1Input*/输入寄存器,只读。
P1OUT(0x0021)/*Port1Output*/输出缓存寄存器。
P1DIR(0x0022)/*Port1Direction*/方向寄存器。
0:
I/O引脚为输入;1:
I/O引脚为输出。
P1IFG(0x0023)/*Port1InterruptFlag*/中断标志寄存器。
0:
没有中断申请;1:
有中断申请。
P1IES(0x0024)/*Port1InterruptEdgeSelect*/中断触发沿选择寄存器。
0:
上升沿相应中断标志置位;1:
下降沿相应中断标志置位。
P1IE(0x0025)/*Port1InterruptEnable*/中断使能寄存器。
0:
禁止该位中断;1:
允许该位中断。
P1SEL(0x0026)/*Port1Selection*/端口选择寄存器。
0:
引脚为I/O功能:
1:
引脚为外围模块功能。
P2各寄存器定义与P1完全相同。
P2IN(0x0028)/*Port2Input*/
P2OUT(0x0029)/*Port2Output*/
P2DIR(0x002A)/*Port2Direction*/
P2IFG(0x002B)/*Port2InterruptFlag*/
P2IES(0x002C)/*Port2InterruptEdgeSelect*/
P2IE(0x002D)/*Port2InterruptEnable*/
P2SEL(0x002E)/*Port2Selection*/
/*************************************************************
②P3,P4,P5和P6分别由4个寄存器控制端口操作,不具备中断功能。
控制寄存标号、地址和控制字如下所示:
/*************************************************************
P3IN(0x0018)/*Port3Input*/输入寄存器,只读。
P3OUT(0x0019)/*Port3Output*/输出缓存寄存器。
/
P3DIR(0x001A)/*Port3Direction*/方向寄存器。
0:
I/O引脚为输入;1:
I/O引脚为输出。
P3SEL(0x001B)/*Port3Selection*/端口选择寄存器。
0:
引脚为I/O功能:
1:
引脚为外围模块功能。
P4,P5,和P6各寄存器定义与P3完全相同
P4IN(0x001C)/*Port4Input*/
P4OUT(0x001D)/*Port4Output*/
P4DIR(0x001E)/*Port4Direction*/
P4SEL(0x001F)/*Port4Selection*/
P5IN(0x0030)/*Port5Input*/
P5OUT(0x0031)/*Port5Output*/
P5DIR(0x0032)/*Port5Direction*/
P5SEL(0x0033)/*Port5Selection*/
P6IN(0x0034)/*Port6Input*/
P6OUT(0x0035)/*Port6Output*/
P6DIR(0x0036)/*Port6Direction*/
P6SEL_(0x0037)/*Port6Selection*/
/*************************************************************
例3:
基本定时器
具有定时功能,能向其他外围模块(如LCD控制)提供低频信号,控制寄存标号、地址和控制字如下所示:
/*************************************************************
BTCTL(0x0040)/*BasicTimerControl*/
BT_fLCD_DIV32(0x00)/*fLCD=fACLK:
32(default)*/
BT_fLCD_DIV64(BTFRFQ0)/*fLCD=fACLK:
64*/
BT_fLCD_DIV128(BTFRFQ1)/*fLCD=fACLK:
128*/
BT_fLCD_DIV256(BTFRFQ1+BTFRFQ0)/*fLCD=fACLK:
256*/
/*************************************************************
2.MSP430F413最小系统的设计方法
MSP430F413最小系统电路图:
3.MSP430F413单片机寻址方式和指令
⑴寻址方式
MSP430指令的寻址方式包括:
寄存器寻址、索引(变址)寻址、符号寻址、绝对寻址、间接寻址、间接自动增量寻址和立即寻址。
这七种方式均可用于源操作数;而可用于目的操作数的寻址方式包括:
寄存器寻址、索引(变址)寻址、符号寻址和绝对寻址方式。
指令格式:
指令助记符源操作数,目标操作数;注解。
寄存器寻址:
MOVRs,Rd;寄存器内容是操作数。
索引(变址)寻址:
MOVx(Rn),y(Rm);(Rn+x)、y(Rm)指向操作数。
符号寻址:
MOVEDE,TON1;EDE,TON1指向操作数。
绝对寻址:
MOV&MEM,&TCDAT;MEM,TCDAT是操作数的绝对地址。
间接寻址:
MOV@Rn,y(Rm);Rn用作指向操作数的指针。
间接自动增量:
MOV@Rn+,Rm;Rn用作指向操作数的指针,其后Rn被增量
立即数寻址:
MOV#x,TON1;立即数x本身就是操作数。
Rn、Rm中n、m=4~15,Rs源寄存器,Rd目标寄存器。
寻址方式操作举例:
寄存器寻址:
MOVR10,R11;R10→R11
索引寻址:
MOV2(R5),6(R6);M(2+R5)→M(6+R6)
符号寻址:
MOVEDE,TON1;M(EDE)→M(TON1)
绝对寻址:
MOV&MEM,&TCDAT;M(MEM)→M(TCDAT)
间接寻址:
MOV@R10,Tab(R6);M(R10)→M(Tab+R6)
间接自动增量:
MOV@R10+,R11;M(R10)→R11,R10+2→R10
立即数寻址:
MOV#0AAH,TON1;#0AAH→M(TON1)
⑵指令概述
MSP430系列单片机共有51条指令汇编语言指令,概述如下:
状态位
操作码操作VNZC
ADD[.W];ADD.Bsrc,dstsrc+dst->dst****
AND[.W];AND.Bsrc,dstsrc.and.dst->dst0***
BIC[.W];BIC.Bsrc,dst.not.src.and.dst->dst----
BIS[.W];BIS.Bsrc,dstsrc.or.dst->dst----
BIT[.W];BIT.Bsrc,dstsrc.and.dst0***
CALL#dstPC+2->堆栈,dst->PC----
CLR[.W];CLR.Bdst清除目的操作数----
CMP[.W];CMP.Bdstdst–src****
DADD[.W];DADD.Bsrc,dstsrc+dst+C->dst(十进制)****
DEC[.W];DEC.Bdstdst-1->dst****
DECD[.W];DECD.Bdstdst-2->dst****
DINT禁止中断----
EINT使能中断----
JEQ/JZ标号零位被置时转移到标号语句----
JMP标号无条件转移到标号语句----
MOV[.W];MOV.Bsrc,dstsrc->dst----
NOP空操作----
POP[.W];POP.Bdst项目从堆栈弹出,SP+2->SP----
PUSH[.W];PUSH.BsrcSP–2->SP,src->@SP----
RETI从中断返回
TOS->SRSP+2->SP
TOS->PCSP+2->SZP----
RET从子程序返回
TOS->SRSP+2->SP----
RLA[.W];RLA.Bdst算术左移****
RLC[.W];RLC.Bdst带进位位左移****
SUB[.W];SUB.Bsrc,dstdst+.not.src+1->dst****
SUBC[.W];SUBC.Bsrc,dstdst+.not.src+C->dst****
注状态位中*表示影响、-表示不影响、0表示清零、1表示置位。
4.LCD驱动电路和显示程序
液晶驱动的基本原理:
反射环境光线,等效电容极板,驱动需加交流信号,功耗低。
采用4MUX驱动(1/4占空比,1/4偏压)时,使用4个引脚作为液晶的公共端(COM0—COM3)。
段码显示器引脚数与段数的关系是:
段数=(引脚数-4)×4
例:
24引脚液晶屏,可显示80段,10位带小数点的数字。
偏压由外接分压电阻R9、R10、R11产生。
⑴MSP430F413液晶显示驱动电路
⑵液晶屏外形图及段位表
⑶液晶屏七段译码表
ORG0FFC0h
Tablcd_1:
DB0d7h,06h,0e3h,0a7h;0,1,2,3的七段码
DB036h,0b5h,0f5h,07h;4,5,6,7的七段码
DB0f7h,0b7h,077h,0f4h;8,9,A,B的七段码
DB0d1h,0e6h,0f1h,071h;C,D,E,F的七段码
⑷液晶显示程序
Display:
mov.b#LCDM10,r14;清显示屏
mov.b#0ah,r5
display_7:
mov.b#00h,0(r14)
dec.br14
dec.br5
jnzdisplay_7
display_0:
;显示时分秒
mov.b&0202h,r15;
call#display_b;
dec.br14;
mov.b&0201h,r15;
call#display_b;
dec.br14;
mov.b&0200h,r15;
call#display_b;
ret;
display_b:
mov.br15,r13;显示"XX"
rra.br13;
rra.br13;
rra.br13;
rra.br13;
and.b#0fh,r13;
mov.bTablcd_1(r13),0(r14);
dec.br14;
mov.br15,r13;
and.b#0fh,r13;
mov.bTablcd_1(r13),0(r14);
dec.br14;
ret;
display_a:
mov.br15,r13;显示"XX."
rra.br13;
rra.br13;
rra.br13;
rra.br13;
and.b#0fh,r13;
mov.bTablcd_1(r13),0(r14);
dec.br14;
mov.br15,r13;
and.b#0fh,r13;
mov.bTablcd_2(r13),0(r14);
dec.br14;
ret;
5.MSP430F413单片机程序设计方法
最小监控程序实例:
#include"msp430x41x.h"
;主循环程序:
ORG0E000h;
Reset:
mov.w#0300h,SP;初始化堆栈指针
call#Setup;初始化设置
Mainloop:
bis.w#LPM3,SR;CPU进入低功耗模式3
jmpMainloop;再次进入省电模式
;_______________________________________________________________________
;初始化程序:
Setup:
mov.b#SCFQ_4M,&SCFQCTL;设置主时钟为4MHz
mov.w#WDT_ADLY_1000,&WDTCTL;初始化看门狗定时1000ms
bis.b#WDTIE,&IE1;允许看门狗中断
eint;开中断
mov.b#BT_fLCD_DIV32,&BTCTL;设置基本定时器
mov.b#0fch,&P5SEL;设置LCD的Rx和COMx输
mov.b#LCDON+LCD4MUX+LCDP1,&LCDCTL;设置LCD的工作模式
ret;
;中断定时,显示程序:
ORG0FC00h;
WDTint:
bis.b#WDTIE,&IE1;允许看门狗中断
call#Display;调显示程序
eint;开中断
reti;中断返回
;中断向量表:
RSEGINTVEC
DWWDTint;0FFF4h看门狗中断服务地址
DWReset;0FFFEh启动后第一条指令地址
三、直流小电机转向控制和转速控制方法
1.直流小电机转向控制原理和电路设计
2.小直流电机转向控制和转速控制原理和电路设计
3.基于MSP430单片机的小直流电机控制器电路设计
四、软件程序设计和调试
1.建立MSP430汇编源文件和项目文件
2.建立编译和连接路径
进入路竞选择窗口后,首先选择软件所在盘,接下来逐级选择打开如下所述文件夹:
Programfile>IARSystems>ew23>430>icc430,将会出现下图所示文件选择窗口,编译汇编语言选择msp430F413A;使用C语言选择msp430F413C。
选择仿真工具:
Simlator由系统机仿真;FlashEmulationTool下载到芯片仿真。
3.MSP430开发工具连接方法
采用隔离型仿真器将PC机与目标系统连接,如下图所示。
使用IARSystems软件将目标程序下载到目标系统中,或在PC机上仿真运行,或拔下仿真器让系统实时运行。
原理说明:
隔离型仿真器内部是通过两片ISO150AU隔离连接器,来完成PC主机与MSP430目标系统板之间的供电系统的电隔离,以避免PC主机与MSP430目标系统板由于供电电平不一致而损坏仿真器,从而对主机和仿真器起到了安全保护作用。
该仿真器特别适用于用户开发的目标板采用220V交流供电系统供电、数据采集的产品开发、在线仿真、调试等工作。
仿真器(FET)的硬件安装:
仿真器通过25-pin芯电缆线与计算机并口连接,PC并口COMS默认为ECP或EPP模式。
仿真器通过14-pin芯电缆线和目标板的JATG口连接。
注意:
目标系统必须外接电源,以完成对隔离型仿真器中ISO150AU的一端供电,否者该仿真器的一端因不会提供电源而无法正常进行仿真工作。
如出现仿真器(FET)连接不正常,请重新设置PC机的COMS,使PC机并口为EPP或ECP模式。
4.编译和调试程序