久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 可語音播報(bào)的單片機(jī)電阻、電容、電感測試儀設(shè)計(jì)論文 [打印本頁]

作者: WESTERN    時(shí)間: 2018-5-14 19:19
標(biāo)題: 可語音播報(bào)的單片機(jī)電阻、電容、電感測試儀設(shè)計(jì)論文
摘要

在使用電子元器件時(shí),首先需要了解參數(shù)。采用傳統(tǒng)的儀表進(jìn)行測量時(shí),首先要從電路板上焊開器件,再根據(jù)元件的類型,手動(dòng)選擇量程擋位進(jìn)行測量,這樣不僅麻煩而且破壞了電路板的美觀;趩纹瑱C(jī)控制實(shí)現(xiàn)的RLC測量儀可以在線測量、智能識別、量程自動(dòng)轉(zhuǎn)換等多種功能,大大提高測量儀的測量速度和精度,擴(kuò)大了測量范圍。因此這種RLC測量儀既可改善系統(tǒng)測量的性能,又保持了印刷電路的美觀,較傳統(tǒng)的測量儀還具有高度的智能儀和功能的集成化,在未來的應(yīng)用中將具有廣闊的前景。
本課題主要研究內(nèi)容為設(shè)計(jì)一個(gè)基于單片機(jī)的RLC智能測量儀器,能夠智能地識別出待測元件是電容、電感還是電阻;能精確測量出電阻、電容、電感的參數(shù)值,同時(shí)還能加入語音播報(bào)的功能;可以實(shí)現(xiàn)量程電阻的自動(dòng)轉(zhuǎn)換,無須人工選擇檔位;對測量儀進(jìn)行擴(kuò)充后還實(shí)現(xiàn)了二極管、三極管的測量。

目錄
引言
1  硬件電路
1.1 設(shè)計(jì)要求
1.2 電路方框圖及說明
1.3 各部分電路設(shè)計(jì)
1.3.1 電阻測量電路
1.3.2 電容測量電路
1.3.3 電感測量電路
1.3.4 多路選擇開關(guān)電路
1.3.5 按鍵及顯示電路
1.3.6 單片機(jī)模塊
1.3.7 量程選擇模塊
1.3.8 電源模塊
2  軟件部分
2.1 主程序流程圖
2.2 程序清單
3  相關(guān)元器件
3.1 元件清單
3.2 AT89S52資料
3.3 ICM7218資料
3.4 74LS390資料
3.5 CD4052資料
3.6 NE555資料
3.7 共陽4位LED數(shù)碼管資料
3.8 三極管相關(guān)資料
3.9 三端穩(wěn)壓管LM7805資料
3.10 繼電器資料
4  調(diào)試總結(jié)
5  結(jié)論
謝  辭
參考文獻(xiàn)
附  錄

                         桂林電子科技大學(xué)畢業(yè)設(shè)計(jì)(論文)報(bào)告用紙                   第 1 頁 共 47 頁
引言
測量電子元器件集中參數(shù)R、C、L的儀表種類較多,方法也各有不同,但都有其優(yōu)缺點(diǎn)。一般的測量方法都存在計(jì)算復(fù)雜、不易實(shí)現(xiàn)自動(dòng)測量而且很難實(shí)現(xiàn)智能化。本測試儀是把電子元件的參數(shù)R、C、L轉(zhuǎn)換成頻率信號f,然后用單片機(jī)計(jì)數(shù)后在運(yùn)算求出R、C、L,并送顯示,轉(zhuǎn)換原理分別是RC振蕩和LC三點(diǎn)式振蕩,這樣就能夠把模擬量近似的轉(zhuǎn)換位數(shù)字量,而頻率f是單片機(jī)很容易處理的數(shù)字量,這種數(shù)字化的處理一方面便于使儀表實(shí)現(xiàn)智能化。

1  硬件電路
1.1 設(shè)計(jì)要求
設(shè)計(jì)并制作一臺數(shù)字顯示的電阻、電容和電感參數(shù)測試儀,具體要求數(shù)據(jù)如下:
(1)測量范圍:電阻100~1M;電容100PF~10000PF;電感100UH~10mH。
(2)測量精度:5%;制作4位數(shù)碼管顯示器,顯示測量數(shù)值,并用發(fā)光二極管分別知識所測元件的類型和單位。
(3)加入語音播報(bào)功能:如測量結(jié)果為6.8K歐姆則語音播報(bào)“六點(diǎn)八K歐姆”;如電阻小于100歐姆則語音播報(bào)“電阻小于100歐姆”。
1.2 電路方框圖及說明
系統(tǒng)分三大部分,既測量電路、通道選擇和控制電路。如圖1.2.1。
圖1.2.1 RLC測量儀電路方框圖
1.3 各部分電路設(shè)計(jì)
1.3.1 電阻測量電路
    電阻的測量采用“脈沖計(jì)數(shù)法”,如圖1.3.1所示由555電路構(gòu)成的多諧振蕩電路,通過計(jì)算振蕩輸出的頻率來計(jì)算被測電阻的大小。
555接成多諧振蕩器的形式,其振蕩周期為:
T=t1+t2=(ln2)(R1+Rx)*C1+(ln2)Rx*C1
得到:Fx=1/[(ln2)(R2+2Rx)C1]即:Rx=[1/(ln2)C1-R1]/2
電路分為2檔: RH設(shè)置為高電平輸出,RL設(shè)為低電平輸出;
1、 100≤Rx<1000歐姆:
R3=200歐姆;C14=0.22uF;
Rx=(6.56*(1e+6))/(2*fx)-330/2
對應(yīng)的頻率范圍為:2.8K≤fx <16K
2、 1000≤Rx<1M歐姆:
R2=20k歐姆;C1=103PF;
Rx =(1.443*(1e+8))/(2*fx)-(1e+4)
對應(yīng)的頻率范圍為:141Hz≤fx<6.8K
圖1.3.1 電阻測量電路
1.3.2 電容測量電路
    電容的測量同樣采用“脈沖計(jì)數(shù)法”,如圖1.3.2所示由555電路構(gòu)成的多諧振蕩電路,通過計(jì)算振蕩輸出的頻率來計(jì)算被測電容的大小。555接成多諧振蕩器的形式,其振蕩周期為:
T=t1+t2=(ln2)(R1+R2)*Cx+(ln2)R2*Cx
我們設(shè)置R1=R2;
得到:Fx=1/[3(ln2)R1*Cx]即:Cx=1/[3(ln2)R1*Fx]
電路分為2檔:
1、 R1=560K歐姆:CL設(shè)置為高電平輸出;
R4=R6;
   Cx= (0.94*(1e+6))/ fx;
對應(yīng)的頻率范圍為:9.4K≤fx <0.94K。
2、 R1=100K歐姆: CH設(shè)置為高電平輸出;
R5=R6;
Cx =(4.81*(1e+6))/ fx;
對應(yīng)的頻率范圍為:480Hz≤fx <4.8K。
圖1.3.2 電容測量電路
1.3.3 電感測量電路
    電感的測量是采用電容三點(diǎn)式振蕩電路來實(shí)現(xiàn)的。三點(diǎn)式電路是指:LC回路中與發(fā)射極相連的兩個(gè)電抗元件必須是同性質(zhì)的,另外一個(gè)電抗元件必須為異性質(zhì)的,而與發(fā)射極相連的兩個(gè)電抗元件同為電容時(shí)的三點(diǎn)式電路,成為電容三點(diǎn)式電路。
    Fx=1/(2π)即:Lx=1/( 4π*π*Fx*Fx)
