基于單片機的壓力傳感器系統(tǒng)的設計與實現(xiàn)_第1頁
基于單片機的壓力傳感器系統(tǒng)的設計與實現(xiàn)_第2頁
基于單片機的壓力傳感器系統(tǒng)的設計與實現(xiàn)_第3頁
基于單片機的壓力傳感器系統(tǒng)的設計與實現(xiàn)_第4頁
基于單片機的壓力傳感器系統(tǒng)的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要4第1章 緒論- 1 -1.1 課題設計背景- 1 -1.2 傳感器系統(tǒng)簡介- 1 -1.3 本文內(nèi)容提要- 2 -第2章 調(diào)理電路硬件設計- 2 -2.1 傳感器電路分析- 2 -2.2選用放大電路及其電路分析- 3 -2.3 AD轉(zhuǎn)換電路的設計- 4 -2.3.1AD0804的外圍接口的功能:- 4 -控制程序的設計:6 2.4 LCD顯示電路的設計 8 2.4.1LCD的介紹8 第3章 控制程序的設計15 3.1 程序要完成的任務15 3.2 程序流程設計 16 第4章 課題總結18 4.1 儀用放大電路 18 4.2單片機的使用18 4.3 AD轉(zhuǎn)換和LCD的控制- 18 -在使

2、用類似于AD轉(zhuǎn)換芯片和LCD顯示等數(shù)字集成芯片時,我們重點關注于其外圍引腳的功能和控制時序圖就可以了,通過外圍引腳的功能來設計電路連接圖,等外圍電路連接好以后其實它的控制程序的大概框架就有了,再結合著時序圖對各個引腳狀態(tài)變化的先后順序和各個狀態(tài)的持續(xù)時間做一下處理,我們的控制程序基本上就可以出爐了。當然這時我們編寫出的控制程序只是一個理論上的結果,最多有一個仿真結果。在實際調(diào)試時若出現(xiàn)了焊接失誤或者是程序控制的問題時,我們最好任然秉持先前的網(wǎng)口概念。對整個電路和程序進行模塊化處理,一個模塊一個模塊的檢查處理。這樣我們調(diào)試的效率就會提高很多。- 18 -第5章 結論- 19 -在課題選擇之初,其

3、目的是為了熟練掌握針對于壓力測量電路的設計和應用,并分析在設計過程中對測量精度影響較大的部分。但是在設計過程中,這一目的被逐漸淡化,轉(zhuǎn)而注重于各個模塊的選擇和設計。因為在設計的過程當中發(fā)現(xiàn),我們對調(diào)理電路的設計所考慮的參數(shù)似乎和實際的物理量并沒有太大的關系,若不考慮傳感器與物理世界的交互方式的話,如文章開頭所述:我們只要對電量進行操作就可以了。- 19 -致 謝- 19 -參考文獻- 20 -畢業(yè)設計報告(論文)報告(論文)題目:基于單片機的壓力傳感器 系統(tǒng)的設計與實現(xiàn) 作者所在系部: 電子工程系 作者所在專業(yè): 電子信息工程 作者所在班級: B10212 作 者 姓 名 : 雷宇 作 者 學

4、 號 : 20104020419 指導教師姓名: 王喜斌 完 成 時 間 : 2014年6月3日 北華航天工業(yè)學院教務處制北華航天工業(yè)學院畢業(yè)設計(論文)任務書(理工類)學生姓名: 雷宇 專 業(yè): 電子信息工程 班 級: B10212 學 號:20104020419 指導教師: 王喜斌 職 稱: 副教授 完成時間: 2014.6 畢業(yè)設計(論文)題目:基于單片機的壓力傳感器系統(tǒng)的設計與實現(xiàn)題目來源教師科研課 題縱向課題( )題目類型理論研究()注:請直接在所屬項目括號內(nèi)打“”橫向課題()應用研究()教師自擬課題()應用設計()學生自擬課題()其 他()總體設計要求及技術要點:依托于單片機的控制

