/****備註:此程式最低值為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原理 簡介 在進行轉化時,一般都...