新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430G2553單片機驅動TLC5540

        MSP430G2553單片機驅動TLC5540

        作者: 時間:2016-11-30 來源:網絡 收藏
        #include <msp430g2553.h>

        #include "stdio.h"
        typedef unsigned char INT8U;
        typedef unsigned int INT16U;
        #define ADC_CTRL_DIR_PORT (P2DIR)
        #define ADC_CTRL_OUT_PORT (P2OUT)
        #define ADC_DATA_DIR_PORT (P1DIR)
        #define ADC_DATA_IN_PORT (P1IN)

        本文引用地址:http://www.104case.com/article/201611/323975.htm

        #define ADC_OE_BIT (BIT0)
        #define ADC_CLK_BIT (BIT1)

        #define ADC_OE_H (ADC_CTRL_OUT_PORT |= ADC_OE_BIT)
        #define ADC_OE_L (ADC_CTRL_OUT_PORT &= ~ADC_OE_BIT)

        #define ADC_CLK_H (ADC_CTRL_OUT_PORT |= ADC_CLK_BIT)
        #define ADC_CLK_L (ADC_CTRL_OUT_PORT &=~ ADC_CLK_BIT)

        INT16U RcvDataBuff_G[50];
        void ADC_RcvData(INT16U *pData,INT16U RcvDataNum);
        INT16U ADC_RcvOneData(void);
        void ClockInit(void);
        void ADC_PortInit(void);
        unsigned char UartInit(unsigned long baud,unsigned char parity,unsigned char dataBits,unsigned char stopBits);
        void UART_PutChar( int c);
        void UART_PutString( int *s);
        unsigned char UART_GetChar();

        void main(void)
        {
        WDTCTL = WDTPW + WDTHOLD;
        unsigned char i;
        INT16U ADC_Temp;

        ADC_PortInit();
        ClockInit();
        UartInit(9600,n,8,1);
        _EINT();

        while(1)
        {
        ADC_RcvData(RcvDataBuff_G,50);
        for(i = 0;i < 50;i++)
        printf("ADC_Ruselt = %d ",RcvDataBuff_G[i]);
        // ADC_Temp = (INT16U)ADC_RcvOneData();
        //printf("ADC_Ruselt = %d ",ADC_Temp);
        __delay_cycles(100000);
        }
        }

        void ADC_PortInit(void)
        {
        ADC_CTRL_DIR_PORT |= ADC_OE_BIT + ADC_CLK_BIT;
        ADC_DATA_DIR_PORT = 0x00;//數據輸入端口
        }
        void ClockInit(void)
        {
        if(CALDCO_1MHZ == 0xff || CALBC1_1MHZ == 0xff)
        {
        while(1);
        }
        DCOCTL = CALDCO_1MHZ;
        BCSCTL1 = CALBC1_1MHZ;
        }

        INT16U ADC_RcvOneData(void)
        {
        INT16U ADCResult,i;
        ADC_CLK_L;
        ADC_OE_H;
        for(i = 0;i < 3;i++)
        {
        ADC_CLK_L;
        _NOP();
        ADC_CLK_H;
        }
        ADC_OE_L;
        ADCResult = ADC_DATA_IN_PORT;
        return (ADCResult);
        }
        void ADC_RcvData(INT16U *pData,INT16U RcvDataNum)
        {
        INT16U i;
        for(i = 0;i < RcvDataNum;i++)
        {
        pData[i] = (INT16U)ADC_RcvOneData();
        }
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 青河县| 沁水县| 阿图什市| 永安市| 当涂县| 图们市| 安西县| 拜城县| 新巴尔虎左旗| 罗江县| 基隆市| 左贡县| 郴州市| 陆川县| 竹溪县| 东乡县| 财经| 巴中市| 鱼台县| 辉南县| 海盐县| 外汇| 綦江县| 南皮县| 襄樊市| 英超| 澄迈县| 临汾市| 神农架林区| 龙门县| 张家口市| 颍上县| 泾川县| 台中市| 伊金霍洛旗| 仪陇县| 邹城市| 崇义县| 福鼎市| 涟水县| 枣强县|