5、原理,設計控制程序和相關電路,實現(xiàn)對AD轉(zhuǎn)換電路和液晶顯示器的控制,使之能夠基本實現(xiàn)對壓力的測量和顯示。整體設計的關鍵部分有兩點:1. 對傳感器輸入模擬信號的放大與轉(zhuǎn)換。2. 對液晶顯示電路的控制。工作環(huán)境及技術條件:個人計算機一臺,相關開發(fā)軟件,單片機最小系統(tǒng)開發(fā)板一套,液晶顯示屏一塊。工作內(nèi)容及最終成果: 1、編寫出控制程序。 2、調(diào)試AD轉(zhuǎn)換以及液晶顯示電路。 3、焊接出放大電路,AD轉(zhuǎn)換模塊和LCD顯示模塊電路 4、連接各個模塊,并調(diào)試程序,使之能夠與已有壓力傳感器配合測量壓力時間進度安排:1、第七學期第6周第15周,查閱資料,完成開題報告、文獻綜述、外文文獻翻譯;2、第七學期第16周

6、第17周,開題報告審閱、答辯;3、第八學期第1周第4周,分析系統(tǒng)功能確定各個模塊的核心器件;4、第八學期第5周第7周,搜集整理各模塊核心器件的使用方法,并設計硬件原理圖;5、第八學期第8周第14周,完成控制程序的編制;6、第八學期第15周第17周,完成電路的焊接,并調(diào)試功能,完成畢業(yè)論文。指導教師簽字: 年 月 日教研室主任意見:教研室主任簽字: 年 月 日北華航天工業(yè)學院本科生畢業(yè)設計(論文)原創(chuàng)性及知識產(chǎn)權聲明本人鄭重聲明:所呈交的畢業(yè)設計(論文)環(huán)道控制系統(tǒng)下位軟件設計方案二是本人在指導教師的指導下,獨立進行研究工作取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本設計(論文)不含任何其他個人或

7、集體已經(jīng)發(fā)表或撰寫過的作品或成果。對本設計(論文)的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。因本畢業(yè)設計(論文)引起的法律結果完全由本人承擔。本畢業(yè)設計(論文)成果歸北華航天工業(yè)學院所有。本人遵循北華航天工業(yè)學院有關畢業(yè)設計(論文)的相關規(guī)定,提交畢業(yè)設計(論文)的印刷本和電子版本。本人同意北華航天工業(yè)學院有權保存畢業(yè)設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;可以采用影印、縮印、數(shù)字化或其它復制手段保存論文;在不以營利為目的的前提下,可以公布非涉密畢業(yè)設計(論文)的部分或全部內(nèi)容。特此聲明畢業(yè)設計(論文)作者: 指導教師: 年 月 日 年 月 日摘 要在現(xiàn)實生活與

8、工業(yè)生產(chǎn)中幾乎隨時隨地都要測量各種物理量,例如壓力,溫度,長度等等。然而這些不同的物理量的測量與處理過程是大同小異的,主要包括傳感器,放大電路,AD轉(zhuǎn)換電路,控制器,以及輸出部分,這就給我們的模塊化設計提供了先天條件。這樣我們就可以很方便在不同測量設備中進行模塊化移植。關鍵詞 單片機,AD轉(zhuǎn)換電路,液晶顯示 AbstractAlmost whenever and wherever possible to measure various physical quantities, in real life and in industrial production, such as pressure

9、,temperature, length, etc. However, measurement and process these different physical quantity is very much the same, mainly consists of sensor,amplifier circuit, AD conversion circuit, controller, and output part, this will give our modular design provides congenital conditions. So we can easily bem

10、odular grafting in different measuring equipment Key words Microcontroller, AD conversion circuit, liquid crystal display 目 錄摘 要4第1章 緒論- 1 -1.1 課題設計背景- 1 -1.2 傳感器系統(tǒng)簡介- 1 -1.3 本文內(nèi)容提要- 2 -第2章 調(diào)理電路硬件設計- 2 -2.1 傳感器電路分析- 2 -2.2選用放大電路及其電路分析- 3 -2.3 AD轉(zhuǎn)換電路的設計- 4 -2.3.1AD0804的外圍接口的功能:- 4 -控制程序的設計:- 6 -2.4 L

