MPS430F149单片机之_选择不同时钟源的闪烁灯

合集下载

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上有详细介绍。

MSP430单片机的片上存储器共为64K,表示为图:第三节 P 口MSP430F149有6个8位的P口,其中P1、P2口占两个中断向量,共可以接16 个中断源,还可以直接利用 P口的输入输出寄存器,直接对外进行通信。

msp430Led按键控制灯亮程序

msp430Led按键控制灯亮程序

1.Led灯控制程序#include "msp430g2553.h"void main( void ){// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD; //关闭看门狗//P1DIR = 0x41;//P1OUT = 0x41; //程序点亮led1//P1DIR |=BIT0+BIT6;//P1OUT |=BIT0+BIT6; //程序点亮led2P1DIR |=BIT0;P1OUT |=BIT0;P1DIR |=BIT6;P1OUT &=~BIT6;while(1){P1OUT ^=BIT0;P1OUT ^=BIT6;__delay_cycles(1000000);} //led交替亮,持续1s2.Led按键控制灯亮#include "msp430g2553.h"void main( void ){// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;//关闭看门狗P1DIR &=~BIT3;P1DIR |=BIT0;P1IES |=BIT3;P1IE |=BIT3;_EINT();_BIS_SR(LPM0_bits+GIE);}#pragma vector=PORT1_VECTOR__interrupt void PORT1_ISR(void){int i;char pushkey;pushkey=P1IFG&BIT3;//第三位中断标志位for(i=0;i<1000;i++)//短暂延时软件去抖if((P1IN&pushkey)==pushkey){P1IFG=0;//中断标志清零return;}if(P1IFG&BIT3)//判断按键是否按下{P1OUT^=BIT0;}P1IFG=0;return;}3.矩阵键盘和数码管程序#include <msp430g2553.h>#include"Key&Display.h"//unsigned char Receive(void);void main( void ){// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;Init_4lines_Mode();//初始化4线工作模式Send_Command(CH452_RESET);//CH452芯片内部复位Send_Command(KeyDisplay_ON);//允许显示驱动并启动键盘扫描//开中断,P2.0接CH452的DOUT引脚,当有键按下时,DOUT上产生由高到低的脉冲// P2SEL &= ~(BIT6+BIT7);P2IE|=BIT0;P2IES|=BIT0;P2IFG&=~BIT0;_EINT();while(1){}}//中断处理函数#pragma vector = PORT2_VECTOR//中断处理程序,接收到DOUT脉冲信号时,运行之__interrupt void Port2(void){unsigned char Keyvalue;Send_Command(CH452_GET_KEY);//单片机向CH452发送读取按键代码命令Keyvalue=Key_Read();// Keyvalue=Receive();switch(Keyvalue){case 0x40://按键K0按下{Send_Command( NDis1); //第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis00);//第0位数码管显示0break;}case 0x41://按键K1按下{Send_Command( NDis1); //第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis01);//第0位数码管显示1break;}case 0x42://按键K2按下{Send_Command( NDis1); //第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis02);//第0位数码管显示2break;}case 0x43://按键K3按下{Send_Command( NDis1);//第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis03);//第0位数码管显示3break;}case 0x48://按键K4按下{Send_Command( NDis1);//第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis04);//第0位数码管显示4break;}case 0x49://按键K5按下{Send_Command( NDis1);//第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis05);//第0位数码管显示5break;}case 0x4A://按键K6按下{Send_Command( NDis1);//第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis06);//第0位数码管显示6break;}case 0x4B://按键K7按下{Send_Command( NDis1);//第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis07);//第0位数码管显示7break;}case 0x50://按键K8按下{Send_Command( NDis1);//第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis08);//第0位数码管显示8break;}case 0x51://按键K9按下{Send_Command( NDis1);//第1位数码管不显示//Send_Command(Dis10);Send_Command(Dis09);//第0位数码管显示9break;}case 0x52://按键K10按下{Send_Command(Dis00);//第0个数码管显示字符"0"Send_Command(Dis11);//第1个数码管显示字符"1"break;}case 0x53://按键K11按下{Send_Command(Dis01);//第0个数码管显示字符"1"Send_Command(Dis11);//第1个数码管显示字符"1"break;}case 0x58://按键K12按下{Send_Command(Dis02);//第0个数码管显示字符"2"Send_Command(Dis11);//第1个数码管显示字符"1"break;}case 0x59://按键K13按下{Send_Command(Dis03);//第0个数码管显示字符"3"Send_Command(Dis11);//第1个数码管显示字符"1"break;}case 0x5A://按键K14按下{Send_Command(Dis04);//第0个数码管显示字符"4"Send_Command(Dis11);//第1个数码管显示字符"1"break;}case 0x5B://按键K15按下{Send_Command(Dis05);//第0个数码管显示字符"5"Send_Command(Dis11);//第1个数码管显示字符"1"break;}default:break;}P2IFG&=~BIT0;}4.红灯0.2秒闪一次,绿灯0.8秒闪一次#include <msp430g2553.h>void main(void){WDTCTL = WDTPW + WDTHOLD; // Stop WDT BCSCTL1 &=~XTS; //配置时钟BCSCTL3 |=LFXT1S_2;IFG1 &=OFIFG;P1DIR |=BIT0+BIT6; // P1.0,P1.6 output P1OUT &=~BIT0; // P1.0,P1.6置0 P1OUT &=~BIT6;TACCR0 = 12000-1; //1秒定时,产生中断TACCR1 = 2400; //频率0.2*12000,定时0.2秒TACCR2 = 9600; //定时0.8秒TACTL = TASSEL_1 + MC_1+TAIE; // ACLK, 增计数模式TACCTL1 |=CCIE; // TACCR1中断使能TACCTL2 |=CCIE; // TACCR1中断使能_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt}// Timer_A3 Interrupt Vector (TA0IV) handler#pragma vector=TIMER0_A1_VECTOR__interrupt void Timer_A(void){switch( TA0IV ){case 2: P1OUT ^= BIT0; // 捕获/比较寄存器TACCR1break;case 4: P1OUT ^= BIT6;break; // 捕获/比较寄存器TACCR2case 10: break; // 未使用,计数达到TACCRO时执行中断,即1秒执行一次}}5.PMW波控制led灯亮度#include "msp430g2553.h"void main( void ){// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;P1DIR |=BIT6; //方向寄存器P1SEL |=BIT6; //功能寄存器TACTL=TASSEL_2+MC_1+ID_0; //定时器A控制寄存器选择增计数模式TACCTL1 |=OUTMOD_3; //捕获/比较控制寄存器TACCR0=1000-1;TACCR1=10;_BIS_SR(CPUOFF);}。

