MSP430F149的看门狗操作
msp430f149技术资料
MSP430是德州公司新开发的一类具有16位总线的带FLASH的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器。具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M的时钟。由于为FLASH型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作,对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化,MSP430系列将会得到越来越多人的喜爱。
第三章MSP430F149 资源的应用介绍及开发
第一节中断介绍及存储器段介绍
中断在MSP430中得以广泛的应用,它可以快速进入中断程序,之后返回中断前的状态,其时序为:PC执行程序中断允许置位SR中的GIE置位 EINT(中断开)中断到,中断标志位(IFG)置位从中断向量表中读取中断程序的入口地址,进入中断程序执行中断程序中断允许位复位 RETI中断返回回到原来地址。具体应用将会在应用程序中的到应用。有关中断源和中断优先级及中断允许位、中断标志位在参考资料1上有详细介绍。
第2章MSP430F149单片机基础知识
等价与:MOV INCD
@R10,0(R11) R0
在执行时寄存器的自动增量在取操作数之后:
立即模式:MOV #45h,TONI
; #45h →(TONI)
如果 PC = 0FF12h,TONI = 10A8h y = TONI–PC = 10A8h - 0FF16h = 1192h ; 相当于 MOV #45h ,y(PC) ; #45h →(PC+y)
01116h 01114h 1112h
0xxxxh 01234h 0xxxxh
01116h 01114h 1112h
0xxxxh 0A123h 0xxxxh
间接模式:MOV.B
@R10,0(R11) ;(R10)→(R11 + 0), ;MOV.B仅传送字节(8位数据)
操作前RAM 操作后RAM 0FA34h 0FA32h 0FA30h 0xxxxh 05BC1h 0xxxxh
常数发生寄存器CG1和CG2
使用常数发生寄存器产生常数的优点: 1、不需要特殊的指令 2、对7种最常用的常数不需要额外的字操作数 3、缩短指令周期:不经过MDB就能直接访问
寻址模式 访问整个地址空间的不同寻址模式由As(寻址位, 源操作数的寻址模式)和Ad(寻址位,目标作数的 寻址模式)模式位的内容确定:
ROM 0FF16h 0FF14h 0FF12h 00000h 4AABh 0xxxxh PC
MSP430f149端口功能及设置
MSP430f149 端口功能及设置
MSP430f149 常用的端口有P1、P2、P3、P4、P5、P6,它们都可以直接
用于输入/输出。MSP430 系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实现。端口P1~P6 的每一位都可以独立用于输入/输出,即具有位寻址功能。常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。由于MSP430 的端口只有数据口,没有状态口或控制口,在实际应
用中,如在查询式输入/输出传送时,可以用端口的某一位或者几位来传送状态信息,通过查询对应位的状态来确定外设是否处于准备好状态。
端口的功能:
(1)P1,P2 端口:I/O,中断功能,其他片内外设功能如定时器、比较器;
(2)P3,P4P5P6 端口:I/O,其他片内外设功能如SPI、UART 模式,A/D 转换
等;
MSP430 各端口具有丰富的控制寄存器供用户实现相应的操作。其中P1,P2
具有7 个寄存器,P3~P6 具有4 个寄存器。通过设置寄存器我们可以实现:
(1)每个I/O 位独立编程;
(2)任意组合输入,输出和中断;
430单片机个人总结
430单片机个人总结
一 时钟部分(msp430f149单片机)
1、关于XT2
图1
2、关于XT1
图2 3、关于MCLK
PUC 信号之后,MCLK 来源于DCO 时钟信号(可以不设置,系统PUC 之后会有一个默认值),如果要设置MCLK 来源于XT1或者XT2,步骤如下:
1、打开需要的晶体振荡器;(作为MCLK 的时钟源,而不是默认的DCO )
2、清除OFIFG 标志位;
XT2Sx=11、XT2OFF=0时,XT2来源于外部时钟信号,也就是可以直接在XT2IN 管脚上施加一个时钟信号,而不需要在XT2IN 和XT2OUT 上加时钟源 当在XIN 和XOUT 两端加低频晶振时,晶振之间可以不加电容,而通过单片机内部给其配置电容 当在XIN 和XOUT 两端加高频晶振时,晶振之间需要配置电容
当LFXT1Sx=11、OSCOFF=0时,XIN 和XOUT 之间可以不加晶振,只需在XIN 管脚上施加一个时钟信号既可
3、延时50us;
4、测试OFIFG标志位。若OFIFG=0,说明设置成功;若OFIFG=1,设置未成功,重复2~3步骤;程序如下
BCSCTL1 &=~XT2OFF; // XT2 is on
do
{
IFG1 &=~OFIFG; // clear OSCFault flag
for(i=255;i>0;i--); // time for flag to set
}
while((IFG1 & OFIFG));
BCSCTL2 |=SELM_2+DIVM_3; //f(mclk)=f(XT2)/8;
MSP430-按键检测代码详解
MSP430-按键检测代码详解
使⽤MSP430F149的开发板,⾸先在⼀个函数进⾏讲解,然后下边是将部分代码写⼊了新建的key.c程序中P1⼝的0,1,2,3 I/O⼝⽤于检测四个按键的电平
P2⼝的0,1,2,3 I./O⼝⽤于点亮对应的LED灯
P3⼝的4 I/O⼝⽤于点亮按键按下指⽰灯
#include <MSP430X14x.h> // 这是程序都要包含的头⽂件,⾥边包含的很多寄存器和接⼝函数
#define KEY_Input (P1IN & 0x0f) // 这是定义⼀个变量⽤于检测按下的是哪⼀个键(⼀共四个按键)
// 使⽤P1.0,1,2,3来检测,⾼四位跟0相与都是零,低四位跟1相与是该位本来的值
void delay(void); //创建了⼀个简单的延时函数,这是对他的⼀个简单声明
unsigned char scandata[5] = {0xFF,0x7F,0xBF,0xDF,0xEF}; //这是定义了⼀个char类型的数组,根据不同的按键点亮对
void main( void)
{
unsigned char temp,keyval=0XFF; // 创建了⼀个temp⽤于存储P1IN的值,keyval⽤于做数组的索引从⽽点亮不同的灯
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P1DIR=0X00; // P1的⽅向寄存器(direction register),设置成输⼊模式
P1OUT=0X00; // ⾸先将P1⼋个端⼝设置成⾼电平
MSP430F149单片机与X25043的接口与应用
朝 阳 120 ) 200 ( 辽宁朝 阳师范高等专科学 校 ,辽宁
摘
要: 本文介绍了 T公 司生产的 M P3F4 单片机与可编 程看 门狗定 时器 X54 之 间的接 口应用 程序 , I S40 I 9 203 并详 细介绍 了 X54 203
的特点和工作 原理 , 实验证 明 , 经 此设计稳定可靠 。
w u Di
(i n gCny gT ahr C lg , hoag120 , hn) La i h oa ece oee C ayn 20 0 C ia on n s l
Ab ta t T i p p rp ee t a nefc p l ain p o rm f r ga sr c : hs a e rs ns n i t a ea p i t r ga o o rmma l w th o 2 0 3 w t c o t l rMS 4 0 1 9 T e p s p r r c o p be a d g X 5 4 i Mi c h mc nr l P 3 F 4 oe h ai oe- c
.
Ke r s MS 4 0 4 ;X 5 4 ;Snl hp poesr ywo d : P 3 F19 2 0 3 igec i rc so
1 引言
美 国 X C R公司生产的单片机监控芯 片 X 54 , IO 203 是微 处理
基于msp430f149的PWM红外解码(C语言)
基于msp430f149的PWM红外解码的研究
摘要:
由于红外遥控的实用与经济性,本文研究PWM方式调制的红外解码的实现。
红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。
1红外遥控系统
通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如下所示:
(一)发射部分键盘矩阵、编码调制、LED红外发送器
键盘编码调制红外LED发射(38KHz的载波)
(二)接收部分
光/电放大解调52单片机解码
研究中应用VS0038一体化红外接收头(实物图如下:)
红外接收头VS0038能够正常接收的角度
2 遥控发射器及其编码
(1)遥控发射器专用芯片很多
(2)根据编码格式可以分成:脉冲宽度调制和脉冲相位调制两大类
现在我们研究以运用比较广泛,解码比较容易实现的脉冲宽度调制来加以说明。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:
(a)采用脉宽调制的串行码
(b)以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”
(c)以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”
遥控器发出由“0”和“1”组成的32位二进制码,经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,,其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码用于核对数据是否接收正确。
MSP430F149开发板套件用户手册
MSP430F149头文件详解中文注释
#ifndef __msp430x14x#define __msp430x14x/************************************************************* STANDARD BITS************************************************************/#define BIT0 0x0001#define BIT1 0x0002#define BIT2 0x0004#define BIT3 0x0008#define BIT4 0x0010#define BIT5 0x0020#define BIT6 0x0040#define BIT7 0x0080#define BIT8 0x0100#define BIT9 0x0200#define BITA 0x0400#define BITB 0x0800#define BITC 0x1000#define BITD 0x2000#define BITE 0x4000#define BITF 0x8000/************************************************************* STATUS REGISTER BITS************************************************************/#define C 0x0001#define Z 0x0002#define N 0x0004#define V 0x0100#define GIE 0x0008#define CPUOFF 0x0010#define OSCOFF 0x0020#define SCG0 0x0040#define SCG1 0x0080/* Low Power Modes coded with Bits 4-7 in SR */#ifndef __IAR_SYSTEMS_ICC /* Begin #defines for assembler */#define LPM0 CPUOFF#define LPM1 SCG0+CPUOFF#define LPM2 SCG1+CPUOFF#define LPM3 SCG1+SCG0+CPUOFF#define LPM4 SCG1+SCG0+OSCOFF+CPUOFF/* End #defines for assembler */#else /* Begin #defines for C */#define LPM0_bits CPUOFF#define LPM1_bits SCG0+CPUOFF#define LPM2_bits SCG1+CPUOFF#define LPM3_bits SCG1+SCG0+CPUOFF#define LPM4_bits SCG1+SCG0+OSCOFF+CPUOFF#include #define LPM0 _BIS_SR(LPM0_bits) /* Enter Low Power Mode 0 */#define LPM0_EXIT _BIC_SR(LPM0_bits) /* Exit Low Power Mode 0 */#define LPM1 _BIS_SR(LPM1_bits) /* Enter Low Power Mode 1 */#define LPM1_EXIT _BIC_SR(LPM1_bits) /* Exit Low Power Mode 1 */#define LPM2 _BIS_SR(LPM2_bits) /* Enter Low Power Mode 2 */#define LPM2_EXIT _BIC_SR(LPM2_bits) /* Exit Low Power Mode 2 */#define LPM3 _BIS_SR(LPM3_bits) /* Enter Low Power Mode 3 */#define LPM3_EXIT _BIC_SR(LPM3_bits) /* Exit Low Power Mode 3 */#define LPM4 _BIS_SR(LPM4_bits) /* Enter Low Power Mode 4 */#define LPM4_EXIT _BIC_SR(LPM4_bits) /* Exit Low Power Mode 4 */#endif /* End #defines for C *//************************************************************* PERIPHERAL FILE MAP************************************************************//************************************************************* 特殊功能寄存器地址和控制位************************************************************//*中断使能1*/#define IE1_ 0x0000 sfrb IE1 = IE1_;#define WDTIE 0x01 /*看门狗中断使能*/ #define OFIE 0x02 /*外部晶振故障中断使能*/ #define NMIIE 0x10 /*非屏蔽中断使能*/#define ACCVIE 0x20 /*可屏蔽中断使能/flash写中断错误*/#define URXIE0 0x40 /*串口0接收中断使能*/#define UTXIE0 0x80 /*串口0发送中断使能*//*中断标志1*/#define IFG1_ 0x0002 sfrb IFG1 = IFG1_; #define WDTIFG 0x01 /*看门狗中断标志*/#define OFIFG 0x02 /*外部晶振故障中断标志*/#define NMIIFG 0x10 /*非屏蔽中断标志*/#define URXIFG0 0x40 /*串口0接收
MSP430单片机C语言编程
本章选择了一些简单的C语言程序例题,这些程序的结构简单,编程技巧不多,题目虽然简单,但是非常适合入门单片机的学习者学习MSP430单片机的C 语言编程。 如下列出了C语言例题运行的MSP430F149实验板硬件资源环境,熟悉这些硬件资源,对于理解程序非常重要。 (1)数码管: 左侧数码管与P5口相连,a~g,h对应P5.0~P5.7 右侧数码管与P4口相连,a~g,h对应P4.0~P4.7 (2)发光二极管 8 个发光二极管与P3 口连接 (3)按钮: 左侧8个按钮与P2口相连,引脚号标在按钮上方 右侧8个按钮与P1口相连,引脚号标在按钮上方 (4)P2.3引脚还是模拟比较器输入 (5)P6.0,P6.1引脚连接模拟量电位器,用于模拟量实验 9.1 通过 C 语言编程例入门 MSP430C 语言编程 如下例子都在MSP430F149实验板上通过验证。 例1:使与P3口的P3.0引脚连接的发光二极管闪烁。 #include //声明库 void main(void) //主函数 { unsigned int i; //变量声明 WDTCTL=WDTPW+WDTHOLD; //关掉看门狗 P3DIR |=BIT0; //设置P3.0为输出,这里BIT0=0x0001 while(1) //无限次while循环 { for (i=0;i<20000;i++) //for语句,i为循环变量,i每次循环加1,当i<20000时, //循环延时 P3OUT=0x00; 使P3.0输出低电平,发光二极管亮,(低电平使发光二极管亮) for (i=0;i<20000;i++) //再次循环延时 P3OUT=0x01; 使P3.0输出高电平,发光二极管灭,(高电平使发光二极管灭) } } 例2:8个发光二极管 1、3、5、7与 2、4、6、8交替发光的例子 #include void main(void) { unsigned int i; WDTCTL=WDTPW+WDTHOLD; P3DIR=0XFF; //设置P3口为输出 while(1) { for (i=0;i<20000;i++) P3OUT=0X55; //使发光二极管1、3、5、7 灭,2、4、6、8亮 for (i=0;i<20000;i++) P3OUT=0XAA;//使发光二极管1、3、5、7亮,2、4、6、8灭 } } 例 3:定时器控制的发光二极管闪烁。这里使用了 MSP430F149芯片的 32768Hz低频晶体振荡器作为时钟源。用定时器 A定时 1s,发光二极管灭 0.5s,亮.0.5s。 #include void main (void) { WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗 TACTL = TASSEL0 + TACLR; // 设置定时器A控制寄存器, // TASSEL0=0x0100,选择辅助时钟ACLK, // TACLR=0x0004,清除定时器A计数器 CCTL0 = CCIE; //设置捕获/比较控制寄存器,CCIE=0x0010,使能捕获比较中断 CCR0 =16384; //设置捕获/比较寄存器,初始值为16384,对于32768Hz的频率,相当于0.5s P3DIR |=BIT7; //P3.7为输出 TACTL |= MC0; //设置定时器A控制寄存器,MC0=0x0010,使计数模式为增计数 _EINT(); //使能中断,这是一个C编译器支持的内部过程。 while(1); //无限次while循环 } inter
msp430f149 PWM
#include
#define Exterior_8MHz 0x55 //MCLK和SMCLK选择外部8M高频晶振
#define u8 unsigned char
#define u16 unsigned short
#define u32 unsigned long
void Delay_ms(u16 Time) //软件ms延时,1MHz频率下
{
#ifdef Exterior_8MHz
u16 i,j,z;
for(i=0;i
for(j=0;j<10;j++)
for(z=0;z<158;z++)
;
#else
u16 i,j;
for(i=0;i
for(j=0;j<200;j++)
;
#endif
}
void Delay_us( u16 Time ) //软件us延时,1MHz频率下
{
u16 i;
for(i=0;i
{
_NOP();
_NOP();
}
}
void System_Clock_Init(void) //系统时钟源配置
{
#ifdef Exterior_8MHz
/*------选择系统主时钟为8MHz-------*/
u8 z;
BCSCTL1 &= ~XT2OFF; //打开XT2高频晶体振荡器
do
{
IFG1 &= ~OFIFG; //清除晶振失败标志
for (z = 0xFF; z > 0; z--); //等待8MHz晶体起振
}
while ((IFG1 & OFIFG)); //晶振失效标志仍然存在?
BCSCTL2 |= SELM_2 + SELS; //MCLK和SMCLK选择高频晶振
#else
MSP430F149+UART+FFT
//简述://一.所用到的器件:1.MSP430F149主控芯片 2.ADS7841芯片 // 3.12864显示液晶 4.好好学习,天天向上//二.简易功能:通过MSP430F149模拟SPI与ADS7841通信采集电压(至于为何不用内部AD,当时那个内部AD用完了)// 进行FFT运算(FFT部分是参考网上的并非原创,勿喷),将运算结果用12864显示,并通过UART上传到上位机//搭建工程说明:我用的是IAR,,这个看个人爱好,,CCS功能挺强大的,IAR个人感觉简易型//工程里有5个文件:1.main.c 2.FFT.h 3.YM12864.h 4.trans.c 5.trans.h//由于本人偷懒,FFT.h YM12864.h这两个文件直接写成.H文件了,这样不好的(原因:等你工程复杂很大的时候这样很糟糕的)//养成一个编程的好习惯 trans.c trans.h 这样写比较好,,模块化程序一个.C文件配一个.H文件//至于用MSP430F149做FFT运算,那是玩玩,,非实用,,,毕竟DSP才是这方面的霸主//主函数 main.c如下#include #include "math.h"#include "ym12864.h"#include "FFT.H"#include"trans.h"#include"uart.h"#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define CPU_F ((double)8000000)#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))#define DCLK_UP P3OUT |= BIT0#define DCLK_DOWN P3OUT &= ~BIT0#define CS_UP P3OUT |= BIT1#define CS_DOWN P3OUT &= ~BIT1#define DIN_UP P3OUT |= BIT2#define DIN_DOWN P3OUT &= ~BIT2#define ADS7841_BUSY P3IN&BIT3#define DOUT P2IN&BIT4 uint zhi[128];float mo[128];uchar tran0[8];ulong V0=0;// 系统时钟初始化 : MCLK为8MHZ,SMCLK为8MHZ//*************************************************************************void Clock_Init(){uchar i;BCSCTL1&=~XT2OFF; //打开XT振荡器BCSCTL2|=SELM_2+SELS; //MCLK为8MHZ,SMCLK为8MHZ do{IFG1&=~OFIFG; //清除震荡标志for(i=0;i<100;i++)_NOP(); //延时等待}while((IFG1&OFIFG)!=0); //如果标志为1,则继续循环等待IFG1&=~OFIFG; }//*************************************************************************void ADS7841_IOinit(){P3DIR |= BIT0+BIT1+BIT2;//输出 P3.0:DCLK,P3.1:CS,P3.2:DINP3DIR &= ~BIT3; //输入 P3.3:BUSYP2DIR &= ~BIT4; //输入 P2.4:DOUT}/******************************************************************** 函数原型:unsigned int ADS7841_Read_Data()** 功 能:SPI总线的ADS7841驱动程序** 出口参数:unsigned int 返回所读取的12位数据** 说 明:ADS7841为12位A/D,先对其进行设置:数据位D0-D7,其中D0-D1是设置ADC的功耗模式,D2是
第3章_MSP430单片机输入输出接口_对比
第 3 章 1/0 口基本操作 MSP430F149 单片机系列有 6 组 110 口: Pl----- 肘。每个 1 / 0 口都有 8 个可以独立编程的 引脚 。 MSP430F149 单片机每个引脚都有第二功能,并且每个引脚可以单独设置成输入、输出 或者第一;功能 。 同时 .Pl 和 P2 口具有中断功能 .Pl 和 P2 口的每个引脚都可以单独设置成中 断,并且都可以单独设置成上升沿或者下降沿触发中断 。 Pl 口的所有引脚共用→个中断向 量, P2 口的所有引脚也共用一个中断向量,但它们的优先级和向量地址不一样,见 2. 5 节系统 中断。MSP430F149 系列单片机的 1 / 0 口主要有以下特征: 》每个J/ O 口可以位独立编程设置; 》输入、输出可以任意结合使用; :,. P 1 和 P2 口的中断功能位可以单独设置; 》有独立的输入 / 输出寄存器 。 3.1 1/0 口的基本操作流程 MSP430F149 的J/ O 口操作都是通过读 /写寄存器来完成的。与 MSP4 3 0F149 单片机的 J/ O 口中相关的寄存器有 PxDIR 、 PxlN 、 PxOUT 、 PxSEL 、 PxJFG 、 Px1E 和 PxlES ,其中后面三 个是中断寄存器。 P3 、 P4 、町、 P6 不具备中断功能,只与前面四个寄存器有关; Pl 、 P2 具有中 断功能.与上面所有的寄存器都有关系,详细请参考 3. 2 节寄存器说明部分 。 当 J / O 口作为 一 般的输入 /输出口使用时,其基本操作流程如下: ①选择I! O 口功能.基本 J/O 模式或其他模式(即设置 PxSEL 寄存器) ; ②设置方向寄存器 (PxDIR) ; 马-MSP430 时恒的平一一…一一一一一 ①读出外部输入值 (PxIN) 或写人相应值 CPxOUT) ; 对 J / O 中断操作的基本流程如下: ① 设置 1/ 0 模式; ① 设置中断触发方式 CPxIES 寄存器) ; ①允许中断 C PxJE 寄存器 ) ; ④开总中断(调用_EINTC)或_B1S_SRCL PM4_ bi ts 十 GIE) 函数) ; ① 等待中断.有中断时执行中断服务程序 。 3.2 寄存器 1.功能选择寄存器 PxSEL P xS E 1, ( .T = 1 . 2 , 3 . 4 , 5 . 6) ,设置相应的位为1,则该位对应的号|脚为外围模块的功能,即 第二功能;设置相应的位为 0 ,则该位对应的引脚为普通1/ 0 口。 PxSEL 寄存器的各位如 图 3 . 1 所示 。 其复位值全为 0 句默认为 1 / 0 口功能 。 |PxSEL.7 I 时EL. 6 1 时EL. 5 1 PxSEL4 I PxSEL.3 I PxSEL.2 1 PxSEL. l I PxSEL.O I 图 3.1 PxSEL 寄存榻的各位 注意:为了避免对某些位操作的时候影响其他的位,椎荐使用位操作指令进行读 / 写,请参考 3. .3节具体 的程序设计实例 。 2. 方向控制寄存器 PxDIR P x fJIR (.1' =:: 1 .2.3.4 .5.6) :该寄存器控制 PX 口的各个引脚的方向 。 设置相应的位为1, 则该位对应的 fJ I 脚为输出;设置相应的位为 0 ,则该位对应的引脚为输入。 PxDIR 寄存器的各 个位如图 j. 2 所示 。 其复位值全
MSP430F149中文资料.pdf
MSP430单片机的开发及应用
设计人:陈小忠
西安邮电学院电子信息工程系电子0002班
西安邮电学院63# 710061
2003年7月
目录
第一章概述
第二章MSP430 F149语言介绍
第一节开发环境及程序下载
第二节语言介绍
第三章MSP430F149 资源的应用介绍及开发第一节中断介绍及存储器段介绍
第二节硬件乘法器
第三节P口
第四节定时器及数模转换
第五节时钟模块
第六节USART通信模块
第七节比较器
第八节模数转换
第四章MSP430F149开发板的介绍及测试
第一节模数转换模块
第二节传感器模块
第三节外存和实时时钟模块
第四节485和232模块
第五节电源管理模块及晶振模块
第六节PWM波形滤波
第一章概述
MSP430是德州公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART 通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟.由于为FLASH 型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作,对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化 ,
基于MSP430F149单片机最小系统设计及其应用
– 28 – 2012年第11卷第1期
现代建设 Modern Construction
0 引言
随着现代电子技术和计算机技术的飞速发展,单片机技术已经渗透到人类生活的各个方面,在自动化装置、智能化仪器仪表、过程控制和家用电器等许多领域得到日益广泛的应用, 单片机家族也越来越庞大,品种越来越多,且在技术上各有特色, 美国德州仪器公司(TI公司)新推出的MSP430F149单片机功耗低, 功能强大, 为广大硬件设计师所青睐。
单片机芯片配以必要的外部器件,一般包括电源供入及电源开关、复位电路、晶振、输入输出电路等就能构成最小系统,结构简单。
MSP430F149芯片有60KB+256字节FLASH,2KBRAM,包括基本时钟模块、看门狗定时器、带3个捕获/比较寄存器和PWM输出的16位定时器、带7个捕获/比较寄存器和PWM输出的16位定时器、2个具有中断功能的8位并行端口、4个8位并行端口、模拟比较器、12位A/D转换器、2个串行通信接口等模块。MSP430F149芯片具有如下特点:
(1)功耗低:电压2.2V、时钟频率1MHz时,活动模式芯片电流为200μA,关闭模式时电流仅为0.1A;(2)高效
16位RISC-CPU,27条指令,8MHz时钟频率时,指令周期时间为125ns,绝大多数指令在一个时钟周期完成;(3)低电压供电、宽工作电压范围:1.8~3.6V;(4)灵活的时钟系统:两个外部时钟和一个内部时钟;(5)低时钟频率可实现高速通信;(6)具有串行在线编程能力;(7)强大的中断功能;(8)唤醒时间短,从低功耗模式下唤醒仅需6μs;(9)ESD保护,抗干扰力强;(10)运行环境温度范围为-40~+85℃,适合于工业环境。
msp430F149简易教程
MSP430单片机的主要特性
• 超低功耗 • 0.1 A掉电模式 0.8 A等待模式 250 A /1MIPS (1 S时钟唤醒时间) 50nA 端口漏电流 高集成度 10bit SAR ADC (200ksps) 12bit SAR ADC (200ksps) 12bit DAC OP AMP,PGA,LCD DRIVER , 硬件乘法器、
各模块简要介绍—8、WDT+
主要功能是在程序跑飞时能 够控制系统的重新启动,当不需 要时可以禁止该功能,此时可以 当成一个间隔计数器使用。
以下是关看门狗程序: WDTCTL=WDTPW+WDTHOLD; 0x5A00 0x0080 //关看门狗
WDTCTL定义
各模块简要介绍—9、硬件乘法器
hardware multiplier
MSP430 3xx : ROM/OTP 产品系列MCU,提供2.5伏至5.5伏工作电压, 高达32kB和4MIPS(带有FLL)
MSP430单片机系列种类
非基于LCD
MSP430x1xx: 基于闪存/ ROM的MCU提供1.8伏至3.6伏的工作电压、 高达60kB和8MIPS(带有基本时钟) MSP430F2xx: 基于闪存的MCU 提供1.8 伏至3.6 伏工作电压、掉电复位及 16MIPS(带有基本时钟) MSP430F5XX: 基于闪存的MCU 提供1.8 伏至3.6 伏工作电压、掉电复位及 18MIPS(带有基本时钟)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MSP430F149的看门狗操作
1)看门狗的图解
图1 看门狗图解
2)看门狗介绍
看门狗由一个16位寄存器控制,高八位是密匙,密匙密码是05AH,读取是069H。MSP430F149的看门狗是系统默认开启的,所有一般不用的时候,程序一开始就关闭看门狗。看门狗有两种工作模式:
1.看门狗模式。
2.定时器模式。
3)看门狗的控制寄存器
1.WDTCTL
●WDTPW:高八位是密匙。一般IAR的头文件里面都包含有。
●WDTHOLD:选择是否打开看门狗。0开1关。
●WDTNMIES:当复位端用作NMI(外部的非可屏蔽中断)的时候,选择是上升沿触
发中断还是下降沿触发中断。0上升1下降。
●WDTNMI:选择复位端是作为复位端口还是NMI(外部的非可屏蔽中断)端口。0
复位1NMI。
●WDTTMSEL:选择看门狗模式还是定时器模式。0看门狗1定时器。
●WDTCNTCL:看门狗计数清零。1清零。
●WDTSSEL:看门狗的时钟来源选择。0子系统时钟1主系统时钟。
●WDTISx:看门狗时钟分频选择。
2.IE1
●NIMIE:外部非可屏蔽中断使能。
●WDTIE:看门狗中断使能。(当看门狗做定时器的时候也是这个使能)
3.IFG1(一般C语言不操作,都会有硬件置位)
●NMIIFG:外部非可屏蔽中断标志。
●WDTIFG:看门狗中断标志。
4)当看门狗用作定时器使用的时候的操作。
1.把看门狗设置到定时器模式。(也还可以设置触发边沿,选择时钟和分频)
2.清零看门狗。
3.打开看门狗中断使能。
#include
#define uint unsigned int
void main()
{
WDTCTL=WDT_MDLY_32;//相当于WDTPW+WDTTMSEL+WDTCNTCL
//也就是密匙+选择定时器模式+清零看门狗
IE1|=WDTIE;//打开看门狗中断使能,由于看门狗是非可屏蔽中断所有不用
//打开总中断IE
while(1)
{
LPM3;
}
}
#pragma vector=WDT_VECTOR
//看门狗的中断入口地址是WDT_VECTOR,NMI的入口地址是NMI_VECTOR __interrupt void P1RT(void)
{
//中断程序,硬件自动清除中断标志所有不用软件清除。
}