Lx=[38*(1e+6)]/
圖1.3.3 電感測量電路
1.3.4 多路選擇開關(guān)電路
利用CD4052實(shí)現(xiàn)測量類別的轉(zhuǎn)換,CD4052是雙4選一的模擬開關(guān)選擇器件。當(dāng)選擇了某一通道的頻率后,輸出頻率通過通過P35作為CPU定時(shí)器的時(shí)鐘源并開始計(jì)數(shù),當(dāng)計(jì)數(shù)到3秒后讀出計(jì)數(shù)器的值,除以3就得到了被測R/C/L所對應(yīng)產(chǎn)生的頻率,通過計(jì)算得到要被測值。

P13
P14
測量類別
0
0
Y0-R
0
1
Y1-L
1
0
Y2-C
1
1
*

圖1.3.4 多路選擇開關(guān)電路
1.3.5 按鍵及顯示電路
    按鍵和二極管分別表示不同類別的測量,如下表所示:
按鍵
二極管
對應(yīng)測試項(xiàng)
KEY1
L1
測試R
KEY2
L2
測試C
KEY3
L3
測試L

圖1.3.5.1 測量選擇與指示電路
圖1.3.5.2 顯示模塊1
計(jì)數(shù)結(jié)果需要顯示出來供人們讀數(shù), 74LS390能驅(qū)動(dòng)七段數(shù)碼管以十進(jìn)制數(shù)顯示出來記數(shù)結(jié)果,如圖:
圖1.3.5.3 顯示模塊2
1.3.6 單片機(jī)模塊
單片機(jī)系統(tǒng)連接如圖1.3.6所示:
圖1.3.6 單片機(jī)模塊
1.3.7 量程選擇模塊
包括電阻量程選擇模塊和電容量程選擇模塊,如圖1.3.7.1和1.3.7.2所示:
圖1.3.7.1電阻量程選擇模塊
圖1.3.7.2 電容量程選擇模塊
1.3.8 電源模塊
    電源模塊如圖1.3.8所示:
圖1.3.8 電源模塊
2  軟件部分
2.1 主程序流程圖
如圖2.1所示:
圖2.1 主程序流程圖

AT89S52單片機(jī)的基本發(fā)音
我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。
例如,要產(chǎn)生200HZ的音頻信號,實(shí)驗(yàn)程序?yàn)椋?/font>
其中子程序DEL為延時(shí)子程序,當(dāng)R3為1時(shí),延時(shí)時(shí)間約為20us,R3中存放延時(shí)常數(shù),對200HZ音頻,其周期為1/200秒,即5ms。這樣,當(dāng)P1.4的高電平或低電平的持續(xù)時(shí)間為2.5ms,即R3的時(shí)間常數(shù)取2500/20=125(7DH)時(shí),就能發(fā)出200HZ的音調(diào)。將程序鍵入學(xué)習(xí)機(jī),并持續(xù)修改R3的常數(shù)能感到音調(diào)的變化。樂曲中,每一音符對應(yīng)著確定的頻率。讀者能根據(jù)表1所供給的常數(shù),將其16進(jìn)制代碼送入R3,反復(fù)練習(xí)體會(huì)。根據(jù)表1能奏出音符。僅這還不夠,要準(zhǔn)確奏出一首曲子,必須準(zhǔn)確地控制樂曲節(jié)奏,即一音符的持續(xù)時(shí)間。
音符的節(jié)拍我們能用定時(shí)器T0來控制,送入不一樣的初值,就能產(chǎn)生不一樣的定時(shí)時(shí)間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。
但是,由于T0的最大定時(shí)時(shí)間只能為131毫秒,因此不可能直接用改變T0的時(shí)間初值來實(shí)現(xiàn)不一樣節(jié)拍。我們能用T0來產(chǎn)生10毫秒的時(shí)間基準(zhǔn),然后設(shè)置一個(gè)中斷計(jì)數(shù)器,通過判別中斷計(jì)數(shù)器的值來控制節(jié)拍時(shí)間的長短。表2中也給出了各種節(jié)拍所對應(yīng)的時(shí)間常數(shù)。例如對1/4拍音符,定時(shí)時(shí)間為0.16秒,對應(yīng)的時(shí)間常數(shù)為16(即10H);對3拍音符,定時(shí)時(shí)間為1.92秒,對應(yīng)時(shí)間長數(shù)為192(即C0H)。
我們將每一音符的時(shí)間常數(shù)和其對應(yīng)的節(jié)拍常數(shù)作為一組,按次序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就能實(shí)現(xiàn)演奏效果。此外,結(jié)束符和體止符能分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生對應(yīng)的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不一樣的音符。
3.3 ICM7218資料
ICM72 1 8A是通用數(shù)碼管驅(qū)動(dòng)器 ,控制方式簡單靈活 ,并可與8位微處理器接口 .可廣泛應(yīng)用于電源及儀器儀表的顯示中。
圖3.3.1
ICM7218A可工作在三種顯示模塊:非譯碼顯示模式、十六進(jìn)制譯碼顯示模式和十進(jìn)制譯碼顯示模式。具體說明如下:
在非譯碼模式下(寫入命令字時(shí)ID5=“1”),輸入數(shù)據(jù)直接控制段位輸出,輸入數(shù)據(jù)和段位顯示對應(yīng)如表3.3.1所示。在譯碼模式下(寫入命令十ID5=“0”),可在寫入命令字時(shí)選擇其工作在十六進(jìn)制譯碼顯示模式(ID6=“1”)或十進(jìn)制譯碼顯示模式(ID6=“0”);輸入二進(jìn)制碼與十進(jìn)制顯示碼、十六進(jìn)制顯示碼關(guān)系如表3.3.2所示。
輸入數(shù)據(jù)
ID7
ID6
ID5
ID4
ID3
ID2
ID1
ID0
輸出數(shù)據(jù)
D.P
a
b
C
d
e
f
g

圖3.3.1
進(jìn)制所對應(yīng)十進(jìn)制值碼
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
十六進(jìn)制顯示碼
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
十進(jìn)制顯示碼
0
1
2
3
4
5
6
7
8
9
-
E
H
L
P
(空)

圖3.3.2
ICM7218A的工作方式
ICM7218A可通過命令字中ID4位來決定其在正常工作方式(NORMALOPERTION)或停止工作方式(SHUTDOWN)。
在正常工作方式下(ID4=“1”),當(dāng)MODE為高電平時(shí),在WRITE信號有效時(shí),由微處理器數(shù)據(jù)總線的ID4-ID7位寫入控制命令字,此時(shí)ID0-ID3位數(shù)據(jù)無效;MODE為底電平時(shí),在WRITE信號有效時(shí)由微處理器依次寫如8個(gè)8位顯示數(shù)據(jù),在數(shù)據(jù)寫入過程中,顯示器停止工作,知道8個(gè)數(shù)據(jù)寫完,顯示器顯示新輸入值。
注1:若想重新修改任一位顯示數(shù)據(jù),必須重新執(zhí)行上述過程,否則直接修改任一位顯示數(shù)據(jù)均無效。
  注2:每次必須連續(xù)輸入8個(gè)8位顯示數(shù)據(jù)之后顯示器才能正常工作(即使顯示位數(shù)少于8位也必須輸入8個(gè)數(shù)據(jù)),8個(gè)數(shù)據(jù)之后的數(shù)據(jù)無效。
