單片機課程設計-電阻量測量_第1頁
單片機課程設計-電阻量測量_第2頁
單片機課程設計-電阻量測量_第3頁
單片機課程設計-電阻量測量_第4頁
單片機課程設計-電阻量測量_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、農業(yè)裝備工程學院課程設計說明書電阻量測量摘 要本設計基于單片機和AD轉換器實現電阻的測量。采用ADC0808,實現由模擬電壓轉換到數字信號,通過單片機系統(tǒng)AT89C51處理后,由LCD顯示器顯示被測量電阻的阻值。測量范圍為15K,精度大于98%。其中穩(wěn)壓電源采用的是三端集成穩(wěn)壓器7805構成的正5V直流電源,對單片機、A/D轉換器、LCD顯示器供電。本設計從硬件和軟件兩部分入手,其中硬件分為數據采集、模數轉換、數據顯示三個模塊。數據采集通過我們對兩方案的分析與對比,決定采用橋式法測量被測電阻電壓,A/D轉換器使用常見的仿真器件ADC0808,數據顯示使用LCD1602。硬件設計完成后,用Kei

2、l編程,編寫每個模塊的程序。接著使用Proteus對設計的硬件進行仿真,記錄數據并進行了分析,得出誤差小,測量范圍大的結論。最后使用Altium Designer繪制仿真電路的原理圖和PCB板。 關鍵詞:AT89C51單片機,Proteus仿真,數據處理1目 錄第一章 緒論1第二章 總體設計2§2.1總體設計思路2第三章 硬件設計5§3.1直流穩(wěn)壓電源電路的設計5§3.2電壓測量的設計5§3.3模數ADC轉換的設計7§3.4 液晶顯示電路的設計7第四章 軟件設計11§4.1 主程序工作流程圖11§4.2 程序設計11第五章

3、軟件仿真12§5.1 Protues仿真圖12§5.2 Altium Designer原理圖14第六章 設計結論16參考文獻17附錄19第一章 緒論隨著現代科技的飛速發(fā)展,生產生活中人們對工具的要求越來越高。其中對我們日常所使用的電阻表的精度和性能也要求越來越高,并且電阻表完全可以通過現代科技來實現智能化,測量不同阻值的電阻。測量不同阻值的電阻時,可以更換檔位。并且同時顯示出阻值和量程。目前市面上測量電子元器件參數R的儀表種類較多,方法和優(yōu)缺點也各有不同。一般的測量方法都存在計算復雜,不易實現自動測量而且很難實現智能化等缺點。將電阻參數轉化為電壓形式,并通過模數轉換,這樣處

4、理一方面使測量精度提高了,另一方面也便于使儀表實現智能化,并能很好的實現各個要求。本設計從硬件和軟件兩部分入手,其中硬件分為數據采集、模數轉換、數據顯示三個模塊。數據采集我們采用橋式法測量被測電阻電壓,A/D轉換器使用常見的仿真器件ADC0808,數據顯示使用LCD1602。硬件設計完成后用Keil編程,具體程序在正文當中,最后對設計的電路進行仿真,記錄顯示數據和實際數據,并進行數據對比,得出結論。1第二章 總體設計§2.1總體設計思路本設計包括硬件和軟件設計兩個部分。模塊劃分為電壓測量(數據采集)、模數轉換、阻值顯示等子模塊。電路結構可劃分為:電壓測量,電壓轉換電阻,阻值顯示及相關

