基于si光電池的照度計設計與調(diào)試方案_第1頁
已閱讀1頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  基于Si光電池的照度計設計與調(diào)試方案</p><p><b>  1 技術指標</b></p><p>  要求系統(tǒng)測量范圍為0-200lx,測量精度達到1lx;</p><p>  設計光電池輸出信號處理電路,要求可以控制處理后的電壓幅度;</p><p>  設計照度計硬件電路系統(tǒng),要求系統(tǒng)各個

2、模塊能夠正常工作;</p><p>  設計照度計軟件控制系統(tǒng),要求系統(tǒng)整體工作穩(wěn)定;</p><p>  給設計系統(tǒng)定標,要求測量結(jié)果誤差在1%以內(nèi)。</p><p>  2 設計方案及其比較</p><p>  當光電池的光敏面收到光照射時,PN節(jié)耗盡區(qū)內(nèi)的光生電子與空穴在內(nèi)建電場力的作用下分別向N區(qū)和P區(qū)運動,在閉合的電路中產(chǎn)生光電流。

3、首先將光電流經(jīng)過I/V變換和電壓放大后形成直流電壓信號,其次通過模數(shù)轉(zhuǎn)換電路將處理得到的直流電壓信號轉(zhuǎn)換為數(shù)字電壓信號,再通過單片機處理后得到可以反應光照度的數(shù)字信號,最后通過LCD實時顯示出來。照度計的系統(tǒng)框圖如圖1所示。</p><p>  圖1 照度計系統(tǒng)框圖</p><p><b>  2.1 方案一</b></p><p>  通過電

4、阻轉(zhuǎn)換的方式進行I/V轉(zhuǎn)換,如圖2,之后將電壓放大后的直流電壓信號通過由ADC0809構(gòu)成的A/D轉(zhuǎn)換模塊得到數(shù)字電壓信號,然后,通過單片機得到可以反應光照度的數(shù)字信號,最后,通過LED數(shù)碼管實時顯示出來。</p><p><b>  圖2 電阻轉(zhuǎn)換模塊</b></p><p><b>  2.2 方案二</b></p><p

5、>  通過三極管構(gòu)建放大電路得到電壓信號進行I/V轉(zhuǎn)換,如圖3,之后將電壓放大后的直流電壓信號通過由ADC0809構(gòu)成的A/D轉(zhuǎn)換模塊得到數(shù)字電壓信號,然后,通過單片機得到可以反應光照度的數(shù)字信號,最后,通過LED數(shù)碼管實時顯示出來。</p><p>  圖3 三極管轉(zhuǎn)換模式</p><p><b>  2.3 方案三</b></p><p&

6、gt;  通過集成運放芯片構(gòu)建放大電路得到電壓信號進行I/V轉(zhuǎn)換,如圖4,之后將電壓放大后的直流電壓信號通過由ADC0809構(gòu)成的A/D轉(zhuǎn)換模塊得到數(shù)字電壓信號,然后,通過單片機得到可以反應光照度的數(shù)字信號,最后,通過LED數(shù)碼管實時顯示出來。</p><p>  圖4 集成運放轉(zhuǎn)換模式</p><p><b>  2.4 方案比較</b></p>&l

7、t;p>  三種方案各有優(yōu)缺點,方案一適合在電流較大的情況下使用,方案二適合在電流變換范圍小的情況下使用,方案三適用范圍廣,但成本會提高很多。由于此次課程設計電路板上已經(jīng)有運放芯片,故采取方案三。</p><p><b>  3 實現(xiàn)方案</b></p><p><b>  3.1 硬件部分</b></p><p>