11、CD顯示電路的設計- 8 -2.4.1LCD的介紹- 8 -第3章 控制程序的設計- 15 -3.1 程序要完成的任務- 15 -3.2 程序流程設計- 16 -第4章 課題總結- 18 -4.1 儀用放大電路- 18 -4.2單片機的使用- 18 -4.3 AD轉(zhuǎn)換和LCD的控制- 18 -在使用類似于AD轉(zhuǎn)換芯片和LCD顯示等數(shù)字集成芯片時,我們重點關注于其外圍引腳的功能和控制時序圖就可以了,通過外圍引腳的功能來設計電路連接圖,等外圍電路連接好以后其實它的控制程序的大概框架就有了,再結合著時序圖對各個引腳狀態(tài)變化的先后順序和各個狀態(tài)的持續(xù)時間做一下處理,我們的控制程序基本上就可以出爐了。當

12、然這時我們編寫出的控制程序只是一個理論上的結果,最多有一個仿真結果。在實際調(diào)試時若出現(xiàn)了焊接失誤或者是程序控制的問題時,我們最好任然秉持先前的網(wǎng)口概念。對整個電路和程序進行模塊化處理,一個模塊一個模塊的檢查處理。這樣我們調(diào)試的效率就會提高很多。- 18 -第5章 結論- 19 -致 謝- 19 -參考文獻- 20 -第1章 緒論1.1 課題設計背景隨著社會科技的進步,人們對生活的品質(zhì)要求的提高,以及工業(yè)生產(chǎn)中日益精確的控制要求,現(xiàn)在幾乎隨時隨地都需要對各種物理量進行測量。我們從很早就開始了對現(xiàn)實物理世界的觀察與描述,而測量則是我們探索物理世界的一個重要手段。隨著電子技術的迅速發(fā)展,我們開始在測

13、量中大量引入電子技術,其測量的便捷性,智能性都得到了廣泛的認可,從而促進了傳感器技術的迅速發(fā)展。各種傳感器種類繁多,形態(tài)各異,其測量機理也不盡相同,但是不論其測量的是何種物理量,基于哪一種測量機理,其最終的轉(zhuǎn)換結果都是電信號。那么我們?nèi)舫鞲衅鞯牟糠值姆请娏坎糠?,而只關注其電器性能部分,則我們只要關注對電子量的處理與識別就可以。這里我們引入“網(wǎng)口”的概念,即對于網(wǎng)絡內(nèi)部的構造于運行機理并不投入過多的注意力,轉(zhuǎn)而關注整個網(wǎng)絡于網(wǎng)絡外部的接口部分的電量變換規(guī)律,這樣就大大降低了設計與使用的難度。這個課題的目的就是想通過壓力傳感器系統(tǒng)這一個例的設計與研究,總結出一個行之有效的,可以應用于其他傳感器

14、類型的調(diào)理控制電路。1.2 傳感器系統(tǒng)簡介依據(jù)上文所說到的“網(wǎng)口”概念,我們拋開其內(nèi)部工作機理對系統(tǒng)進行簡單的劃分與介紹。這里的“網(wǎng)口”其實也可以理解為系統(tǒng),我們生活中會遇到很多系統(tǒng),而系統(tǒng)與系統(tǒng)之間又相互交匯,存在著信息與能量的交換,即與外部存在著“網(wǎng)口”。例如傳感器系統(tǒng),一端與物理世、世界相連,將物理量采集到其系統(tǒng)內(nèi)部,經(jīng)過系統(tǒng)內(nèi)的一系列運作,最終變成人可識別的信息輸出給人。物理世界就是它的輸入,人能看到的輸出終端就是他的輸出。而對于傳感器系統(tǒng)內(nèi)部而言,又可以劃分為一連串的小系統(tǒng),其中包括放大電路,AD轉(zhuǎn)換電路,單片機控制電路,LCD顯示電路。其連接結構如下:LCD顯示單片機AD轉(zhuǎn)換放大電

15、路傳感器1.3 本文內(nèi)容提要本文主要包括以下內(nèi)容:1整體系統(tǒng)的的實現(xiàn)方法。2各個模塊的設計連接與實現(xiàn)方案。3為其他傳感器的測量變送系統(tǒng)提供設計思路。第2章 調(diào)理電路硬件設計在課題設計中我們采用的控制芯片為STC89C52單片機,AD轉(zhuǎn)換采用AD0804,顯示模塊采用LCD1602,由于這幾種芯片已經(jīng)是很成熟的設備,各種技術資料的介紹已經(jīng)很完備,所以在本文中我們不對各個芯片的技術參數(shù)再做贅述,而側重于實際設計的思路分析。文中僅引用一些我們設計時需要關心的內(nèi)容,在設計思路上,我們先對各個模塊進行獨立設計,在最后再將各部分組裝到一起。2.1 傳感器電路分析由于傳感器輸出信號很小,一般是幾十到幾百毫伏

