數字式可調直流穩壓電源的設計_第1頁
數字式可調直流穩壓電源的設計_第2頁
數字式可調直流穩壓電源的設計_第3頁
數字式可調直流穩壓電源的設計_第4頁
數字式可調直流穩壓電源的設計_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、數字式可調穩壓電源的設計與制作4摘 要單片機實現的數字可調穩壓電源由于原理簡單、穩定性好、精度高、成本低、易實現等諸多優點而受到越來越廣泛的重視。通過對數字可調穩壓電源系統的設計,詳細介紹了AT89C52 單片機及鍵盤掃描原理、數碼管動態顯示原理、定時中斷原理,從而了解單片機相關指令在各方面的應用,同時還介紹了數模轉換芯片DAC0832的工作原理。系統由輔助電源、輸入鍵盤電路、單片機控制電路、數模轉換電路、輸出穩壓電路、顯示電路等構成,能輸出5V15V電壓,步進值為0.1V和1V。本文采用單片機和其他元件及外圍電路,開發一個數字式可調直流穩壓電源,能夠設定輸出電壓值,電壓輸出和顯示。關鍵詞:單

2、片機;直流穩壓;數字控制; D/A轉換AbstractSingle chip implementation of digital adjustable regulated power supply because of its simple principle, good stability, high precision, low cost, easy to implement, and many other advantages by more and more widely attention. Through to the digital adjustable regulated po

3、wer supply system design, detailed introduces the single-chip microcomputer AT89C52 and keyboard scanning principle, dynamic display of digital tube principle, timing interrupt principle, to understand SCM related instruction in all aspects of the application, at the same time also introduced DAC083

4、2 d/a conversion chip works. System consists of auxiliary power supply, keyboard input circuit, single-chip microcomputer control circuit, d/a conversion circuit, output voltage regulation circuit, display circuit and so on, can output 5 V to 15 V voltage, the step value of 0.1 V and 1 V. Using micr

5、ocontroller and other components and peripheral circuit, this paper developed a digital adjustable dc regulated power supply, can set the output voltage, output voltage and display.Keywords: Single chip microcomputer; Dc voltage; Digital control; D/A conversion目 錄1 緒論11.1 數字可調穩壓電源的背景及意義11.2 數字式可調穩壓電

6、源的研究現狀及發展趨勢11.3課題研究內容22 方案設計42.1設計原理42.2 方案設計及論證42.2.1 方案一42.2.2 方案二52.3 方案比較選擇62.4 主要元件介紹62.4.1 AT89C5262.4.2 DAC083283 數字式可調穩壓電路設計103.1系統設計103.2 單元電路的設計103.2.1單片機主體電路103.2.2 穩壓電源電路113.2.3矩陣鍵盤電路123.2.4 數碼管顯示部分電路143.2.5 DAC0832數模轉換部分電路153.2.6 輸出電壓控制單元電路153.2. 晶振及復位電路164 數字式可調穩壓電源軟件設計184.1 系統軟件流程圖184

7、.2 系統程序介紹194.2.1 初始化硬件程序194.2.2 鍵盤掃描程序204.2.3 鍵盤服務程序214.2.4 數碼顯示程序225 電路仿真236 結論24參考文獻25致 謝27附錄28IV電梯是集機械原理應用、電氣控制技術、微處理器技術、系統工程學等多學科和技術分支于一體的機電設備,它是建筑中的永久垂直交通工具。本文選擇STC89C52RC為核心控制元件,設計了一個八層電梯系統,使用單片機匯編語言進行編程,實現運送乘客到任意樓層,并且顯示電梯的樓層和上下行。利用單片機控制電梯有成本低,通用性強,靈活性大及易于實現復雜控制等優點。 此單片機模擬電梯用紅色發光二極管組成的箭頭來

8、指示電梯當前是處于上升狀態還是下降狀態,用數碼管顯示當前是處于哪一層,用綠色發光二極管指示電梯走到哪一層會停.電源接通后,若沒有人按下停止按鍵,它就以每層2秒的速度一直上下運行,若有人按下某一層的停止按鍵,它就會在相應的那一層停止4秒鐘,并伴有開門和關門的聲音提示。1緒論1.1 數字可調穩壓電源的背景及意義電源技術是一門實踐性很強的工程技術,服務于各行各業。電力電子技術是電能的最佳應用技術之一。當今電源技術融合了電氣、電子、系統集成、控制理論、材料等諸多學科領域。隨著計算機和通訊技術發展而帶來的現代信息技術革命,給電力電子技術提供了廣闊的發展前景,同時也給電源技術提出了更高的要求。目前在電力電

