楼主
|
回复于 2018-07-13
沙发
MSP430是德州公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟.由于为FLASH型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化, MSP430系列将会得到越来越多人的喜爱.
楼主
|
回复于 2018-07-13
2#
一、IO口
(一)、P口端口寄存器:
1、PxDIR 输入/输出方向寄存器
(0:输入模式 1:输出模式)
2、PxIN 输入寄存器
输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道I/O口的输入信号。
3、PxOUT 输出寄存器
寄存器内的内容不会受引脚方向改变的影响。
4、PxIFG 中断标志寄存器
(0:没有中断请求 1:有中断请求)
该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求;这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位;外部中断事件的时间必须>=1.5倍的MCLK的时间,以保证中断请求被接受;
5、PxIES 中断触发沿选择寄存器
(0:上升沿中断 1:下降沿中断)
6、PxSEL 功能选择寄存器
(0:选择引脚为I/O端口 1:选择引脚为外围模块功能)
7、PxREN 上拉/下拉电阻使能寄存器
(0:禁止 1:使能)
楼主
|
回复于 2018-07-13
3#
二)、常用特殊P口:
1、P1和P2口可作为外部中断口。
2、P6可作为A/D输入口。
3、P1.2和P2.0可作为PWM波输出口。
4、P1.1:MCLK P1.5:ACLK
5、串口通信时:P2.4、 P4.0为发送TXD,
P2.5 、P4.1为接收RXD。
楼主
|
回复于 2018-07-13
4#
三)、基本操作:
1、所有P口都可作为通用IO口使用
2、所有P口都可进行字节操作和位操作
按字节操作:
例: P1DIR=0xff; //将P1口作为输出口
PIOUT=0x20; // P1口输出0x20
P1DIR=0x00; //将P1口作为输入口
data=P1IN //读取P1口外部输入值
按位操作:
例: P1DIR=BIT0; //将P1.0作为输出口
P1OUT|=BIT0; //P1.0输出1
P1OUT&=~BIT0; //P1.0输出0
P1DIR&=~BIT0 //将P1.0口作为输入
data=P1IN&BIT0 //读取P1.0口外部输入值
楼主
|
回复于 2018-07-13
5#
二、时钟
(一)、三个时钟源:
1、LFXT1CLK:低频时钟(32768HZ)
2、XT2CLK:高频时钟(8MHZ)
3、DCOCLK:片内数控振荡器最高46MHZ,但不稳定(不能作为定时用)
楼主
|
回复于 2018-07-13
7#
(三)、时钟模块可提供的四种时钟信号:
1、ACLK:辅助时钟,来自LFXT1CLK低频时钟,可有软件选作各外围模块的时钟信号,一般用于低速外设。
2、ACLK/n:ACLK经过1、2、4、8分频后由P1.5输出,仅供外部电路使用。
3、MCLK:系统主时钟,可有软件选择来自LFXT1CLK、XT2CLK或DCOCLK的时钟,然后经1、2、4、8分频得到。可由P1.1输出(主要用于cpu)
4、SMCLK:子系统时钟,可有软件选择来自XT2CLK或DCOCLK的时钟。(主要用于高速外设)
楼主
|
回复于 2018-07-13
8#
(四)、MCLK应用举例:
1、在默认情况下,MCLK来自于DCOCLK其频率为1.048576MHZ其计算方法:MCLK=(31+1)*32768
2、如何选择ACLK作为MCLK:
void clk_initial()
{
do
{
IFG1&=~OFIFG; //清除振荡器的失效标志
__ delay_cycles(200);
}
while((IFG1&OFIFG)!=0); //如果振荡器的失效标志存在
FLL_CTL1=SELM1+SELM0; //选择ACLK作为MCLK
}
3、如何选择 XT2CLK作为MCLK:
void clk_initial()
{
do
{
IFG1&=~OFIFG; //清除振荡器的失效标志
__delay_cycles(200);
}
while((IFG1&OFIFG)!=0); //如果振荡器的失效标志存在
FLL_CTL1=SELM1; //选择XT2CLK作为MCLK
}
4、如何选择 DCOCLK作为MCLK:计算(121+1) *2*32768=7.995MHZ
void CLK_initial()
{
SCFI0|=FN_4; //选择DCO频率调整范围为2.8~26.6MHZ
SCFQCTL=249; //倍频倍数,最高位为DCO+调制器的控制位
FLL_CTL0=DCOPLUS+OSCCAP_1; //选择DCO作为MCLK前分频
}
-
- xiaomiking
-
1147 发帖6357 回复18609 积分
- 私信他 +关注
-
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