16、,而且為保證下一級電路的介入不影響傳感器的工作狀態(tài)我們要選擇輸入阻抗較高的放大電路,防止放大電路的輸入級從傳感器吸收過多的電流從而導致傳感器輸出的電壓下降,造成測量誤差。其機理如下圖:如圖,我們?nèi),d兩端作為輸出級當電橋處于不平衡狀態(tài)時c,d兩點間存在電位差,取為輸出,則經(jīng)過簡單的三角形星形變換后可知輸出負載阻抗越高,對橋型電路影響越小。2.2選用放大電路及其電路分析采用的放大電路如圖1所示,對上圖電路進行分析,LM324的1引腳輸出為VO1,7引腳輸出為VO2,8引腳為VO,對上圖所示為一個儀用放大器電路原理圖,具有高輸入阻抗和高電壓增益的特點,圖中U2:A和U2:B構成了同相并聯(lián)差動放大

17、器,第一級輸出為:VO=1+(R2+R3)/RV2VI;由于反饋的作用使第一級的兩個運放的vp和vn幾乎相等即虛短,進而使其輸入端幾乎沒有電流流過,這意味著它不從上一級的傳感器橋式電路中吸收電流,具有高輸入阻抗。U2:C構成第二級差動放大,在這一級放大電路中,欲有效抑制共模干擾,需使R1=R4=R;R5=R6=Rf;則總的放大輸出為VO=(Rf/R)VO=1+(R2+R3)/RV2(Rf/R)VI。其中RV2為滑動變阻器,可調(diào)節(jié)放大增益。2.3 AD轉(zhuǎn)換電路的設計由于傳感器輸出信號為模擬信號,我們使用的處理芯片只識別數(shù)字信號,所以需要將模擬量轉(zhuǎn)換為數(shù)字量,對于使用者而言我們不必過多關心起內(nèi)部的

18、構造與原理,而把注意力放到其控制接口與接口性能上,本文以AD0804為例來設計AD轉(zhuǎn)換電路,2.3.1AD0804的外圍接口的功能:/CS:芯片片選信號,低電平有效,即/CS=0,該芯片才能正常工作,當外接多個AD芯片是可以通過這個接口來控制是哪一個芯片在工作;如在多通道采集電路中,當我們使用到AD轉(zhuǎn)換時,就可以通過片選信號的控制來完成通道的選擇。/WR:啟動ADC0804進行ADC采樣,該信號低電平有效,我們在程序的初始化時該接口給低電平,使用時當整個電路初始換完成后,準備開始數(shù)據(jù)采集時,給該接口低電平信號,AD芯片開始進行轉(zhuǎn)換。DB0DB7:由于AD0804是8位轉(zhuǎn)換芯片,即將AD所能采集

19、到的最大模擬量分成28分,結果以二進制形式存儲到DB0DB7,等待控制芯片的讀取。/RD:低電平有效,當轉(zhuǎn)換完成后,轉(zhuǎn)換結果已經(jīng)存到DB0DB7后,由單片機控制給出低電平信號,這時單片機可以從數(shù)據(jù)接口讀出轉(zhuǎn)換結果。UIN(+)和UIN(-):模擬電壓輸入端,模擬電壓輸入接UIN(+)端,UIN(-)端接地。雙邊輸入時UIN(+)、UIN(-)分別接模擬電壓信號的正端和負端。當輸入的模擬電壓信號存在“零點漂移電壓”時,可在UIN(-)接一等值的零點補償電壓,變換時將自動從UIN(+)中減去這一電壓。本電路中直接將傳感器的兩個輸出端接到芯片的兩個模擬輸入端上。VREF/2:參考電壓接入引腳,參考電

