基于單片機的電量檢測系統設計_第1頁
基于單片機的電量檢測系統設計_第2頁
基于單片機的電量檢測系統設計_第3頁
基于單片機的電量檢測系統設計_第4頁
基于單片機的電量檢測系統設計_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于單片機的電量檢測系統設計摘要隨著電力系統電量的日益擴大和電壓運行等級的不斷提高,傳統的電量檢測系統暴露出越來越多的缺點,難以滿足現代電網向自動化、數字化發展的需要。本文首先概述了WB系列交流電量傳感器的工作原理和各項工作技術指標,并做了硬件系統的設計,包括控制電路、模塊轉換部分、鍵盤輸入部分、LED顯示部分方面的設計。然后介紹了ADC0809和74HC595中電子接口的各項特性,同時對單元的結構原理和功能劃分進行了分析和研究,選擇了合適的各種數據轉換軟件按。通過分析和研究,提出了軟件系統方面的設計方案,最關鍵的問題是A/D轉換程序的設計、主程序和子程序的流程方案關鍵詞 A/D轉換器LED顯

2、示器ADC0809 74HC595單片機POWER DETECTIO SYSTEM BESEDON SINGLE CHIP DESIGNABSTRACTWith the growing power system capacity and the increasing level voltage operation, the traditional amount of power detection system weaknesses exposed more and more difficult to meet the modern power grid to the automation,

3、digital development. This paper outlines the WB series AC power sensor working principle and the work of technical indicators, and made the hardware system design, including control circuits, modules conversion component, keyboard part, LED showed that some aspects of the design. Then introduced the

4、 ADC0809 and the 74HC595 in the electronic interface properties, while the structural principles and functions of cell division was analyzed and studied, the suitable range of data conversion software by. Through analysis and research, the design of software systems, the most critical issue is A / D

5、 conversion process of design, the main program and subroutine program flow.KEYWORDSA/D conversion chip74HC595SCMADC0809LED display chip目錄中文摘要I英文摘要II1緒論12WB系列交流電量傳感器22.1 概述22.2 WB交流電量傳感器的工作原理22.3 傳感器型號及技術指標33 硬件系統的設計43.1 硬件框圖43.2 控制電路的設計5單片機的選擇5模數轉換部分的設計11 A/D 轉換器概述及單片機接口的一般特點11 ADC0809簡介123.3 鍵盤輸入部

6、分15矩陣式鍵盤15獨立式鍵盤15LED顯示部分163.4 LED的動態顯示方式16 LED靜態顯示方式17 74HC595簡介17 鍵盤及顯示電路194 軟件系統設計194.1 C語言簡介194.2 主程序流程圖204.3 按鍵程序流程圖204.4 定時器0中斷服務程序設計214.5 A/D轉換程序設計24結束語25致 謝26參考文獻27附錄1 設計原理圖28附錄2 源程序291緒論自第一個微處理器問世以來,以微處理器為核心構成的計算機以各種各樣的形式,無孔不入的滲入到人們的生產、生活、科研等各個領域,為人類帶來了滲透到各個領域的“智能”。微處理器是整個智能儀器儀表的核心,檢測電路時微處理器

7、的外圍設備,微機通過接口發出各種控制信息給檢測電路,以規定功能、啟動測量、改變工作方式等。微機通過查詢或檢測電路向微機提出的中斷請求,使微機及時了解檢測電路的工作狀態。當檢測電路完成一次測量后,微機讀取測量數據,進行了解檢測電路的工作狀態。當檢測電路完成一次測量后,微機讀取測量數據,進行必要的加工、計算、變換等處理,最后以各種方式輸出,如送顯示器、打印機打印,或送給系統的主控制器等等。近二十年來,以計算機科學,信息學,生命科學為代表的各門新興學科的迅猛發展,極大限度的刺激了全球經濟的發展,在現代化的工業生產中,電流、電壓、溫度、壓力、流量、流速和開關量都是常用的主要被控參數。例如:在冶金工業、