8、  系統(tǒng)的硬件由I/V變換模塊、光電池前置放大模塊、A/D轉(zhuǎn)換模塊、單片機控制模塊以及數(shù)碼管顯示模塊組成,如圖5,Proteus仿真圖如圖6所示。</p><p>  當光電池的光敏面收到光照射時,PN節(jié)耗盡區(qū)內(nèi)的光生電子與空穴在內(nèi)建電場力的作用下分別向N區(qū)和P區(qū)運動,在閉合的電路中產(chǎn)生光電流。因為光電流需要轉(zhuǎn)換為電壓信號,才能通過數(shù)碼管顯示,所以需要進行I/V變換。但是,所得的電壓值過小,不宜測量,故需要電壓放

9、大模塊將其放大為直流電壓信號。其次,數(shù)碼管顯示的是數(shù)字信號,所以,需要將放大得到的直流電壓信號進過A/D轉(zhuǎn)換模塊轉(zhuǎn)換為數(shù)字電壓信號。最后,通過單片機處理后得到可以反應光照度的數(shù)字信號,并通過數(shù)碼管實時顯示出來。</p><p><b>  圖5 系統(tǒng)電路圖</b></p><p><b>  圖6 總電路圖</b></p><

10、p>  1 光電池和電壓放大及I/V轉(zhuǎn)換模塊</p><p>  本系統(tǒng)選用的硅光電池光譜響應波長一般為0.4~1.1微米,峰值響應波長為0.9微米,其特性曲線如圖7所示。在不同光照下,硅光電池有不同的電信號輸出,且二者之間具有單值對應關系,因此,可以通過檢測其輸出電信號并根據(jù)其輸出特性關系,得到對應的光照度信息,以達到光照度檢測的目的。</p><p>  圖7 硅光電池光譜響應特

11、性曲線</p><p>  該模塊使用LM358運算放大芯片實現(xiàn),如圖8所示,該芯片引腳如圖9所示,可以實現(xiàn)I/V變換,即將光電流信號轉(zhuǎn)換為直流電壓信號,并且進行放大。</p><p>  圖8 電壓放大及I/V轉(zhuǎn)換模塊</p><p>  圖9 LM358引腳圖</p><p>  2 A/D轉(zhuǎn)換模塊</p><p&

12、gt;  該模塊由PCF8591芯片實現(xiàn),如圖10所示,該芯片引腳如圖11所示,可以實現(xiàn)A/D轉(zhuǎn)換,將直流電壓信號轉(zhuǎn)換為數(shù)字電壓信號。</p><p>  PCF8591各引腳功能如下:</p><p>  AIN0、AIN1、AIN2、AIN3:模擬信號輸入端;</p><p>  A0、A1、A2:引腳地址端;</p><p>  VDD

13、、VSS:電源端;</p><p>  SDA、SCL:I2C總線的數(shù)據(jù)線、時鐘線;</p><p>  OSC:外部時鐘輸入端,內(nèi)部時鐘輸出端;</p><p>  EXT:內(nèi)部、外部時鐘選擇線,使用內(nèi)部時鐘時EXT接地;</p><p>  AGND:模擬信號地;</p><p>  AOUT:D/A轉(zhuǎn)換輸出端;&

14、lt;/p><p>  VREF:基準電源端;</p><p>  圖10 A/D轉(zhuǎn)換模塊</p><p>  圖11 PCF8591引腳圖</p><p><b>  3 單片機控制模塊</b></p><p>  該模塊由89C51芯片實現(xiàn),如圖12所示,89C51引腳圖如圖13所示。該模塊通過芯

15、片內(nèi)部的程序控制驅(qū)動PCF8591芯片并采集模數(shù)轉(zhuǎn)換后的數(shù)字信號,對采集后的數(shù)字信號進行處理,控制數(shù)碼管顯示系統(tǒng)檢測得到的照度值。</p><p><b>  圖12 單片機系統(tǒng)</b></p><p>  圖13 89C51引腳圖</p><p>  4 數(shù)碼管顯示系統(tǒng)及鎖存器</p><p>  該模塊由芯片74HC