9、子器件方面,幾乎都為旋紐開關調節電壓,調節精度不高,而且經常跳變,使用麻煩。數字化智能電源模塊是針對傳統智能電源模塊的不足提出的,數字化能夠減少生產過程中的不確定因素和人為參與的環節,有效地解決電源模塊中諸如可靠性、智能化和產品一致性等工程問題,極大地提高生產效率和產品的可維護性。對我們學生而言,在大學的實驗室和課程設計里,有一個穩定可調的直流穩壓電源是很有必要的。因傳統的直流穩壓電源輸出電壓是通過粗調波段開關及細調電位器來調節的,并由電壓表指示電壓值的大小。這種直流穩壓電源存在讀數不直觀、電位器易磨損、穩壓精度不高、不易調準、電路構成復雜、體積大等缺點,而基于單片機控制的數字可調穩壓電源能較

10、好地解決以上問題。本題采用單片機和其它元器件及外圍電路,開發一個數字式可調穩壓電源。能夠設定輸出電壓值、電壓值輸出顯示等功能。通過此系統的設計,也讓本人更深刻的掌握單片機基本原理,并熟悉一些外圍電路的擴展,以及進一步提高對C語言的軟件編程能力。1.2 數字式可調穩壓電源的研究現狀及發展趨勢電力電子技術已發展成為一門完整的、自成體系的高科技技術,電源技術屬于電力電子技術的范疇。電源技術主要是為信息產業服務的,信息技術的發展又對電源技術提出了更高的要求,從而促進了電源技術的發展,兩者相輔相成才有了現今蓬勃發展的信息產業和電源產業。迄今為止,電源已成為非常重要的基礎科技和產業,并廣泛應用于各行業,從

11、日常生活到最尖端的科學都離不開電源技術的參與和支持,其發展趨勢為高頻、高效、高密度化,低壓、大電流化和多元化。同時,封裝結構、外形尺寸日趨接近國際標準化,以適應全球一體化市場的要求。當前在國內外電源產業中,占主導地位的產品有各種線性穩壓電源、通訊用的AC/DC開關電源、交流變頻調速電源、電解電鍍電源、高頻逆變式整流焊接電源、中頻感應加熱電源、電力操作電源、正弦波逆變電源、UPS、可靠高效低污染的光伏逆變電源、風光互補型電源等。而產品價格、性能指標、品牌效應及使用壽命一直是用戶最關心的問題。這就促使國內外電源生產商朝著應用技術數字化、硬件結構模塊化、產品性能綠色化、智能化的方向發展。數字化:在傳

12、統直流穩壓電源中,控制部分是按模擬信號來設計和工作的。在六、七十年代,電力電子技術完全是建立在模擬電路基礎上的。但是現在數字式信號、數字電路顯得越來越重要,數字信號處理技術日趨完善成熟,顯示出越來越多的優點:便于計算機處理控制、避免模擬信號的畸變失真、減小雜散信號的干擾(提高抗干擾能力)、便于軟件包調試和遙感遙測遙調,也便于自診斷、容錯等技術的植入。模塊化:電源的模塊化有兩方面的含義,其一是指功率器件的模塊化;其二是指電源單元的模塊化。模塊化的目的不僅在于使用方便,縮小整機體積,更重要的是取消傳統連線,把寄生參數降到最小,從而把器件承受的電應力降至最低,提高系統的可靠性。大功率的電源,由于器件

13、容量的限制和增加冗余、提高可靠性方面的考慮,一般采用多個獨立的模塊單元并聯工作,采用均流技術,所有模塊共同分擔負載電流,一旦其中某個模塊失效,其它模塊再平均分擔負載電流,極大的提高系統可靠性,即使萬一出現單模塊故障,也不會影響系統的正常工作。綠色化:電源系統的綠色化有兩層含義:首先是顯著節電,這意味著發電容量的節約,而發電是造成環境污染的重要原因,所以節電就可以減少對環境的污染;其次這些電源不能(或少)對電網產生污染,國際電工委員會(IEC) 對此制定了一系列標準,如IEC555,IEC917,IEC1000等。20世紀末,各種有源濾波器和有源補償器的方案誕生,為21世紀批量生產各種綠色直流穩

14、壓電源產品奠定了基礎。1.3 課題研究內容本系統研究的直流穩壓電源主要是符合智能化、數字化以及模塊化的特點。主要是指系統有可編程模塊可以對系統進行智能控制。數字化主要是指系統輸出電壓通過7段數碼管顯示,并且可以通過按鍵對輸出電壓進行連續步進數字化調節。模塊化是指系統由各個相關模塊組成,提高了系統的穩定性以及可靠性。 本論文總體概括了數字顯示可調穩壓電源的設計原理,介紹了穩壓電源的硬件電路設計。在各章節中,突出講述了各功能模塊的設計思路,具體設計情況,以及模塊之間的聯系。本系統主要研究數字顯示可調穩壓電源如何實現整流、濾波、穩壓和輸出電壓顯示,也包含一些必要的硬件設計和軟件設計。2 方案論證數字

