畢業(yè)設計(論文)基于單片機的電容測量儀設計[1] 楊建華(2)_第1頁
畢業(yè)設計(論文)基于單片機的電容測量儀設計[1] 楊建華(2)_第2頁
畢業(yè)設計(論文)基于單片機的電容測量儀設計[1] 楊建華(2)_第3頁
畢業(yè)設計(論文)基于單片機的電容測量儀設計[1] 楊建華(2)_第4頁
畢業(yè)設計(論文)基于單片機的電容測量儀設計[1] 楊建華(2)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、專科畢業(yè)設計(論文)專科畢業(yè)論文題 目:學 院:專 業(yè):姓 名:學 號:班 級:指導教師:職 稱:完成日期??飘厴I(yè)設計(論文)畢業(yè)論文誠信承諾書摘 要單片機應用技術飛速發(fā)展,縱觀我們現在生活的各個領域,從導彈的導航裝置,到飛機上各種儀表的控制,從計算機的網絡通訊與數據傳輸,到工業(yè)自動化過程的實時控制和數據處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機。單片機是集CPU ,RAM ,ROM ,定時,計數和多種接口于一體的微控制器。它體積小,成本低,功能強,廣泛應用于智能產業(yè)和工業(yè)自動化上。而51系列單片機是各單片機中最為典型和最有代表性的一種。這次畢業(yè)設計通過對它的

2、學習,應用,從而達到學習、設計、開發(fā)軟、硬的能力。本文通過對一個基于單片機的能實現萬年歷功能電子時鐘的設計,從而達到學習、了解單片機相關指令在各方面的應用。系統(tǒng)由主控制器AT89C51、時鐘電路DS1302、顯示電路、按鍵電路、和復位電路等部分構成,能實現時鐘日歷顯示的功能,能進行時、分、秒的顯示?!娟P鍵詞 :】 單片機, 農歷查詢 , 萬年歷第2頁(共42頁)AbstractChina's accounting occupation morality is the accounting personnel in the occupation activity should follo

3、w the code of conduct, it is adjusted with the national accounting officer, accounting personnel with different stakeholders, accounting popularity of the social relations between and the sum of social ethics, is the basic code of ethics in the accounting of the specific embodiment, the accounting o

4、ccupation morals is a specification of accounting occupation relationship develops to a certain extent.【Key words】Occupation moral of accounting occupation morals occupation morality and accounting occupation m第3頁(共42頁)目 錄前言1選題背景1.1電容測試儀的發(fā)展歷史及研究現狀.21.2現今的電容測量技術手段.3 2 基于單片機電容測量硬件設計2.1設計方案.42.2 硬件設計的任

5、務42.3基于AT89C51電容測量系統(tǒng)硬件設計詳細分析.52.3.1 AT89C51單片機工作電路62.3.2 基于AT89C51電容測量系統(tǒng)復位電路.72.3.3 基于AT89C51電容測量系統(tǒng)時鐘電路.82.3.4 基于AT89C51電容測量系統(tǒng)按鍵電路.92.3.5 基于AT89C51電容測量系統(tǒng)555芯片電路.102.3.6 基于AT89C51電容測量系統(tǒng)顯示電路.132.4 各部分電路連接成整個電路圖.15 3 基于單片機電容測量軟件設計3.1 軟件設計.173.2 軟件設計任務.18 3 .3 軟件設計的工具203.4 程序設計算法設計.213.5 軟件設計流程.253.6 編寫

6、程序.273.7結果分析.30 4 主要元器件介紹35 5 結 論.38 參考文獻.39 致謝.40第4頁(共42頁)電容測量儀器設計前言目前,隨著電子工業(yè)的發(fā)展,電子元器件急劇增加,電子元器件的適用范圍也逐漸廣泛起來,在應用中我們常常要測定電容的大小。在電子產品的生產和維修中,電容測量這一環(huán)節(jié)至關重要,一個好的電子產品應具備一定規(guī)格年限的使用壽命。因此在生產這一環(huán)節(jié)中,對其產品的檢測至關重要,而檢測電子產品是否符合出產要求的關鍵在于檢測其內部核心的電路,電路的好壞決定了電子產品的好與壞,而電容在基本的電子產品的集成電路部分有著其不可替代的作用。同樣,在維修人員在對電子產品的維修中,電路的檢測

7、是最基本的,有時需要檢測電路中各個部件是否工作正常,電容器是否工作正常。因此,設計可靠,安全,便捷的電容測試儀具有極大的現實必要性。第5頁(共42頁)專科畢業(yè)設計(論文) 1選題背景1.1電容測試儀的發(fā)展歷史及研究現狀當今電子測試領域,電容的測量已經在測量技術和產品研發(fā)中應用的十分廣泛。電容通常以傳感器形式出現,因此,電容測量技術的發(fā)展歸根結底就是電容傳感器的發(fā)展。由最初的用交流不平衡電橋就能測量基本的電容傳感器。最初的電容傳感器有變面積型,變介質介電常數型和變極板間型?,F在的電容式傳感器越做越先進,現在用的比較多的有容柵式電容傳感器,陶瓷電容壓力傳感器等。電容測量技術發(fā)展也很快現在的電容測量

