




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、成績評定:傳感器技術課程設計目基于BH175洸照度檢測摘要傳統(tǒng)的光照傳感器主要采用光敏電阻,光敏電阻的光電流與光照度之間的關 系稱為光電特性.光敏電阻的光電特性呈非線性,因此不適宜作檢測元件,在自 動限制中它常被用作兀關式光電傳感器.光敏電阻需要用A/D轉換器將其信號轉換為數字信號,電路復雜,費用高.而且,光敏電阻進行光強度采集不夠理想. 針對光敏電阻的諸多缺點,提出了一種利用16位高精度數字光強度傳感器BH1750FVI進行光強度檢測儀的設計方案,利用I2C總線接口數字型光強度傳感 器,可以防止A/ D轉換系統(tǒng)帶來的誤差,可在 NOKIA5110夜晶顯示器上進行測 量數值的顯示.該系統(tǒng)具有光
2、強度采集精度較高、 實時性較強等優(yōu)點,并且電路 設汁較為簡單,容易實現與集成.關鍵詞:微限制器 液晶顯示器I2C總線、設計目的二、設計任務與要求2.1 設計任務 2.2 設計要求三、設計步驟及原理分析3.1 設計方法3.2 設計步驟3.3 設計原理分析 四、課程設計小結與體會五、參考文獻、設計目的設計一種基于光強度傳感器 BH1750FVI的光照度檢測儀,采用低本錢的微限制器進行限制,利用I2C總線接口進行數據傳輸,可在普 通的NOKIA5110夜晶顯示器上進行光強度測量值的實時顯示.二、設計任務與要求2.1 設計任務針對傳統(tǒng)測光系統(tǒng)結構復雜、容易受到紅外、紫外等干擾光線的影響等弊端, 改選新
3、型單片測光芯片BH1750乍為光強采集器,設計并實現了一個測光系統(tǒng).2.2 設計要求能夠快速檢測環(huán)境的光照強度且能夠在 NOKIA5110夜晶顯示器上進行數值顯示.三、設計步驟及原理分析3.1 設計方法BH175Q半導體制造商ROH場適應以移動 為首的便攜式機器和液 品電視等的要求而開發(fā)出的具有優(yōu)良光譜靈敏度特性、16bit串行輸出的單片數字照度傳感器.由于其面世不久,關于它的資料十分稀少,目前有關BH1750的實 用資料僅有一份其官方網站發(fā)布的英文版芯片手冊.在參考該手冊根底上,結合 實際測試經驗,和事例程序進行設計.3.2 設計步驟1 .先了解光強度傳感器 BH1750FVI2 .設計檢測
4、液晶數據的設計方案3 .監(jiān)測系統(tǒng)結構設計4 .系統(tǒng)軟件驅動設計3.3設計原理分析1 .不區(qū)分光源數字型環(huán)境光強度傳感器BH1750FVI是日本RHOM株式會社近些年推出的一種兩線式串行總線接口的 集成電路,可以根據收集的光線強度數據來進行 環(huán)境監(jiān)測,其具有165 535 lx 的高分辨率,可支持較大范圍的光照強度變化.BH1750FVI 結構框圖如圖1所示.-EH Lh -GN口ADDR從結構框圖可容易看出,外部光照被接近人眼反響的高精度光敏二極管PD探測到后,通過集成運算放大器將PD電流轉換為PD電壓,由模數轉換器獲取 16位數字數 據,然后被邏輯和IC界面進行數據處理與存儲. OSC為內部
5、的振蕩器提供內部邏輯時 鐘,通過相應的指令操作即可讀取出內部存儲的光照數據.數據傳輸使用標準的I2C總線,根據時序要求操作起來也非常方便.2 . NOKIA5110 是一款價廉的液晶顯示器,該顯示器可以顯示15個漢字、30個字符,僅僅需要4根I / O數據線,其工作電壓為3.3 V.它采用NXP公司的PCD8544 顯不驅動芯片,NOKIA5110 可以使用沒有 MISO只有MOSI的SPI協議,可以利用 硬彳t SPI ,但通常只需要軟件程序模擬即可,數據傳輸需要嚴格根據手冊中串行接口時 序圖編寫.其運行速度十分理想,是 LCD12864 顯示器的20倍,LCD1602顯示器 的40倍,適用
6、于對反響靈敏度有要求的場合.2 . 1 NOKIA5110 液晶顯示器的初始化接通電源后,NOKIA5110 液晶顯示器的內部存放器和RAM的內容是不確定的, 這時需要一個RES低電平脈沖進行復位.當 VDD變?yōu)楦唠娖?到達或高于 VDD的最小 值之后,給NOKIA5110 顯示模塊的復位端 RST引腳輸入低電平(要求復位電平 <0 . 3VDD),便進行了 NOKIA5110 液晶顯示器的復位.圖 2為NOKIA5110 液晶 顯示器的復位時序圖.VDDRESS2 . 2設置NOKIA5110 液晶顯示器的坐標通過查詢NOKIA5110 液晶顯示器的指令集與手冊可以知道其功能設置命令的
7、H和V.其中:H=0使用根本指令集命令,H=1使用擴展指令集命令,V=0水平尋址,V=1 垂直尋址.數據以字節(jié)8位為單位下載到 PCD8544 的48X 84位顯示數據 RAM矩陣. 列通過地址指針尋址,地址范圍為 X: 083(1010011) ; Y: 05(101).在垂直尋址模式時(V=1) , Y地址在每個字節(jié)之后遞增,經最后的Y地址(Y=5)之后,Y繞回0, X遞增到下一列的地址.存水平尋址模式時(V=0) , X地址在每個字節(jié)之后遞增,經最后的 X地址(X=83)之后,X繞回0, 丫遞增到下一行的地址.經每一 個最后地址之后(X=83 , Y=5),地址指針繞回地址(X=0 ,
8、Y=0).2 . 3顯示方式顯示漢字可以采用兩種點陣方式,一種是12X12點陣,一種是16X16點陣.采用12X12點陣漢字時,由于不是 8的整數倍數,因此行與行之間只能隔開,這樣才能完 整顯示一個漢字.英文字符占用6X8個點陣,可以通過建立一個 ASCII的數組來進行 尋土力03.利用BH1750FVI和NOKIA5110 液晶顯示器進行系統(tǒng)結構的設計,其中NOKIA5110 需要使用5個I/O 口,RST復位端、SCE芯片使能端、DC模式選擇端、 DIN數據線、CLK時鐘線分別接到單片機的 P2. 1P2. 5 口.由于BH1750FVI 使 用低電壓3. 3 V,而傳統(tǒng)單片機使用的是 5
9、 V電壓,故需要一個3. 3 V電源芯片662k 輸出穩(wěn)定的3. 3 V電壓,BH1750FVI光強度傳感器的 ADDR端口接地,測量儀電路圖如圖3所示.BIN5CLKJ. 1LLV11 JT1mCcH2N.'-PB14TIM1 CH3NPB1JINTI_TAMPPC13OSC32_IN-PC14O5C31 OUT-PCI 5LEDLED22335GNUSCLK51103V3 5110104 jl GND '|R5TSDIN3V3 5J10D CT £CE-VDDNC5CLKLED4-SDKLED4-DCLED3-SCELED3-DieLED 2一GNDLED,OUT
10、LED1+RSTLED1-5UC5110 LCD5 gLED151413,121111RS,1110J<1016184. #include <REG51.H>#include <math.h> /Keil library#include <stdio.h> /Keil library#include <INTRINS.H>#define uchar unsigned char #define uint unsigned int#define DataPort P0 /LCD1602 數據端口sbitSCL=P1A0;/IIC 時鐘引腳定義s
11、bit SDA=P1A1; /IIC 數據引腳定義sbitLCM_RS=P2A0;/LCD1602命令端口sbitLCM_RW=P2A1;/LCD1602命令端口sbitLCM_EN=P2A2;/LCD1602命令端口#define SlaveAddress 0x46 /定義器件在IIC 總線中的從地址,根據ALT ADDRES觸址引腳不同修改/ALT ADDRESS弓I腳接地時地址為0x46,接電源時地址為0xB8typedef unsigned char BYTE;typedef unsigned short WORD;BYTE BUF8;/接收數據緩存區(qū)uchar ge,shi,bai,
12、qian,wan;/顯示變量int dis_data;/變量void delay_nms(unsigned int k);void InitLcd();void Init_BH1750(void);void WriteDataLCM(uchar dataW);void WriteCommandLCM(uchar CMD,uchar Attribc);void DisplayOneChar(uchar X,uchar Y,uchar DData);void conversion(uint temp_data);voidSingle_Write_BH1750(uchar REG_Address);
13、/單個寫入數據ucharSingle_Read_BH1750(ucharREG_Address);/單個讀取內部存放器數據voidMultiple_Read_BH1750();/連續(xù)的讀取內部存放器數據/void Delay5us();void Delay5ms();void BH1750_Start();/起始信號void BH1750_Stop();/停止信號void BH1750_SendACK(bit ack);/應答ACKbit BH1750_RecvACK();/讀ackvoid BH1750_SendByte(BYTE dat); /IIC單個字節(jié)寫B(tài)YTE BH1750_Rec
14、vByte();/IIC單個字節(jié)讀數據轉換出個,十,百,取余運算temp_data=temp_data%1000;/取余運算/H*void conversion(uint temp_data) /千,萬wan=temp_data/10000+0x30 ;temp_data=temp_data%10000; /qian=temp_data/1000+0x30 ;bai=temp_data/100+0x30 ;temp_data=temp_data%100;/取余運算shi=temp_data/10+0x30 ;temp_data=temp_data%10;/取余運算ge=temp_data+0x
15、30;/毫秒延時 *void delay_nms(unsigned int k)unsigned int i,j;for(i=0;i<k;i+)(for(j=0;j<121;j+);)產*1void WaitForEnable(void)DataPort=0xff;LCM_RS=0;LCM_RW=1;_nop_();LCM_EN=1;_nop_();_nop_();while(DataPort&0x80);LCM_EN=0;l*lvoid WriteCommandLCM(uchar CMD,uchar Attribc)if(Attribc)WaitForEnable();L
16、CM_RS=0;LCM_RW=0;_nop_();DataPort=CMD;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;*void WriteDataLCM(uchar dataW)(WaitForEnable();LCM_RS=1;LCM_RW=0;_nop_();DataPort=dataW;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;I*void InitLcd()(WriteCommandLCM(0x38,1);WriteCommandLCM(0x08,1);WriteCommandLCM(0x01,1);
17、WriteCommandLCM(0x06,1);WriteCommandLCM(0x0c,1);/*/ void DisplayOneChar(uchar X,uchar Y,uchar DData)(Y&=1;X&=15;if(Y)X|=0x40;X|=0x80;WriteCommandLCM(X,0);WriteDataLCM(DData);/*延時 5 微秒(STC90C52RC12M)不同的工作環(huán)境,需要調整此函數,注意時鐘過快時需要修改當改用1T的MCU1請調整此延時函數*/void Delay5us()_nop_();_nop_();_nop_();_nop_();
18、_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/*延時 5 毫秒(STC90C52RC12M)不同的工作環(huán)境,需要調整此函數當改用1T的MCU1請調整此延時函數*void Delay5ms()(WORD n = 560;while (n-);產*起始信號*void BH1750_Start()(SDA = 1;/拉高數據線SCL = 1;/拉高時鐘線Delay5us();/延時SDA = 0;/產生下降沿Delay5us();/延時SCL = 0;/
19、拉低時鐘線*停止信號*void BH1750_Stop()(SDA = 0;/拉低數據線SCL = 1;/拉高時鐘線Delay5us();/延時SDA = 1;/產生上升沿Delay5us();/延時產*發(fā)送應答信號入口參數:ack (0:ACK 1:NAK)*void BH1750_SendACK(bit ack)(SDA = ack;/寫應答信號SCL = 1;/拉高時鐘線Delay5us();/延時SCL = 0;/拉低時鐘線Delay5us();/延時/*接收應答信號*bit BH1750_RecvACK()SCL = 1;/Delay5us();/CY = SDA;/SCL = 0;
20、/Delay5us();/拉高時鐘線延時讀應答信號拉低時鐘線延時return CY;/*向IIC總線發(fā)送一個字節(jié)數據*void BH1750_SendByte(BYTE dat)BYTE i;for (i=0; i<8; i+)/8(dat <<= 1;/SDA = CY;/SCL = 1;/Delay5us();/SCL = 0;/Delay5us();/位計數器移出數據的最高位送數據口拉高時鐘線延時拉低時鐘線延時BH1750_RecvACK();/*從IIC總線接收一個字節(jié)數據*/BYTE BH1750_RecvByte()(BYTE i;BYTE dat = 0;SDA
21、 = 1;/使能內部上拉,準備讀取數據,for (i=0; i<8; i+)/8位計數器dat <<= 1;SCL = 1;/拉高時鐘線Delay5us();/延時dat |= SDA;/讀數據SCL = 0;/拉低時鐘線Delay5us();/延時return dat;/*void Single_Write_BH1750(uchar REG_Address)BH1750_Start();/起始信號BH1750_SendByte(SlaveAddress);/發(fā)送設備地址+寫信號BH1750_SendByte(REG_Address);/內部存放器地址,/ BH1750_Se
22、ndByte(REG_data);/內部存放器數據,BH1750_Stop();/發(fā)送停止信號/*單 字 節(jié)*/*uchar Single_Read_BH1750(uchar REG_Address) uchar REG_data;BH1750_Start();/BH1750_SendByte(SlaveAddress); /+寫信號BH1750_SendByte(REG_Address);/存儲單元地址,從0開始BH1750_Start();/BH1750_SendByte(SlaveAddress+1); /+讀信號REG_data=BH1750_RecvByte(); /據BH1750_
23、SendACK(1);BH1750_Stop();/return REG_data;讀 取起始信號發(fā)送設備地址發(fā)送起始信號發(fā)送設備地址讀出存放器數停止信號) */起始信號發(fā)送設備地址連續(xù)讀取2個存儲最后一個數據*/連續(xù)讀出BH1750內部數據/H*void Multiple_read_BH1750(void) uchar i;BH1750_Start();/BH1750_SendByte(SlaveAddress+1); /+讀信號for (i=0; i<3; i+)/地址數據,存儲中BUFBUFi = BH1750_RecvByte();BUF00x32地址中的數據if (i = 3)
24、BH1750_SendACK(1);/需要回NOACKelse(BH1750_SendACK(0);/回應 ACK)BH1750_Stop();/停止信號Delay5ms();)/初始化BH1750根據需要請參考pdf進行修改*void Init_BH1750()(Single_Write_BH1750(0x01);)/*/主程序*/* void main()float temp;delay_nms(100);InitLcd();/Init_BH1750();/while(1)/ 延時 100ms 初始化LCD 初始化BH1750循環(huán)/ power on/ H- resolution modeSingle_Write_BH1750(0x01);Single_Write_BH1750(0x10);delay_nms(180);/延時180msMultiple_Read_BH17
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 232-2024 特種巡邏機器人通.用技術要求
- T-ZJHQ 0003-2024 高等學校生活垃圾分類工作規(guī)范
- 2025年度電子商務平臺數據分析與報告合同模板
- 二零二五年度解除婚約合同范本:婚約解除后的財產清算、債務處理及子女監(jiān)護協議
- 2025年度鋼板租賃與回收利用合同
- 二零二五年度金融機構資金轉入風險管理合同
- 2025年度智慧能源管理系統(tǒng)擔保人履約保證合同
- 二零二五年度企業(yè)綠色金融項目補貼協議
- 二零二五年度情人協議書:浪漫愛情生活規(guī)劃合同范本
- 石壕吏:歷史背景與社會問題分析教學教案
- 2025中鐵集裝箱運輸有限責任公司招聘46人(京外地區(qū)崗位)筆試參考題庫附帶答案詳解
- 中國農業(yè)大學人文與發(fā)展學院管理服務崗位招聘筆試真題2023
- 2023-2024 中國滑雪產業(yè)白皮書
- 風電場觸電急救培訓課件
- 二年級下冊數學課件-1.3 分草莓 北師大版(共14張PPT)
- 2022年中小學心理健康教育指導綱要
- 中國紅十字會救護員培訓理論考試試卷 (1)附答案
- 高架橋梁混凝土工程專項施工方案
- 銀行案件風險排查實施細則
- 亞馬遜品牌授權書(英文模板)
- 10級空乘《形體訓練3》課程標準(共14頁)
評論
0/150
提交評論