5、的控制管理軟件組成。用戶終端完成信息采集、處理、數據傳送、顯示等功能。從設計的要求來分析該設計須包含如下結構:電壓測量電路,電壓轉換電路,阻值顯示電路、單片機及相關的控制軟件組成。A/D轉換器:ADC0809是很常用的一款8位的模數轉換芯片。而ADC0808是0809的簡化版,主要的不同點是0808的轉換輸出out0-7與常用的輸出端高低位是相反的,即0809的最低位是out0,0808的最低位是out7.ADC0808在實際中不常用,實際中常用的是0809,而0808最常用的是在proteus仿真里面,因為0809是沒有模型庫,無法仿真的。ADC 0808和ADC 0809除精度略有差別外(

6、前者精度為8位、后者精度為7位),其余各方面完全相同。它們都是CMOS器件,不僅包括一個8位的逐次逼近型的ADC部分,而且還提供一個8通道的模擬多路開關和通道尋址邏輯,因而有理由把它作為簡單的“數據采集系統(tǒng)”。利用它可直接輸入8個單端的模擬信號分時進行A/D轉換,在多點巡回檢測和過程控制、運動控制中應用十分廣泛。1) 主要技術指標和特性(1)分辨率: 8位。(2)總的不可調誤差: ADC0808為±2LSB,ADC 0809為±1LSB。(3)轉換時間: 取決于芯片時鐘頻率,如CLK=500kHz時,TCONV=128s。(4)單一電源: +5V。(5)模擬輸入電壓范圍:

7、單極性05V;雙極性±5V,±10V(需外加一定電路)。(6)具有可控三態(tài)輸出緩存器。(7)啟動轉換控制為脈沖式(正脈沖),上升沿使所有內部寄存器清零,下降沿使A/D轉換開始工作。(8)使用時不需進行零點和滿刻度調節(jié)。2) 部分外部引腳介紹(1)IN0IN78路模擬輸入,通過3根地址譯碼線ADDA、ADDB、ADDC來選通一路。(2)D7D0A/D轉換后的數據輸出端,為三態(tài)可控輸出,故可直接和微處理器數據線連接。8位排列順序是D7為最高位,D0為最低位。(3)ADDA、ADDB、ADDC模擬通道選擇地址信號,ADDA為低位,ADDC為高位。(4)VR(+)、VR(-)正、負

8、參考電壓輸入端,用于提供片內DAC電阻網絡的基準電壓。在單極性輸入時,VR(+)=5V,VR(-)=0V;雙極性輸入時,VR(+)、VR(-)分別接正、負極性的參考電壓。顯示器:選用LCD1602。工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形。特性:3.3V或5V工作電壓,對比度可調;內含復位電路;提供各種控制

9、命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能;有80字節(jié)顯示數據存儲器DDRAM;內建有192個5X7點陣的字型的字符發(fā)生器CGROM;8個可由用戶自定義的5X7的字符發(fā)生器CGRAM;微功耗、體積小、顯示內容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應用系統(tǒng)中;操作控制。它們之間的構成框圖如圖2-1總體設計框圖所示:AT89C51LCD顯示電壓轉換電阻(ADC0808)測量精度選擇電壓測量圖2-1 總體設計框圖處理器采用51系列單片機AT89C51。整個系統(tǒng)是在系統(tǒng)軟件控制下工作的。當測量一個電阻時,經過電壓采集,電壓轉換為電阻,電阻顯示三個部分可以在LCD上顯示該被測電阻的阻值。當

10、被測電阻為100范圍以內時,通過開關選擇測量量程,再次測量該電阻,以減小誤差。25第三章 硬件設計§3.1直流穩(wěn)壓電源電路的設計對于一個完整的電子設計來講,首要問題就是為整個系統(tǒng)提供電源供電模塊,電源電路的穩(wěn)定可靠是系統(tǒng)平穩(wěn)運行的前提和基礎。電子設備除用電池供電外,還采用市電(交流電網)供電。通過變壓、整流、濾波和穩(wěn)壓后,得到穩(wěn)定的直流電。直流穩(wěn)壓電源是電子設備的重要組成部分!本項目直流穩(wěn)壓電源為+5V。如下圖所示:直流穩(wěn)壓電源的制作一般有3種制作形式,分別是分立元件構成的穩(wěn)壓電源、線性集成穩(wěn)壓電源和開關穩(wěn)壓電源。下圖穩(wěn)壓電源采用的是三端集成穩(wěn)壓器7805構成的正5V直流電源。圖3-

