wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

MSP430F149驅動BH1750FVI程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年11月11日   【字體:

#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

#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總線中的從地址,根據ALT  ADDRESS地址引腳不同修改
                             //ALT  ADDRESS引腳接地時地址為0xA6,接電源時地址為0x3A
unsigned char ge,shi,bai,qian,wan;//顯示變量
int dis_data;
uchar BUF[8];
/******************************************************************************/
/*******************************延時函數***************************************/
/******************************************************************************/

/*******************************************
延時約15us的時間
********************************************/
void Delay5us(void)
{
   uchar i;
  
for(i = 0;i < 15;i++);
_NOP();
}
void Delay5ms(void)
{
   uint i=40000;
   while (i != 0)
   {
       i--;
   }
}

/*******************************************
延時MS的時間
********************************************/

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


/******************************************************************************/
/*******************************BH1750相關函數*********************************/
/******************************************************************************/

 

/**************************************
起始信號
**************************************/
void BH1750_Start()
{
SDA_H;                    //拉高數據線
SCL_H;                    //拉高時鐘線
Delay5us();                 //延時
SDA_L;                    //產生下降沿
Delay5us();                 //延時
SCL_L;                    //拉低時鐘線
}

/**************************************
停止信號
**************************************/
void BH1750_Stop()
{
SDA_L;                    //拉低數據線
SCL_H;                    //拉高時鐘線
Delay5us();                 //延時
SDA_H;                    //產生上升沿
Delay5us();                 //延時
}

/**************************************
發送應答信號
入口參數:ack (0:ACK 1:NAK)
**************************************/
void BH1750_SendACK(void)
{
SDA_L;                  //寫應答信號
_NOP();_NOP();
SCL_H;                    //拉高時鐘線
Delay5us();                  //延時
SCL_L;                    //拉低時鐘線
_NOP();_NOP();
SDA_H;
Delay5us();                 //延時
}
/********************************************
非應答
********************************************/
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數值
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總線發送一個字節數據
**************************************/
void BH1750_SendByte(unsigned char dat)
{
   unsigned char i;
  
   for (i = 0; i < 8; i++)
   {        //8位計數器
      if(dat&0x80)
        write1();
      else
        write0();
      dat <<= 1;              //移出數據的最高位
   }
   BH1750_RecvACK();
}

/**************************************
從IIC總線接收一個字節數據
**************************************/
unsigned char BH1750_RecvByte()
{
unsigned char i;
unsigned char dat = 0,flag;

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

/**********************************
**************寫入數據************/
void Single_Write_BH1750(unsigned char REG_Address)
{
BH1750_Start();                  //起始信號
BH1750_SendByte(SlaveAddress);   //發送設備地址+寫信號
BH1750_SendByte(REG_Address);    //內部寄存器地址,請參考中文pdf22頁
//  BH1750_SendByte(REG_data);       //內部寄存器數據,請參考中文pdf22頁
BH1750_Stop();                   //發送停止信號
}
/**************************************
初始化BH1750,根據需要請參考pdf進行修改
*************************************/
void Init_BH1750()
{
Single_Write_BH1750(0x01); 
}

/***************************
*********單字節讀取*********/

/*
unsigned char Single_Read_BH1750(unsigned char REG_Address)

unsigned char REG_data;
BH1750_Start();                          //起始信號
BH1750_SendByte(SlaveAddress);           //發送設備地址+寫信號
BH1750_SendByte(REG_Address);            //發送存儲單元地址,從0開始
BH1750_Start();                          //起始信號
BH1750_SendByte(SlaveAddress+1);         //發送設備地址+讀信號
REG_data=BH1750_RecvByte();              //讀出寄存器數據
BH1750_SendACK(1); 
BH1750_Stop();                           //停止信號
   return REG_data;
}
*/

/*******************************
連續讀出BH1750內部數據
********************************/
void Multiple_Read_BH1750(void)

unsigned char i;
BH1750_Start();                          //起始信號
BH1750_SendByte(0x47);         //發送設備地址+讀信號
for (i = 0; i < 3; i++){                      //連續讀取6個地址數據,存儲中BUF
BUF[i] = BH1750_RecvByte();          //BUF[0]存儲0x32地址中的數據
if (i == 3) {
   mnack();                //最后一個數據需要回NOACK
}
else {
   BH1750_SendACK();                //回應ACK
}
}
BH1750_Stop();                          //停止信號
Delay5ms();
}
/*******************************************************************************/
/*******************************LCD1602函數************************************/
/*******************************************************************************/
void conversion(unsigned int temp_data)  //數據轉換出 個,十,百,千,萬

   wan = temp_data / 10000 + 0x30;
   temp_data = temp_data % 10000;//取余運算
  
   qian = temp_data / 1000 + 0x30;
   temp_data = temp_data % 1000;//取余運算
  
   bai = temp_data / 100 + 0x30;
   temp_data = temp_data % 100;//取余運算
  
   shi = temp_data / 10 + 0x30;
   temp_data = temp_data % 10;//取余運算
  
   ge = temp_data + 0x30;
}