在停止工作方式下(ID4=“0”),寫入命令字后,顯示器停止顯示,集成電路進(jìn)入省點(diǎn)狀態(tài)。
3.4 74LS390資料
74LS390是雙十進(jìn)制計(jì)數(shù)器,包括兩個(gè)2分頻和兩個(gè)5分頻計(jì)數(shù)器,用它可以實(shí)現(xiàn)2分頻、5分頻直至100分頻的任何累加倍數(shù)的計(jì)數(shù)長度;74LS390和門電路相配合,可以實(shí)現(xiàn)任意進(jìn)制單位計(jì)數(shù)器。
計(jì)數(shù)結(jié)果往往需要顯示出來,供人們讀數(shù),所以計(jì)數(shù)、譯碼和顯示電路通常配合使用。能完成這三種功能的芯片很多,要針對使用目的選用合適的芯片。如果計(jì)數(shù)結(jié)果要以十進(jìn)制數(shù)顯示出來,譯碼驅(qū)動(dòng)器可以用能直接驅(qū)動(dòng)七段數(shù)碼管的譯碼驅(qū)動(dòng)器。
如圖3.4.1,芯片74LS390內(nèi)有兩個(gè)十進(jìn)制計(jì)數(shù)器,CR是清零端(高電平有效),是CP脈沖,Q0、Q1、Q2、Q3為4個(gè)輸出。如果用觸發(fā),只有Q0有輸出;若用觸發(fā),則Q1、Q2、Q3三輸出端輸出(此時(shí)計(jì)數(shù)周期為5),即74LS390可以實(shí)現(xiàn)二進(jìn)制、五進(jìn)制計(jì)數(shù)。如果將Q0直接與相連,以作CP脈沖,則可以實(shí)現(xiàn)8421十進(jìn)制計(jì)數(shù)。
3.4.1 74LS390管腳排列圖
3.5 CD4052資料
CD4052是一個(gè)雙4選一的多路模擬選擇開關(guān),其使用真值表如表3.5.1所示:
INHIBIT
B
A

0
0
0
0x,0y
0
0
1
1x,1y
0
1
0
2x,2y
0
1
1
3x,3y
1
/
/
None

表3.5.1
應(yīng)用時(shí)可以通過單片機(jī)對A/B的控制來選擇輸入哪一路,例如:需要從4路輸入中選擇第二路輸入,假設(shè)使用的是Y組,那么單片機(jī)只需要分別給A和B送1和0即可選中該路,然后進(jìn)行相應(yīng)的處理。
注意第6腳為使能腳,只有為0時(shí),才會(huì)有通道被選中輸出.
圖3.5.1 CD4052芯片管腳圖:
3.6 NE555資料
555定時(shí)器是一種應(yīng)用極為廣泛的中規(guī)模集成電路。該電路使用靈活、方便,只需外接少量的阻容元件就可以構(gòu)成單穩(wěn)、多諧和施密特觸發(fā)器。因而廣泛用于信號的產(chǎn)生、變換、控制與檢測。
目前生產(chǎn)的定時(shí)器有雙極型和CMOS兩種類型,其型號分別有NE555(或5G555)和C7555等多種。它們的結(jié)構(gòu)及工作原理基本相同。通常,雙極型定時(shí)器具有較大的驅(qū)動(dòng)能力,而CMOS 定時(shí)器具有低功耗、輸入阻抗高等優(yōu)點(diǎn)。555定時(shí)器工作的電源電壓很寬,并可承受較大的負(fù)載電流。雙極型定時(shí)器電源電壓范圍為5~16V,最大負(fù)載電流可達(dá)200mA;CMOS 定時(shí)器電源電壓范圍為3~18V,最大負(fù)載電流在4mA以下。
一、電路組成
圖3.6.1為555集成定時(shí)器555定時(shí)器的電氣原理圖和電路符號,其由五個(gè)部分組成:
(1)由三個(gè)阻值為5kΩ 的電阻組成的分壓器;
(2)兩個(gè)電壓比較器C1 和C2:
V+>V-,Vo=1;
V+<V-,Vo=0。
(3)基本RS 觸發(fā)器;
(4)放電三極管T 及緩沖器G。
圖3.6.1 555定時(shí)器的電氣原理圖和電路符號
二、基本功能
當(dāng)5腳懸空時(shí),比較器C1和C2的比較電壓分別為2Vcc/3、Vcc/3。
(1)當(dāng)V11>2Vcc/3,V23>Vcc/3時(shí),比較器C1輸出低電平,C2輸出高電平,基本RS觸發(fā)器被置0,放電三極管T 導(dǎo)通,輸出端vO 為低電平。
(2)V11<2Vcc/3,V23<Vcc/3時(shí),比較器C輸出高電平,C2輸出低電平,基本RS 觸發(fā)器被置1,放電三極管T 截止,輸出端vO 為高電平。
(3)V11<2Vcc/3,V23>Vcc/3時(shí),比較器 C1 輸出高電平,C2也輸出高電平,即基本RS 觸發(fā)器R=1,S=1,觸發(fā)器狀態(tài)不變,電路亦保持原狀態(tài)不變。
由于閾值輸入端(V11)為高電平(>2Vcc/3)時(shí),定時(shí)器輸出低電平,因此也將該端稱為高觸發(fā)端(TH)。
因?yàn)橛|發(fā)輸入端(vI2)為低電平(< 1Vcc/3)時(shí),定時(shí)器輸出高電平,因此也將該端稱為低觸發(fā)端(TL)。
如果在電壓控制端(5腳)施加一個(gè)外加電壓(其值在0~VCC之間),比較器的參考電壓將發(fā)生變化,電路相應(yīng)的閾值、觸發(fā)電平也將隨之變化,并進(jìn)而影響電路的工作狀態(tài)。
另外,RD為復(fù)位輸入端,當(dāng)RD為低電平時(shí),不管其他輸入端的狀態(tài)如何,輸出Vo為低電平,即RD的控制級別最高。正常工作時(shí),一般應(yīng)將其接高電平。
閾值輸入(V11)
觸發(fā)輸入(V12)
復(fù)位(RD)
輸出(VO)
放電管T
/
/
0
0
導(dǎo)通
<2Vcc/3
<Vcc/3
1
1
截止
>2Vcc/3
>Vcc/3
1
0
導(dǎo)通
<2Vcc/3
>Vcc/3
1
不變
不變