20、壓值是AD輸出的最大值該引腳可外接電壓也可懸空,若外界電壓,則ADC的參考電壓為該外界電壓的兩倍,如不外接,則Vref與Vcc共用電源電壓,此時ADC的參考電壓即為電源電壓Vcc的值,。CLKR和CLKIN:外接RC電路產(chǎn)生模數(shù)轉(zhuǎn)換器所需的時鐘信號,時鐘頻率CLK = 1/1.1RC,一般要求頻率范圍100KHz1.28MHz。AGND和DGND:分別接模擬地和數(shù)字地,電路中有時會出現(xiàn)數(shù)字部分與模擬部分相互干擾的情況,這時我們要實行數(shù)模隔離,地線需相對獨立。 /INT:中斷請求信號輸出引腳,該引腳低電平有效,當一次A/D轉(zhuǎn)換完成后,將引起/INT=0,應用時,將這一接口與單片機中斷入口相連接,

21、當中斷觸發(fā)時單片機處理中斷程序,讀取AD轉(zhuǎn)換結果。外圍電路的設計1. 需要單片機控制的引腳:/CS、/WR、DB0DB7、/RD,以上幾個接口用于與單片機的數(shù)據(jù)通信,實現(xiàn)單片機對數(shù)據(jù)轉(zhuǎn)換的控制和結果的讀取。2. 電源電路的接法:電源部分包括VCC、VREF/2、AGND、DGND。VCC使用5V電壓,VREF/2懸空這樣參考電壓即為電源電壓,AGND和DGND可根據(jù)實際情況選擇公用地線,或者進行隔離。3. CLKR和CLKIN接口可根據(jù)實際工作電路的運行情況選擇RC震蕩電路的頻率。若不影響實際的使用,可以將頻率設計的地一些,給單片機留出工作反應時間,以免中斷請求過于頻繁而影響到整個系統(tǒng)程序的執(zhí)

22、行。仿真電路如下:我們進行電路設計時此圖中C4選取的值較大,實際設計時可根據(jù)CLK = 1/1.1RC進行換算選取合適的時鐘頻率。且由于設計時是分模塊進行的,所以上圖的UIN(+)和UIN(-)兩個模擬輸入量未接入上級的放大電路輸出接口,僅以一個可控的電源輸入來代替。實際應用時UIN(+)接放大電路的輸出接口,UIN(-)接地??刂瞥绦虻脑O計:在進行程序設計時我們需要用到數(shù)據(jù)手冊中的時序圖:結合前文的接口功能我們讀時序圖,時序圖由兩個部分組成,轉(zhuǎn)換時序和輸出時序,1. 轉(zhuǎn)換時序:由轉(zhuǎn)換時序圖可知,當/CS給低電平的情況下,/WR由高電平變成低電平并保持TW(/WR)的時間后再拉高,即啟動一次轉(zhuǎn)

23、換,啟動之后需等待轉(zhuǎn)換完畢這一段的時間最少是8+73=81個時鐘周期,結合前文提到的CLK = 1/1.1RC公式我們可以計算出這一延時的長度。轉(zhuǎn)換完成之后芯片自動將結果存到D0 D7的寄存器中。這時中斷輸出位拉低。2. 輸出時序:采樣轉(zhuǎn)換完畢后,再/CS信號為低的前提下,將/RD腳由高電平拉成低電平后,經(jīng)過tACC的延時即可從DB腳讀出有效的采樣結果。根據(jù)以上分析結果我們就可以進行程序的編寫了,以下為AD轉(zhuǎn)換模塊的控制程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit cs=P0

24、1;sbit wr=P03;sbit rd=P02;void init();/初始化程序void start();/啟動轉(zhuǎn)換程序void read();/結果讀取程序void delay(uint z);/延時函數(shù)void main()init();while(1) start(); read(); void init()/初始化程序cs=1;wr=1;void delay(uint z)/延時函數(shù)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void start()/啟動轉(zhuǎn)換程序cs=0;wr=0;delay(1);wr=1;delay(3)

25、;void read()/結果讀取程序uchar dd;cs=0;rd=0;delay(10);dd=P1;我們現(xiàn)在編寫的僅僅是針對于AD轉(zhuǎn)換的一部分,但是C語言程序有很高的可移植性。所以講幾個模塊的程序編寫出來以后再進行程序的“組裝”。2.4 LCD顯示電路的設計LCD顯示乍一看好像很麻煩,實際上來講其設計思路與AD電路的設計思路是非常相似的,其區(qū)別在于AD0804芯片是靠其外圍接口的控制來完成控制工作,不同之處在于,LCD顯示模塊中有存儲功能,需要對其內(nèi)部的存儲空間具有一定的了解。下面我們從LCD1602的數(shù)據(jù)手冊開始逐步的了解其使用方法。等我們將數(shù)據(jù)手冊分析明白后,我們的硬件電路接線圖和

