在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MSP430F149與BH1750FVI進(jìn)行光強(qiáng)度的值在LCD1602顯示

        基于MSP430F149與BH1750FVI進(jìn)行光強(qiáng)度的值在LCD1602顯示

        作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
        BH1750FVI是IIC總線協(xié)議的數(shù)字型光強(qiáng)度傳傳感器集成電路,以下是它程序:

        #include "io430x14x.h"
        typedef unsigned int uint;
        typedef unsignedchar uchar;

        #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/322554.htm

        #define SDA_INP3DIR &= ~BIT7//SDA改成輸入模式
        #define SDA_OUT P3DIR |= BIT7//SDA變回輸出模式
        #define SDA_VAL P3IN&BIT7//SDA的位值

        #define DataDirP4DIR
        #define DataPortP4OUT
        #define Busy0x80
        #define CtrlDirP5DIR
        #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ù)ALTADDRESS地址引腳不同修改
        //ALTADDRESS引腳接地時(shí)地址為0xA6,接電源時(shí)地址為0x3A
        unsigned char ge,shi,bai,qian,wan;//顯示變量
        int dis_data;
        uchar BUF[8];
        void Delay5us(void)
        {
        uchar i;

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

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

        void BH1750_Start()
        {
        SDA_H;//拉高數(shù)據(jù)線
        SCL_H;//拉高時(shí)鐘線
        Delay5us();//延時(shí)
        SDA_L;//產(chǎn)生下降沿
        Delay5us();//延時(shí)
        SCL_L;//拉低時(shí)鐘線
        }
        void BH1750_Stop()
        {
        SDA_L;//拉低數(shù)據(jù)線
        SCL_H;//拉高時(shí)鐘線
        Delay5us();//延時(shí)
        SDA_H;//產(chǎn)生上升沿
        Delay5us();//延時(shí)
        }

        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í)
        }

        void mnack(void)
        {
        SDA_H;
        _NOP(); _NOP();
        SCL_H;
        Delay5us();
        SCL_L;
        _NOP(); _NOP();
        SDA_L;
        Delay5us();
        }

        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;
        elsereturn1;
        }

        void write1(void)
        {
        SDA_H;
        //Delay5us();
        SCL_H;
        Delay5us();
        SCL_L;
        Delay5us();
        }

        void write0(void)
        {
        SDA_L;
        // Delay5us();
        SCL_H;
        Delay5us();
        SCL_L;
        Delay5us();
        }
        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();
        }

        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;
        }


        上一頁(yè) 1 2 下一頁(yè)

        關(guān)鍵詞: MSP430F149BH1750FVILCD160

        評(píng)論


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

        關(guān)閉