第四章 MSP430F149看门狗定时器

第四章 MSP430F149看门狗定时器
程序如下:
#include <msp430x14x.h> void main(void) {
WDTCTL=WDT_ADLY_1000;//1000ms 定时 //WDT_ADLY_1000=WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL
P6DIR |=BIT0;//P6.0 输出 P6OUT |=BIT0;//P6.0 输出高电平关闭 LED 灯 IE1 |=WDTIE;//允许 WDT 中断 _EINT();//开放系统中断 while(1) {
例:设置看门狗间隔定时器模式,选择 ACLK(32768Hz)时钟源,定时 1s。
WDTCTL=WDTPW + WDTTMSEL + WDTCNTCL + WDTSSEL;
口令
定时工作模式 清除计数器
选择 ACLK
思考:
选择 ACLK(32786Hz)时钟源,定时 250ms/16ms/1.95ms,如何设置 WDTCTL?
说明:
WDTPW——口令,固定格式。
WDTCNTCL——计数器清零
WDTCTL.2(WDTSSEL)——WDTCTL 第二位时钟源选择位,
0:选择 SMCLK
1:选择 ACLK
WDTISx——定时间隔选择控制位,T 为时钟源时钟周期。
WDTISx=00,定时间隔 T×215 WDTISx=01,定时间隔 T×213
2、IE1 中断使能寄存器 1
7
6
5
4
3
2
1
0
NMIIE
WDTIE
rw-0
rw-0
NMIIE:非屏蔽中断允许控制位。
NMIIE=0,禁止 NMI 中断

MPS430F149单片机之_ADS1241的接口设计与实现

MPS430F149单片机之_ADS1241的接口设计与实现