15、可調穩壓電源可通過多種方案實現,本文著重介紹了兩種比較常用的方法,并進行比較和選擇其中一種最適合的方案。一種是用單片機作為數控部分帶動數模轉換芯片提供線性穩壓電壓的參考電壓,另一種是AVR單片機的PWM模擬輸出。2.1 方案設計及論證2.1.1 方案一使用AT89C52單片機為核心控制器件,利用4×4鍵盤輸入數字量,經過單片處理后將數字量送入數碼管顯示部分和DAC0832輸出模擬量,然后經過運算放大器轉換成電壓信號后進行隔離放大,再穩壓輸出。其原理框圖如圖2.1所示:AT89C52LED顯示模塊DA轉換模塊穩壓輸出模塊矩陣鍵盤模塊電源模塊圖2.1 方案一的原理框圖2.1.2 方案二數

16、控部分用AVR單片機的PWM組成開關電源,再利用AVR的AD轉換對輸出電壓進行實時轉換,利用軟件進行電壓調整以達到穩壓。其原理框圖如圖2.2所示:LCD液晶顯示PWM模擬電壓輸出電壓放大電路濾波電路單片機電路鍵盤電路AD采樣圖2.2 方案二的原理框圖2.2 方案比較選擇方案一:優點:對于單片機,系統工作在開環狀態,對數模轉換的精度要求較高,設計成本低。缺點:功耗較大,LED數碼管輸出顯示不是系統的精確輸出電壓,須對它進行軟件補償。方案二:優點:硬件簡單,穩壓的大部分工作由軟件完成,對單片機的運行速度要求很高,利用手頭的ATmaga16L單片機最高8MHz工作頻率很難達到速度要求。對軟件要求較高

17、,功耗小。缺點:輸出紋波電壓較大,對硬件的要求很高。方案二簡單的電路結構起初對設計者很吸引,但是后來了解到AVR單片機的PWM的精度用于開關電源比較勉強,而且開關電源有個通病:紋波電壓大,考慮到設計目標對電源的功耗要求不是很嚴,同時為了保證紋波足夠小也鑒于自身對于52單片機和線性電源較為熟練,故選擇方案一。2.3 主要元件介紹2.3.1 AT89C52 AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指

18、令系統,片內置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業中有著廣泛的應用。功能特性:1、兼容MCS51指令系統2、8kB可反復擦寫(大于1000次)Flash ROM;3、32個雙向I/O口;4、256x8bit內部RAM;5、3個16位可編程定時/計數器中斷;6、時鐘頻率0-24MHz;7、2個串行中斷,可編程UART串行通道;8、2個外部中斷源,共8個中斷源;,數控直流穩壓電源的工作原理框圖如圖1所示。主要包括三大部分:數字控制部分、數字/模擬轉換部分(D/A變換器)及穩壓電路。數字控制部分用+、- 按鍵控制一可逆二進制計數器,二進制計數器的輸出輸入到D/A變換

19、器,經D/A器轉換成相應的電壓,此電壓經過放大到合適的電壓值后,去控制穩壓電源的輸出,使穩壓電源的輸出電壓以0.1V的步進值增或減。9、2個讀寫中斷口線,3級加密位;10、低功耗空閑和掉電模式,軟件設置睡眠和喚醒功能;11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應不同產品的需求。AT89C52提供以下標準功能:8k字節可重擦寫Flash閃速存儲器、256字節內部RAM、32個可編程I/O口線、3個16位定時/計數器、一個六向量兩級中斷結構、一個全雙工串行通信口、片內振蕩器及時鐘電路。同時,AT89C52可降至0Hz的靜態邏輯操作,并支持兩種軟件可選的節電工作模式。空閑方式

20、停止CPU的工作,但允許RAM,定時/計數器,串行通信口及中斷系統繼續工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其他所有部件工作直到下一個硬件復位。AT89C52引腳如圖2.3所示。 圖2.3 AT89C52管腳圖AT89C52單片機引腳介紹:1 主電源引腳和。電源輸入端,(GND)公用接地端。2 時鐘電路引腳XATL1和XATL2分別用作晶體振蕩電路的反相器輸入端和輸出端。在使用外部振蕩電路時,這兩個端子用來外接石英晶體,這個部分給單片機提供工作節拍,可稱為單片機的主頻。3 控制信號引腳,和。由于單片機的很多引腳的使用方法相同,所以常把引腳分為控制總線、地址總線和數據總線。總線