8、化工生產、電力工程、造紙行業、機械制造和食品加工等諸多領域中,電能是人們日常生活和工業生產中的重要能源之一,在現代社會中起著越來越重要的作用,而電壓、電流是其中最關鍵的兩個因素,是否準確的測量電壓、電流對我們的生活和生產有著至關重要的影響,特別是電工和電力系統等領域經常要對交流電量進行采樣測試以了解工作電壓或整個電網的工作情況。2 WB系列交流電量傳感器2.1 概述 WB系列交流電量傳感器采用電磁隔離技術和專用厚膜集成電路。對電網或電路中的交流電流或交流電壓進行實時測量,將其變換成跟蹤電壓暑促()、直流電壓輸出()、直流電壓輸出()、頻率輸出()。傳感器的輸出可以與各型AD轉換器配接構成數據采

9、集系統,也可以與傳統模式、數字式指示儀表配接,顯示被測量之值。體積小、重量輕、精度高、耗能低,輸入電路、輸出電路完全隔離,輸出信號可以共地,輸出形式多樣,滿足各種使用要求,在0120%標稱輸入范圍內,輸出信號入輸出信號之間保持正比例關系,通聘寬帶,可以測量5kHz以內的正弦交流電流或交流電壓。結構形式多樣,提供直插式、DIN卡裝式安裝方式,方便各種場合使用等特點。2.2 WB交流電量傳感器的工作原理 本系列傳感器采用模塊化電路結構,如圖2-1主要由電流測頭1(或電壓側頭2)、采樣電路3、定標放大器4、裝用厚膜集成轉化器5、6、7組成。圖2-1 電路結構被測電流信號或被測電壓信號經電流測頭1或電

10、壓測頭2隔離變換,在二次回路形成高精度毫安級跟蹤電流,經采樣電路3轉換為跟蹤電壓信號,在經定標放大器4進行放大、定標,形成跟蹤電壓輸出Vg;跟蹤電壓信號經AC/DC轉換器5后,形成直流電壓輸出。輸出經V/I轉換器6后形成直流輸出,輸出經V/F變換器7后形成頻率輸出。只有輸出跟蹤電壓的產品才使用正負電源+E,-E,其他產品才使用單一正電源。圖2-1中電流測頭1和電壓測頭2是本系列產品的關鍵部件,屬于精密互感器系列,承擔隔離和線性變換的雙重作用,改變電流測頭規格或改變電壓測頭的輸入電阻可以改變傳感器的測量范圍。定標放大器4是一個寬帶交流放大器,它產生的電壓輸出,在波形和相位上快速跟蹤輸入信號的變化

11、,輸出型傳感器適用于交流采樣系統。轉換器5是配套研發的專用厚膜集成器件,它把交流電壓信號變換為直流電壓或直流電流輸出。轉換原理分為平均值轉換和真有效值轉換,平均值轉換器成本低,適用于標準正弦交流信號轉換;真有效值轉換器適用于含有多次諧波的交流信號(如三角波、矩形波、梯形波、可控硅調功波等),單成本較高。轉換器5(或轉換器6)的“基準波”接地時,他輸出05V(或020mA);為它們配加以個高穩定的偏置電路,就形成1V5V(或4mA20mA);為它們配加一個高穩定的偏置電路,就形成了1V5V(4mA20mA)輸出。2.3 傳感器型號及技術指標采用WBV413AS3交流電壓傳感器和WB1414AS1

12、交流電流傳感器對電流和電壓進行數據采集。WBV141AS3技術指標:輸入規格:10V1000VAC輸出規格:4mA20mA響應時間: 250MS負載能力:6V靜態功耗:50MW供電電源:+12或+24其他指標:(1)線性范圍:0120%標稱輸入(2)輸入頻響:255K(3)環境條件:0+50WB1414AS1技術指標:輸入規格:5A50A輸出規格:4mA20mA精度等級:0.5級響應時間:300ms負載能力:6V靜態功耗:800mW供電電源:+12或+24其他指標:(1)線性范圍:0120%標稱輸入(2)輸入頻響:25Hz5kHz,特別適合工頻至中頻(3)環境條件:0+50。3 硬件系統的設計