MPS430F149单片机之_ADS1241的接口设计与实现#include#include "ADS1241.h"int ADS1241Init(void){// 定义初始状态P3OUT &= ~(ADS1241_SCLK | ADS1241_DIN);P3OUT |= (ADS1241_CS);// 方向P3DIR = (ADS1241_SCLK | ADS1241_CS | ADS1241_DOUT); //设置DRDY管脚P1SEL &= ~(ADS1241_DRDY);P1DIR &= ~(ADS1241_DRDY);return ADS1241_NO_ERROR;}int ADS1241WaitForDataReady(int Timeout){if (Timeout > 0){// 判断ADS1241的管脚输出是否是高电平while (!(P1IN & ADS1241_DRDY) && (Timeout-- >= 0)) ; // 判断ADS1241的管脚输出是否是低电平while ( (P1IN & ADS1241_DRDY) && (Timeout-- >= 0)) ;if (Timeout < 0)return ADS1241_TIMEOUT_WARNING; }else{// 判断ADS1241的管脚输出是否是高电平while (!(P1IN & ADS1241_DRDY)) ;// 判断ADS1241的管脚输出是否是低电平while ( (P1IN & ADS1241_DRDY)) ;}return ADS1241_NO_ERROR;}void ADS1241AssertCS( int fAssert) {//分别设置高电平或者低电平if (fAssert)P3OUT &= ~ADS1241_CS;elseP3OUT |= ADS1241_CS;}void ADS1241SendByte(int Byte){int i,j;for (i=0; i<8; i++){// 输出数据if (Byte & 0x80)P3OUT |= ADS1241_DIN;elseP3OUT &= ~ADS1241_DIN;// 时钟管脚输出高电平P3OUT |= ADS1241_SCLK;//延迟一点时间for(j = 20;j > 0;j--) ;// 时钟管脚输出低电平P3OUT &= ~ADS1241_SCLK;//延迟一点时间for(j = 20;j > 0;j--) ;Byte <<= 1;}}unsigned char ADS1241ReceiveByte(void) {unsigned char Result = 0;int i,j;for (i=0; i<8; i++){Result <<= 1;// 时钟管脚输出高电平P3OUT |= ADS1241_SCLK;//延迟一点时间for(j = 20;j > 0;j--) ;//读数据if (P3IN & ADS1241_DOUT) Result |= 1; // 时钟管脚输出低电平P3OUT &= ~ADS1241_SCLK;//延迟一点时间for(j = 20;j > 0;j--) ;}return Result;}/**************************************************************** ****************/long ADS1241ReadData(int fWaitForDataReady){int j;long Data;// if requested, synchronize to /DRDYif (fWaitForDataReady)ADS1241WaitForDataReady(0);// 选通ADS1241ADS1241AssertCS(1);// 发送命令字节ADS1241SendByte(ADS1241_CMD_RDATA);//延迟一点时间for(j = 50;j > 0;j--) ;// 得到转换结果Data = ADS1241ReceiveByte();Data = (Data << 8) | ADS1241ReceiveByte();Data = (Data << 8) | ADS1241ReceiveByte();// 符号扩展if (Data & 0x800000)Data |= 0xff000000;// 不选通ADS1241ADS1241AssertCS(0);return Data;}int ADS1241ReadRegister(int StartAddress, int NumRegs, unsigned * pData){int i;// 选通ADS1241ADS1241AssertCS(1);// 发送命令ADS1241SendByte(ADS1241_CMD_RREG | (StartAddress & 0x0f));// 发送参数ADS1241SendByte(NumRegs-1);//延迟一点时间for(i = 50;i > 0;i--) ;// 读取数据for (i=0; i< NumRegs; i++){*pData++ = ADS1241ReceiveByte();}// 不选通ADS1241ADS1241AssertCS(0);return ADS1241_NO_ERROR;}int ADS1241WriteRegister(int StartAddress, int NumRegs, unsigned int *pData){int i;// 选通ADS1241ADS1241AssertCS(1);// 发送命令ADS1241SendByte(ADS1241_CMD_WREG | (StartAddress & 0x0f));// 发送参数ADS1241SendByte(NumRegs-1);//延迟一点时间for(i = 50;i > 0;i--) ;// 发送数据for (i=0; i< NumRegs; i++){ADS1241SendByte(*pData++);}// 不选通ADS1241ADS1241AssertCS(0);return ADS1241_NO_ERROR;}int ADS1241SendResetCommand(void) {int i;// 选通ADS1241ADS1241AssertCS(1);// 发送命令ADS1241SendByte(ADS1241_CMD_RESET);// 不选通ADS1241ADS1241AssertCS(0);//延迟一点时间for(i = 50;i > 0;i--) ;return ADS1241_NO_ERROR;}int ADS1241SetChannel(int MuxCode) {unsigned int nTemp;nTemp = MuxCode;ADS1241WriteRegister(ADS1241_MUX_REGISTER, 0x01, &nTemp);return ADS1241_NO_ERROR;}int ADS1241SetGain(int GainCode){unsigned Temp;// 读出增益ADS1241ReadRegister(ADS1241_SETUP_REGISTER, 0x01, &Temp);// 增益处理Temp &= ~0x07;Temp |= GainCode & 0x07;// 写入写的增益ADS1241WriteRegister(ADS1241_SETUP_REGISTER, 0x01, &Temp);return ADS1241_NO_ERROR;}void Init_CLK(void){unsigned int i;BCSCTL1 = 0X00; //将寄存器的内容清零//XT2震荡器开启//LFTX1工作在低频模式//ACLK的分频因子为1do{// 清除OSCFault标志IFG1 &= ~OFIFG;for (i = 0x20; i > 0; i--);}while ((IFG1 & OFIFG) == OFIFG);// 如果OSCFault =1//将寄存器的内容清零BCSCTL2 = 0X00;//MCLK的时钟源为TX2CLK,分频因子为1BCSCTL2 += SELM1;//SMCLK的时钟源为TX2CLK,分频因子为1 BCSCTL2 += SELS;}void main(void){int i;char ACRVal;unsigned int nTemp;long nRes;// 初始化时钟Init_CLK();// ADS1241的初始化ADS1241Init();// 复位ADS1241ADS1241SendResetCommand();// 设置增益和复用方式ADS1241SetGain(ADS1241_GAIN_1);ADS1241SetChannel(0x05 | ADS1241_MUXN_AINCOM);// 速率 = 15Hz (2.4576MHz, SPEED = 0)ACRVal = 0;nTemp = 0;ADS1241WriteRegister(ADS1241_ACR_REGISTER, 1, &nTemp);// 内部自校正ADS1241AssertCS(1);ADS1241SendByte(ADS1241_CMD_SELFCAL);ADS1241AssertCS(0);for (i=0; i<4; i++)ADS1241WaitForDataReady(0);// 读取数据nRes = ADS1241ReadData(1);return ;}。

MSP430F149的时钟操作详解

MSP430F149的时钟操作详解

MSP430F149的时钟操作1)时钟图解图1 内部时钟图解2)内部时钟MSP430F149系统开启时,默认的时钟来源是内部的DCO,然后可以通过用户的软件设置切换到外部的晶体振荡器。

而MSP430F149可以选择的时钟来源可以有三个:1.来自外部高速晶振振动器。

2.来自外部的低速晶振振荡器,其实低速晶体振荡器也可以外接高速晶体振荡器跟第一个一样。

3.来自单片机内部的DCO时钟。

内部的DCO还可以通过DCOX和RSELX来选择其振荡频率。

而初始时,DCOX=3,RESLX=4。

其频率选择如下图:图2 DCO频率选择其中DCO一个为增加10%,RSEL一格增加25%。

MSP430F149内部有三种时钟:1.主系统时钟(MCLK);主系统时钟可以有三个来源。

2.子系统时钟(SMCLK);子系统时钟可以有两个来源:外部高速和DCO。

3.辅助系统时钟(ACLK);只有一个来源:外部低速。

他们都可以进行各自分频。

3)时钟的寄存器。

1.DCOCTLDCOx:选择DCO振荡频率(和RSELx共同决定)。

MODx:调制器的选择。

2.BCSCTL1XT2OFF:是否关闭高频震荡器。

0开;1关。

XTS:选择低速晶体振荡器的工作方式(其实低速晶体振荡器也可以接成高速晶体的)。

0为低;1为高。

DIVAx:选择对辅助系统时钟分频。

XT5V:无用。

RSELx:选择DCO的频率(和DCOx共同决定)。

3.BCSCTL2SELMx:选择主系统时钟的来源。

DIVMx:主系统时钟的分频。

SELS:选择子系统时钟来源。

DIVSx:选择子系统时钟的分频。

DCOR:DCO选择用片内电阻还是用外接电阻。

默认内接。

4.IE1OFIE:检测晶体振荡器是否正常工作使能控制。

0关;1开。

(产生的是非可屏蔽中断。

)5.IFG1:OFIFG:晶体振荡是否正常工作中断标志位。

