制作出來的實物圖如下:
實物工作圖 
設計要求系統能實現電壓測量,檢測技術指標為: ①測量范圍為0-10V ②測量精度:±0.1V ③通過顯示器進行顯示當前電壓值,顯示到小數點后兩位 2.2系統簡介⑴根據設計要求,選擇AT89C51單片機為核心控制器件。 ⑵A/D轉換采用ADC0832實現。 ⑶電壓顯示采用4位一體的LED數碼管。 ⑷LED數碼的段碼輸入,由并行端口P2產生:位碼輸入,用并行端口P0產生。 2.3方案比較(一)、采用FPGA進行設計 采用FPGA進行設計的系統流程圖如圖2-1所示 
圖2-1 FPGA設計系統流程圖 FPGA內部集成鎖項環,可以把外部時鐘倍頻,核心頻率可以到幾百M,而單片機運行速度低的多.在高速場合,單片機無法代替FPGA。雖然FPGA在頻率范圍和邏輯實現方面要高出單片機一塊。但是由于沒有指令系統,所以控制和運算能力比較弱。 (二)、采用單片機控制 采用單片機進行設計的系統流程圖如圖2-2所示 
圖2-2 單片機設計系統流程圖 數字電壓表的一種設計方案是以單片機為核心操作系統, 硬件電路設計由6個部分組成; A/D轉換電路,AT89C51單片機系統,LED顯示系統、時鐘電路、復位電路以及測量電壓輸入電路。 應用單片機操作系統的好處是能準確有效的輸入電壓值、操作簡單、技術成熟、算法較為靈活、成本費用低。
3硬件電路設計
3.1 AT89C51單片機簡介AT89C51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,AT89C51在眾多嵌入式控制應用系統中得到廣泛應用。51單片機內包含以下幾個部件: - 8位微處理器(CPU)。
- 數據存儲器(128B RAM)。
- 程序存儲器(ROM/EPROM)。
- 4個8位可編程并行I/O口(P0口,P1口,P2口,P3口)。
- 1個全雙工的異步串行口。
- 2個16定時器/計數器。
- 中斷系統。
- 特殊功能寄存器(SFR)。
單片機片內結構如圖3-1所示:
圖3-1 單片機片內結構 3.2 ADC0832轉換器簡介ADC0832是一種8 位分辨率、雙通道A/D轉換芯片。由于它體積小,兼容性強,性價比高而深受單片機愛好者及企業歡迎,其目前已經有很高的普及率。學習并使用ADC0832 可是使我們了解A/D轉換器的原理,有助于我們單片機技術水平的提高。芯片如下圖3-2所示:  圖3-2 ADC0809 芯片接口說明如下: CS_ 片選使能,低電平芯片使能。 CH0 模擬輸入通道0,或作為IN+/-使用。 CH1 模擬輸入通道1,或作為IN+/-使用。 GND 芯片參考0 電位(地)。 DI 數據信號輸入,選擇通道控制。 DO 數據信號輸出,轉換數據輸出。 CLK 芯片時鐘輸入。 Vcc/REF 電源輸入及參考電壓輸入(復用)。 工作原理如下: 正常情況下ADC0832 與單片機的接口應為4條數據線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時并未同時有效并與單片機的接口是雙向的,所以電路設計時可以將DO和DI 并聯在一根數據線上使用。當ADC0832未工作時其CS輸入端應為高電平,此時芯片禁用,CLK 和DO/DI 的電平可任意。當要進行A/D轉換時,須先將CS使能端置于低電平并且保持低電平直到轉換完全結束。此時芯片開始轉換工作,同時由處理器向芯片時鐘輸入端CLK 輸入時鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數據信號。在第1 個時鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號。在第2、3個脈沖下沉之前DI端應輸入2 位數據用于選擇通道功能。當此2 位數據為“1”、“0”時,只對CH0 進行單通道轉換。當2位數據為“1”、“1”時,只對CH1進行單通道轉換。當2 位數據為“0”、 “0”時,將CH0作為正輸入端IN+,CH1作為負輸入端IN-進行輸入。當2 位數據為“0”、“1”時,將CH0作為負輸入端IN-,CH1 作為正輸入端IN+進行輸入。到第3 個脈沖的下沉之后DI端的輸入電平就失去輸入作用,此后DO/DI端則開始利用數據輸出DO進行轉換數據的讀取。從第4個脈沖下沉開始由DO端輸出轉換數據最高位DATA7,隨后每一個脈沖下沉DO端輸出下一位數據。直到第11個脈沖時發出最低位數據DATA0,一個字節的數據輸出完成。也正是從此位開始輸出下一個相反字節的數據,即從第11個字節的下沉輸出DATD0。隨后輸出8位數據,到第19 個脈沖時數據輸出完成,也標志著一次A/D轉換的結束。最后將CS置高電平禁用芯片,直接將轉換后的數據進行處理就可以了。 3.3 時鐘電路XTAL1是片內振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應直接加到XTAL1,而XTAL2懸空。內部方式時,時鐘發生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內選擇。電容取30PF左右。系統的時鐘電路設計是采用的內部方式,即利用芯片內部的振蕩電路如下圖3-3所示: 
圖3-3 時鐘電路 3.4 復位電路由電容串聯電阻構成,由圖并結合"電容電壓不能突變"的性質,可以知道,當系統一上電,RST腳將會出現高電平,并且,這個高電平持續的時間由電路的RC值來決定.典型的51單片機當RST腳的高電平持續兩個機器周期以上就將復位,所以,適當組合RC的取值就可以保證可靠的復位.一般教科書推薦C 取10u,R取8.2K.當然也有其他取法的,原則就是要讓RC組合可以在RST腳上產生不少于2個機周期的高電平.至于如何具體定量計算,可以參考電路分析相關書籍.復位 電路如下圖3-4所示。
圖3-4 復位電路 3.5 LED顯示電路本項目所用顯示屏為4位LED顯示屏。本LED顯示器為8段(DP為小數點段),每一段為一個發光二極管。發光二極管有共陽極和共陰極兩種。本顯示器的發光二極管為共陽極數碼管。發光二極管的陽極連接在一起,通常在此共陽極接正電壓,當某個發光二極管的陰極接低電平時,發光二極管被點亮,相應的段被顯示。通過給LED顯示器提供不同的代碼,是這些不同的LED顯示器相應的段發光顯示不同的字型,這些代碼稱為段碼。 本項目所用段碼值如下 (表 1) 所示: 表1 4 軟件程序設計
4.1系統整體軟件設計設計的環境Keil是德國知名軟件公司Keil (現已并入ARM公司)開發的微控制器軟件開發平臺,是目前ARM內核單片機開發的主流工具。KEIL提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器在內的完整開發方案,通過-一個集成開發環境( uVision )將這些功能組合在一起。 uVision當前最 高版本是uVision3,它的界面和常用的微軟VC+ +的界面相似,界面友好,易學易用,在調試程序,軟件仿真方面也有很強大的功能。因此很多開發ARM應用的工程師,都對它十分喜歡。 使用Keil來開發嵌入式軟件,開發周期和其他的平臺軟件開發周期是差不多的,大致有以下幾個步驟: 1.創建一個工程,選擇一塊目標芯片,且做一些必要的工程配置。 2.編寫C或者匯編源文件。 3.編譯應用程序。 4.修改源程序中的錯誤。 5.聯機調試。 Proteus是英國Labcenter公司的電路分析與實物仿真軟件,可以仿真分析(Spice)各種模擬器件和集成電路,該軟件的特點是: (1)實現了單片機仿真和Spice電路仿真相結合。具有模擬電路仿真數字電路仿真鄲機及其外圍電路組成的系統的仿真RS 232動態仿真、I2C調試器、SPI調試器、鍵盤和LCD系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發生器等。 (2)支持主流單片機系統的仿真。目前支持的單片機類型有: 68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、 PIC18系列、 Z80系列、 HC11系列以及各種外圍芯片。 (3)提供軟件調試功能。在硬件仿真系統中具有全速、步設置斷點等調試功能,同時可以觀察各個變量、存器等的當前狀態,因此在該軟件仿真系統中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環境,如Keil C51 μVision 2等軟件。 (4)具有強大的原理圖繪制功能。啟動Proteus后將出現ISIS的設計窗口 ,如圖1所示。包括:標題欄、主菜單、標準工具欄、繪圖工具欄、狀態欄、對象選擇按鈕、預覽對象方位控制按鈕、仿真進程控制按鈕(最下面一行)、 預覽窗口、對象選擇器窗口、圖形編輯窗口。 4.2軟件設計流程圖4.2.1程序設計總方案根據模塊的劃分原則,將該程序劃分初始化模塊,A/D轉換子程序和顯示子程序,這三個程序模塊構成了整個系統軟件的主程序,如圖4-1所示。 
圖4.1 數字式直流電壓表主程序框圖 4.2.2 系統子程序設計(一)初始化程序 所謂初始化,是對將要用到的51系列單片機內部部件或擴展芯片進行初始工作狀態設定,初始化子程序的主要工作是設置定時器的工作模式,初值預置,開中斷和打開定時器等。 (二)AD轉換子程序 A/D轉換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應的數值存入相應的內存單元,其轉換流程圖如圖4-2所示。 
圖4-2 AD轉換子程序 (三) 顯示子程序 顯示子程序采用動態掃描實現四位數碼管的數值顯示,在采用動態掃描顯示方式時,要使得LED顯示的比較均勻,又有足夠的亮度,需要設置適當的掃描頻率,當掃描頻率在70HZ左右時,能夠產生比較好的顯示效果,一般可以采用間隔10ms對LED進行動態掃描一次,每一位LED的顯示時間為1ms。 在本設計中,為了簡化硬件設計,主要采用軟件定時的方式,即用定時器0溢出中斷功能實現11μs定時,通過軟件延時程序來實現5ms的延時。顯示子程序流程圖如圖4-3所示。 
圖4-3 顯示子程序流程圖
5 系統調試
5.1 硬件調試在系統上電開始測量前,要用萬用表的電壓檔對被測電壓進行估測,然后以此選擇適當的量程,防止過大電壓燒壞A/D轉換器。首先用萬用表按照原理圖逐步檢查中各器件的電源及各引腳的連接是否正確,有否斷路、短路或者虛焊,尤其是給電路供電的電源部分需重點檢查,用數字萬用表測量0832輸出端的電壓是否是+10V,是否穩定,能夠輸出+10V,且穩定即可說明電源電路的設計基本達到目的要求。如果電壓沒有達到預期要求,要及時排查解決,以免燒壞芯片和其他元器件。 軟件調試時先進行單元測試,分別對各個代碼模塊進行測試,看其是否實現了規定功能,再把已經測試過的模塊組合起來進行調試,一旦不能正確運行,要找出程序中的代碼錯誤,確定大致的錯誤位置,研究有關部分的錯誤程序,找出錯誤的原因,修改設計和代碼,以排除故障。 我們在程序編寫完成后,就能利用仿真器初步調試,觀察在計算機里能否通過編譯與運行并且達到設計的基本要求。在基本符合的情況下,利用仿真器和工作正常的硬件連接進行仿真調試;或用編程器把程序燒寫到芯片中,直接觀察能否正常運行。如果達不到設計要求或者不能正常運行,能直接在程序中進行編譯和修改。 系統調試中遇到的問題及解決的方法: 1)在應用濾波電容的過程中,開始時是把電容串聯在電路中,導致電路無法導通,而后我們短路電容,解決了問題。 2)電源指示燈上,一開始發現接上電源,指示燈不亮,經過儀器測量發現正負極接反,后重新焊接。 3)由于源程序的多處錯誤,使得仿真無法通過,后經過單步調試,把存在的錯誤一一排除,通過了軟件仿真。 4)在燒錄芯片的過程中,由于選擇燒錄文件的錯及芯片質量的問題(因多次燒錄,無法再次燒錄)使得燒錄失敗,后經過查閱資料并且更換了AT89C51芯片,解決了問題。 系統原理圖如圖5-1所示 
圖5-1 系統原理圖 5.2軟件調試本設計應用Proteus6及KEIL51軟件,首先根據自己設計的電路圖用Proteus6軟件畫出電路模型,關于這個軟件的使用通過查一些資料和自己的摸索學習;然后我們用KEIL51軟件對所編寫的程序進行編譯、鏈接,如果沒有錯誤和警告便可生成程序的hex文件,將此文件加到電路圖上使軟硬件結合運行,最后進行端口電壓的對比測試,測試的第一路對比見圖5.2中標準電壓值采用Proteus6軟件中的模擬電壓表測得。 
圖5-2 仿真結果圖 6 總結經過一段時間的努力,基于單片機的簡易數字電壓表基本完成。但設計中的不足之處仍然存在。這次設計是我第一次設計電路,并用Proteus實現了仿真。在這過程中,我對電路設計,單片機的使用等都有了新的認識。通過這次設計學會了Proteus和Keil軟件的使用方法,掌握了從系統的需要、方案的設計、功能模塊的劃分、原理圖的設計和電路圖的仿真的設計流程,積累了不少經驗。 基于單片機的數字電壓表使用性強、結構簡單、成本低、外接元件少。在實際應用工作應能好,測量電壓準確,精度高。系統功能、指標達到了課題的預期要求、系統在硬件設計上充分考慮了可擴展性,經過一定的改造,可以增加功能。本文設計主要實現了簡易數字電壓表測量一路電壓的功能,詳細說明了從原理圖的設計、電路圖的仿真再到軟件的調試。 通過本次設計,我對單片機這門課有了進一步的了解。無論是在硬件連接方面還是在軟件編程方面。本次設計采用了AT89C51單片機芯片,與以往的單片機相比增加了許多新的功能,使其功能更為完善,應用領域也更為廣泛。設計中還用到了模/數轉換芯片ADC0832,以前在學單片機時只是對其理論知識有了初步的理解。通過這次設計,對它的工作原理有了更深的理解。在調試過程中遇到很多問題,硬件上的理論知識學得不夠扎實,對電路的仿真方面也不夠熟練。 總之這次電路的設計和仿真,基本上達到了設計的功能要求。在以后的實踐中,我將繼續努力學習電路設計方面的理論知識,并理論聯系實際,爭取在電路設計方面能有所提升。 通過這次設計,使我深入了解了AT89C51單片機和ADC0832(A\D轉換器)的結構和特點及數字電壓表的工作原理,加深了對課本理論知識的理解,鍛煉了實踐動手能力,理論知識與實踐設計相結合,培養了創新開發的思維。在此次設計中,收獲知識的同時,我還收獲了閱歷。在此過程中,我們通過查找資料,以及不懈的努力,不僅培養了獨立思考、動手操作的能力,在各種其它能力上也都有了提高。
在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經常。而且隨著電子技術的發展,更是經常需要測量高精度的電壓,所以數字電壓表就成為一種必不可少的測量儀器。數字電壓表簡稱DVM,它是采用數字化測量技術,把連續的模擬量轉換成不連續、離散的數字形式并加以顯示的儀表。由于數字式儀器具有讀數準確方便、精度高、誤差小、測量速度快等特而得到廣泛應用。
傳統的指針式刻度電壓表功能單一,進度低,容易引起視差和視覺疲勞,因而不能滿足數字化時代的需要。采用單片機的數字電壓表,將連續的模擬量如直流電壓轉換成不連續的離散的數字形式并加以顯示,從而精度高、抗干擾能力強,可擴展性強、集成方便,還可與PC實時通信。數字電壓表是諸多數字化儀表的核心與基礎。以數字電壓表為核心,可以擴展成各種通用數字儀表、專用數字儀表及各種非電量的數字化儀表。目前,由各種單片機和A/D轉換器構成的數字電壓表作全面深入的了解是很有必要的。
最近的幾十年來,隨著半導體技術、集成電路(IC)和微處理器技術的發展,數字電路和數字化測量技術也有了巨大的進步,從而促使了數字電壓表的快速發展,并不斷出現新的類型。數字電壓表從1952年問世以來,經歷了不斷改進的過程,從最早采用繼電器、電子管和形式發展到了現在的全固態化、集成化(IC化),另一方面,精度也從0.01%-0.005%。
目前,數字電壓表的內部核心部件是A/D轉換器,轉換的精度很大程度上影響著數字電壓表的準確度,因而,以后數字電壓表的發展就著眼在高精度和低成本這兩個方面。
本文是以簡易數字直流電壓表的設計為研究內容,本系統主要包括三大模塊:轉換模塊、數據處理模塊及顯示模塊。其中,A/D轉換采用ADC0832對輸入的模擬信號進行轉換,控制核心AT89C51再對轉換的結果進行運算處理,最后驅動輸出裝置LED顯示數字電壓信號。
背景及意義
眾所周知,在當今的社會中電已成為人們日常生產,生活中一個必不可缺的因素。電的發現和應用極大的節省了人類的體力勞動和腦力勞動,使人類的力量長上了翅膀,使人類的信息觸角不斷延伸。而在這其中,電壓,電流等已成為描述電的一-些重要參數。
在電氣測量中,電壓是一個很重要的參數。如何準確地測量模擬信號的電壓值,一直是電測儀器研究的內容之一。數字電壓表是通用儀器中使用較廣泛的種測試儀器,很多電量或非電量經變化后都用可數字電壓表完成測試。目前,由各種單片A/D轉換器構成的數字電壓表,已被廣泛用于電子及電工測量、工業自動化儀表、自動測試系統等智能化測量領域,顯示出強大的生命力。
這個課題的目的和意義在于使自己掌握對數字電壓表的理解,自己動手設計數字電壓表與仿真,它可以廣泛的應用于電壓測量外,通過各種變換器還可以測量其它電量和非電量,測量是一種認識過程嗎,就是用實驗的方法將被測量和被選用的相同參量進行比較,從而確定它的大小。DVM廣泛應用于測量領域每期測量的準確度和可信度取決于它的主要性能和技術指標。所以我們要學習和掌握如何設計DVM就顯得十分重要。
設計內容主要包括:查資料、總體設計、元器件選型、原理圖、PCB圖、仿真、實物制作和調試、實踐訓練文檔和驗收六個部分。實訓的最后要求是寫出實訓文檔,把總體設計、原理圖、元器件選型、PCB過程進行全面的說明,上升到一定高度。
電壓的測量雖然在電量測量中是最基本的,但在電氣測量中卻占據著重要的地位。當代的測量儀器的研究是在電壓的基礎上才能實現的,因此電壓測量已成為研究的重點之一。時代的發展,促使人類技術的不斷進步,現代用到的測量技術都是依靠高精度的測量儀器,并且隨著計算機的發展,測量技術融合計算機的功能,使得現代測量技術具有存儲、計算、控制、顯示、語音等功能。
以單片機為主控電路的高科技電子儀器儀表,不僅具有測量精確度高,靈敏度高和分辨率高的特點,還具有可靠性,穩定性強,測量速度快,通信,可存儲等的優點。關于它的應用非常廣泛,F已廣泛應用于電子、電氣測量,工業自動化儀表,自動測試系統等,F代檢測技術中,常需用高精度數字電壓表進行現場檢測,將檢測到的數據送入微計算機系統,完成計算、存儲、控制和顯示等功能。
數字電壓表利用A/D轉換原理,將被測模擬量轉換成數字量,并用數字方式顯示測量結果的電子測量儀表。A/D轉換器的精度影響數字萬用表的準確度,本文采AT89C51單片機,內部自帶的A/D轉換器將輸入模擬信號進行轉換,單片機對轉換的結果進行運算和處理,最后驅動輸出裝置顯示數字電壓信號,通過Proteus仿真軟件實現接口電路設計,并進行實時仿真。
電壓的測量雖然在電量測量中是最基本的,但在電氣測量中卻占據著重要的地位。當代的測量儀器的研究是在電壓的基礎上才能實現的,因此電壓測量已成為研究的重點之一。
原理圖
51hei截圖20220427202558.png (42.18 KB, 下載次數: 41)
下載附件
2022-4-27 20:26 上傳
仿真圖
51hei截圖20220427202852.png (60.92 KB, 下載次數: 38)
下載附件
2022-4-27 20:29 上傳
程序
#include <reg51.h>
#include <intrins.h>
/*********************************端口定義**********************************/
sbit CS = P3^5;
sbit Clk = P3^3;
sbit DATI = P3^4;
sbit DATO = P3^4;
sbit DIAN = P0^5; //小數點
/*******************************定義全局變量********************************/
unsigned char dat = 0x00; //AD值
unsigned char count = 0x00; //定時器計數
unsigned char CH; //通道變量
unsigned char dis[4]; //顯示數值
unsigned int sum=0;
/*******************************共陰LED段碼表*******************************/
unsigned char code tab[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7};
char code tablewe[]={ 0xfd,0xfb,0xf7,0xef,0xdf,0xfe };
/****************************************************************************
函數功能:AD轉換子程序
入口參數:CH
出口參數:dat
****************************************************************************/
unsigned char adc0832(unsigned char CH)
{
unsigned char i,test,adval;
adval = 0x00;
test = 0x00;
Clk = 0; //初始化
DATI = 1;
_nop_();
CS = 0;
_nop_();
Clk = 1;
_nop_();
if ( CH == 0x00 ) //通道選擇
{
Clk = 0;
DATI = 1; //通道0的第一位
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 0; //通道0的第二位
_nop_();
Clk = 1;
_nop_();
}
else
{
Clk = 0;
DATI = 1; //通道1的第一位
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 1; //通道1的第二位
_nop_();
Clk = 1;
_nop_();
}
Clk = 0;
DATI = 1;
for( i = 0;i < 8;i++ ) //讀取前8位的值
{
_nop_();
adval <<= 1;
Clk = 1;
_nop_();
Clk = 0;
if (DATO)
adval |= 0x01;
else
adval |= 0x00;
}
for (i = 0; i < 8; i++) //讀取后8位的值
{
test >>= 1;
if (DATO)
test |= 0x80;
else
test |= 0x00;
_nop_();
Clk = 1;
_nop_();
Clk = 0;
}
if (adval == test) //比較前8位與后8位的值,如果不相同舍去。若一直出現顯示為零,請將該行去掉
dat = test;
nop_();
CS = 1; //釋放ADC0832
DATO = 1;
Clk = 1;
return dat;
}
/****************************************************************************
函數功能:延時子程序
入口參數:
出口參數:
****************************************************************************/
void delay(void)
{
int k;
for(k=10;k<500;k++);
}
/****************************************************************************
函數功能:將0-255級換算成0.00-5.00的電壓數值
入口參數:i
出口參數:
****************************************************************************/
void convdata(unsigned int i)
{
i=i*1.96;
dis[0] = i/100; //個位
dis[1] = i%100/10; //小數點后第一位
dis[2] = i%100%10; //小數點后第二位
// dis[3] = i%1000%100%10;
}
/****************************************************************************
函數功能:數碼管顯示子程序
入口參數:
出口參數:
****************************************************************************/
void display(void)
{
P0=tab[dis[0]]; //顯示個位和小數點11011111
DIAN=1;
P2=0xdf; //11011111
delay();
P2=0xff;
P0=tab[dis[1]]; //顯示小數點后第一位
P2=0xbf; //10111111
delay();
P2=0xff;
P0=tab[dis[2]]; //顯示小數點后第二位
P2=0x7f; //01111111
delay();
P2=0xff;
}
/****************************************************************************
函數功能:主程序
入口參數:
出口參數:
****************************************************************************/
void main(void)
{
unsigned char m;
CH = 0x00; //在這里選擇通道 0x00或0x01
while(1) //主循環
{
for(m=0;m<50;m++)
{
dat = adc0832(CH);
sum=sum+dat;
display(); //顯示數值
}
dat=sum/50;
sum=0;
convdata(dat); //數據轉換
display(); //顯示數值
}
}
Keil代碼與Proteus仿真下載:
123.7z
(783.35 KB, 下載次數: 117)
2022-4-27 20:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
以上文檔:
word文檔.doc
(1.19 MB, 下載次數: 37)
2022-4-27 20:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|