8、技術也由單一化發(fā)展為多元化?,F在國內外做傳感器的廠商也比較多,在世界范圍內做電容傳感器做的比較好的公司有:日本figaro、德國tecsis、美國alphasense。中國本土測量儀器設備發(fā)展的主要瓶頸。盡管本土測試測量產業(yè)得到了快速發(fā)展,但客觀地說中國開發(fā)測試測量儀器還普遍比較落后。每當提起中國測試儀器落后的原因,就會有許多不同的說法,諸如精度不高,外觀不好,可靠性差等。實際上,這些都還是表面現象,真正影響中國測量儀器發(fā)展的瓶頸為:1.測試在整個產品流程中的地位偏低。由于人們的傳統(tǒng)觀念的影響,在產品的制造流程中,研發(fā)始終處于核心位置,而測試則處于從屬和輔助位置。關于這一點,在幾乎所有的研究機

9、構部門配置上即可窺其一斑。這種錯誤觀念上的原因,造成整個社會對測試的重視度不夠,從而造成測試儀器方面人才的嚴重匱乏,造成相關的基礎科學研究比較薄弱,這是中國測量儀器發(fā)展的一個主要瓶頸。實際上,即便是研發(fā)隊伍本身,對測試的重視度以及對儀器本身的研究也明顯不夠。2.面向應用和現代市場營銷模式還沒有真正建立起來。本土儀器設備廠商只是重研發(fā),重視生產,重視狹義的市場,還沒有建立起一套完整的現代營銷體系和面向應用的研發(fā)模式。傳統(tǒng)的營銷模式在計劃經濟年代里發(fā)揮過很大作用,但無法滿足目前整體解方案流行年代的需求。所以,為了快速縮小與國外先進公司之間的差距,國內儀器研發(fā)企業(yè)應加速實現從面向仿制的研發(fā)向面向應用

10、的研發(fā)的過渡。特別是隨著國內應用需求的快速增長,為這一過渡提供了根本動力,應該利用這些動力,跟蹤應用技術的快速發(fā)展。3.缺乏標準件的材料配套體系。??飘厴I(yè)設計(論文) 料配套行業(yè)的技術水平較低。雖然目前已有較大的改觀,但距離整個產業(yè)的要求還有一定距離,所以,還應把標準化和模塊化的研究放到重要的位置。還有,在技術水平沒有達到的條件下,一味地追求精度或追求高指標,而沒有處理好與穩(wěn)定性之間的關系。上述這些都是制約本土儀器發(fā)展的因素。近年來我國測量儀器的可靠性和穩(wěn)定性問題得到了很多方面的重視,狀況有了很大改觀。測試儀器行業(yè)目前已經越過低谷階段,重新回到了快速發(fā)展的軌道,尤其最近幾年,中國本土儀器取得了

11、長足的進步,特別是通用電子測量設備研發(fā)方面,與國外先進產品的差距正在快速縮小,對國外電子儀器巨頭的壟斷造成了一定的沖擊。隨著模塊化和虛擬技術的發(fā)展,為中國的測試測量儀器行業(yè)帶來了新的契機,加上各級政府日益重視,以及中國自主應用標準研究的快速進展,都在為該產業(yè)提供前所未有的動力和機遇。從中國電子信息產業(yè)統(tǒng)計年鑒中可以看出,中國的測試測量儀器每年都以超過30%以上的速度在快速增長。在此快速增長的過程中,無疑催生出了許多測試行業(yè)新創(chuàng)企業(yè),也催生出了一批批可靠性和穩(wěn)定性較高的產品。1.2現今的電容測量技術手段電容器作為非常重要的一個電學元件在現代電子技術中有著非常廣泛的用途,電容定義為:Q電容器所帶的

12、電荷量Q與電容器兩極板間的電勢差U的比值,即:C U。這種原始的方法必須通過測量兩個物理量來計算電容的大小,而其中的Q是比較難以測量的量。目前常用的兩種測量電容的實現方法:一是利用多諧震蕩產生脈沖寬度與電容值成正比信號,通過低通濾波后測量輸出電壓實現;二是利用單穩(wěn)態(tài)觸發(fā)裝置產生與電容值成正比門脈沖來控制通過計數器的標準計數脈沖的通斷,即直接根據充放電時間判斷電容值。利用多諧震蕩原理測量電容的方案硬件設計比較簡單,但是軟件實現相對比較復雜,而直接根據充放電時間判斷電容值的方案雖然基本上沒有用到軟件部分,但是硬件卻又十分的復雜。而且他們都無法直觀的把測量的電容值大小顯示出來。根據上面兩種方案的優(yōu)缺