(就算不打开使能端也只能置位,打开使能端只是能够进行打断CPU,使CPU进入中断程序。

基于近红外光谱的活体植物叶片水分检测仪器

基于近红外光谱的活体植物叶片水分检测仪器

第25卷增刊2农业工程学报V ol.25Supp.2 922009年10月Transactions of the CSAE Oct.2009基于近红外光谱的活体植物叶片水分检测仪器侯瑞1,2,吉海彦1※,饶震红3,申兵辉3(1.中国农业大学信息与电气工程学院,北京100083;2.南京航空航天大学金城学院,南京211156;3.中国农业大学理学院,北京100083)摘要:在近红外光谱区,采用超低功耗单片机MSP430及新型的光频转换芯片TSL230,研制快速无损、可现场测定植物叶片水分含量的透射式检测仪器。

仪器整体由信号采集系统、单片机系统及相应的软件支撑、校正模型组成。

其信号采集系统采用近红外LED光源,890nm和980nm的窄带干涉滤光片和光频转换芯片。

光频转换芯片的使用简化了信号采集电路,减少了噪声的引入。

该文介绍了该仪器的硬件设计、软件设计,对紫荆叶片水分含量的建模及预测。

预测结果与水分真实值基本一致,二者相关系数为0.900。

仪器具有较高的重复性、稳定性和可靠性,与其他水分测量仪相比,该仪器具有体积小、结构简单、重量轻、超低功耗、抗干扰等特点。

试验结果表明本仪器可在田间现场对植物叶片水分含量进行快速无损检测。

关键词:近红外光谱,叶片,水分,检测doi:10.3969/j.issn.1002-6819.2009.z2.019中图分类号:TH744.1文献标识码:A文章编号:1002-6819(2009)-Supp.2-0092-05侯瑞,吉海彦,饶震红,等.基于近红外光谱的活体植物叶片水分检测仪器[J].农业工程学报,2009,25(增刊2):92-96.Hou Rui,Ji Haiyan,Rao Zhenhong,et al.Water detection instrument design for living leaves based on near infrared spectroscopy[J].Transactions of the CSAE,2009,25(Supp.2):92-96.(in Chinese with English abstract)0引言在农业生产上,水分条件是一个极其重要的自然条件。

MSP430F149的定时器A操作

MSP430F149的定时器A操作

MSP430F149的定时器A定时操作1)定时器A的图解图1 定时器A图解2)定时器A的四种计数模式。

1.停止模式。

2.增计数模式。

(产生两个中断标志)也就是当计数到跟TACCR0一样的时候,就返回0,重新计数。

当计数到TACCR0的同时产生一个中断标志CCIFG,而当计数器溢出返回零的同时又同时产生一个中断标志TAIFG。

如图:图2 增计数模式的波形图3.连续计数模式。

(产生一个中断标志)也就是计数器将直接计数到计数器所能计数的最大值0FFFFH之后重新返回零,再次计数。

返回零的同时产生一个TAIFG中断标志。

如图:4.增减计数模式。

(产生两个中断标志)也就是当计数器计数到跟TACCR0一样的之后,然后从TACCR0开始又减少,直到为零,然后又开始增。

当计数跟TACCT0一样的时候产生一个中断标志CCIFG,当减到为零的时候又产生一个中断标志TAIFG。

如图:注意:当重新写入TACCR0数值的时候,当新的数据大于原来的数值的时候,计数器将计数到新的数值才重新返回零;当新的数据小于原来的数值的时候,计数器将直接返回零重新计数。

3)定时器A的寄存器。

1.TACTL●TASSELx:计时器A的时钟来源选择。

●IDx:计时器A时钟的分频选择。

●MCx:计时器A四种计数模式选择。

●TACLR:计数器A的TAR计数清零,同时也可以清楚时钟分频器和计数方向。

●TAIE:TAIFG中断标志使能。

在捕获模式下可以打开所有CCIFG的中断使能。

●TAIFG:中断标志位。

2.TAR计数器的计数寄存器。

3.TACCTLx●CMx:捕获模式选择。

00:关闭;01:上升沿捕获;10:下降沿捕获;11:上升下降沿捕获。

●CCISx:捕获引脚选择。

●SCS:选择捕获电平方式。

0异步时钟;1同步时钟。

●SCCI:锁存同步时钟输入端。

也就是锁存EQUx的值,以供CPU读取。

●CAP:捕获模式和比较模式选择。

0比较;1捕获。

●OUTMODx:输出模式选择。

MSP430 系统时钟 ACLK、MCLK、SMCLK

MSP430 系统时钟 ACLK、MCLK、SMCLK

MSP430 系统时钟ACLK、MCLK、SMCLKMSP430 基础时钟模块包含以下3 个时钟输入源。

一、4 个时钟振荡源1、LFXT1CLK:外部晶振或时钟1 低频时钟源低频模式:32768Hz 高频模式:(400KHz-16MHz)2、XT2CLK:外部晶振或时钟2 高频时钟源(400KHz-16MHz) 3、DCOCLK:内部数字RC 振荡器,复位值1.1MHz4、VLOCLK:内部低功耗振荡器12KHz 注:MSP430x20xx:LFXT1 不支持HF 模式,XT2 不支持,ROSC 不支持.(1)LFXT1CLK 低频时钟源:由LFXT1 振荡器产生(如图2 所示)。

通过软件将状态寄存器中OSCOff 复位后,LFXT1 开始工作,即系统采用低频工作。

如果LFXT1CLK 没有用作SMCLK 或MCLK 信号,则可以用软件将OSCOff 置位,禁止LFXT1 工作。

(2)XT2CLK 高频时钟源:由XT2 振荡器产生。

它产生时钟信号XT2CLK,其工作特性与LFXT1 振荡器工作在高频模式时类似。

