電阻測量課程設(shè)計_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  本設(shè)計電阻測量是利用A/D轉(zhuǎn)換原理,將被測模擬量轉(zhuǎn)換成數(shù)字量,并用數(shù)字方式顯示測量結(jié)果的電子測量儀表。通常測量電阻都采用大規(guī)模的A/D轉(zhuǎn)換集成電路,測量精度高,讀數(shù)方便,在體積、重量、耗電、穩(wěn)定性及可靠性等方面性能指標(biāo)均明顯優(yōu)于指針式萬用表。其中,A/D轉(zhuǎn)換器將輸入的模擬量轉(zhuǎn)換成數(shù)字量,邏輯控制電路產(chǎn)生控制信號,按規(guī)定的時序

2、將A/D轉(zhuǎn)換器中各組模擬開關(guān)接通或斷開,保證A/D轉(zhuǎn)換正常進行。A/D轉(zhuǎn)換結(jié)果通過計數(shù)譯碼電路變換成BCD碼,最后驅(qū)動顯示器顯示相應(yīng)的數(shù)值。本系統(tǒng)以單片機AT89C52為系統(tǒng)的控制核心,結(jié)合A/D轉(zhuǎn)換芯片ADC0809設(shè)計一個電阻測量表,能夠測量一定數(shù)值之間的電阻值,通過四位數(shù)碼顯示。具有讀數(shù)據(jù)準(zhǔn)確,測量方便的特點。</p><p>  關(guān)鍵詞:單片機(AT89C52); 電壓;A/D轉(zhuǎn)換;ADC0809<

3、;/p><p><b>  目錄</b></p><p><b>  設(shè)計要求1</b></p><p>  1、方案論證與對比2</p><p><b>  1.1方案一1</b></p><p><b>  1.2方案二3</b&

4、gt;</p><p>  1.3方案對比與比較3</p><p>  2、系統(tǒng)硬件電路的設(shè)計3</p><p>  2.1 振蕩電路模塊3</p><p>  2.2 A/D轉(zhuǎn)換電路模塊4</p><p>  2.2.1主要性能4</p><p>  2.2.2 ADC0809芯片

5、的組成原理4</p><p>  2.2.3 ADC0809引腳功能5</p><p>  2.3 主控芯片AT89C52模塊6</p><p>  2.3.1主要功能特性6</p><p>  2.3.2 主要引腳功能7</p><p>  2.4 顯示控制電路的設(shè)計及原理9</p><

6、;p><b>  3、程序設(shè)計11</b></p><p>  3.1 初始化程序11</p><p><b>  3.2主程序11</b></p><p>  3.3顯示子程序11</p><p>  3.4 A/D轉(zhuǎn)換測量子程序12</p><p>  4

7、、調(diào)試及性能分析13</p><p>  4.1調(diào)試與測試13</p><p>  4.2性能分析13</p><p><b>  5、元件清單14</b></p><p>  6、總結(jié)與思考及致謝14</p><p><b>  參考文獻15</b></p

8、><p><b>  附一:原理圖16</b></p><p><b>  附二:程序17</b></p><p><b>  設(shè)計要求</b></p><p>  電阻測量(需要簡單的外圍檢測電路,將電阻轉(zhuǎn)換為電壓)</p><p>  測量100,1

9、k,4.7k,10k,20k的電阻阻值,由數(shù)碼管顯示。</p><p><b>  測試:誤差10%。</b></p><p><b>  1、方案論證與對比</b></p><p><b>  1.1方案一 </b></p><p>  利用單穩(wěn)或電容充放電規(guī)律等,可以把

10、被測電阻量的大小轉(zhuǎn)換成脈沖的寬窄,即脈沖的寬度Tx與Rx成正比。只要把此脈沖和頻率固定不變的方波(以下稱為時鐘脈沖)相與,便可以得到計數(shù)脈沖,將它送給數(shù)字顯示器。如果時鐘脈沖的頻率等參數(shù)合適,便可實現(xiàn)測量電阻。計數(shù)控制電路輸出的脈沖寬度Tx應(yīng)與Rx成正比,其電路原理圖及具體555單穩(wěn)態(tài)觸發(fā)器的構(gòu)成及仿真如圖1所示。</p><p>  用555構(gòu)成的單穩(wěn)態(tài)電路在正常工作條件下輸出脈沖的寬度Tx與Rx的函數(shù)關(guān)系是:

11、</p><p>  所產(chǎn)生的時間誤差可能達到百分之十五,再加上其他原因產(chǎn)生的誤差,測量是的時間延遲太大。</p><p>  圖1 方案一原理圖</p><p><b>  1.2方案二</b></p><p>  用ADC0809電阻測量,以一個1K的電阻作為基準(zhǔn)電阻。和被測電阻進行分壓,分壓比例得出電阻比例。&

12、lt;/p><p><b>  =</b></p><p>  用ACD0809測量電阻時間誤差為%10以下,分辨率高,輸出能與TTL電平兼容。其原理圖如圖2所示。</p><p>  圖2 方案二原理圖</p><p>  1.3方案對比與比較</p><p>  由于課程設(shè)計的要求是電阻測量需要

13、簡單的外圍檢測電路,將電阻轉(zhuǎn)換為電壓,測量100,1k,4.7k,10k,20k的電阻阻值,由數(shù)碼管顯示。測試:誤差10%。通過比較以上兩個方案,可知方案二相對來說比較適合。所以選用方案二作為實驗方案。</p><p>  2、系統(tǒng)硬件電路的設(shè)計</p><p>  2.1 振蕩電路模塊</p><p>  振蕩電路通過這兩個引腳外并接石英晶體振蕩器和兩只電容(電

14、容和一般取33pF),這樣就構(gòu)成一個穩(wěn)定的自激振蕩器。為單片機提供時鐘信號。如圖3所示。</p><p><b>  圖3. 振蕩電路</b></p><p>  2.2 A/D轉(zhuǎn)換電路模塊</p><p>  ADC0809是采用逐次逼近式原理的A/D轉(zhuǎn)換器。</p><p>  ADC0809的工作過程是:首先輸入3

15、位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖剑甘続/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)OE輸入高電平時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上,9電路圖如圖4所示。</p><p>  圖4

16、 A/D轉(zhuǎn)換電路原理圖</p><p><b>  2.2.1主要性能</b></p><p>  1分辨率為8位二進制數(shù)。</p><p>  2模擬輸入電壓范圍0V—5V,對應(yīng)A/D轉(zhuǎn)換值為00H—FFH。</p><p>  3每路A/D轉(zhuǎn)換完成時間為100µs。</p><p>

17、  4允許輸入4路模擬電壓,通過具有鎖存功能的4路模擬開關(guān),可以分時進行4路A/D轉(zhuǎn)換。</p><p>  5工作頻率為500kHz,輸出與TTL電平兼容。</p><p>  2.2.2 ADC0809芯片的組成原理</p><p>  具體設(shè)計要求如圖5所示,它是由地址鎖存器、4路模擬開關(guān)、8位逐次A/D轉(zhuǎn)換器和三態(tài)鎖存輸出緩沖器構(gòu)成。由3位地址輸入線ADDR

18、A、ADDRB、ADDRC決定4路模擬輸入中的1路進8位A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換值進入三態(tài)鎖存輸出緩沖器暫存,在CPU發(fā)來輸出允許控制信號OE后,三態(tài)門打開,經(jīng)DB7—DB0進入CPU總線,完成一次A/D轉(zhuǎn)換全過程。</p><p>  圖5 A/D轉(zhuǎn)換電路原路圖</p><p>  2.2.3 ADC0809引腳功能</p><p>  ADC0809采用28引腳

19、的封裝,雙列直插式。A/D轉(zhuǎn)換由集成電路ADC0809完成。ADC0809具有8路模擬輸入端口,地址線(23— 25腳—即C,B,A,)可決定對哪一路模擬輸入作A/D轉(zhuǎn)換。22腳為地址鎖存控制(ALE),當(dāng)輸入為高電平時,對地址信號進行鎖存。6腳為測試控制(START),當(dāng)輸入一個2us寬高電平脈沖時,就開始A/D轉(zhuǎn)換。7腳為A/D轉(zhuǎn)換結(jié)束標(biāo)志(EOC),當(dāng)A/D轉(zhuǎn)換結(jié)束時,7腳輸出高電平。9腳為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制(OE),當(dāng)O

20、E腳為高電平時,A/D轉(zhuǎn)換數(shù)據(jù)從該端口輸出。10腳為ADC0809的時鐘輸入端(CLOCK),利用單片機30腳的六分頻晶振頻率再通過14024二分頻得到1MHz時鐘。單片機的P1、P3.0—P3.3端口作為四位LED數(shù)碼管顯示控制。P3.5端口用作單路顯示/循環(huán)顯示轉(zhuǎn)換按鈕,P3.6端口用作單路顯示時選擇通道。P0端口作A/D轉(zhuǎn)換數(shù)據(jù)讀入用,P2端口用作ADC0809的A/D轉(zhuǎn)換控制。</p><p>  2.3

21、 主控芯片AT89C52模塊</p><p>  AT89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS—51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。

22、</p><p>  AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口。3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。</p><p>  如圖6所示為AT89C52管腳圖。

23、</p><p>  圖6 AT89C52管腳圖</p><p>  2.3.1主要功能特性</p><p>  ·與MCS—51產(chǎn)品指令和引腳完全兼容</p><p>  ·8k字節(jié)可重擦寫Flash閃速存儲器</p><p>  ·1000次擦寫周期 </p><

24、p>  ·全靜態(tài)操作:0Hz—24MHz</p><p>  ·三級加密程序存儲器</p><p>  ·32個可編程I/O口線</p><p>  ·低功耗空閑和掉電模式 </p><p>  ·3個16位定時/計數(shù)器</p><p>  ·可編程串行

25、UART通道</p><p>  2.3.2 主要引腳功能</p><p><b>  VCC : 電源</b></p><p><b>  GND: 地</b></p><p>  P0 口:P0 口是一組8 位漏極開路型雙向I/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。</p><p

26、>  P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX)。 P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/

27、O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在fla

28、sh編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。</p><p>  P1口和P2口的第二功能如下表1所示。</p><p>  表1 P0和P1口的第二功能</p><p>  P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P3口輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為

29、輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89C52特殊功能(第二功能)使用,在flash編程和校驗時,P3口也接收一些控制信號。具體功能如表2所示:</p><p>  表2P3口的第二功能</p><p>  RST: 復(fù)位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復(fù)位??撮T狗計時完成后,RST腳輸出96個晶振周期的高電平。

30、特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。</p><p>  ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,AL

31、E脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE將被微弱拉高。這個ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。</p><p>  PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當(dāng)AT89C52從外部程序存儲器執(zhí)行外部代碼時,PSE

32、N在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。</p><p>  EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP 電壓。</p><p>  XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。</

33、p><p>  XTAL2:振蕩器反相放大器的輸出端。</p><p>  2.4 顯示控制電路的設(shè)計及原理</p><p>  顯示子程序采用動態(tài)掃描法實現(xiàn)4位數(shù)碼管的數(shù)值顯示。測量所得的A/D轉(zhuǎn)換數(shù)據(jù)放70H—77H內(nèi)存單元中,測量數(shù)據(jù)在顯示時須經(jīng)過轉(zhuǎn)換成為十進制BCD碼放在78H—7BH單元中,其中7B存放通道標(biāo)志數(shù)。寄存器R3用作8路循環(huán)控制,R0用作顯示數(shù)據(jù)地

34、址指針。</p><p>  本系統(tǒng)顯示部分采用4位數(shù)碼管動態(tài)掃描顯示。</p><p>  動態(tài)掃描顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一。其接口電路是把所有顯示器的8個筆劃段a-h同名端連在一起,而每一個顯示器的公共極COM 是各自獨立地受I/O線控制。CPU向字段輸出口送出字形碼時,所有顯示器接收到相同的字形碼,但究竟是那個顯示器亮,則取決于COM端,而這一端是由 I/O控

35、制的,所以我們就可以自行決定何時顯示哪一位了。而所謂動態(tài)掃描就是指我們采用分時的方法,輪流控制各個顯示器的COM端,使各個數(shù)碼管輪流點亮。本系統(tǒng)采用4位共陰極數(shù)碼管,COM端接接P20—P23端,8個筆劃段a-h分別按順序接P07—P00,輪流給P20—P23口低電平,使各個數(shù)碼管輪流點亮。</p><p>  在輪流點亮掃描過程中,每位顯示器的點亮?xí)r間是極為短暫的(約1ms),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管

36、的余輝效應(yīng),盡管實際上各位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。</p><p>  顯示控制電路由圖7的8255芯片和圖8的數(shù)碼管顯示電路兩部分組成</p><p><b>  圖78255芯片</b></p><p>  圖8 數(shù)碼管顯示電路</p><p>

37、<b>  3、程序設(shè)計</b></p><p><b>  3.1 初始化程序</b></p><p>  void Init()</p><p><b>  {</b></p><p><b>  ST = 0;</b></p><

38、p><b>  OE = 0;</b></p><p>  a8255_CON=0x81;</p><p><b>  PB=0xff;</b></p><p><b>  PA=0xff;</b></p><p><b>  }</b></p

39、><p><b>  3.2主程序</b></p><p>  void main()</p><p><b>  {</b></p><p>  uchar I=0,J=0;</p><p>  uint RRR=0;</p><p><b>

40、;  Init();</b></p><p>  while (1) </p><p><b>  { </b></p><p>  Get_Resistance();</p><p>  If(RRR==0)RRR=R_T; //計算平均值</p><p>

41、;<b>  else </b></p><p>  if(J==30){R=RRR;RRR=0;J=0;} //J為 30個平均值 《可改》</p><p><b>  else J++;</b></p><p>  Display();</p><p><b>  }<

42、/b></p><p><b>  }</b></p><p><b>  3.3顯示子程序</b></p><p>  void Display()</p><p><b>  {</b></p><p><b>  uchar A;&

43、lt;/b></p><p>  uint B=10000;</p><p>  for(A=0x02;A<=0X40;A<<=1)</p><p><b>  {</b></p><p>  if(R/B) </p><p>  {if(A!=0X02)De

44、lay(150);</p><p>  PB=0XFF; </p><p><b>  PA=0XFF;</b></p><p>  PB=LED_CODE[(R%(B*10))/(B)];</p><p><b>  PA=~A;</b></p><p><

45、b>  }B/=10;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3.4 A/D轉(zhuǎn)換測量子程序</p><p>  uchar Ad_Cover()</p><p><b>  {

46、 </b></p><p>  uchar AD_DATA;</p><p><b>  ST = 0;</b></p><p>  ST = 1; //啟動AD轉(zhuǎn)換</p><p><b>  ST = 0;</b></p><p>  while (EOC

47、==0)CLK = ~CLK;</p><p><b>  OE = 1;</b></p><p>  AD_DATA = P0;</p><p><b>  OE = 0;</b></p><p>  return AD_DATA;</p><p><b>  }

48、</b></p><p><b>  4、系統(tǒng)調(diào)試與分析</b></p><p><b>  4.1 硬件調(diào)試</b></p><p>  硬件調(diào)試時可以檢查印制板和外圍電路是否有斷路或短路問題,在檢查無誤的情況下,通過外圍電路接入一個被測電阻,檢查數(shù)碼管顯示是否正常,若不正常,用萬用表檢查出電路的問題所在

49、,并糾正電路的焊接問題。</p><p>  為了測量的精準(zhǔn)度,用萬用表選擇的基準(zhǔn)電阻,盡量使基準(zhǔn)電阻接近,減少測量的誤差。</p><p><b>  4.2 軟件調(diào)試</b></p><p>  將用keil編譯產(chǎn)生的HEX文件下載到單片機開發(fā)板中,通過外圍電路接入一個已知的被測電阻,看數(shù)碼管上的顯示數(shù)值是否接近已知的電阻值,若不對,則反復(fù)

50、調(diào)試程序,直到正確為止。</p><p><b>  4.3 性能分析</b></p><p>  1.誤差W=100%,如表3所示。</p><p><b>  2.誤差分析</b></p><p>  AD的分辨率只有八位,分辨率小,所以測量小電阻的時候誤差小,隨著測量電阻的變大誤差變大。<

51、;/p><p><b>  表3 誤差分析</b></p><p><b>  5、元件清單</b></p><p>  6、總結(jié)與思考及致謝</p><p>  這次單片機課程設(shè)計意義非同一般,把我從單深入的理論編程到硬件軟件綜合實現(xiàn)一個使用的電路。通過這學(xué)期的單片機的學(xué)習(xí),知道了單片機在實際應(yīng)用中占

52、據(jù)很重要的作用,也了解單片機本身的功能,用編程控制;也了解了單片機的一些擴展功能。通過這次設(shè)計,我更深入地了解到單片機的使用原理和功能。</p><p>  為期兩周的設(shè)計中,我看到很多同學(xué)都很努力,很認(rèn)真,我也不敢懈怠。雖說兩周的時間有點倉促,但老師和同學(xué)們夜以繼日在解決問題,我做電阻測量的設(shè)計中也遇到些許問題,但通過他人的指點,并查閱很多有價值的書籍,我從中認(rèn)識了不少。也增強了自己發(fā)現(xiàn)問題解決問題的能力。還有

53、在編程的時候要仔細(xì),要實現(xiàn)一個完整的功能就要考慮全面,在測試程序的時候要善于發(fā)現(xiàn)錯誤,而且可能是一些小問題,比如說把立即數(shù)和地址混用,這是很常見的。</p><p>  兩周的設(shè)計完滿結(jié)束了,經(jīng)過自己的努力和同學(xué)的幫忙終于有了成果,特別離不開指導(dǎo)老師xx的悉心教導(dǎo),我受益匪淺,相信他的工作作風(fēng)和知識筑xx是我們學(xué)習(xí)榜樣,給我很大的啟迪。感謝這些老師不畏辛勞,熱心精心的指導(dǎo)。在這里向他們說聲謝謝,你們辛苦了。<

54、;/p><p><b>  參考文獻</b></p><p>  [1] 張鑫. 《單片微機原理與應(yīng)用》.[M] 北京.電子工業(yè)出版社. 2008</p><p>  [2] 樓然苗.李光飛. 《單片機課程設(shè)計指導(dǎo)》. [M]北京.航空航天大學(xué)出版社. 2007</p><p>  [3] 長洪潤.劉秀英. 《單片機應(yīng)用設(shè)計

55、200例(上、下)》. [M] 北京.航空航天大學(xué)出版社.2006</p><p>  [4] 張毅剛.《 新編MCS—51單片機應(yīng)用設(shè)計(第3版)》.[M]哈爾濱工業(yè)大學(xué)出版社.2008</p><p>  [5] 馬靜.《單片機原理與應(yīng)用》. [M] 實踐教學(xué)指導(dǎo)書中國計量出版社. 2003</p><p><b>  附一:原理圖</b>

56、</p><p><b>  附二:程序</b></p><p>  #include <reg52.h> </p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  s

57、bit ST = P2 ^ 7;</p><p>  sbit EOC = P3 ^ 4;</p><p>  sbit OE = P2 ^ 3;</p><p>  sbit CLK = P2 ^ 0;</p><p>  xdata uchar PA _at_ 0xD1FF, PB _at_ 0xD2FF, PC _at_ 0xD5FF

58、, a8255_CON _at_ 0xD7FF; </p><p>  uint R=0,R_T;</p><p>  uchar code LED_CODE[]={0xA0, 0xBB, 0x62, 0x2A, 0x39, 0x2C, 0x24, </p><p>  0xBA, 0x20, 0x28}; </p><p>

59、;  void Init()</p><p><b>  {</b></p><p><b>  ST = 0;</b></p><p><b>  OE = 0;</b></p><p>  a8255_CON=0x81;</p><p><b&

60、gt;  PB=0xff;</b></p><p><b>  PA=0xff;</b></p><p><b>  }</b></p><p>  uchar Ad_Cover()</p><p><b>  { </b></p><p>

61、  uchar AD_DATA;</p><p><b>  ST = 0;</b></p><p>  ST = 1; </p><p><b>  ST = 0;</b></p><p>  while (EOC==0)CLK = ~CLK;</p><p><

62、;b>  OE = 1;</b></p><p>  AD_DATA = P0;</p><p><b>  OE = 0;</b></p><p>  return AD_DATA;</p><p><b>  } </b></p><p> 

63、 void Get_Resistance()</p><p>  {float c;</p><p>  uchar TEMP;</p><p>  TEMP=Ad_Cover();</p><p>  c=(float)(256-TEMP);</p><p>  c = 1000.000*(c/(float)TEM

64、P);</p><p>  R_T=(unsigned int)c;</p><p><b>  }</b></p><p>  void Delay(uint CNT)</p><p><b>  {</b></p><p>  while(CNT--);</p>

65、;<p><b>  }</b></p><p>  void Display()</p><p><b>  {</b></p><p><b>  uchar A;</b></p><p>  uint B=10000;</p><p>

66、;  for(A=0x02;A<=0X40;A<<=1)</p><p><b>  {</b></p><p>  if(R/B) </p><p>  {if(A!=0X02)Delay(150); </p><p>  PB=0XFF; </p><

67、;p><b>  PA=0XFF;</b></p><p>  PB=LED_CODE[(R%(B*10))/(B)];</p><p><b>  PA=~A;</b></p><p><b>  }B/=10;</b></p><p><b>  }<

68、;/b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  uchar I=0,J=0;</p><p>  uint RRR=0;</p><p>

69、<b>  Init();</b></p><p>  while (1) </p><p><b>  { </b></p><p>  Get_Resistance();</p><p>  if(RRR==0)RRR=R_T;</p><p><b&g

70、t;  else </b></p><p>  if(J==30){R=RRR;RRR=0;J=0;} </p><p><b>  else J++;</b></p><p>  Display();</p><p><b>  }</b></p><p&g

溫馨提示

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

評論

0/150

提交評論