13、點,本次設計提出了硬件設計和軟件設計都相對比較簡單的方案:基于AT89C51單片機和555芯片的數顯式電容測量。該方案主要是根據555芯片的應用特點,把電容的大小轉變成555輸出頻率的大小,進而可以通過單片機對555輸出的頻率進行測量。本方案的硬件設計和軟件設計都相對簡單。??飘厴I(yè)設計(論文)2 基于單片機電容測量硬件設計2.1設計方案本次設計中考慮了三種設計方案,三種設計方案中主要區(qū)別在于硬件電路和軟件設計的不同,對于本設計三種方案均能夠實現,最后根據設計要求、可行性和設計成本的考慮選擇了基于AT89C51單片機和555芯片構成的多諧振蕩電路的測量的方案?,F在一一介紹論證如下:方案一、利用多

14、諧振蕩原理測量電容測量原理如下圖所示。電容C電阻R和555芯片構成一個多諧振蕩電路。在電源剛接通時(K合上),電容C上的電壓為零,多諧振蕩器輸出V0為高電平 V0通過R對電容C充電。當C上沖得的電壓VC= VT+時,施密特觸發(fā)器翻轉,V0變?yōu)榈碗娖?,C又通過R放電,VC下降。當VC= VT時施密特觸發(fā)器又翻轉,輸出VC又變?yōu)楦唠娖?,如此往復產生震蕩波形。由理論分析可知tPH=RCln(VOH-VT-)/(VOH-VT+)(1)tPL=RCln(VOL-VT+)/(VOL-VT-)(2)T=tPH+tPL=RC(ln(VOH-VT-)/(VOH-VT+)+ln(VOL-VT+)/(VOL-VT-

15、)(3)令(4)則T=RCD,T0=RC0D,TX=RCXDTX/T0=CX/C0D=ln(VOH-VT-)/(VOH-VT+)+ln(VOL-VT+)/(VOL-VT-)(5)CX=(TX/T0)C0=(f0/fx)C0(6)有式(6)和測得的校準值得出待測電容值CXT0測量值TX及存放的軟件中的標準電容值C可f0。實際應用中也可以通過測量和fX來算出CXCx測量誤差分析:由式(6)可以看出,經過軟件校準后得出的C0結果與Tx/T0的值有關。這樣單片機晶振頻率的絕對精度,環(huán)境溫度的變化和電源電壓的絕對精度引起的誤差被消除。測量結果主要受標準電容因此應該選擇精度高、穩(wěn)定性好的C0的絕對精度影響

16、,;其他誤差來源包括周期測量的量化誤差,除法運算產生的余數誤差,電源電壓的波動造成諧振頻率偏移帶來的誤第5頁(共42頁)差,因此電路要用穩(wěn)壓性能好的穩(wěn)壓電源這種方法的利用了一個參考的電容實現,雖然硬件結構簡單,軟件實現卻相對比較復雜。方案二、直接根據充放電時間判斷電容值這種電容測量方法主要利用了電容的充放電特性Q=UC,放電常數=RC,通過測量與被測電容相關電路的充放電時間來確定電容值。一般情況下,可設計電路使T=ARC( T為振蕩周期或觸發(fā)時間;A為電路常數與電路參數有關)。這種方法中應用了555芯片組成的單穩(wěn)態(tài)觸發(fā)器,在秒脈沖的作用下產生觸發(fā)脈沖,來控制門電路實現計數,從而確定脈沖時間,通

17、過設計合理的電路參數,使計數值與被測電容相對應。其原理框圖如圖3所示。圖3 電路原理框圖誤差分析:這種電容測量方法的誤差主要由兩部分組成:一部分是由555芯片構成的振蕩電路和觸發(fā)電路由于非線性造成的誤差,其中最重要的是單穩(wěn)態(tài)觸發(fā)電路的非線性誤差,C0/C0=T/TC0(T由充放電時間決定,是被測電容值);另一部分是由數字電路的量化誤差引起,是數字電路特有的誤差該誤差相對影響較小,可忽略不計。這種方法硬件結構相對復雜,實際上是通過犧牲硬件部分來減輕軟件部分的負擔,但在具體設計中會碰到很大問題,而且硬件一旦設計好,可變性不大。方案三、基于AT89C51單片機和555芯片構成的多諧振蕩電路電容測量

18、這種電容測量方法主要是通過一塊555芯片來測量電容,讓555芯片工作在直接反饋無穩(wěn)態(tài)的狀態(tài)下,555芯片輸出一定頻率的方波,其頻率的大小跟被測量的電容之間的關系是:其公式就可以寫為:f=k/Cxf=0.772/(R*Cx),我們固定R的大小,T0,只要我們能夠測量出555芯片輸出的頻率,和中就可以計算出測量的電容。計算頻率的方法可以利用單片機的計數器斷INT0配合使用來測量,這種研究方法相當的簡單。系統(tǒng)框圖見圖4。圖4 系統(tǒng)框圖圖中給出了整個系統(tǒng)設計的系統(tǒng)框圖,系統(tǒng)主要由四個主要部分組成,單片機和晶振電路設計,555芯片電路設計,顯示電路設計,復位電路設計。2.2 硬件設計的任務AT89C51

19、基本工作電路設計:使單片機正常工作;第6頁(共42頁)??飘厴I(yè)設計(論文)時鐘電路:為單片機提供時鐘信號;復位電路:為單片機提供高電平復位信號;555芯片電路:把電容的大小轉變成輸出頻率的大??;顯示電路:顯示當前測量電容的大?。话存I電路:開始測量電容;2.3基于AT89C51電容測量系統(tǒng)硬件設計詳細分析2.3.1 AT89C51單片機工作電路本設計的核心是單片機電路,考慮到需要一個中斷輸入,存儲容量、外部接口對單片機端口的需要以及兼顧到節(jié)約成本的原則,選用了常用的AT89C51單片機。AT89C51是低功耗、高性能、經濟的8位CMOS微處理器,工作頻率為024MHz,內置4K字節(jié)可編程只讀閃存

20、,128x8位的內部RAM,16位可編程IO總線。它采用Atmel公司的非易儲器制造技術,與MCS51的指令設置和芯片引腳可兼容。AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。AT89C51工作的最簡單的電路是其外圍接一個晶振和一個復位電路,給單片機接上電源和地,單片機就可以工作了。其最簡單的工作原理圖如下圖。圖5 AT89C51單片機工作電路2.3.2 基于AT89C51電容測量系統(tǒng)復位電路MCS-51的復位是由外部的復位電路來實現的。MCS-51單片機片內復位,復位引腳RST通

21、過一個斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,斯密特觸發(fā)器的輸出電平由復位電路采樣一次,然后才能得到內部復位操作所需要的信號。復位電路通常采用上電自動復位和按鈕復位兩種方式。上電自動復位是通過外部復位電路的電容充電來實現的。只要Vcc的上升時間不超過1ms,就可以實現自動上電復位。除了上電復位外,有時還需要按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種。其中電平復位是通過RST端經電阻與電源Vcc接通而實現的。按鍵脈沖復位則是利用RC微分電路產生的正脈沖來實現的。第7頁(共42頁)??飘厴I(yè)設計(論文)圖6 上電復位電路上圖兼有上電復位和按鈕復位的電路。在單片機設計中,若有外部擴

22、展的I/O接口電路需初始復位,如果它們的復位端和MCS-51單片機的復位端相連,復位電路中的R、C參數要受到影響,這時復位電路中的R、C參數要統(tǒng)一考慮以保證可靠的復位。如果單片機MCS-51單片機與外圍I/O接口電路的復位電路和復位時間不完全一致,使單片機初始化程序不能正常運行,外圍I/O接口電路的復位也可以不和MCS-51單片機復位端相連,僅采用獨立的上電復位電路。一般來說,單片機的復位速度比外圍I/O快些。若RC上電復位電路接MCS-51單片機和外圍電路復位端,則能使系統(tǒng)可靠地同步復位。為保證系統(tǒng)可靠復位,在初始化程序中應用到一定的復位延遲時間。復位電路軟件程序跑飛或者硬件發(fā)生錯誤的時候產

23、生一個復位信號,控制MCS-51單片機從0000H單元開始執(zhí)行程序,重新執(zhí)行軟件程序。此電路的輸出端RESET接在單片機的復位引腳。2.3.3 基于AT89C51電容測量系統(tǒng)時鐘電路時鐘在單片機中非常重要,單片機各功能部件的運行都是以時鐘頻率為基準。時鐘頻率直接影響單片機的速度,時鐘電路的質量也直接影響單片機系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式,一種是內部時鐘方式,另一種為外部時鐘方式。內部時鐘方式:內部時鐘方式電路圖如下圖所示。圖7 內部時鐘電路MCS-51單片機內部有一個用與構成振蕩器的高增益反相放大器,該高增益反相放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳接

24、石英晶體振蕩器和微調電容,就構成一個穩(wěn)定的自激振蕩器電路。電路中的電容C1和C2典型值通常選擇為30PF左右。對外接電容的值雖然沒有嚴格的要求,但是電容的大小會影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。晶體的振蕩頻率的范圍通常是在1.2MHz12MHz之間。晶體的頻率越高,則系統(tǒng)的時鐘頻率也就越高,單片機的運行速度也就越快。為了提高溫度穩(wěn)定性,應采用溫度穩(wěn)定性能好的NPO高頻電容。MCS-51單片機常選擇振蕩頻率6MHz或12MHz的石英晶體。第8頁(共42頁)??飘厴I(yè)設計(論文)外部時鐘方式:外部時鐘方式電路圖如下圖所示。圖8 外部時鐘電路外部時鐘方式是使用外部振蕩脈沖信號,常用于

25、多片MCS-51單片機同時工作,以便于同步。對外部脈沖信號只要求高電平的持續(xù)時間大于20us,一般為低于12MHz的方波。外部的時鐘源直接接到XTAL2端,直接輸入到片內的時鐘發(fā)生器上。由于XTAL2的邏輯電平不是TTL的,因此要外接一個4.7k10k的上拉電阻。這次的設計采用MCS-51的內部時鐘方式。因為外部時鐘方式是用外部振蕩脈沖信號,用于多片MCS-51單片機同時工作。在這次設計中只用一個MCS-51單片機,不需要振蕩脈沖信號。2.3.4 基于AT89C51電容測量系統(tǒng)按鍵電路按鍵是實現人機對話的比較直觀的接口,可以通過按鍵實現人們想讓單片機做的不同的工作。鍵盤是一組按鍵的集合,鍵是一

26、種常開型開關,平時按鍵的兩個觸點處于斷開狀態(tài),按下鍵是它們閉合。鍵盤分編碼鍵盤和非編碼鍵盤,案件的識別由專用的硬件譯碼實現,并能產生鍵編號或鍵值的稱為編碼鍵盤,而缺少這種鍵盤編碼電路要靠自編軟件識別的稱為非編碼鍵盤。在單片機組成的電路系統(tǒng)及智能化儀器中,用的更多的是非編碼鍵盤。圖9就是一種比較典型的按鍵電路,在按鍵沒有按下的時候,輸出的是高電平,當按鍵按下去的時候,輸出的低電平。圖9 按鍵電路2.3.5 基于AT89C51電容測量系統(tǒng)555芯片電路555芯片電路是一種將模擬功能與邏輯功能巧妙結合在同一硅片上的組合集成電路。它設計新穎,構思奇巧,用途廣泛,備受電子專業(yè)設計人員和電子愛好者的青睞,

27、人們將其戲稱為偉大的小IC。1972年,美國西格尼蒂克斯公司(Signetics)研制出Tmer NE555雙極型時基電路,設計原意是用來取代體積大,定時精度差的熱延遲繼電器等機械式延遲器。但該器件投放市場后,人們發(fā)現這種電路的應用遠遠超出原設計的使用范圍,用途之廣幾乎遍及電子應用的各個領域,需求量極大。美國各大公司相繼仿制這種電路 1974年西第9頁(共42頁)??飘厴I(yè)設計(論文) 格尼蒂克斯公司又在同一基片上將兩個雙極型555單元集成在一起,取名為NF556。1978年美國英特錫爾(Intelsil)研制成功CMOS型時基電路ICM555 ICM556,后來又推出將四個時基電路集成在一個芯

28、片上的四時基電路558 由于采用CMOS型工藝和高度集成,使時基電路的應用從民用擴展到火箭、導彈、衛(wèi)星、航天等高科技領域。在這期間,日本、西歐等各大公司和廠家也競相仿制、生產。盡管世界各大半導體或器件公司、廠家都在生產各自型號的555556時基電路,但其內部電路大同小異,且都具有相同的引出功能端。555電路,也稱555芯片電路,是一種中規(guī)模集成電路。它具有功能強、使用靈活、適用范圍寬的特點。通常只要外接少量幾個元件,就可構成各種不同用途的脈沖電路以及許多實用電路,如多諧振蕩器、單穩(wěn)態(tài)電路及施密特觸發(fā)器等等。從而能夠實現振蕩、定時、調光、調壓、調速等。555集成電路有雙極型和CMOS兩種。CMO

29、S型的優(yōu)點是功耗低、電源電壓低、輸入阻抗高。對于初學者來說,可以把555電路等效看成一個帶放電開關的RS觸發(fā)器,這個特殊的觸發(fā)器有兩個輸入端:閾值端TH可看成是置零端R,要求高電平,觸發(fā)端R可看成置位端低電平有效。它只有一個輸出端Vo,Vo可等效為觸發(fā)器的Q端。放電端DIS可看成由內部放電開關控制的一個接點,放電開關由觸發(fā)器的端控制:Q=1時DIS端接地;Q=0時,DIS端懸空。此外,這個觸發(fā)器還有復位端MR加上低電平(<03V)時可使輸出為低電平。該特殊的RS觸發(fā)器有兩個輸入端,這兩個輸入端的觸發(fā)電平要求一高一低,其中置零端R即閾值端TH要求高電平,置位端即觸發(fā)端則要求低電平,也就是使

30、它們翻轉的閾值電壓值不同。當VK端不接控制電壓時,對TH端(即R端)來講,大于23VDD是高電平1,小于23VDD時是低電平0;而對TR端(即端)來講,大于13VDD是高電平1,小于13VDD是低電平O。555芯片電路的應用電路很多,如:多個單穩(wěn)、多個雙穩(wěn)、單穩(wěn)和無穩(wěn),雙穩(wěn)和無穩(wěn)的組合等。在實際應用中,除了單一品種的電路外,還可組合出很多不同電路。本次設計中應用的電路是直接反饋型無穩(wěn)類電路。電路如圖10所示。圖10 555芯片電路555芯片芯片輸出的頻率為,只要我們改變電阻R,就可以達到改變電阻量程的目的,圖中提供了四組電阻,所以說有四組的電容測量量程,每第10頁(共42頁)專科畢業(yè)設計(論文

31、) 個量程之間的跨度是10倍的關系。在555芯片輸出方波后,由于硬件的原因,輸出的方波會有很多毛刺,為了去除這些毛刺本設計中使用了一個兩輸入與門(74HC08),讓信號通過74HC08后會使輸出的波形毛刺減少很多,使單片機的測量結果變得精確。圖11 74HC08電路沒有加74HC08之前輸出的波形如下圖12 沒加74HC08輸出波形加了74HC08之后的輸出波形如圖13 加了74HC08輸出波形二者的比較如下圖14 二者的比較 下2.3.6 基于AT89C51電容測量系統(tǒng)顯示電路LCD以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優(yōu)點,在袖珍式儀表和低功耗應用系統(tǒng)中得到越來越廣泛的應用。這里

32、介紹的字符型液晶模塊是一種用5x7點陣圖形來顯示字符的液晶顯示器,根據顯示的容量可以分為1行16個字、2行16個字、2行20個字等等,這里我們使用的是2行16個字的1602液晶模塊。圖15 LCD1602引腳圖1602 采用標準的16腳接口,其中:第1腳:VSS為地電源第2腳:VDD接5V正電源第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K 的電位器調整對比度第4 腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第11頁(共42頁)??飘厴I(yè)設計(論文)第5腳:RW為讀寫信號線, 高電平

33、時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW 為低電平時可以寫入數據。第6 腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數據線。第1516腳:空腳1602液晶模塊內部的字符發(fā)生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,如表1所示,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H 中的點陣字符圖形

34、顯示出來,我們就能看到字母“A”表1 CGROM和CGRAM中字符代碼與字符圖形對應關系1602液晶模塊內部的控制器共有11 條控制指令,其控制命令如下表所示。表2 LCD1602內部11條控制指令它的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1 為高電平、0 為低電平)指令1:清顯示,指令碼01H,光標復位到地址00H位置指令2:光標復位,光標返回到地址00H指令3:光標和顯示模式設置I/D:光標移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效指令4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示C