可简单地通过软件设置XT2 振荡器是否工作,当XT2CLK 没有用作SMCLK 或MCLK 信号时,关闭XT2,选择其他时钟源。

3)DCOCLK 数字控制RC 振荡器。

由集成在时钟模块中的DCO 振荡器产生。

DCO 振荡器是一个RC 振荡器,频率可以通过软件调节,其控制逻辑如图3 所示。

当振荡器LFXT1、XT2 被禁止或失效时,DCO 振荡器被自动选作MCLK 的时钟源。

因此由振荡器失效引起的系统中断请求可以得到响应,甚至在CPU 关闭的情况下也能得到处理。

由基础时钟模块可以提供系统所需的3 种时钟信号,即:ACLK、MCLK、SMCLK。

其中辅助时钟ACLK 是LFXT1CLK 信号经1、2、4、8 分频后得到的。

ACLK 可由软件选作各个外围模块的时钟信号,一般用于低速外设;系统主时钟MCLK 可由软件选择来自LFXT1CLK、XT2CLK、DCOCLK 三者之一,然后经1、2、4、8 分频得到。

MSP430F149开发板套件用户手册

MSP430F149开发板套件用户手册

联系人:黄先生 电 话:13638654514 Q Q:50924175 E -- Mail: dr ago nhzw@163. co m
技术支持: 论 坛 : ht t p: // www. smar t - dz. cn/ bbs QQ 群:57829880
斯玛特精品电子工作室

目录
一、可选套件 ........................................................................................... 4 二、产品介绍 ........................................................................................... 7
斯玛特精品电子工作室
一、可选套件

图 1 MSP430F149 开发板和 LCD1602 字符液晶
斯玛特精品电子工作室

图 2 MSP430F149 开发板和 LCD12864 图形液晶
斯玛特精品电子工作室

15) 一个红外线遥控接口:红外线遥控解码实验;
16) 24C16 串行 EEPROM:可以进行 SPI EEPROM 读写实验;
17) 一个 DS1302 时钟芯片:实现实时时钟实验;
18) DS18B20 单总线数字温度传感器:可以用单片机控制它来测量温
度;
19) 一个 nRF905 接口;nRF905 通过 SPI 接口实现无线收发实验;
仿真器; 5) 复位按钮:用于手工复位单片机 6) IO 扩展口:两组 25*2 排针扩展口,引出单片机 P1~P5 全部 I/O 引
脚; 7) CR1220 3V 电池(开发板反面):为时钟芯片提供电源,保证掉电

msp430 实验报告

msp430 实验报告

msp430 实验报告MSP430 实验报告引言:MSP430是一款低功耗、高性能的微控制器,广泛应用于嵌入式系统开发领域。

本实验报告将介绍我对MSP430进行的一系列实验,包括基本的GPIO控制、定时器应用、模拟信号采集和通信接口应用等。

实验一:GPIO控制在本实验中,我使用MSP430的GPIO引脚控制LED灯的亮灭。

通过配置引脚的输入/输出模式以及设置引脚电平,我成功地实现了对LED灯的控制。

这为后续实验奠定了基础,也让我更加熟悉了MSP430的寄存器配置。

实验二:定时器应用在本实验中,我探索了MSP430的定时器功能。

通过配置定时器的时钟源和计数模式,我实现了定时器中断功能,并利用定时器中断实现了LED灯的闪烁。

这个实验让我更加深入地了解了MSP430的定时器模块,并学会了如何利用定时器进行时间控制。

实验三:模拟信号采集在本实验中,我使用MSP430的模拟信号输入引脚和模数转换模块,成功地将外部的模拟信号转换为数字信号。

通过配置ADC模块的采样速率和精度,我实现了对模拟信号的准确采集,并将采集到的数据通过串口输出。

这个实验让我对MSP430的模拟信号处理有了更深入的了解。

实验四:通信接口应用在本实验中,我使用MSP430的串口通信模块,实现了与外部设备的数据传输。

通过配置串口的波特率和数据格式,我成功地实现了与计算机的串口通信,并通过串口发送和接收数据。

这个实验让我掌握了MSP430与外部设备进行数据交互的方法。

结论:通过一系列的实验,我对MSP430的基本功能和应用有了更深入的了解。

MSP430作为一款低功耗、高性能的微控制器,具备丰富的外设和强大的处理能力,适用于各种嵌入式系统的开发。

通过学习和实践,我掌握了MSP430的GPIO控制、定时器应用、模拟信号采集和通信接口应用等基本技能,为以后的嵌入式系统开发打下了坚实的基础。

未来展望:MSP430作为一款成熟的微控制器,具备广阔的应用前景。

MSP430F149介绍文档