13、3.1 硬件框圖圖3-1 硬件框圖本設計是AT89C51單片機控制的電量檢測系統。其工作原理是:先由電量傳感器采集數據,啟動AD轉換,后將數據讀入單片機中進行運算并顯示,即由數據采集,數據分析和數據處理三部分完成。本設計中,控制系統的控制器有單片機AT89C51為核心,系統采用WB1414AS1(交流電流傳感器)和WBV1414AS3交流電壓傳感器對電流和電壓進行數據采集,并輸出標準電流4mA20mA,WB1414AS1、WBV1414AS3具有新型電磁隔離,高精度變送等優點。AT89C51單片機控制AD0809進行模數轉換,數據經過單片機的運算,輸出結果,并把結果在4位8段數碼管上顯示。3.

14、2 控制電路的設計單片機的選擇20世紀80年代以來,單片機的發展非常迅速,就通用單片機而言,世界上一些著名的計算機廠家已經投放市場的產品就有50多個系列,數百個品種。目前世界上較為著名的8位單片機的生產廠家和主要機型如下:美國Intel公司:MCS-51系列和其增強型系列美國Motorola公司:6801系列和6805系列美國Amtel公司:89C51等單片機美國Zilog公司:Z8系列和3870系列美國Fairchild公司:F8系列及SUPER8美國ROCKWELL公司:65001系列美國TI(德克薩斯儀器儀表)公司:TMS7000系列NS(美國國家半導體)公司:NS8070系列等等。盡管

15、單片機的品種很多,但是在我國使用最多還是Intel公司的MCS-51系列單片機和美國Amtel公司的89C51單片機。MCS-51系列單片機包括三個基本型8031、8051、8751。8031內部包括一個8為CPU、128個字節RAM,21個特殊功能的寄存器(SFR)、4個8位并行IO口、1個全雙工穿行口、2個16位定時器計數器,但片內無程序存儲器,需外擴EPROM芯片。比較麻煩,不予采用。8051是在8031的基礎上,片內集成有4KROM,作為程序存儲器,是一個程序不超過4K字節的小系統。ROM內的程序是公司制作芯片時,代為用戶燒紙的,出場的8051都是含有特殊用途的單片機。所以8051適用

16、用應用在程序已定且批量大的單片機產品中,所以也不采用。8751是在8031基礎上,增加了4K字節的EPROM,它構成了一個程序小于4KB的小系統。用戶可以將程序固化在EPROM,可以反復修復程序。但其價格相對8031較貴。8031外擴一片4KB EPROM就相當于8751,它的最大優點是價格低。隨著大規模集成電路技術的不斷發展,能裝入片內的外圍接口。雖然雖都在不斷的改變制造工藝,但內核卻一樣,也就是說這類單片機指令系統完全兼容,絕大多數管腳也兼容;在使用上基本可以直接互換。所以不采用89C51單片機是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable a

17、nd Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。89C51是一種帶2K字節閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的89C51是一種高效微控制器,89C2051是它的一種精簡版本。89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。所以采用此單片機較好。AT89C51單片機簡介主要特征:與MCS-51 兼容;4K字節可

18、編程閃爍存儲器 ;壽命:1000寫/擦循環 ;數據保留時間:10年 ;全靜態工作:0Hz-24MHz;三級程序存儲器鎖定 ;128*8位內部RAM ;32可編程I/O線 ;兩個16位定時器/計數器 ;5個中斷源 ;可編程串行通道;低功耗的閑置和掉電模式 ;片內振蕩器和時鐘電路;管腳說明:VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外

19、部必須被拉高。 P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給

20、出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。除了作為一般的IO口線外,更重要的用途是它的第二功能,如下表所示:表3-1 P3口的替代功能端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外中斷0)P3.3(外中斷1)P3.4

21、T0(定時計數器0)P3.5T1(定時計數器1)P3.6(外部數據存儲器寫選通)P3.7(外部數據存儲器讀選器)P3口還接受一些用于FLASH閃速存儲器編程和程序校檢的控制信號。RST:復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將單片機復位。ALE:當訪問外部程序存儲器或說句存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節。即使不訪問外部存儲器,ALE仍一時鐘振蕩頻率的16輸出固定的正弦脈沖信號,因此它可以對外輸出時鐘或用于定時目的。但要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入變成脈沖。如有必要,可

