電容電阻參數(shù)單片機(jī)測試系統(tǒng)的設(shè)計說明_第1頁
電容電阻參數(shù)單片機(jī)測試系統(tǒng)的設(shè)計說明_第2頁
電容電阻參數(shù)單片機(jī)測試系統(tǒng)的設(shè)計說明_第3頁
電容電阻參數(shù)單片機(jī)測試系統(tǒng)的設(shè)計說明_第4頁
電容電阻參數(shù)單片機(jī)測試系統(tǒng)的設(shè)計說明_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電氣工程與其自動化 單片機(jī)原理與應(yīng)用課程設(shè)計報告姓 名: 遠(yuǎn)釗 學(xué) 號:20122004專業(yè)班級: 電氣與其自動化120310 設(shè)計課題:電容、電阻參數(shù)單片機(jī)測試系統(tǒng)的設(shè)計指導(dǎo)教師: 仁輝 電氣與電子工程學(xué)院 2014年12月29日22 / 23目錄一 設(shè)計目的 .2二 設(shè)計任務(wù)和要求 .2三 設(shè)計原理分析 .2四 硬件設(shè)計 .3五 軟件設(shè)計 .8六 程序清單 .12七 調(diào)試與其分析 .19八 仿真截圖 .20九 設(shè)計心得體會 .22一 設(shè)計目的 1通過單片機(jī)課程設(shè)計,熟練掌握匯編語言編寫方法,將理論聯(lián)系到實踐中去,提高我們的動腦和動手能力。 2 通過對電容,電阻參數(shù)單片機(jī)測試系統(tǒng)的設(shè)計,掌握

2、NE555的使用方法,和簡單的程序編寫,最終提高我們的邏輯抽象能力。二 設(shè)計任務(wù)和要求 任 務(wù): 設(shè)計一個能測量電容,電阻參數(shù)的測試系統(tǒng) 實驗原理: 對電阻的測量,可將待測電阻與一標(biāo)準(zhǔn)電阻串聯(lián)后接在+5v的電源上,根據(jù)串聯(lián)分壓原理,利用ADC測定電阻兩端電壓后,即可測得其阻值。對電容的測量,可將其與已知阻值的電阻RA和RB組成基于NE555的多諧振蕩器,通過測 定方波信號的頻率可以比較精準(zhǔn)的測定C值。測定方波信號頻率的方法。三 設(shè)計原理分析 設(shè)計思路或設(shè)計方案論證對電阻的測量,可將待測電阻與一標(biāo)準(zhǔn)電阻串聯(lián)后接在+5V的電源上,根據(jù)串聯(lián)分壓原理,利用ADC測定電阻兩端電壓后,即可得到其阻值。對電

3、容的測量,可將其與已知阻值的電阻RA和RB組成基于NE555的多諧振蕩器如下頁圖。其產(chǎn)生的方波信號頻率為 : 故通過測定方波信號的頻率可以比較精確的測定C的值。測定方波信號頻率的方法,。測量頻率有測頻法和測周法兩種。 (1)測頻法,利用外部電平變化引發(fā)的外部中斷,測算1s的波數(shù),從而實現(xiàn)對頻率的測定; (2)測周法,通過測算某兩次電平變化引發(fā)的中斷之間的時間,實現(xiàn)對頻率的測定。簡而言之,測頻法是直接根據(jù)定義測定頻率,測周法是通過測定周期間接測定頻率。理論上,測頻法適用于較高頻率的測量,測周法適用于較低頻 率的測量。 經(jīng)過調(diào)校,在測量低頻信號時,本項目中測頻法精度已高于測 周法,故舍棄測周法,全

4、量程采用測頻法。四 硬件設(shè)計4. 1. 1按鍵電路設(shè)計按鍵是實現(xiàn)人機(jī)對話的比較直觀的接口,可以通過按鍵實現(xiàn)人們想讓單片機(jī)做的不同的工作。鍵盤是一組按鍵的集合,鍵是一種常開型開關(guān),平時按鍵的兩個觸點處于斷開狀態(tài),按下鍵是它們閉合。鍵盤分編碼鍵盤和非編碼鍵盤,案件的識別由專用的硬件譯碼實現(xiàn),并能產(chǎn)生鍵編號或鍵值的稱為編碼鍵盤,而缺少這種鍵盤編碼電路要靠自編軟件識別的稱為非編碼鍵盤。在單片機(jī)組成的電路系統(tǒng)與智能化儀器中,用的更多的是非編碼鍵盤。就是一種比較典型的按鍵電路,在按鍵沒有按下的時候,輸出的是高電平,當(dāng)按鍵按下去的時候,輸出的低電平4.1.2 LCD顯示器1602液晶也叫1602字符型液晶它