MSP430F149介绍文档
P3SEL &= ~BI4; //选择P3.4作为普通I/O口功能
P3DIR |= BIT4; //将P3.4设置为输出方向
P3OUT |= BIT3; //使P3.4输出高电平(实验板上初始化灯的状态为熄//灭)
while(1) {
P3OUT ^= BIT4; //灯的状态取反
Delay(); //调用延时子程序
}
}
/*******以下是一个不精确的延时子程序****(i=0;i<1000;i++)
for(j=0;j<110;j++);
}
将该程序烧入MSP430测试,看现象。
开发板给出的源码程序通常使用以下程序作为延时程序
i=50000;
do(i--);
while(i!=0);
课程入门介绍
MSP430引脚介绍(芯片图参考数据手册第3页)
58脚RST/NMI为430单片机的复位引脚(低电平有效)。
1脚DVCC,63脚DVSS为数字电源接口。
64脚AVCC,62脚AVSS为模拟电源接口。
注意:MSP430系列单片机的供电电压为1.8V~3.6V。
说明(在MSP430小系统中数字电源地与模拟电源地必须通过0欧电阻连接起来以防止数字电路产生的高频信号对模拟电路造成影响)
54脚TDO/TDI,55脚TDI/TCLK,56脚TMS,57脚TCK为JTAG接口(同时拥有仿真器和编程器的功能),用于下载程序并实现硬件在线仿真。
具体引脚功能参考《MSP430英文数据手册.pdf》8页
I/O口的操作
P1~P6的公有寄存器位为PXSEL,PXDIR,PXOUT,PXIN。
其中P1,P2相对于P3,P4,P5,P6还多出了3个寄存器PXIE,PXIES,PXIFG,这三个寄存器是用于设置开启P1,P2的外部触发中断使用的(其中X可以为1,2,3,4,5,6)。

MSP430F149的ADC操作

MSP430F149的ADC操作

MSP430F149的ADC操作1)ADC图解图1 ADC的原理图理解:1.ADC的时钟来源可以有四个(ACLK/MCLK/SMCLK/ADC12SO)由ADC12SSELx来选择。

并且可以由ADC12DIVx控制选择分频。

2.ADC的采样参考电压可以由SREF0,SREF1来选择四种参考电压。

3.INCHx控制选择模拟电压输入口。

4.SHSx选择控制方式。

2)ADC的内核1.ADC的转换公式当采样最高电压高过或等于参考电压的时候,是最大值0FFFH。

当采样最低电压低于或是等于参考电压的时候,是最小值000H。

2.控制ADC12的内核可以通过ADC12CTL0和ADC12CTL1两个寄存器来控制。

当不使用的时候可以通过ADC12ON位来控制关闭内核以达到低功耗的目的。

当修改转换使能标志ENC的时候,要先判断ADC12内核是否在进行转换工作,如果在转换工作期间关闭ENC(置零)那么最终得到错误的结果。

3)ADC的时钟来源ADC可以有四种时钟来源。

而ADC12OSC是ADC内置的一个时钟源,大概频率在5MHZ左右,不过该时钟源由个人设备、供电电压和外部温度的影响很大。

4)ADC的参考电压发生器ADC内部可以提供一个可以产生1.5V或是2.5V的产考电压发生器。

当设计使用的时候,需要将一个10uF的电容和一个0.1uF的电容并联到它的输出端。

而且使用的时候,打开发生器至少需要等待17ms以让参考电压达到一个稳定的值。

5)ADC的低功耗当ADC内核不适用的时候,它会自动进入关闭模式,在使用的时候自动苏醒。

而它的参考电压却不会自动关闭,要用手通过REFON手动关闭。

6)ADC的采样保持触发源它的触发源由四种选择。

1.ADC12SC位控制。

2.定时器A输出控制3.定时器B输出控制4.定时器B输出控制7)ADC的采样保持时间ADC的采样保持时间有两种模式。

1.拓展型采样时钟模式。

这个时候,采样的时间由SHI决定,也就是当SHI上升沿的时候开始采样,下降沿的时候结束采样。

MSP430单片机C语言编程

MSP430单片机C语言编程
CCR0 =32768; // 设置计数器CCR0初值
TACTL |= MC0; //设置定时器工作模式为加计数到CCR0初值
P3DIR = 0XFF; //P3口为输出
P4DIR = 0XFF; //P4口为输出
P5DIR = 0XFF; //P5口为输出
P3OUT = 0X7E; //P3口输出为0111 1110
void main (void)
{
WDTCTL= WDTPW + WDTTMSEL+WDTSSEL;
IE1|=WDTIE;
P3DIR |=BIT7;
_EINT();
while(1);
}
interrupt[WDT_VECTOR] void WDT_interrupt (void)
P3DIR |=BIT7; //将P3.7设置为输出
_EINT(); //调用C430编译器内部函数,使能中断
while(1); //无限次循环
}
interrupt[TIMERA0_VECTOR] void Timer_A (void) //定时器A中断函数
{
P3OUT ^= BIT7; //P3.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引脚连接模拟量电位器,用于模拟量实验
//定义七段译码的共阳数码管显示数组
// hgfg dcba

MSP430单片机系统时钟选择实验-改变LED灯闪烁频

MSP430单片机系统时钟选择实验-改变LED灯闪烁频
选择外部8m高频晶振作为mclk此时闪烁频率较快unsignedint循环do3按照iarmsp430项目编译与jtag仿真调试所讲述方法进行项目编译与jtag调试运行即可看到程序运行效果
MSP430单片机实践篇---MSP430单片机系统时钟选择实验-改变LED灯闪烁频率
一、学习要点:在上一节基础上改变MSP430单片机系统时钟,观察LED灯的闪烁频率。
#include<msp430x13x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;//停止看门狗
P1DIR |= 0x20;//设P1.5为输出口
/ห้องสมุดไป่ตู้ BCSCTL1= 0x80;//分频电阻选择为0(此时闪烁频率较慢)
// BCSCTL1= 0x87;//分频电阻选择为7(此时闪烁频率较快)
//
//
//硬件电路:MSP430F135核心实验板-I型
//硬件连接:
//
//调试器:MSP430FET全系列JTAG仿真器
//调试软件:IAR Embedded Workbench Version:3.41A编译
//******************************************************************************
(2)将如下程序拷贝粘贴到main.c文件中。
//*******************************************************************************
// D13x Demo -在上一节基础上改变系统时钟,观察LED灯的闪烁频率

MSP430F149简易数控直流电源

MSP430F149简易数控直流电源

94年“简易数控直流电源”设计要求一、设计任务设计出有一定输出电压范围和功能的数控电源。

其原理示意图如下:二、设计要求1.基本要求(1)输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV;(2)输出电流:500mA;(3)输出电压值由数码管显示;(4)由“+”、“-”两键分别控制输出电压步进增减;(5)为实现上述几部件工作,自制一稳压直流电源,输出±15V,+5V。

2.发挥部分(1)输出电压可预置在0~9.9V之间的任意一个值;(2)用自动扫描代替人工按键,实现输出电压变化(步进0.1V不变);(3)扩展输出电压种类(比如三角波等)。

三、评分意见项目得分方案设计与论证、理论计算与分析、电路图30基本要求实际完成情况50总结报告20完成第一项5完成第二项15发挥部分完成第三项20且可以方便实现人性化很强的人机界面(键盘输入和液晶输出)。

比之与其它方案,方案三在实现设计要求上有着很大的优越性:不需要外接D/A转换芯片;不需要复杂的参考电压产生电路;不需要外接总线驱动就可以方便实现键盘和液晶显示;MSP430F149内部有足够的存储空间,足以存储程序和显示所需要的汉字字模,不需要扩展存储;MSP430F149有多种低功耗工作模式,通过合理的程序控制可以方便实现低功耗运行。

MSP430F149内部有16位的硬件乘法器,可以快速实现乘法运算;MSP430F149使用的指令简单,只有27条指令,指令周期短,数值计算能力强大。

鉴于以上种种优点,我们最终选择了MSP430F149单片机作为我们的控制中心,并且采用了第三种方案来实现设计的要求。

二.工作原理及电路设计1.工作原理PWM ( pulse-width modulated)脉宽调制信号是一种具有固定周期T,占空比可调的数字信号(如图所示)。

如果PWM 信号的占空比随时间变化,那么通过滤波之后的输出信号将是幅度变化的模拟信号。

因此通过控制PWM 信号的占空比就可以产生不同的模拟信号。

MPS430F149单片机之_MSP430串口通信的波特率自动识别

MPS430F149单片机之_MSP430串口通信的波特率自动识别
// 处理来自串口 1 的发送中断
interrupt [UART1TX_VECTOR] void UART1_TX_ISR(void)
{
if(nTX1_Len != 0)
{
// 表示缓冲区里的数据没有发送完
nTX1_Flag = 0;
TXBUF1 = UART1_TX_BUF[nSend_TX1];
rate = BAUD57600;
break;
case 0x1c :
rate = BAUD38400;
break;
case 0xe0 :
rate = BAUD19200;
break;
case 0x80 :
rate = BAUD14400;
break;
// 定时器中断
interrupt [TIMERA0_VECTOR] void TimerA_ISR(void)
{
nTime_Flag = 1;
// CCR0 不中断允许
CCTL0 &= ~CCIE;
}
void SetBaud(int baud)
{
//停止UART
if(UART1_RX_BUF[nRX1_Len_temp - 1] == 13)
{
nRX1_Len = nRX1_Len_temp;
nRev_UART1 = 1;
nRX1_Len_temp = 0;
}
}
///////////////////////////////////////
} baudreg;
// 串口寄存器的值 (UBR0_1, UBR1_1, UMCTL_1, Descr)

基于MSP430F149单片机的电子音乐播放器设计及实现

基于MSP430F149单片机的电子音乐播放器设计及实现

基于MSP430F149单片机的电子音乐播放器设计及实现宋苏影;王宏华【摘要】设计了一种以MSP430F149单片机为控制核心的电子音乐播放器,利用ULN2003A功放电路驱动蜂鸣器发出音乐,使用按键实现曲目播放与选择,采用LCD显示歌曲序号并具有彩灯随节奏闪烁等功能.运行实验表明,所设计的播放器具有运行稳定,硬件电路简单,软件功能完善,控制系统可靠等优点.【期刊名称】《机械制造与自动化》【年(卷),期】2016(045)002【总页数】4页(P210-212,216)【关键词】MSP430F149单片机;电子音乐播放器;蜂鸣器【作者】宋苏影;王宏华【作者单位】河海大学能源与电气学院,江苏南京211100;河海大学能源与电气学院,江苏南京211100【正文语种】中文【中图分类】TP391.4目前,市场上的电子音乐播放器各式各样,功能越来越完备,大都采用集成电路设计。

以MSP430单片机作为主控制单元设计的电子音乐播放器具有结构简单,控制方便,价格低廉等优点,既可实现基本播放功能,还可选择曲目、显示当前播放曲目的序号和名称,以及实现曲目不同彩灯样式不同的功能。

本文设计的电子音乐播放器以MSP430F149单片机为控制核心,由按键中断电路、时钟复位电路、功率放大及发声电路、LCD模块、彩灯显示模块等组成,其结构框图如图1所示。

按照结构框图设计所得样机如图2所示。

图1中,时钟电路产生单片机所需的时钟信号,主要由8 MHz晶振产生;复位电路保证单片机的正常工作;暂停/播放和曲目切换键分别通过定时器捕获中断和MSP430单片机Px(x=1,2)口的外部中断实现[1];点阵式字符型液晶显示模块LCD1602显示提示信息、曲目序号及名称;功放发声电路实现歌曲信号的放大;彩灯闪烁电路实现随歌曲节奏闪烁的动态效果。

单片机是主控中心,控制协调系统各个模块的工作。

电子音乐播放器设计的基本要求如下:1) 内置4首不同的乐曲可供用户选择播放;2) 液晶显示当前播放曲目的序号及名称;3) 可以实现播放/停止和乐曲选择功能;4) 彩灯随歌曲节奏闪烁。

MSP430F149的看门狗操作

MSP430F149的看门狗操作

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<msp430x14x.h>#define uint unsigned intvoid main(){WDTCTL=WDT_MDLY_32;//相当于WDTPW+WDTTMSEL+WDTCNTCL//也就是密匙+选择定时器模式+清零看门狗IE1|=WDTIE;//打开看门狗中断使能,由于看门狗是非可屏蔽中断所有不用//打开总中断IEwhile(1){LPM3;}}#pragma vector=WDT_VECTOR//看门狗的中断入口地址是WDT_VECTOR,NMI的入口地址是NMI_VECTOR __interrupt void P1RT(void){//中断程序,硬件自动清除中断标志所有不用软件清除。

MSP430F149-ADC12模块使用指南

MSP430F149-ADC12模块使用指南

概述MSP430F149的ADC12为SAR型12位AD,共有16路输入通道,其中8路独立的外部输入通道,2路接外部Vref+,Vref-,3路内部通道可分别测内部温度传感器、AVCC、和外部参考源。

P6口第二功能为AD输入端。

MSP430F149的10、11分别接外部电压参考源正负极,7脚可将内部电压参考源输出。

ADC12共有18个中断源,公用一个中断向量ADC12_VECTOR。

AD的参考源可选择内部电压参考源或外部电压参考源。

内部电压参考源有1.5V,2.5V可选,使用时向ADC12CTL0写入REFON+ REF2_5V就打开了2.5V。

外部电压参考源由REF+接入。

上电时若不设置参考源,则参考源为系统供电电压3.3V。

2 使用方法概述2.1程序架构中断方式1、设置ADC12工作模式,启动转换,开全局中断,等待中断2、写中断处理函数查询方式设置ADC12工作模式,启动转换,查询中断标志ADC12IFGwhile (!(0x01 & ADC12IFG));转换完毕读取采样值,系统自动清除中断标志2.2 使用概述主要参数配置设置工作方式:sing\\sequence\\re-sing\\re-sequencd;设置转换时间:SHTX设置触发方式:ADC12SC\\MSC\\TimerA\\ TimerB设置通道:外部通道\\内部Temperature sensor设置参考源:系统电压\\内部参考源\\外部参考源其他细节配置一般要配置采样转换模式为脉冲(SHP),打开ADC12(ADC12ON),使能ADC12转换(ENC),使能中断(如果采取中断模式),触发转换(若采用ADC12SC触发)。

解释ADC12模数转换是在SHI的上升沿初始化的。

SHI信号有四个来源:The ADC12SC bit;The Timer_A Output Unit 1;The Timer_B Output Unit 0;The Timer_B Output Unit 1。

基于MSP430单片机的电子时钟设计

基于MSP430单片机的电子时钟设计

基于MSP430单片机的电子时钟设计设计报告第四组:郭晓林、张慧、王爽摘要 (3)一、实验目的 (3)二、总体电路设计与时钟实现 (4)1、MCU(F149)模块 (4)2、液晶显示模块 (5)3、温度采集模块 (6)4、独立按键模块 (7)5、蜂鸣器模块 (8)6、DS1302定时模块 (8)三、系统软件设计 (10)四、实物图 (11)五、小结 (12)六、器件清单 (12)七、参考文献 (12)基于MSP430单片机的电子时钟设计摘要多功能数字钟的应用非常普遍,由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。

通过键盘可以进行校时,定时等功能。

本系统利用单片机实现其具有计时、校时等功能的数字时钟. 是以单片机MSP430F149为核心元件同时采用LCD12864同时显示“时、分、秒、星期、年、月、日、温度”的现代计时装置。

显示极具人性化,另外具有校时功能,闹钟功能和节电保护功能。

利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点,如在电路板上预留有电源输出,温度传感插座等插座,便于功能扩展。

关键词:MSP430F149 单片机DS12887AbstractMulti-function digital clock is very common, by single chip microcomputer as the core of the digital clock controller, through its function of timing clock signal, the time data by the MCU output, using the monitor display. Through the keyboard to school, timing, and other functions. This system using single-chip microcomputer to realize its timing, the functions such as digital clock. When the school is based on single chip MSP430F149 as the core element at the same time adopt LCD12864 display at the same time "the hours, minutes, seconds, year, month, day, week, temperature" modern timing devices. Shows highly humanized, the other has a school function, when my alarm clock and saving electricity protecting functions. Using singlechip microcomputer digital clock has a flexible programming, function expansion conveviently, such as reserved on the circuit board output power, temperature sensing socket outlet, such as convenient for function extension.Key words: MSP430F149 Single chip microcomputer DS12887一、实验目的1、基础部分:电子钟能够直观、人性化显示:时间、日期、星期,能够按键校时(用独立的LED灯做流水灯装饰)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include <msp430x14x.h> //声明库
#define XTOFF 0x40;
void main(void)//主函数
{
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
BCSCTL1 &= ~XT2OFF;//基础时钟控制寄存器BCSCTL1的第7位置0,使XT2启动
while(1);//无限次循环
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
//定时器A中断函数
{
P3OUT^=BIT7;//将P3.7引脚取反,就是使发光二极管闪烁
}
//0,1,所以TA使用SMCLK时钟
CCTL0 = CCIE;//CCIE=0X0010,使能定时器A中断
CCR0=62500;//设置计数器CCR0的初值,((8MHZ/8)/8)2=62500,相当于0.5秒的时间
P3DIR |=BIT7;//将P3.7设置位输出
_EINT();//使用C430编译器内部函数,使能中断
BCSCTL2 = SELS+DIVS1+DIVS0;//基础时钟控制寄存器BCSCTL2设置,第3位置1,选择
//XT2CLK作为SMCLK时钟;将第2和第1位置1,使分配比为8
TACTL=0x02D4;
//定时器A控制寄存器设置,第2位置1;清除;第4,5位置1、0;加计数模式
//加计数CCR0,然后重新开始;第6,7位、1,所以使8分频,第8、9位使
/*****************************************************************
选择不同的时钟源,使用P3.7连接的发光二极管闪烁
(1)使用XT2时钟源,8MHZ频率,使定时器A分频,产生1s脉冲,使P3.7引脚的发光二极管闪烁
*****************************************************************/
相关文档
最新文档