void WaitForEnable(void)
{
   DataDir &= 0x00;
   CLR_RS;
   SET_RW;
   _NOP();
   SET_EN;
   _NOP();
   _NOP();
   while((P4IN & Busy)!=0);  //檢測忙標志   //STA7為0 允許讀寫操作使能則退出循環

   CLR_EN;

   DataDir |= 0xFF;  //將P4口切換為輸出狀態
}
/*******************************/
void WriteCommandLCM(unsigned char CMD,uchar Attribc)
{
   if(Attribc)
     WaitForEnable();
   CLR_RS;
   CLR_RW;
   _NOP();
   DataPort = CMD;
   _NOP();
   SET_EN;
   _NOP();
   _NOP();
   CLR_EN;
}
/*******************************/
void WriteDataLCM(unsigned char dataW)
{
WaitForEnable();
SET_RS;
CLR_RW;
_NOP();
DataPort = dataW;
_NOP();
SET_EN;
_NOP();
_NOP();
CLR_EN;
}
/***********************************/
void InitLcd()
{
CtrlDir |= 0x07;                 //控制線端口設為輸出狀態
DataDir  = 0xFF;                 //數據端口設為輸出狀態
WriteCommandLCM(0x38,0);
delay(15);
WriteCommandLCM(0x08,1);
delay(1);
WriteCommandLCM(0x01,1);
delay(1);
WriteCommandLCM(0x06,1);
delay(1);
WriteCommandLCM(0x0c,1);
delay(1);
}
/***********************************/
void DisplayOneChar(unsigned char X,unsigned char DData)
{
  X |= 0x80;
WriteCommandLCM(X,0);
WriteDataLCM(DData);
}

void inmaindispaly()
{
uint temp;
dis_data=BUF[0];
dis_data=(dis_data<<8)+BUF[1];//合成數據

temp=dis_data;

conversion(temp);         //計算數據和顯示
DisplayOneChar(0,'L');
DisplayOneChar(1,'i');
DisplayOneChar(2,'g');
DisplayOneChar(3,'h');
DisplayOneChar(4,'t');
DisplayOneChar(5,':');

DisplayOneChar(7,wan); //顯示數據
DisplayOneChar(8,qian); 
DisplayOneChar(9,bai);
DisplayOneChar(10,shi);
DisplayOneChar(11,ge);

DisplayOneChar(13,'l'); ////顯示數單位
DisplayOneChar(14,'x');
}

 

int main( void )
{
P4DIR=0XFF;
P5DIR|=0X07;
P3DIR|=0XC0;
WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timer to prevent time out reset
  delay(20);    //延時200ms
InitLcd();           //初始化LCD
Init_BH1750();       //初始化BH1750
while(1)
{
   Single_Write_BH1750(0x01);   // power on
   Single_Write_BH1750(0x10);   // H- resolution mode
  
   delay(180);              //延時180ms
  
   Multiple_Read_BH1750();       //連續讀出數據,存儲在BUF中
  
  
   inmaindispaly();
   delay(1000);

}
}

關閉窗口

相關文章