11、1 三端固定式集成穩(wěn)壓電源電路圖§3.2電壓測量的設計電路的論證與對比方案一利用單穩(wěn)或電容充放電規(guī)律等,可以把被測電阻量的大小轉換成脈沖的寬窄,即脈沖的寬度Tx與Rx成正比。只要把此脈沖和頻率固定不變的方波(以下稱為時鐘脈沖)相與,便可以得到計數脈沖,將它送給數字顯示器。如果時鐘脈沖的頻率等參數合適,便可實現測量電阻。計數控制電路輸出的脈沖寬度Tx應與Rx成正比,其電路原理圖及具體555單穩(wěn)態(tài)觸發(fā)器的構成及仿真如圖3-2所示。A/D轉換電路譯碼-驅動-顯示電路555單穩(wěn)態(tài)電路圖3-2 方案一原理圖用555構成的單穩(wěn)態(tài)電路在正常工作條件下輸出脈沖的寬度Tx與Rx關系是:Tx=R*Cx*

12、ln3所產生的時間誤差可能達到百分之十五,再加上其他原因產生的誤差,測量是的時間延遲太大。 方案二用ADC0808電阻測量,以已知的電阻作為基準電阻。和被測電阻進行分壓,分壓比例得出電阻比例。R1R2=V1V2用ACD0808測量電阻時間誤差為10%以下,分辨率高,輸出能與TTL電平兼容。其原理圖如圖所示。譯碼-驅動-顯示電路A/D轉換電路簡易外圍電路圖3-3 方案二原理圖方案的對比與比較由于課程設計的要求是電阻測量需要簡單的外圍檢測電路,將電阻轉換為電壓。測試:誤差10%。通過比較以上兩個方案,可知方案二相對來說比較適合。所以選用方案二作為實驗方案。如圖3-4所示為被測電阻電壓測量。電壓經過

13、已知電阻R1和被測電阻Rx接到地。通過OUT輸出被測電阻Rx上的電壓。送到ADC0808的IN0口。圖3-4 被測電阻電壓測量圖§3.3模數ADC轉換的設計由電壓測量得到的電壓經過ADC模數轉換可得到8位的電壓值,經過歐姆定律(即電壓之比等于電阻之比)可得到被測電阻的阻值的大小。公式如下OUTUi=RxR1+Rx本設計用到的R1的阻值為600和300。由被測電阻得到的電壓經ADC0808的26腳IN0輸入,經過內部的AD轉換,在OUT17輸出數字電壓量,經過上述公式的轉變,在P2口上的顯示的數字量為被測電阻的阻值數字量。如圖3-5所示為被測電阻電壓量轉換為阻值量。IN0ADC0808

14、OUT1OUT7OUTP2圖3-5 被測電阻電壓量轉換為阻值量圖§3.4 液晶顯示電路的設計經過ADC0809模數轉換得到的電阻值數字量,在MCU的P2口輸入,MCU系統(tǒng)處理后在P0口由LCD1602顯示出來該被測電阻的阻值。如圖3-6所示為被測電阻阻值顯示。D0D7LCD1602P0AT89C51P2ADC OUT1OUT7圖3-6 被測電阻阻值顯示圖單片機時鐘電路的設計:本系統(tǒng)采用單片機內部方式產生時鐘信號,用于外接一個12MHz石英晶體振蕩器和2個30pF微調電容,構成穩(wěn)定的的自激振蕩器,其發(fā)出的脈沖直接送入內部的時鐘電路。XTAL1和XTAL2分別為反向放大器的輸入和輸出。該

15、反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。因為一個機器周期含有6個狀態(tài)周期,而每個狀態(tài)周期為2個振蕩周期,所以一個機器周期共有12個振蕩周期,如果外接石英晶體振蕩器的振蕩頻率為12MHZ,一個振蕩周期為1/12us,故而一個機器周期為1us。如圖3-7所示為時鐘電路。圖3-7 時鐘電路圖單片機復位電路的設計:確定單片機工作的起始狀態(tài),完成單片機的啟動過程。復位方法一般有上電自動復位和外部按鍵手動復位,單片機在時鐘電路工作以后, 在RESET端口持續(xù)給出2個機器周期的高電平時就可以完成復位操作6。例如使用晶振頻率為12MHz時,則復位