35、:控制光標的開與關,高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍 指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標 指令6:功能設置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F低電平時顯示5x7的點陣第12頁(共42頁)??飘厴I(yè)設計(論文)字符,高電平時顯示5x10的點陣字符(有些模塊是 DL:高電平時為8位總線,低電平時為4位總線)指令7:字符發(fā)生器RAM地址設置指令8:DDRAM地址設置指令9:讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表

36、示不忙。指令10:寫數據指令11:讀數據LCD1602液晶顯示模塊可以和單片機AT89C51直接接口,電路如下圖所示。圖16 LCD1602與AT89C51連接圖液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,下表是LCD1602的內部顯示地址表3 LCD1602內部顯示地址圖17 LCD1602顯示電路2.4 各部分電路連接成整個電路圖當各個部分的電路設計完成后,下面的工作就是組合成一個總的電路圖?,F今用的最多的電路設計軟件就是Proteus,Proteus軟件是英國

37、Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA第13頁(共42頁)??飘厴I(yè)設計(論文)工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、

38、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,目前已增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。圖18 總電路圖??飘厴I(yè)設計(論文) 3 基于單片機電容測量軟件設計3.1 軟件設計軟件設計是一個創(chuàng)造性的過程,對一些設計者來說需要一定的資質,而最后設計通常都是由一些初步設計演變而來的。從書本上學不會設計,只能經過實踐,通過對實際系統(tǒng)的研究和實踐才能學會。對于高效的軟件工程,良好的設計是關鍵,一個設計得好的軟件系統(tǒng)應該是可直接實現和易于維護、易懂和可靠的。設計得