5、是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形 (用自定義CGRAM,顯示效果也不好) n1602LCD是指顯示的容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。 n目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全一樣的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。+5V電壓,對比度可調(diào) 含復(fù)位電路提供各種控制命令,如:清屏、字符閃

6、爍、光標(biāo)閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM 建有192個5X7點陣的字型的字符發(fā)生器CGROM 8個可由用戶自定義的5X7的字符發(fā)生器CGRAM電壓,對比度可調(diào)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM建有192個5X7點陣的字型的字符發(fā)生器CGROM8個可由用戶自定義的5X7的字符發(fā)生器CGRAM4. 1. 3 ADC0804轉(zhuǎn)換 ADC0804是一個8位CMOS型逐次比較式A/D轉(zhuǎn)換器,具有三態(tài)鎖存輸出功能,最短轉(zhuǎn)換時間為100us,CS:片選信號,低電平有效;RD:外部讀取轉(zhuǎn)換結(jié)果的控制信號,當(dāng)R

7、D為高電平時,DB0為高阻態(tài);當(dāng)RD為低電平時,數(shù)據(jù)才會通過DB0-DB7輸出;WR:A/D轉(zhuǎn)換器啟動控制信號,當(dāng)WR由高電平變?yōu)榈碗娖綍r,轉(zhuǎn)換器被清零,當(dāng)WR由低電平變?yōu)楦唠娖綍r,A/D轉(zhuǎn)換正式開始;CLK IN和CLK R:時鐘輸入端,在ADC0804片有時鐘發(fā)生器,采用部時鐘時,在CLK IN CLK R 和地線之間連接RC電路即可,ADC0804的工作頻率約為100-1460khz,若使RC電路作為時鐘,其振蕩頻率為1/(1.1RC);INTR:中斷請求輸出信號,當(dāng)A/D轉(zhuǎn)換結(jié)束時,INTR引腳輸出低電平,只有當(dāng)數(shù)據(jù)被取走后(單片機(jī)發(fā)出讀數(shù)據(jù)指令),此引腳才會變?yōu)楦唠娖?;VIN+和VI

8、N-:差動模擬電壓輸入端,若輸入為單端正電壓,VIN-應(yīng)接地,若差動輸入,則輸入信號直接加入VIN+和VIN-;AGND.DGND:模擬信號地與數(shù)字信號地,若系統(tǒng)對抗干擾要求嚴(yán)格,則這兩條地線必須分接地;VREF/2:參考電壓值的一半,若在ADC0804組成的電路中需要的參考電壓為5V,則此引腳可以懸空。若電路中需要使用的參考電壓小于5V,即參考電壓值的一半小于2.5V,這時可將此引腳連接到需要的參考電壓值(如4V)的1/2電壓值上(如 2V),在ADC0804芯片部會自動判斷參考電壓的選擇,當(dāng)VREF/2引腳的電壓值低于2.5V時,芯片會自動選擇由VREF/2引腳電壓放大2倍以后的電壓值作為

9、參考電壓。DB0-DB7:8位數(shù)字輸出端。4.2 系統(tǒng)工作原理論述 1實驗硬件設(shè)備:LCD1602液晶顯示器一塊,ADC0804芯片一片,兩個滑動變阻器,一個150pF電容,兩個200歐姆的電阻,一個10K歐姆的電阻,STC89C51芯片,電源,地線,按鍵(復(fù)位電路和晶振電路另加),杜邦線諾干。 2 ADC0804在使用時,外圍電壓的連接比較簡單,只需要對參考電壓和時鐘輸入端進(jìn)行設(shè)計即可。通常情況下,時鐘的輸入可以選用RC諧振電路,ADC0804可以進(jìn)行A/D轉(zhuǎn)換的時鐘頻率為1001460KHZ,典型值為640KHZ,這里選用R=10K歐姆.C=150PF的諧振電路,利用公式1/(1.1RC)

