1TM1《电子系统设计》成都理工大学工程技术学院石坚第6章MSP430单片机及设计实例2TM2《电子系统设计》成都理工大学工程技术学院石坚一、MSP430单片机原理——1、概述MSP430系列单片机是美国德州仪器(TI)公司1996年开始推向市场的一种16位单片机,采用精简指令集,是一种超低功耗的混合型单片机。MSP430单片机的基本特点如下:超低功耗——1.8-3.6V电压、200-400uA电流、省电模式下最低电流消耗为0.1uA。强大的处理能力——16位、RISC结构、指令及寻址方式丰富、8MHz时钟晶振指令周期125ns。高性能模拟技术及丰富的片上外围模块——WDT、模拟比较器、硬件乘法器、液晶驱动器、10/12位ADC、I2C总线、DMA、UART、并行端口。系统工作稳定——DCOCLK和MCLK配合工作。方便高效的开发环境——支持汇编和C及JTAG调试接口3TM3《电子系统设计》成都理工大学工程技术学院石坚2、发展阶段1996——2000年:33X、32X、31X、11X、11X1等系列。(特点:前三种系列具有LCD驱动模块、所有系列具有ROM、EPROM和OTP等形式。)。2000——2002年:F13X、F14X、F41X、F43X、F44X等系列。(特点:Flash型、后三种系列具有液晶驱动器、拓展了显示存储器在存储区内的地址。)2002——2003年:F15X、F16X系列。(特点:RAM容量大大增加(如F1611的RAM容量为10K);增加了I2C、DMA、DAC12和SVS等模块。)4TM4《电子系统设计》成都理工大学工程技术学院石坚3、MSP430单片机与51单片机的比较89C51单片机是8位单片机,采用“CISC”,共111条指令;MSP430单片机是16位单片机,采用“RISC”,共27条指令。89C51单片机电源电压是5伏,正常情况下消耗的电流为24mA,在掉电状态下,其耗电电流仍为3mA;即使在掉电方式下,电源电压可以下降到2V,但是为了保存内部RAM中的数据,还需要提供约50uA的电流;MSP430单片机则为超低功耗单片机。89C51单片机受其结构本身限制,很难实现模拟功能部件的增加;MSP430单片机无论扩展8位功能模块还是16位的功能模块,即使扩展模/数转换或数/模转换这类的功能模块也很方便。89C51单片机在线编程始终是个问题;但MSP430单片机不仅开发工具简便,而且价格也相对低廉,并且可以实现在线编程。5TM5《电子系统设计》成都理工大学工程技术学院石坚4、MSP430单片机的内部结构MSP430内部包含了计算机所有部件,是一个真正的单片机(微控制器MCU)。6TM6《电子系统设计》成都理工大学工程技术学院石坚5、MSP430单片机的CPU和存储器CPU——采用冯.诺依曼结构;包含1个16位的ALU、16个寄存器和1个指令控制单元。16个寄存器中有4个为特殊用途:PC、SP、SR和CG1/CG2,其余为通用寄存器。存储器——ROM和RAM为同一地址空间,从0000H~0FFFFH这一段范围内从低到高分别是:SFR、外围模块、数据存储器、程序存储器、中断向量表。不同型号的器件其存储器的具体组织不一样,主要不同在于数据存储器及代码存储器的容量、信息存储器和引导存储器的有无。ROM、RAM及外围模块通过内部总线与CPU相连,有的以字/字节访问,有的只能字访问,有的只能字节操作。7TM7《电子系统设计》成都理工大学工程技术学院石坚时钟输入源:LFXT1CLK低频时钟源XT2CLK高频时钟源DCOCL数字控制RC振荡器时钟输出信号ACLK辅助时钟MCLK主系统时钟SMCLK子系统时钟慢速外设CPU和系统快速外设6、MSP430单片机的基本时钟模块8TM8《电子系统设计》成都理工大学工程技术学院石坚基本时钟编程示例//管中窥豹例:设MSP430F149单片机的MCLK=XT2,SMCLK=DCOCLK,将MCLK由P5.4输出(MSP430X14X中引脚P5.4和MCLK复用)。实现上述功能的程序如下:#includemsp430x14x.hvoidmain(void){unsignedinti;WDTCTL=WDTPW+WDTHOLD;//停止看门狗P5DIR|=0x10;//P5.4输出P5SEL|=0x10;//P5.4用作MCLK输出9TM9《电子系统设计》成都理工大学工程技术学院石坚续前页:BCSCTL1&=~XT2OFF;//XT2有效do{IFG1&=~OFIFG;//清除振荡器失效标志for(i=0xFF;i0;i--);//稳定时间}while((IFG1&OFIFG)!=0);//如果振荡器失效标志存在BCSCTL2|=SELM1;//MCLK=XT2for(;;);}10TM10《电子系统设计》成都理工大学工程技术学院石坚相关寄存器说明——基本时钟系统控制寄存器1b7:XT2OFF,选择XT2振荡器的开启与关闭。11TM11《电子系统设计》成都理工大学工程技术学院石坚相关寄存器说明——BCSCTL2和DCOCTL12TM12《电子系统设计》成都理工大学工程技术学院石坚相关寄存器说明——IFG1(中断标志寄存器1)13TM13《电子系统设计》成都理工大学工程技术学院石坚相关寄存器说明——IE1(中断使能寄存器1)14TM14《电子系统设计》成都理工大学工程技术学院石坚相关寄存器说明——看门狗定时器寄存器WDTHOLD:为0时WDT功能激活,否则禁止;WDTPW:高8位口令,为5AH时允许操作。15TM15《电子系统设计》成都理工大学工程技术学院石坚相关寄存器说明——PxSEL和PxDIR16TM16《电子系统设计》成都理工大学工程技术学院石坚语句“WDTCTL=WDTPW+WDTHOLD;”之分析此语句就是将WDTCTL寄存器中的WDTPW和WDTHOLD所代表位数分别设置为“5A”和“1”,其定义见头文件“msp430x14x.h”。如下所示:由此语句分析即可知一见百!寄存器各位的赋值从此一目了然,增强了程序的可读性,善哉!17TM17《电子系统设计》成都理工大学工程技术学院石坚7、MSP430单片机系统响应中断的过程PC入栈SR入栈中断向量赋给PCGIE、CPUOFF、OSCOFF和SCG1清除IFG标志位清除(单源中断标志)SR出栈(恢复原来的标志)PC出栈硬件自动中断服务——执行中断处理子程序——执行RETI指令(中断返回)18TM18《电子系统设计》成都理工大学工程技术学院石坚状态寄存器SR说明19TM19《电子系统设计》成都理工大学工程技术学院石坚状态寄存器SR说明20TM20《电子系统设计》成都理工大学工程技术学院石坚P1,P2,P3,P4,P5,P6,S和COMI/O中断能力其他片内外设功能驱动液晶P1与P2各有7个寄存器P3、P4、P5、P6有四个寄存器8、MSP430单片机的端口类型丰富功能丰富寄存器丰富21TM21《电子系统设计》成都理工大学工程技术学院石坚9、MSP430单片机的定时器看门狗定时器(WDT):基本定时,当程序运行错误时使受控的系统重启动;基本定时器:基本定时,支持软件和各种外围模块工作在低频、低功耗条件下;定时器A:基本定时,支持同时进行的多种时序控制、多个捕获/比较功能和多种输出波形(PWM),可以以硬件方式支持串行通信;定时器B:基本定时,功能基本同定时器A,但比定时器A灵活,功能更强大。22TM22《电子系统设计》成都理工大学工程技术学院石坚二、MSP430F149单片机开发板介绍1、MSP430F149的特点:23TM23《电子系统设计》成都理工大学工程技术学院石坚2、RS232接口电路MAX3232是一款3.0V~5.5V供电、低功率的RS232收发器,支持高达1Mbps的通信速率,仅需要四个0.1uF的电容作为外部元件即能工作。MCU通过UTXD0(P3.4)向PC机发送数据,通过URXD0(P3.5)接收来自PC机的数据。24TM24《电子系统设计》成都理工大学工程技术学院石坚3、RS485接口电路SN65176B内部集成了一个三态的平衡驱动器和一个差分接收器,专为基于总线传输的多点数据通信而设计。当P3.3输出高电平时,SN65176B处于发送数据模式;当P3.3输出低电平时,SN65176B处于接收数据模式。这里使用MSP430F149内部的UART1端口来实现RS485串行通信,MCU通过UTXD1(P3.6)向RS485总线发送数据,通过URXD1(P3.7)接收来自RS485总线的数据。25TM25《电子系统设计》成都理工大学工程技术学院石坚4、E2PROM接口电路AT24C02采用两线串行接口(I2C)简化了与MCU的连接,工作电压2.7V~5.5V,存储容量256×8-Bit,支持100万次的擦写,数据能有效保持100年。MCU的通用输入输出(GPIO)端口P1.2、P1.3与AT24C02的SCL、SDA端口相连接构成I2C总线,因为MSP430F149内部没有专用的I2C接口电路,所以只能用IO端口来模拟I2C时序从而实现对EEPROM的读写操作。26TM26《电子系统设计》成都理工大学工程技术学院石坚5、实时时钟电路DS1302能够计算秒、分、时、日、周、月、年,自动补偿2100年之前的闰年日期;2.0V~5.5V的供电电压,三线制的串行通信接口,且内置31字节的可由电池维持数据的静态RAM。MCU通过P2.5、P2.6、P2.7端口与DS1302的SCLK、I/O、RST三个引脚连接。DS1302的第1管脚接到了系统板的3.3V电源上,作为芯片的主电源;第8管脚连接了一个CR1220型纽扣电池的正极,为芯片提供系统板掉电后的能量。27TM27《电子系统设计》成都理工大学工程技术学院石坚6、DAC电路MCU的P1.0、P1.1端口与DAC5571的SDA、SCK端口连接,通过在两个GPIO上模拟I2C时序从而实现对DAC的操作。通过跳线设置可以使DAC输出电压直接驱动LED以控制亮度或通过P6.1进行AD采样。28TM28《电子系统设计》成都理工大学工程技术学院石坚7、温度传感器电路DS18B20是一款小巧的温度传感器,它通过单总线协议与MCU进行通信,硬件连接十分简洁,它具有如下特性:测温范围-55℃~+125℃,并且在-10℃~+85℃范围内具有±0.5℃的精度,9-Bit到12-Bit的可编程分辨率,用户自定义、非易失性温度阈值。通过上图可知MCU的P2.4端口与DS18B20的DQ端连接,只要在MCU的IO端口模拟1-Wire协议的时序就能实现对DS18B20的读写。29TM29《电子系统设计》成都理工大学工程技术学院石坚8、12864液晶接口电路PSB是液晶数据传输模式的选择位,如果PSB接高电平则液晶工作在并行数据传输模式,如果PSB接低电平则液晶工作在串行数据传输模式。RST是液晶的复位端,在对液晶进行操作之前,必须先设置好正确的数据传输模式然后控制液晶模块完成一次复位动作。液晶控制端口使用3.3V的逻辑电平,背光驱动电压同样为3.3V。30TM30《电子系统设计》成都理工大学工程技术学院石坚9、1602液晶接口电路VEE是调整液晶偏压输入端,已连接了一个3296型电位器(R29)的中间抽头处,用户可以手动调整液晶偏压。31TM31《电子系统设计》成都理工大学工程技术学院石坚10、数码管电路32TM32《电子系统设计》成都理工大学工程技术学院石坚因为MSP430F149是一款低功耗的单片机、其IO端口的驱动能力十分有限,所有在数码管的段选信号、位选信号与MCU之间增加了两片74HC573,用作缓冲驱动,这样既可以正常驱动数码管又可以保护MCU的IO端口不会因为电流过大而损毁。74HC573是8位锁存器,它有一个输出使能端OΕ,一个锁存使能端LE;在硬件电路设计中将LE与GND连接,即保证输出跟随输入保持同步变化。OΕ连接到了