基于單片機(jī)的直流穩(wěn)壓電源畢業(yè)設(shè)計_第1頁
基于單片機(jī)的直流穩(wěn)壓電源畢業(yè)設(shè)計_第2頁
基于單片機(jī)的直流穩(wěn)壓電源畢業(yè)設(shè)計_第3頁
基于單片機(jī)的直流穩(wěn)壓電源畢業(yè)設(shè)計_第4頁
基于單片機(jī)的直流穩(wěn)壓電源畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上畢業(yè)設(shè)計論文任務(wù)書姓名 XXXX 班號 院系 同組姓名 指導(dǎo)教導(dǎo) 一、 課題名稱(論文標(biāo)題)基于單片機(jī)的直流穩(wěn)壓電源二、 課題內(nèi)容本次設(shè)計的課題采用廉價適用型單片機(jī)主控(c8051系列)通過其SPI單元 發(fā)送SPI總線信號控制10位精度DAC產(chǎn)生05V可調(diào)電壓輸出,由于許多工業(yè)現(xiàn)場需要的電壓范圍比較高,后級需要發(fā)大其信號到010V ,最后級放大根據(jù)輸出功率,輸出精度,輸出紋波,零漂大小,選用ADI公司的高精密,大功率,低零漂放大器。 該直流穩(wěn)壓電源可以用于高精度,低紋波需求場合。這篇論文是經(jīng)我國現(xiàn)行的各有關(guān)規(guī)范,規(guī)程和技術(shù)標(biāo)準(zhǔn)為依據(jù)。此設(shè)計是一個初步設(shè)計,在參考有關(guān)資

2、料和書籍的基礎(chǔ)上,完成設(shè)計任務(wù)書上的所有要求,并且在指導(dǎo)老師的指導(dǎo)下,力爭使設(shè)計方案達(dá)到最優(yōu)狀況。三、課題任務(wù)要求1、系統(tǒng)的設(shè)計要求和方案選擇。 2、系統(tǒng)硬件設(shè)計。 3、系統(tǒng)軟件設(shè)計。四、同組設(shè)計者無五、主要參考文獻(xiàn)1 李朝青.單片機(jī)原理及接口技術(shù)M.北京:北京航空航天大學(xué)出版社,2005年.2 白雪冰,張延林,等.單片機(jī)原理及應(yīng)用M.哈爾濱:東北林業(yè)大學(xué)出版社,2006年.3 謝運祥,歐陽森,等.電力電子單片機(jī)控制技術(shù)M.北京:機(jī)械工業(yè)出版社.2007年.4 王昊,李昕.集成運放應(yīng)用電路設(shè)計360例M.北京:電子工業(yè)出版社,2007年.5 王洪業(yè).傳感器技術(shù)M.長沙:湖南科學(xué)技術(shù)出版社,19

3、95年.6 鄭爭兵,基于單片機(jī)與AD590的溫度測量報警系統(tǒng)J.國外電子測量技術(shù) 2007.21(6):64 - 667 鐘曉偉,宋蟄存.基于單片機(jī)的實驗室溫濕度控制系統(tǒng)設(shè)計J.林業(yè)機(jī)械與木工設(shè)備.2010,38(1).39 428 劉寶元,張玉虹,等.基于單片機(jī)的溫濕度監(jiān)控系統(tǒng)設(shè)計J.中國科技核心期刊.2009,28(12).77 83 指導(dǎo)教師簽字 教研室主任簽字 年 月 日摘 要數(shù)控直流穩(wěn)壓源就是能用數(shù)字來控制電源輸出電壓的大小,而且能使輸出的直流電壓能保持穩(wěn)定、精確的直流電壓源;數(shù)控電源是針對傳統(tǒng)電源的不足設(shè)計的,數(shù)字化能夠減少生產(chǎn)過程中的不確定因素和人為參與的環(huán)節(jié)數(shù),有效地解決電源模

