新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MSP430F149單片機串口程序,中斷查詢方式

        基于MSP430F149單片機串口程序,中斷查詢方式

        作者: 時間:2016-11-30 來源:網絡 收藏
        基于MSP430F149單片機串口程序,中斷查詢方式

        #include<msp430x14x.h>
        #define uint unsigned int
        #define uchar unsigned char
        #define RXF BIT7//p2
        #define TXF BIT6
        #define Read BIT4//p3
        #define Write BIT5//p3
        uchar static usb_flag=0;
        void int_clk()
        {
        uchar i;
        BCSCTL1&=~XT2OFF; //打開XT振蕩器
        BCSCTL2|=SELM1+SELS;//MCLK 8M and SMCLK 1M
        do
        {
        IFG1 &= ~OFIFG; //清除振蕩錯誤標志
        for(i = 0; i < 100; i++)
        _NOP(); //延時等待
        }
        while ((IFG1 & OFIFG) != 0); //如果標志為1繼續循環等待
        IFG1&=~OFIFG;
        }
        //寫數據
        void send_data(uchar data)
        {
        while(P2IN&TXF==1);//判斷狀態
        P1OUT|=Write;
        _NOP();
        _NOP();
        P4DIR=0XFF;
        P4OUT=data;
        _NOP();
        _NOP();
        P1OUT&=~Write;
        _NOP();
        _NOP();
        }
        //讀數據
        uchar recive_data()
        {
        uchar data;
        P4DIR=0X00;
        while(P2IN&RXF==1);//判斷狀態
        P1OUT&=~Read;
        _NOP();
        _NOP();
        data=P4IN;
        P1OUT|=Read;
        _NOP();
        _NOP();
        return (data);
        }
        void main( void )
        {
        uchar temp;
        WDTCTL = WDTPW + WDTHOLD; //關閉看門狗
        int_clk();//初始化時鐘
        P1DIR|=Read+Write;
        P5DIR=0xff;
        P1IE|=RXF;
        P1IES|=RXF;//I/O口功能和方向初始化
        _EINT();
        while(1)
        {
        while(usb_flag==1)//判斷接受數據標志,如果接受到數據則返回改數據
        {
        temp=recive_data();
        send_data( temp);
        usb_flag=0;
        }
        }
        }

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

        //
        #pragmavector=PORT1_VECTOR
        __interrupt void rec_usb()
        {
        P1IFG&=~RXF;//清除中斷標志
        usb_flag=1;//接收數據標志寫1
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 平和县| 白沙| 紫阳县| 卢氏县| 塘沽区| 天门市| 宜兴市| 公主岭市| 彰武县| 内黄县| 温州市| 洛扎县| 图片| 沅陵县| 遂宁市| 侯马市| 临沭县| 桐梓县| 兴业县| 固原市| 康乐县| 南木林县| 静宁县| 买车| 鄂尔多斯市| 海兴县| 石屏县| 桂林市| 湖南省| 厦门市| 襄垣县| 合江县| 正镶白旗| 昭苏县| 紫金县| 浙江省| 银川市| 广饶县| 固原市| 丰县| 铅山县|