26、程序就基本上設計出來了。2.4.1LCD的介紹這里我們?nèi)稳槐星拔牡摹熬W(wǎng)絡”概念,關于其內(nèi)部一些不必要的構造以及運行原理全部摒棄不要,只介紹我們使用時需要了解的部分,即,主要技術參數(shù)、外圍電路接口、指令、時序圖,供電電源設計外圍電路時我們因注意這些使用參數(shù),暫且稱之為運行條件吧,其內(nèi)容如下:芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V設計電路時,參照這幾個參數(shù)以保證電路的正常運行,避免損壞芯片。硬件接口第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼

27、影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,LCD1602模塊中集成了寄存器,以存儲指令和數(shù)據(jù),我們寫入的內(nèi)容是放到數(shù)據(jù)寄存器來顯示,還是放到程序寄存器來進行模塊控制,由此引腳的狀態(tài)來決定。RS高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。本系統(tǒng)只進行寫操作,所以此引腳一直給低電平。第6腳:E端為使能端,當E端由高電平時讀取信息;由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7數(shù)據(jù)線,我們通過這八個I/O口進行單片機和LCD的數(shù)據(jù)傳輸。第15腳:背光源正極。第16腳:背光源負極。

28、有了以上內(nèi)容我們就可先進行硬件電路的設計了,因為LCD與單片機之間只有信號的交流,其顯示功率由模塊內(nèi)部的驅(qū)動電路提供所以省去了數(shù)碼管的外圍驅(qū)動電路。這樣大大簡化了硬件電路的設計難度。其連接圖如下由于我們只進行寫操作所以RW引腳一直給低電平,直接接地控制指令序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關控制0000001DCB5光標或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀

29、忙標志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容在研究LCD數(shù)據(jù)手冊時,我迷惑了半天始終搞不明白LCD的控制方法,原因之一就是,沒有把指令、數(shù)據(jù)以及控制時序之間的關系搞明白。現(xiàn)在我用自己的話將我對這些操作的理解敘述一遍:在操作LCD模塊時其實和操作單片機是一樣的,不管我們操作的是單片機的哪一種功能,控制的哪一個引腳,實際上我們并沒有對這個引腳進行直接的操作,我們操作的是這一引腳所對應的寄存器。例如:我們想讓P11口輸出1,我們是把“1”這個數(shù)據(jù)裝入到與P11連接的寄存器中,到時候單片機自動將寄存器中的狀態(tài)轉(zhuǎn)換成

30、P11接口的高低電平輸出?,F(xiàn)在回到LCD的操作,我們在操作LCD模塊時,本質(zhì)上也是對其內(nèi)部的寄存器進行操作,而且,LCD的寄存器有兩種,一種是程序寄存器(指令寄存器),一種是數(shù)據(jù)寄存器,指令寄存器,顧名思義,就是存指令的,而指令的作用我們先前已經(jīng)介紹了,但是在閱讀指令集的時候要弄清楚各個位是做什么的。前面的兩位RS和RW是控制位,他們的狀態(tài)決定了我們是對數(shù)據(jù)寄存器操作還是對指令寄存器進行操作,和進行的是讀操作還是寫操作,后面的D0D7八個位才是寫到寄存器里面的內(nèi)容。這樣我們的思路就清晰了。:RS,RW,E三個端口的時序配合如下:讀狀態(tài) 輸入:RS=L,RW=H,E=H 輸出:DB0DB7=狀態(tài)

31、字寫指令 輸入:RS=L,RW=L,E=下降沿脈沖,DB0DB7=指令碼 輸出:無讀數(shù)據(jù) 輸入:RS=H,RW=H,E=H 輸出:DB0DB7=數(shù)據(jù)寫數(shù)據(jù) 輸入:RS=H,RW=L,E=下降沿脈沖,DB0DB7=數(shù)據(jù) 輸出:無 讀操作時序 寫操作時序看到這里我們在回頭對應先前的指令集,就可以發(fā)現(xiàn),所謂的指令集,是要分開兩個部分來看的,第一部分是RS和RW兩個控制位,第二部分我們可以稱之為指令。我們要做的工作就是按照時序圖的要求將需要寫入的指令或數(shù)據(jù)送給LCD。在編寫程序時,將rs,rw,e三個端口設置好之后,直接將要寫入的內(nèi)容送給D0D7口就可以了。程序設計由先前的分析我們可知,LCD的主要控