39、不好的系統(tǒng),盡管可以工作,但很可能維護起來費用昂貴、測試困難和不可靠,因此,設計階段是軟件開發(fā)過程中最重要的階段。直到最近,軟件設計在很大程度上仍是一個特定過程。一般用自然語言給定一個需求集,預先作非正式設計,常常用流程圖的形式說明,接著開始編碼,當系統(tǒng)實現時設計還需修改。當實現階段完成后,設計往往已與起初形式相去甚遠以至于設計的原始文檔完全不適合對系統(tǒng)的描述。3.2 軟件設計任務軟件設計主要是針對硬件設計里面的控制部分的,這里指AT89C51單片機,一般的單片機均可用匯編語言和C語言進行編程。C語言直觀,相對比較的簡單,但占用的程序存儲器的內存比較大,匯編語言是針對硬件設計的語言,如果想用匯

40、編語言設計的話必須要對硬件有很大的了解,相對C語言就比較的復雜,但是比較的精簡,占用的程序存儲器的空間比較的小。作為還在學生階段的我們,用匯編語言進行編程對我們理解單片機的內部結構、資源都有很好的幫助,但是C語言編程在以后的實際工作中將會大大簡化自己的工作。因此本論文的程序都是基于C語言的。要完成的任務是:初始化程序設計、按鍵程序設計、中斷處理程序,計數器計數程序,顯示程序設計等。3.3 軟件設計的工具本次畢業(yè)設計所選用Keil C51中的編譯/連接器軟件Keil uVision2作為編譯器/連接工具。3.4 程序設計算法設計整個程序設計過程中遇到的最大的問題的如何根據測量到的方波的頻率來計算

