📄 msp430f149-
字号:
/*********************************************************
* SPI控制DA(TLC5620)同步通信 *
* SPI三线主模式 *
* 硬件连接图 *
* P5.0----STE1----DA LOAD *
* P5.1----SIMO1----DA DATA *
* P5.2----SOMI1----DA LDAC *
* P5.3----UCLK1----DA CLK *
* 采用的是: *
Figure 3. Load-Controlled Update Using 8-Bit Serial Word (LDAC = Low)
A1=0 A0=0 RNG=0
*********************************************************/
#include <msp430x14x.h>
unsigned char a;
delay()
{ int i;
for(i=0;i<30000;i++);
}
void main()
{
WDTCTL = WDTPW + WDTHOLD; //关闭关门狗
P5SEL = 0x0a; //P5.1 5.3 用于spi模式
P5DIR |=0x0f; //P5.0~P5.3为输出
U1CTL = CHAR + SYNC+MM + SWRST; // CHAR:字符长度为1
//SYNC:SPI模式
//MM:主机模式
//SWRST:控制位
U1TCTL = CKPH+ SSEL0 + STC; //CKPL+//CKPL:时钟相位控制位
//SSEL1:时钟源选择位
//STC:从机发送控制位 spi三线模式
U1BR0 = 0x02; //波特率选择寄存器0
U1BR1 = 0x00; //波特率选择寄存器1
U1MCTL = 0x00;
ME2 |= USPIE1; //模块使能
U1CTL&=~SWRST; //开启SPI
P5OUT |=BIT0+BIT2; //P5.0 P5.2 拉高
P5OUT ^=0x04; //P5.2 拉低
//给DA发数据 图形:锯齿波
while(1)
{
//以下注释部分为产生锯齿波的程序
for(a =0x00;a<0x7f;)
{
U1TXBUF = a;
while((IFG2&UTXIFG1)==0); //USART1发送数据是否准备好
a=a+1;
P5OUT ^=0x01; //P5.0 拉低
P5OUT |=BIT0; //P5.0 拉高
}
//以下程序为发光二极管程序
/* for(a =0x30;a<0x50;)
{
U1TXBUF = a;
while((IFG2&UTXIFG1)==0); //USART1发送数据是否准备好
a=a+1;
P5OUT ^=0x01; //P5.0 拉低
P5OUT |=BIT0; //P5.0 拉高
delay();
}
*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -