在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430F149驅(qū)動(dòng)BH1750FVI程序

        MSP430F149驅(qū)動(dòng)BH1750FVI程序

        作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
        #include "io430.h"

        typedef unsigned int uint;
        typedef unsigned char uchar;
        /****BH1750 IO定義******/
        #define SCL_H P3OUT |= BIT6//此IO在硬件上需要更改
        #define SCL_L P3OUT &= ~BIT6
        #define SDA_H P3OUT |= BIT7
        #define SDA_L P3OUT &= ~BIT7

        本文引用地址:http://www.biyoush.com/article/201611/323990.htm

        #define SDA_IN P3DIR &= ~BIT7 //SDA改成輸入模式
        #define SDA_OUT P3DIR |= BIT7 //SDA變回輸出模式
        #define SDA_VAL P3IN&BIT7 //SDA的位值
        /*********LCD1602 IO define************/
        #define DataDir P4DIR
        #define DataPort P4OUT
        #define Busy 0x80
        #define CtrlDir P5DIR
        #define CLR_RS P5OUT&=~BIT0 //RS = P5.0
        #define SET_RS P5OUT|=BIT0
        #define CLR_RW P5OUT&=~BIT1//RW = P5.1
        #define SET_RW P5OUT|=BIT1
        #define CLR_EN P5OUT&=~BIT2//EN = P5.2
        #define SET_EN P5OUT|=BIT2

        #define _NOP() __no_operation()
        #defineSlaveAddress0x46//定義器件在IIC總線中的從地址,根據(jù)ALT ADDRESS地址引腳不同修改
        //ALT ADDRESS引腳接地時(shí)地址為0xA6,接電源時(shí)地址為0x3A
        unsigned char ge,shi,bai,qian,wan;//顯示變量
        int dis_data;
        uchar BUF[8];
        /******************************************************************************/
        /*******************************延時(shí)函數(shù)***************************************/
        /******************************************************************************/

        /*******************************************
        延時(shí)約15us的時(shí)間
        ********************************************/
        void Delay5us(void)
        {
        uchar i;

        for(i = 0;i < 15;i++);
        _NOP();
        }
        void Delay5ms(void)
        {
        uint i=40000;
        while (i != 0)
        {
        i--;
        }
        }

        /*******************************************
        延時(shí)MS的時(shí)間
        ********************************************/

        void delay(uint x)
        {
        uchar i;
        while(x--)for(i=0;i<125;i++);
        }


        /******************************************************************************/
        /*******************************BH1750相關(guān)函數(shù)*********************************/
        /******************************************************************************/

        /**************************************
        起始信號(hào)
        **************************************/
        void BH1750_Start()
        {
        SDA_H; //拉高數(shù)據(jù)線
        SCL_H; //拉高時(shí)鐘線
        Delay5us(); //延時(shí)
        SDA_L; //產(chǎn)生下降沿
        Delay5us(); //延時(shí)
        SCL_L; //拉低時(shí)鐘線
        }

        /**************************************
        停止信號(hào)
        **************************************/
        void BH1750_Stop()
        {
        SDA_L; //拉低數(shù)據(jù)線
        SCL_H; //拉高時(shí)鐘線
        Delay5us(); //延時(shí)
        SDA_H; //產(chǎn)生上升沿
        Delay5us(); //延時(shí)
        }

        /**************************************
        發(fā)送應(yīng)答信號(hào)
        入口參數(shù):ack (0:ACK 1:NAK)
        **************************************/
        void BH1750_SendACK(void)
        {
        SDA_L; //寫應(yīng)答信號(hào)
        _NOP();_NOP();
        SCL_H; //拉高時(shí)鐘線
        Delay5us(); //延時(shí)
        SCL_L; //拉低時(shí)鐘線
        _NOP();_NOP();
        SDA_H;
        Delay5us(); //延時(shí)
        }
        /********************************************
        非應(yīng)答
        ********************************************/
        void mnack(void)
        {
        SDA_H;
        _NOP(); _NOP();
        SCL_H;
        Delay5us();
        SCL_L;
        _NOP(); _NOP();
        SDA_L;
        Delay5us();
        }
        /**************************************
        接收應(yīng)答信號(hào)
        **************************************/
        uchar BH1750_RecvACK()
        {
        uchar ack;
        SDA_H;
        _NOP(); _NOP();
        SCL_H;
        _NOP(); _NOP();
        SDA_IN;
        _NOP(); _NOP();
        ack = SDA_VAL; //讀入SDA數(shù)值
        SCL_L;
        Delay5us();
        SDA_OUT;
        if(ack) return 0;
        else return 1;
        }
        /*******************************************
        write1
        ********************************************/
        void write1(void)
        {
        SDA_H;
        //Delay5us();
        SCL_H;
        Delay5us();
        SCL_L;
        Delay5us();
        }
        /*******************************************
        write0
        ********************************************/
        void write0(void)
        {
        SDA_L;
        // Delay5us();
        SCL_H;
        Delay5us();
        SCL_L;
        Delay5us();
        }
        /**************************************
        向IIC總線發(fā)送一個(gè)字節(jié)數(shù)據(jù)
        **************************************/
        void BH1750_SendByte(unsigned char dat)
        {
        unsigned char i;

        for (i = 0; i < 8; i++)
        { //8位計(jì)數(shù)器
        if(dat&0x80)
        write1();
        else
        write0();
        dat <<= 1; //移出數(shù)據(jù)的最高位
        }
        BH1750_RecvACK();
        }

        /**************************************
        從IIC總線接收一個(gè)字節(jié)數(shù)據(jù)
        **************************************/
        unsigned char BH1750_RecvByte()
        {
        unsigned char i;
        unsigned char dat = 0,flag;

        SDA_H; //使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù),
        for (i = 0; i < 8; i++)
        { //8位計(jì)數(shù)器
        //SDA_H;
        //Delay5us();
        SCL_H;
        SDA_IN;
        Delay5us();
        flag=SDA_VAL;
        dat <<= 1;
        if(flag)
        dat|=0x01;
        SDA_OUT;
        SCL_L;
        Delay5us();
        }
        return dat;
        }


        上一頁 1 2 下一頁

        關(guān)鍵詞: MSP430F149BH1750FV

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