41、所測量的電容的大小。在前面的介紹中我們知道:555時基芯片的輸出頻率跟所使用的電阻R和電容C的關系是:又因為T 1f ,所以R0.772??飘厴I(yè)設計(論文)T=*C(7)即:C=T*0.772R(8)如果單片機采用12M的晶振,計數器T0的值增加1,時間就增加1S,我們采用中斷的方式來啟動和停止計數器T0,中斷的觸發(fā)方式為脈沖下降沿觸發(fā),第一次中斷到來啟動T0,計數器的值為N1,第二次中斷到來停止T0,計數器器的值為N2,則測量方波的周期為T=(N2-N1)*1us,如何開始時刻計數器的值N1=0,則T=N*10-6。簡單時序圖如下。圖19 時序圖0.772R則: (9)C=N*10-6單片機

42、的計數器的值N=0-65535,為了測量的精度,N的取值一般在1005000,當電阻R越大,電容C的值就越小。我們取不同的電阻值,就得到不同的電容測量的量程。 第一檔:R1=77.2 C=第二檔:R2=772 C=R3=7.72K C=第三檔:N100N100N100N100*10*10*10-6C=*10-6N100N*1uF*10-1150uF*uF1*uF1*uF1-1C=N-2*10*10-6R4=77.2K C=第四檔:*10-3-6100N-2C=*10100N-3C=*101000.15 uF 0.010.5 uF 0.0010.05 uF為了編寫程序的方便,我們只計算100,后