表3.6.1 555定時(shí)器功能表
由電路框圖和功能表可以得出如下結(jié)論:
1 555定時(shí)器有兩個(gè)閾值,分別是2Vcc/3和Vcc/3。
2 輸出端3腳和放電端7腳的狀態(tài)一致,輸出低電平對應(yīng)放電管飽和,在7腳外接有上拉電阻時(shí),7腳為低電平。輸出高電平對應(yīng)放電管截止,在有上拉電阻時(shí),7腳為高電平。
3 輸出端狀態(tài)的改變有滯回現(xiàn)象,回差電壓為Vcc/3。
4 輸出與觸發(fā)輸入反相。掌握這四條,對分析555定時(shí)器組成的電路十分有利。
555應(yīng)用
施密特觸發(fā)器
施密特觸發(fā)器是數(shù)字系統(tǒng)中常用的電路之一,它可以把變化緩慢的脈沖波形變換成為數(shù)字電路所需要的矩形脈沖。施密特電路的特點(diǎn)在于它也有兩個(gè)穩(wěn)定狀態(tài),但與一般觸發(fā)器的區(qū)別在于這兩個(gè)穩(wěn)定狀態(tài)的轉(zhuǎn)換需要外加觸發(fā)信號,而且穩(wěn)定狀態(tài)的維持也要依賴于外加觸發(fā)信號,因此它的觸發(fā)方式是電平觸發(fā)。
1.電路組成及功能
只要將555 定時(shí)器的2號腳和6號腳接在一起,就可以構(gòu)成施密特觸發(fā)器。我們簡記為“二六搭一”。
圖3.6.2 555定時(shí)器構(gòu)成的施密特觸發(fā)器電路圖
(1) V1=0V 時(shí),Vo1 輸出高電平。
(2)當(dāng)V1上升到2Vcc/3時(shí),Vo1輸出低電平。當(dāng)V`由2Vcc/3繼續(xù)上升,Vo1 保持不變。
(3)當(dāng)V1下降到Vcc/3時(shí),電路輸出跳變?yōu)楦唠娖健6以赩1繼續(xù)下降到0V時(shí),電路的這種狀態(tài)不變。
圖3.6.2中,R、VCC2 構(gòu)成另一輸出端Vo2,其高電平可以通過改變Vcc2進(jìn)行調(diào)節(jié)。
2.電壓滯回特性和主要參數(shù)
電壓滯回特性
圖3.6.3 施密特觸發(fā)器的電路符號和電壓傳輸特性
主要靜態(tài)參數(shù)
(1)上限閾值電壓VT+----VI上升過程中,輸出電壓VO由高電平VOH 跳變到低電平VOL時(shí),所對應(yīng)的輸入電壓值。VT+ = 2Vcc/3。
(2)下限閾值電壓VT-----VI下降過程中, VO由低電平VOL 跳變到高電平VOH時(shí),所對應(yīng)的輸入電壓值。VT— =Vcc/3。
(3)回差電壓ΔVT
回差電壓又叫滯回電壓,定義為 :ΔVT= VT+-VT— = Vcc/3
若在電壓控制端VIC(5腳)外加電壓VS,則將有VT+=VS、VT—=VS/2、ΔVT=VS/2,而且當(dāng)改變VS 時(shí),它們的值也隨之改變。
3.施密特觸發(fā)器的應(yīng)用舉例
(1)用作接口電路----將緩慢變化的輸入信號,轉(zhuǎn)換成為符合TTL系統(tǒng)要求的脈沖波形。
(2)用作整形電路----把不規(guī)則的輸入信號整形成為矩形脈沖。
圖3.6.4 慢輸入波形的TTL系統(tǒng)接口和脈沖整形電路的輸入輸出波形
單穩(wěn)態(tài)觸發(fā)器
單穩(wěn)態(tài)觸發(fā)器具有下列特點(diǎn):第一,它有一個(gè)穩(wěn)定狀態(tài)和一個(gè)暫穩(wěn)狀態(tài);第二,在外來觸發(fā)脈沖作用下,能夠由穩(wěn)定狀態(tài)翻轉(zhuǎn)到暫穩(wěn)狀態(tài);第三,暫穩(wěn)狀態(tài)維持一段時(shí)間后,將自動(dòng)返回到穩(wěn)定狀態(tài),而暫穩(wěn)狀態(tài)時(shí)間的長短,與觸發(fā)脈沖無關(guān),公決定于電路本身的參數(shù)。
1.電路組成及其工作原理
由555構(gòu)成的單穩(wěn)態(tài)觸發(fā)器及工作波形如圖所示將555的6號腳和7號腳接在一起,并添加一個(gè)電容和一個(gè)電阻 ,就可以構(gòu)成單穩(wěn)態(tài)觸發(fā)器我們簡記為“七六搭一,上R下C”。
圖3.6.5 用555定時(shí)器構(gòu)成的單穩(wěn)態(tài)觸發(fā)器及工作波形
(1)無觸發(fā)信號輸入時(shí)電路工作在穩(wěn)定狀態(tài)
當(dāng)電路無觸發(fā)信號時(shí),VI保持高電平,電路工作在穩(wěn)定狀態(tài),即輸出端VO保持低電平,555內(nèi)放電三極管T飽和導(dǎo)通,管腳7“接地”,電容電壓VC為0V。
(2)VI 下降沿觸發(fā)
當(dāng)VI下降沿到達(dá)時(shí),555觸發(fā)輸入端(2腳)由高電平跳變?yōu)榈碗娖,電路被觸發(fā),VO由低電平跳變?yōu)楦唠娖,電路由穩(wěn)態(tài)轉(zhuǎn)入暫穩(wěn)態(tài)。
(3)暫穩(wěn)態(tài)的維持時(shí)間
在暫穩(wěn)態(tài)期間,555內(nèi)放電三極管T 截止,VCC經(jīng)R向C充電。其充電回路為VCC→R→C→地,時(shí)間常數(shù)τ1=RC,電容電壓VC由0V開始增大,在電容電壓VC上升到閾值電壓2Vcc/3之前,電路將保持暫穩(wěn)態(tài)不變。
(4)自動(dòng)返回(暫穩(wěn)態(tài)結(jié)束)時(shí)間
當(dāng)VC上升至閾值電壓2Vcc/3時(shí),輸出電壓VO由高電平跳變?yōu)榈碗娖剑?55內(nèi)放電三極管T由截止轉(zhuǎn)為飽和導(dǎo)通,管腳7“接地”,電容C經(jīng)放電三極管對地迅速放電,電壓VC由2Vcc/3迅速降至0V(放電三極管的飽和壓降),電路由暫穩(wěn)態(tài)重新轉(zhuǎn)入穩(wěn)態(tài)。
(5)恢復(fù)過程
當(dāng)暫穩(wěn)態(tài)結(jié)束后,電容C通過飽和導(dǎo)通的三極管T放電,時(shí)間常數(shù)τ2=RCESC,式中RCES是T的飽和導(dǎo)通電阻,其阻值非常小,因此τ2之值亦非常小。經(jīng)過(3~5)τ2后,電容C放電完畢,恢復(fù)過程結(jié)束。
2. 主要參數(shù)估算
(1) 輸出脈沖寬度tw
輸出脈沖寬度就是暫穩(wěn)態(tài)維持時(shí)間,也就是定時(shí)電容的充電時(shí)間。由圖所示電容電壓VC 的工作波形不難看出VC(0+)≈0V,VC(∞)=VCC,VC(tw)=2Vcc/3,代入RC過渡過程計(jì)算公式,可得tw=1.1ln3。
上式說明,單穩(wěn)態(tài)觸發(fā)器輸出脈沖寬度tw僅決定于定時(shí)元件R、C的取值,與輸入觸發(fā)信號和電源電壓無關(guān),調(diào)節(jié)R、C的取值,即可方便的調(diào)節(jié)tw。
3.單穩(wěn)態(tài)觸發(fā)器的應(yīng)用
(1)延時(shí)
在圖3.6.6中,的下降沿比WI 的下降沿滯后了時(shí)間tW,即延遲了時(shí)間tw。單穩(wěn)態(tài)觸發(fā)器的這種延時(shí)作用常被應(yīng)用于時(shí)序控制中。
(2)定時(shí)
在圖3.6.6中,單穩(wěn)態(tài)觸發(fā)器的輸出電壓,用做與門的輸入定時(shí)控制信號,當(dāng)為高電平時(shí),與門打開,Wo= WF,當(dāng)為低電平時(shí),與門關(guān)閉,Vo為低電平。顯然與門打開的時(shí)間是恒定不變的,就是單穩(wěn)態(tài)觸發(fā)器輸出脈沖的寬度tw。
圖3.6.6 單穩(wěn)態(tài)觸發(fā)器用于脈沖的延時(shí)與定時(shí)選通
(3)整形
單穩(wěn)態(tài)觸發(fā)器能夠把不規(guī)則的輸入信號VI,整形成為幅度和寬度都相同的標(biāo)準(zhǔn)矩形脈沖Vo。Vo的幅度取決于單穩(wěn)態(tài)電路輸出的高、低電平,寬度tw決定于暫穩(wěn)態(tài)時(shí)間。圖3.6.7是單穩(wěn)態(tài)觸發(fā)器用于波形的整形的一個(gè)簡單例子。
圖3.6.7 單穩(wěn)態(tài)觸發(fā)器用于波形的整形
多諧振蕩器——產(chǎn)生矩形脈沖波的自激振蕩器
在數(shù)字電路中,常常需要一種不需外加觸發(fā)脈沖就能夠產(chǎn)生具有一定頻率和幅度的矩形波的電路。由于矩形波中除基波外,還含有豐富的高次諧波成分,因此我們稱這種電路為多諧振蕩器。它常常用作脈沖信號源。多諧振蕩器沒有穩(wěn)態(tài),只具有兩個(gè)暫穩(wěn)態(tài),在自身因素的作用下,電路就在兩個(gè)暫穩(wěn)態(tài)之間來回轉(zhuǎn)換。
圖3.6.8 用555定時(shí)器構(gòu)成的多諧振蕩器
如圖3.6.8為555定時(shí)器構(gòu)成的多諧振蕩器,接通VCC后,VCC經(jīng)R1和R2對C充電。當(dāng)uc上升到2VCC/3 時(shí),uo=0,T導(dǎo)通,C通過R2和T放電,uc下降。當(dāng)uc下降到VCC/3時(shí),uo又由0變?yōu)?,T截止,VCC又經(jīng)R1和R2對C充電。如此重復(fù)上述過程,在輸出端uo產(chǎn)生了連續(xù)的矩形脈沖。
2.振蕩頻率的估算和占空比可調(diào)電路
電容C充電時(shí)間:tw1=0.7(R1+R2)C
電容C放電時(shí)間:tw2=0.7R2C
振蕩周期:T=0.7(R1+2R2)C
振蕩周期:f=1/T=1/[0.7(R1+2R2)]=1.43/[(R1+2R2)C]
占空比:D=tw1/T=0.7(R1+R2)C/[0.7(R1+2R2)]=(R1+R2)/(R1+2R2)
3.7 共陽4位LED數(shù)碼管資料
單片機(jī)I/O的應(yīng)用最典型的是通過I/O口與7段LED數(shù)碼管構(gòu)成顯示電路。7段LED數(shù)碼管,則在一定形狀的絕緣材料上,利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮相應(yīng)的點(diǎn)劃來顯示出0-9的數(shù)字。
LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。共陰和共陽極數(shù)碼管的發(fā)光原理是一樣的,只是它們的電源極性不同而已。
將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以共陰式為例,如把陰極接地,在相應(yīng)段的陽極接上正電源,該段即會(huì)發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將"b"和"c"段接上正電源,其它端接地或懸空,那么"b"和"c"段發(fā)光,此時(shí),數(shù)碼管顯示將顯示數(shù)字“1”。而將"a"、"b"、"d"、"e"和"g"段都接上正電源,其它引腳懸空,此時(shí)數(shù)碼管將顯示“2”。其它字符的顯示原理類同,可自行分析。
數(shù)碼管使用條件:
a、段及小數(shù)點(diǎn)上加限流電阻;
b、使用電壓:段:根據(jù)發(fā)光顏色決定;小數(shù)點(diǎn):根據(jù)發(fā)光顏色決定;
c、使用電流:靜態(tài)時(shí)總電流80mA(每段10mA);動(dòng)態(tài)時(shí)平均電流4-5mA,峰值電流100mA。
圖3.7.1是七段數(shù)碼管引腳圖,其中共陽極數(shù)碼管引腳圖和共陰極的是一樣的,數(shù)碼管使用注意事項(xiàng)說明:
(1)數(shù)碼管表面不要用手觸摸,不要用手去弄引角;
(2)焊接溫度:260度;焊接時(shí)間:5S;
(3)表面有保護(hù)膜的產(chǎn)品,可以在使用前撕下來。
圖3.7.1 七段數(shù)碼管引腳圖
3.8 三極管相關(guān)資料
9014,9013,8050三極管引腳與管腳識別方法
S9014,S9013,S9015,S9012,S9018系列的晶體小功率三極管,把顯示文字平面朝自己,從左向右依次為e發(fā)射極 b基極 c集電極;對于中小功率塑料三極管按圖使其平面朝向自己,三個(gè)引腳朝下放置,則從左到右依次為e b c,S8050,S8550,C2078 也是和這個(gè)一樣的。
當(dāng)前,國內(nèi)各種晶體三極管有很多種,管腳的排列也不相同,在使用中不確定管腳排列的三極管,必須進(jìn)行測量確定各管腳正確的位置(下面有用萬用表測量三極管的三個(gè)極的方法),明確三極管的特性及相應(yīng)的技術(shù)參數(shù)和資料。
非9014,9013系列三極管管腳識別方法:
判定基極。用萬用表R×100或R×1k擋測量管子三個(gè)電極中每兩個(gè)極之間的正、反向電阻值。當(dāng)用第一根表筆接某一電極,而第二表筆先后接觸另外兩個(gè)電極均測得低阻值時(shí),則第一根表筆所接的那個(gè)電極即為基極b。這時(shí),要注意萬用表表筆的極性,如果紅表筆接的是基極b。黑表筆分別接在其他兩極時(shí),測得的阻值都較小,則可判定被測管子為PNP型三極管;如果黑表筆接的是基極b,紅表筆分別接觸其他兩極時(shí),測得的阻值較小,則被測三極管為NPN型管如9013,9014,9018。
判定三極管集電極c和發(fā)射極e。(以PNP型三極管為例)將萬用表置于R×100或R×1K擋,紅表筆基極b,用黑表筆分別接觸另外兩個(gè)管腳時(shí),所測得的兩個(gè)電阻值會(huì)是一個(gè)大一些,一個(gè)小一些。在阻值小的一次測量中,黑表筆所接管腳為集電極;在阻值較大的一次測量中,黑表筆所接管腳為發(fā)射極。
不拆卸三極管判斷其好壞的方法。
在實(shí)際應(yīng)用中、小功率三極管多直接焊接在印刷電路板上,由于元件的安裝密度大,拆卸比較麻煩,所以在檢測時(shí)常常通過用萬用表直流電壓擋,去測量被測管子各引腳的電壓值,來推斷其工作是否正常,進(jìn)而判斷三極管的好壞。
如是象9013 ,9014一樣NPN的用萬用表檢測他們的引腳,黑表筆接一個(gè)極,用紅筆分別接其它兩極,兩個(gè)極都有5K阻值時(shí),黑表筆所接就是B極。這時(shí)用黑紅兩表筆分別接其它兩極,用舌尖同時(shí)添(其實(shí)也可以先用舌頭添濕一下手指然后用手指去摸,反正都不衛(wèi)生)黑表筆所接那個(gè)極和B極,表指示阻值小的那個(gè)黑表所接就是C極。(以上所說為用指針表所測,數(shù)字表為紅筆數(shù)字萬用表內(nèi)部的正負(fù)級是和指正表相反的。)
3.9 三端穩(wěn)壓管LM7805資料
7805是常用的三端穩(wěn)壓器件,顧名思義05就是輸出電壓為5v,還可以微調(diào),7805輸出波紋很小。
(1) 集成三端穩(wěn)壓器根據(jù)穩(wěn)定電壓的正、負(fù)極性分為78××,79××系列。圖3.8.1給出了正、負(fù)穩(wěn)壓的典型電路。
圖3.8.1 正、負(fù)穩(wěn)壓7805電路
(2) 三端穩(wěn)壓器的型號規(guī)格和管腳分布。
表3.8.1 三端穩(wěn)壓器輸出電流字母表示法
7805三端穩(wěn)壓器可輸出+5 V、0.5 A的穩(wěn)定電壓;7912三端穩(wěn)壓器可輸出 12V、1A的穩(wěn)定電壓。
(3) 外形及管腳分布,如附圖3.8.2所示。 

圖3.8.2 7805,79系列三端穩(wěn)壓器引腳功能輸出資料
3.10 繼電器資料
電磁式繼電器的結(jié)構(gòu)與工作原理
電磁式繼電器是應(yīng)用得最早、最多的一種型式。其結(jié)構(gòu)及工作原理與接觸器大體相同。由電磁系統(tǒng)、觸點(diǎn)系統(tǒng)和釋放彈簧等組成,電磁式繼電器原理如圖l所示。由于繼電器用于控制電路,流過觸點(diǎn)的電流比較小(一般5A以下),故不需要滅弧裝置。
常用的電磁式繼電器有電壓繼電器、中間繼電器和電流繼電器。
電磁式繼電器的特性
繼電器的主要特性是輸入-輸出特性,又稱繼電特性。當(dāng)繼電器輸入量X由零增至X2以前,繼電器輸出量Y為零。當(dāng)輸入量X增加到X2時(shí),繼電器吸合,輸出量為Y1;若X繼續(xù)增大,Y保持不變。當(dāng)X減小到X1時(shí),繼電器釋放,輸出量由Y1變?yōu)榱,若X繼續(xù)減小,Y值均為零。
Kf=X1/X2稱為繼電器的返回系數(shù),它是繼電器重要數(shù)之一。Kf值是可以調(diào)節(jié)的。
例如一般繼電器要求低的返回系數(shù),Kf值應(yīng)在0.1~0.4之間,樣當(dāng)繼電器吸合后,輸入量波動(dòng)較大時(shí)不致引起誤動(dòng)作;欠電壓繼電器則要求高的返回系數(shù),Kf值在0.6以上。設(shè)某繼電器Kf=0.66,吸合電壓為額定電壓的90%,則電壓低于額定電壓的50%時(shí),繼電器釋放,起到欠電壓保護(hù)作用。
另一個(gè)重要參數(shù)是吸合時(shí)間和釋放時(shí)間。吸合時(shí)間是指從線圈接受電信號到銜鐵完全吸合所需的時(shí)間;釋放時(shí)間是指從線圈失電到銜鐵完全釋放所需的時(shí)間。一般繼電器的吸合時(shí)間與釋放時(shí)間為0.05~0.15s,快速繼電器為0.005~0.05s,它的大小影響繼電器的操作頻率。
4  調(diào)試總結(jié)
作為測量儀器,測量精度是一項(xiàng)很重要的指標(biāo)?梢杂靡恍┓椒▉斫档驼`差提高精度。RLC參數(shù)測量儀在測量中除含有隨機(jī)誤差外,還有內(nèi)部固定偏移、輸入端的各種雜散參數(shù)以及測試信號源中斜波分量等因素引起的系統(tǒng)誤差,主要分為有固定偏移、開路校準(zhǔn)和短路校準(zhǔn)、隨機(jī)誤差的處理。固定偏移主要是有源期間零漂引起,其結(jié)果是等效在待測交流號上疊加了某一固定的直流電壓。固定偏移可通過減法予以扣除。設(shè)一次完整的測量中含8次測量。前四次測量在X和Y的正半軸取得,后四次測量結(jié)果則安排在X和Y的負(fù)半軸取得。然后再把前四次測量結(jié)果與后四次測量結(jié)果相減。例如,通道的偏移量為M則前四次測量值為:N+M,后四次測量結(jié)果為-N+M。相減后得到,然后各分量除以2N。這樣就消除了偏移量。RLC參數(shù)測量儀的測量端、測量饋線以及測量夾具總是存在殘余阻抗和殘余導(dǎo)納。這些殘余兩對小電容、小電感或高電阻的測量會(huì)造成較大誤差。校正的基本思想是先通過理論分析建立系統(tǒng)的誤差模型,求出無恥修正公式,然后通過簡單的“開路”、“短路”等校準(zhǔn)技術(shù)記錄各誤差因子,最后程序利用修正公式和誤差因子自動(dòng)計(jì)算修正結(jié)果。根據(jù)統(tǒng)計(jì)方法理論,隨即誤差可以通過多次重復(fù)測量的平均來郁郁削弱。通過編程的方式對被測參數(shù)連續(xù)測量,然后求平均的辦法來削弱隨即誤差。
調(diào)試之前,要先用萬用表檢測了一遍線路是否有開路或者短路。在檢查完電路的連通性之后,插上芯片,燒錄程序,若電路沒有正常工作,則要從各個(gè)方面找原因,例如芯片、電容、發(fā)光二極管等器件正負(fù)極是否插對,是否有虛焊、開路和短路現(xiàn)象。第一次調(diào)試時(shí),發(fā)光管發(fā)光出現(xiàn)異常,不能確定電源是否正常供電到芯片。經(jīng)過萬用表檢查后才發(fā)現(xiàn)發(fā)光管是壞的,即刻換上好的發(fā)光管。在實(shí)驗(yàn)板上成功調(diào)試好程序之后,燒錄程序到自己的板上,卻發(fā)現(xiàn)有三位數(shù)碼管不能顯示,在我糾結(jié)于究竟是軟件的問題、電路的問題或者是元件的問題許久之后,經(jīng)過分析排查,發(fā)現(xiàn)我把共陰的數(shù)碼管當(dāng)作共陽的接上去了。換了共陽的數(shù)碼管總算是能顯示了。確保電路沒有任何故障與缺陷的時(shí)候,我把時(shí)間和精力集中在優(yōu)化程序的步驟。經(jīng)過幾天反復(fù)的嘗試摸索,程序已經(jīng)較最初的程序有較大的改動(dòng),盡量化繁瑣為精簡。用C語言調(diào)試最大的困難便是對與大括號的把握。大括號成雙出現(xiàn),缺一不可。但是如果多了一個(gè)大括號或者少一個(gè)大括號的話,由KEIL C軟件所提示的無法創(chuàng)建*.HEX文件又沒有提示括號的多缺處,只有依靠自己慢慢尋找,這里提醒我們在編寫程序的時(shí)候要注意層次分明,以便易于查找程序出錯(cuò)的板塊。大括號括的地方不同,有的時(shí)候甚至影響到整個(gè)程序工作的穩(wěn)定性,最嚴(yán)重的時(shí)候不僅使相應(yīng)的功能沒有還會(huì)禍及其他功能的實(shí)現(xiàn)。
5  結(jié)論
本文設(shè)計(jì)了一種基于AT89S52單片機(jī)的RLC智能測量儀,其主要功能如下:
(1)能精確測量出電容、電感、電阻的參數(shù)值。
(2)可以實(shí)現(xiàn)量程電阻的自動(dòng)轉(zhuǎn)換,無須人工選擇檔位。
(3)當(dāng)測量正弦信號的幅度過小時(shí),可以自動(dòng)實(shí)現(xiàn)增益放大,從而不影響精度。
(4)AT89S52具有“看門狗”功能,避免出現(xiàn)“死機(jī)”現(xiàn)象。
(5)定時(shí)器可以采用外部時(shí)鐘源計(jì)數(shù),則為我們計(jì)算振蕩電路產(chǎn)生頻率 提供了便利,而且計(jì)算精度較高,控制簡單。
由此可見,此測量儀具有高度的智能化和集成化,可精確地對元器件參數(shù)進(jìn)行測量,這正符合當(dāng)今測量儀器的發(fā)展趨勢,它將具有廣闊的應(yīng)用前景。


