版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 2設(shè)計原理及要求2</p><p> 2.1數(shù)字電壓表的實現(xiàn)原理2</p><p> 2.2數(shù)字電壓表的設(shè)計要求2</p><p> 3軟件
2、仿真電路設(shè)計3</p><p><b> 3.1設(shè)計思路3</b></p><p> 3.2仿真電路圖3</p><p><b> 3.3設(shè)計過程4</b></p><p> 3.4 AT89C51的功能介紹4</p><p> 3.4.1簡單概述4&l
3、t;/p><p> 3.4.2主要功能特性5</p><p> 3.4.3 AT89C51的引腳介紹5</p><p> 3.5 ADC0808的引腳及功能介紹7</p><p> 3.5.1芯片概述7</p><p> 3.5.2 引腳簡介8</p><p> 3.5.3 A
4、DC0808的轉(zhuǎn)換原理8</p><p> 3.6 74LS373芯片的引腳及功能9</p><p> 3.6.1芯片概述9</p><p> 3.6.2引腳介紹9</p><p> 3.7 LED數(shù)碼管的控制顯示9</p><p> 3.7.1 LED數(shù)碼管的模型9</p><
5、;p> 3.7.2 LED數(shù)碼管的接口簡介10</p><p> 4系統(tǒng)軟件程序的設(shè)計10</p><p> 4.1 主程序10</p><p> 4.2 A/D轉(zhuǎn)換子程序11</p><p> 4.3 中斷顯示程序12</p><p> 5電壓表的調(diào)試及性能分析13</p>
6、<p> 5.1 調(diào)試與測試13</p><p> 5.2 性能分析14</p><p><b> 6電路仿真圖14</b></p><p><b> 7總結(jié)15</b></p><p><b> 參考文獻16</b></p>&l
7、t;p> 附錄1 源程序17</p><p> 附錄2 仿真原理電路23</p><p><b> 1 引言</b></p><p> 隨著微電子技術(shù)的不斷發(fā)展,微處理器芯片的集成程度越來越高,單片機已可以在一塊芯片上同時集成CPU、存儲器、定時器/計數(shù)電路,這就很容易將計算機技術(shù)與測量控制技術(shù)結(jié)合,組成智能化測量控制系統(tǒng)。
8、 </p><p> 數(shù)字電壓表(DigitalVoltmeter)簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。與此同時,由DVM擴展而成的各種通用及專用數(shù)字儀器儀表,也把電量及非電量
9、測量技術(shù)提高到嶄新水平。本章重點介紹單片A/D 轉(zhuǎn)換器以及由它們構(gòu)成的基于單片機的數(shù)字電壓表的工作原目前,由各種單片A/D 轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表,已被廣泛用于電子及電工測量、工業(yè)自動化儀表、自動測試系統(tǒng)等智能化測量領(lǐng)域,示出強大的生命力理。</p><p> 本設(shè)計AT89C51單片機的一種電壓測量電路,該電路采用ADC0808本文介紹一種基于A/D轉(zhuǎn)換電路,測量范圍直流 0~5V 的4路輸入電壓值,并在四位
10、LED數(shù)碼管上顯示或單路選擇顯示。測量最小分辨率為0.019V,測量誤差約為正負0.02V。</p><p><b> 2設(shè)計原理及要求</b></p><p> 本設(shè)計是利用單片機AT89C51與ADC0808設(shè)計一個數(shù)字電壓表,測量0-5V之間的直流電壓值,四位數(shù)碼顯示,但要求使用的元器件數(shù)目最少。</p><p> 2.1數(shù)字電壓表
11、的實現(xiàn)原理</p><p> ADC0808是8位的A/D轉(zhuǎn)換器。當(dāng)輸入電壓為5.00V時,輸出的數(shù)據(jù)值為255(0FFH),因此最大分辨率為0.0196(5/255)。ADC0808具有8路模擬量輸入端口,通過3位地址輸入端能從8路中選擇一路進行轉(zhuǎn)換。如每隔一段時間依次輪流改變3位地址輸入端的地址,就能依次對8 路輸入電壓進行測量。LED數(shù)碼管顯示采用軟件譯碼動態(tài)顯示。通過按鍵選擇可對8路循環(huán)顯示,也可單路顯
12、示,單路顯示可通過按鍵選擇顯示的通道數(shù)。</p><p> 2.2數(shù)字電壓表的設(shè)計要求</p><p> 可以測量0~5V范圍內(nèi)的3路直流電壓值。在4位LED數(shù)碼管上輪流顯示各路電壓值或單路選擇顯示,其中3位LED數(shù)碼管顯示電壓值,顯示范圍為0.00V~5.00V,1位LED數(shù)碼管顯示路數(shù),3路分別為0-2。要求測量的最小分辨率為0.02V。</p><p>&
13、lt;b> 3軟件仿真電路設(shè)計</b></p><p><b> 3.1設(shè)計思路 </b></p><p> 多路數(shù)字電壓表應(yīng)用系統(tǒng)硬件電路由單片機、A/D轉(zhuǎn)換器、數(shù)碼管顯示電路和按鍵處理電路組成,由于ADC0808在進行A/D轉(zhuǎn)換時需要有CLK信號,本試驗中ADC0808的CLK直接由外部電源提供為500kHz的方波。由于ADC0808的參考
14、電壓VREF=VCC,所以轉(zhuǎn)換之后的數(shù)據(jù)要經(jīng)過數(shù)據(jù)處理,在數(shù)碼管上顯示出電壓值。實際顯示的電壓值(D/256*VREF) ADC0808采用逐次逼近法轉(zhuǎn)換,把模擬電壓轉(zhuǎn)換成16進制的D,由于是對直流電壓0~5V進行采集,所以D對應(yīng)的電壓為V0 ,我們的目的就是要把V0顯示在LED顯示器上,因為單片機不好進行小數(shù)點計算,所以有:V0=2*D擴大了100倍,擴大100倍后的結(jié)果高八位放寄存器B,低八位放寄存器A,分寄存器B為0或不
15、為0的情況進行存取數(shù)據(jù),得到的結(jié)果個位放入R0,十位放入R1,通過查表使之顯示在LED顯示器。</p><p><b> 3.2仿真電路圖</b></p><p> 用Protues軟件仿真設(shè)計的電路如圖3-1所示。</p><p><b> 圖3-1 仿真電路</b></p><p><
16、;b> 3.3設(shè)計過程</b></p><p> 簡易數(shù)字電壓測量電路由A/D轉(zhuǎn)換、數(shù)據(jù)處理及顯示控制等組成。電路原理圖見附錄2。A/D轉(zhuǎn)換由集成電路0808完成。0808具有8路模擬輸入端口,地址(23-25)腳可決定對哪路模擬輸入作A/D轉(zhuǎn)換,22腳為地址鎖存控制,當(dāng)輸入為高電平時,對地址信號進行鎖存。6腳為測試控制,當(dāng)輸入一個2us寬高電平脈沖時,就開始A/D轉(zhuǎn)換。7腳為A/D轉(zhuǎn)換結(jié)束
17、標志,當(dāng)A/D轉(zhuǎn)換結(jié)束時7腳輸出高電平。9腳為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制,當(dāng)OE腳為高電平時,A/D轉(zhuǎn)換數(shù)據(jù)從該端口輸出。10腳為0808的時鐘輸入端,由外部信號源提供。單片機的P1、P3.0-P3.3端口作為四位LED數(shù)碼管現(xiàn)實控制。P3.5端口用作單路顯示/循環(huán)顯示轉(zhuǎn)換按鈕,P3.6端口用作單路顯示時選擇通道。P0端口作A/D轉(zhuǎn)換數(shù)據(jù)讀入用,P2端口用作0808的A/D轉(zhuǎn)換控制。</p><p> 3.4
18、AT89C51的功能介紹</p><p><b> 3.4.1簡單概述</b></p><p> AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C51是一種帶2K字節(jié)閃存可編程可擦除
19、只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖3-2所示。</p><p
20、> 圖3-2 AT89C51芯片模型</p><p> 3.4.2主要功能特性</p><p> (1) 4K字節(jié)可編程閃爍存儲器。 </p><p> (2) 32個雙向I/O口;128×8位內(nèi)部RAM 。</p><p> (3) 2個16位可編程定時/計數(shù)器中斷,時鐘頻率0-24MHz。 </p>
21、<p> (4) 可編程串行通道。 </p><p> (5) 5個中斷源。 </p><p> (6) 2個讀寫中斷口線。 </p><p> (7) 低功耗的閑置和掉電模式。</p><p> (8) 片內(nèi)振蕩器和時鐘電路。</p><p> 3.4.3 AT89C51的引腳介紹</p
22、><p> 89C51單片機多采用40只引腳的雙列直插封裝(DIP)方式,下面分別簡單介紹。</p><p><b> (1)電源引腳</b></p><p> 電源引腳接入單片機的工作電源。</p><p> Vcc(40引腳):+5V電源。</p><p> GND(20引腳):接地。&
23、lt;/p><p><b> (2)時鐘引腳</b></p><p> XTAL1(19引腳):片內(nèi)振蕩器反相放大器和時鐘發(fā)生器電路的輸入端。</p><p> XTAL2(20引腳):片內(nèi)振蕩器反相放大器的輸出端。</p><p> 圖3-3 電源接入方式</p><p> (3)復(fù)位RS
24、T(9引腳)</p><p> 在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腳時,將使單片機復(fù)位,只要這個腳保持高電平,51芯片便循環(huán)復(fù)位。</p><p> (4)/Vpp(31引腳)</p><p> 為外部程序存儲器訪問允許控制端。當(dāng)它為高電平時,單片機讀片內(nèi)程序存儲器,在PC值超過0FFFH后將自動轉(zhuǎn)向外部程序存儲器。當(dāng)它為低
25、電平時,只限定在外部程序存儲器,地址為0000H~FFFFH。Vpp為該引腳的第二功能,為編程電壓輸入端。</p><p> (5)ALE/(30引腳)</p><p> ALE為低八位地址鎖存允許信號。在系統(tǒng)擴展時,ALE的負跳沿江P0口發(fā)出的第八位地址鎖存在外接的地址鎖存器,然后再作為數(shù)據(jù)端口。為該引腳的第二功能,在對片外存儲器編程時,此引腳為編程脈沖輸入端。</p>
26、<p><b> (6)(29引腳)</b></p><p> 片外程序存儲器的讀選通信號。在單片機讀片外程序存儲器時,此引腳輸出脈沖的負跳沿作為讀片外程序存儲器的選通信號。</p><p> (7) pin39-pin32為P0.0-P0.7輸入輸出腳,稱為P0口。</p><p> P0是一個8位漏極開路型雙向I/O口。
27、內(nèi)部不帶上拉電阻,當(dāng)外接上拉電阻時,P0口能以吸收電流的方式驅(qū)動八個LSTTL負載電路。通常在使用時外接上拉電阻,用來驅(qū)動多個數(shù)碼管。 在訪問外部程序和外部數(shù)據(jù)存儲器時,P0口是分時轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,不需要外接上拉電阻。</p><p> (8)Pin1-Pin8為P1.0-P1.7輸入輸出腳,稱為P1口,是一個帶內(nèi)部上拉電阻的8位雙向I/0口。P1口能驅(qū)動4個LSTTL負載。</p>
28、<p> (9)Pin21-Pin28為P2.0-P2.7輸入輸出腳,稱為P2口。</p><p> P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P2口能驅(qū)動4個LSTTL負載。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時其引腳上的
29、內(nèi)容在此期間不會改變。 (10)Pin10-Pin17為P3.0-P3.7輸入輸出腳,稱為P3口。</p><p> P3口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P2口能驅(qū)動4個LSTTL負載,這8個引腳還用于專門的第二功能。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接控制信息。</p><p> 3.5 ADC0808的引腳及功能介紹&
30、lt;/p><p><b> 3.5.1芯片概述</b></p><p> ADC0808是一種典型的A/D轉(zhuǎn)換器。它是由8位A/D轉(zhuǎn)換器,一個8路模擬量開關(guān),8位模擬量地址鎖存譯碼器和一個三態(tài)數(shù)據(jù)輸出鎖存器組成; +5V單電源供電,轉(zhuǎn)化 時間在100us左右;內(nèi)部沒有時鐘電路,故需外部提供時鐘信號。芯片模型如圖3-4所示。</p><p>
31、 圖3-4ADC0808芯片模型</p><p> 3.5.2 引腳簡介 </p><p> (1) IN0~IN7:8路模擬量輸入端。</p><p> (2) D0~D7:8位數(shù)字量輸出端口。</p><p> (3) START:A/D轉(zhuǎn)換啟動信號輸入端。</p><p> (4) ALE:地址鎖存允許
32、信號,高電平有效。</p><p> (5) EOC:輸出允許控制信號,高電平有效。</p><p> (6) OE: 輸出允許控制信號,高電平有效。</p><p> (7) CLK:時鐘信號輸入端。</p><p> (8)A、B、C:轉(zhuǎn)換通道地址,控制8路模擬通道的切換。A、B、C分別與地址線或數(shù)據(jù)線相連,三位編碼對應(yīng)8個通道地
33、址端口,A、B、C=000~111分別對應(yīng)IN0~IN7通道的地址端口。</p><p> 3.5.3 ADC0808的轉(zhuǎn)換原理</p><p> ADC 0808 采用逐次比較的方法完成A/D轉(zhuǎn)換,由單一的+5V電源供電。片內(nèi)帶有鎖存功能的8路選1的模擬開關(guān),由A、B、C的編碼來決定所選的通道。ADC0809完成一次轉(zhuǎn)換需100μs左右,它具有輸出TTL三態(tài)鎖存緩沖器,可直接連接到A
34、T89C51的數(shù)據(jù)總線上。通過適當(dāng)?shù)耐饨与娐罚珹DC0808可對0~5V的模擬信號進行轉(zhuǎn)換。</p><p> 3.674LS373芯片的引腳及功能</p><p><b> 3.6.1芯片概述</b></p><p> 74LS373是一種帶有三態(tài)門的8D鎖存器,其在本設(shè)計中是鎖存P0口的低8位地址,芯片模型如圖3-5所示。</p
35、><p><b> 3.6.2引腳介紹</b></p><p> (1) D0~D7:8位數(shù)據(jù)輸入線;</p><p> (2) Q0~Q7:8位數(shù)據(jù)輸出線</p><p> (3) G:數(shù)據(jù)輸入鎖存選通信號。當(dāng)加到該引腳的信號為高電平時,外部數(shù)據(jù)選通到內(nèi)部鎖存器,負跳變時,數(shù)據(jù)鎖存到鎖存器中。</p>
36、<p> (4):數(shù)據(jù)輸出允許信號,低電平有效。當(dāng)該信號為低電平時,三態(tài)門打開,鎖存器中的數(shù)據(jù)輸出到數(shù)據(jù)輸出線上,當(dāng)該信號為高電平時,輸出線為高阻態(tài)。</p><p> 3.7 LED數(shù)碼管的控制顯示</p><p> 3.7.1 LED數(shù)碼管的模型</p><p> LED數(shù)碼管模型如圖3-6所示。</p><p>
37、3.7.2 LED數(shù)碼管的接口簡介</p><p> LED 的段碼端口A~G分別接至AT89C51的P1.0~P1.7口,位選端1~4分別接至P3.5、P3.4、P3.1、P3.0,如圖3-7所示。</p><p> 4系統(tǒng)軟件程序的設(shè)計</p><p> 多路數(shù)字電壓表系統(tǒng)軟件程序主要有主程序、A/D轉(zhuǎn)換子程序和中斷顯示程序組成。</p>&
38、lt;p><b> 4.1 主程序</b></p><p> 主程序包含初始化部分、調(diào)用A/D轉(zhuǎn)換子程序和相應(yīng)外部0中斷顯示電壓數(shù)值程序,初始化部分包含存放通道的緩沖區(qū)初始化和顯示緩沖區(qū)初始化。另外,對于單路顯示和循環(huán)顯示,系統(tǒng)設(shè)置了一個標志位00H控制,初始化時00H位設(shè)置為0,默認為循環(huán)顯示,當(dāng)它為1時改變?yōu)閱温凤@示控制,00H位通過單路、循環(huán)按鍵控制。流程圖如圖4-1所示。&
39、lt;/p><p> 4.2 A/D轉(zhuǎn)換子程序</p><p> A/D轉(zhuǎn)換子程序用于對ADC0808的4路輸入模擬電壓進行A/D轉(zhuǎn)換,并將轉(zhuǎn)換的數(shù)值存入4個相應(yīng)的存儲單元中,A/D轉(zhuǎn)換子程序每隔一定時間調(diào)用一次,即隔一段時間對輸入電壓采樣一次,如圖4-2所示。</p><p><b> 判斷是否為0</b></p><p
40、> 4.3 中斷顯示程序</p><p> 設(shè)計中采用中斷的方式來讀取轉(zhuǎn)換完成的數(shù)據(jù)能節(jié)省CPU的資源</p><p> 當(dāng)系統(tǒng)設(shè)置好后,一旦數(shù)據(jù)轉(zhuǎn)換完成,便會進入外部中斷0,然后在中斷中讀取轉(zhuǎn)換的數(shù)值,處理數(shù)據(jù)并送數(shù)碼管顯示輸出。 </p><p> LED 數(shù)碼管采用軟件譯碼動態(tài)掃描的方式。在中斷程序中包含多路循環(huán)顯示程序和單路顯示程序,多路循環(huán)顯
41、示程序把4個存儲單元的數(shù)值依次取出送到4個數(shù)碼管上顯示,每一路顯示一秒。單路顯示程序只對當(dāng)前選中的一路數(shù)據(jù)進行顯示。每路數(shù)據(jù)顯示時需經(jīng)過轉(zhuǎn)換變成十進制BCD碼,放于4個數(shù)碼管顯示緩沖區(qū)中。單路或多路循環(huán)顯示通過標志位00H控制。在顯示控制程序中加入了對單路或多路循環(huán)按鍵的判斷。</p><p> 5電壓表的調(diào)試及性能分析</p><p><b> 5.1 調(diào)試與測試</
42、b></p><p> 本設(shè)計應(yīng)用Proteus6及KEIL51軟件,首先根據(jù)自己設(shè)計的電路圖用Proteus6軟件畫出電路模型,關(guān)于這個軟件的使用通過查一些資料和自己的摸索學(xué)習(xí);然后我們用KEIL51軟件對所編寫的程序進行編譯、鏈接,如果沒有錯誤和警告便可生成程序的hex文件,將此文件加到電路圖上使軟硬件結(jié)合運行,最后進行端口電壓的對比測試,測試的第一路對比見圖4-1中標準電壓值采用Proteus6軟件
43、中的模擬電壓表測得。</p><p> 從圖中可以看出,簡易數(shù)字電壓表與“標準”數(shù)字電壓表測得的絕對誤差均在0.02V以內(nèi),這與采用8位A/D轉(zhuǎn)換器所能達到的理論誤差精度相一致,在一般的應(yīng)用場合可以完全滿足要求。</p><p><b> 5.2 性能分析</b></p><p> 由于單片機為8位處理器,當(dāng)輸入電壓為5.00V時,輸出數(shù)
44、據(jù)值為255(FFH)因此單片機最大的數(shù)值分辨率為0.0196V(5/255)。這就決定了該電壓表的最大分辨率(精度)只能達到0.0196V。測試時電壓數(shù)值的變化一般以0.02V的電壓幅度變化,如要獲得更高的精度要求,應(yīng)采用12位、13位的A/D轉(zhuǎn)換器。</p><p> 簡易數(shù)字電壓表測得的值基本上均比標準值偏大0.01-0.02V。這可以通過校正0808的基準電壓來解決,因為該電壓表設(shè)計時直接用7805的供
45、電電源作為基準電壓,電壓可能有偏差。另外可以用軟件編程來校正測量值。</p><p> ADC0808的直流輸入阻抗為1M歐姆,能滿足一般的電壓測試需要。另外,經(jīng)測試ADC0808可直接在2MHz的頻率下工作,這樣可省去分頻率14024。</p><p><b> 6電路仿真圖</b></p><p> 圖6-1為4路通道用模擬電壓表測得
46、的理論值。</p><p> 圖6-2為進行模擬仿真時的電路圖</p><p><b> 7總結(jié)</b></p><p> 經(jīng)過一周的努力終于設(shè)計成功,LED的顯示結(jié)果和直接用數(shù)字電壓表測試模擬量輸入所得結(jié)果幾乎一致,誤差完全在合理的范圍之內(nèi)。由于儀器誤差,LED顯示最大值只能是4.9V,離標準最大值5.0V已經(jīng)不遠,達到預(yù)期目的,設(shè)計成
47、功。 本設(shè)計參考了教材上第十一章89C51與ADC0809轉(zhuǎn)換的接口連線,設(shè)計出電路圖的連線,從并中理解了許多基本的知識和接線方法,在程序的設(shè)計與電壓表調(diào)試的過程中中遇到了很多的問題,剛開始時四個數(shù)碼管根本不顯示,后來發(fā)現(xiàn)用的是共陽極的數(shù)碼管,而設(shè)計是共陰極的,更換后數(shù)碼管終于顯示,但問題又出現(xiàn)了,單路顯示和循環(huán)顯示的開關(guān)不能控制電路的單路顯示和循環(huán)顯示,經(jīng)過仔細地檢查電路和修改程序,采用中斷的方法,產(chǎn)生一次外部中斷0,程序轉(zhuǎn)移
48、到單路顯示,按一次單路顯示開關(guān),地址加一,轉(zhuǎn)換的模擬通道相應(yīng)的加一,如果按下循環(huán)按鍵就返回循環(huán)顯示的程序,功夫不負有心人,最后終于調(diào)試成功。</p><p> 在此再次向帶領(lǐng)我們這次課程設(shè)計的老師說聲:謝謝! </p><p><b> 參考文獻</b></p><p> [1] 蔣廷彪,劉電霆,高富強,方華.單片機原理及應(yīng)用.出版社:重
49、慶大學(xué)出版社.出版時間:2005</p><p><b> 年1月第2次印刷</b></p><p> [2] 8051實驗指導(dǎo)書電子電氣綜合實訓(xùn)系統(tǒng).出版社:北京精儀達盛科技有限公司</p><p> [3] 徐愛鈞.智能化測量控制儀表原理與設(shè)計(第二版)[M].北京:北京航空航天大學(xué)出版</p><p><
50、;b> 社,2004</b></p><p> [4] 吳金戌,沈慶陽,郭庭吉.8051單片機實踐與應(yīng)用[M].北京:清華大學(xué)出版社,2002</p><p> [5] 張國勛.縮短ICL7135A/D采樣程序時間的一種方法[J].電子技術(shù)應(yīng)用.1993.第一期</p><p> [6] 高峰.單片微型計算機與接口技術(shù)[M].北京科學(xué)出版社
51、,2003.</p><p> [7] 劉偉,趙俊逸,黃勇.一種基予C8051F單片機的SOC型數(shù)據(jù)采錄器的設(shè)計與實現(xiàn)</p><p> [8]《新型AT89S52系列單片機及其應(yīng)用》 孫育才 北京:清華大學(xué)出版社</p><p><b> 2005-5</b></p><p> [9]《MCS-51系列
52、單片機系統(tǒng)及其應(yīng)用》 蔡美琴 高等教育出版</p><p> [10]《過程控制與儀表》 陳樂 中國計量學(xué)院出版社,2007-3</p><p><b> 附錄1 源程序</b></p><p><b> ORG 0000H</b></p><p><
53、b> SJMP MAIN</b></p><p><b> ORG 0003H</b></p><p> LJMP PINT0</p><p> MAIN:MOV 50H,#19H</p><p> MOV 54H,#78H</p><p> MOV DPTR,#7F
54、F8H</p><p> MOV 51H,DPH</p><p> MOV 52H,DPL</p><p> MOV R0,#04H</p><p> MOV 53H,#00H</p><p> MOV R7,#00H</p><p><b> SETB EA</b&
55、gt;</p><p><b> SETB IT0</b></p><p><b> SETB EX0</b></p><p> L4: MOV R1,#00H ;R1存放十六進制轉(zhuǎn)換成十進制后的低兩位</p><p> MOV R2,#00H ;R2存放十六進制轉(zhuǎn)換
56、成十進制后的高兩位</p><p> MOV R3,#0FFH ;循環(huán)顯示十進制數(shù)</p><p> MOV R4,#00H ;存放A/D轉(zhuǎn)換后的十六進制數(shù)</p><p> MOV R5,#00H ;存放0.5相加后的數(shù)</p><p> MOVX @DPTR,A ;開始A/D轉(zhuǎn)換</p
57、><p> LCALL DELAY ;調(diào)用延時大于A/D轉(zhuǎn)換的時間</p><p> MOVX A,@DPTR ;取A/D轉(zhuǎn)換后的十六進制數(shù)</p><p> INC DPTR ;A/D轉(zhuǎn)換芯片的地址加一</p><p> PUSH DPL ;壓入堆棧</p><p&
58、gt;<b> PUSH DPH</b></p><p> DEC R0 ;4路轉(zhuǎn)換的次數(shù)減一</p><p> JZ SB2 ;判斷是否是0V</p><p><b> MOV R4,A</b></p><p> L1:MOV A,R1
59、 ;進行十六進制到十進制的調(diào)整</p><p> ADD A,50H ;每次加19</p><p><b> DA A</b></p><p><b> MOV R1,A</b></p><p> JC L2 ;如果溢出則跳轉(zhuǎn)到L2</p&
60、gt;<p> MOV A,R5 ;進行0.5V相加</p><p><b> ADD A,54H</b></p><p><b> DA A</b></p><p><b> MOV R5,A</b></p><p> JC L3
61、 ;如果溢出則跳轉(zhuǎn)到L3</p><p> SB1:DJNZ R4,L1 ;判斷十六進制數(shù)是否轉(zhuǎn)換完成,如果沒有則循環(huán)</p><p><b> MOV A,R5</b></p><p><b> SWAP A</b></p><p> ANL A,#0FH</
62、p><p><b> MOV B,R1</b></p><p><b> ADD A,B</b></p><p><b> DA A</b></p><p><b> MOV R1,A</b></p><p> SB2:LCA
63、LL DISP</p><p><b> LCALL DJW</b></p><p> DJNZ R3,SB2</p><p><b> POP DPH</b></p><p><b> POP DPL</b></p><p><b>
64、 MOV A,53H</b></p><p><b> INC A</b></p><p><b> MOV 53H,A</b></p><p> CJNE R0,#00H,L4</p><p><b> LJMP MAIN</b></p>
65、<p><b> L2: CLR C</b></p><p><b> MOV A,R2</b></p><p> ADD A,#01H</p><p><b> DA A</b></p><p><b> MOV R2,A</b>&l
66、t;/p><p><b> LJMP SB1</b></p><p> L3: CLR C ;0.5V相加溢出后進位</p><p><b> MOV A,R1</b></p><p> ADD A,#01H</p><p><
67、b> DA A</b></p><p><b> MOV R1,A</b></p><p><b> LJMP SB1</b></p><p> DISP:MOV A,R1 ;顯示電壓子程序</p><p><b> SWAP A
68、</b></p><p> ANL A,#0FH</p><p> MOV DPTR,#TAB1</p><p> MOVC A,@A+DPTR</p><p><b> CLR P3.0</b></p><p><b> MOV P1,A</b><
69、;/p><p> LCALL DELAY</p><p><b> SETB P3.0</b></p><p><b> MOV A,R2</b></p><p> ANL A,#0FH</p><p> MOV DPTR,#TAB1</p><p&
70、gt; MOVC A,@A+DPTR</p><p><b> CLR P3.1</b></p><p><b> MOV P1,A</b></p><p> LCALL DELAY</p><p><b> SETB P3.1</b></p><
71、;p><b> MOV A,R2</b></p><p><b> SWAP A</b></p><p> ANL A,#0FH</p><p> MOV DPTR,#TAB2</p><p> MOVC A,@A+DPTR</p><p><b>
72、 CLR P3.4</b></p><p><b> MOV P1,A</b></p><p> LCALL DELAY</p><p><b> SETB P3.4</b></p><p><b> RET</b></p><p>
73、; DJW:MOV A,53H ;顯示第幾路轉(zhuǎn)換電壓子程序</p><p> MOV DPTR,#TAB1</p><p> MOVC A,@A+DPTR</p><p><b> CLR P3.5</b></p><p><b> MOV P1,A</b&
74、gt;</p><p> LCALL DELAY</p><p><b> SETB P3.5</b></p><p><b> RET</b></p><p> INTV: PUSH ACC ;只顯示其中一路中斷</p><p><
75、b> PUSH 53H</b></p><p> MOV 53H,#00H</p><p> CX2: MOV R1,#00H</p><p> MOV R2,#00H</p><p> MOV R3,#0FFH</p><p> MOV R4,#00H</p><p&
76、gt; MOV DPH,51H</p><p> MOV DPL,52H</p><p> MOVX @DPTR,A</p><p> LCALL DELAY</p><p> MOVX A,@DPTR</p><p><b> MOV R4,A</b></p><
77、p><b> JZ SB22</b></p><p> L11: MOV A,R1</p><p><b> ADD A,50H</b></p><p><b> DA A</b></p><p><b> MOV R1,A</b><
78、;/p><p><b> JC L22</b></p><p> MOV A,R5 ;進行0.5V相加</p><p><b> ADD A,54H</b></p><p><b> DA A</b></p><p><b>
79、; MOV R5,A</b></p><p><b> JC L33</b></p><p> SB11:DJNZ R4,L11</p><p><b> MOV A,R5</b></p><p><b> SWAP A</b></p>&
80、lt;p> ANL A,#0FH</p><p><b> MOV B,R1</b></p><p><b> ADD A,B</b></p><p><b> DA A</b></p><p><b> MOV R1,A</b></
81、p><p> SB22:LCALL DISP</p><p><b> LCALL DJW</b></p><p> JNB P3.3,EXIT </p><p> DJNZ R3,SB22</p><p> JNB P3.2,CX1 </p>
82、<p><b> LJMP CX2</b></p><p><b> L22:CLR C</b></p><p><b> MOV A,R2</b></p><p> ADD A,#01H</p><p><b> DA A</b>&
83、lt;/p><p><b> MOV R2,A</b></p><p><b> LJMP SB11</b></p><p><b> L33:CLR C</b></p><p><b> MOV A,R1</b></p><p&g
84、t; ADD A,#01H</p><p><b> DA A</b></p><p><b> MOV R1,A</b></p><p><b> LJMP SB11</b></p><p> CX1:INC R7</p><p><b
85、> MOV A,53H</b></p><p><b> INC A</b></p><p><b> MOV 53H,A</b></p><p> MOV DPH,51H</p><p> MOV DPL,52H</p><p><b>
86、; INC DPTR</b></p><p> MOV 51H,DPH</p><p> MOV 52H,DPL</p><p> CJNE R7,#04H,CX2</p><p> MOV R7,#00H</p><p> MOV 53H,#01H</p><p>
87、MOV DPTR,#7FF8H</p><p> MOV 51H,DPH</p><p> MOV 52H,DPL</p><p><b> LJMP CX2</b></p><p> EXIT:POP 53H</p><p><b> POP ACC</b><
88、;/p><p><b> RETI</b></p><p> DELAY:MOV R6,#1H ;延時子程序</p><p> D1:MOV R5,#50H</p><p><b> D2:NOP</b></p><p><b
89、> NOP</b></p><p> DJNZ R5,D2</p><p> DJNZ R6,D1</p><p><b> RET</b></p><p> TAB1:DB 3FH,06H,5BH,4FH,66H ;碼表</p><p> DB
90、 6DH,7DH,07H,7FH,6FH</p><p> TAB2:DB 0BFH,86H,0DBH,0CFH,0E6H ;小數(shù)點的段碼表</p><p> DB 0EDH,0FDH,87H,0FFH,0EFH </p><p><b> END</b></p><p><b> 原理
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計---數(shù)字電壓表
- 單片機課程設(shè)計-數(shù)字電壓表
- 單片機(數(shù)字電壓表)課程設(shè)計
- 單片機課程設(shè)計----數(shù)字電壓表
- 單片機課程設(shè)計-數(shù)字電壓表
- 單片機課程設(shè)計--數(shù)字電壓表
- 單片機課程設(shè)計--數(shù)字電壓表
- 單片機課程設(shè)計---數(shù)字電壓表設(shè)計
- 單片機課程設(shè)計---數(shù)字電壓表設(shè)計
- 單片機課程設(shè)計---數(shù)字電壓表設(shè)計
- 單片機課程設(shè)計--簡易數(shù)字電壓表
- 單片機(數(shù)字電壓表)課程設(shè)計.rar
- 單片機課程設(shè)計數(shù)字電壓表
- 單片機數(shù)字電壓表課程設(shè)計.doc
- 單片機(數(shù)字電壓表)課程設(shè)計.rar
- 單片機(數(shù)字電壓表)課程設(shè)計.rar
- 單片機課程設(shè)計---數(shù)字電壓表 (2)
- 單片機課程設(shè)計報告——數(shù)字電壓表
- 課程設(shè)計----單片機簡易數(shù)字電壓表
- 單片機(數(shù)字電壓表)課程設(shè)計.rar
評論
0/150
提交評論