10、計算后,此時的時鐘頻率約為606KHZ,與典型值十分接近。 3模擬電壓的計算:這里選用的是8位A/D轉(zhuǎn)換器,數(shù)值的變化圍是0255(00H-FFH),模擬電壓的輸入圍是0-5V,每個數(shù)碼的變化,對應(yīng)的電壓值的變化為0.0196V,所以要計算模擬電壓值,就可以利用下面的公式進(jìn)行計算: V=D*0.0196式中,V為計算出的模擬電壓值,D為A/D轉(zhuǎn)換器轉(zhuǎn)換后的數(shù)字量??朔↑c運算方法:從上式不難看出,在計算過程,需要乘以一個0.0196,這是一個小數(shù),在計算機(jī)中稱為浮點數(shù)。而對于8位單片機(jī)來說,不具有浮點運算能力,如果一定要計算浮點數(shù),將占用單片機(jī)量的存單元和CPU時間。這里采用一種簡單的方法:就

11、是將從A/D讀取進(jìn)來的數(shù)字量直接乘以196,即進(jìn)行整數(shù)運算,運算結(jié)果是真正值的1000倍,這個整數(shù)運算的速度是非??斓模粫加眠^多的CPU時間。由于是兩個8位的二進(jìn)制數(shù)相乘,得到的結(jié)果不會超過16位二進(jìn)制數(shù)。 5電壓值的顯示:最常用到的二進(jìn)制轉(zhuǎn)換成BCD碼的方法是用除法。先用得到的16位二進(jìn)制數(shù)除以10000,得到的商就是模擬電壓值的整數(shù)部分(模擬電壓的輸入為0-5V,所以整數(shù)部分只有1位),得到的余數(shù)是模擬電壓值的小數(shù)部分;接下來用余數(shù)除以1000,商是十分位,余數(shù)作為被除數(shù)再除以100,商為百分位,余數(shù)再除以10,商為千位。這樣就將16位的二進(jìn)制數(shù)轉(zhuǎn)換成了4位BCD碼。 6再將電壓值轉(zhuǎn)化

12、為電阻值,并顯示 7電容的測量是利用555產(chǎn)生方波,采用8052部定時器,計算得到的脈沖數(shù),在利用公式即可求出電容值五 軟件設(shè)計5.1 分析論證此電容、電阻參數(shù)單片機(jī)測試系統(tǒng)的設(shè)計與實現(xiàn),主要采用了1LCD顯示屏,8052部二進(jìn)制8位定時器/計數(shù)器,ADC0804模數(shù)轉(zhuǎn)換,NE555芯片,包含顯示模塊,產(chǎn)生脈沖模塊和轉(zhuǎn)換模塊三大功效模塊。5.1.1 顯示模塊用LCD顯示屏的顯示功效來設(shè)計。采用LCD1602來顯示,1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個

13、點距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形(用自定義CGRAM,顯示效果也不好)n1602LCD是指顯示的容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。n目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全一樣的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。+5V電壓,對比度可調(diào)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM建有192個5X7點陣的字型的字符發(fā)生器CGROM 8個可由用戶自定義的5X7的字符發(fā)生