22、通過對特殊功能寄存器(SFR)區中的8EH單元的D0位置位,可禁止ALE操作。該位置后,只有一條MOVX和MOVC指令ALE才會被激活,此外,該引腳后被微弱拉高,單片機執行外部程序時,應設置ALE無效。:程序存儲允許()輸出時外部程序存儲器的讀取通信號,當AT89C51由外部程序存儲器取指令或數據時,每個機器周期兩次有效,即輸出兩個脈沖,在此期間,當訪問外部數據儲存器時,這兩次有效的信號不出現。EAVPP:外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000HFFFFH),EA端必須保持低電平接地。需要注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。FLASH存儲器編程時

23、,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。XTAL1:振蕩器反相放電器及內部時鐘發生器的輸入端。XTAL2:振蕩器3放大器的輸出端。時鐘振蕩器:AT89C51中有一個用于購車個內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2F分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構成自激振蕩器,振蕩電路如圖3-2所示。外界適應晶體(或陶瓷振蕩器)及電容C1、C2接在放大器的反饋回路中構成并聯振蕩電路。對外接電容C1、C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低,振蕩器工作的穩定性,起振

24、的難易程序及溫度穩定性,如果使用石英晶體,則推薦電容使用30pF±10pF,而如使用陶瓷振蕩器建議使用40pF±10pF。用戶也可以采用外部時鐘,采用時鐘的電路如圖3-3。在這種情況下,外部時鐘脈沖接到XTAL1端,即內部時鐘發生器的輸入端,XTAL2則懸空。圖3-2 內部振蕩電路圖3-3 外部振蕩電路由于外部時鐘信號是通過一個2分鐘觸發器作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續時間和最大的低電平持續時間應符合產品技術條件的要求。AT89C51單片機中,有些屬于低電平編程方式,而有些則是高電壓編程方式。用戶可以從芯片上的型號和讀取芯片內的

25、簽名字節獲得該信息。如表3-2所示表3-2Vpp12VVpp5V芯片頂面標示AT89C51xxxxyywwAT89C51xxxx5yyww簽名字節030H1EH031H5EH032HFFH030H1EH031H51H032H05HAT89C51的程序存儲器列陣采用字節寫入方式編程的,每次寫入一個字節要對整個芯片內的PEROM程序存儲器寫入一個非空字節,必須使用擦除的方式將整個存儲器的內容寫清楚。編程方法:編程前,先設置好地址,數據及控制信號,編程單元的地址加在PI口和P2口,P1.0P2.311位地址范圍為0000H0FFFH,數據從P0口輸入,為低電平,RST保持高電平,EA/Vpp引腳是編

26、程電源的輸入端,按要求加上標稱電壓,ALE/PROG引腳輸入編程脈沖負脈沖。編程時,可采用4 MHz20MHz的時鐘振蕩器,AT89C51編程方法如下:(1)在底線上加上要編程單元的地址信號。(2)在數據線上加上要寫入的數據字節。(3)激活相應的控制信號。(4)在高電壓編程方式時,將EAVpp加上+12V編程電壓。(5)每對FLASH存儲陣列寫入一個字節,加上一個ALEPROG編程脈沖。改變編程電源的地址和寫入一個字節,重復1-5步驟,直到全部文件編程結束。每個字節寫入周期是自身定時的,通常約為1.5ms。AT89C51的極限參數:工作溫度: -55to+125;儲藏溫度:-60to+150;

27、任一引腳對地電壓:-1.0to+7.0;最高工作電壓:6.6V;直流輸出電壓:15.0mA。模數轉換部分的設計隨著半導體技術數字化和集成化的日益調高,在推動微控制器、數字信號處理器、微機械電子系統的發展中,也推動了嵌入或隱形模數AD轉換技術的發展,AD轉換技術在變得越來越復雜的同時,也正朝著高精度、高速度的發展方向邁進。由于數字信號處理技術在圖形、視頻、無線通訊的廣泛應用,對高速高精度的CMOS工藝的模數轉換器的要求日益迫切。AD轉換器的種類繁多,工作原理各異,但逐次比較型AD轉換器是應用較多的類型之一,其原因是該類型的AD轉換器轉換速度快、精度高。因此本次設計選用一款逐次比較型AD轉換器AD

