梅衛龍,肖 偉,代 森,廖先奎
(西藏大學工學院 電子信息系,西藏 拉薩 850000)
隨著社會發展的步伐日益加快,人們對新型能源地開發利用程度不斷加大,太陽能作為一種新型能源,越來越受到人們的重視,合理有效的利用好太陽能,已逐步成為節能環保的一種趨勢。西藏太陽能資源居中國首位,也是世界上最豐富的地區之一,全年平均日照時數在3 000小時左右。因此為了更環保、更加節能,合理有效地利用太陽能,我們設計出一款多功能太陽能路燈。文中采用 C8051F020[1]作為主控芯片,通過51單片機[2]控制片內高速AD對紫外線傳感器、溫度傳感器、光照度傳感器[3]等進行采樣,對拉薩環境進行監測(特別是紫外線強度的監測),相關數據參數經過LCD顯示,用戶可通過需要顯示廣告信息,如進行公益廣告,商業廣告相關信息的宣傳;同時利用具有高效節能的LED燈作為發光源提供照明,蓄電池作為儲存電能的工具,將獲取的太陽能存儲起來。本設計不僅具有良好的市場前景,而且實現了能源的高效利用。
文中設計的硬件包括,新華龍電子公司的C8051F0201單片機 、穩壓電路。文中主要利用太陽能電池板[4]將太陽能轉化為電能,并儲存在蓄電池中,由蓄電池給硬件部分提供電源,通過穩壓電路提供單片機工作電壓[5],主控芯片C8051 F0201控制LCD顯示和AD采樣,太陽系統硬件設計框圖如圖1所示。

圖1 系統硬件結構框圖Fig.1 Structure diagram of system hardware
1.1.1 C8051F020簡介
C8051F020(以下簡稱51單片機)器件是完全集成的混合信號系統級MCU芯片,具有32個數字I/O引腳。此款51單片機具有高速、流水線結構的 8051兼容的 CIP-51內核(可達 25MIPS)。全速、非侵入式的在系統調試接口(片內)。12位、100 ksps的8通道 ADC,帶 PGA和模擬多路開關。8位500 ksps的ADC,帶PGA和8通道模擬多路開關和兩個 12位DAC,具有可編程數據更新方式。64 k字節可在系統編程的FLASH存儲器。4 352(4 096+256)字節的片內RAM,可尋址64 K字節地址空間的外部數據存儲器接口。硬件實現的 SPI、Sm Bus/I2C和兩個 UART串行接口,5個通用的16位定時器。具有 5個捕捉/比較模塊的可編程計數器/定時器陣。列片內看門狗定時器、VDD監視器和溫度傳感器,每個MCU都可在工業溫度范圍(-45~+85℃)內用 2.7~3.6 V的電壓工作。端口 I/O、/RST和 JTAG引腳都容許 5 V的輸入信號電壓。C8051F0201引腳如圖2所示。

圖2 引腳圖Fig.2 Diagram of pins
1.1.2 AD采樣
C8051F020 有一個片內 12 位 SAR ADC[3](ADC0),一個 9通道輸入多路選擇開關和可編程增益放大器。該ADC工作在100 ksps的最大采樣速率時可提供真正的12位精度,INL為±1LSB,ADC中集成了跟蹤保持電路和可編程窗口檢測器.只有當ADC0控制寄存器中的AD0EN位被置 ‘1’時ADC0子系統 (ADC0、跟蹤保持器和PGA0)才被允許工作。當AD0EN位為 ‘0’時,AD0C子系統處于低功耗關斷方式。ADC0的最高轉換速度為100 ksps,其轉換時鐘來源于系統時鐘分頻,分頻值保存在寄存器ADC0CF的ADCSC位。文中設計的AD采樣的啟動方式為定時器3溢出(即定時的連續轉換,便于實施數據采集),選用的通道如表1所示。

表1 AD通道選擇Tab.1 Selection of AD channel
1.1.3 LCD顯示電路
LCD顯示電路采用T6963C液晶顯示控制器,T6963C多用于小規模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以內藏控制器型圖形液晶顯示模塊的形式出現。內藏T6963C單屏結構點陣圖形液晶顯示的模塊方框圖如圖3所示。單片機對T6963C有2種訪問方式:直接訪問與間接訪問。直接訪問利用三總線以I/O設備訪問形式進行控制;間接訪問則由單片機提供并行接口[6],以程序控制時序的方式進行控制。為簡化程序,這里采用直接訪問方式,如圖4所示。LCD引腳及其功能如表2所示。

圖3 模塊方框圖Fig.3 Module block diagram

圖4 直接訪問方式Fig.4 Method of direct access

表2 LCD引腳及其功能Tab.2 Pins and function of LCD
C8051單片機軟件主要包括顯示函數、AD采樣函數、初始化函數以及主函數。軟件設計的主程序流程框圖如圖5所示,子函數詳細功能如表3所示。

圖5 主程序流程框圖Fig.5 Flow chart of main program

表3 子函數功能說明Tab.3 Explaining function of subfunction
//===========================================
//文件名稱:AD.C
//功能描述:處理傳感器采集的數據
//維護記錄:V1.0 2012-4-18
//===========================================
void Time1_ISR(void) interrupt 3
{
unsigned char k=0,i=0;
unsigned int temp;
TR1=0; //關閉定時器1
for(i=0;i<4;i++)
{
voltage[i]=0;
AMX0SL=i; //AINi作為輸入,電源電壓監控
temp=0;
for(k=0;k<20;k++); //延時,等待通道開關穩定
for(k=0;k<N;k++)
{
AD0INT=0; //轉換結束標志
AD0BUSY=1; //啟動AD轉換
while(!AD0INT);
ADC_data[k]=ADC0H;//voltage[7]
ADC_data[k]<<=8;
ADC_data[k]+=ADC0L;
temp+=ADC_data[k]/N; //測試N次,取平均值
}
voltage[i]=(temp*VR)/0x0fff;//計算實際電壓值
}
voltage[0]=60.89-29.27*voltage[0];
voltage[1]=voltage[1]<531?1:voltage[2]<2301?2:3;
voltage[2]=voltage[2]*1000;
voltage[2]=voltage[2]<318?1:voltage[2]<408?2:voltage[2]<503?3:voltage[2]<606?4:voltage[2]<696?5:voltage[2]<795?6:voltage[2]<881?7:voltage[2]<976?8:voltage[2]<1079?9:10;
word_flag=voltage[2]<3?0:voltage[2]<5?1:voltage[2]<7?2:word_flag<7?3:word_flag<10?4:5;
TL1=TH1;
TR1=1;
}
整體測試結果如表4所示。

表4 整體測試結果表Tab.4 Overall test result in table

圖6 整體實物圖Fig.6 Overall physical figure
文中運用C8051F020作為主控芯片結合溫度傳感器、紫外線傳感器、光照度傳感器等制作一個由太陽能電池板將太陽能轉化為電能,充分并有效地利用了能源,對環境實時監測。本文采用的C8051F020控制芯片具有較高的執行效率,功耗低,易控制,總體設計不需外加電源,實現了智能化控制[7]。通過對太陽能的合理利用,本設計具有非常好的市場前景,實現工業智能化,是節能減排,構建資源節約型社會的一個良好發展趨勢。
[1]潘琢金.C8051F單片機應用解析[M].北京:北京航天航空大學出版社,2002.
[2]張毅剛.單片機原理及應用[M].2版.哈爾濱:哈爾濱工業大學出版社,2008.
[3]王化祥,張淑英.傳感器原理及應用[M].天津:天津大學出版社,2007.
[4]周志敏,周紀海,紀愛華.太陽能LED路燈設計與應用[M].北京:電子工業出版社,2010.
[5]康華光.電子技術基礎模擬部分[M].5版.北京:高等教育出版社,2006.
[6]胡漢才.單片機原理及其接口技術[M].3版.北京:清華大學出版社,2010.
[7]董尚斌.電子線路[M].北京:清華大學出版社,2006.