MSP430系列单片机特别强调低功耗,尤其适合采用电池长时间供电的工作场合
低速晶体振荡器XT1
高速晶体振荡器XT2
数控振荡器DCO
BCSCTL1 基本时钟系统控制寄存器1
VCSCTL2 基本时钟系统控制寄存器2
DCOCTL 内部时钟系统
DIVA、DIVS、DIVM 时钟分频
SELM  选择主系统时钟时钟源

//基本时钟系统例程 
#include <msp430x16x.h>void main(void)
{
unsigned int i;
WDCTL=WDTPW+WDTHOLD; //停止看门狗的设置
P5DIR |= 0x10;                        //将P5^4设置为输出端口
P5SEL |= 0x10;        //功能选择,将系统时钟信号通过该引脚输出
BCSCTL1 |= XTS;                   //辅助时钟设置为高速模式(辅助时钟一般用于外设)
do
{
IFG1 &= ~OFIFG;                //清除震荡失效标志
for(i=0xff;i>0;i++);        //稳定,给点时间清除
}while((IFG1&OFIFG)!=0);    //判断是否真的清除了震荡失效标志
}
//设置时钟函数
void BCSInit(void)
{
DCOCTL = 0x06+0x00;
BCSCTL1=DIVA_0+0x07;        //将辅助时钟设置为低速模式,这是默认的,不分频
BCSCTL2 =SELM_2+DIVM_0+SELS+DIVS_0; //将系统时钟和子系统时钟来源设置为高速晶体振荡器,不分频
}

//低功耗模块例程
#include <msp430x16x.h>
//中断服务函数
#pragma vector=PORT1_VECTOR
__interrupt void P1_IRQ(void)
{
    P1IFG=0;  //清除中断标志
    __low_power_mode_off_on_exit();
}
void main(void)
{
WDTCTL = WDTPW+WDTHOLD;
P1DIR &= BIT0;      //输入
P1IE  |=BIT0;    //打开中断
P1IES |=BIT0;    //下降沿中断
_EINT();        //打开总中断
while(1)
{
_NOP();
__low_power_mode_0();//进入低功耗模式0;
//当程序执行到这里的话,会停止,因为单片机进入到了低功耗模式
//当P1^0出现下降沿的时候,才会退出低功耗模式,然后再次进入低功耗模式
}
}

MSP430不支持位操作指令
MSP430一共有P1-P6共六组独立的窗口,P1和P2具有输入输出、中断、片上外设功能,P3-P6少一个中断功能,另外两个都有
PXDIR 输入输出方向寄存器,当PXDIR|=xxxx的时候,意味着输出,且其他端口保持不变;当PXDIR &= XXXX的时候,意味着输入,且其他端口保持不变
PXIN   输入寄存器,为只读寄存器,可以读取相关端口的信号
PXOUT 输出寄存器,可读可写,当PXDIR=0的时候,为输入,当PXDIR=1的时候,为输出
PXSEL 引脚功能选择寄存器,如果前面对该引脚定义特殊功能的话,可通过这个寄存器使用特殊功能
PXIFG 中断标志寄存器,使用较为简单,例如P1IFG=0,表示无中断请求,P1IFG=1,表示有中断请求
PXIE  中断允许寄存器,是否响应中断请求标志
PXIES 中断触发沿,上升还是下降

//用软件定时使得发光二极管闪烁
#include <msp430x16x.h>
void main(void )
{
unsigned char i;
WDTCTL = WDTPW+WDTHOLD;
P4DIR |=0x10;   //将P4^4设置为输出模式
while(1)
{
i=50000;           //大概循环0.5秒 
P4OUT ^=0x01; // 实质上就是取反操作 0000 0010   0000 0001 =0000 0011   0000 0001 ==0000 0010
while(i--);         空循环
}
}

//按一次按键,LED状态取反一次
#include <msp430x16x.h>
void main(void)
{
WDTCTL = WDTPW+WDTHOLE;
//P4口全部输出高电平
P4DIR = 0xff;
P4OUT =0xff;
//P1口高四位输出,低4位输入 ,低四位是按键
P1DIR = 0xf0;
P1OUT =  0xff;
//P1口低4位下降沿触发中断,清除中断标志位,中断允许,响应中断,打开总中断
P1IES = 0x0f;
P1IFG =0;
P1IE = 0x0f;
_EINT();    
while(1)
_BIS_SR(LPM4_bits);  //进入低功耗模式4
}
//中断服务函数
#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
unsigned int i;
unsigned char temp;
temp=P1IFG; //中断请求标志  
for(i=0;i<0x1fff;i++);  //软件消抖,和51delay作用一样

if((P1IN&temp)==(!temp))
{
switch(temp)
{
case 1: P4OUT ^=0x01;break;
case 2: P40UT ^=0x02;break;
case 4: P4OUT ^=0x04;break;
case 8: P4OUT ^=0x08;break;
}
}
P1IFG=0;
}

WDTCTL  看门狗控制寄存器
WDTCNT 计数单元
IE1 中断允许寄存器
IFG1 中断标志寄存器
//使用看门狗定时器产生一个方波
#include <msp430x16x.h>
void main(void )
{
WDTCTL = WDT_MDLY_32; //看门狗定时器,用SMCLK延迟32ms
IE1 |= WDTIE;  //中断允许寄存器,打开看门狗定时器(允许位)
P1DIR |= BIT0; //P1^0 为输出
_EINT();           //打开总中断
while(1)
{
_NOP();
}
#pragma vector=WDT_VECTOR
__interrupt void WDT_IRQ(void)
{
P1OUT ^= BIT0;  // 对该引脚取反操作   0000 0000 ^=0000 0001==0000 0001
}
}
TACTL     TIMER_A控制寄存器
TAR         TIMER_A计数器
TACCTLX TIMER_A捕获/比较控制寄存器
TACCRX  TIMER_A捕获/比较寄存器
TAIV       TIMER_A中断向量寄存器
//16位定时器A模块示例程序
//TIMER_A实现PWM