32、制程序分為寫指令程序和寫數(shù)據(jù)程序,我們先按照時序圖將兩個子程序?qū)懴聛韺懼噶畛绦騰oid lcdwrite_com(uchar com)lcdrs=0;P0=com;delay(1);/延時函數(shù)lcden=1;delay(5);lcden=0;寫數(shù)據(jù)程序void write_data(uchar date)lcdrs=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;利用這兩個子程序就可以寫入相關指令和程序了下面我們先利用這兩個子程序完成LCD的初始化設置。void init()lcdwrite_com(0x06);/指令3,光標右移,文字不移動lcdwri

33、te_com(0x0c);/指令4,顯示器開,無光標,無閃爍lcdwrite_com(0x14);/指令5,光標右移一格lcdwrite_com(0x38);/指令6,設置 8 位格式,2 行,5x7lcdwrite_com(0x01);/清屏delay(5);延時,令LCD有足夠時間完成清屏程序然后我們就可以對先前寫成的程序進行組裝了,組裝結果如下:#include<reg52.h>#define uchar unsigned char#define uint unsigned int#define lcd_db P0 sbit lcdrs=P20;sbit lcden=P21;

34、void lcdwrite_com(uchar com);/寫指令void lcdwrite_data(uchar date);/寫數(shù)據(jù)void lcd_disp_char(uchar a,uchar b,uchar c);/顯示程序void init();void delay(uint z);void main()init(); lcd_disp_char(0,1,'A'); while(1);void lcd_disp_char(uchar a,uchar b,uchar c)/顯示程序 uchar address; if(b=1) address=0x80+a; else

35、 address=0xc0+a; lcdwrite_com(address); lcdwrite_data(c); 由于其他子程序內(nèi)容,前文已經(jīng)給出,所以這里的程序就不再贅述。第3章 控制程序的設計在之前的對各個硬件電路的控制過程3.1 程序要完成的任務程序即命令,它要擔負起整合硬件資源的任務,并且要對信息進分析處理。針對我們這個課題。我們先做一個簡單的流程。將數(shù)據(jù)放到LCD里顯示控制AD轉(zhuǎn)換得到數(shù)據(jù)如圖實際上我們這個系統(tǒng)就完成了這么一個簡單的工作,簡要而言我們的單片機相當于一個數(shù)據(jù)的“搬運工”,對AD模塊和LCD模塊的的控制程序先前我們已經(jīng)介紹過了。這里我們要分析一下程序要完成的其他任務。我

36、們知道AD轉(zhuǎn)換過后的數(shù)據(jù)是放大電路輸出的一個電壓值,并不是我們想要顯示的力值,所以需要對數(shù)據(jù)進行處理。我們的AD為8位總線,所以最大數(shù)值為255,設滿量程質(zhì)量為100g那么8位總線上的數(shù)變化1,實際重量變化100/256g,即為顯示精度,若從AD中得到的數(shù)為100,那么實際物體的重量為100*100/256=39.0625g,現(xiàn)在我們舍去后面的小數(shù)位,只將“39g”輸入到LCD中顯示,那么我們就要分別將“3”“9”“g”這三個字符放到LCD中,這樣我們就要把這三個字符分離出來,所以單片機在搬運數(shù)據(jù)的過程中要先將數(shù)據(jù)放到數(shù)據(jù)處理程序中處理一下,再將處理結果“搬到”LCD中。這樣我們就有了程序設計

37、思路了。程序要完成的任務流程如下,依次將各位數(shù)據(jù)輸入LCD將重量值各個位分離將數(shù)據(jù)轉(zhuǎn)換成實物的重量控制AD轉(zhuǎn)換得到數(shù)據(jù)3.2 程序流程設計主程序流程圖如下:開始程序初始化啟動AD轉(zhuǎn)換一次讀取AD轉(zhuǎn)換結果將AD轉(zhuǎn)換結果換算成實物重量LCD顯示重量END程序如下void main()init();/初始化程序,包括AD和LCD的初始化while(1)adread();/啟動并讀取ad結果shiwu();/將結果轉(zhuǎn)換成實物重量display();/LCD顯示程序主程序中AD轉(zhuǎn)換和LCD顯示程序前文已經(jīng)介紹過,這里不再贅述。這里僅給出實物轉(zhuǎn)換的子程序。流程如下:開始讀取轉(zhuǎn)換結果將結果乘上一個系數(shù)返回一