16、573和數(shù)碼管實現(xiàn),如圖14,74HC573引腳圖如圖15所示。數(shù)碼管段選使用573鎖存器,因為單片機引腳直接驅(qū)動功率不太夠。</p><p>  圖14 數(shù)碼管顯示系統(tǒng)及鎖存器</p><p>  圖15 74HC573</p><p><b>  3.2 軟件部分</b></p><p><b>  程序部

17、分代碼如下:</b></p><p><b>  1 main.c</b></p><p>  /*******************************************************************************</p><p>  * </p>

18、<p>  * 普中科技</p><p>  --------------------------------------------------------------------------------</p><p>  * 實 驗 名 : AD顯示試驗</p><p>  * 實驗說明

19、 : 使用數(shù)碼管顯示AD讀取到電位器的電壓值</p><p>  * 連接方式 : 見連接圖</p><p>  * 注 意 : </p><p>  *******************************************************************************/</p>&l

20、t;p>  #include<reg51.h></p><p>  #include"i2c.h"</p><p>  //--定義使用的IO--//</p><p>  #define GPIO_DIG P0</p><p>  sbit LSA=P2^2;</p><p>  

21、sbit LSB=P2^3;</p><p>  sbit LSC=P2^4;</p><p>  sbit LE=P2^2;</p><p>  //--定義PCF8591的讀寫地址--//</p><p>  #define WRITEADDR 0x90 //寫地址</p><p>  #define R

22、EADADDR 0x91 //讀地址</p><p>  //--定義全局變量--//</p><p>  unsigned char code DIG_CODE[17]={</p><p>  0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,</p><p>  0x7f,0x6f,0x77,0x7c

23、,0x39,0x5e,0x79,0x71};</p><p>  //0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼</p><p>  uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};</p>&l

24、t;p>  unsigned char DisplayData[8];</p><p>  //用來存放要顯示的8位數(shù)的值</p><p>  //--聲明全局函數(shù)--//</p><p>  void DigDisplay(); //動態(tài)顯示函數(shù)</p><p>  void Pcf8591SendByte(unsigned char

25、 channel);</p><p>  unsigned char Pcf8591ReadByte();</p><p>  void Pcf8591DaConversion(unsigned char value);</p><p>  void DigDisplay();</p><p>  /*********************

26、*********************************************</p><p><b>  長延時函數(shù)</b></p><p>  ******************************************************************/</p><p>  void delay(ucha

27、r z)</p><p><b>  {</b></p><p>  uchar x,y;</p><p>  for(x=z;x>0;x--)</p><p>  for(y=50;y>0;y--);</p><p><b>  }</b></p>