14、器CGRAM電壓,對比度可調(diào)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM建有192個5X7點陣的字型的字符發(fā)生器CGROM8個可由用戶自定義的5X7的字符發(fā)生器CGRAM5.1.2產(chǎn)生脈沖模塊NE555是屬于555系列的計時IC的其中的一種型號,555系列IC的接腳功能與運用都是相容的,只是型號不同的因其價格不同其穩(wěn)定度、省電、可產(chǎn)生的振蕩頻率也不大一樣;而555是一個用途很廣且相當(dāng)普遍的計時IC,只需少數(shù)的電阻和電容,便可產(chǎn)生數(shù)位電路所需的各種不同頻率之脈波訊號。NE555的作用圍很廣,但一般多應(yīng)用于單穩(wěn)態(tài)多諧振蕩器(Mono

15、stable Mutlivibrator)與無穩(wěn)態(tài)多諧振蕩器(Astable Multivibrator)。5.1.3 轉(zhuǎn)換模塊ADC0804是屬于連續(xù)漸進(jìn)式(Successive Approximation Method),即AD轉(zhuǎn)換器,這類型的A/D轉(zhuǎn)換器除了轉(zhuǎn)換速度快(幾十至幾百us)、分辨率高外,還有價錢便宜的優(yōu)點,普遍被應(yīng)用于微電腦的接口設(shè)計上。 以輸出8位的ADC0804動作來說明“連續(xù)漸進(jìn)式A/D轉(zhuǎn)換器”的轉(zhuǎn)換原理,動作步驟如下表示(原則上先從左側(cè)最高位尋找起)。第一次尋找結(jié)果:10000000 (若假設(shè)值輸入值,則尋找位=假設(shè)位=1)第二次尋找結(jié)果:11000000 (若假設(shè)值

16、輸入值,則尋找位=假設(shè)位=1)第三次尋找結(jié)果:11000000 (若假設(shè)值>輸入值,則尋找位=該假設(shè)位=0)第四次尋找結(jié)果:11010000 (若假設(shè)值輸入值,則尋找位=假設(shè)位=1) 第五次尋找結(jié)果:11010000 (若假設(shè)值>輸入值,則尋找位=該假設(shè)位=0)第六次尋找結(jié)果:11010100 (若假設(shè)值輸入值,則尋找位=假設(shè)位=1)第七次尋找結(jié)果:11010110 (若假設(shè)值輸入值,則尋找位=假設(shè)位=1) 第八次尋找結(jié)果:11010110 (若假設(shè)值>輸入值,則尋找位=該假設(shè)位=0)這樣使用二分法的尋找方式,8位的A/D轉(zhuǎn)換器只要8次尋找,12位的A/D轉(zhuǎn)換器只要12次尋找

17、,就能完成轉(zhuǎn)換的動作,其中的輸入值代表圖1的模擬輸入電壓Vin 。各管腳的作用:D0-D7:八位數(shù)字量輸出端; CLK:為芯片工作提供工作脈沖,時鐘頻率計算方式是:fck=1/(1.1×R×C) CS:片選信號;WR:寫信號輸入端;RD:讀信號輸入端;INTR:轉(zhuǎn)換完畢中斷提供端;其他管腳連接如圖,是供電和提供參考電壓的管腳輸入端。5.1.4 啟動/暫停,復(fù)位模塊該模塊的功能是實現(xiàn)秒表的啟動/暫停,復(fù)位。本實驗中第一次按下09鍵進(jìn)入測量程序,開始測量,第二次按下09鍵暫停測量,并返回到主程序,在電路中設(shè)定三個按鍵一個是換電阻的按鍵,其余分別為測電容和測電阻時的按鍵,當(dāng)按下測

18、電阻鍵時,顯示相應(yīng)的電阻值,當(dāng)按下電容值時顯示測得的電容值,此外還有量程更改的鍵,程序未編寫,但畫圖有。5.1.5 整體功效 當(dāng)按下測量電阻按鍵是,液晶屏第一行顯示measures,第二行顯示R?.?K,當(dāng)按下測量按鍵時,液晶屏第一行顯示measures,第二行顯示?u,若同時按下,則輪流顯示。按復(fù)位鍵時,程序會自動重新執(zhí)行,電阻的測量在K較準(zhǔn)確,電容只能測量u。當(dāng)然,可以通過程序更改六 程序清單 #include<reg52.h>#include<intrins.h>#define DATA P0#define uchar unsigned char#define u

19、int unsigned int sbit adcs=P23;/可以硬件直接接地sbit adrd=P25;sbit adwr=P24; sbit RW=P21;/1602寫數(shù)據(jù)sbit RS=P20;/1602寫地址sbit EN=P22; /1602工作使能sbit b_test=P37; /開始測量電容的按鍵輸入sbit c_test=P36;sbit _reset=P35; /555時基芯片工作控制信 uint T_flag,N,D,C,i,Dis1,Dis0;uchar get_ad(); uint A,F,H,A1,A2;uint r='R','='

20、,'0','0','.','0','K',0Xf4;uint b9='C','=','0','0','.','0','0','u','F' /顯示C=00.00UFuint Data1;/*延時1MS*/void Delay1ms(uint mm)uint i;for(;mm>0;mm-) for(i=0;i<100;i+);void delay(uint z)

