版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 摘要:本設(shè)計使用兩個555定時器,其中一個555定時器搭建為多諧振蕩器,通過電容充放電產(chǎn)生固定周期脈波,作為計波數(shù);同時另一個555定時器搭建成單穩(wěn)態(tài)觸發(fā)器電路,多諧輸出作為單穩(wěn)輸出,輸出外加反鎖作為控制脈波;在固定周期內(nèi)采用74290對計數(shù)波計數(shù),并使用74273鎖存數(shù)據(jù),將數(shù)據(jù)在led上顯示出來,采用直流穩(wěn)壓為系統(tǒng)提供+5和+12的電壓。</p><p> 設(shè)計中使用開關(guān)轉(zhuǎn)換來達(dá)到兩個
2、大量程電容,能夠測量1nF~的電容值;并且系統(tǒng)具有單位功能。</p><p> 關(guān)鍵詞:555定時器,多諧振蕩器,單穩(wěn)態(tài)觸發(fā)器,,鎖存器</p><p><b> 目錄</b></p><p><b> 一、概述3</b></p><p><b> 1.意義:3</b&g
3、t;</p><p> 2.系統(tǒng)主要功能4</p><p> 二、硬件電路設(shè)計及描述4</p><p> 1.方案及設(shè)計思想:4</p><p> 2. 電路原理圖6</p><p><b> 3.芯片資料:8</b></p><p><b>
4、 4.元件清單:9</b></p><p> 三、軟件設(shè)計流程及描述10</p><p> 1.模塊層次結(jié)構(gòu)圖10</p><p> 2、程序流程圖11</p><p> 3、源程序代碼11</p><p><b> 四.總結(jié)18</b></p>
5、<p><b> 概述</b></p><p><b> 1.意義:</b></p><p> 電容,就是容納和釋放電荷的電子元器件。電容的基本工作原理就是充電放電,當(dāng)然還有整流、振蕩以及其它的作用。另外電容的結(jié)構(gòu)非常簡單,主要由兩塊正負(fù)電極和夾在中間的絕緣介質(zhì)組成,所以電容類型主要是由電極和絕緣介質(zhì)決定的。電容的用途非常多,主要
6、有如下幾種:1.隔直流:作用是阻止直流通過而讓交流通過。2.旁路(去耦):為交流電路中某些并聯(lián)的元件提供低阻抗通路。3.耦合:作為兩個電路之間的連接,允許交流信號通過并傳輸?shù)较乱患夒娐?.濾波:這個對DIY而言很重要,顯卡上的電容基本都是這個作用。5.溫度補償:針對其它元件對溫度的適應(yīng)性不夠帶來的影響,而進(jìn)行補償,改善電路的穩(wěn)定性。6.計時:電容器與電阻器配合使用,確定電路的時間常數(shù)。7.調(diào)諧:
7、對與頻率相關(guān)的電路進(jìn)行系統(tǒng)調(diào)諧,比如手機(jī)、收音機(jī)、電視機(jī)。8.整流:在預(yù)定的時間開或者關(guān)半閉導(dǎo)體開關(guān)元件。9.儲能:儲存電能,用于必須要的時候釋放。例如相機(jī)閃光燈,加熱設(shè)備等等。(如今某些電容的儲能水平已經(jīng)接近鋰電池的水準(zhǔn),一個電容儲存的電能可以供一個手機(jī)使用一天。 </p><p><b> 系統(tǒng)主要功能</b></p><p> 通過555定時器芯
8、片的特點,把電容大小轉(zhuǎn)換成555輸出頻率大小,用單片機(jī)對其頻率進(jìn)行測量,這樣就可以得到電容相對大小的一個數(shù)值,調(diào)節(jié)某些電阻的參數(shù),改動單片機(jī)中程序的計算公式,就可以簡單的得到電容的值。</p><p><b> 硬件電路設(shè)計及描述</b></p><p><b> 方案及設(shè)計思想</b></p><p> 設(shè)計要求:
9、數(shù)字電容測量儀</p><p> 1要求測量范圍是100pf到5uf</p><p><b> 1.1方案設(shè)計</b></p><p><b> 設(shè)計原理:</b></p><p> 基于AT89C51單片機(jī)的多諧振蕩電路電容測量</p><p> 主要原理是通過5
10、55芯片來測電容,讓555定時器在直接反饋無穩(wěn)態(tài)的狀態(tài)下,555芯片輸出一定頻率一定頻率的方波,其頻率的大小跟被測電容之間的關(guān)系是:f=0.722/(R*Cx),固定一定的R的大小,就可以確定可測量C的一定范圍,其公式經(jīng)查詢,為f=K/Cx,因此測出f即可。</p><p> 在單片機(jī)中,我們使用單片機(jī)T0中斷端口和中斷INT0配合測量。方法相當(dāng)簡單。</p><p><b>
11、 原理如圖</b></p><p><b> 總原理圖:</b></p><p><b> 555定時器部分</b></p><p><b> AT89C51部分</b></p><p><b> 晶振部分</b></p>
12、<p><b> 復(fù)位電路</b></p><p><b> 顯示電路:</b></p><p><b> 工作原理</b></p><p><b> 1.9液晶模塊簡介</b></p><p> LM016L的結(jié)構(gòu)及功能:<
13、/p><p> LM016L液晶模塊采用HD44780控制器,hd44780具有簡單而功能較強(qiáng)的指令集,可以實現(xiàn)字符移動,閃爍等功能,LM016L與單片機(jī)MCU通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個8位寄存器,指令寄存器(IR)和數(shù)據(jù)寄存器(DR)忙標(biāo)志(BF),顯示數(shù)RAM(DDRAM),字符發(fā)生器ROMA(CGOROM)字符發(fā)生器RAM(CGRAM),地址計數(shù)器RAM(AC)。IR用于
14、寄存指令碼,只能寫入不能讀出,DR用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動寫入DDRAM和CGRAM,或者暫存從DDRAM和CGRAM讀出的數(shù)據(jù),BF為1時,液晶模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和接受數(shù)據(jù),DDTAM用來存儲顯示的字符,能存儲80個字符碼,CGROM由8位字符碼生成5*7點陣字符160中和5*10點陣字符32種.8位字符編碼和字符的對應(yīng)關(guān)系,可以查看參考文獻(xiàn)(30)中的表4.CGRAM是為用戶編寫特殊字符留用的,它的容量
15、僅64字節(jié),可以自定義8個5*7點陣字符或者4個5*10點陣字符,AC可以存儲DDRAM和CGRAM的地址,如果地址碼隨指令寫入IR,則IR自動把地址碼裝入A</p><p> 圖4-3 1601引腳圖 </p><p> LM016L引腳介紹:</p><p> Vss(1腳):一般接地。</p><p> Vdd(2腳):接電
16、源。</p><p> Vee(3腳):液晶顯示器對比度調(diào)整端,接電源時對比度最弱,接地時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。</p><p> RS(4腳):RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。</p><p> R/W(5腳):R/W為讀寫信號線,高電平(1)時進(jìn)行讀操作,
17、低電平(0)時進(jìn)行寫操作。</p><p> E(6腳):E(或EN)端為使能(enable)端,下降沿使能。</p><p> DB0(7腳):底4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位)。</p><p> DB1(8腳):底4位三態(tài)、 雙向數(shù)據(jù)總線 1位。</p><p> DB2(9腳):底4位三態(tài)、 雙向數(shù)據(jù)總線 2位。<
18、;/p><p> DB3(10腳):底4位三態(tài)、 雙向數(shù)據(jù)總線 3位。</p><p> DB4(11腳):高4位三態(tài)、 雙向數(shù)據(jù)總線 4位。</p><p> DB5(12腳):高4位三態(tài)、 雙向數(shù)據(jù)總線 5位。</p><p> DB6(13腳):高4位三態(tài)、 雙向數(shù)據(jù)總線 6位。</p><p> DB7(
19、14腳):高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位)(也是busy flang)。</p><p> 寄存器選擇控制如表4-1。</p><p> 表4-1寄存器選擇控制</p><p><b> 軟件設(shè)計流程及描述</b></p><p> 3.1 模塊層次結(jié)構(gòu)圖</p><p>
20、 #include<reg52.h> </p><p> #define uint unsigned int </p><p> #define uchar unsigned char</p><p> sbit EN=P2^2; //定義引腳</p><p> sbit RS=P2^0;</p>
21、;<p> sbit RW=P2^1;</p><p> sbit BUSY=P0^7;</p><p> sbit SOUT = P3^5;</p><p> sbit FW1=P1^5;</p><p> sbit FW2=P1^6;</p><p> sbit FW3
22、=P1^7;</p><p> int CountFlag=-1,ShowResultFlag=0,FWFlag=0;</p><p> long int N=1,maxnum=650000; </p><p> //系統(tǒng)端口操作函數(shù)</p><p> void Delay(uint o)</p><p>&l
23、t;b> {</b></p><p><b> uint i,j;</b></p><p> for(i = 0; i < o; i++)for(j = 0; j < 100; j++); </p><p><b> }</b></p><p> void
24、WaitCheck() // 等待空閑</p><p><b> {</b></p><p><b> do{</b></p><p><b> P0=0xFF;</b></p><p> RS=0;//選擇指令寄存器 </p><p&g
25、t; RW=1;//讀 rs rw 值為01時,忙標(biāo)志和地址計數(shù)器讀出</p><p> EN=0;//E=0,禁止讀寫</p><p> Delay(1);//等待,液晶顯示器處理數(shù)據(jù)</p><p> EN=1;//E=1,允許讀寫</p><p> }while(BUSY==1);//判斷是否為空閑,1為忙,0為空閑</
26、p><p><b> }</b></p><p> void WriteCom(uchar com)//給P0寫指令</p><p><b> {</b></p><p><b> P0=com;</b></p><p><b> RS=
27、0;</b></p><p><b> RW=0;</b></p><p><b> EN=0;</b></p><p> WaitCheck();</p><p><b> EN=1;</b></p><p><b>
28、}</b></p><p> void ShowChar(uchar c)//輸入16進(jìn)制數(shù)字碼顯示char</p><p><b> {</b></p><p><b> P0=c;</b></p><p><b> RS=1;</b></p>
29、<p><b> RW=0;</b></p><p><b> EN=0;</b></p><p> WaitCheck();</p><p><b> EN=1;</b></p><p><b> }</b></p>
30、<p><b> //設(shè)置命令</b></p><p> void SetLinePos(uchar line,uchar pos)//設(shè)置光標(biāo)位置</p><p><b> {</b></p><p> if(line==1)WriteCom(0x80|pos);</p><p&
31、gt; else WriteCom(0xC0|pos);</p><p><b> }</b></p><p> void SetCursorStyle(uchar style)//0光標(biāo)左移1光標(biāo)右移</p><p><b> {</b></p><p> if(style)Writ
32、eCom(0x04);//光標(biāo)左移</p><p> else WriteCom(0x06);//光標(biāo)右移</p><p><b> }</b></p><p><b> //圖像命令</b></p><p> void Cls()//清屏光標(biāo)復(fù)位指令</p><p&
33、gt;<b> {</b></p><p> WriteCom(0x01);</p><p><b> }</b></p><p> void ShowCursor(uchar i)//1顯示不閃爍的光標(biāo) 0禁用光標(biāo)</p><p><b> {</b></p&
34、gt;<p> if(i)WriteCom(0x14);</p><p> else WriteCom(0x12);</p><p><b> }</b></p><p> void ShowStr(uchar *c)</p><p><b> {</b></p>
35、<p> while((*c)!=0)</p><p><b> {</b></p><p> ShowChar(*c);</p><p><b> c++;</b></p><p><b> }</b></p><p><
36、;b> }</b></p><p> void ShowBitNum(uchar num)//顯示單個正數(shù)</p><p><b> {</b></p><p> ShowChar(0x30+num);</p><p><b> }</b></p><
37、p> int ShowNumber(long int number)//顯示指定數(shù)字//返回0正常 1表示溢出</p><p><b> {</b></p><p> uchar idnumbuf[10]={0};//1為負(fù)數(shù),最大10位整數(shù)</p><p> int bitbuf;</p><p> i
38、f(number==0)ShowBitNum(0);</p><p><b> //顯示正數(shù)</b></p><p><b> //10位賦值</b></p><p> for(bitbuf=0;number;bitbuf++)</p><p><b> {</b>&l
39、t;/p><p> idnumbuf[bitbuf]=number%10;</p><p> number/=10;</p><p><b> }</b></p><p> for(bitbuf--;bitbuf>=0;bitbuf--)</p><p><b> {<
40、/b></p><p> ShowBitNum(idnumbuf[bitbuf]);</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> vo
41、id CapOperate() interrupt 0</p><p><b> {</b></p><p> if(ShowResultFlag==0)CountFlag*=-1;</p><p> if(CountFlag==1&&ShowResultFlag==0)</p><p><b
42、> {</b></p><p> TR0=1;//Start Timer</p><p><b> }</b></p><p> if(CountFlag==-1&&ShowResultFlag==0)</p><p><b> {</b></p&g
43、t;<p><b> TR0=0;</b></p><p> EX0=0;//close interrupt</p><p> SOUT=0;//Stop Sending Single</p><p> N=TH0*256+TL0;</p><p><b> TH0=0;</b&g
44、t;</p><p><b> TL0=0;</b></p><p> ShowResultFlag=1;</p><p> FW1=FW2=FW3=0;</p><p><b> FWFlag=0;</b></p><p><b> }</b&g
45、t;</p><p><b> }</b></p><p> void Init() //初始化</p><p><b> { </b></p><p> EN=1;//使能信號為高電平</p><p> WriteCom(0x38); //顯示模式設(shè)置<
46、;/p><p> WriteCom(0x0e); //顯示開,光標(biāo)開,不閃爍</p><p> WriteCom(0x06); //光標(biāo)右移 文字移動無效</p><p> WriteCom(0x80); //設(shè)置訪問地址</p><p><b> //創(chuàng)建定時器</b></p><p>
47、 IE=0x81;//打開全部中斷控制開啟外部中斷允許</p><p> TMOD=0x09;//T0為16位工作方式09</p><p> IT0=1; //外部中斷觸發(fā)方式為脈沖觸發(fā)</p><p><b> TH0=0x00;</b></p><p><b> TL0=0x00;</
48、b></p><p><b> SOUT=0;</b></p><p><b> }</b></p><p> void FindSwitch()</p><p><b> {</b></p><p> FW1=FW2=FW3=1;<
49、;/p><p><b> Delay(1);</b></p><p> if(FW1==0)FWFlag=1;</p><p> else if(FW2==0)FWFlag=2;</p><p> else if(FW3==0)FWFlag=3;</p><p><b>
50、}</b></p><p> void main()</p><p><b> {</b></p><p><b> Init();</b></p><p><b> while(1)</b></p><p><b> {
51、</b></p><p> FindSwitch();//查詢是否允許測量</p><p> while(FWFlag)//Key Press</p><p><b> {</b></p><p> SOUT=1;//start 555 sending single</p><p&
52、gt; EX0=1;//Start interrupt 0</p><p> FindSwitch();//查詢哪個量程開關(guān)</p><p> while(SOUT)//超出等待時間 中斷信號沒來就不進(jìn)入循環(huán)</p><p><b> {</b></p><p><b> maxnum--;</
53、b></p><p> if(maxnum<=0) SOUT=0;</p><p> if(N<1000)</p><p><b> {</b></p><p> SetLinePos(2,0);</p><p> ShowStr("Error..Check!
54、");</p><p><b> }</b></p><p> else if(N>1500000)</p><p><b> {</b></p><p> SetLinePos(2,0);</p><p> ShowStr("CapNum
55、TooBig!");</p><p><b> }</b></p><p> else //if(N>500)</p><p><b> {</b></p><p><b> //N=N/2;</b></p><p> SetL
56、inePos(1,0);</p><p> //ShowNumber(N);</p><p><b> ///*</b></p><p> ShowNumber(N/10);</p><p> ShowStr(" ");</p><p> ShowNumb
57、er(N%10);</p><p> if(FWFlag==1)ShowStr("00pf");</p><p> else if(FWFlag==2)ShowStr("0pf ");</p><p> else if(FWFlag==3)ShowStr("pf ");</p>
58、<p> else if(FWFlag==0)ShowStr("-ERR");</p><p> SetLinePos(2,0);</p><p> ShowStr("Show Cap Num:");</p><p><b> //*/</b></p><p>
59、;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計--電容、電阻參數(shù)單片機(jī)測試系統(tǒng)的設(shè)計
- 單片機(jī)課程設(shè)計-單片機(jī)課程設(shè)計---電子時鐘
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計--單片機(jī)串行通訊
- 單片機(jī)秒表單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計---單片機(jī)數(shù)字時鐘
- 單片機(jī)課程設(shè)計--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計---單片機(jī)籃球計分器
- 單片機(jī)課程設(shè)計報告---單片機(jī)數(shù)字時鐘
- 單片機(jī)課程設(shè)計---單片機(jī)原理及應(yīng)用
- 基于單片機(jī)的秒表設(shè)計單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計--單片機(jī)控制各種器件
- 單片機(jī)課程設(shè)計---單片機(jī)數(shù)字時鐘.doc
- 單片機(jī)課程設(shè)計報告---單片機(jī)秒表系統(tǒng)設(shè)計
- 單片機(jī)課程設(shè)計---單片機(jī)病房呼叫系統(tǒng)
評論
0/150
提交評論