21、是指一類在使用方法上功能相同的引腳。這里講到得4條引腳可看成是單片機的控制總線。4 4個8位I/O端口:P0、P1、P2和P3。P0口第一功能是一個8位漏極開路型的雙向I/O口這時P0口可看成是用戶數據總線,第二功能是在訪問外部存儲器時,分別提供低8位地址和8位雙向數據總線。P1口是一個內部帶上拉電阻的8位準雙向I/O口。P2口第一功能是內部帶上拉電阻的8位準雙向I/O口(使用前有一個準備動作),第二功能是在訪問外部存儲器時,輸出高8位地址。P3口第一功能是一個內部帶上拉電阻的8位準雙向I/O口。在系統中,這8個引腳都有各自的第二功能。2.3.2 DAC0832DAC0832是8位D/A芯片,

22、與DAC0830、DAC0831同屬于DAC0830系列D/A芯片,是美國國家半導體公司的產品,可以適應一般的模擬量轉換要求。其內部電源輸入與參考電壓的復用,使得芯片的模擬電壓輸入05V之間,芯片轉換時間僅為32us,使多器件掛接和處理器制變的更加方便。通過DI數據輸入端,可以輕易的實現通道功能的選擇。圖2.4 DAC0832引腳及內部電路圖DAC0832引腳功能:1.DI0DI7:8位數據輸入端; 2. ILE:輸入數據允許鎖存信號,高電平有效; 3. /CS:片選端,低電平有效; 4. /WR1:輸入寄存器寫選通信號,低電平有效; /WR2:DAC寄存器寫選通信號,低電平有效; 5. /X

23、FER:數據傳送信號,低電平有效; 6. I OUT1 、I OUT2 :電流輸出端。當輸入數據全為0時,I OUT1 =0;當輸入信號全為1時,I OUT1 為最大值,I OUT1 + I OUT2 =常數; 7. R FB :反饋電流輸入端; 8. U REF :基準電壓輸入端; 9. V CC :正電源端;AGND:模擬地;DGND:數字地。3 數字式可調穩壓電源硬件電路設計本設計采用AT89C52單片機作為整機的控制單元,利用4×4鍵盤輸入數字量,通過控制單元輸出數字信號,再經過D/A轉換器(DA0832)輸出模擬量,最后經過運算放大器隔離放大,控制輸出功率管的基極,隨著輸出

24、功率管的基極電壓的變化,間接地改變輸出電壓的大小。3.1 單片機主體電路圖3.1 單片機主體接口部分電路為了避免畫出的原理圖繁雜,畫圖時統一使用網絡標號,如圖中3.1所示:單片機的P0口即LEDA至LEDP作為LED數碼管的顯示輸出端口,接數碼管的八個段選端口,由于單片機的P0口內部沒有上拉電阻,所以使用時需要在外部為其加上上拉電阻,P2.5至P2.7三個I/O口即LED3至LED1分別接三個數碼管的位選端口;單片機的P3口接4×4矩陣鍵盤,用來對輸出電壓進行控制;單片機的P1口與DAC0832的八位數碼輸入端連接,用來輸出數字量信號,XATL1和XATL2接晶振部分電路;RST位復

25、位電路接口。3.2 穩壓電源電路直流穩壓電源由電源變壓器T、整流、濾波和穩壓電路四部分組成,其原理框圖如圖3.2所示。電網供給的交流電壓u1(220V,50Hz) 經電源變壓器降壓后,得到符合電路需要的交流電壓u2,然后由整流電路變換成方向不變、大小隨時間變化的脈動電壓u3,再用濾波器濾去其交流分量,就可得到比較平直的直流電壓uI。但這樣的直流輸出電壓,還會隨交流電網電壓的波動或負載的變動而變化。在對直流供電要求較高的場合,還需要使用穩壓電路,以保證輸出直流電壓更加穩定。圖3.2 直流穩壓電源框圖其中:(1)電源變壓器:是降壓變壓器,它將電網220V交流電壓變換成符合需要的交流電壓,并送給整流

26、電路,變壓器的變比由變壓器的副邊電壓確定。(2)整流電路:利用單向導電元件,把50Hz的正弦交流電變換成脈動的直流電。(3)濾波電路:可以將整流電路輸出電壓中的交流成分大部分加以濾除,從而得到比較平滑的直流電壓。(4)穩壓電路:穩壓電路的功能是使輸出的直流電壓穩定,不隨交流電網電壓和負載的變化而變化。所以通過220V的交流電壓由變電器轉化所直流電壓,然后通過5408進行整波,通過50v的2200UF的電容進行濾波,然后通過7815和7915轉化成+15V和-15V,+15V又通過整波,濾波后通過7805轉化成+5V。這是電源部分如下:圖3.3 穩壓電源電路3.3矩陣鍵盤電路在本系統中使用4&#

27、215;4矩陣鍵盤來實現輸出電壓值的設定其硬件電路及功能如圖3.4所示。每個按鍵的名稱圖中也已經標明,在程序中對鍵盤進行掃描后會取出一個數值,根據取出的數值就可以判斷被按下的是哪一個按鍵,然后跳入相應的鍵盤服務程序,其硬件電路如圖3.4所示:圖3.4 矩陣鍵盤電路4×4矩陣鍵盤在軟件設計中實現的功能如下: 按設置鍵開始設定電壓,數碼管不顯示,依次對十位、個位、十分位進行設置,每輸入一個有效按鍵數碼管亮一位,輸入錯誤按設置鍵可重新開始,按下確認鍵后電壓輸出。 在正常情況下即沒有按下設置鍵時按數字鍵無效,但是可以直接按步進鍵對輸出電壓進行設置,設置完仍要按下確認鍵才能將設置的電壓值輸出。

28、矩陣式鍵盤掃描原理:鍵盤是由若干按鍵所組成的開關矩陣,它是微型計算機最常用的輸入設備,用戶可以通過鍵盤向計算機輸入指令,地址和數據。通常單片機系統采用非編碼鍵盤。非編碼鍵盤通過軟件來識別鍵盤上的閉合鍵,它具有結構簡單、使用靈活等特點,因此被廣泛應用于單片機系統。組成鍵盤的按鍵有觸點式和非觸點式兩種,單片機中的按鍵一般由機械觸點構成。按鍵的讀取容易引起誤操作,抖動時間的長短由按鍵的機械特性決定,一般為510ms,為了使CPU能正確讀出口線的狀態,對于每一次按鍵只做一次響應,這就必須考慮如何去抖動。常用的去抖動方法有兩種:硬件法和軟件法,單片機通常采用軟件法去抖動。由于鍵盤的觸點在閉合和斷開的時候

29、會產生抖動,這時觸點的邏輯電平是不穩定的,如不采取妥善處理的話,將引起按鍵命令錯誤或重復執行,在這里采用軟件延時的方法來避開抖動,延時時間10ms.4×4矩陣式鍵盤(如圖3.4)的按鍵識別方法:行掃描法又稱逐行掃描查詢法,是一種常用的按鍵識別方法,其過程如下:為判斷鍵盤是否有鍵按下,將全部列線置為低電平,全部行線置為高電平,然后讀行線的狀態。只要有一行的電平為低電平,則表明鍵盤中有按鍵按下。然后依次將行線置為低電平,即在置某根行線為低電平時,其它行線為高電平。在確定某根行線位置為低電平后逐行檢測各列的電平狀態。若某列線為低電平,則該列線與置低電平的行線相交叉處的按鍵就是閉合鍵。3.4

30、 數碼管顯示部分電路本系統中數碼顯示部分采用三位共陽極八段數碼管,5210PNP三極管作為驅動,如圖3.5所示。三個數碼管的段選端即數據輸入端口公用單片機的P0口,采用動態顯示,每次只顯示一個數碼管,具體過程為:先將十位數送到第一個數碼管顯示,延時一段時間后,將個位數送到第二個數碼管顯示,延時一段時間后,將十分位數送到第三個數碼管顯示,延時一段時間后重復執行此過程,只要設置好延時的時間,在一定范圍內人眼是分辨不出三位數碼管是循環顯示的,人眼看到的效果是三個數碼管同時顯示,這樣就達到了動態顯示的效果。這樣做既可以節省單片機的I/O口,又可以節省掉靜態顯示時所用到得鎖存器,使電路看起來更加簡潔。圖

31、3.5 數碼顯示電路3.5 DAC0832數模轉換部分電路本系統中利用通用型數模轉換芯片DAC0832將鍵盤輸入經單片機處理的數字量轉換成模擬量電流,以實現數控功能。DAC0832是一種電流型芯片,前面已經介紹過它的工作原理,在本數字式可調穩壓電源的設計中,由于所處理的數字量較少,所以采用它的直通工作方式,即CS、WR1、IOUT2、AGND、WR2、XFER接地;ILE、VREF接5V電源,它的數據輸入口D0D7分別與單片機的P1.0-P1.7相連,從IOUT1引腳輸出模擬量(電流)接同相比例放大電路。其電路連接如圖3.6所示。圖3.6 DAC0832直通方式連接電路DAC0832有8個輸入

32、端(其中每個輸入端是8位二進制數中的一位),有兩個模擬輸出端.輸入可有256個不同的二進制組態,輸出為256個電壓之一,即輸出電壓不是整個電壓范圍內的任意值,而只能是256個可能值。3.6 輸出電壓控制單元電路 電壓調整電路的工作電路如圖3.7所示。圖3.7 輸出電壓控制單元3.7 晶振及復位電路利用芯片內部的振蕩器,然后再XTAL1和XTAL2兩端跨接晶體振蕩器(簡稱晶振),就構成了穩定的自激振蕩器,發出的脈沖直接送入內部時鐘電路。外界晶振時,C1和C2的值選為20pF。為了減小寄生電容,更好地保證振蕩器穩定、可靠地工作,振蕩器和電容應盡可能安裝得與單片機引腳XATL1與XATL2靠近。晶振

33、電路如圖3.8所示。圖3.8 晶振電路單片機的外部復位電路上有上電自動復位和按鍵手動復位兩種,本系統采用上電加按鍵手動復位方式,其電路圖如圖3.9所示,當復位按鍵按下后,復位端通過小電阻與+5V電源接通,電容迅速放電,使RST引腳為高電平;當復位按鍵彈起后,+5V電源通過大電阻對電容重新充電,RST引腳端出現復位正脈沖,其持續時間取決于RC電路的時間常數。圖3.9 復位電路4 數字式可調穩壓電源軟件設計本系統軟件設計主要實現的功能是:鍵盤對單片機輸入數據,單片機對得到的數據進行處理后送給LED數碼顯示部分,然后再送給DAC0832,以實現數字量對模擬量電壓的控制。軟件部分的主程序主要完成鍵盤的

34、掃描、判斷、處理和電壓值的輸出,而數碼顯示部分主要在中斷處理程序中完成。4.1 系統軟件流程圖圖4.1為主程序流程圖,程序一開始對硬件進行初始化,包括對單片機端口的定義,開中斷及對定時器0進行置初值,然后進入鍵盤判斷程序,首先通過鍵盤掃描判斷是否有按鍵按下,若有按鍵按下則進入鍵盤服務程序,若沒有則繼續多鍵盤進行掃描。 鍵盤服務程序是有按鍵?否初始化硬件程序開始圖4.1 主程序流程圖 另外,程序中還有中斷程序,主要是用于隔一段時間執行一次數碼顯示程序,具體設計將在后面介紹。跟據前面介紹,4×4矩陣鍵盤在軟件設計中實現的功能如下:按設置鍵開始設定電壓,數碼管不顯示,依次對十位、個位、十分

35、位進行設置,每輸入一個有效按鍵數碼管亮一位,輸入錯誤按設置鍵可重新開始,超過515V視為無效操作,按下確認鍵后電壓輸出。在正常情況下即沒有按下設置鍵時按數字鍵無效,但是可以直接按步進鍵對輸出電壓進行設置,設置完仍要按下確認鍵才能將設置的電壓值輸出。4.2 系統程序介紹本系統軟件系統使用C語言編寫。C語言的單片機的應用中,由于其邏輯性強,可讀性好,比匯編語言靈活,目前越來越多的人從普遍使用匯編語言到逐漸使用C語言開發,市場上幾種常見的單片機均有其C語言開發環境。因此,在本系統中,考慮到C語言的這些優點,采用了C語言作為軟件的設計語言。在本文前幾章介紹了數字式可調穩壓電源的原理圖及硬件設計的基礎上

36、,進行軟件部分的設計。本程序包含初始化程序、主程序、鍵盤掃描判斷程序、鍵盤服務程序、數字電壓送數模轉換器程序、數碼管顯示程序、中斷服務程序。下面就如何通過C語言編程實現數控可調作簡要說明。4.2.1 初始化硬件程序初始化硬件包括對單片機端口的定義,對P1口作為數字電壓輸出端口的定義:#define DA P1;對設置標志位的定義:static unsigned char shezhi=0;在沒有按下設置鍵時,標志位shezhi為0,按下設置鍵后shezhi=1。另外還有其他全局變量的定義、子函數的聲明、數碼管字符顯示表格的定義等。在主程序中,初始化程序如下:TMOD=0x11;/初始化定時器T

37、H0=(65536-5000)/256;/對定時器0置初值TL0=(65536-5000)%256;EA=1;/開總中斷ET0=1;/開T0中斷TR0=1;/啟動T0shuchu();/輸出初始電壓定時器0中斷主要用于向數碼顯示部分送數據,由于單片機一直工作于鍵盤掃描程序,故無法在主程序中不斷地將數據送到數碼管,根據數碼管動態顯示原理, 當數碼管在20Hz-50Hz之間顯示時,人眼分辨不出,會認為數碼管一直顯示,所以可以采用中斷的方式,每進入一次中斷,對數碼管進行動態輸出一次,合理的調整時間參數,就會使人眼分辨不出,認為數碼管常亮,定時器0中斷服務程序如下:void disp(void) in