28、C0809.被采樣的電壓、電流信號分兩路進入ADC0809進行模數轉換,寫信號WR和P2.7控制ADC0809的地址鎖存和轉換器,即當START上跳沿時,所有內部寄存器清零;下調沿時,開始進行AD轉換,在轉換期間,START應保持低電平。EOC通過非門連接到AT89C51的INTO腳,可通過查詢方式來檢測轉換是否完成。當EOC為高電平時,表明轉換結束,否者表明正在進行AD轉換,即ECO=1時,讀信號RD和P2.7控制的ADC0809的OE信號即控制三條鎖存器向單片機輸出轉換得到的數據。3.2.3 A/D 轉換器概述及單片機接口的一般特點A/D轉換器是一種用來將連續模擬信號轉換成適合于數字處理的

29、二進制數的器件,其工作原理方框圖如圖3-4所示。圖3-4 AD轉換器原理方框圖由圖中可以看出,AD轉換器的輸入有兩種,即模擬輸入信號Vin和參考電壓Vref;其輸出時一組二進制數。可以認為,AD轉換器是一個將模擬信號值編制成對應的二進制碼的編碼器。常用的AD轉換器有:雙積分式、逐位比較式及秉性比較時幾種。如圖3-5所示,一個完整的AD轉換器應該包含這樣的一些輸入、輸出信號。圖3-5 AD轉換器的輸入位置(1) 模擬輸入信號Vin和參考電壓Vref(2) 數字輸出信號(3) 啟動轉換新號,輸入(4) 轉換完成信號或者“忙”信號,輸出(5) 數據輸出允許信號,輸入為了與單片機接口,必須設置圖所示的

30、一些數據輸入接口、狀態輸入接口及控制輸出接口等。首先,單片機通過控制口發出啟動轉換信號,命令AD轉換器開始轉換,肉厚單片機通過狀態讀入轉換器的狀態,并判斷它是否轉換結束。轉換結束,CPU發出數據輸出允許信號,將裝換完成的數據讀入。3.2.4ADC0809簡介圖3-6是 ADC0809內部邏輯結構,圖3-7 ADC0809引腳圖。ADC0809是8位逐次逼近型AD轉換器,它由一個8路模擬開關、一個地址鎖存譯碼器、一個AD轉換器和一個三態輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用AD轉換器進行轉換。三態輸出鎖存器用于鎖存AD轉換完的數字量,當OE端為高電平時,才可以從

31、三態輸出鎖存器取走轉換完的數據。圖3-6 ADC0809內部邏輯結構數字部分定義如下:ADDA、ADDB、ADDC:模擬通道的地址選擇線,輸入。信號單極性,電壓范圍是0V5V,若信號太小,必須進行放大。ALE:地址鎖存允許信號,輸入。由低到高的正跳變有效,此時鎖存地址選擇先的狀態,從而選通相應的模擬通道,一邊進行AD轉換。當ALE線為高電平時,地址鎖存與譯碼器將A、B、C三條地址線的地址信號進行鎖存,經譯碼后被選中的通道模擬量進轉換器進行轉換。A、B、C為地址輸入線,用于選通IN0IN7的一路模擬量輸入。通道選擇表如表3-3所示。圖3-7 ADC0809引腳圖表3-3通道選擇表CBA選擇的通道

32、000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7INOIN7:8條模擬量輸入通道。2-12-8:8位數量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。ALE:地址鎖存允許信號,輸入,高電平有效。START: AD轉換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復位,下降沿啟動AD轉換)。EOC: AD轉換結束信號,輸出,當AD轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。OE:數據輸出允許信號,輸入,高電平有效。當AD轉換結束時,此端輸入一個高電平,才能打開輸出三

33、態門,輸出數字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。REF(+)、REF(-):基準電壓。Vcc:電源,單一5V。GND:地。ADC0809的工作過程:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 AD轉換,之后EOC輸出信號變低,指示轉換正在進行。直到AD轉換完成,EOC變為高電平,指示AD轉換結束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態門打開,轉換結果的數字量輸出到數據總線上3.3 鍵盤輸入部分3.3.1 矩陣式鍵盤在鍵盤中按鍵數

34、量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成4*4= 16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數越多,區別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。 矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的 I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸出