4、塊中諸如可靠性、智能化和產(chǎn)品一致性等工程問題,極大地提高生產(chǎn)效率和產(chǎn)品的可維護(hù)性,市場前景廣闊。在本文中控制部分主要以8051單片機(jī)為核心制作控制電路,穩(wěn)壓部分主要以LM117為核心制作三端穩(wěn)壓電路,顯示部分采用數(shù)碼管顯示,輸入采用鍵盤式輸入再加一個驅(qū)動電路;通過軟件編程有效的實現(xiàn)可控、可顯的電源輸出。關(guān)鍵詞:直流穩(wěn)壓電源;8051單片機(jī);數(shù)碼管顯示目 錄設(shè)計任務(wù)書.1摘要 .31 引言.5 數(shù)控電源的發(fā)展史5 數(shù)控電源的應(yīng)用范圍5 數(shù)控電源的優(yōu)點62 系統(tǒng)的設(shè)計要求和方案選擇.72.1 設(shè)計要求72.2 方案論證與比較73 系統(tǒng)硬件設(shè)計.83.1 系統(tǒng)設(shè)計.93.2 微控制器模塊.93.3

5、電源模塊.103.4 調(diào)壓電阻網(wǎng)絡(luò).113.5 顯示電路.123.6 鍵盤電路.134 系統(tǒng)軟件設(shè)計.144.1 主程序.144.2 掃描鍵盤程序.204.3 顯示驅(qū)動程序.215 總結(jié).266 致謝.277 參考文獻(xiàn).281.引 言1.1. 數(shù)控電源的發(fā)展史電源技術(shù)尤其是數(shù)控電源技術(shù)是一門實踐性很強(qiáng)的工程技術(shù),服務(wù)于各行各業(yè)。電力電子技術(shù)是電能的最佳應(yīng)用技術(shù)之一。當(dāng)今電源技術(shù)融合了電氣、電子、系統(tǒng)集成、控制理論、材料等諸多學(xué)科領(lǐng)域。隨著計算機(jī)和通訊技術(shù)發(fā)展而來的現(xiàn)代信息技術(shù)革命,給電力電子技術(shù)提供了廣闊的發(fā)展前景,同時也給電源提出了更高的要求。隨著數(shù)控電源在電子裝置中的普遍使用,普通電源在工

6、作時產(chǎn)生的誤差,會影響整個系統(tǒng)的精確度。電源在使用時會造成很多不良后果,世界各國紛紛對電源產(chǎn)品提出了不同要求并制定了一系列的產(chǎn)品精度標(biāo)準(zhǔn)。只有滿足產(chǎn)品標(biāo)準(zhǔn),才能夠進(jìn)入市場。隨著經(jīng)濟(jì)全球化的發(fā)展,滿足國際標(biāo)準(zhǔn)的產(chǎn)品才能獲得進(jìn)出的通行證。數(shù)控電源是從80年代才真正的發(fā)展起來的,期間系統(tǒng)的電力電子理論開始建立。這些理論為其后來的發(fā)展提供了一個良好的基礎(chǔ)。在以后的一段時間里,數(shù)控電源技術(shù)有了長足的發(fā)展。但其產(chǎn)品存在數(shù)控程度達(dá)不到要求、分辨率不高、功率密度比較低、可靠性較差的缺點。因此數(shù)控電源主要的發(fā)展方向,是針對上述缺點不斷加以改善。單片機(jī)技術(shù)及電壓轉(zhuǎn)換模塊的出現(xiàn)為精確數(shù)控電源的發(fā)展提供了有利的條件。