28、<p>  /*******************************************************************************</p><p>  * 函 數(shù) 名 : main</p><p>  * 函數(shù)功能 : 主函數(shù)</p><p>  * 輸 入 : 無&

29、lt;/p><p>  * 輸 出 : 無</p><p>  *******************************************************************************/</p><p>  void main()</p><p><b>  {</b&g

30、t;</p><p>  unsigned int adNum,n;</p><p>  uint b1,b,g,s;</p><p>  int time1;</p><p>  float value;</p><p>  uchar date[10];</p><p><b> 

31、 while(1)</b></p><p><b>  {</b></p><p><b>  time1++;</b></p><p>  if(time1%15)</p><p><b>  {</b></p><p>  Pcf859

32、1SendByte(0);</p><p>  date[time1%15] = Pcf8591ReadByte()*2;</p><p><b>  }</b></p><p>  //--顯示電位器電壓--//</p><p>  //Pcf8591SendByte(0); //發(fā)送電位器

33、轉(zhuǎn)換命令</p><p>  if(time1==150) </p><p><b>  {time1=0;</b></p><p>  //adNum = Pcf8591ReadByte()*2;//將轉(zhuǎn)換結(jié)果讀走</p><p>  adNum = (date[0]+date[1]+date[2]+date[3]

34、+date[4]+date[5]+date[6]+date[7]+date[8]+date[9])/10.;</p><p>  //--我們8591每讀取到一個1就表示5/256V,所以要知道電壓值就乘以0.01953--//</p><p>  value = adNum * 0.01953/1.3; //轉(zhuǎn)為電壓值</p><p>  adNum = val

35、ue * 1000; //保留兩位小數(shù)</p><p><b>  n=adNum;</b></p><p><b>  }</b></p><p>  // n=n*500./255;</p><p><b>  // n=123;</b></p>

36、<p>  b1=n/1000;</p><p>  b=n%1000/100;</p><p>  s=n/10%10;</p><p><b>  g=n%10;</b></p><p><b>  LE=1;</b></p><p>  P0=0xfe;P1

37、=table[b1];delay(10);</p><p>  P0=0xfd;P1=table[b];delay(10);</p><p>  P0=0xfb;P1=table[s];delay(10);</p><p>  P0=0xf7;P1=table[g];delay(10);</p><p><b>  }</b&

38、gt;</p><p><b>  }</b></p><p>  /*******************************************************************************</p><p>  * 函 數(shù) 名 : Pcf8591SendByte</p><

39、;p>  * 函數(shù)功能 : 寫入一個控制命令</p><p>  * 輸 入 : channel(轉(zhuǎn)換通道)</p><p>  * 輸 出 : 無</p><p>  **********************************************************************

40、*********/</p><p>  void Pcf8591SendByte(unsigned char channel)</p><p><b>  {</b></p><p>  I2C_Start();</p><p>  I2C_SendByte(WRITEADDR, 1); //發(fā)送寫器件地址&l

41、t;/p><p>  I2C_SendByte(0x40|channel, 0); //發(fā)送控制寄存器</p><p>  I2C_Stop();</p><p><b>  }</b></p><p>  /**********************************************************

42、*********************</p><p>  * 函 數(shù) 名 : Pcf8591ReadByte</p><p>  * 函數(shù)功能 : 讀取一個轉(zhuǎn)換值</p><p>  * 輸 入 : 無</p><p>  * 輸 出 : dat</p>

43、<p>  *******************************************************************************/</p><p>  unsigned char Pcf8591ReadByte()</p><p><b>  {</b></p><p>  unsigned

44、char dat;</p><p>  I2C_Start();</p><p>  I2C_SendByte(READADDR, 1);//發(fā)送讀器件地址</p><p>  dat=I2C_ReadByte(); //讀取數(shù)據(jù)</p><p>  I2C_Stop(); //結(jié)束總線</p>&l

45、t;p>  return dat;</p><p><b>  }</b></p><p>  /*******************************************************************************</p><p>  * 函 數(shù) 名 : Pcf8591DaConv

46、ersion</p><p>  * 函數(shù)功能 : PCF8591的輸出端輸出模擬量</p><p>  * 輸 入 : value(轉(zhuǎn)換的數(shù)值)</p><p>  * 輸 出 : 無</p><p>  ******************************************

47、*************************************/</p><p>  void Pcf8591DaConversion(unsigned char value)</p><p><b>  {</b></p><p>  I2C_Start();</p><p>  I2C_SendByte(

48、WRITEADDR, 1);//發(fā)送寫器件地址</p><p>  I2C_SendByte(0x40, 1); //開啟DA寫到控制寄存器</p><p>  I2C_SendByte(value, 0); //發(fā)送轉(zhuǎn)換數(shù)值</p><p>  I2C_Stop();</p><p><b>  }</b&g

49、t;</p><p>  /*******************************************************************************</p><p>  * 函 數(shù) 名 : DigDisplay</p><p>  * 函數(shù)功能 : 使用數(shù)碼管顯示</p><p>

50、  * 輸 入 : 無</p><p>  * 輸 出 : 無</p><p>  *******************************************************************************/</p><p>  void DigDisplay()</p>

51、<p><b>  {</b></p><p>  unsigned char i;</p><p>  unsigned int j;</p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><p>  swit

52、ch(i) //位選,選擇點亮的數(shù)碼管,</p><p><b>  {</b></p><p><b>  case(0):</b></p><p>  LSA=0;LSB=0;LSC=0; break;//顯示第0位</p><p><b>  case(1):</b>&

53、lt;/p><p>  LSA=1;LSB=0;LSC=0; break;//顯示第1位</p><p><b>  case(2):</b></p><p>  LSA=0;LSB=1;LSC=0; break;//顯示第2位</p><p><b>  case(3):</b></p>

54、<p>  LSA=1;LSB=1;LSC=0; break;//顯示第3位</p><p><b>  case(4):</b></p><p>  LSA=0;LSB=0;LSC=1; break;//顯示第4位</p><p><b>  case(5):</b></p><p>

55、  LSA=1;LSB=0;LSC=1; break;//顯示第5位</p><p><b>  case(6):</b></p><p>  LSA=0;LSB=1;LSC=1; break;//顯示第6位</p><p><b>  case(7):</b></p><p>  LSA=1;LS

56、B=1;LSC=1; break;//顯示第7位</p><p><b>  }</b></p><p>  GPIO_DIG=DisplayData[i];//發(fā)送段碼</p><p>  j=500; //掃描間隔時間設定</p><p>  while(j--);</p><p&

57、gt;  GPIO_DIG=0x00;//消隱</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  2 i2c.c</b></p><p>  #include"i2c.h"</p>&l

58、t;p>  /*******************************************************************************</p><p>  * 函 數(shù) 名 : Delay1us()</p><p>  * 函數(shù)功能 : 延時</p><p>  * 輸 入 :

59、無</p><p>  * 輸 出 : 無</p><p>  *******************************************************************************/</p><p>  void I2C_Delay10us()</p><p><b>

60、  {</b></p><p>  uchar a, b;</p><p>  for(b=1; b>0; b--)</p><p><b>  {</b></p><p>  for(a=2; a>0; a--);</p><p><b>  }</b&g

61、t;</p><p><b>  }</b></p><p>  /*******************************************************************************</p><p>  * 函 數(shù) 名 : I2C_Start()</p><p>

62、;  * 函數(shù)功能 : 起始信號:在I2C_SCL時鐘信號在高電平期間I2C_SDA信號產(chǎn)生一個下降沿</p><p>  * 輸 入 : 無</p><p>  * 輸 出 : 無</p><p>  * 備 注 : 起始之后I2C_SDA和I2C_SCL都為0</p><

63、;p>  *******************************************************************************/</p><p>  void I2C_Start()</p><p><b>  {</b></p><p>  I2C_SDA = 1;</p><

64、;p>  I2C_Delay10us();</p><p>  I2C_SCL = 1;</p><p>  I2C_Delay10us();//建立時間是I2C_SDA保持時間>4.7us</p><p>  I2C_SDA = 0;</p><p>  I2C_Delay10us();//保持時間是>4us</p&

65、gt;<p>  I2C_SCL = 0;</p><p>  I2C_Delay10us();</p><p><b>  }</b></p><p>  /*******************************************************************************&l

66、t;/p><p>  * 函 數(shù) 名 : I2C_Stop()</p><p>  * 函數(shù)功能 : 終止信號:在I2C_SCL時鐘信號高電平期間I2C_SDA信號產(chǎn)生一個上升沿</p><p>  * 輸 入 : 無</p><p>  * 輸 出 : 無

67、</p><p>  * 備 注 : 結(jié)束之后保持I2C_SDA和I2C_SCL都為1;表示總線空閑</p><p>  *******************************************************************************/</p><p>  void I2C_Stop()<

68、/p><p><b>  {</b></p><p>  I2C_SDA = 0;</p><p>  I2C_Delay10us();</p><p>  I2C_SCL = 1;</p><p>  I2C_Delay10us();//建立時間大于4.7us</p><p>

69、;  I2C_SDA = 1;</p><p>  I2C_Delay10us();</p><p><b>  }</b></p><p>  /*******************************************************************************</p><p&

70、gt;  * 函 數(shù) 名 : I2cSendByte(uchar num)</p><p>  * 函數(shù)功能 : 通過I2C發(fā)送一個字節(jié)。在I2C_SCL時鐘信號高電平期間,</p><p>  * * 保持發(fā)送信號I2C_SDA保持穩(wěn)定</p><p>  * 輸 入

71、 : num ,ack</p><p>  * 輸 出 : 0或1。發(fā)送成功返回1,發(fā)送失敗返回0</p><p>  * 備 注 : 發(fā)送完一個字節(jié)I2C_SCL=0, 需要應答則應答設置為1,否則為0</p><p>  ******************************************

72、*************************************/</p><p>  uchar I2C_SendByte(uchar dat, uchar ack)</p><p><b>  {</b></p><p>  uchar a = 0,b = 0;//最大255,一個機器周期為1us,最大延時255us。</p

73、><p>  for(a=0; a<8; a++)//要發(fā)送8位,從最高位開始</p><p><b>  {</b></p><p>  I2C_SDA = dat >> 7; //起始信號之后I2C_SCL=0,所以可以直接改變I2C_SDA信號</p><p>  dat = dat <<

74、; 1;</p><p>  I2C_Delay10us();</p><p>  I2C_SCL = 1;</p><p>  I2C_Delay10us();//建立時間>4.7us</p><p>  I2C_SCL = 0;</p><p>  I2C_Delay10us();//時間大于4us<

75、;/p><p><b>  }</b></p><p>  I2C_SDA = 1;</p><p>  I2C_Delay10us();</p><p>  I2C_SCL = 1;</p><p>  while(I2C_SDA && (ack == 1))//等待應答,也就是等待

76、從設備把I2C_SDA拉低</p><p><b>  {</b></p><p><b>  b++;</b></p><p>  if(b > 200) //如果超過200us沒有應答發(fā)送失敗,或者為非應答,表示接收結(jié)束</p><p><b>  {</b><

77、;/p><p>  I2C_SCL = 0;</p><p>  I2C_Delay10us();</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  }</b></p>

78、<p>  I2C_SCL = 0;</p><p>  I2C_Delay10us();</p><p>  return 1;</p><p><b>  }</b></p><p>  /*********************************************************

79、**********************</p><p>  * 函 數(shù) 名 : I2cReadByte()</p><p>  * 函數(shù)功能 : 使用I2c讀取一個字節(jié)</p><p>  * 輸 入 : 無</p><p>  * 輸 出 : dat&

80、lt;/p><p>  * 備 注 : 接收完一個字節(jié)I2C_SCL=0</p><p>  *******************************************************************************/</p><p>  uchar I2C_ReadByte()</p><

81、;p><b>  {</b></p><p>  uchar a = 0,dat = 0;</p><p>  I2C_SDA = 1;//起始和發(fā)送一個字節(jié)之后I2C_SCL都是0</p><p>  I2C_Delay10us();</p><p>  for(a=0; a<8; a++)//接收8

82、個字節(jié)</p><p><b>  {</b></p><p>  I2C_SCL = 1;</p><p>  I2C_Delay10us();</p><p>  dat <<= 1;</p><p>  dat |= I2C_SDA;</p><p>  

83、I2C_Delay10us();</p><p>  I2C_SCL = 0;</p><p>  I2C_Delay10us();</p><p><b>  }</b></p><p>  return dat;</p><p><b>  }</b></p&g

84、t;<p><b>  3 i2c.h</b></p><p>  #ifndef __I2C_H_</p><p>  #define __I2C_H_</p><p>  #include<reg51.h></p><p>  //---重定義關鍵詞---//</p><

85、p>  #ifndef uchar</p><p>  #define uchar unsigned char</p><p><b>  #endif</b></p><p>  #ifndef uint </p><p>  #define uint unsigned int</p><p&

86、gt;<b>  #endif</b></p><p>  //--定義使用的IO口--//</p><p>  sbit I2C_SCL = P2^1;</p><p>  sbit I2C_SDA = P2^0;</p><p>  //--聲明全局變量--//</p><p>  void

87、I2C_Delay10us();</p><p>  void I2C_Start();</p><p>  void I2C_Stop();</p><p>  uchar I2C_SendByte(uchar dat, uchar ack);</p><p>  uchar I2C_ReadByte();</p><p

88、><b>  #endif</b></p><p><b>  3.3 測試電路</b></p><p>  測試電路布線圖如圖16所示。</p><p>  圖16 測試電路布線圖</p><p><b>  4 調(diào)試過程及結(jié)論</b></p><p

89、>  4.1 調(diào)試過程的現(xiàn)象</p><p>  連接好電路后,將單片機程序下載進芯片,打開開發(fā)板總開關,數(shù)碼管顯示當前光照度對應的電壓值,不過有小幅跳變,當用手完全遮擋光電池的光敏面時,數(shù)碼管顯示0,當改變光強時,數(shù)碼管顯示的電壓值隨之變化,且光強變小時,電壓值降低,光強變大時,電壓值增加,即趨勢是一樣的。</p><p>  4.2 調(diào)試過程中出現(xiàn)的問題</p>&

90、lt;p>  1 使用燒錄器下載單片機程序的過程中,發(fā)現(xiàn)程序不可下載,下載了相應的驅(qū)動后,仍然有問題,在老師的指點下,將P3口的接線換到別的接口,并且更改了程序后正常下載程序。</p><p>  2 數(shù)碼管顯示亂碼且順序不對,因為段選和位選接反了,更改之后,正確顯示。</p><p>  3 數(shù)碼管顯示的電壓值跳變范圍太大,難于讀數(shù),后來將程序進行了一些更改,電壓值稍有跳變。<

91、;/p><p>  4 數(shù)碼管顯示的電壓值在光強較大時,變化趨勢不對,在調(diào)節(jié)了滑動變阻器的阻值后趨勢變化正確。</p><p><b>  4.3 調(diào)試結(jié)論</b></p><p>  本系統(tǒng)的設計是基于Si光電池的照度計設計與調(diào)試,設計的電路基本可實現(xiàn)光照度的測量,且測量范圍為0-200lx,測量誤差7.4lx。</p><p

92、><b>  5 心得體會</b></p><p>  在學習光電技術這門課程的過程中,了解到了光照度的概念,認識到了光照度與人們生活的密切聯(lián)系,因此,測量生活環(huán)境的光照度是非常重要的。此次課程設計給了我一個很好的實踐機會來設計電路并測量光照度的值。</p><p>  在剛拿到題目時,感覺無從下手,后來,查找了相關資料并且和同學討論后,漸漸有了思路,清楚了此次

93、需要完成的目標以及如何實現(xiàn)。準備過程中,查閱了相關芯片的資料,進一步了解了其用法,并且提高了自己實際使用相關電子器件的能力。</p><p>  在連接電路的過程中,雖然不會像以前在面包板上連接時要求不許飛線和跨線,但由于平時連接的少,連接難度還是比較大的,不過,耐心連仍然是可以完成的。在這個過程中,進一步熟悉了相關電路的連接。</p><p>  由于在單片機課程中,沒有自己進行程序的下

94、載,相關軟件的使用并不是非常熟練,雖然有了相關軟件,可是仍然不能正常下載程序,后來在同學的幫助下,下載了相關驅(qū)動,才順利將程序下載到芯片中。</p><p>  此次課程設計,獲益匪淺,不僅將理論知識和實際聯(lián)系起來,加深了自己對Si光電池和光照度的理解,通過數(shù)碼管顯示的電壓值和照度計照度值的比較,直觀的了解了光照度這一概念,同時也更加熟練的掌握了proteus和keil等軟件,并且提高了自己解決問題的能力。<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論