国产精品视频久| 55av亚洲| 成人在线免费观看视频| 亚洲日本在线a| 成人激情免费在线| 欧美性生交大片| 日日干天天干| 99精品美女| 91精品国产综合久久蜜臀| 一区二区三区av在线| 波多野结衣一二区| 污片在线免费观看| 91美女在线视频| 青青久久av北条麻妃海外网| 我不卡一区二区| 国产九一视频| 日本色综合中文字幕| 亚洲精品自拍偷拍| 女同性αv亚洲女同志| 丰满岳乱妇dvd日本| 国产综合激情| 不卡中文字幕av| 波多野结衣先锋影音| 中文字幕在线第一页| 三级视频在线| 狠狠色2019综合网| 欧美中文字幕在线观看| 免费中文字幕视频| 超碰在线cao| 亚洲主播在线观看| 男人添女荫道口女人有什么感觉| 在线观看日批视频| 亚洲国产精品第一页| 国产又粗又长又爽又黄的视频| 欧美另类videos黑人极品| 国产亚洲欧美日韩在线观看一区二区 | 日韩av网站导航| 国产精品久久久久野外| 日本韩国福利视频| 久久免费看少妇高潮| 免费在线观看一区二区| 欧美女人天堂| 青青草一区二区三区| 超碰97在线资源| 亚洲精品精品一区| 国产天堂在线| 国产精品久久久久久久久动漫 | 日本国产在线| 中文字幕一区在线观看| 狠狠干 狠狠操| 中文字幕人妻色偷偷久久| 精品精品精品| 欧美丰满片xxx777| 这里只有久久精品视频| 女人av一区| 136fldh精品导航福利| 国产精品久久777777换脸| 日本大胆欧美| 成人在线视频网| 91丨九色丨蝌蚪丨老板| 26uuu国产在线精品一区二区| 91精品国产毛片武则天| 亚在线播放中文视频| 亚洲国产精品久久人人爱蜜臀| 日本一本在线视频| 激情都市亚洲| 日韩亚洲成人av在线| 国产欧美第一页| 欧美一级网站| 青青草免费在线视频观看| 日本啊v在线| 欧美三区在线视频| 精品一区免费观看| 欧美色图首页| 久久婷婷开心| 偷拍自拍在线| 欧美成人三级电影在线| 欧美在线观看不卡| 亚洲一级网站| 熟妇熟女乱妇乱女网站| 成人性爱视频在线观看| 欧美精品一区二区久久久| 亚洲视频在线免费播放| 美女久久久精品| 欧美大片日本大片免费观看| 无码人妻丰满熟妇啪啪欧美| 精品影片在线观看的网站| 91免费在线观看网站| 成人综合av| 欧美一区二区视频在线观看2022 | 蜜臀视频在线观看| 99精品国产一区二区三区2021| 国产成人精品日本亚洲专区61| c#hpsocket| 在线区一区二视频| 少妇一级淫片免费放中国| 免费视频一区二区| 一本一道久久a久久综合蜜桃| 亚洲国产精选| 国产一区二区三区色淫影院| 男男激情在线| 欧美成人网在线| xxx免费观看| 欧美一区午夜视频在线观看| 高潮一区二区三区乱码| 1000精品久久久久久久久| 毛片av在线播放| 成人在线免费av| 91精品国产一区二区三区动漫| 神马久久久久| 欧美成在线观看| 欧美jiizzhd精品欧美| 亚洲黄色www| 在线观看的黄色网址| 欧美日韩成人激情| 污污网站免费在线观看| 亚洲成a人片在线观看中文| 一级特黄aaa大片| 国产精品久久网站| 久久久久久久久久一级| 2019国产精品| 国产一级一级国产| 国产午夜精品在线观看| 国产极品在线播放| 97人人做人人爽香蕉精品| 国产日产欧美精品| 中文字幕在线三区| 久久久精品动漫| 99精品国产99久久久久久97| 国产一区二区中文| 亚洲精品久久久久久一区二区| 欧美美女日韩| 欧洲精品久久| 国产精品流白浆在线观看| 国产麻豆电影在线观看| 欧美精品国产白浆久久久久| 免费 成 人 黄 色| 亚洲色图网站| 美女又爽又黄视频毛茸茸| 激情五月激情综合网| 国产一级在线视频| 自拍av一区二区三区| 天天综合网在线| 精品福利一二区| 黄网站色大毛片| 欧洲s码亚洲m码精品一区| 第一av在线| 红桃一区二区三区| 亚洲天堂免费| 香蕉视频久久久| 91小视频在线观看| 六月婷婷综合网| 亚洲二区在线播放视频| 亚洲图片欧美| 69堂成人精品视频免费| av日韩一区| 中文字幕无码毛片免费看| 国产伦精品一区二区三区视频青涩| 亚洲天堂av片| 欧美日韩在线不卡| 久久mv成人精品亚洲动漫| 欧美在线一区二区视频| 成人国产一区| 91日韩精品视频| 99视频一区二区三区| 性感美女一级片| 日韩在线免费视频观看| 乱插在线www| 国产精品免费入口| 国产真实乱偷精品视频免| 91精品视频免费在线观看 | 天堂精品中文字幕在线| 91麻豆精品在线| 亚洲白虎美女被爆操| 成人精品福利| www.xxx麻豆| 成人午夜私人影院| 特级xxxxx欧美| 欧美一区二区三区…… | 国产精品三级网站| 中文字幕伦av一区二区邻居| fc2ppv在线播放| 欧美精品久久一区| 免费大片在线观看www| 日本一本二本在线观看| 成人av免费观看| 国产美女自拍视频| 日韩极品精品视频免费观看| 成人免费看片| 日韩久久不卡| 国产综合色精品一区二区三区| 东京干手机福利视频| 91禁外国网站| 日韩欧美一区免费| 中文字幕人妻丝袜乱一区三区| 亚洲欧美日韩一区二区在线| 欧美综合影院| 一本之道在线视频| 黑丝美女久久久| 黄网页免费在线观看| 黄色性视频网站| 欧美日韩成人一区| yw.尤物在线精品视频| 大地资源高清在线视频观看| 日韩精品在线免费观看| 日韩08精品| 中文字幕在线欧美| 欧美激情视频在线免费观看 欧美视频免费一| 成人资源在线| 亚洲成色www久久网站| 丁香婷婷深情五月亚洲| 国产a国产a国产a| 男女av免费观看| 丰满岳妇乱一区二区三区| 黄页在线观看免费| www.97视频| 久久久久久久97| 亚洲精品**不卡在线播he| 中文字幕免费观看视频| 国产精品视频在线播放| 日产国产欧美视频一区精品| 操你啦视频分享| 免费无码不卡视频在线观看| 精品久久久久久电影| 免费电影日韩网站| 台湾佬中文在线| 国产专区欧美专区| 97久久超碰国产精品电影| 免费在线视频一级不卡| 精品无码人妻一区| 欧美成人激情视频| 午夜亚洲一区| 秋霞福利视频| 星空大象在线观看免费播放| 少妇久久久久久| 久久亚洲精选| 天堂а√在线8种子蜜桃视频| www.17c.com喷水少妇| 在线播放精品一区二区三区| 亚洲欧美日韩国产综合精品二区| 成人免费看黄网址| bl动漫在线观看| 77777亚洲午夜久久多人| 国产二区国产一区在线观看| 137大胆人体在线观看| 青青草手机视频在线观看| 国产乱肥老妇国产一区二| 国产女人18毛片水真多成人如厕| 色老头在线一区二区三区| 在线播放av中文字幕| 99精品国产视频| jizz免费观看视频| 欧美日韩国产高清视频| 亚洲一区自拍偷拍| 深夜福利久久| 国产特级淫片免费看| 日本女人性生活视频| 欧美一区三区三区高中清蜜桃| av在线不卡免费看| 中文字幕人成乱码在线观看 | 午夜免费精品视频| 国产亚洲精品高潮| 粉嫩久久99精品久久久久久夜 | 亚洲精品资源在线| 国产风韵犹存在线视精品| 性xxxxfreexxxxx欧美丶| 岛国中文字幕| 毛茸茸free性熟hd| 国产精品一区二区3区| 午夜日韩在线电影| 欧美成人综合| 91小视频xxxx网站在线| 日韩在线xxx| 久久精品国产久精国产一老狼| 成人免费毛片a| 538任你躁精品视频网免费| jizzjizzjizz美国| 日韩免费在线视频观看| 欧美性猛交内射兽交老熟妇| 中文字幕日韩精品有码视频| 久久久99精品免费观看不卡| 日韩欧美ww| av免费在线一区二区三区| 少妇一级淫片免费看| 动漫av在线免费观看| 国产日韩欧美综合精品| 日韩高清中文字幕| 亚洲视频在线观看一区| 欧美日本三区| 色猫猫成人app| 写真片福利在线播放| 精品人妻午夜一区二区三区四区| 色多多视频在线播放| av一本久道久久波多野结衣| 日韩精品视频在线| 亚洲精选视频免费看| 亚洲永久在线| 日韩有吗在线观看| av免费在线一区二区三区| free欧美性| 国产精品人人爽| a级在线免费观看| 日本国产中文字幕| 国产专区精品视频| 尤物九九久久国产精品的特点| 亚洲精品免费在线| 国产一区二区三区在线观看免费视频| 国产精品成人自拍| 久草在线视频网站| 黄色高清在线观看| 国产人成免费视频| 黑人乱码一区二区三区av| 男女羞羞免费视频| 国产高清av在线播放| 国产精品亚洲综合| 78色国产精品| 日韩在线激情视频| 欧美不卡激情三级在线观看| 国产亚洲一区二区三区四区| 国产精品综合| 亚洲精品国产成人影院| 白嫩白嫩国产精品| 成人看片网页| 怡红院在线观看| 高清毛片在线看| 噼里啪啦在线中文观看| 黄漫在线观看| 91香蕉网站| 国产秒拍福利视频露脸| 欧美天堂在线视频| 国产又粗又黄又爽的视频| 99视频在线看| 国产亚洲精品成人| 91在线播放观看| 日本爱爱小视频| 亚洲 欧美 国产 另类| 无码人妻丰满熟妇啪啪欧美| 午夜视频在线观看国产| 99久热在线精品视频| 一区二区av| 91视频成人免费| 国产www免费| 337p粉嫩大胆噜噜噜鲁| 国产黄页在线观看| 日韩欧美精品在线观看视频| 欧美成人三级在线视频| 免费在线激情视频| 国产精品视频分类| 少妇精品无码一区二区| 精品国产鲁一鲁一区二区三区| 911av视频| 久久精品一区二区免费播放| 在线不卡av电影| 成人免费视频网站入口::| 国产无套内射又大又猛又粗又爽 | 黄色www网站| 女性女同性aⅴ免费观女性恋| 日本黄网站免费| 国产高清av片| 波多野结衣家庭教师在线观看 | 欧洲av无码放荡人妇网站| avav在线播放| 99er在线视频| 亚洲中文字幕久久精品无码喷水| 婷婷六月天在线| 国模无码视频一区二区三区| 中文字幕亚洲影院| 中国1级黄色片| 欧美黄色一级大片| 先锋资源一区| 天天做夜夜操| 欧美午夜电影一区二区三区| 色老头在线一区二区三区| 国产成人福利av| 亚洲日本激情| 91视频国产观看| 一本大道av一区二区在线播放| 亚洲精品久久久久中文字幕二区| 欧美日韩成人免费| 国产一区二区高清不卡| 日本网站免费在线观看| 欧美成人国产精品一区二区| 在线黄色av网站| 美女毛片免费看| 精品美女在线观看视频在线观看| 国产精品3区| 亚洲高清毛片| 中文字幕巨乱亚洲| 日本精品一区二区三区高清| 亚洲精品少妇网址| 国产日本欧美视频| 99热在线这里只有精品| 二区三区四区视频| 午夜剧场日韩| 自拍视频在线| 成久久久网站| 久久一区二区视频| 日韩经典中文字幕在线观看| 国产成人精品免费视频大全最热| 日韩免费一区二区三区|