STC微控制器控制BH1750測量光照強度程式

2021-07-23 19:49:38 字數 1605 閱讀 3026

/****備註:此程式最低值為00212lux,時序可能還有一些問題,有時候亂改的話還會出現一直是00212或者00000的情況,****/

/****且資料變化是不連續的00212,00425,00639,00852,01065等等****/

/****2016.10.18日補充:後來發現是bh1750_write_byte最後6句寫的不對****/

/****2016.10.18日補充:通過修改bh1750_write_byte函式的最後6句,程式已經能夠正常測試****/

#include#include bit write=0;

sbit sda=p2^0;

sbit scl=p2^1;

typedef unsigned char byte;

byte buf[8];

unsigned char num;

unsigned char a,b,sec,count;

unsigned char ge,shi,bai,qian,wan; //顯示變數

int dis_data,dis_data1; //變數

void conversion(unsigned int temp_data) // 資料轉換出 個,十,百,千,萬

void nop()

void delay(unsigned int i)

void bh1750_start()

void bh1750_stop()

void bh1750_write_byte(unsigned char dat)

sda=0; //注意:以下6句不可少,否則讀到的資料是不正常的,如00212等

nop();

scl=1;

nop();

scl=0;

nop();

}unsigned char bh1750_read_byte()

return x;

}void responds()

void no_responds()

void single_write_bh1750(unsigned char reg_address)

void multiple_read_bh1750(void)

else

}bh1750_stop(); //停止訊號

delay(5);

}void bh1750_init()

void uart_init()

void uart_putchar(unsigned char dat)

void uart_printf(unsigned char *buff)

void main()

}

顯示介面及原理圖如下所示:

硬體上直接接四根線就行,vcc,gnd,sda,scl。

STC微控制器控制PCA9554A程式

對pca9554a操作時要特別注意的是在主函式寫資料之前,一定要先用函式 pca9554a config 0x00 寫0x00,否則收不到資料 include include sbit sda p2 0 sbit scl p2 1 sbit beep p2 3 void delay unsigned...

STC15 微控制器 利用 外部中斷 測頻率

中斷測頻率 先來看張圖 圖中標明 itx 0 時 下降沿觸發中斷 itx 1 時 上公升沿,下降沿均可觸發中斷,這裡要注意不是隨便乙個io口有上公升沿或下降沿時都觸發中斷,比如我的int0 對應的埠是p32 所以 只有p32埠有上公升沿 下降沿時才會觸發外部中斷0。include include t...

微控制器學習筆記 STC15微控制器ADC

將模擬訊號轉換成數碼訊號的電路,我們稱其為模數轉換器,簡稱a d轉換器或adc analog to digital converter 同理,將數碼訊號轉換成模擬訊號的電路稱為數模轉換器,簡稱d a轉換器或dac,微控制器能夠儲存的資料都是數字型別的。一 逼近式adc原理 簡介 在進行轉化時,一般都...