#include <msp430x16x.h>
void main()
{
WDTCTL=WDTPW+WDTHOLD;  //关闭看门狗
TACTL = TASSEL0+TACLR;    //
TACCR0=512-1;
TACCTL1=OUTMOD_7;
TACCR1 =384;
TACCTL2=OUTMOD_7;
TACCR2 =128;

P1DIR |=0x04;
P1SEL |=0x04;
P2DIR |=0x01;
P2SEL |=0x01;
TACTL =MC0;              //模式
while(1)
{
NOP);
}
}

msp430单片机复习内容相关推荐

  1. 从零开始的MSP430单片机学习(一)

    从零开始的MSP430单片机学习(一) 图片有些缺失,原链接:从零开始的MSP430单片机学习(一) 写在前面 单片机学习本身是一个了解学习一个技术的过程,学习的过程中不应该拘泥于某一款,而是要了解学 ...

  2. MSP430初学:MSP430单片机C语言基础(二)

    目录 前言 1.进制转换 2.数值数据的表示 3.计算机的码制 前言 1.<MSP430单片机应用基础与实践>(华中科技大学出版社)-第0章-计算机的基础知识 2.B站视频视频总结 3.自 ...

  3. msp430单片机c语言应用程序,MSP430单片机C语言应用程序设计实例精讲

    本书首先介绍了C语言的基本知识,使读者能使用C语言进行程序设计:然后介绍了30个开发例子.全书主要通过实例的形式来介绍MSP430单片机在不同领域中的应用,从而使读者掌握MSP430单片机开发的流程. ...

  4. MSP430初学:MSP430单片机C语言基础(一)

    前言 1.<MSP430单片机应用基础与实践>(华中科技大学出版社)-第1章-MSP430单片机C语言基础 2.B站视频视频总结 3.自己 (本文章作备忘录使用) 内容(概要) 1.1标识 ...

  5. MSP430单片机GPIO编程入门教程

    在本教程中,我们将一起学习MSP430单片机GPIO的编程方法.本文也适用于Launchpad开发板上使用的MSP430x2xx器件,如MSP430G2553.MSP430G2231等.MSP430单 ...

  6. 单片机16个灯四种花样c语言,基于Proteus的MSP430单片机仿真实例5-16个花样灯控制...

    一.任务要求 利用MSP430F247单片机的P1和P4端口控制16个发光二极管D1~D16,发光二极管有8种花样显示,显示速度可调,由P2端口的三个按键控制,分别是模式按键.加速按键.减速按键.模式 ...

  7. MSP430单片机各种寄存器总结(2)——UCS

    作者:BerenCamlost 本文针对于MSP430单片机原理与应用课程,请在复习时使用. 参考资料: PPT MSP430F6638用户手册 实验教程 本章最新更新日期:2018.12.23 第二 ...

  8. MSP430单片机各种寄存器总结(1)——CPU 寄存器

    作者:BerenCamlost 本文针对于MSP430单片机原理与应用课程,请在复习时使用. 参考资料: PPT MSP430F6638用户手册 实验教程 本章最新更新日期:2018.12.21 第一 ...

  9. 基于MSP430单片机的简单门禁系统

    一.课设选题 基于MSP430单片机的门禁 二.选题介绍 门禁系统通过6位密码的键入,然后与设定密码比较,若相同,门开启(电动机转动),同时人数计数器加一.若不同,按AC键清零,重新键入密码. 三.课 ...

最新文章

  1. python 设计模式 观察者_python设计模式之观察者模式
  2. php开发面试题---攻击网站的常用手段有哪些,及如何预防(整理)
  3. 《软件工艺师:专业、务实、自豪》一3.7.2 软件工艺概念走向全球
  4. 基本数据结构之BinarySearchTree
  5. php 正则表达式 x,php – 匹配x正则表达式或y正则表达式
  6. AWS实例上AMI和用户名的映射表
  7. 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密
  8. python图像增强_【Tool】Augmentor和imgaug——python图像数据增强库
  9. 用了这个方法,您的备份数据再也不怕被勒索了(数据备份防止更改)
  10. 栈实现队列(队列实现栈)
  11. 大学毕业后5年决定命运(强烈推荐一看)
  12. 浏览器构造页面的原理
  13. Ubuntu下The program 'python' can be found in the following packages:
  14. 解决红蜘蛛教师端教师图标显示灰色导致无法广播的问题
  15. java学生管理系统,(史上最全)
  16. 微信加人:你需要了解的规则
  17. 【208.11.21 直播QA】TI C2000 Piccolo单芯片——实现双轴伺服电机和马达控制
  18. php显示某年某月某日,输入某年某月某日,判断这一天是这一年的第几天?
  19. 面向开发者稳定、安心的APP内测托管平台
  20. [独家提供][亲自制作]完美ie8绿色中文版版支持win7x64

热门文章

  1. 使PC端网页宽度自适应手机屏幕大小
  2. 我们不再需要3Q大战
  3. 腾讯区块链首次发声:将做深做透场景
  4. 2014522420145238《信息安全系统设计基础》实验五
  5. lisp 非对称缓和曲线_利用AutoLISP语言绘制带缓和曲线的铁路曲线平面图
  6. Java实现调用百度AI开放云平台(人脸识别API)
  7. python 魔法方法诠释
  8. 赵小楼《天道》《遥远的救世主》深度解析(116)论天国的女人
  9. 谷歌地球out了,谷歌火星来了!
  10. 物联网技能竞赛DAY1