msp430实用程序汇总(2)

2019-03-10 13:34

/*************************************************** 程序功能:BoardConfig.h 头文件 ---------------------------------------------------

***************************************************/ typedef unsigned char uchar; typedef unsigned int uint;

//控制位的宏定义

#define Ctrl_Out P3DIR |= BIT3 + BIT6 + BIT7; #define Ctrl_0 P3OUT &= ~(BIT3 + BIT6 + BIT7) #define SRCLK_1 P3OUT |= BIT7 #define SRCLK_0 P3OUT &= ~BIT7 #define SER_1 P3OUT |= BIT6 #define SER_0 P3OUT &= ~BIT6 #define RCLK_1 P3OUT |= BIT3 #define RCLK_0 P3OUT &= ~BIT3

//板上资源配置函数

void BoardConfig(uchar cmd) {

uchar i;

Ctrl_Out; Ctrl_0;

for(i = 0; i < 8; i++) {

SRCLK_0;

if(cmd & 0x80) SER_1; else SER_0; SRCLK_1; cmd <<= 1; }

RCLK_1; _NOP(); RCLK_0; }

/*************************************************** 程序功能:控制8个LED闪烁,用于测试下载功能是否正常 --------------------------------------------------- 测试说明:观察LED闪烁

***************************************************/ #include #include \

6

/****************主函数****************/ void main(void) {

WDTCTL = WDTPW + WDTHOLD; //关闭看门狗

BoardConfig(0xf0); //关闭数码管和电平转换,打开流水灯

CCTL0 = CCIE; //使能CCR0中断

CCR0 = 2047; //设定周期0.5S

TACTL = TASSEL_1 + ID_3 + MC_1; //定时器A的时钟源选择ACLK,增计数模式 P2DIR = 0xff; //设置P2口方向为输出 P2OUT = 0xff;

_EINT(); //使能全局中断

LPM3; //CPU进入LPM3模式 }

/******************************************* 函数名称:Timer_A

功 能:定时器A的中断服务函数 参 数:无 返回值 :无

********************************************/ #pragma vector = TIMERA0_VECTOR __interrupt void Timer_A (void) {

P2OUT ^= 0xff; //P2口输出取反 }

/*********************************************** 程序功能:实现流水灯以三种流动方式和四种流动速度 的不同组合而进行点亮\流动\------------------------------------------------

测试说明:观察流水灯流动顺序和速度的变化

************************************************/ #include #include \

uint i = 0,j = 0,dir = 0;

uint flag = 0,speed = 0; //flag--灯光流动方式,speed--灯光流动速度

/****************主函数****************/ void main(void) {

WDTCTL = WDTPW + WDTHOLD; //关闭看门狗

7

BoardConfig(0xf0);

CCTL0 = CCIE; //使能CCR0中断 CCR0 = 50000;

TACTL = TASSEL_2 + ID_3 + MC_1; //定时器A的时钟源选择SMCLK,增计数模式 P2DIR = 0xff; //设置P2口方向为输出 P2OUT = 0xff;

_EINT(); //使能全局中断

LPM0; //CPU进入LPM0模式 }

/******************************************* 函数名称:Timer_A

功 能:定时器A的中断服务函数,在这里通过标志 控制流水灯的流动方向和流动速度 参 数:无 返回值 :无

********************************************/ #pragma vector = TIMERA0_VECTOR __interrupt void Timer_A (void) {

if(flag == 0) {

P2OUT = ~(0x80>>(i++)); //灯的点亮顺序D8 -> D1 }

else if(flag == 1) {

P2OUT = ~(0x01<<(i++)); //灯的点亮顺序D1 -> D8 } else {

if(dir) //灯的点亮顺序 D8 -> D1,D1 -> D8,循环绕圈 {

P2OUT = ~(0x80>>(i++)); } else {

P2OUT = ~(0x01<<(i++)); } }

if(i == 8) {

i = 0;

8

dir = ~dir; }

j++;

if(j == 40) {

i = 0; j = 0; flag++;

if(flag == 4) flag = 0; switch(speed) {

case 0:

TACTL &=~ (ID0 + ID1); TACTL |= ID_3; break; case 1:

TACTL &=~ (ID0 + ID1); TACTL |= ID_2; break; case 2:

TACTL &=~ (ID0 + ID1); TACTL |= ID_1; break; case 3:

TACTL &=~ (ID0 + ID1); TACTL |= ID_0; break; default: break; }

if(flag != 3) speed++; if(speed == 4) speed = 0; } }

/******************************************************* 程序功能:用从P2.3和P2.4输出的PWM波形驱动LED闪烁 P2.3口输出方波的占空比为75% P2.4口输出方波的占空比为25% ------------------------------------------------------- 测试说明:观察LED的亮灭的时间长短

*******************************************************/ #include #include \void main(void)

9

{

WDTCTL = WDTPW + WDTHOLD; // 关狗

BoardConfig(0xb0); // 关闭数码管和电平转换,打开流水灯 P2DIR = 0xff; // P2端口设置为输出 P2OUT = 0xff; // 关闭其他LED

P2SEL |= BIT3 + BIT4; // P2.3和P2.4连接内部模块 CCR0 = 4096-1; // PWM周期为1S CCTL1 = OUTMOD_7; // CCR1 reset/set

CCR1 = 3072; // CCR1 PWM duty cycle CCTL2 = OUTMOD_7; // CCR2 reset/set

CCR2 = 1024; // CCR2 PWM duty cycle TACTL = TASSEL_1 + ID_3 + MC_1; // ACLK/8, up mode

_BIS_SR(LPM3_bits); // Enter LPM3 }

//****************************************************************************** // MSP-FET430P140 Demo - Basic Clock, Output Buffered SMCLK, ACLK and MCLK //

// Description: Output buffered MCLK, SMCLK and ACLK.

// ACLK = LFXT1 = 32768, MCLK = DCO Max, SMCLK = XT2 // //* XTAL's REQUIRED - NOT INSTALLED ON FET *//

// //* Min Vcc required varies with MCLK frequency - refer to datasheet *// //

// MSP430F149 // -----------------

// /|\\| XIN|- // | | | 32k // --|RST XOUT|- // | | // | XT2IN|-

// | | XTAL (455k - 8Mhz) // |RST XT2OUT|- // | |

// | P5.4|-->MCLK = DCO Max // | P5.5|-->SMCLK = XT2 // | P5.6|-->ACLK = 32kHz //

// M. Buccini

// Texas Instruments Inc. // Feb 2005

// Built with IAR Embedded Workbench Version: 3.21A

//******************************************************************************

10


msp430实用程序汇总(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:酒店管理信息系统设计方案介绍

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: