版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機課程設(shè)計</b></p><p><b> ——電壓表的設(shè)計</b></p><p> 學(xué) 院:信息工程學(xué)院</p><p> 專 業(yè):電子信息科學(xué)與技術(shù)</p><p><b> 目錄</b></p>&l
2、t;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軟件仿真電路設(shè)計2</p><p><b> 3.1設(shè)計思路2&l
3、t;/b></p><p> 3.2仿真電路圖3</p><p><b> 3.3設(shè)計過程3</b></p><p> 3.4 AT89C51的功能介紹4</p><p> 3.4.1簡單概述4</p><p> 3.4.2主要功能特性5</p><p
4、> 3.4.3 AT89C51的引腳介紹5</p><p> 3.5 ADC0809的引腳及功能介紹7</p><p> 3.5.1芯片概述7</p><p> 3.5.2 引腳簡介8</p><p> 3.5.3 ADC0809的轉(zhuǎn)換原理8</p><p> 3.6 74LS373芯片的引
5、腳及功能8</p><p> 3.6.1芯片概述8</p><p> 3.6.2引腳介紹9</p><p> 3.7 LED數(shù)碼管的控制顯示9</p><p> 3.7.1 LED數(shù)碼管的模型9</p><p> LED數(shù)碼管模型如圖3-6所示。9</p><p> 3.
6、7.2 LED數(shù)碼管的接口簡介9</p><p> 4系統(tǒng)軟件程序的設(shè)計9</p><p> 4.1 主程序10</p><p> 4.2 A/D轉(zhuǎn)換子程序11</p><p> 4.3 中斷顯示程序12</p><p> 5使用說明與調(diào)試結(jié)果13</p><p><
7、b> 6總結(jié)13</b></p><p><b> 參考文獻14</b></p><p> 附錄1 源程序15</p><p> 附錄2原理電路19</p><p><b> 1 引言</b></p><p> 在電量的測量中,電壓、電流
8、和頻率是最基本的三個被測量,其中電壓量的測量最為經(jīng)常。而且隨著電子技術(shù)的發(fā)展,更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測量儀器。數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器具有讀數(shù)準(zhǔn)確方便、精度高、誤差小、測量速度快等特而得到廣泛應(yīng)用[1]。 </p><p> 傳統(tǒng)的指針式刻度電壓表功能單一,進度低,容易引起視
9、差和視覺疲勞,因而不能滿足數(shù)字化時代的需要。采用單片機的數(shù)字電壓表,將連續(xù)的模擬量如直流電壓轉(zhuǎn)換成不連續(xù)的離散的數(shù)字形式并加以顯示,從而精度高、抗干擾能力強,可擴展性強、集成方便,還可與PC實時通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎(chǔ)[2]。以數(shù)字電壓表為核心,可以擴展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表。目前,由各種單片機和A/D轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表作全面深入的了解是很有必要的。</p><
10、;p> 最近的幾十年來,隨著半導(dǎo)體技術(shù)、集成電路(IC)和微處理器技術(shù)的發(fā)展,數(shù)字電路和數(shù)字化測量技術(shù)也有了巨大的進步,從而促使了數(shù)字電壓表的快速發(fā)展,并不斷出現(xiàn)新的類型[4]。數(shù)字電壓表從1952年問世以來,經(jīng)歷了不斷改進的過程,從最早采用繼電器、電子管和形式發(fā)展到了現(xiàn)在的全固態(tài)化、集成化(IC化),另一方面,精度也從0.01%-0.005%。</p><p> 目前,數(shù)字電壓表的內(nèi)部核心部件是A/D
11、轉(zhuǎn)換器,轉(zhuǎn)換的精度很大程度上影響著數(shù)字電壓表的準(zhǔn)確度,因而,以后數(shù)字電壓表的發(fā)展就著眼在高精度和低成本這兩個方面[3]。</p><p> 本文是以簡易數(shù)字直流電壓表的設(shè)計為研究內(nèi)容,本系統(tǒng)主要包括三大模塊:轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示模塊。其中,A/D轉(zhuǎn)換采用ADC0808對輸入的模擬信號進行轉(zhuǎn)換,控制核心AT89C51再對轉(zhuǎn)換的結(jié)果進行運算處理,最后驅(qū)動輸出裝置LED顯示數(shù)字電壓信號</p>
12、<p><b> 2設(shè)計原理及要求</b></p><p> 本設(shè)計是利用單片機AT89C51與ADC0809設(shè)計一個數(shù)字電壓表,測量0-5V之間的直流電壓值,四位數(shù)碼顯示。</p><p> 2.1數(shù)字電壓表的實現(xiàn)原理</p><p> ADC0809是8位的A/D轉(zhuǎn)換器。當(dāng)輸入電壓為5.00V時,輸出的數(shù)據(jù)值為255(0F
13、FH),因此最大分辨率為0.0196(5/255)。ADC0809具有8路模擬量輸入端口,通過3位地址輸入端能從8路中選擇一路進行轉(zhuǎn)換。如每隔一段時間依次輪流改變3位地址輸入端的地址,就能依次對8 路輸入電壓進行測量。LED數(shù)碼管顯示采用軟件譯碼動態(tài)顯示。通過按鍵選擇可對8路循環(huán)顯示,也可單路顯示,單路顯示可通過按鍵選擇顯示的通道數(shù)。</p><p> 2.2數(shù)字電壓表的設(shè)計要求</p><
14、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><b> 3軟件仿真電路設(shè)計</b></p><p><b> 3.1設(shè)計思路 <
15、;/b></p><p> 多路數(shù)字電壓表應(yīng)用系統(tǒng)硬件電路由單片機、A/D轉(zhuǎn)換器、數(shù)碼管顯示電路和按鍵處理電路組成,由于ADC0808在進行A/D轉(zhuǎn)換時需要有CLK信號,本試驗中ADC0808的CLK直接由外部電源提供為500kHz的方波。由于ADC0809的參考電壓VREF=VCC,所以轉(zhuǎn)換之后的數(shù)據(jù)要經(jīng)過數(shù)據(jù)處理,在數(shù)碼管上顯示出電壓值。實際顯示的電壓值(D/256*VREF) ADC0808采用逐次
16、逼近法轉(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或不為0的情況進行存取數(shù)據(jù),得到的結(jié)果個位放入R0,十位放入R1,通過查表使之顯示在LED顯示器。</p><p><
17、b> 3.2仿真電路圖</b></p><p> 用Protues軟件仿真設(shè)計的電路如圖3-1所示。</p><p><b> 圖3-1 仿真電路</b></p><p><b> 3.3設(shè)計過程</b></p><p><b> 系統(tǒng)結(jié)構(gòu)框圖</b>
18、;</p><p> 系統(tǒng)采用12M晶振產(chǎn)生脈沖做AT89C51的內(nèi)部時鐘信號,通過軟件設(shè)置單片機的內(nèi)部定時器T0產(chǎn)生中斷信號。利用中斷設(shè)置單片機的P2.4口取反產(chǎn)生脈沖做AT89C51的時鐘信號。通過按鍵選擇八路通道中的一路,將該路電壓送入ADC0809相應(yīng)通道,單片機軟件設(shè)置ADC0809開始A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)束ADC0809的EOC端口產(chǎn)生高電平,同時將ADC0809的EO端口置為高電平,單片機將轉(zhuǎn)換后結(jié)
19、果存到片內(nèi)RAM。系統(tǒng)調(diào)出顯示子程序,將保存結(jié)果轉(zhuǎn)化為0.00-5.00V分別保存在片內(nèi)RAM;系統(tǒng)調(diào)出顯示子程序,將轉(zhuǎn)化后數(shù)據(jù)查表,輸出到LED顯示電路,將相應(yīng)電壓顯示出來,程序進入下一個循環(huán)</p><p> 3.4 AT89C51的功能介紹</p><p><b> 3.4.1簡單概述</b></p><p> AT89C51是一種
20、帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和
21、閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖3-2所示。</p><p> 圖3-2 AT89C51芯片模型</p><p> 3.4.2主要功能特性</p><p> (1) 4K字節(jié)可編程閃爍存儲器。
22、 </p><p> (2) 32個雙向I/O口;128×8位內(nèi)部RAM 。</p><p> (3) 2個16位可編程定時/計數(shù)器中斷,時鐘頻率0-24MHz。 </p><p> (4) 可編程串行通道。 </p><p> (5) 5個中斷源。 </p><p> (6) 2個讀寫中斷口線。
23、</p><p> (7) 低功耗的閑置和掉電模式。</p><p> (8) 片內(nèi)振蕩器和時鐘電路。</p><p> 3.4.3 AT89C51的引腳介紹</p><p> 89C51單片機多采用40只引腳的雙列直插封裝(DIP)方式,下面分別簡單介紹。</p><p><b> (1)電源引腳
24、</b></p><p> 電源引腳接入單片機的工作電源。</p><p> Vcc(40引腳):+5V電源。</p><p> GND(20引腳):接地。</p><p><b> (2)時鐘引腳</b></p><p> XTAL1(19引腳):片內(nèi)振蕩器反相放大器和時鐘
25、發(fā)生器電路的輸入端。</p><p> XTAL2(20引腳):片內(nèi)振蕩器反相放大器的輸出端。</p><p> 圖3-3 電源接入方式</p><p> (3)復(fù)位RST(9引腳)</p><p> 在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腳時,將使單片機復(fù)位,只要這個腳保持高電平,51芯片便循環(huán)復(fù)位。
26、</p><p> (4)/Vpp(31引腳)</p><p> 為外部程序存儲器訪問允許控制端。當(dāng)它為高電平時,單片機讀片內(nèi)程序存儲器,在PC值超過0FFFH后將自動轉(zhuǎn)向外部程序存儲器。當(dāng)它為低電平時,只限定在外部程序存儲器,地址為0000H~FFFFH。Vpp為該引腳的第二功能,為編程電壓輸入端。</p><p> (5)ALE/(30引腳)</p&
27、gt;<p> ALE為低八位地址鎖存允許信號。在系統(tǒng)擴展時,ALE的負(fù)跳沿江P0口發(fā)出的第八位地址鎖存在外接的地址鎖存器,然后再作為數(shù)據(jù)端口。為該引腳的第二功能,在對片外存儲器編程時,此引腳為編程脈沖輸入端。</p><p><b> (6)(29引腳)</b></p><p> 片外程序存儲器的讀選通信號。在單片機讀片外程序存儲器時,此引腳輸出
28、脈沖的負(fù)跳沿作為讀片外程序存儲器的選通信號。</p><p> (7) pin39-pin32為P0.0-P0.7輸入輸出腳,稱為P0口。</p><p> P0是一個8位漏極開路型雙向I/O口。內(nèi)部不帶上拉電阻,當(dāng)外接上拉電阻時,P0口能以吸收電流的方式驅(qū)動八個LSTTL負(fù)載電路。通常在使用時外接上拉電阻,用來驅(qū)動多個數(shù)碼管。 在訪問外部程序和外部數(shù)據(jù)存儲器時,P0口是分時轉(zhuǎn)換的地址
29、(低8位)/數(shù)據(jù)總線,不需要外接上拉電阻。</p><p> (8)Pin1-Pin8為P1.0-P1.7輸入輸出腳,稱為P1口,是一個帶內(nèi)部上拉電阻的8位雙向I/0口。P1口能驅(qū)動4個LSTTL負(fù)載。</p><p> (9)Pin21-Pin28為P2.0-P2.7輸入輸出腳,稱為P2口。</p><p> P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P
30、2口能驅(qū)動4個LSTTL負(fù)載。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。 (10)Pin10-Pin17為P3.0-P3.7輸入輸出腳,稱為P3口。</p><p> P3口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,
31、P2口能驅(qū)動4個LSTTL負(fù)載,這8個引腳還用于專門的第二功能。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接控制信息。</p><p> 3.5 ADC0809的引腳及功能介紹</p><p><b> 3.5.1芯片概述</b></p><p> ADC0809是一種典型的A/D轉(zhuǎn)換器。它是由
32、8位A/D轉(zhuǎn)換器,一個8路模擬量開關(guān),8位模擬量地址鎖存譯碼器和一個三態(tài)數(shù)據(jù)輸出鎖存器組成; +5V單電源供電,轉(zhuǎn)化 時間在100us左右;內(nèi)部沒有時鐘電路,故需外部提供時鐘信號。芯片模型如圖3-4所示。</p><p> 圖3-4ADC0808芯片模型</p><p> 3.5.2 引腳簡介 </p><p> (1) IN0~IN7:8路模擬量輸入端。&l
33、t;/p><p> (2) D0~D7:8位數(shù)字量輸出端口。</p><p> (3) START:A/D轉(zhuǎn)換啟動信號輸入端。</p><p> (4) ALE:地址鎖存允許信號,高電平有效。</p><p> (5) EOC:輸出允許控制信號,高電平有效。</p><p> (6) OE: 輸出允許控制信號,高
34、電平有效。</p><p> (7) CLK:時鐘信號輸入端。</p><p> (8)A、B、C:轉(zhuǎn)換通道地址,控制8路模擬通道的切換。A、B、C分別與地址線或數(shù)據(jù)線相連,三位編碼對應(yīng)8個通道地址端口,A、B、C=000~111分別對應(yīng)IN7~IN0通道的地址端口。</p><p> 3.5.3 ADC0809的轉(zhuǎn)換原理</p><p&g
35、t; ADC 0809 采用逐次比較的方法完成A/D轉(zhuǎn)換,由單一的+5V電源供電。片內(nèi)帶有鎖存功能的8路選1的模擬開關(guān),由A、B、C的編碼來決定所選的通道。ADC0809完成一次轉(zhuǎn)換需100μs左右,它具有輸出TTL三態(tài)鎖存緩沖器,可直接連接到AT89C51的數(shù)據(jù)總線上。通過適當(dāng)?shù)耐饨与娐?,ADC0809可對0~5V的模擬信號進行轉(zhuǎn)換。</p><p> 3.6 74LS373芯片的引腳及功能</p&g
36、t;<p><b> 3.6.1芯片概述</b></p><p> 74LS373是一種帶有三態(tài)門的8D鎖存器,其在本設(shè)計中是鎖存P0口的低8位地址,芯片模型如圖3-5所示。</p><p><b> 3.6.2引腳介紹</b></p><p> (1) D0~D7:8位數(shù)據(jù)輸入線;</p>
37、;<p> (2) Q0~Q7:8位數(shù)據(jù)輸出線</p><p> (3) G:數(shù)據(jù)輸入鎖存選通信號。當(dāng)加到該引腳的信號為高電平時,外部數(shù)據(jù)選通到內(nèi)部鎖存器,負(fù)跳變時,數(shù)據(jù)鎖存到鎖存器中。</p><p> (4):數(shù)據(jù)輸出允許信號,低電平有效。當(dāng)該信號為低電平時,三態(tài)門打開,鎖存器中的數(shù)據(jù)輸出到數(shù)據(jù)輸出線上,當(dāng)該信號為高電平時,輸出線為高阻態(tài)。</p>&
38、lt;p> 3.7 LED數(shù)碼管的控制顯示</p><p> 3.7.1 LED數(shù)碼管的模型</p><p> LED數(shù)碼管模型如圖3-6所示。</p><p> 3.7.2 LED數(shù)碼管的接口簡介</p><p> LED 的段碼端口A~G和DP分別接至AT89C51的P1.0~P1.7口,位選端1~4分別接至P2.0、P2
39、.1、P2.2、P2.3</p><p> 4系統(tǒng)軟件程序的設(shè)計</p><p> 多路數(shù)字電壓表系統(tǒng)軟件程序主要有主程序、A/D轉(zhuǎn)換子程序和中斷顯示程序組成。</p><p><b> 4.1 主程序</b></p><p> 如下4.1圖為程序軟件設(shè)計流程圖 其中(a)為主程序流程圖,(b)為A/D轉(zhuǎn)換子程序
40、流程圖。 </p><p> 圖4.1程序軟件設(shè)計流程圖</p><p> 其中A/D轉(zhuǎn)換子程序是將0809轉(zhuǎn)化后的數(shù)字量,需通過轉(zhuǎn)化子程序轉(zhuǎn)化成工程量并通過查表送到P1口送給LED顯示。</p><p> ?。?)初始化程序 給ADC0809時鐘脈沖信號,并指向0809的0通道啟動A/D轉(zhuǎn)換,通過延時等待8路采集完畢。</p><p>
41、 (2)數(shù)據(jù)讀入 控制0809芯片的ALE、START、EOC和OE,STRT為正脈沖時轉(zhuǎn)換開始,EOC為低電平時A/D轉(zhuǎn)化結(jié)束,OE為高電平時轉(zhuǎn)換結(jié)果送到數(shù)據(jù)線并被單片機讀入,ALE為上升沿信號地址鎖存允許 </p><p> CLR P2.4</p><p> SETB P2.4</p><p> CLR P2.4<
42、;/p><p> JNB P2.5,$</p><p> SETB P2.6</p><p> MOVX A,@DPTR</p><p> MOV ADC,A</p><p> CLR P2.6</p><p> ?。?)消抖 防抖動
43、的時間是10ms。</p><p> ?。?)通道轉(zhuǎn)換 當(dāng)判斷有按鍵按下后P3.2口置位即允許74373地址鎖存,DPTR加1指向下一通道。</p><p> 4.2 A/D轉(zhuǎn)換子程序</p><p> A/D轉(zhuǎn)換子程序用于對ADC0809的4路輸入模擬電壓進行A/D轉(zhuǎn)換,并將轉(zhuǎn)換的數(shù)值存入4個相應(yīng)的存儲單元中,A/D轉(zhuǎn)換子程序每隔一定時間調(diào)用一次,即隔一段時間
44、對輸入電壓采樣一次,如圖4-2所示</p><p><b> 判斷是否為0</b></p><p> 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ù)并送
45、數(shù)碼管顯示輸出。 </p><p> LED 數(shù)碼管采用軟件譯碼動態(tài)掃描的方式。在中斷程序中包含多路循環(huán)顯示程序和單路顯示程序,多路循環(huán)顯示程序把4個存儲單元的數(shù)值依次取出送到4個數(shù)碼管上顯示,每一路顯示一秒。單路顯示程序只對當(dāng)前選中的一路數(shù)據(jù)進行顯示。每路數(shù)據(jù)顯示時需經(jīng)過轉(zhuǎn)換變成十進制BCD碼,放于4個數(shù)碼管顯示緩沖區(qū)中。單路或多路循環(huán)顯示通過標(biāo)志位00H控制。在顯示控制程序中加入了對單路或多路循環(huán)按鍵的判斷
46、。</p><p> 5使用說明與調(diào)試結(jié)果</p><p> 該數(shù)字電壓表可以同時測量8路直流數(shù)據(jù),電壓表測量范圍為0.00~5.00V,測量最小分辨率為19.5mv。</p><p> 整個系統(tǒng)由一個按鈕控制,最左邊個LED顯示器是指向當(dāng)前通道,即電位器編號。用Proteus仿真中點PLAY電壓表默認(rèn)顯示第8通道即第8個電位器RV8的測量值。</p&g
47、t;<p> 第一次按下按鈕后,改變測量通道即第1通道RV1的值,第2下為第2通道,依次循環(huán)測量8個電位器的電壓值。</p><p> 選擇其中任意電位器并撥動其位置能改變其值,最大值為5V,最小值為0V,在中間時為2.49V,單片機能讀出并正確顯示。</p><p> 經(jīng)調(diào)試后該系統(tǒng)能達到目標(biāo)要求。</p><p><b> 6總結(jié)
48、</b></p><p> 經(jīng)過一周左右的努力終于設(shè)計成功?。?! 這次課程設(shè)計對我來說學(xué)到的不僅是那些知識,更多的是團隊和合作?,F(xiàn)在想來,也許學(xué)校安排的課程設(shè)計有著它更深層的意義吧,它不僅僅讓我們綜合那些理論知識來運用到設(shè)計和創(chuàng)新,還讓我們知道了一個團隊凝聚在一起時所能發(fā)揮出的巨大潛能!在團隊中,我們互幫互助,對整個課程設(shè)計來說,這是至關(guān)重要的,缺少每一個人都會對我們的設(shè)計產(chǎn)生影響。還有要感
49、謝指導(dǎo)老師在我們遇到困難時,給予我們的建議與鼓勵。</p><p> 在一個星期后的今天我已明白課程設(shè)計對我來說的意義,它不僅僅是讓我們把所學(xué)的理論知識與實踐相結(jié)合起來,提高自己的實際動手能力和獨立思考的能力,更重要的是同學(xué)間的團結(jié),雖然我們這次花去的時間比別人多,但我相信我們得到的也會更多! 發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學(xué)習(xí)、工作和生活中</p><p&g
50、t; 在此向我們的單片機老師說聲:謝謝! </p><p><b> 參考文獻</b></p><p> 1、單片機原理與應(yīng)用設(shè)計。電子工業(yè)出版社。張毅剛、彭喜元編著。</p><p> 2、單片機原理及接口技術(shù)。高等教育出版社。李全利主編。</p><p> 3、MCS-51系列單片機實用編程88例。中國電力
51、出版社。賀哲榮、甄旭主編。</p><p><b> 附錄1 源程序</b></p><p> ADC EQU 50H</p><p> ORG 0000H</p><p> AJMP MAIN</p><p> ORG
52、 000BH</p><p> AJMP INT0</p><p> ORG 0030H</p><p> MAIN: MOV TMOD,#02H; ;初始化脈沖信號</p><p> MOV TH0,#250;</p><p&g
53、t; MOV TL0,#250;</p><p> SETB EA</p><p> SETB TR0</p><p> SETB ET0</p><p> MOV R4,#8</p><p> START1:MOV D
54、PTR,#7FF0H ;指向0通道</p><p> MOVX @DPTR,A ;讀取轉(zhuǎn)換數(shù)值</p><p> JB P3.4,AAA1</p><p> LCALL DELAY ;調(diào)用延時程序</p><p> JB P3.4,AAA1 ;判斷是否按下
55、按鈕并開始轉(zhuǎn)換數(shù)值</p><p> SETB P3.2 ;P3.2給高電平鎖存地址</p><p> INC R4</p><p> CJNE R4,#9,AAA2</p><p> MOV R4,#1</p><p> AAA2: I
56、NC R5 ;顯示所選通道</p><p> INC DPTR ;指向下一通道</p><p> MOV B,R5 ;顯示通道并重新鎖存地址</p><p> MOV P0,B</p><p> CLR P3.2
57、</p><p> JNB P3.4,$</p><p> AAA1: CLR P2.4</p><p> SETB P2.4</p><p> CLR P2.4</p><p> JNB P2.5,$</p><p&g
58、t; SETB P2.6</p><p> MOVX A,@DPTR ;讀取轉(zhuǎn)換數(shù)據(jù)開始轉(zhuǎn)化為工程量</p><p> MOV ADC,A</p><p> CLR P2.6</p><p> LCALL CONV ;調(diào)用轉(zhuǎn)換子程序</p><
59、p> LCALL DISP ;調(diào)用顯示子程序</p><p> LCALL DELAY ;調(diào)用延時程序</p><p> LJMP START1</p><p> CONV:MOV A,ADC ;數(shù)值轉(zhuǎn)換子程序</p><p> MOV B,
60、#51</p><p> DIV AB</p><p> MOV R1,A</p><p> MOV A,B</p><p> MOV B,#2</p><p> MUL AB</p><p> MOV B,#1
61、0</p><p> DIV AB</p><p> MOV R2,A</p><p> MOV R3,B</p><p><b> RET</b></p><p> DISP:MOV DPTR,#TABLE ;數(shù)碼顯示子程序</p
62、><p> MOV A,R4</p><p> MOVC A,@A+DPTR</p><p> CLR P2.3</p><p> MOV P1,A</p><p> LCALL DELAY</p><p> SETB P2.3</p>
63、<p> MOV A,R3</p><p> MOVC A,@A+DPTR</p><p> CLR P2.0</p><p> MOV P1,A</p><p> LCALL DELAY</p><p> SETB P2.0</p>&l
64、t;p> MOV A,R2</p><p> MOVC A,@A+DPTR</p><p> CLR P2.1</p><p> MOV P1,A</p><p> LCALL DELAY</p><p> SETB P2.1</p><p&
65、gt; MOV A,R1</p><p> MOVC A,@A+DPTR</p><p> CLR P2.2</p><p> ORL A,#80H</p><p> MOV P1,A</p><p> LCALL DELAY</p><p>
66、; SETB P2.2</p><p><b> RET</b></p><p> INT0:CPL P3.3</p><p><b> RETI</b></p><p> DELAY:MOV R6,#1 ;延時1ms子程序</p><p>
67、 D1: MOV R7,#250</p><p> DJNZ R7,$</p><p> DJNZ R6,D1</p><p><b> RET</b></p><p> TABLE: DB 3FH,06H,5BH,4FH,66H</p><p> DB 6D
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計數(shù)字電壓表6
- 單片機課程設(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ù)字電壓表
- 單片機(數(shù)字電壓表)課程設(shè)計.rar
- 單片機數(shù)字電壓表課程設(shè)計.doc
- 單片機(數(shù)字電壓表)課程設(shè)計.rar
- 單片機(數(shù)字電壓表)課程設(shè)計.rar
- 單片機課程設(shè)計---數(shù)字電壓表 (2)
- 單片機課程設(shè)計報告——數(shù)字電壓表
- 課程設(shè)計----單片機簡易數(shù)字電壓表
評論
0/150
提交評論