MSP430单片机个人学习笔记
注:本文章摘自网络与论坛,仅用于记录学习笔记,分享学习经历。
上点复位信号 :POR(Power On Reset)
上电清除信号 :PUC (Power Up Clear)
CPU产生条件:
- POR产生时
- 启动看门狗时,看门狗定时器计满。
- 看门狗写入错误安全参数值
- 片内Falsh写入错误的安全参数
POR与PUC都会引发复位
复位后初始状态:
- /RST引脚被设置为复位模式
- 所有I/O引脚被设置为输入
- 外围模块被初始化
- 状态寄存器SR复位
- 看门狗激活,进入工作模式
- 程序计数器PC装入0xFFFEH处的地址,从此地址开始执行程序。
内部RC振荡器
系统复位后内部RC振荡器磨人为系统时钟,但精度比较差,不适合使用诸如串口通信场合波特率会随温度和电压变化而变化,不建议使用(约800KH)
低功耗设计原则
- 电压宜低就不高
- 系统宜静就不动
- 时钟宜慢就不快
低功耗设计
- 延时程序用定时中断实现
- 采用键盘扫描方式时,扫描程序可以纳入外部中断服务
- 尽量减少CPU抗干扰中的冗余指令及软件陷阱
- 看门狗与电呀侦测功能应尽量取消
- 用中断代服务替查询
- 尽量减少CPU的运算量
- IO间隙运行
低功耗模式配置方法
IAR软件操作
- 专门的低功耗操作语句
- BIS_SR(LPM3_bits+GIE);//进入
- _BIC_SR_IRQ(LPM#_bits);//退出
IAR基础设置(Other勾选)
软件仿真
链接硬件
<>表示头文件在IAR默认的文件夹中,“”存在于自己的项目文件当中
MSP430开发板灯光闪烁代码
#include <msp430x14x.h>
#define uchar unsigned char //定义数据类型
#define CPU_F ((double)32768) //内部延时函数所需要的时钟频率大小,单位为Hz
#define delay_ma(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) //ms级延时函数
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) //us级延时函数
#define LED8PORT P2OUT //P2口接入8个LED灯
#define LED8SEL P2SEL
#define LED8DIR P2DIR
//********************************************************************
// MSP430单片机内部看门狗初始化函数