




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于AT89C51單片機溫濕度顯示報警系統設計1引言1.1選題背景20世紀末,電子技術獲得了飛速的發展,在其推動下,現代電子產品幾乎滲透了社會的各個領域,有力地推動了社會生產力的發展和社會信息化程度的提高,同時也使現代電子產品性能進一步提高,產品更新換代的節奏也越來越快[1]。目前,單片機正朝著高性能和多品種方向發展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內裝化等幾個方面發展。下面是單片機的主要發展趨勢[2]。單片機應用的重要意義還在于,它從根本上改變了傳統的控制系統設計思想和設計方法[3]。從前必須由模擬電路或數字電路實現的大部分功能,現在已能用單片機通過軟件方法來實現了。這種軟件代替硬件的控制技術也稱為微控制技術,是傳統控制技術的一次革命[4]。單片機模塊中最常見之一的是傳感器,溫濕度顯示報警系統是一種基于單片機的用數字電路技術實現溫濕度控制的裝置,在實踐社會生產當中擁有廣泛的應用。1.2目的和意義隨著社會的發展,人們對時間和環境中的溫度及濕度的要求越來越高,尤其在日常的生活中和人們的生活和健康有著緊密的聯系,特別是當人們乘坐公共交通工具時,溫濕度以及實時時間和人們的出行都有著密切的聯系。溫濕度控制在日常生活中使用比較普遍,如各種儀器控制箱、溫室或生產車間的溫度濕度控制、空調列車車廂空氣環境的控制等[5]。常見的低端產品多采用機械指針式或水銀柱式溫濕度計,體積小、質量輕、價格低、安裝簡便。但是,此類產品測量精度低,沒有LED顯示屏,不能向智能化方向發展,不利于進行功能擴展,如不能自動報警[6]。目前,雖然在工業生產中和科研實驗中通過對溫濕度測量來進行自動控制的設備越來越普及,應用場合也越來越多。但是,隨之而來的問題是如何能夠測得精確的溫濕度以保證自動控制設備能夠正確地發出控制指令來控制生產過程。另一方面,如果溫度或者濕度過高過低可能會對一些設備中的一些半導體元器件造成損壞[7]。因此,對于自動溫濕度報警的需求也在逐漸增加。本文基于以上方面的考慮,研究并設計了一種基于單片機的自動溫濕度顯示與報警系統。一般溫濕度控制系統中的溫濕度測量均采用熱敏電阻與濕敏電容,這種傳統的模擬式溫濕度傳感器一般都需要設計信號調理電路并經過復雜的校準和標定過程,因此測量精度難以保證,且在線性度、重復性、互換性等方面也存在一定問題[8]。這種傳感器只適合那些測量點數較少,對精度要求不高的場合。因此設計出一款基于單片機的精度高、穩定性好、成本低的溫濕度顯示報警系統具有重要實際意義。1.3技術要求和設計范圍現代社會越來越多的實驗都要求在嚴格的環境條件下完成,而溫度和濕度是實驗室最基本的環境條件,也是對實驗影響較大的因素。一般溫濕度控制系統中的溫濕度測量均采用熱敏電阻與濕敏電容[9],這種傳統的模擬式溫濕度傳感器一般都需要設計信號調理電路并經過復雜的校準和標定過程,因此測量精度難以保證,且在線性度、重復性、互換性等方面也存在一定問題。這種傳感器只適合那些測量點數較少,對精度要求不高的場合。因此設計出一款精度高、穩定性好、成本低的溫濕度檢測控制系統將具有一定的市場。本系統采用具有高精度[10]、防干擾等優點的數字式傳感器SHT11,不需要外部元件,可適配各種單片機。這為開發新一代的溫濕度測控系統提供了有利條件,同時也有助于將溫濕度測控技術提高到新的水平。1.4發展現狀單片機誕生于20世紀70年代末,經歷了SCM、MCU、SOC三大階段[11]。(1)SCM即單片微型計算機階段,主要是尋求最佳的單片形態嵌入式系統的最佳體系結構。“創新模式”獲得成功,奠定了SCM與通用計算機完全不同的發展道路。(2)MCU即微控制器階段[12],主要的技術發展方向是:不斷擴展滿足嵌入式應用時,對象系統要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。(3)單片機是嵌入式系統的獨立發展之路,向MCU階段發展的重要因素[13],就是尋求應用系統在芯片上的最大化解決;因此,專用單片機的發展自然形成了SOC化趨勢。隨著微電子技術、IC設計、EDA工具的發展[14],基于SOC的單片機應用系統設計會有較大的發展。智能溫度傳感器在20世紀90年代中期問世。它是微電子技術、計算機技術和自動測試技術的結晶。目前,國際上已開發出多種智能溫度傳感器系列產品。智能溫度傳感器內部包含溫度傳感器、A/D傳感器[15]、信號處理器、存儲器和接口電路。有的產品還帶多路選擇器、中央控制器、隨機存取存儲和只讀存儲器。智能溫度傳感器能輸出溫度數據及相關的溫度控制量,適配各種微控制器,并且可通過軟件來實現測試功能,溫度計也越來越智能化。跟電子溫度計一樣濕度計隨著濕度傳感器的發展趨于成熟。隨著智能檢測系統的飛速發展,基于單片機的溫濕度檢測系統將多傳感器系統結合在一起。如何把多傳感器集中于一個檢測控制系統,綜合利用來自多傳感器的信息,獲得對被測對象的可靠了解和解釋,以利于系統做出正確的響應、決策和控制以及報警,是智能檢測控制統中需要解決的重要問題。2方案論證2.1方案設計思路溫濕度報警系統的設計以單片機AT89C51為核心,通過控制單片機的P1口的一些端口來調節當前溫濕度的顯示,完成了溫濕度的顯示報警功能,在程序中設置溫濕度范圍后,達到指定范圍后讓LED燈的閃亮來實現溫濕度控制的效果,讓LED1602液晶屏接到單片機的串口上,賦值來控制1602的顯示。因此,整個方案設計包含四個部分,即:單片機最小系統部分、顯示部分、溫濕度數據采集部分、報警部分。2.2方案選擇方案:單片機編程,用單片機設計電路,充分利用好AT89C51單片機的I/O口,使用軟硬件結合的方式,具體的基本框圖如圖[16]1所示:單片機單片機AT89S51溫濕度傳感器被測對象顯示部分報警部分圖1單片機設計電路的基本框圖方案選擇:從上述原理圖看來,這種設計方案電路結構簡單,條理清晰,調試也相對方便,易于實現。2.3設計流程對于溫濕度顯示報警系統的設計,先用PROTEUS做電路仿真,再在KEIL軟件中編寫程序生成源代碼,最后將PROTEUS和KEIL連接起來進行在線仿真。設計流程如圖[17]2所示。ProteusProteus電路設計源程序設計生成目標代碼基于proteus仿真 圖2系統設計流程圖2.4軟件環境2.4.1PROTEUS軟件本設計主要用Proteus7.5電子設計軟件進行電子線路的設計和仿真。Proteus軟件的功能很強大,它不僅可以在線仿真模擬電子,數字電子和單片機,還可以將設計直接轉換成PCB版圖[18],因此,受到眾多電子工程師的喜愛。電路原理圖的設計是仿真中的第一步,也是非常重要的一步。電路原理圖設計得好壞將直接影響到后面的工作。首先,原理圖的正確性是最基本的要求,因為在一個錯誤的基礎上所進行的工作是沒有意義的;其次,原理圖應該布局合理,這樣不僅可以盡量避免出錯,也便于讀圖、便于查找和糾正錯誤;最后,在滿足正確性和布局合理的前提下應力求原理圖的美觀。電路原理圖的設計過程可分為以下幾個步驟:(1)置電路圖紙參數及相關信息根據電路圖的復雜程度設置圖紙的格式、尺寸、方向等參數以及與設計有關的信息,為以后的設計工作建立一個合適的工作平面。(2)裝入所需要的元件將所需的元件裝入設計系統中,以便從中查找和選定所需的元器件。(3)設置元件將選定的元件放置到已建立好的工作平面上,并對元件在工作平面上的位置進行調整,對元件的序號、參數、顯示狀態等進行定義和設置,以便為下一步的仿真工作打好基礎。(4)連線電路圖利用Proteus所提供的各種工具、命令進行畫圖工作,將事先放置好的元器件用具有電氣意義的導線、網絡標號等連接起來,布線結束后,一張完整的電路原理圖基本完成。(5)調整、檢查和修改利用Proteus所提供的各種工具對前面所繪制的原理圖做進一步的調整和修改。(6)補充完善對原理圖做一些相應的說明、標注和修飾,增加可讀性和可觀性。(7)仿真這部分工作主要是對設計完成的原理圖結合KEIL在線仿真,調試并修改程序。2.4.2KeilC51軟件KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用C來開發,體會更加深刻。KeilC51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。單片機開發中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種Keil軟件圖標是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變為機器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷發展,Keil軟件是目前最流行開發MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。下面詳細介紹KeilC51開發系統各部分功能和使用。(1)KeilC51單片機軟件開發系統的整體結構:C51工具包的整體結構,其中uVision與Ishell分別是C51forWindows和forDos的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。(2)使用獨立的Keil仿真器時,注意事項:仿真器標配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。仿真器上的復位按鈕只復位仿真芯片,不復位目標系統。仿真芯片的31腳(/EA)已接至高電平,所以仿真時只能使用片內ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴展有外部ROM(其CPU的/EA引腳接至低電平)的目標系統中使用。3過程論述3.1AT89C51單片機最小系統3.1.1AT89C51單片機最小系統原理圖最小系統包括晶體振蕩電路、復位開關和電源部分[19]。下面圖3為AT89C51單片機的最小系統電路圖。圖3單片機最小系統電路圖3.1.2電源引腳Vcc40電源端GND20接地端工作電壓為5V,另有AT89LV51工作電壓則是2.7-6V,引腳功能一樣。3.1.3外接晶體引腳XTAL119XTAL218圖4晶振連接的內部、外部方式圖晶振連接的內部、外部方式如上圖4所示。XTAL1是片內振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應直接加到XTAL1,而XTAL2懸空。內部方式時,時鐘發生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內選擇。電容取30PF左右。系統的時鐘電路設計是采用的內部方式,即利用芯片內部的振蕩電路。AT89單片機內部有一個用于構成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧振器一起構成一個自激振蕩器。外接晶體諧振器以及電容C1和C2構成并聯諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩定性、起振的快速性和溫度的穩定性。因此,此系統電路的晶體振蕩器的值為12MHz,電容應盡可能的選擇陶瓷電容,電容值約為22μF。在焊接刷電路板時,晶體振蕩器和電容應盡可能安裝得與單片機芯片靠近,以減少寄生電容,更好地保證震蕩器穩定和可靠地工作。3.1.4復位RST9在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現在此引腿時,將使單片機復位,只要這個腳保持高電平,51芯片便循環復位。復位后P0-P3口均置1引腳表現為高電平,程序計數器和特殊功能寄存器SFR全部清零。當復位腳由高電平變為低電平時,芯片為ROM的00H處開始運行程序。復位是由外部的復位電路來實現的。片內復位電路是復位引腳RST通過一個斯密特觸發器與復位電路相連,斯密特觸發器用來抑制噪聲,它的輸出在每個機器周期的S5P2,由復位電路采樣一次。復位電路通常采用上電自動復位和按鈕復位兩種方式,此電路系統采用的是上電與按鈕復位電路。當時鐘頻率選用6MHz時,C取22μF,Rs約為200Ω,Rk約為1K。復位操作不會對內部RAM有所影響。常用的復位電路如下圖6所示:圖5常用復位電路圖3.1.5輸入輸出引腳(1)P0端口[P0.0-P0.7]P0是一個8位漏極開路型雙向I/O端口,端口置1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅動8個TTL。對內部Flash程序存儲器編程時,接收指令字節;校驗程序時輸出指令字節,要求外接上拉電阻。在訪問外部程序和外部數據存儲器時,P0口是分時轉換的地址(低8位)/數據總線,訪問期間內部的上拉電阻起作用。(2)P1端口[P1.0-P1.7]P1是一個帶有內部上拉電阻的8位雙向I/0端口。輸出時可驅動4個TTL。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接收低8位地址信息。(3)P2端口[P2.0-P2.7]P2是一個帶有內部上拉電阻的8位雙向I/0端口。輸出時可驅動4個TTL。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數據存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數據存儲器時其引腳上的內容在此期間不會改變。(4)P3端口[P3.0-P3.7]P2是一個帶有內部上拉電阻的8位雙向I/0端口。輸出時可驅動4個TTL。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接控制信息。除此之外P3端口還用于一些專門功能,具體如下表1。表1P3端口引腳兼用功能表P3引腳兼用功能P3.0串行通訊輸入(RXD)P3.1串行通訊輸出(TXD)P3.2外部中斷0(INT0)P3.3外部中斷1(INT1)P3.4定時器0輸入(T0)P3.5定時器1輸入(T1)P3.6外部數據存儲器寫選通WRP3.7外部數據存儲器寫選通RD3.2LCD1602顯示系統3.2.1LCD1602顯示系統液晶顯示器普遍地用于直觀地顯示數字系統或字符的運行狀態和工作數據,按照材料及產品工藝[20],單片機應用系統中常用的顯示器有:發光二極管LED顯示器、液晶LCD顯示器、CRT顯示器等。LCD顯示器是現在最常用的顯示器之一,其仿真電路圖如下所示。圖6LED1602顯示器的符號3.2.2液晶顯示器簡介(1)在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產品的通過器件,如在計算器、萬用表、電子表及很多家用電子產品中都可以看到,顯示的主要是數字、專用符號和圖形。在單片機的人機交流界面中,一般的輸出方式有以下幾種:發光管、LED數碼管、液晶顯示器。發光管和LED數碼管比較常用,軟硬件都比較簡單,在前面章節已經介紹過,在此不作介紹,本章重點介紹字符型液晶顯示器的應用。在單片機系統中應用晶液顯示器有以下幾個優點:顯示質量高——由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質高且不會閃爍。數字式接口——液晶顯示器都是數字式的,和單片機系統的接口更加簡單可靠,操作更加方便。體積小、重量輕——液晶顯示器通過顯示屏上的電極控制液晶分子狀態來達到顯示的目的,在重量上比相同顯示面積的傳統顯示器要輕得多。功耗低——相對而言,液晶顯示器的功耗主要消耗在其內部的電極和驅動IC上,因而耗電量比其它顯示器要少得多。(2)液晶顯示原理:液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規模集成電路直接驅動、易于實現全彩色顯示的特點,目前已經被廣泛應用在便攜式電腦、數字攝像機、PDA移動通信工具等眾多領域。(3)液晶顯示器的分類:液晶顯示的分類方法有很多種,通常可按其顯示方式分為段式、字符式、點陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據驅動方式來分,可以分為靜態驅動(Static)、單純矩陣驅動(SimpleMatrix)和主動矩陣驅動(ActiveMatrix)三種。(4)一般1602字符型液晶顯示器實物如圖所示[21]:圖7型液晶顯示器實物圖3.2.3LCD1602引腳功能說明1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口,編號符號引腳說明如下所示:第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度。第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。第7~14腳:D0~D7為8位雙向數據線。第15腳:背光源正極。第16腳:背光源負極。3.2.4LCD1602的指令說明及時序1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設置I/D:光標移動方向,高電平右移,低電平左移S:屏上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示C:控制光標的開與關,高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發生器RAM地址設置。指令8:DDRAM地址設置。指令9:讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。指令10:寫數據。指令11:讀數據。1602液晶模塊內部的控制器共有11條控制指令,如表2所示。表21602液晶模塊內部的控制器的11條控制指令序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關控制0000001DCB5光標或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發生存貯器地址0001字符發生存貯器地址8置數據存貯器地址001顯示數據存貯器地址9讀忙標志或地址01BF計數器地址10寫數到CGRAM或DDRAM)10要寫的數據內容11從CGRAM或DDRAM讀數11讀出的數據內容基本操作時序表與讀寫操作時序如表3和圖8,9所示。表3基本操作時序表讀狀態輸入RS=L,R/W=H,E=H輸出D0—D7=狀態字寫指令輸入RS=L,R/W=L,D0—D7=指令碼,E=高脈沖輸出無讀數據輸入RS=H,R/W=H,E=H輸出D0—D7=數據寫數據輸入RS=H,R/W=L,D0—D7=數據,E=高脈沖輸出無圖8讀操作時序圖9寫操作時序3.2.5程序流程圖(詳細程序見附錄)顯示第二顯示第二行內容開始LCD初始化設第一行顯示位置設第二行顯示位置延時顯示第一行內容 圖10程序流程圖3.3SHT10傳感器3.3.1溫濕度傳感器電路圖圖11溫濕度傳感器電路圖3.3.2產品簡介SHT10屬于Sensirion溫濕度傳感器家族中的貼片封裝系列[22]。傳感器將傳感元件和信號處理電路集成在一塊微型電路板上,輸出完全標定的數字信號。傳感器包括一個電容性聚合體測濕敏感元件、一個用能隙材料制成的測溫元件,并在同一芯片上,與14位的A/D轉換器以及串行接口電路實現無縫連接。因此,該產品具有品質卓越、響應迅速、抗干擾能力強、性價比高等優點。傳感器芯片此說明書適用于SHT1x-V4。SHT1x-V4是第四代硅傳感芯片,除了濕度、溫度敏感元件以外,還包括一個放大器,A/D轉換器,OTP內存和數字接口。材質傳感器的核心為CMOS芯片,外圍材料頂層采用環氧LCP,底層為FR4。傳感器符合ROHS和WEEE標準,因此不含Pb,Cd,Hg,Cr(6+),PBB,PBDE。3.3.3SHT10引腳圖12SHT10引腳圖(1)電源引腳VDD、GNDSHT10的供電電壓范圍為2.4-5.5V,建議供電電壓為3.3V。在電源引腳(VDD,GND)之間須加一個100nF的電容,用以去耦濾波。SHT10的串行接口,在傳感器信號的讀取及電源損耗方面,都做了優化處理;傳感器不能按照I2C協議編址,但是,如果I2C總線上沒有掛接別的元件,傳感器可以連接到I2C總線上,但單片機必須按照傳感器的協議工作。(2)串行時鐘輸入SCKSCK用于微處理器與SHT10之間的通訊同步。由于接口包含了完全靜態邏輯,因而不存在最小SCK頻率。(3)串行數據DATADATA引腳為三態結構,用于讀取傳感器數據.當向傳感器發送命令時,DATA在SCK上升沿有效且在SCK高電平時必須保持穩定。DATA在SCK下降沿之后改變。為確保通訊安全,DATA的有效時間在SCK上升沿之前和下降沿之后應該分別延長至TSUandTHO–參見圖11。當從傳感器讀取數據時,DATATV在SCK變低以后有效,且維持到下一個SCK的下降沿。為避免信號沖突,微處理器應驅動DATA在低電平。需要一個外部的上拉電阻(例如:10kΩ)將信號提拉至高電平。上拉電阻通常已包含在微處理器的I/O電路中加重的DATA線由傳感器控制,普通的DATA線由單片機控制.有效時間依據SCK的時序.圖13時序圖圖14啟動傳輸時序圖后續命令包含三個地址位(目前只支持000”),和五個命令位。SHT1x會以下述方式表示已正確地接收到指令:在第8個SCK時鐘的下降沿之后,將DATA下拉為低電平(ACK位)。在第9個SCK時鐘的下降沿之后,釋放DATA(恢復高電平)。3.3.4傳感器的通訊(1)啟動傳感器首先,選擇供電電壓后將傳感器通電,上電速率不能低于1V/ms。通傳感器需要11ms進入休眠狀態,在此之前不允許對傳感器發送任何命令。(2)發送命令用一組“啟動傳輸”時序,來完成數據傳輸的初始化。它包括:當SCK時鐘高電平時DATA翻轉為低電平,緊接著SCK變為低電平,隨后是在SCK時鐘高電平時DATA翻轉為高電平。參見圖12。"啟動傳輸"時序后續命令包含三個地址位(目前只支持000”),和五個命令位。SHT1x會以下述方式表示已正確地接收到指令:在第8個SCK時鐘的下降沿之后,將DATA下拉為低電平(ACK位)。在第9個SCK時鐘的下降沿之后,釋放DATA(恢復高電平)。命令代碼預留0000x溫度測量00011濕度測量00101讀狀態寄存器00111寫狀態寄存器00110預留0101x-1110x軟復位,接口復位,狀態寄存器復位即恢復為默認狀態.在要發送下一個命令前,至少等待11ms.(3)溫濕度測量[23]發布一組測量命令(‘00000101’表示相對濕度RH,‘00000011’表示溫度T)后,控制器要等待測量結束。這個過程需要大約20/80/320ms,分別對應8/12/14bit測量。確切的時間隨內部晶振速度,最多可能有-30%的變化。SHT1x通過下拉DATA至低電平并進入空閑模式,表示測量的結束。控制器在再次觸發SCK時鐘前,必須等待這個“數據備妥”信號來讀出數據。檢測數據可以先被存儲,這樣控制器可以繼續執行其它任務在需要時再讀出數據。接著傳輸2個字節的測量數據和1個字節的CRC奇偶校驗(可選擇讀取)。uC需要通過下拉DATA為低電平,以確認每個字節。所有的數據從MSB開始,右值有效(例如:對于12bit數據,從第5個SCK時鐘起算作MSB;而對于8bit數據,首字節則無意義)。在收到CRC的確認位之后,表明通訊結束。如果不使用CRC-8校驗,控制器可以在測量值LSB后,通過保在測量和通訊結束后,SHT1x自動轉休眠模式。(4)通訊復位時序如果與SHT1x通訊中斷,可通過下列信號時序復位:當DATA保持高電平時,觸發SCK時鐘9次或更多,參閱圖13。接著發送一個“傳輸啟動”時序。這些時序只復位串口,狀態寄存器內容仍然保留。圖15復位時序(5)CRC-8Checksum計算數據傳輸的可靠性由CRC-8的校驗來保證.它確保可以檢測并去除所有錯誤數據。狀態寄存器SHT1x的某些高級功能可以通過給狀態寄存器發送指令來實現,如選擇測量分辨率,電量不足提醒或啟動加熱功能等。在讀狀態寄存器或寫狀態寄存器之后,8位狀態寄存器的內容將被讀出或寫入,如圖所示。圖168位狀態寄存器的內容3.3.5信號轉換(1)相對濕度濕度的非線性補償請參閱下圖,為獲得精確的測量數據,建議用以下公式進行信號轉換。linear12RH3RHRH=c+c?SO+c?SO(%RH)圖17從SORH到相對濕度的轉化(2)濕度信號的溫度補償由于實際溫度與測試參考溫度25℃(~77℉)的顯著不同,濕度信號需要溫度補償。溫度校正粗略對應于0.12%RH/℃@50%RH。trueC12RHlinearRH=T?25?t+t?SO+RH°溫度由能隙材料PTAT(正比于絕對溫度)研發的溫度傳感器具有極好的線性。可用如下公式將數字輸出(SOT)轉換為溫度值,溫度轉換系數如下圖所示。12TT=d+d?SO圖18溫度轉換系數1(3)露點SHT1x并不直接進行露點測量,,但露點可以通過溫度和濕度讀數計算得到.。由于溫度和濕度在同一塊集成電路上測量,SHT1x可測量露點。露點的計算方法很多,絕大多數都很復雜。對于-40–50°C溫度范圍的測量,通過下面的的公式可得到較好的精度,參數見下圖所示。圖19露點(Td)計算參數3.3.6環境穩定性如果傳感器用于裝備或機械中,要確保用于測量的傳感器與用于參考的傳感器感知的是同一條件的溫度和濕度。如果傳感器被放置于裝備中,反應時間會延長,因此在程序設計中要保證預留足夠的測量時間。傳感器在其它測試條件下的性能,我們不予保證,尤其是在用戶需要的特定場合。報警輸出是否異常?報警輸出是否異常?是溫濕度判斷開始溫濕度采集溫濕度轉換數據處理否 圖20傳感器原理流程圖3.4報警系統3.4.1報警電路圖當啟動仿真程序時,用手調節傳感器上的按鍵時,可以調節溫度與濕度的數據轉換和相應的溫濕度顯示數據的遞增或遞減。(詳細編寫程序見附錄)圖21報警電路圖4仿真與調試4.1實驗目的與原理在此介紹一下我設計溫濕度控制系統的工作原理:論文目標:溫度范圍18-27度,濕度40%-70%。超范圍報警具體要求:(1)傳感器采用SHT10集成傳感器(2)LED溫濕度顯示,精確到一位小數(3)超范圍發光二極管報警第一步:實現將sht10中的數據讀入到單片機中然后顯示到1602上第二步:調節sht10上的數據為n,若n在溫度18-27范圍內則正常顯示到1602上,若超出范圍則報警,二極管點亮(紅);同理,若n在濕度40%-70%范圍內則正常顯示到1602上,若超出范圍則報警,二極管點亮(綠).4.2仿真原理圖用PROTUES軟件,根據要求畫出溫濕度顯示報警系統的的原理圖如下圖圖22溫濕度顯示報警系統的的原理圖4.3系統仿真以及顯示結果用protues和keil軟件聯調,運行期間仿真軟件調試程序結果如圖23所示,當調節傳感器使濕度在87%時,1602顯示濕度為91.88%,中間產生了部分誤差,在誤差允許范圍之內,濕度超出設置范圍,紅燈亮,開始報警,運行結果如圖24,25,26所示;當調節傳感器使溫度在29度時,1602顯示溫度為28.84度,中間產生了部分誤差,在誤差允許范圍之內,溫度超出設置范圍,綠燈亮,開始報警,運行結果如圖24,25,26所示;圖23仿真運行結果圖圖24SHT10運行結果圖圖25報警運行結果圖圖26LCD1602運行結果圖4.4結果分析及測試總結采用PROTEUS進行單片機仿真,可以大大縮短單片機的開發周期。它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。本系統很好的完成了本次畢業設計的各項任務和要求,通過溫濕度顯示報警系統程序,成功的完成了溫濕度采集功能、顯示功能、報警功能。通過控制P1.0、P1.1、P1.2來調節當前溫濕度數據的顯示,很好的完成了顯示功能。設置溫濕報警范圍后,LED燈也能很好的體現報警的效果,在超出設置的正常顯示范圍后,LED燈亮,很好的體現了報警功能。連接電路圖后,通過編譯程序來控制液晶顯示屏的顯示,通過仿真結果也很好的體現了其顯示功能。5結束語本文的溫濕度顯示報警系統設計是以單片機(AT89C51)為核心,SHT10溫濕度感應器等部分組成。具體介紹KeilC51軟件調試程序和Proteus的ISIS軟件進行單片機系統的設計與仿真。在這次設計中,我完成了核心控制部分、顯示部分、報警部分等基本功能。通過這次設計單片機有了一個更深的認識,對于LCD1602以及SHT10的使用過程有了一定的掌握,同時對KeilC51軟件和Proteus軟件有了更熟練的操作。本文設計到的內容還不是很完善,我會在以后的學習和工作中會做進一步的學習和探索,以取得更大的進步。但是通過這次畢業設計,我也學到了很多東西,感覺自己應用基礎知識及專業知識解決問題的能力有了很大的提高。總之,這次畢業設計收獲還是蠻大的。參考文獻[1]李洪超.基于AT89C51的溫度控制系統設計[J].微計算機信息(嵌入式與SOC),2010.8,26(12-2):87~88[2]周樂安.基于MSP430單片機溫濕度控制器[J].四川兵工時報,2008.8,29(2):113~114[3]楊學存,侯媛彬.基于MSP430單片機溫濕度控制器的實現[J].煤礦機械,2005.6,(9),64~65[4]鐘曉偉,宋蟄存.基于單片機的實驗室溫濕度控制系統設計[J].林業機械與木工設備2010.8,38(1):39~42[5]劉攀,俞杰,張海明.基于單片機的溫度測控系統[J].蘭州交通大學學報(自然科學版),2005.9,24(6):103~106[6]朱魏峰.基于單片機的溫度監控系統[J].工業控制計算機,2011.6,24(10):91~92[7]張為.基于單片機的溫濕度測量系統設[J].陰山學刊,2010.6,24(3):26~29[8]張妮,段文強,邵婷婷.基于單片機的溫濕度監控系統設計[J].延安大學學(自然科學版),2010.5,29(2):50~52[9]劉翔.基于單片機的自動溫度測量報警系統設計[J].電子設計工程,2011.8,19(1):125~127[10]章昕,黃秋,湯彬,方方.智能溫度報警系統的研制[J].自動化技術與應用,2009.4,28(7):103~105[11]鄭冬強,萬琰,張平川.基于uC/OS-II的溫濕度測控系統設計與實現[J].微計算機信息(嵌入式與SOC),2009.5,25(1-2):68~69[12]方言,王曉明.一種智能溫濕度控制器的設計[J].智能儀器儀表,2006(10):66~67[13]余澤輝,伍建軍,陳潔.基于單片機的數字溫度計的研究與設計[J].黑龍江工程學院學報(自然科學版),2007.6,(12):15~16[14]羅興垅,黃隆盛.基于AT89C51控制的0.01℃數顯溫度計的設計[J].微計算機信息,2006.3,22(5):70~72[15]閆懷兵,李維寧.如何選用濕度傳感器產品[J].制造業自動化,1999.5,(5):10~15[16]嚴懷龍.基于單片機的數據采集系統[J].廣西輕工業,2006.8,(6):34~35[17]江太輝,鄧展威.DS18B20數字式溫度傳感器的特性與應用[J].電子技術,2003.7,(12):56~58[18]張娟,陳杰,蔡振江.基于多傳感器數據融合的溫室溫度采集[J].微計算機信息2007.2,27(1-1):153~154[19]顧啟民,呂庭.單片機系統中復位電路可靠性設計[J].電子測量技術,2001.7,(3):25~26[20]何立民.單片機應用系統設計[M].北京,北京航空航天出版社,l990[21]張立科.單片機通信技術與工程實踐[M].北京:人民郵電出版社,2005:109~111[22]李光弟,朱秀月,王秀山.單片機基礎[M].(修訂本).北京:北京航空航天大學出版社,2001[23]丁明亮,唐前輝.51單片機應用設計與仿真[M].北京:北京航空航天大學出版社,2009基于51單片機的數字電壓表設計PAGEviii附錄:/*************端口定義********************P1.0SCK(SHT10) P1.1DATA(SHT10) P0DB0~DB7(LCD1602)P2.0RS(LCD1602)P2.1RW(LCD1602)P2.2E(LCD1602)*****************************************/#include<reg52.h>#include<intrins.h>#include<stdio.h>#include<string.h>#include<absacc.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedint#defineTEMPUP28//溫度上限#defineTEMPDOWN17 //溫度下限#defineHUMDOWN70 //濕度上限#defineHUMUP40 //濕度下限sbitLcdRs=P2^0;//1602液晶端口定義sbitLcdRw=P2^1;sbitLcdEn=P2^2;sbitled1=P3^0;//報警燈端口定義sbitled2=P3^4;sbitACC0=ACC^0;sbitACC7=ACC^7;bitstart;ucharstr[7];//向LCD寫入命令或數據************************************************************#defineLCD_COMMAND 0//Command#defineLCD_DATA 1//Data#defineLCD_CLEAR_SCREEN 0x01//清屏#defineLCD_HOMING 0x02//光標返回原點//設置顯示模式************************************************************#defineLCD_SHOW 0x04//顯示開#defineLCD_HIDE 0x00//顯示關 #defineLCD_CURSOR 0x02 //顯示光標#defineLCD_NO_CURSOR 0x00//無光標 #defineLCD_FLASH 0x01//光標閃動#defineLCD_NO_FLASH 0x00//光標不閃動//設置輸入模式************************************************************#defineLCD_AC_UP 0x02#defineLCD_AC_DOWN 0x00//default#defineLCD_MOVE 0x01//畫面可平移#defineLCD_NO_MOVE 0x00//defaultunsignedcharLCD_Wait(void);voidLCD_Write(bitstyle,unsignedcharinput);/***********1602液晶顯示部分子程序****************/voiddelay(uintz) //延時函數{ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voidLCD_Write(bitstyle,unsignedcharinput) { LcdRs=style; P0=input; delay(5); LcdEn=1; delay(5); LcdEn=0; }voidLCD_SetDisplay(unsignedcharDisplayMode) //設置輸出{ LCD_Write(LCD_COMMAND,0x08|DisplayMode); }voidLCD_SetInput(unsignedcharInputMode) //設置輸入{ LCD_Write(LCD_COMMAND,0x04|InputMode);}voidLCD_Initial() //初始化LCD函數{ LcdEn=0; LCD_Write(LCD_COMMAND,0x38);//8位數據端口,2行顯示,5*7點陣 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);//開啟顯示,無光標 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);//清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);//AC遞增,畫面不動}voidGotoXY(unsignedcharx,unsignedchary)//液晶字符輸入的位置{ if(y==0) LCD_Write(LCD_COMMAND,0x80|x); if(y==1) LCD_Write(LCD_COMMAND,0x80|(x-0x40));}voidPrint(unsignedchar*str) //將字符輸出到液晶顯示{ while(*str!='\0') { LCD_Write(LCD_DATA,*str); str++; }}voidzhuanhuan(floata)//浮點數轉換成字符串函數{ memset(str,0,sizeof(str)); sprintf(str,"%f",a);}voidwelcome() //初始界面函數{ LCD_Initial(); GotoXY(0,0); Print("Welcome!"); GotoXY(0,1); Print("Codeofsht10"); delay(200);}voiddelay_n10us(uintn)//延時n個10us@12M晶振{uinti;for(i=n;i>0;i--){ _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_(); }}/*********************第一部分LCD1602設置END****************************************//*********************第二部分SHT10設置START**************************************/sbitSCK=P1^0;//定義通訊時鐘端口sbitDATA=P1^1;//定義通訊數據端口typedefunion{unsignedinti;//定義了兩個共用體floatf;}value;enum{TEMP,HUMI};//TEMP=0,HUMI=1#definenoACK0//用于判斷是否結束通訊#defineACK1//結束數據傳輸//adrcommandr/w#defineSTATUS_REG_W0x06//00000110#defineSTATUS_REG_R0x07//00000111#defineMEASURE_TEMP0x03//00000011#defineMEASURE_HUMI0x05//00000101#defineRESET0x1e//00011110/****************定義函數****************/voids_transstart(void);//啟動傳輸函數voids_connectionreset(void);//連接復位函數chars_write_byte(unsignedcharvalue);//SHT10寫函數chars_read_byte(unsignedcharack);//SHT10讀函數chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode);//測量溫濕度函數voidcalc_dht90(float*p_humidity,float*p_temperature);//溫濕度補償voids_transstart(void)//啟動傳輸函數//generatesatransmissionstart//_____________//DATA:|_______|//______//SCK:___||___||______{DATA=1;SCK=0;//Initialstate_nop_();SCK=1;_nop_();DATA=0;_nop_();SCK=0;_nop_();_nop_();_nop_();SCK=1;_nop_();DATA=1;_nop_();SCK=0;}voids_connectionreset(void)//連接復位函數//communicationreset:DATA-line=1andatleast9SCKcyclesfollowedbytransstart//_____________________________________________________________//DATA:|_______|//_______________//SCK:__||__||__||__||__||__||__||__||__||______||___||______{unsignedchari;DATA=1;SCK=0;//Initialstatefor(i=0;i<9;i++)//9SCKcycles{SCK=1;SCK=0;}s_transstart();//transmissionstart}chars_write_byte(unsignedcharvalue) //SHT10寫字節函數////writesabyteontheSensibusandcheckstheacknowledge{unsignedchari,error=0;for(i=0x80;i>0;i/=2)//shiftbitformasking{if(i&value)DATA=1;//maskingvaluewithi,writetoSENSI-BUSelseDATA=0;SCK=1;//clkforSENSI-BUS_nop_();_nop_();_nop_();//pulswithapprox.3usSCK=0;}DATA=1;//releaseDATA-lineSCK=1;//clk#9forackerror=DATA;//checkack(DATAwillbepulleddownbyDHT90),DATA在第9個上升沿將被DHT90自動下拉為低電平。_nop_();_nop_();_nop_();SCK=0;DATA=1;//releaseDATA-linereturnerror;//error=1incaseofnoacknowledge//返回:0成功,1失敗}/*****SHT10讀函數readsabyteformtheSensibusandgivesanacknowledgeincaseof"ack=1"****/chars_read_byte(unsignedcharack){unsignedchari,val=0;DATA=1;//releaseDATA-linefor(i=0x80;i>0;i/=2)//shiftbitformasking{SCK=1;//clkforSENSI-BUSif(DATA)val=(val|i);//readbit _nop_();_nop_();_nop_();//pulswithapprox.3usSCK=0;}if(ack==1)DATA=0;//incaseof"ack==1"pulldownDATA-LineelseDATA=1;//如果是校驗(ack==0),讀取完后結束通訊_nop_();_nop_();_nop_();//pulswithapprox.3usSCK=1;//clk#9forack_nop_();_nop_();_nop_();//pulswithapprox.3usSCK=0;_nop_();_nop_();_nop_();//pulswithapprox.3usDATA=1;//releaseDATA-linereturnval;}/*測量溫濕度函數makesameasurement(humidity/temperature)withchecksum*/chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode){unsignederror=0;unsignedinti;s_transstart();//transmissionstartswitch(mode){//sendcommandtosensorcaseTEMP:error+=s_write_byte(MEASURE_TEMP);break;caseHUMI:error+=s_write_byte(MEASURE_HUMI);break;default:break;}for(i=0;i<65535;i++)if(DATA==0)break;//waituntilsensorhasfinishedthemeasurementif(DATA)error+=1;//ortimeout(~2sec.)isreached*(p_value)=s_read_byte(ACK);//readthefirstbyte(MSB)*(p_value+1)=s_read_byte(ACK);//readthesecondbyte(LSB)*p_checksum=s_read_byte(noACK);//readchecksumreturnerror;}voidcalc_sht90(float*p_humidity,float*p_temperature)//溫濕度補償函數//calculatestemperature[C]andhumidity[%RH]//input:humi[Ticks](12bit)//temp[Ticks](14bit)//output:humi[%RH]//temp[C]{constfloatC1=-4.0;//for12BitconstfloatC2=+0.0405;//for12BitconstfloatC3=-0.0000028;//for12BitconstfloatT1=+0.01;//for14Bit@5VconstfloatT2=+0.00008;//for14Bit@5Vfloatrh=*p_humidity;//rh:Humidity[Ticks]12Bitfloatt=*p_temperature;//t:Temperature[Ticks]14Bitfloatrh_lin;//rh_lin:Humiditylinearfloatrh_true;//rh_true:Temperaturecompensatedhumidityfloatt_C;//t_C:Temperature[C]t_C=t*0.01-40;//calc.temperaturefromticksto[C]rh_lin=C3*rh*rh+C2*rh+C1;//calc.humidityfromticksto[%RH]rh_true=(t_C-25)*(T1+T2*rh)+rh_lin;//calc.temperaturecompensatedhumidity[%RH]if(rh_true>100)rh_true=100;//cutifthevalueisoutsideofif(rh_true<0.1)rh_true=0.1;//thephysicalpossiblerange*p_temperature=t_C;//returntemperature[C]*p_humidity=rh_true;//returnhumidity[%RH]}/**************第二部分SHT10設置END*****************************//***************************主函************************************/voidmain(void){ valuehumi_val,temp_val;unsignedcharerror,checksum,i; LcdRw=0; led1=0; led2=0; start=0;s_connectionreset();welcome();//顯示歡迎畫面delay(2000); LCD_Initial();while(1){error=0;error+=s_measure((unsignedchar*)&humi_val.i,&checksum,HUMI);error+=s_measure((unsignedchar*)&temp_val.i,&checksum,TEMP);if(error!=0) s_connectionreset();//incaseofanerror:connectionresetelse{ humi_val.f=(float)humi_val.i;//convertsintegertofloattemp_val.f=(float)temp_val.i;//convertsintegertofloatcalc_sht90(&humi_val.f,&temp_val.f);//計算濕度與溫度 GotoXY(0,0);// Print("Tep:"); GotoXY(0,1); Print("Hum:"); zhuanhuan(temp_val.f);//轉換溫度為uchar方便液晶顯示 GotoXY(5,0); str[5]=0xDF;//℃的符號 str[6]=0x43; str[7]='\0'; Print(str); if(temp_val.f>TEMPUP-1||temp_val.f<TEMPDOWN-1)led1=1;elseled1=0; zhuanhuan(humi_val.f);//轉換濕度為uchar方便液晶顯示 GotoXY(5,1); str[5]='%';//%的符號 str[6]='\0';//字符串結束標志 Print(str); if(humi_val.f>HUMUP-1||humi_val.f<HUMDOWN-1)led2=1;elseled2=0;} delay_n10us(80000);//延時約0.8s}}蘇州市職業大學畢業設計畢業設計題目基于AT89S51單片機的數字電壓表設計學院電子信息工程學院專業班級姓名學號指導教師摘要數字電壓表簡稱DVM,它是采用數字化測量技術,把連續的模擬量(直流輸入電壓)轉換成不連續、離散的數字形式并加以顯示的儀表。數字電壓表自從一九五二年問世以來,隨著電子技術的飛躍發展,特別是目前,作為測量儀表、模擬指示儀表的數字化以及自動測量的系統,而得到了很大的發展。數字電壓表是從電位差計的自動化這種想法研制出來的,因此即便是最初的數字電壓表,其精度也要比模擬式儀表高,而其成本比電位差計也高。以后,DVM的發展就著眼在高精度和低成本兩個方面。單片機可單獨地完成現代工業控制所要求的智能化控制功能,這是單片機最大的特征。本電路主要采用AT89S51芯片和ADC0809芯片來完成一個簡易的數字電壓表,能夠對輸入的0~5V的模擬直流電壓進行測量,并通過一個4位一體的7段LED數碼管進行顯示。該電壓表的測量電路主要由三個模塊組成:A/D轉換模塊、數據處理模塊及顯示控制模塊。A/D轉換主要由芯片ADC0809來完成,它負責把采集到的模擬量轉換為相應的數字量再傳送到數據處理模塊。數據處理則由芯片AT89S51來完成,其負責把ADC0809傳送來的數字量經一定的數據處理,產生相應的顯示碼送到顯示模塊進行顯示;另外它還控制著ADC0809芯片的工作。關鍵詞:單片機數字電壓表AT89S51A/D轉換ADC0809AbstractDigitalvoltagemeterDVM,Itistheuseofdigitalmeasurementtechnology,Thecontinuousanalog(DCinputvoltage)intodiscontinuous,discretedigitalformandtodisplay.Since1952sincetheadventofdigitalvoltagemeter,Withtherapiddevelopmentofelectronictechnology,Atpresent,especially,Asthedigitalmeasuringinstrument,analoggaugesandautomaticmeasurementsystem,achievedgreatdevelopment.Digitalvoltagemeterisdevelopedfromthepotentialdifferencethatautomationmeter,Thereforeeventhefirstdigitalvoltagemeter,Itsaccuracyiscomparedtotheanalogmeterhigh,thecostishigherthanpotentialdifferencemeter.ThedevelopmentofD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全崗位知識試題及答案
- 西方政治制度中的政策評估方法試題及答案
- 城市更新政策的成功案例分析試題及答案
- 軟件設計師考試高分技巧與復習方法總結試題及答案
- 流行病對公共政策的影響研究試題及答案
- 地方政府公共政策創新試題及答案
- 銀川初一生物考試卷及答案
- 公共政策決策與反饋機制的相互作用試題及答案
- 一年級語文試卷及答案人教版
- 公共政策的科研支持與合理配置試題及答案
- 員工工資條模板
- 云南省楚雄州2023年六年級數學第二學期期末達標測試試題含解析
- 2023-2024人教版小學5五年級數學下冊(全冊)教案
- 交付經理工作職責
- 國際檔案日宣傳教育課件(帶內容)
- 基于PLC的藥房取藥系統設計
- 安徽省汽車維修行業車輛維修合同
- GB/T 16447-2004煙草及煙草制品調節和測試的大氣環境
- 公司勞務派遣人員工資薪酬發放暫行規定
- 建筑大師伊東豐雄簡介及作品集課件
- 公司二次經營創效管理實施細則
評論
0/150
提交評論