msp430单片机复习内容
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单片机复习内容相关推荐
- 从零开始的MSP430单片机学习(一)
从零开始的MSP430单片机学习(一) 图片有些缺失,原链接:从零开始的MSP430单片机学习(一) 写在前面 单片机学习本身是一个了解学习一个技术的过程,学习的过程中不应该拘泥于某一款,而是要了解学 ...
- MSP430初学:MSP430单片机C语言基础(二)
目录 前言 1.进制转换 2.数值数据的表示 3.计算机的码制 前言 1.<MSP430单片机应用基础与实践>(华中科技大学出版社)-第0章-计算机的基础知识 2.B站视频视频总结 3.自 ...
- msp430单片机c语言应用程序,MSP430单片机C语言应用程序设计实例精讲
本书首先介绍了C语言的基本知识,使读者能使用C语言进行程序设计:然后介绍了30个开发例子.全书主要通过实例的形式来介绍MSP430单片机在不同领域中的应用,从而使读者掌握MSP430单片机开发的流程. ...
- MSP430初学:MSP430单片机C语言基础(一)
前言 1.<MSP430单片机应用基础与实践>(华中科技大学出版社)-第1章-MSP430单片机C语言基础 2.B站视频视频总结 3.自己 (本文章作备忘录使用) 内容(概要) 1.1标识 ...
- MSP430单片机GPIO编程入门教程
在本教程中,我们将一起学习MSP430单片机GPIO的编程方法.本文也适用于Launchpad开发板上使用的MSP430x2xx器件,如MSP430G2553.MSP430G2231等.MSP430单 ...
- 单片机16个灯四种花样c语言,基于Proteus的MSP430单片机仿真实例5-16个花样灯控制...
一.任务要求 利用MSP430F247单片机的P1和P4端口控制16个发光二极管D1~D16,发光二极管有8种花样显示,显示速度可调,由P2端口的三个按键控制,分别是模式按键.加速按键.减速按键.模式 ...
- MSP430单片机各种寄存器总结(2)——UCS
作者:BerenCamlost 本文针对于MSP430单片机原理与应用课程,请在复习时使用. 参考资料: PPT MSP430F6638用户手册 实验教程 本章最新更新日期:2018.12.23 第二 ...
- MSP430单片机各种寄存器总结(1)——CPU 寄存器
作者:BerenCamlost 本文针对于MSP430单片机原理与应用课程,请在复习时使用. 参考资料: PPT MSP430F6638用户手册 实验教程 本章最新更新日期:2018.12.21 第一 ...
- 基于MSP430单片机的简单门禁系统
一.课设选题 基于MSP430单片机的门禁 二.选题介绍 门禁系统通过6位密码的键入,然后与设定密码比较,若相同,门开启(电动机转动),同时人数计数器加一.若不同,按AC键清零,重新键入密码. 三.课 ...
最新文章
- python 设计模式 观察者_python设计模式之观察者模式
- php开发面试题---攻击网站的常用手段有哪些,及如何预防(整理)
- 《软件工艺师:专业、务实、自豪》一3.7.2 软件工艺概念走向全球
- 基本数据结构之BinarySearchTree
- php 正则表达式 x,php – 匹配x正则表达式或y正则表达式
- AWS实例上AMI和用户名的映射表
- 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密
- python图像增强_【Tool】Augmentor和imgaug——python图像数据增强库
- 用了这个方法,您的备份数据再也不怕被勒索了(数据备份防止更改)
- 栈实现队列(队列实现栈)
- 大学毕业后5年决定命运(强烈推荐一看)
- 浏览器构造页面的原理
- Ubuntu下The program 'python' can be found in the following packages:
- 解决红蜘蛛教师端教师图标显示灰色导致无法广播的问题
- java学生管理系统,(史上最全)
- 微信加人:你需要了解的规则
- 【208.11.21 直播QA】TI C2000 Piccolo单芯片——实现双轴伺服电机和马达控制
- php显示某年某月某日,输入某年某月某日,判断这一天是这一年的第几天?
- 面向开发者稳定、安心的APP内测托管平台
- [独家提供][亲自制作]完美ie8绿色中文版版支持win7x64