16、信號持續(xù)時間應不小于2us。本設計采用的是外部手動按鍵復位電路。如圖3-8所示為復位電路。圖3-8 復位電路圖由時鐘電路和復位電路連接的單片機最小系統(tǒng)如下圖所示:圖3-9 單片機最小系統(tǒng)系統(tǒng)硬件電路的選擇及說明:硬件電路的設計如上文圖中所示,從以上的分析可知本設計中要用到如下器件:AT89C51、ADC0808轉換器、LCD1602、按鍵等一些單片機外圍應用電路,以及單片機的手工復位,單片機電源電路等。其中R3,R6電阻為已知電阻,R4,R5為不同測量精度下的未知電阻,開始工作時可在LCD上觀察到被測電阻的阻值。電路設有2個按鍵,S1鍵作為阻值測量精度的選擇鍵,S2鍵作為電路復位鍵。第四章 軟

17、件設計§4.1 主程序工作流程圖按上述工作原理和硬件結構分析可知系統(tǒng)主程序流程圖如下圖所示開始系統(tǒng)初始化(重新)放置電阻選擇測量精度開關S1,重測此電阻初次顯示無正常顯示<300最終顯示正常顯示結束 圖4-1 主程序工作流程圖§4.2 程序設計A/D轉換程序、SMC1602驅動程序、主函數見附錄。第五章 軟件仿真§5.1 Proteus仿真圖本設計通過利用Proteus仿真,將所編寫的程序用Keil軟件編譯。本設計所要求達到的目標是測量一個電阻,在誤差允許范圍內,通過LCD1602顯示出該電阻的阻值。仿真圖如下圖所示:圖5-1 Proteus電路仿真圖表5-

18、1 仿真測量電阻阻值實際電阻()仿真測量(600)硬件測量(600)仿真測量(300)硬件測量(300)1.220111.520112.622225.444646.3746610999101414121312474848474749484849495151515052908989909210098981001002202182222202232402402452382463003003002972973303273383323374704694774724805105085165135225505505675505691K993102799610662K120842233209023373K2

19、9853042302631773K333233426334235253K53535377135253950§5.2 Altium Designer原理圖除仿真之外,本設計又使用Altium Designer繪制了硬件電路的原理圖,如下圖所示:圖5-2 硬件電路的原理圖其中電源電路的設計如圖5-3所示圖5-3 電源電路圖本設計使用USB接口給電路提供+5V電壓,與使用Proteus仿真電路有所不同。電路中所有的高電平全部接在VCC端,地接在USB接口的4號腳上。通電時紅燈LED-R亮。經過對原理圖編譯,更新后產生的PCB板見附錄,在此只展示了PCB板的頂層。第六章 設計結論本設計研究了

20、一種基于單片機技術的電阻測量。由電路知識可以容易測出一個電阻上的電壓。由于測量的電壓是模擬量,故用ADC轉換器轉換為數字量,再由單片機系統(tǒng)處理,再將數據傳送給顯示器即可完成電阻的阻值測量和顯示。由于數字量在數值上是離散的,通過此種方法得到的阻值存在著誤差,為了盡可能的減小此誤差,在選擇已知電阻上,試用了很多電阻。通過大量數據與實際電阻的阻值相比較,以及實驗室能提供的電阻,選用了600和300的已知電阻,用不同的量程可以盡可能的減小誤差。表5-1中給出了部分電阻的硬件電路測量結果,從中可以得知,同一電阻,用不同的量程測量得到不同的阻值,存在的誤差也很明顯。本設計只采用了兩種已知電阻,也就是2個量