附  錄
印板PCB圖:
元件PCB圖:


單片機(jī)源程序如下:
  1. #include <REG52.H>
  2. #include <absacc.h>
  3. #include <stdio.h>
  4. #define  ICM7218  XBYTE[0x00ff]//7218A地址

  5. unsigned char Tab[] ={ 0xFB,0xB0,0xED,0xF5,0xB6,
  6.                        0xD7,0xDF,0xF0,0xFF,0xF7
  7.                                                                         };//7218A數(shù)碼管段代碼表
  8. unsigned char Addr[] ={  0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
  9.                          0x40,0x48,0x50,0x60,0x68,0x70,0x78
  10.                                                                          };//ISD1420播放地址代碼表
  11.             //(0,1,2,3,4,5,6,7,8,9, 乘以10的,次方,歐,皮法,微亨)
  12. unsigned char P_tab[7] ={  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
  13.                         };//語音播放結(jié)果列表  
  14. unsigned char SaveData[8] ={  0xCE,0xCE,0xCE,0xCE,0xCE,0xCE,0xCE,0xCE
  15.                            };//最終結(jié)果
  16. unsigned char count = 0, counter = 0, bai = 0, shi = 0, ge = 0, cifang = 0;
  17. unsigned long int pinlv = 0, result = 0, flag = 0;

  18. sbit Mode = P1^2;//7218A工作模式
  19. sbit R_select = P3^2;//電阻測量選擇按鍵
  20. sbit C_select = P3^3;//電容測量選擇按鍵
  21. sbit L_select = P3^4;//電感測量選擇按鍵
  22. sbit R_led = P2^2;//電阻指示燈
  23. sbit C_led = P2^1;//電容指示燈
  24. sbit L_led = P2^0;//電感指示燈
  25. sbit R_change = P2^4;//電阻量程轉(zhuǎn)變
  26. sbit C_change = P2^3;//電容量程轉(zhuǎn)變
  27. sbit F_B = P1^4;//模擬開關(guān)
  28. sbit F_A = P1^3;
  29. sbit Play = P2^6;//語音播放
  30. sbit Feedback = P2^7;//ISD1420反饋信號]

  31. /****************************
  32.           延時(shí)
  33. ******************************/
  34. void delay(unsigned int k)
  35. {
  36.   unsigned int a;
  37.   for(a=0; a<=k; a++);
  38. }
  39. /******************************
  40.           頻率測量
  41. *******************************/
  42. void pl(void)
  43. {
  44.   TMOD = 0x51;//定時(shí)器0工作方式1,計(jì)數(shù)器1工作方式1
  45.   TH0 = 0x3c;
  46.   TL0 = 0xb0;//50ms定時(shí)
  47.   TH1 = 0;
  48.   TL1 = 0;//計(jì)數(shù)器清零
  49.   EA = 1;
  50.   ET0 = 1;
  51.   ET1 = 1;
  52.   TR0 = 1;
  53.   TR1 = 1;//啟動(dòng)計(jì)時(shí)計(jì)數(shù)器
  54.   while(count <= 60);//3秒測頻
  55.   count = 0;
  56.   pinlv= (counter * 65536 + TH1 * 256 + TL1) / 3;//頻率換算
  57.   counter = 0;
  58.   TR0 = 0;//停止計(jì)時(shí)計(jì)數(shù)器
  59.   TR1 = 0;
  60. }
  61. void t0(void) interrupt 1 using 0//定時(shí)器中斷子程序
  62. {
  63.   TH0 = 0x3c;
  64.   TL0 = 0xb0;
  65.   count++;
  66. }
  67. void t1(void) interrupt 3 using 0//計(jì)數(shù)器中斷子程序
  68. {
  69.   counter++;
  70. }
  71. /******************************
  72.     阻值公式換算(單位:歐姆)
  73. *******************************/
  74. void R_deal(void)
  75. {
  76.   result = (6557705 / pinlv - 200) / 2;//100~10k歐姆
  77.   if (R_change == 0)
  78.    {
  79.      result = (6557705 / pinlv - 20000) / 2;//10k~1M歐姆
  80.     }
  81.   if (result > 20000 && result < 400000)//修正
  82.    {
  83.      result = result * 939 / 1000;
  84.    }
  85.   else
  86.    {
  87.      result = result * 891 / 1000;
  88.     }
  89. }
  90. /*****************************
  91.      容值公式換算(單位:PF)
  92. ******************************/
  93. void C_deal(void)
  94. {
  95.   result = 13383072 / pinlv;//100~1000PF
  96.   if (C_change == 0)//1000~10000PF
  97.    {
  98.      result = 2540851 / pinlv;
  99.    }
  100.   if (result < 277)//修正
  101.    {
  102.       result = result * 36 / 100;
  103.     }
  104.   if (result >= 277 && result < 288)
  105.    {
  106.      result = result * 430 / 1000;
  107.    }
  108.   if (result >= 288 && result < 318)
  109.    {
  110.      result = result * 507 / 1000;
  111.     }
  112.   if (result >= 318 && result < 450)
  113.    {
  114.      result = result * 614 / 1000;
  115.     }
  116.    if (result >= 450 && result < 470)
  117.    {
  118.      result = result * 65 / 100;
  119.    }
  120.    if (result >= 470 && result < 1455)
  121.    {
  122.      result = result * 72 / 100;
  123.    }
  124.    if (result >= 3295 && result < 9000)
  125.    {
  126.       result = result * 789 / 1000;
  127.    }
  128. }
  129. /******************************
  130.      感值公式換算(單位:uH)
  131. ******************************/
  132. void L_deal(void)
  133. {
  134.   pinlv = pinlv * 100;//頻率分頻還原
  135.   result = (6069931 / pinlv) * (6069931 / pinlv);
  136.   if (result >= 3600)//修正
  137.    {
  138.      result = result * 2;
  139.    }
  140.   if (result >= 2445 && result < 3600)
  141.    {
  142.      result = result * 100 / 65;
  143.    }
  144.   if (result >= 1245 && result < 2445)
  145.    {
  146.      result = result * 100 / 80;
  147.    }
  148.   if (result >= 552 && result < 1245)
  149.    {
  150.      result = result * 100 / 70;
  151.     }
  152.    if (result >= 465 && result < 552)
  153.    {
  154.       result = result * 100 / 84;
  155.     }
  156.    if (result >= 328 && result < 465)
  157.    {
  158.       result = result * 1000 / 765;
  159.     }
  160.    if (result < 328)
  161.    {
  162.      result = result * 100 / 79;
  163.    }
  164. }
  165. /******************************
  166.         轉(zhuǎn)換成代碼表
  167. *****************************/
  168. void daima(void)
  169. {
  170.   unsigned char j, i = 0;
  171.   flag = result;
  172.   while (flag / 10)
  173.    {
  174.      flag = flag / 10;
  175.      i++;
  176.    }
  177.   if (i >= 2)
  178.    {
  179.      cifang = i-2;
  180.    }
  181.   else
  182.     cifang = 0;
  183.   for (j=0; j<cifang; j++)
  184.    {
  185.      result = result / 10;
  186.     }
  187.   bai = result / 100;
  188.   shi = result / 10 % 10;
  189.   ge = result % 10;
  190.   SaveData[0] = Tab[bai];
  191.   SaveData[1] = Tab[shi];
  192.   SaveData[2] = Tab[ge];
  193.   SaveData[3] = Tab[cifang];
  194. }
  195. /******************************
  196.         ICM7218_LED顯示
  197. ******************************/
  198. void display(void)
  199. {
  200.   unsigned char i;
  201.   Mode = 1;//寫命令字
  202.   ICM7218 = 0xf0;//十六進(jìn)制非譯碼正常工作,后跟顯示數(shù)據(jù)
  203.   Mode = 0;//寫入數(shù)據(jù)
  204.   for (i=0; i<8; i++)
  205.    {
  206.      ICM7218 = SaveData[i];
  207.    }
  208. }
  209. /*****************************
  210.          ISD1420語音播放
  211. ******************************/
  212. void play(void)
  213. {
  214.   unsigned char i;
  215.   P_tab[0] = Addr[bai];//給表賦值
  216.   P_tab[1] = Addr[shi];
  217.   P_tab[2] = Addr[ge];
  218.   P_tab[3] = Addr[10];
  219.   P_tab[4] = Addr[cifang];
  220.   P_tab[5] = Addr[11];
  221.   if (R_led == 0)//電阻--歐
  222.     {
  223.       P_tab[6] = Addr[12];
  224.      }
  225.    if (C_led == 0)//電容--皮法
  226.     {
  227.       P_tab[6] = Addr[13];
  228.     }
  229.    if (L_led == 0)//電感--微亨
  230.     {
  231.       P_tab[6] = Addr[14];
  232.     }
  233.    for (i=0; i<7; i++)
  234.     {
  235.       P0 = P_tab[i];//地址
  236.       delay(20000);
  237.       Play = 0;//播放
  238.       delay(20000);
  239.       while (Feedback == 1);//等待EOM結(jié)束反饋
  240.       Play = 1;
  241.       delay(20000);
  242.     }
  243. }
  244. /*****************************
  245.           主函數(shù)
  246. ******************************/
  247. void main(void)
  248. {
  249.   R_select = 1;//初始化
  250.   C_select = 1;
  251. L_select = 1;
  252.   R_led = 1;
  253.   C_led = 1;
  254.   L_led = 1;
  255.   Play = 1;
  256.   Feedback = 1;
  257.   while (1)
  258.    {
  259. /*****************電阻*********************/
  260.      if (R_select ==0 )//測電阻
  261.        {
  262.          delay(2000);//去抖動(dòng)            
  263.          if (R_select == 0)
  264.           {
  265.             R_led = 0;
  266.             C_led = 1;
  267.             L_led = 1;
  268.             F_B = 0;//模擬開關(guān)電阻頻率輸出
  269.             F_A = 0;
  270.             delay(20000);
  271.             C_change = 1;
  272.             R_change = 1;//低量程
  273.             delay(50000);
  274.             delay(50000);
  275.             pl();//測頻
  276.             if (pinlv < 164)//是否需要轉(zhuǎn)換(高量程)?
  277.              {
  278.                 R_change = 0;
  279.                 delay(50000);
  280.                 delay(50000);
  281.                 pl();
  282.               }
  283.             R_deal();//結(jié)果
  284.             daima();//代碼轉(zhuǎn)換
  285.             display();//顯示
  286.             //play();//語音播放
  287.           }
  288. }
  289. /******************電容***********************/
  290.      if (C_select == 0)//測電容
  291.       {
  292.         delay(2000);//去抖動(dòng)
  293.      if (C_select == 0)
  294.       {
  295.         C_led = 0;
  296.         R_led = 1;
  297.         L_led = 1;
  298.         F_B = 0;//模擬開關(guān)電容頻率輸出
  299.         F_A = 1;
  300.         delay(20000);
  301.         C_change = 1;//低量程
  302.         R_change = 1;
  303.         delay(50000);
  304.         delay(50000);
  305. ……………………

  306. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
畢業(yè)設(shè)計(jì)論文(1).doc (1.18 MB, 下載次數(shù): 19)







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品中文字幕在线 | 欧美综合国产精品久久丁香 | 欧美综合一区二区三区 | 国产在线精品一区二区 | 新91 | 美女国产精品 | 久久久久久高清 | 久久黄色网 | 国产乱码久久久 | aaa综合国产 | 天堂av免费观看 | 日韩久久综合 | 久久69精品久久久久久久电影好 | 天天看片天天干 | 久久国产精品一区二区三区 | 久久网一区二区三区 | 久久婷婷香蕉热狠狠综合 | 成人免费福利视频 | 亚洲精品福利在线 | 国产亚洲一区二区三区在线 | 一级黄色播放 | a级大片| 中文字幕1区 | 亚洲欧美第一视频 | 欧美国产日韩在线 | 日韩中文一区二区三区 | 亚洲一区二区在线免费观看 | 91美女在线| 日本黄色免费视频 | 日本中文字幕一区 | 一二三区视频 | 日韩视频三区 | 九色av | 中国毛片免费 | 白浆在线 | 国产精品国产三级国产aⅴ中文 | 精品99久久久久久 | 欧美精品一区三区 | 久久久亚洲 | 国产成人精品一区二区三区网站观看 | 香蕉一区二区 |