43、面的單位可以根據使用的量程自行添加。測量范圍的大小0.001uF655.35uF。3.5 軟件設計流程流程圖是一種傳統(tǒng)的算法表示法,它利用幾何圖形的框來代表各種不同性質的操作,用流程線來指示算法的執(zhí)行方向。由于它簡單直觀,所以應用廣泛,特別是在早期語言階段,只有通過流程圖才能簡明地表述算法,流程圖成為程序員們交流的重要手段。本次畢業(yè)設計在軟件設計方面的難度是有點大。圖20為整個程序設計第22頁(共42頁)專科畢業(yè)設計(論文)3.6 編寫程序 有了前面的對整個系統(tǒng)的分析后畫出的流程圖,下面的工作就是根據流程圖編寫程序。編寫程序是一個相當復雜的過程,要求編程人員具有很強邏輯思維,而且要在對整個系統(tǒng)

44、工作原理相當熟悉的基礎上面才能完成任務。在編寫程序的時候要養(yǎng)成作注釋的習慣,這樣既利于自己以后的修改,又利于以后程序的維護。尤其是使用C語言編寫程序的時候更是要注釋,因為C語言是一門比較高級的語言,C語言比較的煩瑣。當然編寫程序遇到困難的時候還需要很大技巧。根據上面的流程圖,編寫程序:#include "reg51.h"第23頁(共42頁)??飘厴I(yè)設計(論文)#include"intrins.h"/庫函數#define DATA P0sbit RW=P21;/1602寫數據sbit RS=P20;/1602寫地址sbit EN=P22; /1602工作使

45、能sbit b_test=P37; /開始測量電容的按鍵輸入sbit _reset=P35; /555時基芯片工作控制信號 unsigned int T_flag,N,C,i,Dis1,Dis0;unsigned int b6=0X13,0X0D,0X00,0X00,0X25,0X16; C=00UF/*延時1MS*/void Delay1ms(unsigned int mm)unsigned int i;for(mm;mm>0;mm-)for(i=100;i>0;i-);/*檢查忙否*/ void Checkstates()unsigned char dat;RS=0;RW=1;

46、doEN=1;/下降沿_nop_();/保持一定間隔_nop_();dat=DATA;_nop_();_nop_();EN=0;第24頁(共42頁) /顯示專科畢業(yè)設計(論文)while(dat&0x80)=1);/*LCD寫命令函數*/ void wcomd(unsigned char cmd)Checkstates();RS=0;RW=0;DATA=cmd;EN=1;_nop_();_nop_();_nop_();_nop_();EN=0;/*LCD寫數據函數*/ void wdata(unsigned char dat)Checkstates();RS=1;RW=0;DATA=d