7、新的變換技術(shù)和控制理論的不斷發(fā)展,各種類型專用集成電路、數(shù)字信號處理器件的研制應(yīng)用。到90年代,己出現(xiàn)了數(shù)控精度達(dá)到0.05V的數(shù)控電源,功率密度達(dá)到每立方英寸50W的數(shù)控電源。從組成上,數(shù)控電源可分成器件、主電路與控制等三部分。目前在電力電子器件方面,幾乎都為旋紐開關(guān)調(diào)節(jié)電壓,調(diào)節(jié)精度不高,而且經(jīng)常跳變,使用麻煩。數(shù)字化智能電源是針對傳統(tǒng)電源的不足設(shè)計的,數(shù)字化能夠減少生產(chǎn)過程中的不確定因素和人為參與的環(huán)節(jié)數(shù),有效地解決電源模塊中諸如可靠性、智能化和產(chǎn)品一致性等工程問題,極大地提高生產(chǎn)效率和產(chǎn)品的可維護(hù)性。1.2. 數(shù)控電源的應(yīng)用范圍在家用電器和其他各類電子設(shè)備中,通常都需要電壓穩(wěn)定的直流電

8、源供電。但在實際生活中,都是由220V 的交流電網(wǎng)供電。這就需要通過變壓、整流、濾波、穩(wěn)壓電路將交流電轉(zhuǎn)換成穩(wěn)定的直流電。濾波器用于濾去整流輸出電壓中的紋波,一般傳統(tǒng)電路由濾波扼流圈和電容器組成,若由晶體管濾波器來替代,則可縮小直流電源的體積,減輕其重量,且晶體管濾波直流電源不需直流穩(wěn)壓器就能用作家用電器的電源,這既降低了家用電器的成本,又縮小了其體積,使家用電器小型化。傳統(tǒng)的直流穩(wěn)壓電源通常采用電位器和波段開關(guān)來實現(xiàn)電壓的調(diào)節(jié),并由電壓表指示電壓值的大小. 因此,電壓的調(diào)整精度不高,讀數(shù)欠直觀,電位器也易磨損.而基于單片機(jī)控制的直流穩(wěn)壓電源能較好地解決以上傳統(tǒng)穩(wěn)壓電源的不足。從上世紀(jì)九十年代

9、末起,隨著對系統(tǒng)更高效率和更低功耗的需求,電信與數(shù)據(jù)通訊設(shè)備的技術(shù)更新推動電源行業(yè)中直流/直流電源轉(zhuǎn)換器向更高靈活性和智能化方向發(fā)展。整流系統(tǒng)由以前的分立元件和集成電路控制發(fā)展為微機(jī)控制, 從而使直流電源智能化, 基本實現(xiàn)了直流電源的無人值守 。直流穩(wěn)壓電源是最常用的儀器設(shè)備, 在科研及實驗中都是必不可少的。數(shù)控電源采用按鍵盤,可對輸出電壓進(jìn)行設(shè)置, 輸出由單片機(jī)通過D/A,控制驅(qū)動模塊輸出一個穩(wěn)定電壓。同時穩(wěn)壓方法采用單片機(jī)控制, 單片機(jī)通過A/D 采樣輸出電壓, 與設(shè)定值進(jìn)行比較, 若有偏差則調(diào)整輸出, 越限則輸出報警信號并截流。工作過程中, 穩(wěn)壓電源的工作狀態(tài)(輸出電壓、電流等

10、各種工作狀態(tài)) 均由單片機(jī)輸出驅(qū)動LCD顯示, 由鍵盤控制進(jìn)行動態(tài)邏輯切換。以單片機(jī)為核心的智能化高精度簡易直流電源的設(shè)計,電源采用數(shù)字調(diào)節(jié)、輸出精度高, 特別適用于各種有較高精度要求的場合。1.3. 數(shù)控電源的優(yōu)點(1)易于采用先進(jìn)的控制方法和智能控制策略,使電源模塊的智能化程度更高,性能更完美。(2)控制靈活,系統(tǒng)升級方便,甚至可以在線修改控制算法,而不必改動硬件線路。(3)控制系統(tǒng)的可靠性提高,易于標(biāo)準(zhǔn)化,可以針對不同的系統(tǒng)(或不同型號的產(chǎn)品),采用統(tǒng)一的控制板,而只是對控制軟件做一些調(diào)整即可。2.系統(tǒng)的設(shè)計要求和方案選擇2.1. 設(shè)計要求系統(tǒng)電壓調(diào)節(jié)范圍為012V,最大輸出電流1A,具

