⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msp430f149-

📁 MSP430F149实验板实验代码
💻
字号:
/****************************************************************************
* 文 件 名:main.c
* 功    能:该实验程序使用TLC5620中A、B、C、D四个通道分别输出周期、幅度相等的
*           锯齿波,频率为6.35Hz。
* 说    明:跳线器JP1、JP2短接。
****************************************************************************/
#include "config.h"

#define  DAC_RNG    1                               // 幅值选择

/* TLC5620由P0口控制,控制I/O定义如下 */
#define  CLK1           (1<<21)
#define  DAT1           (1<<22)
#define  LOAD           (1<<23)
#define  LDAC           (1<<24)
#define  DAC5620CON     (CLK1 | DAT1 | LOAD | LDAC)

/* I/O输出操作函数 */
#define  CCLK1()    IO1SET = CLK1
#define  SCLK1()    IO1CLR = CLK1

#define  CDAT1()    IO1SET = DAT1
#define  SDAT1()    IO1CLR = DAT1

#define  CLOAD()    IO1SET = LOAD
#define  SLOAD()    IO1CLR = LOAD

#define  CLDAC()    IO1SET = LDAC
#define  SLDAC()    IO1CLR = LDAC

void  DAC5620_Data(uint8 no, uint8 dat);
void  PIN_Init(void);
void  Delay(void);

int  main(void)
{   uint8  i;
   
    PIN_Init();                                     // 初始化CPU的IO口

	while(1)                                        // 发生锯齿波
	{
        DAC5620_Data(1, i);
        DAC5620_Data(2, i);
        DAC5620_Data(3, i);
        DAC5620_Data(4, i);
        i++;
	}
	
	return(0);
}

/****************************************************************************
* 名    称:IRQ_Eint3()
* 功    能:外部中断EINT3服务函数,取反B1控制口。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  PIN_Init(void)                                // CPU的IO口初始化函数        
{   
    PINSEL0 = 0x00000000;
    PINSEL1 = 0x00000000;
    IO1DIR = DAC5620CON;
    
    CCLK1();                                        // CLK1 = 0
	CDAT1();                                        // DAT1 = 0
	SLOAD();                                        // LOAD = 1
	SLDAC();                                        // LDAC = 1
}

/****************************************************************************
* 名    称:DAC5620_Data()
* 功    能:DAC芯片TLC5620的控制函数
* 入口参数:uint8 no  通道选择  uint8 dat 输出数值
* 出口参数:无
****************************************************************************/
void  DAC5620_Data(uint8 no, uint8 dat)
{   uint16 bak;
    uint8  m;
    
#if DAC_RNG==0    
    bak = (dat<<5) | ((no&0x03)<<14);
#else
    bak = (dat<<5) | ((no&0x03)<<14) | (1<<13);
#endif    
	
	for(m=0; m<11; m++)
	{
	    SCLK1();        // CLK1 = 1
	    Delay();
	    
	    if((bak&0x8000) == 0)
	    {   
	        CDAT1();    // DAT1 = 0
	    }
	    else
	    {   
	        SDAT1();    // DAT1 = 1
	    }    
	    Delay();
	      
		CCLK1();        // CLK1 = 0
		Delay();
		
		bak <<= 1;
	}
	CLOAD();            // LOAD = 0
	Delay();
	SLOAD();            // LOAD = 1
	Delay();
	CLDAC();            // LDAC = 0
    Delay();
	SLDAC();            // LDAC = 1
	Delay();
}

void  Delay(void)
{   uint32  i;

    for(i=0; i<1; i++);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -