




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章緒論1.1課題研究背景與意義科技的發展與生產力的提高帶來的是生活水平的日益提升,于是人民的追求便不止于溫飽問題,對高品質的生活也開始了追尋,生活中人體舒適度優良便成了幸福指數之一。而家是人們除工作以外呆的最久的地方,良好的室內氣象條件,比如說室內溫濕度合適與否,便是影響高品質生活的重要條件之一。氣溫過高或過低、環境過于潮濕或者干燥,都會讓人體感到不適,它間接干擾著人們生活的舒適度與否以及情緒高低。所以就非常需要對室內溫濕度進行監測,方便更好的調控。現代生產工業化、生產設備電子化,生產材料也與日懼新,高精度與高效的生產也迫使人們需要數據信號的準確性和時效性,尤其是溫度與濕度這兩個極為重要的環境因素,很大程度地影響著生產的速度與良品率。從前對于溫濕度數據的獲取一直靠的是人力手動測量,使用比較過時的設備,如水銀溫度計之類的。不過這樣的測量方式耗時耗力,且容易出現人為的主觀的誤差。同時這種人力測量方式對于一些需要時刻獲取溫濕度數據的場景也不適用。所以此時需要一種一體化更高,同時還精準的測量系統代替人力測量方式。這樣的時代背景下,傳感與單片機等核心器件不禁顯得尤為突出。單片機現已廣泛運用到人們的生活與工作之中,這也是得益于其穩定且精確的特性。傳感器,單片機與顯示屏同時出現,我們不由可以想象到一個傳感器獲取數據,交由單片機處理并輸出給顯示屏顯示的小系統。該系統構思經過確切的代碼編寫,相應的電路連接,便可以成為一個對于溫濕度監測有實用性的系統裝置。該系統裝置有效的達到了人們追求的可靠性,精準性,時效性和便捷性。1.2課題研究的主要內容課題設計的核心與題目一致,制作一個基于單片機的環境監測系統裝置。這里的環境指溫濕度,單片機使用的是STM32系列。裝置正常工作時,傳感器實時獲取環境溫濕度數據交由單片機處理后輸出到顯示屏上且數據實時顯示。常顯的功能方便用戶隨時獲取數據。裝置帶有溫濕度過限報警功能,同時為增強實用性,設有閾值設定功能,用戶根據實際情況調整裝置。該裝置集成性較高,操作簡單方便,檢測準確高效,且手動設置閾值的人性化操作可以給予用戶多樣的使用場景。系統以STM32為核心,故給予主控模塊,集成傳感器模塊,顯示模塊,閾值模塊,報警模塊必要的輔助電路,最后編寫程序燒寫入單片機作出實物。成品可以實時顯示環境溫濕度,環境溫濕度超過閾值,裝置報警。第二章系統總體設計2.1設計思路系統設計以單片機為主體便以單片機展開設計。傳感器實時獲取溫濕度數據后交由單片機核心處理,處理完成后轉輸出到顯示屏上完成數據常顯功能。此外單片機還連接有蜂鳴器,系統默認設置有一定的溫濕度限制,超過限制時報警。為方便用戶使用增加的閾值模塊,應由數顆按鍵組成模塊,通過相應代碼,完成閾值模塊。此次設計本著簡要精煉且低成本的原則,在硬件的選擇上也有一定考量。系統核心STM32單片機性價比高,性能強勁同時適應多種復雜環境運行。傳感器選擇DH11,集成了溫度與濕度的檢測功能,省去了多個傳感器分別采集數據的操作同時還自數模轉換,很是方便高效。顯示屏采用的是1602液晶屏,也是比較常見價格便宜可操作度也高的一款顯示屏。單片機,傳感器和顯示屏還有部分硬件都是針插式的引腳,連接起來十分方便,不知不覺中就省去了一系列的操作,為后期代碼編寫剩下大幅時間。連接板選擇了普通的樹脂板配合一系列的針插式引腳,這樣構成的系統簡潔明了,系統相互聯系各個硬件又相對獨立。這樣你來的好處便是后期調試時,如果出現部分模塊故障,這樣檢測與換新過程都是行云流水般的,不會出現復雜系統下找不出故障原因的尷尬局面。低成本的維護無疑降低了使用成本,使得該裝置進一步提高。精煉高效,價格低廉的裝置也遵循了當代社會下的生產工藝要求,也符合新時代的環保理念。2.2系統總體設計框架圖依照上邊的描述的系統藍圖,確保首先確保所有基礎功能的實現,然后盡可能簡化精煉系統。確定總體設計方案后,初步描繪系統的方案如圖2-1所示,以便于理清設計方向。圖2-1系統總體設計從上圖2-1可得知,系統主要分為五大模塊,STM32單片機作為核心處理,主要輸入模塊為閾值模塊與傳感器模塊,輸出方面為顯示和報警模塊,加上主控模塊共五大模塊集成系統,完成溫度濕度數據獲取,顯示屏常顯數據,人工設限以及過限報警功能。2.3系統工作原理總體來說,系統需要實現溫濕度實時采集顯示,人工設限以及過限報警功能。各個模塊完成各自功能,通過對應電路連接,實現上述基本功能。主控模塊匯總處理所有模塊信息。
傳感器模塊方面傳感器選擇的是DH11。一次采取兩種數據省去了分別采取的重復操作,自帶優秀的數模轉換,針插引腳簡單明了。傳感器采集周圍溫濕度數據,收集的數據傳送給STM32處理,如何處理完成的數據被放到各個數組中為后面的顯示做準備。此外,傳感器一秒采集一次數據輸出,很好的保證了系統的穩定性。1602液晶顯示模塊的作用就是要完成對實時的溫濕度以及人工操作設定閾值時等兩個界面的顯示。系統溫濕度實時監測并顯示時,顯示屏其分兩行顯示,上行顯示溫度濕度,下行暫時留空。需要設置溫濕度閾值時,按下2號按鍵,顯示屏上面一行顯示設置溫濕度的提示,下面一行顯示溫濕度預設置值。注意,第一次按下2號鍵為設置溫度閾值,第2次按下為確定溫度閾值設置并開啟濕度閾值設置,第三次按下為保存濕度閾值設置并退出閾值設定模塊。呼出式的閾值設定界面,不影響系統平時的運行
,構建了良好的人機交互體驗。
報警模塊的核心便是過限報警。此次設計選擇的是有源蜂鳴器,所以在報警頻率都是固定的無論是溫度還是濕度過限。報警的機制在實際應用可以提醒工作人員及時調整裝置,啟用升溫器、加濕器、降溫風扇以及噴霧器等操作來快速有效地調整環境溫濕度。閾值設置的存在在此次設計的實用性有了質的飛躍。通過簡單的四個按鍵來設置過限報警的閾值,無需再通過代修改。讓一般使用者的面對不同環境時隨時可修改系統閾值,從容面對各種復雜環境。第三章系統硬件設計3.1主控模塊設計3.1.1STM32單片機簡介STM32系列單片機一向以低價高配而聞名。價格實惠,功能齊全,性能高效。它是一款特地為嵌入式開放設計的高能效的高性價比單片機。這次設計采用的是STM32系列中的STM32F103C8T6,它是基于ARMCortex-M內核STM32系列的32位的一款微控制器,帶閃存,USB,7個16位定時器,2個ADC和9個通信接口,3個12位的us級的A/D轉換器,外設共有12條DMA通道。單片機工作溫度為-40°C~85°C,極限的溫度適應能力使其應用范圍大大增加。其供電電壓在低至2.0-3.6v時便可以保證工作效率,功耗為36mA,還擁有三種低功耗模式,這種功耗放在市面上的同類型競品中也是非常低的了。豐富的外設配置,使得該型號單片機可應用于工業生產、零售數碼、人工智能、醫療設備、安防監控等等領域。3.1.2主控模塊以STM32單片機為核心的最小系統作為主控模塊。具體應用時,將單片機上PA0~PA7口與液晶的數據傳輸口相連,B11則作為與傳感器DHT11通信的數據口,PB13、PB14、PB15分別為E,R/W,RS液晶控制口,PB5、PB6、PB7、PB8作為閾值模塊中四個按鍵的接口,PA12接報警模塊蜂鳴器控制端。主控芯片原理圖如圖3-1
圖3-1主控模塊原理圖3.2DH11傳感器模塊設計3.2.1DHT11傳感器簡介DH11傳感器集成溫濕度采集功能,同時經過實驗室的嚴苛校準,傳感器擁有精確的的已校準數字信號輸出。它利用特殊的模擬信號采集、轉換技術和溫度、溫濕度傳感技術,確保傳感器擁有良好的長時間穩定性和較高的可靠性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連。實物圖如下圖3-2所示:
圖3-2DH11傳感器實物圖(1)引腳介紹:Pin1:接電源Pin2:單總線,數據為串行Pin3:空腳,請懸浮。Pin4:接地端(2)接口說明:電路圖如下圖3-3所示。實際應用時,建議接線長度大于20米時,結合實際使用上拉電阻,小于時則使用5K的上拉電阻。圖3-3DHT11應用電路圖(3)數據幀的描述:DATA的作用是連接傳感器與單片機,并保持它們之間的通訊與數據的同步。具體說明如下:1.遵循高位先出原則,一次傳輸40bit。2.40bit構成分別為8bi溫度整數數據,8bit溫度小數數據,數據格式為8bit濕度整數數據和8bit濕度小數數據3.正常的情況下VDD為5伏,T為25度,特別的情況則不同,特殊電氣特性具體如下圖表3-4所示:圖3-4DHT11的電氣特性(5)時序描述:首先單片機發送起始信號后,然后傳感器接收起始信號后會從低功耗模式變成高效率模式,然后起始信號過后,傳感器就會響應,然后發送40位的數據且采集一次信號。反之如果并未接收到信號,則傳感器不會采集溫濕度。通訊過程如圖3-5所示:圖3-5DHT11通訊過程圖電平在總線空閑時,單片機會等待傳感器的響應,總線一定要大于18ms,保證信號能被傳感器測量。傳感器接收單片機信號后,等待至開始信號結束,發送一個維持80us的低電平響應信號。單片機啟動信號后,等待20到40us后,讀取傳感器的響應信號。另外,單片機信號啟動后,客切換到輸入模式,或高輸出功率、平均總線通過更高的負載電阻。通訊過程如圖3-6所示。圖3-6
DHT11信號接收發送過程圖當總線是低電平的時候,表示此時傳感器發送了響應信號,其中數據位是1或者0決定于高電平的長短。傳感器0信號表示方法如下圖3-7所示:圖3-7數字0信號的表示方法數字1信號表示方法如下圖3-8所示圖3-8數字1信號表示方法3.2.2DH11傳感器模塊傳感器由電阻式濕敏元件和NTC溫度測量元件構成,同時連接有一個高性能的8位單片機。因此,該產品質量優良,響應速度快,抗干擾能力強。模塊原理圖如圖3-9所示。圖3-9傳感器模塊原理圖3.31602顯示屏模塊設計3.3.11602顯示屏簡介1602液晶屏是字符型顯示屏,顯示屏共有上下兩行單行16列,共可顯示32個字符(16列2行)。在日常生活中,我們應時常可以見到液晶顯示器。液晶顯示模塊已被廣泛應用于需要簡顯示的電子產品中,如電子門鎖,測量儀表等。可顯示內容為數字、圖形與特殊符號。該顯示屏在單片機系統中應用有以下優點:1.此顯示屏針插引腳,連接簡單方便且更換簡單,實用性強。2.液晶屏具有實時顯示并能保持色彩與亮度的優勢同時還避免了老式陰極管顯示的屏閃問題。3.相比于傳統的顯示屏,液晶屏的耗電量更少,實用性更高,有效的利用了資源。4.液晶顯示特性的保證結構簡單,保證了故障率低價,延長使用時間,且體積重量較小,優化了系統空間,降低系統整體重量,為用戶提供良好體驗。(1)此外1602采用標準的16腳接口。說明如下圖3-10圖3-101602引腳接口說明(2)LCD1602的RAM地址映射及標準字庫表顯示屏內部已帶有60個不同點陣字符圖形,分別有有常用的符號、英文字母的大小寫、阿拉伯數字等。相對的代碼對應著相對的字符。顯示屏內部地址顯示如下圖3-11所示:圖3-111602內部顯示地址當輸入顯示地址的時候需要最高的地址D7要保持在高電平1,因而正確的寫數據應該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。由于它在顯示的時候光標會自動移到最右邊,不需要進行其它的操作。顯示屏如下圖3-12圖3-12顯示屏正面3.3.21602顯示屏模塊液晶屏用除了常顯主控模塊輸出的溫濕度數據外,還需顯示報警器界面和閾值設置界面,報警界面可防止蜂鳴器損壞而未能及時提醒,本系統的顯示界面液晶屏顯示的原理就是根據液晶顯示器E、R/W、RS端口的控制判斷D0~D7口輸入的是命令還是數據,如果是數據則按照液晶顯示器的D0~D7口輸入的高低電平(表示1或者0),組成的八位二進制內容根據ASIIC的內容轉換并顯示出來。1602原理圖如圖3-13所示。圖3-13顯示屏模塊原理圖3.4閾值設置模塊設計閾值設置模塊主體以四個S1、S2、S3、S4四個按鍵與R1、R2、R3、R4四個上拉電阻構成。電阻上拉,除了起一個限流的作用外,還將不確定的信號通過電阻保持在高電平。所以由原理圖可以知道,按鍵沒有按下去的時候一直是高電平,按鍵按下去以后想當與引腳接地,電平被拉低。閾值模塊想要實現應有功能,至少需實現溫濕度閾值設置與取消,退出閾值設置界面等基本操作。S2負擔主體功能,第一次按下S2,進入溫度閾值設置界面,由S1負責增加溫度,S2減少溫度,設置完畢,第二次按下S2確認溫度設置并進入濕度設置,設置方法同上,設置完畢仍是通過S2確認。S4則負責溫濕度閾值設置途中的取消操作,如果在設置的過程中按了取消操作則前面所按到的加減操作的數值都會取消,只有按確定的時候才會對需要設置的溫度真正的設置。閾值模塊原理圖如圖3-14所示。圖3-14閾值模塊原理圖3.5報警模塊設計蜂鳴器的原理就是利用電來發聲,采用集成的電聲結構,通以穩定的直流電源即可。它的使用之處更是普遍,像學校的上下課鈴聲,汽車的喇叭,電子手表的響聲等等。在在本次系統中,采用的有源蜂鳴器的實現報警也比較簡單。給蜂鳴器通電,蜂鳴器便能以一定頻率響起。當環境溫濕度超出設定值時,系統報警。值得注意的是,掃描式的按鍵不能快速連按,否則會按鍵會失效,按下間隔保持在0.7秒以上才正常響應。報警模塊原理圖如3-15所示。圖3-15報警模塊原理圖3.6總體設計原理圖硬件系統總體設計原理圖如圖3-16所示圖3-16總體設計原理圖第四章系統軟件設計在對系統整體有了一定把握后,建立系統流程圖,區分出各個子模塊以及他們相互間的聯系,在接下來的編寫設計中一一實現子模塊的功能,并基于對系統整體的熟悉把相互獨立的子模塊逐一連接成一個完整的系統。此次軟件設計均以C語言編寫。子程序主要DHT11數據讀取、LCD1602顯示、按鍵輸入、報警。系統流程為程序開始并各模塊進行初始化,然后讀取按鍵輸入數值,若此時沒有輸入,則讀取DHT11數據。讀取數值之后,判斷DHT11數值的范圍是否超出設定的范圍,若沒有過限,則顯示DHTI1的數值,如果過限,則報警電路啟動。系統總體設計如圖4-1所示。圖4-1總體設計流程圖4.11602顯示模塊程序設計LCD1602命令的執行與否,得先通過判斷忙標志電平高低。高電平意味著忙,命令執行,否否則反之。字符的顯示得先確定字符地址并告知模塊。顯示模塊可與單片機接口直接連接,驅動程序則是按照說明書以及結合單片機的特性來寫。1、單片機端口的配置以及使能端口時鐘。2、忙等待,當RS為低電平R/W為高電平時可以讀取BF的忙信號。設置好RS、R/W后檢查D7腳的電平信息,判斷是否在忙。3、寫入指令或者地址,根據說明書,當RS為高電平R/W為低電平時可以寫入地址,配置好RS、R/W后配置數據端(D0~D7)的數據,然后E點由高電平跳變為低電平,液晶模塊執行指令或者設置地址。4、數據寫入方面,當RS/為高電平R/W為低電平時允許數據寫入。配置好控制端口后,配置數據端(D0~D7)的數據,然后E點由高電平跳變為低電平,液晶模塊顯示數據信息。5、設置顯示地址:在3中有關于設置地址的操作,LCD為16字*2行的顯示器,第一行初始地址是00H,第二行的地址是40H,根據這些寫好地址配置,且要求寫入地址時最高位D7恒定為高電平1。6、初始化命令:16*2顯示,5*7點陣,8位數據口、開顯示,光標關閉、文字不動,地址自動+1、清屏。4.2DH11傳感器模塊程序設計首先單片機發送起始信號后,然后傳感器接收起始信號后會從低功耗模式變成高效率模式,然后起始信號過后,傳感器就會響應,然后發送40位的數據且采集一次信號。反之如果并未接收到信號,則傳感器不會采集溫濕度。主機發送的低電平的啟動信號,DHT從低速模式切換到高速模式。等待主機上拉信號結束,發送40bit數據并開始一次信號采集。當一個節點等待完成時,用戶可以選擇讀取部分數據。注意:總線的卡死狀態時是高水平的,主機下拉總線等待DHT響應。為了使DHT能夠檢測啟動信號,主機下拉總線時間必須超過18毫秒。主機接收到啟動信號后,DHT等待主機完成啟動信號并發送低電平響應信號。等待20-40us延時,讀取DHT響應信號。主機發出啟動信號后,可切換到輸入模式或輸出高壓平均值,總線被上拉電阻拉高。4.3報警模塊程序設計?蜂鳴器作為報警裝置主體。實現原理也比較簡單,傳感器采集回數據與設定值比較,不斷重復,若超過設定值時,單片機控制蜂鳴器報警。4.4閾值模塊程序設計?單片機的四個端口PB5、PB6、PB7、PB8分別接入四個按鍵。配置好單片機的相應端口為上升沿輸入模式后使能時鐘。然后不斷地掃描PB5、PB6、PB7、PB8,如果檢查到其中的一個為低電平,則延時10ms作為按鍵的去抖,如果還是低電平,則表示按鍵確實有按下,返回按鍵的值。第五章系統的調試及分析本設計的程序編寫編譯是在Keil5軟件中完成的,Keil5軟件編程這塊比較簡單易學。在對軟件簡單的學習之后,再結合C語言,就可以開始編程了。編程好了之后就需要對程序進行燒錄,這里使用的是Keil5燒錄軟件,同時采用ST-LinkV2作為燒寫代碼以及仿真的硬件,由于是一體的,所以不管是仿真還是燒寫都非常的方便。此外keil5使用前要對軟件進行一些設置。首先在Optionsfortarget->C/C++->Define中填入兩個重要的匯編指令USE_STDPERIPH_DRIVER,STM32F10X_MD;Optionsfortarget->Debug->use:選擇ST-LinkDebugger;Optionsfortarget->Debug->use選擇Setting->Debug->Port:選擇SW;Optionsfortarget->Debug->use選擇Setting->FlashDownload中勾選ResetandRun。部分操作如下圖圖5-1、圖5-2、圖5-3。圖5-1圖5-2圖5-3程序調試燒錄成功后,實物系統進行測試,連接計算機與開發板,設置各個接口,完成供電和下載。完成上述操作后,連接好相應引腳,打開電源,等待數秒,在顯示器可以看到正常的溫濕度數值顯示,具體觀察當前溫度和濕度的變化檢驗系統正確性。主要通過閾值設定檢驗系統正常工作與否。溫度未超標時通過簡單的摩擦雙手并手捂DH11傳感器成功激發過限溫度報警,通過噴灑水霧激發過限濕度報警。通過檢測,系統實時顯示環境中溫濕度,手動設定閾值與溫濕度過限報警皆如預期實現。
5.1所遇問題及解決辦法本次設計過程總體還算比較順利,具體實現過程中軟件硬件都有些許問題,不過經過查閱資料,請教師友也都順利解決了。
5.1.1硬件問題及解決方法硬件方面所犯的錯誤一是犯了理論認知和實際應用沒有密切結合的錯誤再加上相關的硬件說明書沒有認真閱讀,才導致進度一度停止。(1)問題:閾值設置模塊調試時只有1號按鍵有反應,其他三個按鍵沒有反應。問題分析:回顧設計流程與閱讀相應代碼發現由于按鍵按下只是調用一次掃描函數,但由于實際應用中按下不同的按鍵需要實現不同的功能,使用不能簡單通過按鍵這個變量直接去直接判斷按下了哪個按鍵。解決方案:引入一個新的變量,把按鍵掃描函數返回值賦予之,再通過這個變量結合實際應用判斷具體按下哪個按鍵。當判斷完成后再賦值為零,為下一次按鍵掃描做準備。(2)問題:溫濕度傳感器DH11初始化失敗,不能讀取出數據。問題分析:查閱網上資料,發現傳感器DH11的時序需要非常嚴謹,具體操作時沒那么嚴謹,于是從時序方面著手解決。解決方案:查閱DH11的詳細說明書,按照說明書標準嚴格操作。
5.2.2軟件所遇問題及解決方法整個設計過程時間分配還是著重與軟件方面,確保系統的穩定運行,雖說過程中也沒有遇見特別大的問題,但是對于軟件調試工作,我感覺這是一件挺需要耐性與精力同時還要細心的工作。(1)問題:在新建代碼模板時出現了非常多的錯誤和警告,如圖5-4所示。解決方案:在Optionsfortarget->C/C++->Define中加入預編譯指令USE_STDPERIPH_DRIVER,STM32F10X_MD。圖5-4(2)問題:出現了如圖5-5所示的錯誤。解決方案:應該在main.c包含buzzer.h的頭文件。圖5-5
第六章結論與展望本次課題設計是基于單片機的溫濕度環境監測系統。系統設計以單片機STM32為設計核心模塊,通過傳感器,顯示屏與報警器簡單高效地實現了對當下環境中溫濕度的實時監測與過限報警。簡單的使用流程,低功耗且高效地實時監測使他不單單可以用于家中貯食存物的箱柜或起居空間等居家場景,還可以用于工廠,實驗,溫室大棚等生產環境。不單如此,若能配合上一定的溫濕度控制手段,便可實現在一定范圍內的溫濕度恒定,這應是現代化的生產是十分重要的一環。完成課題設計,不由感慨。小小一個單片機加上傳感器與顯示屏,組成的溫濕度檢測系統便可低成本實時監測環境中的溫濕度數據,且精度與效率大大超過傳統的人力檢測。再次印證科技是第一生產力這一真理。當傳統作業遇到自動化檢測,我們應勇于接受科技發展帶來的有益的新事物。高度集成的溫濕度管理系統必定能在很大幅度上節省人力與物資,從而讓資源更合理的分配,加速發展,形成良性循環發展。參考文獻[1]黃巧章佑.氣象雷達機房溫度短信報警系統的設計與實現[J].科技資訊,2013(16):23-24.
[2]張嵩灝.基于STC89C52單片機的智能家居的設計[J].電子世界,2017(23):2-2.
[3]姜麗飛.溫室中無線環境測控系統的設計[J].江蘇農業科學,2014(04):368-371.
[4]馬惠鋮.實驗室溫濕度控制系統的設計[J].電子測試,2013(09):17-18.
[5]金永波張士金李宗帥費春國.兩輪自平衡小車的設計與實現[J].電子制作,2018(8):3-3.
[6]毛鵬高嫻葉楠沈新峰.精確定點環境信息探測的可移動裝置設計[J].信息技術,2015(09):91-95.
[7]張富春邵婷婷楊延寧.一種基于DHT11的家用自動澆花電路的設計[J].電子測試,2014(16):32-32.
[8]吳珊花盧賢路麗民王宏玉.智能生理監測護腕設計[J].科技信息,2013(07):62-63.
[9]吳小龍吳杰.基于UDP協議的機房溫濕度監控終端設計[J].今日電子,2014(09):39-40.
[10]裴穎娜張湧濤王娜.礦井無線傳感器網絡設計[J].河北聯合大學學報(自然科學版),2013(04):10-14.
[11]丁書亞李百杰石海鋒劉欣寧王穎.基于GSM的物聯網智能大棚的設計[J].電腦知識與技術,2018(25):283-284.
[12]馬蒼穹姜興華李承龍.基于CAN總線的物聯網通訊模塊設計[J].儀器儀表標準化與計量,2018(1):3-3.
[13]陳英俊.基于單片機的溫濕度監測和報警系統設計[J].廣東石油化工學院學報,2013(04):46-50.
[14]裴忠誠耿帥.基于STC89C52溫濕度顯示儀的設計[J].技術與市場,2013(08):21-22.
[15]韓丹翱王菲.DHT11數字式溫濕度傳感器的應用性研究[J].電子設計工程,2013(13):88-90.
致謝本次設計有幸在吳家鑄導師的認真指導下按期完成。從成為我們的畢業指導老師后,老師實時關注著我們設計的每一步。從選題,軟硬件設計,再到論文格式,老師無不細心提點。進度快的同學老師會點名表揚,進度稍慢的同學老師同樣悉心督促。設計或遇到問題向老師詢問時,吳老師的解答總是比較簡短,但卻總是給人豁然開朗的感覺。簡潔明了,干凈利落的處理方式很大幅度提高了我們設計的效率。在此十分感謝吳家鑄導師這段時間的悉心指導。最后感謝廣東東軟學院。感謝每一位教師無私的奉獻與關愛,在你們的悉心培養下我們才能茁壯成長;感謝每一個同學的指教與督促,大學四年我們共同進步;感謝為這個校園付出,在這個校園收獲的每一位,謝謝你們。附錄附錄一設計裝置實物成品如圖1,圖2所示:圖1圖2附錄二主函數代碼#include"delay.h"#include"sys.h"#include"lcd1602.h"#include"dht11.h"#include"Buzzer.h"#include"key.h"u8Tem[9]={'T','e','m',':',0,0,0xdf,'C',0};//只是填兩位數字,多一位是為了存放'\0'防止亂顯示。,0xdf是℃左邊的點,在ASCII碼上有。u8Hum[8]={'H','u','m',':',0,0,'%',0};//DHT11其精度濕度+-5%RH,溫度+-2℃,量程濕度20-90%RH,溫度0~50℃intmain(void){ u8Tip[]="DHT11Initfail"; u8temperature; u8humidity;u8set_temperature=37;//默認溫度值u8set_humidity=80;//默認濕度值u8temp_buff=37;//溫度緩存u8hum_buff=80;u8S=0;u8modle_flag=0;u8key_value=0; delay_init(); NVIC_Configuration(); GPIO_Configuration(); LCD1602_Init();BUZZER_Init();KEY_Init();LED_Init();delay_ms(1000);//根據說明書要求,傳感器上電后,要等待1S以越過不穩定的狀態。while(DHT11_Init()){LCD1602_Show_Str(0,0,Tip);//前兩面個數字分別表示是列和行,也可以理解成橫坐標和縱坐標,從該位置開始顯示;}LCD1602_ClearScreen();//清屏幕。while(1){//modle1為修改溫度警報值//modle2為修改濕度報警值//左加右減//13//24//1加,3減,2選擇模式或者確定,4為取消key_value=KEY_Scan(0);if(modle_flag==0&&key_value==0){DHT11_Read_Data(&temperature,&humidity); //讀取溫濕度值Tem[4]=(temperature/10)+0x30;//除以10是為了取十位,+0x30是為了對應的ASCII.Tem[5]=(temperature%10)+0x30;//取個位Hum[4]=(humidity/10)+0x30;//同上Hum[5]=(humidity%10)+0x30;LCD1602_Show_Str(0,0,Tem);//顯示溫度LCD1602_Show_Str(9,0,Hum);//顯示濕度if(temperature>set_temperature&&humidity>set_humidity){Buzzer_open;delay_ms(1000);LCD1602_Show_Str(5,1,"Note");Buzzer_close;while(S<5){delay_ms(3000);S++;}S=0;//為下一次循環準備,LCD1602_ClearScreen();}}elseif(modle_flag==1&&key_value==0){Tem[4]=(temp_buff/10)+0x30;//除以10是為取十位,+0x30為對應ASCII.Tem[5]=(temp_buff%10)+0x30;//取個位LCD1602_Show_Str(1,0,"Settempalarm");LCD1602_Show_Str(0,1,Tem);}elseif(modle_flag==2&&key_value==0){Hum[4]=(hum_buff/10)+0x30;Hum[5]=(hum_buff%10)+0x30;LCD1602_Show_Str(1,0,"Sethumalarm");LCD1602_Show_Str(9,1,Hum);}elseif(modle_flag==0&&key_value==2){LCD1602_ClearScreen();modle_flag++;key_value=0;}elseif(modle_flag==1&&key_value==1){LCD1602_ClearScreen();temp_buff++;key_value=0;}elseif(modle_flag==1&&key_value==3){LCD1602_ClearScreen();temp_buff--;key_value=0;}elseif(modle_flag==2&&key_value==1){LCD1602_ClearScreen();hum_buff++;key_value=0;}elseif(modle_flag==2&&key_value==3){LCD1602_ClearScreen();hum_buff--;key_value=0;}elseif(modle_flag==1&&key_value==2){set_temperature=temp_buff;modle_flag++;LCD1602_ClearScreen();key_value=0;}elseif(modle_flag==2&&key_value==2){set_humidity=hum_buff;modle_flag=0;LCD1602_ClearScreen();key_value=0;}elseif(key_value==4){temp_buff=set_temperature;hum_buff=set_humidity;LCD1602_ClearScreen();modle_flag=0;key_value=0;}delay_ms(50);}}
ExcelXP的八則快速輸入技巧如果我們在用ExcelXP處理龐大的數據信息時,不注意講究技巧和方法的話,很可能會花費很大的精力。因此如何巧用ExcelXP,來快速輸入信息就成為各個ExcelXP用戶非常關心的話題,筆者向大家介紹幾則這方面的小技巧。1、快速輸入大量含小數點的數字如果我們需要在ExcelXP工作表中輸入大量的帶有小數位的數字時,按照普通的輸入方法,我們可能按照數字原樣大小直接輸入,例如現在要在單元格中輸入0.05這個數字時,我們會把“0.05”原樣輸入到表格中。不過如果需要輸入若干個帶有小數點的數字時,我們再按照上面的方法輸入的話,每次輸入數字時都需要重復輸入小數點,這樣工作量會變大,輸入效率會降低。其實,我們可以使用ExcelXP中的小數點自動定位功能,讓所有數字的小數點自動定位,從而快速提高輸入速度。在使用小數點自動定位功能時,我們可以先在ExcelXP的編輯界面中,用鼠標依次單擊“工具”/“選項”/“編輯”標簽,在彈出的對話框中選中“自動設置小數點”復選框,然后在“位數”微調編輯框中鍵入需要顯示在小數點右面的位數就可以了。以后我們再輸入帶有小數點的數字時,直接輸入數字,而小數點將在回車鍵后自動進行定位。例如,我們要在某單元格中鍵入0.06的話,可以在上面的設置中,讓“位數”選項為2,然后直接在指定單元格中輸入6,回車以后,該單元格的數字自動變為“0.06”,怎么樣簡單吧?2、快速錄入文本文件中的內容現在您手邊假如有一些以純文本格式儲存的文件,如果此時您需要將這些數據制作成ExcelXP的工作表,那該怎么辦呢?重新輸入一遍,大概只有頭腦有毛病的人才會這樣做;將菜單上的數據一個個復制/粘貼到工作表中,也需花很多時間。沒關系!您只要在ExcelXP中巧妙使用其中的文本文件導入功能,就可以大大減輕需要重新輸入或者需要不斷復制、粘貼的巨大工作量了。使用該功能時,您只要在ExcelXP編輯區中,依次用鼠標單擊菜單欄中的“數據/獲取外部數據/導入文本文件”命令,然后在導入文本會話窗口選擇要導入的文本文件,再按下“導入”鈕以后,程序會彈出一個文本導入向導對話框,您只要按照向導的提示進行操作,就可以把以文本格式的數據轉換成工作表的格式了。3、快速輸入大量相同數據如果你希望在不同的單元格中輸入大量相同的數據信息,那么你不必逐個單元格一個一個地輸入,那樣需要花費好長時間,而且還比較容易出錯。你可以通過下面的操作方法在多個相鄰或不相鄰的單元格中快速填充同一個數據,具體方法為:首先同時選中需要填充數據的單元格。若某些單元格不相鄰,可在按住Ctrl鍵的同時,點擊鼠標左鍵,逐個選中;其次輸入要填充的某個數據。按住Ctrl鍵的同時,按回車鍵,則剛才選中的所有單元格同時填入該數據。4、快速進行中英文輸入法切換一張工作表常常會既包含有數字信息,又包含有文字信息,要錄入這樣一種工作表就需要我們不斷地在中英文之間反復切換輸入法,非常麻煩,為了方便操作,我們可以用以下方法實現自動切換:首先用鼠標選中需要輸入中文的單元格區域,然后在輸入法菜單中選擇一個合適的中文輸入法;接著打開“有效數據”對話框,選中“IME模式”標簽,在“模式”框中選擇打開,單擊“確定”按鈕;然后再選中輸入數字的單元格區域,在“有效數據”對話框中,單擊“IME模式”選項卡,在“模式”框中選擇關閉(英文模式);最后單擊“確定”按鈕,這樣用鼠標分別在剛才設定的兩列中選中單元格,五筆和英文輸入方式就可以相互切換了。5、快速刪除工作表中空行刪除ExcelXP工作表中的空行,一般的方法是需要將空行都找出來,然后逐行刪除,但這樣做操作量非常大,很不方便。那么如何才能減輕刪除工作表中空行的工作量呢?您可以使用下面的操作方法來進行刪除:首先打開要刪除空行的工作表,在打開的工作表中用鼠標單擊菜單欄中的“插入”菜單項,并從下拉菜單中選擇“列”,從而插入一新的列X,在X列中順序填入整數;然后根據其他任何一列將表中的行排序,使所有空行都集中到表的底部。刪去所有空行中X列的數據,以X列重新排序,然后刪去X列。按照這樣的刪除方法,無論工作表中包含多少空行,您就可以很快地刪除了。6、快速對不同單元格中字號進行調整在使用ExcelXP編輯文件時,常常需要將某一列的寬度固定,但由于該列各單元格中的字符數目不等,致使有的單元格中的內容不能完全顯示在屏幕上,為了讓這些單元格中的數據都顯示在屏幕上,就不得不對這些單元格重新定義較小的字號。如果依次對這些單元格中的字號調整的話,工作量將會變得很大。其實,您可以采用下面的方法來減輕字號調整的工作量:首先新建或打開一個工作簿,并選中需要ExcelXP根據單元格的寬度調整字號的單元格區域;其次單擊用鼠標依次單擊菜單欄中的“格式”/“單元格”/“對齊”標簽,在“文本控制”下選中“縮小字體填充”復選框,并單擊“確定”按鈕;此后,當你在這些單元格中輸入數據時,如果輸入的數據長度超過了單元格的寬度,ExcelXP能夠自動縮小字符的大小把數據調整到與列寬一致,以使數據全部顯示在單元格中。如果你對這些單元格的列寬進行了更改,則字符可自動增大或縮小字號,以適應新的單元格列寬,但是對這些單元格原設置的字體字號大小則保持不變。7、快速輸入多個重復數據在使用ExcelXP工作表的過程中,我們經常要輸入大量重復的數據,如果依次輸入,無疑工作量是巨大的。現在我們可以借助ExcelXP的“宏”功能,來記錄首次輸入需要重復輸入的數據的命令和過程,然后將這些命令和過程賦值到一個組合鍵或工具欄的按鈕上,當按下組合鍵時,計算機就會重復所記錄的操作。使用宏功能時,我們可以按照以下步驟進行操作:首先打開工作表,在工作表中選中要進行操作的單元格;接著再用鼠標單擊菜單欄中的“工具”菜單項,并從彈出的下拉菜單中選擇“宏”子菜單項,并從隨后彈出的下級菜單中選擇“錄制新宏”命令;設定好宏后,我們就可以對指定的單元格,進行各種操作,程序將自動對所進行的各方面操作記錄復制。8、快速處理多個工作表有時我們需要在ExcelXP中打開多個工作表來進行編輯,但無論打開多少工作表,在某一時刻我們只能對一個工作表進行編輯,編輯好了以后再依次編輯下一個工作表,如果真是這樣操作的話,我們倒沒有這個必要同時打開多個工作表了,因為我們同時打開多個工作表的目的就是要減輕處理多個工作表的工作量的,那么我們該如何實現這樣的操作呢?您可采用以下方法:首先按住“Shift"鍵或“Ctrl"鍵并配以鼠標操作,在工作簿底部選擇多個彼此相鄰或不相鄰的工作表標簽,然后就可以對其實行多方面的批量處理;接著在選中的工作表標簽上按右鍵彈出快捷菜單,進行插入和刪除多個工作表的操作;然后在“文件”菜單中選擇“頁面設置……”,將選中的多個工作表設成相同的頁面模式;再通過“編輯”菜單中的有關選項,在多個工作表范圍內進行查找、替換、定位操作;通過“格式”菜單中的有關選項,將選中的多個工作表的行、列、單元格設成相同的樣式以及進行一次性全部隱藏操作;接著在“工具”菜單中選擇“選項……”,在彈出的菜單中選擇“視窗”和“編輯”按鈕,將選中的工作表設成相同的視窗樣式和單元格編輯屬性;最后選中上述工作表集合中任何一個工作表,并在其上完成我們所需要的表格,則其它工作表在相同的位置也同時生成了格式完全相同的表格。高效辦公Excel排序方法"集中營"排序是數據處理中的經常性工作,Excel排序有序數計算(類似成績統計中的名次)和數據重排兩類。本文以幾個車間的產值和名稱為例,介紹Excel2000/XP的數據排序方法。一、數值排序1.RANK函數RANK函數是Excel計算序數的主要工具,它的語法為:RANK(number,ref,order),其中number為參與計算的數字或含有數字的單元格,ref是對參與計算的數字單元格區域的絕對引用,order是用來說明排序方式的數字(如果order為零或省略,則以降序方式給出結果,反之按升序方式)。例如圖1中E2、E3、E4單元格存放一季度的總產值,計算各車間產值排名的方法是:在F2單元格內輸入公式“=RANK(E2,$E$2:$E$4)”,敲回車即可計算出鑄造車間的產值排名是2。再將F2中的公式復制到剪貼板,選中F3、F4單元格按Ctrl+V,就能計算出其余兩個車間的產值排名為3和1。如果B1單元格中輸入的公式為“=RANK(E2,$E$2:$E$4,1)”,則計算出的序數按升序方式排列,即2、1和3。需要注意的是:相同數值用RANK函數計算得到的序數(名次)相同,但會導致后續數字的序數空缺。假如上例中F2單元格存放的數值與F3相同,則按本法計算出的排名分別是3、3和1(降序時)。2.COUNTIF函數COUNTIF函數可以統計某一區域中符合條件的單元格數目,它的語法為COUNTIF(range,criteria)。其中range為參與統計的單元格區域,criteria是以數字、表達式或文本形式定義的條件。其中數字可以直接寫入,表達式和文本必須加引號。仍以圖1為例,F2單元格內輸入的公式為“=COUNTIF($E$2:$E$4,">"&E2)+1”。計算各車間產值排名的方法同上,結果也完全相同,2、1和3。此公式的計算過程是這樣的:首先根據E2單元格內的數值,在連接符&的作用下產生一個邏輯表達式,即“>176.7”、“>167.3”等。COUNTIF函數計算出引用區域內符合條件的單元格數量,該結果加一即可得到該數值的名次。很顯然,利用上述方法得到的是降序排列的名次,對重復數據計算得到的結果與RANK3.IF函數Excel自身帶有排序功能,可使數據以降序或升序方式重新排列。如果將它與IF函數結合,可以計算出沒有空缺的排名。以圖1中E2、E3、E4單元格的產值排序為例,具體做法是:選中E2單元格,根據排序需要,單擊Excel工具欄中的“降序排序”或“升序排序”按鈕,即可使工作表中的所有數據按要求重新排列。假如數據是按產值由大到小(降序)排列的,而您又想賦予每個車間從1到n(n為自然數)的排名。可以在G2單元格中輸入1,然后在G3單元格中輸入公式“=IF(E3=E2,G3,G3+1)”,只要將公式復制到G4等單元格,就可以計算出其他車間的產值排名。二、文本排序選舉等場合需要按姓氏筆劃為文本排序,Excel提供了比較好的解決辦法。如果您要將圖1數據表按車間名稱的筆劃排序,可以使用以下方法:選中排序關鍵字所在列(或行)的首個單元格(如圖1中的A1),單擊Excel“數據”菜單下的“排序”命令,再單擊其中的“選項”按鈕。選中“排序選項”對話框“方法”下的“筆畫排序”,再根據數據排列方向選擇“按行排序”或“按列排序”,“確定”后回到“排序”對話框(圖2)。如果您的數據帶有標題行(如圖1中的“單位”之類),則應選中“有標題行”(反之不選),然后打開“主要關鍵字”下拉列表,選擇其中的“單位”,選中排序方式(“升序”或“降序”)后“確定”,表中的所有數據就會據此重新排列。此法稍加變通即可用于“第一名”、“第二名”等文本排序,請讀者自行摸索。三、自定義排序如果您要求Excel按照“金工車間”、“鑄造車間”和“維修車間”的特定順序重排工作表數據,前面介紹的幾種方法就無能為力了。這類問題可以用定義排序規則的方法解決:首先單擊Excel“工具”菜單下的“選項”命令,打開“選項”對話框中的“自定義序列”選項卡(圖3)。選中左邊“自定義序列”下的“新序列”,光標就會在右邊的“輸入序列”框內閃動,您就可以輸入“金工車間”、“鑄造車間”等自定義序列了,輸入的每個序列之間要用英文逗號分隔,或者每輸入一個序列就敲回車。如果序列已經存在于工作表中,可以選中序列所在的單元格區域單擊“導入”,這些序列就會被自動加入“輸入序列”框。無論采用以上哪種方法,單擊“添加”按鈕即可將序列放入“自定義序列”中備用(圖3)。使用排序規則排序的具體方法與筆劃排序很相似,只是您要打開“排序選項”對話框中的“自定義排序次序”下拉列表,選中前面定義的排序規則,其他選項保持不動。回到“排序”對話框后根據需要選擇“升序”或“降序”,“確定”后即可完成數據的自定義排序。需要說明的是:顯示在“自定義序列”選項卡中的序列(如一、二、三等),均可按以上方法參與排序,請讀者注意Excel提供的自定義序列類型。談談Excel輸入的技巧在Excel工作表的單元格中,可以使用兩種最基本的數據格式:常數和公式。常數是指文字、數字、日期和時間等數據,還可以包括邏輯值和錯誤值,每種數據都有它特定的格式和輸入方法,為了使用戶對輸入數據有一個明確的認識,有必要來介紹一下在Excel中輸入各種類型數據的方法和技巧。一、輸入文本Excel單元格中的文本包括任何中西文文字或字母以及數字、空格和非數字字符的組合,每個單元格中最多可容納32000個字符數。雖然在Excel中輸入文本和在其它應用程序中沒有什么本質區別,但是還是有一些差異,比如我們在Word、PowerPoint的表格中,當在單元格中輸入文本后,按回車鍵表示一個段落的結束,光標會自動移到本單元格中下一段落的開頭,在Excel的單元格中輸入文本時,按一下回車鍵卻表示結束當前單元格的輸入,光標會自動移到當前單元格的下一個單元格,出現這種情況時,如果你是想在單元格中分行,則必須在單元格中輸入硬回車,即按住Alt鍵的同時按回車鍵。二、輸入分數幾乎在所有的文檔中,分數格式通常用一道斜杠來分界分子與分母,其格式為“分子/分母”,在Excel中日期的輸入方法也是用斜杠來區分年月日的,比如在單元格中輸入“1/2”,按回車鍵則顯示“1月2日”,為了避免將輸入的分數與日期混淆,我們在單元格中輸入分數時,要在分數前輸入“0”(零)以示區別,并且在“0”和分子之間要有一個空格隔開,比如我們在輸入1/2時,則應該輸入“01/2”。如果在單元格中輸入“81/2”,則在單元格中顯示“81/2”,而在編輯欄中顯示“三、輸入負數在單元格中輸入負數時,可在負數前輸入“-”作標識,也可將數字置在()括號內來標識,比如在單元格中輸入“(88)”,按一下回車鍵,則會自動顯示為“-88”。四、輸入小數在輸入小數時,用戶可以向平常一樣使用小數點,還可以利用逗號分隔千位、百萬位等,當輸入帶有逗號的數字時,在編輯欄并不顯示出來,而只在單元格中顯示。當你需要輸入大量帶有固定小數位的數字或帶有固定位數的以“0”字符串結尾的數字時,可以采用下面的方法:選擇“工具”、“選項”命令,打開“選項”對話框,單擊“編輯”標簽,選中“自動設置小數點”復選框,并在“位數”微調框中輸入或選擇要顯示在小數點右面的位數,如果要在輸入比較大的數字后自動添零,可指定一個負數值作為要添加的零的個數,比如要在單元格中輸入“88”后自動添加3個零,變成“88000”,就在“位數”微調框中輸入“-3”,相反,如果要在輸入“88”后自動添加3位小數,變成“0.088”,則要在“位數”微調框中輸入“3”。另外,在完成輸入帶有小數位或結尾零字符串的數字后,應清除對“自動設置小數點”符選框的選定,以免影響后邊的輸入;如果只是要暫時取消在“自動設置小數點”中設置的選項,可以在輸入數據時自帶小數點。五、輸入貨幣值Excel幾乎支持所有的貨幣值,如人民幣(¥)、英鎊(£)等。歐元出臺以后,Excel2000完全支持顯示、輸入和打印歐元貨幣符號。用戶可以很方便地在單元格中輸入各種貨幣值,Excel會自動套用貨幣格式,在單元格中顯示出來,如果用要輸入人民幣符號,可以按住Alt鍵,然后再數字小鍵盤上按“0165”即可。六、輸入日期Excel是將日期和時間視為數字處理的,它能夠識別出大部分用普通表示方法輸入的日期和時間格式。用戶可以用多種格式來輸入一個日期,可以用斜杠“/”或者“-”來分隔日期中的年、月、日部分。比如要輸入“2001年12月1日”,可以在單元各種輸入“2001/12/1”或者“2001-12-1七、輸入時間在Excel中輸入時間時,用戶可以按24小時制輸入,也可以按12小時制輸入,這兩種輸入的表示方法是不同的,比如要輸入下午2時30分38秒,用24小時制輸入格式為:2:30:38,而用12小時制輸入時間格式為:2:30:38p,注意字母“p”和時間之間有一個空格。如果要在單元格中插入當前時間,則按Ctrl+Shift+;鍵。了解Excel公式的錯誤值經常用Excel的朋友可能都會遇到一些莫名奇妙的錯誤值信息:#N/A!、#VALUE!、#DIV/O!等等,出現這些錯誤的原因有很多種,如果公式不能計算正確結果,Excel將顯示一個錯誤值,例如,在需要數字的公式中使用文本、刪除了被公式引用的單元格,或者使用了寬度不足以顯示結果的單元格。以下是幾種常見的錯誤及其解決方法。1.#####!原因:如果單元格所含的數字、日期或時間比單元格寬,或者單元格的日期時間公式產生了一個負值,就會產生#####!錯誤。解決方法:如果單元格所含的數字、日期或時間比單元格寬,可以通過拖動列表之間的寬度來修改列寬。如果使用的是1900年的日期系統,那么Excel中的日期和時間必須為正值,用較早的日期或者時間值減去較晚的日期或者時間值就會導致#####!錯誤。如果公式正確,也可以將單元格的格式改為非日期和時間型來顯示該值。2.#VALUE!當使用錯誤的參數或運算對象類型時,或者當公式自動更正功能不能更正公式時,將產生錯誤值#VALUE!。原因一:在需要數字或邏輯值時輸入了文本,Excel不能將文本轉換為正確的數據類型。解決方法:確認公式或函數所需的運算符或參數正確,并且公式引用的單元格中包含有效的數值。例如:如果單元格A1包含一個數字,單元格A2包含文本"學籍",則公式"=A1+A2"將返回錯誤值#VALUE!。可以用SUM工作表函數將這兩個值相加(SUM函數忽略文本):=SUM(A1:A2)。原因二:將單元格引用、公式或函數作為數組常量輸入。解決方法:確認數組常量不是單元格引用、公式或函數。原因三:賦予需要單一數值的運算符或函數一個數值區域。解決方法:將數值區域改為單一數值。修改數值區域,使其包含公式所在的數據行或列。3.#DIV/O!當公式被零除時,將會產生錯誤值#DIV/O!。原因一:在公式中,除數使用了指向空單元格或包含零值單元格的單元格引用(在Excel中如果運算對象是空白單元格,Excel將此空值當作零值)。解決方法:修改單元格引用,或者在用作除數的單元格中輸入不為零的值。原因二:輸入的公式中包含明顯的除數零,例如:=5/0。解決方法:將零改為非零值。4.#NAME?在公式中使用了Excel不能識別的文本時將產生錯誤值#NAME?。原因一:刪除了公式中使用的名稱,或者使用了不存在的名稱。解決方法:確認使用的名稱確實存在。選擇菜單"插入"|"名稱"|"定義"命令,如果所需名稱沒有被列出,請使用"定義"命令添加相應的名稱。原因二:名稱的拼寫錯誤。解決方法:修改拼寫錯誤的名稱。原因三:在公式中使用標志。解決方法:選擇菜單中"工具"|"選項"命令,打開"選項"對話框,然后單擊"重新計算"標簽,在"工作薄選項"下,選中"接受公式標志"復選框。原因四:在公式中輸入文本時沒有使用雙引號。解決方法:Excel將其解釋為名稱,而不理會用戶準備將其用作文本的想法,將公式中的文本括在雙引號中。例如:下面的公式將一段文本"總計:"和單元格B50中的數值合并在一起:="總計:"&B50原因五:在區域的引用中缺少冒號。解決方法:確認公式中,使用的所有區域引用都使用冒號。例如:SUM(A2:B34)。5.#N/A原因:當在函數或公式中沒有可用數值時,將產生錯誤值#N/A。解決方法:如果工作表中某些單元格暫時沒有數值,請在這些單元格中輸入"#N/A",公式在引用這些單元格時,將不進行數值計算,而是返回#N/A。6.#REF!當單元格引用無效時將產生錯誤值#REF!。原因:刪除了由其他公式引用的單元格,或將移動單元格粘貼到由其他公式引用的單元格中。解決方法:更改公式或者在刪除或粘貼單元格之后,立即單擊"撤消"按鈕,以恢復工作表中的單元格。7.#NUM!當公式或函數中某個數字有問題時將產生錯誤值#NUM!。原因一:在需要數字參數的函數中使用了不能接受的參數。解決方法:確認函數中使用的參數類型正確無誤。原因二:使用了迭代計算的工作表函數,例如:IRR或RATE,并且函數不能產生有效的結果。解決方法:為工作表函數使用不同的初始值。原因三:由公式產生的數字太大或太小,Excel不能表示。解決方法:修改公式,使其結果在有效數字范圍之間。8.#NULL!當試圖為兩個并不相交的區域指定交叉點時將產生錯誤值#NULL!。原因:使用了不正確的區域運算符或不正確的單元格引用。解決方法:如果要引用兩個不相交的區域,請使用聯合運算符逗號(,)。公式要對兩個區域求和,請確認在引用這兩個區域時,使用逗號。如:SUM(A1:A13,D12:D23)。如果沒有使用逗號,Excel將試圖對同時屬于兩個區域的單元格求和,但是由于A1:A13和D12:D23并不相交,所以他們沒有共同的單元格。在Excel中快速查看所有工作表公式只需一次簡單的鍵盤點擊,即可可以顯示出工作表中的所有公式,包括Excel用來存放日期的序列值。要想在顯示單元格值或單元格公式之間來回切換,只需按下CTRL+`(位于TAB鍵上方)。EXCEL2000使用技巧十招1、Excel文件的加密與隱藏如果你不愿意自己的Excel文件被別人查看,那么你可以給它設置密碼保護,采用在保存文件時用加密的方法就可以實現保護目的,在這里要特別注意的是,自己設定的密碼一定要記住,否則自己也將被視為非法入侵者而遭拒絕進入。給文件加密的具體方法為:A、單擊“文件”菜單欄中的“保存或者(另存為)”命令后,在彈出的“保存或者(另存為)”的對話框中輸入文件名;B、再單擊這個對話框中“工具”欄下的“常規選項”按鈕,在彈出的“保存選項”的對話框中輸入自己的密碼;這里要注意,它提供了兩層保護,如果你也設置了修改權限密碼的話,那么即使文件被打開也還需要輸入修改權限的密碼才能修改。C、單擊“確定”按鈕,在彈出的密碼確認窗口中重新輸入一遍密碼,再點擊“確認”,最后點“保存”完成文件的加密工作。當重新打開文件時就要求輸入密碼,如果密碼不正確,文件將不能打開。2、對單元格進行讀寫保護單元格是Excel執行其強大的計算功能最基本的元素,對單元格的讀寫保護是Excel對數據進行安全管理的基礎。對單元格的保護分為寫保護和讀保護兩類,所謂寫保護就是對單元格中輸入信息加以限制,讀保護是對單元格中已經存有信息的瀏覽和查看加以限制。對單元格的寫保護有兩種方法:A、對單元格的輸入信息進行有效性檢測。首先選定要進行有效性檢測的單元格或單元格集合,然后從數據菜單中選擇“有效數據”選項,通過設定有效條件、顯示信息和錯誤警告,控制輸入單元格的信息要符合給定的條件。B、設定單元格的鎖定屬性,以保護存入單元格的內容不能被改寫。可分為以下步驟:(1)選定需要鎖定的單元格或單元格集合;(2)從格式菜單中選擇“單元格”選項;(3)在設置單元格格式的彈出菜單中選擇“保護”標簽,在彈出的窗口中,選中“鎖定”;(4)從工具菜單中選擇“保護”選項,設置保護密碼,即完成了對單元格的鎖定設置。對單元格的讀保護有三種方法:A、通過對單元格顏色的設置進行讀保護。例如:將選定單元格或單元格集合的背景顏色與字體顏色同時設為白色,這樣,從表面看起來單元格中好像是沒有輸入任何內容,用戶無法直接讀出單元格中所存儲的信息。B、用其他畫面覆蓋在需要保護的單元格之上,遮住單元格的本來面目,以達到讀保護目的。例如:使用繪圖工具,畫一不透明矩形覆蓋在單元格之上,從格式菜單中選定矩形的“鎖定”選項,然后保護工作表,以保證矩形不能被隨意移動。這樣,用戶所看到的只是矩形,而看不到單元格中所存儲的內容。C、通過設置單元格的行高和列寬,隱藏選定的單元格,然后保護工作表,使用戶不能直接訪問被隱藏的單元格,從而起到讀保護的作用。3、快速填充相同數據如果你希望在不同的單元格中輸入大量相同的數據信息,那么你不必逐個單元格一個一個地輸入,那樣需要花費好長時間,而且還比較容易出錯。我們可以通過下面的操作方法在多個相鄰或不相鄰的單元格中快速填充同一個數據,具體方法為:A、同時選中需要填充數據的單元格。若某些單元格不相鄰,可在按住Ctrl鍵的同時,點擊鼠標左鍵,逐個選中;B、輸入要填充的某個數據。按住Ctrl鍵的同時,按回車鍵,則剛才選中的所有單元格同時填入該數據。4、使用Excel中的“宏”功能宏的概念,相信使用過WORD的人都會知道,她可以記錄命令和過程,然后將這些命令和過程賦值到一個組合鍵或工具欄的按鈕上,當按下組合鍵時,計算機就會重復所記錄的操作。在實踐工作中,它可以代替經常輸入大量重復而又瑣碎的數據,具體宏的定義方法如下::A、打開工作表,在工作表中選中要進行操作的單元格;B、用鼠標單擊菜單欄中的“工具”菜單項,并從彈出的下拉菜單中選擇“宏”子菜單項,并從隨后彈出的下級菜單中選擇“錄制新宏”命令;C、設定好宏后,我們就可以對指定的單元格,進行各種操作,程序將自動對所進行的各方面操作記錄復制。5、連續兩次選定單元格我們有時需要在某個單元格內連續輸入多個數值,以查看引用此單元格的其他單元格的效果。但每次輸入一個值后按回車鍵,活動單元格均默認下移一個單元格,非常不便。解決此問題的一般做法是通過選擇“工具”\“選項”\“編輯”,取消“按回車鍵后移動”選項的選定來實現在同一單元格內輸入許多數值,但以后你還得將此選項選定,顯得比較麻煩。其實,采用連續兩次選定單元格方法就顯得靈活、方便:單擊鼠標選定單元格,然后按住Ctrl鍵再次單擊鼠標選定此單元格。此時,單元格周圍將出現實線框。6、在工作表之間使用超級連接首先須要在被引用的其他工作表中相應的部分插入書簽,然后在引用工作表中插入超級鏈接,注意在插入超級鏈接時,可以先在“插入超級鏈接”對話框的“鏈接到文件或URL”設置欄中輸入目標工作表的路徑和名稱,再在“文件中有名稱的位置”設置欄中輸入相應的書簽名,也可以通過“瀏覽”方式選擇。完成上述操作之后,一旦使用鼠標左鍵單擊工作表中帶有下劃線的文本的任意位置,即可實現中文Excel2000在自動打開目標工作表并轉到相應的位置處,這一點與WORD的使用很相似。7、快速清除單元格的內容首先用鼠標選定該單元格,然后按住鍵盤上的Delete鍵,此時你會發現你只是刪除了單元格內容,它的格式和批注還保留著。那么如何才能徹底清除單元格呢,請看下面的兩種操作步驟:A、選定想要清除的單元格或單元格范圍;B、選擇“編輯”菜單中的“清除”命令,這時顯示“清除”菜單;C、選擇要清除的命令,可以選擇“全部”、“格式”、“內容”或“批注”中的任一個。8、快速修改單元格次序在實際操作的過程中,我們有時需要快速修改單元格內容的次序。在拖放選定的一個或多個單元格至新的位置的同時,按住Shift鍵可以快速修改單元格內容的次序。具體方法如下:A、首先用鼠標選定單元格,同時按下鍵盤上的Shift鍵;B、接著移動鼠標指針到單元格邊緣,直至出現拖放指針箭頭,然后進行拖放操作。上下拖拉時鼠標在單元格間邊界處會變成一個水平“工”狀標志,左右拖拉時會變成垂直“工”狀標志,釋放鼠標按鈕完成操作后,單元格間的次序即發生了變化。、在Excel中利用公式來設置加權平均加權平均在財務核算和統計工作中經常用到,并不是一項很復雜的計算,關鍵是要理解加權平均值其實就是總量值(如金額)除以總數量得出的單位平均值,而不是簡單的將各個單位值(如單價)平均后得到的那個單位值。在Excel中可設置公式解決(其實就是一個除法算式),分母是各個量值之和,分子是相應的各個數量之和,它的結果就是這些量值的加權平均值。10、用Excel繪制函數圖像函數圖像能直觀地反映函數的性質,用手工方法來繪制函數圖像效果不太好,而用Excel繪制函數圖像非常簡便,所作圖像非常標準、漂亮,具體方法如下:A、首先打開電子表格的操作窗口,然后用鼠標選擇菜單欄中的“新建”命令,這時屏幕上會出現一個空白的電子表格;B、然后在A列的A1格輸入“X=”,表明這是自變量,再在A列的A2及以后的格內逐次從小到大輸入自變量的各個值;實際輸入的時候,通常應用等差數列輸入法,先輸入前三個值,定出自變量中數與數的距離,然后點擊A2格,按住鼠標拖到A4格選中這三項,使這三項變成一個黑色矩形,再用鼠標指向這黑色矩形的右下角的小方塊,當光標變成“+”后,按住鼠標拖動光標到適當的位置,就完成自變量的輸入;C、接著在B列的B1格輸入函數式y=f(x)的一般函數表達式,如y=1/x;也可在點擊工具欄上的函數圖標“fx”后,在出現的不同函數列表的選項中選擇需要的一種;輸入結束后,點擊函數輸入對話框旁的勾號,B2格內馬上得出了計算的結果。這時,再選中B2格,讓光標指向B2矩形右下角的方框,當光標變成“+”時按住光標沿B列拖動到適當的位置即完成函數值的計算。注意一定要把該函數中自變量x的位置輸入前面A列自變量的絕對位置A2格,這樣下面計算的時候才會對不同的自變量進行計算;D、最后點擊工具欄上的“圖表向導”圖標,在出現的各種圖表格式圖標中選擇“X,Y散點圖”,然后在出現的“X,Y散點圖”類型中選擇“無數據點平滑線散點圖”;這時,可按住鼠標察看即將繪好的函數圖像。另外,對于自變量僅為正值的函數,也可用“圖表向導”中的“折線圖”格式繪制。在Excel中自動推測出生年月日及性別的技巧大家都知道,身份證號碼已經包含了每個人的出生年月日及性別等方面的信息(對于老式的15位身份證而言,7-12位即個人的出生年月日,而最后一位奇數或偶數則分別表示男性或女性。如某人的身份證號碼為420400700101001,它的7-12位為700101,這就表示該人是1970年元月1日出生的,身份證的最后一位為奇數1,這就表示該人為男性;對于新式的18位身份證而言,7-14位代表個人的出身年月日,而倒數第二位的奇數或偶數則分別表示男性或女性)。根據身份證號碼的這些排列規律,結合Excel的有關函數,我們就能實現利用身份證號碼自動輸入出生年月日及性別等信息的目的,減輕日常輸入的工作量。Excel中提供了一個名為MID的函數,其作用就是返回文本串中從指定位置開始特定數目的字符,該數目由用戶指定(另有一個名為MIDB的函數,其作用與MID完全一樣,不過MID僅適用于單字節文字,而MIDB函數則可用于漢字等雙字節字符),利用該功能我們就能從身份證號碼中分別取出個人的出生年份、月份及日期,然后再加以適當的合并處理即可得出個人的出生年月日信息。提示:MID函數的格式為MID(text,start_num,num_chars)或MIDB(text,start_num,num_bytes),其中Text是包含要提取字符的文本串;Start_num是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論