11、有過載和短路保護(hù)功能。輸出電壓可用1602LCD液晶顯示。鍵盤設(shè)有6個鍵,復(fù)位鍵,步進(jìn)增減1V兩個鍵,步進(jìn)增減0.1V兩個鍵以及確認(rèn)鍵。復(fù)位鍵用于啟動參數(shù)設(shè)定狀態(tài)(5V),步進(jìn)增減鍵用于設(shè)定參數(shù)數(shù)值,確認(rèn)鍵用于確認(rèn)輸出設(shè)定值.電源開機(jī)設(shè)定電壓輸出默認(rèn)值為5V。通過步進(jìn)增減按鍵功能選擇可在不同的設(shè)定參數(shù)之間切換,再按確認(rèn)鍵進(jìn)入設(shè)定電壓輸出狀態(tài)。若按復(fù)位鍵,則電壓輸出恢復(fù)5V。系統(tǒng)設(shè)有自動識別功能,將不接受超出使用范圍(012V)的設(shè)定值2.2. 方案論證與比較2.2.1穩(wěn)壓電源的選擇方案一:簡單的并聯(lián)型穩(wěn)壓電源并聯(lián)型穩(wěn)壓電源的調(diào)整元件與負(fù)載并聯(lián),因而具有極低的輸出電阻,動態(tài)特性好,電路簡單,并具

12、有自動保護(hù)功能;負(fù)載短路時調(diào)整管截止,可靠性高,但效率低,尤其是在小電流時調(diào)整管需承受很大的電流,損耗過大。方案二:串聯(lián)型穩(wěn)壓電源并聯(lián)穩(wěn)壓電源有效率低、輸出電壓調(diào)節(jié)范圍小和穩(wěn)定度不高這三個缺點。而串聯(lián)穩(wěn)壓電源可以避免這些缺點,同時串聯(lián)穩(wěn)壓電源可以通過三端穩(wěn)壓實現(xiàn),而且這類芯片內(nèi)部都有過流和過熱的保護(hù)電路,例如W117,其額定電流可達(dá)1.5A,輸出電壓的調(diào)節(jié)范圍為1.2-37V,內(nèi)部有過流和過熱保護(hù)電路,而且價格也的相當(dāng)便宜如圖2.1所示,所以綜合考慮采用方案二。圖2.1三端穩(wěn)壓器2.2.2 數(shù)字顯示方案方案一:液晶顯示器顯示利用單片機(jī)的軟硬件資源實現(xiàn)高精度高速A/D轉(zhuǎn)換,轉(zhuǎn)換精度和轉(zhuǎn)換速度可以

13、通過軟件來改變。但是對軟件部分要求非常高不易實現(xiàn)。方案二:數(shù)碼管顯示數(shù)碼管顯示分為靜態(tài)顯示和動態(tài)顯示兩種,但是不管哪種顯示都具有結(jié)構(gòu)簡單、易于實現(xiàn)等優(yōu)點。同時采用3位數(shù)碼管完全可以滿足本設(shè)計的要求。在用8051控制的同時,可以簡化軟件程序,快速實現(xiàn)。所以本設(shè)計中采用數(shù)碼管顯示。3.系統(tǒng)硬件設(shè)計3.1. 系統(tǒng)設(shè)計由于本設(shè)計的輸入為220V的交流電電壓,所以必須先經(jīng)過整流濾波電路然后經(jīng)過三端穩(wěn)壓器的處理輸出直流穩(wěn)定的電壓,當(dāng)然在輸出前還得有單片機(jī)的控制才可以輸出。在控制中單片機(jī)通過接受來自鍵盤的指令信號,并且通過數(shù)碼顯示器顯示當(dāng)前值,然后由單片機(jī)發(fā)出控制信號控制接口和驅(qū)動電路來控制穩(wěn)壓器的輸出,通

14、過數(shù)碼顯示器顯示輸出值。具體的系統(tǒng)圖如圖3.1所示。整流濾波三端穩(wěn)壓W117電阻網(wǎng)絡(luò)模擬開關(guān)接口和驅(qū)動電路輸出顯示8051單片機(jī)數(shù)碼顯示鍵盤顯示器接口鍵盤220v交流電圖3.1系統(tǒng)流程圖3.2. 微控制器模塊3.2.1 8051單片機(jī)的性能AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單

15、個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。主要特性為:(1)與MCS-51 兼容 (2)4K字節(jié)可編程閃爍存儲器 (3)壽命:1000寫/擦循環(huán)(4)數(shù)據(jù)保留時間:10年(5)全靜態(tài)工作:0Hz-24Hz(6)三級程序存儲器鎖定(7)128*8位內(nèi)部RAM(8)32可編程I/O線(9)兩個16位定時器/計數(shù)器(10)5個中斷源 (11)可編程串行通道(12)低功耗的閑置和掉電模式(13)片內(nèi)振蕩器和時鐘電路3.2.2 8051單片機(jī)的最小系統(tǒng)對于一個完整的電子設(shè)計來講,首要問題就是為整個系統(tǒng)提供電源供電模塊,電源模塊的穩(wěn)定可靠是

16、系統(tǒng)平穩(wěn)運行的前提和基礎(chǔ)。51單片機(jī)雖然使用時間最早、應(yīng)用范圍最廣,但是在實際使用過程中,一個和典型的問題就是相比其他系列的單片機(jī),51單片機(jī)更容易受到干擾而出現(xiàn)程序跑飛的現(xiàn)象,克服這種現(xiàn)象出現(xiàn)的一個重要手段就是為單片機(jī)系統(tǒng)配置一個穩(wěn)定可靠的電源供電模塊。在次最小系統(tǒng)中包含了復(fù)位電路、振蕩電路和供電電路。如圖3.2所示。圖3.2單片機(jī)最小系統(tǒng)3.3. 電源模塊3.3.1單片機(jī)供電模塊為了滿足單片機(jī)的正常工作,必須給其提供+5v的直流電源,所以設(shè)計一個可以使用usb的5v直流供電電路,具體電路如圖3.3所示。圖3.3單片機(jī)供電圖3.3.2整流濾波電路和+5v供電模塊整流電路采用橋式電路,整流管采

17、用普遍使用橋堆。根據(jù)使用手冊可知W7805的輸入端電壓為9V,W117的輸入電壓為25V,具體電路如圖3.4所示。圖3.4輔助電源模塊3.4. 調(diào)壓電阻網(wǎng)絡(luò)3.4.1W117的調(diào)壓電阻網(wǎng)絡(luò)根據(jù)w117的基本功能,調(diào)壓電阻網(wǎng)絡(luò)可采用如圖3.4所示電路。這里的電阻網(wǎng)絡(luò)采用分立元件組成的8為權(quán)電阻串聯(lián)式網(wǎng)絡(luò),而開關(guān)采用舌簧式繼電器的觸點。為了使W117正常工作,要求流過R1的電流不小于5mA,而R1兩端的電壓為恒定的1.25v,所以若取流過R1的電流為5mA,則R1=1.25V/5mA=250,為了滿足調(diào)節(jié)單位為0.1v,故R=0.1/5mA=20,則可以求得該網(wǎng)絡(luò)的其他電阻值。 圖3.5 W117

18、的調(diào)壓電阻網(wǎng)絡(luò)3.4.2繼電器的驅(qū)動電路由于要驅(qū)動8個繼電器,而繼電器的吸合電流可達(dá)10mA,觸點吸合時間為12ms,所以每個繼電器可采用一個晶體管來驅(qū)動,不再詳細(xì)計算,具體電路如圖3.5所示。圖3.6繼電器驅(qū)動電路3.4.3 顯示電路在顯示電路中分為靜態(tài)顯示和動態(tài)顯示,由于本設(shè)計是要求采用三位數(shù)碼管,而靜態(tài)顯示無法滿足設(shè)計的需要,故在本設(shè)計中采用并聯(lián)動態(tài)顯示。圖3.5是動態(tài)顯示的原理圖,只要有一位接通過單片機(jī)的掃描讓每位選線輪流選通,同時在段選線上送出該位要顯示的段位碼。圖3.7系統(tǒng)顯示電路3.5 鍵盤電路鍵盤控制電路分為獨立式和矩陣式,由于本設(shè)計的要求不是特別的高,加上獨立式按鍵結(jié)構(gòu)電路簡

19、單易于實現(xiàn)的特點,所以在本設(shè)計中采用獨立式按鍵結(jié)構(gòu)。電路結(jié)構(gòu)如圖3.6。圖3.8獨立按鍵式結(jié)構(gòu)圖2. 系統(tǒng)軟件設(shè)計4.1. 主程序開始初始化端口,輸出預(yù)設(shè)值掃描鍵盤端口,判斷是否有操作讀取按鍵情況,執(zhí)行電壓設(shè)置程序顯示當(dāng)前輸出電壓返回C語言程序如下:#include <REGX51.H>Unsigned charled15=0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f,0x39,0x52,0x64,0x37,0x0e;/ 9 8 76 5 4 32 1 0 void main()/主函數(shù)void ledout(unsigned

20、char ATA,char add,char j);void delays(unsigned char t);unsigned char odata,key,temp;unsigned int F,f=0x100; /初始頻率char add=0,j=1; odata = 155; /電壓初值為5v j=1; while(1) for(F=f;F<0x110;F+) P3=0xff; key=P3; if (key!=0xff) unsigned char i; for(i=0;i<10;i+) ledout(odata,add,j); delays(10); ledout(oda

21、ta,add,-j); delays(10); key=P3; if (key=0xff) break; for(i=0;i<10;i+) ledout(odata,add,j); delays(10); ledout(odata,add,-j); delays(10); if(add=0) temp=odata; /記錄當(dāng)前電壓值switch(key) case 0x7f: if (add=0) if(odata>57) odata=odata-2; /電壓加0.1V break; case 0xbf: if (add=0) if(odata<255) odata=odat

22、a+2; break; case 0xdf: if(add=0) /三角波 f=0x100; /1時為頻率最高,最大允許256 odata=155; add=1; else if(add=1) /方波 /f=f*200; /頻率跟隨 f=0x100; odata=55; add=200; else if(add=-1) /f=f*200; f=0x100; odata=55; add=200; else if(add=200) /直流電壓 add=0; odata=temp;/電壓記憶恢復(fù) else add=0; odata=temp; break;case 0xef: if(add!=0)

23、f=f/2; /頻率頻率加 if (f=1) if(add=1) f=0x100; else f=0x3200; break; if(odata=255) add=-add; odata=odata+add; if(odata=55) add=-add; P0=odata; /送數(shù)據(jù) ledout(odata,add,j); /送顯示 j=-j; void ledout(unsigned char ATA,char add,char j)unsigned char DH,DL,temp;switch(add) case 0: temp=(ATA-55)/2)-1; /十進(jìn)制轉(zhuǎn)換 DH=temp

24、/10; DL=temp%10; break; case 1: DH=11; DL=12; break; case -1: DH=11; DL=12; break; case 200: DH=13; DL=14; break; case -200: DH=13; DL=14; break; switch(j) case 1: P1=ledDH; /送數(shù)碼管高位顯示 P1_7=1; /動態(tài)顯示 break; case -1: P1=ledDL; /送數(shù)碼管低位顯示 break; void delays(unsigned char t) unsigned char s; for(;t>0;t

25、-) for(s=0;s<255;s+); 4.2. 掃描鍵盤程序開始將P1.0和P1.1設(shè)置成功能輸入口讀取p1口輸入狀態(tài)P1口屏蔽高5位,賦值key_valu=?若key_valu=6S1鍵按下若key_valu=5S2鍵按下若key_valu=4S3鍵按下否則檢查錯誤退出S1件對應(yīng)子程序S2件對應(yīng)子程序S3件對應(yīng)子程序結(jié)束C語言程序如下:#include <reg51.h>void key_deal(void)unsigned char Key_value; / 按鍵鍵值P1 |= 0x07;/ P1.0P1.2為輸入端口Key_value = P1 & 07;

26、/ 屏蔽P1口高5位,取鍵值switch (Key_value)case 6: Sub_S1();break;/ S1按鍵按下,執(zhí)行對應(yīng)子程序 case 5: Sub_S2();break;/ S2按鍵按下,執(zhí)行對應(yīng)子程序 case 3: Sub_S3();break;/ S3按鍵按下,執(zhí)行對應(yīng)子程序 default: break;4.3. 顯示驅(qū)動程序開始程序初始化是否是狀態(tài)s1是否是狀態(tài)s2啟動狀態(tài)s2是否是狀態(tài)s3啟動狀態(tài)s3啟動狀態(tài)s1按鍵處理按鍵是否按下返回K1按鍵K2按鍵S2+,S3-進(jìn)入時間調(diào)整返回K3按鍵循環(huán)執(zhí)行S2循環(huán)執(zhí)行S1C語言程序如下:#include <reg5

27、1.h>#include <absacc.h>#include <Adc_Temp.h>code uchar disp_seg=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7c,0x39,0x5f,0x79,0x71,0x40,0x00,0xff,0xf3;/ 0 1 2 3 4 5 6 7 8 9 a b c d e f - 全滅, 全亮, P./定義顯示緩沖區(qū)(由定時中斷程序自動掃描)uchar DispBuf8; /8位數(shù)碼管顯示的數(shù)字碼(顯示段碼的偏移量)uchar bdata key_

28、flag=0; /定義鍵盤狀態(tài)標(biāo)志位sbit key_first_flag = key_flag0;sbit key_delay_flag = key_flag1;sbit key_valid_flag = key_flag2;uchar key_value; /key_value=0: no key, or key_value=1-8 stand for key1-key8void DispInit(); /數(shù)碼管掃描顯示初始化void DispClear(); /清除數(shù)碼管的所有顯示void DispP(); /顯示"P. "/在數(shù)碼管位置x(07)處顯示字符c(僅限十

29、進(jìn)制數(shù)字和減號)/void DispChar(unsigned char x, unsigned char y);/顯示指定位置x(07)處的小數(shù)點/void DispDotOn(unsigned char x);/*函數(shù):T1INTSVC()功能:定時器T0的中斷服務(wù)函數(shù) */void T1INTSVC() interrupt 1 using 1 / interrupt 3 for T1 code uchar com = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80; static uchar key_value_temp, n = 0; uchar key

30、_in,i; TR0 = 0; TH0 = 0xf8; / 0xfc66:1ms for 11.0592MHz, oxf8cd:2ms, 0xB800:20ms, 0x4C00:50ms TL0 = 0xcd; P1 = 0xFF; /暫停顯示 if ( (DispBufn&0x80) = 0x80 ) /帶小數(shù)點顯示 DispBufn = DispBufn&0x7f; LED_OUT = (disp_segDispBufn | 0x80);/更新掃描數(shù)據(jù) else LED_OUT = disp_segDispBufn;/更新掃描數(shù)據(jù) P1 = comn; /重新顯示 if(k

31、ey_first_flag=0) key_in = KEY_IN; if(key_in!=0xff) /初次檢測到有鍵按下 for(i=0; i<n; i+) /n:當(dāng)前掃描鍵 key_in = key_in>>1; if( (key_in&0x01)=0x00 )/若鍵按下,對應(yīng)KEY_IN的輸入口讀入狀態(tài)位為0 key_first_flag = 1;/置標(biāo)志 key_value_temp = i;/暫存 else if(key_delay_flag=0 && n=key_value_temp) key_in = KEY_IN; for(i=0; i

32、<n; i+) key_in = key_in>>1; if( (key_in&0x01)=0x00 ) /經(jīng)過一輪掃描后(8*2ms=16ms),第一次按下的鍵仍被按下 key_delay_flag = 1; else if(key_delay_flag=1 && n=key_value_temp) key_in = KEY_IN; for(i=0; i<n; i+) key_in = key_in>>1; if( (key_in&0x01)=0x01 ) /再經(jīng)過一輪掃描后,按鍵已釋放:則為有效鍵 key_valid_fl