35、端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態就可得知是否有鍵按下了。3.3.2獨立式鍵盤獨立式按鍵就是各按鍵相互獨立,每個按鍵各接入一根輸入線,一根輸入線上的安檢工作狀態不會影響其他輸入線的工作狀態。因此,通過檢測輸入線的電平狀態可以很容易判斷哪個按鍵按下了。獨立式按鍵電路配置靈活,軟件簡單,但每個按鍵需要占用一個輸入口線,在按鍵數量較多時,需要較多的輸入口線且電路結構復雜,故此種鍵盤適用于按鍵較少或操作速度較高的場合。在此系統中,查看電壓、電流只需要兩個按鍵,比較簡單,所以就采用獨立式按鍵接口電路。3.3.3LED顯示部分LED顯

36、示屏是二十世紀八十年代后期在全球迅速發展起來的新型信息顯示媒體。它具有可靠性高、使用壽命長、性能價格比較高等特點。在單片機應用系統中,如果需要顯示的內容只有數碼和某些字母,使用LED數碼管是一種較好的選擇。LED數碼顯示清晰、成本低廉,配置靈猴,與單片機接口簡單易行。LED數碼管是有發光二極管作為顯示字段的數碼型顯示器件,其中七只發光二極管分別對應ag筆端構成“日”字形,另一個發光二極管Dp作為小數點。因此這種LED顯示器被稱為七段數碼管或八段數碼管。圖3-9 數碼管LED顯示器是由N各LED顯示塊拼接成N個LED顯示器。N個LED顯示塊有NG根位選線,根據顯示方式的不同,位選線和段選線的連接

37、方法也不同。段選線控制顯示字符的字形,而位選線為各個LED顯示塊的公共端,它控制該LED顯示位的亮、暗。LED顯示器有動態顯示和靜態顯示兩種顯示方式。3.4LED的動態顯示方式在多位LED顯示時,為了簡化硬件電路,通常將所有位的段選線相應的并聯在一起,有一個8位I/O控制,形成段選線的多路復用。而各位的共陽極或共陰極分別由相應的I/O線控制,實現各位的分時選通。其中段選線占用一個8位I/O口,而位選段占用一個4位I/O口。由于各位的段選線并聯,段碼的輸出對各位來說都是相同的,因此,同一時刻,如果各位位選線都處于選通狀態的話,4位LED將顯示相同的字符。若要將各位LED能夠顯示出與本位相應的顯示

38、字符,就必須采用掃描顯示方式,即在某一時刻,只讓某一位的位選線狀態,而其他各位的位選線處于關閉狀態,同時段選線上輸出相應位要顯示字節的段碼。在確定LED不同位顯示的時間間隔,不能太短,因為發光二極管從導通到發光有一定的延遲,導通時間太短,發光太弱人眼無法看清。但也不能太長,因為畢竟要受限于臨界閃爍頻率,而且此時間越長,占用CPU時間也越多,另外,顯示位增多,也將占用大量的CPU時間,因此動態顯示實質是以犧牲CPU時間換取元就愛你的減少。3.4.1LED靜態顯示方式 LED顯示器工作于靜態顯示方式時,各位的共陰極或共陽極連接在一起并接地(或+5V);每位的段選碼(adp)分別與一個8位的鎖存器輸

39、出相連,所以稱為靜態顯示。各個LED的顯示字符一經確定,相應鎖存器的輸出將維持不變,知道顯示另一個字符為止。也正因為如此,靜態顯示器的亮度都較高。這種顯示方式接口編程容易,付出的代價是占用口線較多,若用IO接口,則要占用4個8位口,若用鎖存器接口,則要4片7HC595芯片。如果顯示器位數較多,則靜態顯示方式更是無法適應,因此在顯示位數較多的情況下,一般都采用動態顯示方式。由于本系統只涉及到4位顯示輸出,就采用了4片8位移位寄存器串級使用的LED靜態顯示方式。3.4.2 74HC595簡介3-10 74HC595引腳圖74HC595內含有8位串入、串并出移位寄存器和8位三態輸出鎖存器。寄存器和鎖