38、個結果結束程序如下:第4章 課題總結4.1 儀用放大電路儀用放大器是從差分放大器電路上發(fā)展優(yōu)化而來,采用雙端輸入的模式,輸入端幾乎不吸收電流, 并且電路結構對稱, 漂移和失調(diào)相互抵消, 具有抑制共模信號干擾的能力。它源于運放,但是優(yōu)于運放,外圍電路設計簡單,本課題為說明放大原理,和放大倍數(shù)的設置方法并沒有采用現(xiàn)成的集成儀用放大器,而采用分離原件構成。實際上采用集成儀用放大器設計將更加簡潔且精密度更高。由于其優(yōu)異的性能,儀用放大器在實際應用很廣,例如數(shù)據(jù)采集、傳感器信號放大、高速信號調(diào)節(jié)、醫(yī)療儀器和高檔音響設備等方面。本課題采用這一電路的目的就是為熟練的掌握儀用放大電路的使用方法。這樣在其他應用

39、場合中,就可以很容易的進行模塊移植。4.2單片機的使用單片機是很經(jīng)典的一種微控制芯片,他具有數(shù)據(jù)處理、存儲、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能。我們使用單片機就是在熟練的使用這些功能而已,但是卻不應過多的關注于這些功能的實現(xiàn)過程或者是實現(xiàn)原理。實際上我們在使用過這些功能的過程中會發(fā)現(xiàn)我們要做的工作僅僅是對其各寄存器進行操作而已。例如我們想讓某一I/O口輸出高電平,那我們就把狀態(tài)“1”寫入到這一I/O口所對應的寄存器里就可以了。再如我們對定時器的設置,實際上就是將我們計算好的狀態(tài)值輸入到需要設置的控制寄存器里就可以了。當然前提是我們要先了解各個寄存器的作用,按照數(shù)據(jù)手冊的要求設置出我們

40、需要的狀態(tài)。4.3 AD轉(zhuǎn)換和LCD的控制在使用類似于AD轉(zhuǎn)換芯片和LCD顯示等數(shù)字集成芯片時,我們重點關注于其外圍引腳的功能和控制時序圖就可以了,通過外圍引腳的功能來設計電路連接圖,等外圍電路連接好以后其實它的控制程序的大概框架就有了,再結合著時序圖對各個引腳狀態(tài)變化的先后順序和各個狀態(tài)的持續(xù)時間做一下處理,我們的控制程序基本上就可以出爐了。當然這時我們編寫出的控制程序只是一個理論上的結果,最多有一個仿真結果。在實際調(diào)試時若出現(xiàn)了焊接失誤或者是程序控制的問題時,我們最好任然秉持先前的網(wǎng)口概念。對整個電路和程序進行模塊化處理,一個模塊一個模塊的檢查處理。這樣我們調(diào)試的效率就會提高很多。第5章

41、結論在課題選擇之初,其目的是為了熟練掌握針對于壓力測量電路的設計和應用,并分析在設計過程中對測量精度影響較大的部分。但是在設計過程中,這一目的被逐漸淡化,轉(zhuǎn)而注重于各個模塊的選擇和設計。因為在設計的過程當中發(fā)現(xiàn),我們對調(diào)理電路的設計所考慮的參數(shù)似乎和實際的物理量并沒有太大的關系,若不考慮傳感器與物理世界的交互方式的話,如文章開頭所述:我們只要對電量進行操作就可以了。在整個設計過程中我們只做了一件事,就是將一個模擬量變成一個數(shù)字量,致 謝本文研究工作是在我的導師孫東輝副教授的精心指導和悉心關懷下完成的,從開題伊始到論文結束,我所取得的每一個進步、編寫的每一段程序都無不傾注著導師辛勤的汗水和心血。導師嚴謹?shù)闹螌W態(tài)度、淵博的各科知識、無私的奉獻精神

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論