21、/延時程序uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/*檢查忙否*/void Checkstates() uchar dat; RS=0; RW=1; doEN=1;/下降沿 _nop_();/保持一定間隔_nop_(); dat=DATA; _nop_();_nop_(); EN=0; while(dat&0x80)=1);/*LCD寫命令函數(shù)*/void wcomd(uchar cmd) Checkstates(); RS=0; RW=0; DATA=cmd; EN=1; _nop_(); _nop_(); _nop_(); _

22、nop_(); EN=0;/*LCD寫數(shù)據(jù)函數(shù)*/void wdata(uchar dat) Checkstates(); RS=1; RW=0; DATA=dat; EN=1; _nop_(); _nop_(); _nop_(); _nop_(); EN=0;/*初始化*/void LCDINIT() Delay1ms(15); wcomd(0x38);/功能設(shè)置 Delay1ms(5); wcomd(0x38);/功能設(shè)置 Delay1ms(5); wcomd(0x01);/清屏 Delay1ms(5); wcomd(0x08);/關(guān)顯示 Delay1ms(5); wcomd(0x0c);

23、/開顯示,不開光標(biāo)/*顯示函數(shù)*/void Display(void) /顯示函數(shù) uchar i,j; uchar a12=0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53;/顯示measurements for(i=0;i<12;i+)/寫顯示第一行 wcomd(0x80+i); Delay1ms(1); wdata(ai); Delay1ms(1); for(j=0;j<9;j+)/寫顯示第二行 wcomd(0xc0+j); Delay1ms(1); wdata(bj); Delay1ms(1); Dela

24、y1ms(150);void Display1() /顯示函數(shù) 顯示電阻 uchar i,j; uchar a12=0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53;/顯示measurements for(i=0;i<12;i+)/寫顯示第一行 wcomd(0x80+i); Delay1ms(1); wdata(ai); Delay1ms(1); for(j=0;j<9;j+)/寫顯示第二行 wcomd(0xc0+j); Delay1ms(1); wdata(rj); Delay1ms(1); Delay1ms(

25、1000); uchar get_ad()/adc0804操作uchar temp;adcs=1;adwr=1;_nop_();delay(1);adcs=0;adwr=0;_nop_();delay(1);adwr=1;adcs=1;delay(1);P1=0xff;adcs=1;adrd=1;delay(1);_nop_();_nop_();_nop_();delay(20);adcs=0;adrd=0;_nop_();temp=P1;delay(1);adrd=1;adcs=1;return temp; void main() IE=0x81; /打開全外部中斷允許 TMOD=0x09;

26、 /T0為161 IT0=1; /設(shè)置外部中斷的觸發(fā)的方式為脈沖觸發(fā) TH0=0x00; TL0=0x00; T_flag=0; _reset=0; LCDINIT(); while(1) if (!b_test=1) /如果有測量按鍵輸入就往下執(zhí)行 i=0; _reset=1; /啟動555時基芯片 EX0=1; /開啟中斷0 while(_reset) /超出等待時間,中斷還沒有過來,就退出 i+; if(i>5000) /設(shè)置最長等待時間 _reset=0; /最長等待時間到還沒有中斷,停止555 if(N<100) b6=0x1c; b5=0x1c; b4=0x11; b3

27、=0X1D; b2=0X23; if(N>5000) /如果計數(shù)值大于5000,顯示LARGER,表示應(yīng)換用大一點的量程 b6=0x15; b5=0x17; b4=0x22; b3=0X11; b2=0X1C; if(N>=100 && N<=5000) C=N/100;D=N%100; /計算電容的大小 b2=C/10; /計算電容值的十位 b3=C-b2*10; /計算電容值的各位 b5=D/10; b6=D-b5*10; Display(); /顯示電容的大小 wcomd(0x80+0x42); Delay1ms(5); wdata(0x30+b2);

28、Delay1ms(5); wcomd(0x80+0x43); Delay1ms(5); wdata(0x30+b3); Delay1ms(5); wcomd(0x80+0x45); Delay1ms(5); wdata(0x30+b5); Delay1ms(5); wcomd(0x80+0x46); Delay1ms(5); wdata(0x30+b6); Delay1ms(1000); if(!c_test=1) Display1();Data1=get_ad();A=100*Data1;H=A/(256-Data1);A1=H/10;A2=H%10; wcomd(0x80+0x43); Delay1ms(5); wdata(0x30+A1); Delay1ms(5); wcomd(0x80+0x45); Delay

溫馨提示

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

評論

0/150

提交評論