40、存器分別由各自的時鐘輸入SRCK和RCK,都是上升沿有效。當SRCK從低到高電平跳變時,串行輸入數據SER移入寄存器;當SCR從低到高電平只對寄存器的數據置入鎖存器。清除端SRCLR的低電平只對寄存器復位QH1為低電平,而對鎖存器無影響。當輸出允許控制G為高電平時,并行輸出QSQH為高阻態,而串行輸出QH1不受影響。74HC595最多需要5根控制線,即SER、SRCK、RCK、SRCLR和G。其中SRCLR可以直接接到高電平,用軟件實現寄存器清零;如果不需要軟件改變亮度,G可以直接接到低電平,而用硬件來改變亮度。把其他三根線和單片機的IO口相接,即可實現LED控制。數據從SER口送入74HC5

41、95,在每個SRCK的上升沿,SER口上的數據移入寄存器,在SRCK的第9個上升沿,數據開始從QH1移出。如果把第一個74HC595的QH1和第二個74HC595的SER相接,數據即移入第二個74HC595中,照此一個一個接下去,可接任意多個。數據全部送完后,給RCK一個上升沿,寄存器中的數據即置入鎖存器。此時如果G為低電平,數據即從并口QAQH輸出,把QSQH與LED的8段相接。LED就可以實現顯示了。3.4.3鍵盤及顯示電路3-11 鍵盤及顯示電路4 軟件系統設計4.1C語言簡介 C語言是近年來在國內外普遍使用的一種程序設計語言。C語言功能豐富,表達能力強應用廣,既有高級語言的特點,也有匯

42、編語言的特點。C是中級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元。 C是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環、條件語句控制程序流向,從而使程序完全結構化。C語言功能齊全。具有各種各樣的數據類型,并引入了指針概念,可使程序效率更高。另外C語言也具有強大的圖形功能,支持多種顯示器和驅動器。而且計算功能、邏輯判

43、斷功能也比較強大。4.2 主程序流程圖圖4-1 主程序流程圖4.3按鍵程序流程圖在本系統中,有查看電壓或電流的功能,由兩個按鍵KEY1和KEY2控制。首先要判斷是否有減按下,如果的確有鍵按下,例如KEY1,選通模擬通道,單片機通過P2.7口發出啟動轉換信號ADC0809,轉換結束,將數據從ADC0809中讀取送入AT89C51單片機中進行標度轉換和拆數等運算,并顯示于LED數碼管。標度轉換的目的是要把實際采樣的二進制轉換成BCD形式的電量值,然后存放到顯示緩沖區。一般按鍵在按下的時候有抖動的問題,即鍵的簧片會有輕微的彈跳,需要經過一個短暫的時間才會可靠的接觸。若在簧片抖動時驚醒掃描就可能得到不

44、正確的結果。因此,在程序中需要考慮到防抖動的問題。最簡單的辦法是在檢測到有鍵按下時,延時一段時間再次檢測看是否有鍵按下,這個可以通過調用子程序來解決。圖4-2 按鍵程序流程圖KEY1和KEY2子程序流程圖如圖4-3所示。4.4定時器0中斷服務程序設計AT89C51內部有兩個16位的可編程定時器計數器,T0和T1。定時器實際上是工作在計數方式下 ,只不過對固定平率的脈沖計數,由于脈沖周期也固定,由計數值可以計算出計數時就愛你,有定時的功能。AT89C51的TC是加1計數的。當工作在定時器方式時,對振蕩源12分頻的脈沖計數,即每個機器周期計數值加1,計數速率112fosc,當fosc=12MHz時

45、,計數速率=1000KHz,即計數器每加1用時1us。圖4-3KEY1和KEY2子程序流程圖TC的方式控制寄存器TMOD用來編程定時器計數器的工作方式。表4-1 方式寄存器TMOD各位功能位名稱功能D7GATE定時器/計數器T1門控制D6C/定時器/計數器T1功能選擇位;C/=1計數器,C/=0定時器D5M1定時器/計數器T1方式選擇位D4M0定時器/計數器T1方式選擇位D3GATE定時器/計數器T0門控制D2C/定時器/計數器T0功能選擇位;C/=1為計數器,C/=0為定時器D1M1定時器計數器T0方式選擇位D0M0定時器計數器T0凡是選擇位表4-2 定時器計數器T0、T1的四種工作方式M1