38、terrupt 1 TH0=(65536-25000)/256;/對定時器0重新置初值 TL0=(65536-25000)%256; led();/執行數碼顯示程序 4.2.2 鍵盤掃描程序鍵盤掃描的具體過程為:先將十六進制數0x0f送到P3口,然后判斷P3口是否等于0x0f,若相等則說明沒有按鍵按下,返回繼續掃描,若不相等進入延時,延時10ms后再次進行判斷,若相等則說明這是一次誤判斷或者干擾,返回重新掃描,如果仍然判斷為不相等則說明確實有按鍵按下。然后將十六進制數0xf0送到P3口,然后讀取P3口電平,將兩次讀取的電平相或,就可以得出具體按下的是哪個按鍵,然后執行相關鍵盤服務程序,執行完后

39、再次進入鍵盤掃描狀態,并不斷重復這些操作。以下是鍵盤掃描程序: unsigned char X,Y,Z; while(Y=key_point);/判斷按鍵是否松開 key_point=0x0f;/對P3置數,行掃描 if(key_point!=0x0f)/判斷是否有按鍵按下 delay10ms();/延時,去抖動 if(key_point!=0x0f)/確認有按鍵按下 X=key_point;/保存行掃描數值 key_point=0xf0;/對P3置數,列掃描 Y=key_point;/保存列掃描數值 Z=X|Y;/取鍵盤掃描值 else Z=0;/無按鍵時對鍵盤掃描值置0 4.2.3 鍵盤服

40、務程序鍵盤服務程序包括:數字鍵程序、步進加1程序、步進減1程序、步進加0.1程序、步進減0.1程序、設置鍵處理程序、確認輸出程序。由于數碼管需要分別顯示十位、個位、十分位三個數,而送到DA轉換模塊的是一個數,所以就必須做數值轉換,即把十位、個位、十分位三個獨立的數合為一個可以送到DA模塊輸出的數值。程序上具體的實現方法為:定義num1、num2、num3三個數分別為十位、個位、十分位,定義一個num作為輸出數字電壓,這樣就可以將num1、num2、num3三個數分別顯示在三位數碼管上,將num作為數字電壓輸出到P1口,轉換公式為:num=100*num1+10*num2+num3。在數字鍵服務

41、程序中設置一個標志位,當判斷按下數字鍵是用此標志位來判斷現在輸入的是哪一位。在輸入數字時直接將所輸入的數字賦予當前位,由于本系統輸出電壓范圍為0V-12V,所以當輸入數值當超出范圍時不執行,即按鍵無效,例如在十位輸入大于二的數時按鍵無效。當判斷按下的是步進加減的程序時,如果是加減1則對num2進行加減1,如果是加減0.1,則對num3進行加減1,當然這是在不超出范圍的條件下,這就需要在執行加減前作一下判斷,這里不過多介紹,在程序中會有詳細說明。4.2為4×4鍵盤功能及編碼表。鍵盤號功能編碼鍵盤號功能編碼S110x7eS930xdeS240x7dS1060xddS370x7bS1190

42、xdbS4設置0x77S12確定0xd7S520xbeS13+10xeeS650xbdS14-10xedS780xbbS15+0.10xebS800xb7S16-0.10xe7圖4.2 4×4鍵盤功能及編碼表。4.2.4 數碼顯示程序 數碼管顯示采用動態掃描的方式,每進入一次中斷,掃描顯示一次。具體顯示過程為:當進入中斷程序并執行顯示程序時,先將P2.7口置1,P2.6和P2.5置0,然后將十位數據即num1的字符編碼送到P0口,延時10ms;再將P2.6口置1,其他兩個端口置0,然后將個位數即num2的字符編碼送到P0口,延時10ms;接下來將P2.5口置1,其他兩個端口置0,然后

43、將十分位數即nmu3的字符編碼送到P0口。這里的字符編碼是要數碼管顯示某個數時需要送到數碼管數據輸入端的八位二進制數。在程序中將這些編碼制成表,要輸出時只需查表就可以了,由于個位上要顯示小數點,十位和十分位不顯示小數點,所以個位單獨使用一個表,十位和十分位共用一個表。數字字符編碼為led_010=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; led_110=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; led_0為不帶小數點的字符編碼,led_1為帶小數點的字符編碼。6 結論此次畢業

44、設計,從一開始接到任務書到最后完成整個系統的設計,總體上按要求完成了畢業設計的工作。盡管設計的過程是十分繁瑣、枯燥的,但當領悟到一個個知識點,將問題一一解決時,有無比的成就感,讓自己更加有信心堅持下去。在這方面,我認識到要想做成一件事是不容易的,當中必定有很多的阻力,但是一定要有恒心,細心地認真地找出問題的所在,再一點一點去解決它,這樣,到達成功的彼岸也就僅僅是時間的問題了。這次設計的題目是數字式可調穩壓電源的設計,在參考了很多書籍的情況下,嘗試增加了一些功能,盡管沒有達到所期望的最完善的目的,但也有了一定的突破。數字式可調穩壓電源所牽涉的范圍可以是很大的,它不僅僅具備準確的電壓輸出、顯示功能

45、,讀數直觀、穩壓精度高、電路構成簡單、 體積小等優點,能夠設定輸出電壓值、電壓值輸出顯示等功能。通過此系統的設計,讓我更深刻的掌握單片機基本原理,并熟悉一些外圍電路的擴展,以及進一步提高C語言的硬件編程能力。只要我們勤于思考,刻苦鉆研,就會得到更多的收獲與創新。我想,通過這次設計,特別是通過對硬件的制作而不單單是對原理的論述,我學到的不僅僅是電子方面的知識,更重要的是,我學到了作為一名電子設計者所必需的心理素質,那就是決心加上耐心。參考文獻1 Intel.MCS-51 Family of Single Chip MicrocomputersM.New York: EnglewoodCliffs

46、,1990:1-23. 2童詩白,華成英.模擬電子技術基礎M. 北京:高等教育出版社,2001. 3尹建華,張惠群.微型計算機原理與接口技術M. 北京:高等教育出版社,2003. 4譚浩強,張基溫,唐永炎.C語言程序設計教程M. 北京:高等教育出版社,1992. 5趙文博,劉文濤.單片機程序設計M. 北京:人民郵電出版社,2005. 6劉文濤,單片機語言典型應用設計M. 北京:人民郵電出版社,2005. 7王增福,魏永明.新編線性直流穩壓電源M. 北京:電子工業出版社,2004. 8Keith H.Billings,C.Eng.,M.I.E.E.,SWITCHMODE POWER SUPPLY

47、 HANDBOOKM,HammondManufacturing Company,Ltd,2005. 9 范立南. 單片微型計算機控制系統設計M . 北京:人民郵電出版社,2004. 10蔡明生. 電子設計M . 北京:高等教育教育出版社,2004.11Intel.MCS-51 Family of Single Chip MicrocomputersM.New York: EnglewoodCliffs,1990. 12Intel.8-bit Embedded MicrocontrollersM. New York: Englewood Cliffs,1995.13胡桂陽.用單片機制作直流穩壓可

48、調電源J.電子世界,2005.14肖金球.單片機原理與接口技術M.北京:清華大學出版社,2004.15毛敏.MCS-51系列單片機系統及應用實踐教程M.北京:高等教育出版社,2006. 致 謝本設計是在我的指導老師陳淑靜老師的悉心指導下完成的,她嚴肅的科學態度一直在激勵著我。從題目的選擇到最終完成設計,她都給我細心的指導和不懈的支持。她淵博的知識、開闊的視野和敏銳的思維給了我深深的啟迪。另外,我還要特別感謝一些同學對我的無私幫助,使我得以順利完成論文,在此我衷心地感謝他們。 最后,我要感謝我的父母,同時再次對關心、幫助我的老師和同學們表示衷心地感謝!附錄電路總圖一:電路總圖二: 數字式可調穩壓

49、電源程序:#include "AT89x52.h"#define key_point P3#define disp_point P0#define DA P1#define l1 P2_7#define l2 P2_6#define l3 P2_5void delay10ms(void); void num_key(unsigned char shuma);void key(void);void add1(void);void dec1(void);void add01(void);void dec01(void);void select(void);void shuchu

50、(void);static unsigned char bit_shuma=0;static unsigned char num1=0;static unsigned char num2=5;static unsigned char num3=0;unsigned char shezhi=0; unsigned char led_010=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; unsigned char led_110=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; /主程序/v

51、oid main(void) TMOD=0x11; TH0=(65536-5000)/256; TL0=(65536-5000)%25; EA=1; ET0=1; TR0=1; shuchu(); while(1) key(); /鍵盤掃描程序/void key(void) unsigned char X,Y,Z; while(Y=key_point); key_point=0xff; key_point=0x0f; if(key_point!=0x0f) delay10ms(); if(key_point!=0x0f) X=key_point; key_point=0xf0; Y=key_p

52、oint; Z=X|Y; else Z=0; switch(Z) case 0x00:break;case 0xb7:num_key(0);break; /數字鍵 case 0x7e:num_key(1);break;case 0xbe:num_key(2);break;case 0xde:num_key(3);break;case 0x7d:num_key(4);break;case 0xbd:num_key(5);break;case 0xdd:num_key(6);break;case 0x7b:num_key(7);break;case 0xbb:num_key(8);break;case 0xdb:num_key(9);break;case 0x77:select();break; /設置鍵case 0xd7:shuchu();break; /確認鍵case 0xee:add1();break; /步進加1case 0xed:dec1();break; /步進減1case 0xeb:add01();break; /步進加0.1case 0xe7:dec01();break; /步進減0.1 /數字鍵處理程序/void num

溫馨提示

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

評論

0/150

提交評論