21、程測量電阻,測量范圍從15K,精度大于98%。若提高測量精度,只需增加更大的量程,即可完成大電阻的阻值測量。由于硬件電路的連接,元器件不理想等原因,實際測量電阻的阻值與仿真得到的阻值還是有一定誤差的。雖然硬件電路能正常工作,但程序以及元器件的選擇不足,使得這次設計并沒有達到很好的測量效果,對微歐姆級和K歐姆級電阻無法測量,還是感到不理想。通過此次設計,尤其在硬件電路的設計的方面,使我對單片機系統(tǒng)有了更好的認識。在以后的學習中,會更加注重設計原理與硬件電路的相結合,做好每一個設計,達到理想的要求。參考文獻1 史翔,張岳濤.基于AT89C51單片機微電阻測量系統(tǒng)J. 甘肅科技,2011年8月2 周

22、瑞景. Proteus在MCS-51&ARM7系統(tǒng)中的應用百例M. 北京:電子工業(yè)出版社,20103 李全利.單片機原理及接口技術M.2版. 北京:高等教育出版社,20134 王東峰,王會良.單片機C語言應用100例M.北京:電子工業(yè)出版社,20125 彭偉. 單片機C語言程序設計實訓100例基于8051+Proteus仿真.北京:電子工業(yè)出版社,20106 張毅剛 彭喜元,彭宇.單片機原理及應用.北京:高等教育出版社,2010.57 郭天祥 新概念51單片機C語言教程.北京:電子工業(yè)出版社,2009.18 張毅剛 基于Proteus的單片機課程的基礎實驗與課程設計 北京:人民郵電出版

23、社,20129 Alan B. Marcovitz Introduction to logic Design.北京:電子工業(yè)出版社,2013附錄硬件電路PCB板各模塊程序:A/D轉換函數:#include <at89x51.h>#define START P3_4 /ATART,ALE接口。0->1->0:啟動AD轉換。#define EOC P3_3 /轉換完畢由0變1.#define OUTPORT P2 #define K1 P1_0/AD轉換函數,返回轉換結果。/轉換結果是3位數unsigned int uiADTransform()float uiResult

24、;START=1; /啟動AD轉換。START=0;while(EOC=0); /等待轉換結束。uiResult=OUTPORT; /輸入轉換結果。P1=0xFF;if(K1=1)uiResult=uiResult*600/(255-uiResult); /已知電阻為600歐姆,計算未知電阻,測量大電阻,0-9999歐姆else uiResult=uiResult*300/(255-uiResult); /已知電阻為300歐姆,計算另外的電阻,測量大電阻,0-9999歐姆 return uiResult;SMC1602驅動程序:#include "SMC1602.h"voi

25、d vWriteCMD(unsigned char ucCommand) vDelay();/先延時。LCDE=1;/然后把LCD改為寫入命令狀態(tài)。LCDRS=0;LCDRW=0;LCDPORT=ucCommand;/再輸出命令。LCDE=0;/最后執(zhí)行命令。void vWriteData(unsigned char ucData) vDelay(); /先延時。LCDE=1; /然后把LCD改為寫入數據狀態(tài)。LCDRS=1;LCDRW=0;LCDPORT=ucData; /再輸出數據。LCDE=0; /最后顯示數據。void vShowOneChar(unsigned char ucChar

26、)switch(ucChar)case ' ': vWriteData(0x20);break;case ':': vWriteData(0x3A);break;case '(': vWriteData(0x28);break;case ')': vWriteData(0x29);break;case '0': vWriteData(0x30);break;case '1': vWriteData(0x31);break;case '2': vWriteData(0x32);brea

27、k;case '3': vWriteData(0x33);break;case '4': vWriteData(0x34);break;case '5': vWriteData(0x35);break;case '6': vWriteData(0x36);break;case '7': vWriteData(0x37);break;case '8': vWriteData(0x38);break;case '9': vWriteData(0x39);break;case 'R': vWriteData(0x52);break;case 'a': vWriteData(0x61);break;case 'c': vWriteData(0x63);break;case 'e': vWriteData(0x65);break;case 'i': vWriteData(0x69);break; case 'n': vWriteDat

溫馨提示

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

評論

0/150

提交評論