46、 MO方式功能0 00為12位定時器計數器,TL存低5位,TH存高8位0 11為16位定時器計數器1 02常數自動裝入8位定時器計數器1 13僅適用于T0,兩個8位定時器計數器適用于定時器計數器前,應對它進行標稱初始化,在本系統中,適用定時器T0,工作方式1,計算T0的初值,定時2S顯示,如果到2S顯示電壓值,否則顯示電流值。流程圖如圖4-4所示。4.5 A/D轉換程序設計 被采樣的電壓、電流信號分兩路進入ADC0809進行模數轉換,寫信號WR和P2.7控制ADC0809的地址鎖存器和轉換器,即當START上跳沿時,所有內部寄存器清零;下跳沿時,開始進行AD轉換,在轉換期間,START應保持低

47、電平。轉換完成后,讀信號RD和P2.7共同控制的ADC0809的OE信號即控制三條輸出鎖存器單片機輸出轉換得到的數據。流程圖如圖4-5所示。圖4-4 定時器0中斷流程圖圖4-5 A/D轉換流程圖結束語我做的基于單片機的電量檢測系統畢業設計完成了,基本上達到了預期的目的。當初拿到這個題目的時候都不知道怎么入手,但在老師的指導下,自己找資料、看書,總算完成了。通過此次的畢業設計,使我對單片機有了更深一層的了解,從理論和實踐我都得到了很大的提高,所以這次任務的完成使我學到了很多知識。首先,豐富了自己的知識面,學通了以前沒學通的東西,具體了解了怎么去完成一個電路的設計。在此次的設計中,學到了單片機AT

48、89C51的內部結構及工作原理,了解了時鐘電路和控制電路的工作原理,還有共陽極數碼管的工作原理,同時也提高了我的C語言使用能力,并且挺高了自己分析問題和解決問題的能力,有了理論聯系實際的機會,為以后從事這個方面的工作打好了基礎,這也是這次畢業設計的最大收獲。這次的畢業設計總的來說還是比較成功的,能夠實現電壓、電壓交替顯示,如果單獨查看電壓或電流,可以通過安檢控制查看電壓或電流,但是還是有許多不足之處,不過的確從中學到了很多,也發現了自己的很多問題,為自己以后的學習、進步打下了不錯的基礎。致謝歷時四個月的畢業設計已經告一段落,進過自己不斷的搜索努力以及吳老師的耐心指導和熱情幫局,本設計已經完成。

49、在這段時間里面,吳老師嚴謹的治學態度和熱忱的工作作風使我十分佩服,她的知道使我也受益匪淺,同組的同學也給我了我極大的幫助,在此對幫助我的老師和同學表示深深的感謝。通過這次的畢業設計,讓我深刻的認識到專業知識的重要性,也理解了理論聯系實際的含義,并且檢驗了大學四年的學習成果。雖然在這次設計中對于知識的運用和銜接不夠熟練,但是我將在以后的工作和學習中繼續努力、不斷完善,這四個月的設計是對過去所學知識的系統提高和擴充的過徹骨,為以后的發展打下了良好的基礎。由于自身水平有限,設計中的不足之處。敬請各位老師批評指導。參考文獻1 張毅民,彭喜元.MCS51單片機應用技術M.哈爾濱工業大學出版社,2003.

50、72 何立民. MCS51單片機應用系統設計M.北京航空航天大學出版社,1998.73 徐愛軍. 單片機高級語言C51應用程序設計M.電子工業出版社,1997.74 李華. MCS51系列單片機實用接口技術M北京航空航天大學出版社,1993.35 王福瑞.單片機微機測控系統設計大全M北京航天航空大學出版社,2000.56 廖忠. 單片機對交流電量直接采樣測試的實現J南昌水專學報,1995.27 詹新生,張江偉.基于AT89C51的數控直流電壓源的設計J現代電子技術,2008.18 楊妍,孫震,蘇為均.基于AT89C51的雙路智能測控儀的設計與實現J.北京工商大學學報,2007.79 林添成,赫魏東,徐健等.基于AT89C51的電量測量儀設計J.中國科技信息,2007.1210 趙負圖. 傳感器集成電路手冊M.化學工業出版社.2002.411 袁衛華.多電量參數檢測用點偏激系統

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論