33、ag = 1; key_value = key_value_temp+1; n+; n &= 0x07; -/-; TR0 = 1;/*函數(shù):DispClear()功能:清除數(shù)碼管的所有顯示*/void DispClear() unsigned char i; for ( i=0; i<8; i+ ) DispBuf = 0x11; /0x00; /*函數(shù):DispP()功能:顯示"P. ",即最高為顯示"P.",其余顯示滅*/void DispP() DispClear(); DispBuf7 = 0x13; /0xf3;/*函數(shù):Dis

34、pChar()功能:在數(shù)碼管上顯示字符參數(shù): x:數(shù)碼管的坐標(biāo)位置(07,0為高位,7為低位) y:要顯示的字符,c=019(僅限十進(jìn)制數(shù)字和減號)*/*void DispChar(unsigned char x, unsigned char y) /,-,全滅,全亮的數(shù)碼管字型數(shù)據(jù)/ code unsigned char Tab = 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x00,0xff; DispBufx = disp_segy; /Tabx;*/*函數(shù):DispDotOn()功能:顯示指定位的小數(shù)點參數(shù):x為數(shù)碼管

35、坐標(biāo)*/*void DispDotOn(unsigned char x) DispBuf7-x |= 0x80;*/*函數(shù):DispInit()功能:數(shù)碼管掃描顯示初始化*/void DispInit() DispClear(); EA = 0; TMOD &= 0xf0; /0x0F; TMOD |= 0x01; /0x10; TH0 = 0xf8; / 0xfc66:1ms for 11.0592MHz, oxf8cd:2ms, 0xB800:20ms, 0x4C00:50ms TL0 = 0xcd; TR0 = 1; ET0 = 1; EA = 1;3. 總 結(jié)在本次設(shè)計的過程中

36、,我發(fā)現(xiàn)很多的問題,給我的感覺就是很難,很不順手,看似很簡單的電路,要動手把它給設(shè)計出來,是很難的一件事,主要原因是我沒有經(jīng)常動手設(shè)計過電路,還有資料的查找也是一大難題,這就要求我在以后的學(xué)習(xí)中,應(yīng)該注意到這一點,更重要的是我要學(xué)會把從書本中學(xué)到的知識和實際的電路聯(lián)系起來,這不論是對我以后就業(yè)還是學(xué)習(xí),都會起到很大的促進(jìn)和幫助,我相信,通過這次的畢業(yè)設(shè)計,在以后的學(xué)習(xí)中我會更加努力,力爭把這專業(yè)學(xué)好,學(xué)精。在本次設(shè)計過程中,對紋波也沒有提出嚴(yán)格要求,所以常用的穩(wěn)壓集成電路就可以滿足要求。在電路中采用了模擬器件和數(shù)字器件所以需要+5V、和-15V 電源供電。本設(shè)計輸出的電壓穩(wěn)壓精度高,可以用在對直流電壓要求較高的設(shè)備上,或在科研實驗室中當(dāng)作實驗電源使用。同時,通過本次畢業(yè)設(shè)計,鞏固了我學(xué)習(xí)過的專業(yè)知識,也使我把理論與實踐從真正意義上相結(jié)合了起來;考驗了我借助互聯(lián)網(wǎng)絡(luò)搜集、查閱相關(guān)文獻(xiàn)資料和組織材料的綜合能力;從中可以自我測驗,認(rèn)識到自己哪方面有欠缺、不足,以便于在日后的學(xué)習(xí)中得以改進(jìn)、提高;通過使用電路CAD 軟件Multisim , 也讓我了解到計算機(jī)輔助設(shè)計

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論