47、at;EN=1;_nop_();_nop_();_nop_();_nop_();EN=0;/*初始化*/第25頁(共42頁)??飘厴I(yè)設計(論文)void LCDINIT()Delay1ms(15);wcomd(0x38);/功能設置Delay1ms(5);wcomd(0x38);/功能設置Delay1ms(5);wcomd(0x01);/清屏Delay1ms(5);wcomd(0x08);/關顯示Delay1ms(5);wcomd(0x0c);/開顯示,不開光標/*顯示函數*/void Display(void) /顯示函數unsigned char i,j;unsigned char a12

48、=0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53;/顯示measurementsLCDINIT();for(i=0;i<12;i+)/寫顯示第一行 wcomd(0x80+i);Delay1ms(1);wdata(ai);Delay1ms(1);for(j=0;j<6;j+)/寫顯示第二行第26頁(共42頁)??飘厴I(yè)設計(論文)wcomd(0xc0+j);Delay1ms(1);wdata(0x30+bj);Delay1ms(1);Delay1ms(150);void main()IE=0x81;外部中斷允許TM

49、OD=0x09;IT0=1;為脈沖觸發(fā)TH0=0x00;TL0=0x00;T_flag=0;_reset=0;while(1)while(!b_test)行i=0;_reset=1;EX0=1;while(_reset)i+; /打開全部的中斷控制,并開啟 /T0為16位計數工作方式1 /設置外部中斷的觸發(fā)的方式 /如果有測量按鍵輸入就往下執(zhí) /啟動555時基芯片 /開啟中斷0 /超出等待時間,中斷還沒有過來,就退出第27頁(共42頁)??飘厴I(yè)設計(論文)if(i>5000) /設置最長等待時間_reset=0; /最長等待時間到還沒有中斷,停止555if(N<100) /如果計數

50、值小于100,顯示SM,表示應換用小一點的量程b3=0X1D;b2=0X23;if(N>5000) /如果計數值大于5000,顯示LA,表示應換用大一點的量程b3=0X11;b2=0X1C;if(N>=100 && N<=5000)C=N/100; /計算電容的大小b2=C/10; /計算電容值的十位b3=C-b2*10; /計算電容值的各位Display(); /顯示電容的大小void int0(void) interrupt 0 /第一次中斷開始計數,第二個中斷停止計數 T_flag=!T_flag;if(T_flag=1)第28頁(共42頁)專科畢業(yè)設計

51、(論文)TR0=1; /開始計時if(T_flag=0)TR0=0; /停止計時EX0=0; /關閉中斷_reset=0; /停止發(fā)出方波N=TH0*256+TL0; /計算計數器的值N=N*5/3;TH0=0x00; /恢復初值TL0=0x00;3.7結果分析通過仿真得到如下數據表格表4 電容測量值與實際值的比較通過表中的數據可以看出仿真的數據還是比較準確的,但是在實際的操作中,測量值可能沒有這么準確,因為在實際的電路中,555芯片輸出的方波可能不會如仿真時的那么標準平滑,即使加上一些去除毛刺和去干擾的電路例如加上一個兩輸入與門或者加上一個過零比較器或者瀉回比較器波形還是不會那么理想,再加上

52、單片機的測量也會存在一些誤差,所以綜合以上的一些考慮,真實中的測量結果肯定要比仿真中的結果誤差大。所以本次的方案算然說不能過非常精確的測出結果來,但是相比較一些能夠測出比較精確結果的電路來,本電路是實現起來很容易,測量結果也比較準確,實際操作中比較有保障的一種電路。第29頁(共42頁)專科畢業(yè)設計(論文)第30頁(共42頁)??飘厴I(yè)設計(論文) 4 主要元器件介紹AT89C51是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片內含4Kb字節(jié)的快速可擦寫的只讀程序存儲器(PEROM)和128 字節(jié)的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼

53、容標準MCS-51產品指令系統(tǒng),片內置通用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可為您提供許多高性價比的應用場合,可靈活應用于各種控制領域。主要性能參數:1)與MCS-51產品指令系統(tǒng)完全兼容;2)4K字節(jié)可重復寫flash閃速存儲器;3)1000次擦寫周期;4)全靜態(tài)操作:0HZ24MHZ;5)三級加密程序存儲器;6)128*8字節(jié)內部RAM;7)32個可編程I/O口;8)2個16位定時/計數器;9)6個中斷源;10)可編程串行UART通道;11)低功耗空閑和掉電模式。功能特性概述:AT89C51提供以下標準功能:4K 字節(jié)閃速存儲器,128字節(jié)內部RAM,32個I/O口線,兩個16位定時/計數器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89C51可降至0HZ的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。引腳功能說明:Vcc:電源電壓GND:地P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數據總線復位口。作為輸出口用時,每位能吸收電流的方式驅動8個邏輯門電路,對端口寫“1”可 作為高阻抗輸入端用。在訪問外部

溫馨提示

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

評論

0/150

提交評論