基于單片機的可控直流電源軟件設計說明_第1頁
基于單片機的可控直流電源軟件設計說明_第2頁
基于單片機的可控直流電源軟件設計說明_第3頁
基于單片機的可控直流電源軟件設計說明_第4頁
基于單片機的可控直流電源軟件設計說明_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE23 / NUMPAGES31 東華理工大學長江學院本科生畢業設計(論文)論文題目:基于單片機的可控直流電源(軟件):學號:班級:年級:2011級專業:自動化系:機械與電子工程學院指導教師:完成時間:2015年6月5日作者聲明本人以信譽重聲明:所呈交的學位畢業設計(論文),是本人在指導教師指導下由本人獨立撰寫完成的,沒有剽竊、抄襲、造假等違反道德、學術規和其他侵權行為。文中引用他人的文獻、數據、圖件、資料均已明確標注出,不包含他人成果與為獲得東華理工大學或其他教育機構的學位或證書而使用過的材料。對本設計(論文)的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本畢業設計(論文

2、)引起的法律結果完全由本人承擔。本畢業設計(論文)成果歸東華理工大學長江學院所有。特此聲明。畢業設計(論文)作者(簽字): 簽字日期: 年 月 日本人聲明:該學位論文是本人指導學生完成的研究成果,已經審閱過論文的全部容,并能夠保證題目、關鍵詞、摘要部分中英文容的一致性和準確性。學位論文指導教師簽名: 年 月 日基于單片機的可控直流電源(軟件)Controllable DC power supply based on single chip microcomputer(software)2015年6月5日摘 要在現實生活中,經常要用到電壓不同的的的電源,所以電源電壓要求也是多樣化。怎么設計一個電

3、壓穩定、電壓可步進、調節圍大的電壓源,成為了電子技術方面的熱點。在市場上,電源產品多種多樣,但是大多會存在一些問題:輸出的電壓穩定性差;轉換效率低;輸出的精度不夠高;不能滿足特殊電壓的要求;紋波的電流太大;而且大部分采用的是可以調節的電阻器調節,操作的難度大。采用單片機可控電源技術則可以隨時變換電壓的輸出來滿足對電源的要求,可使電壓源精度更高,可以方便我們日常生活使用。本題設計的電源輸入為交流220V,輸出電壓直流5V至15V,電流直流0至1A,并能夠顯示預設電壓和輸出電壓值。數控直流電源的控制器是以AT51系列單片機為核心。系統主要有微控制器PWM模塊、斬波模塊、AD模塊、顯示和鍵盤模塊構成

4、,該電源具有穩定性好、準確率高、響應速度快等特點。關鍵詞:單片機; 可控式; 穩壓電源; PWMABSTRACTIn real life,we often use different power supply voltage, so the power supply voltage requirements are diverse. How to design a stable voltage,Stepping voltage, adjustment range of the voltage source? Electronic technology has become a hot spot

5、. In the market, there are different kinds of power products, most of them still has some problems: the poor stability of the output voltage; low conversion efficiency; accuracy of the output is not high enough; you can not meet the requirements of special voltage; ripple current is too large; and m

6、ost can be adjusted using the adjustment resistor,the operation is a large difficult. SCM controllable power technology which you can always change the output voltage to meet the power requirements, allows the voltage source higher accuracy, you can easily use in our daily lives. The title design po

7、wer input AC 220V, output voltage DC 5V to 15V, current DC 0 to 1A, and the ability to display preset voltage and output voltage. NC DC power supply controller is based on AT51 MCU core. System has the microcontroller PWM module, chopper module, AD module, display and keyboard modules, the power sup

8、ply has good stability, high accuracy, fast response and so on.Keywords: microcontroller; controllable; power supply; PWM目 錄TOC o 1-3 h u HYPERLINK l _Toc4656 摘 要 PAGEREF _Toc4656 I HYPERLINK l _Toc10174 ABSTRACT PAGEREF _Toc10174 II1 HYPERLINK l _Toc6165 緒 論 PAGEREF _Toc6165 1 HYPERLINK l _Toc12669

9、 1.1 研究目的與意義 PAGEREF _Toc12669 1 HYPERLINK l _Toc28076 1.2 系統研究方向與研究方法 PAGEREF _Toc28076 2 HYPERLINK l _Toc2270 1.3 論文構成與研究任務要求 PAGEREF _Toc2270 2 HYPERLINK l _Toc19768 2 方案的論證與設計 PAGEREF _Toc19768 3 HYPERLINK l _Toc28360 2.1 方案與其框圖 PAGEREF _Toc28360 3 HYPERLINK l _Toc27891 2.2 方案的確定 PAGEREF _Toc278

10、91 4 HYPERLINK l _Toc32204 3 軟件方案設計 PAGEREF _Toc32204 5 HYPERLINK l _Toc19809 3.1 主程序模塊 PAGEREF _Toc19809 5 HYPERLINK l _Toc11191 3.2 按鍵控制模塊 PAGEREF _Toc11191 6 HYPERLINK l _Toc28451 3.2.1 按鍵電路 PAGEREF _Toc28451 6 HYPERLINK l _Toc30851 3.2.2 按鍵子程序 PAGEREF _Toc30851 7 HYPERLINK l _Toc21673 3.3反饋模塊 PA

11、GEREF _Toc21673 9 HYPERLINK l _Toc15827 3.3.1 模數轉換電路 PAGEREF _Toc15827 9 HYPERLINK l _Toc5684 3.3.2 反饋子程序 PAGEREF _Toc5684 10 HYPERLINK l _Toc27495 3.4 顯示模塊 PAGEREF _Toc27495 11 HYPERLINK l _Toc17145 3.4.1數碼管結構 PAGEREF _Toc17145 11 HYPERLINK l _Toc8241 3.4.2數碼管工作原理 PAGEREF _Toc8241 12 HYPERLINK l _T

12、oc24690 3.4.3數碼管字形編碼 PAGEREF _Toc24690 12 HYPERLINK l _Toc19683 3.3.4 LED數碼管驅動 PAGEREF _Toc19683 13 HYPERLINK l _Toc8477 致 PAGEREF _Toc8477 15 HYPERLINK l _Toc13371 參考文獻 PAGEREF _Toc13371 16 HYPERLINK l _Toc30257 附錄一 系統源程序 PAGEREF _Toc30257 17 HYPERLINK l _Toc32337 附錄二 總電路圖 PAGEREF _Toc32337 25緒 論采用

13、單片機的數字可調穩壓電源價格低廉采用普遍使用的元件就能實現其功能,顯示清晰直觀,傳統的模擬可調穩壓電源沒有讀數,在讀數過程中很不方便,并且長時間使用會造成輸出電壓不穩。數字可調穩壓電源則采用先進的數顯技術,使測量結果一目了然,只要儀表不發生跳數現象,測量結果就是唯一的,不僅保證讀數的客觀性與準確性,還符合人們的讀數習慣,能縮短讀數和記錄的時間。模擬可調穩壓電源大多是通過調節電位器的阻值改變輸出直流電壓,電位器特別容易磨損,使用一段時間后就會出現接觸不良,引起輸出電壓不穩定。數字可調穩壓電源是通過接觸按鈕以步進方式選取不同的輸出電壓,再有數碼管顯示輸出電壓機器工作狀態,工作穩定可靠。采用單片機的

14、數字可調穩壓電源,它具有輸出電壓容易改變、價格低廉、顯示清晰直觀、準確度高、擴展能力強等特點。1.1研究目的與意義在當代科技與經濟高速發展的過程中,電源起到了關鍵性的作用。電源技術尤其是可控電源技術是一門實踐性很強的工程技術,服務于各行各業,單片機處理是電能的最佳應用技術之一。當今電源技術融合了電氣、電子、系統集成、控制理論、材料等諸多學科領域。隨著計算機和通訊技術發展而來的現代信息技術革命,給單片機提供了廣闊的發展前景,同時也給電源提出了更高的要求。普通電源在工作時所產生的誤差,很明顯地影響整個系統的精確度,在使用時可能造成很多不良后果,隨著數控電源在電子裝置中的普遍使用,由電源引起的故障大

15、大降低,因此電源的數字化控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的。其中,數控直流穩壓電源就是一個典型例子,人們對它的要求也越來越高,要想為現代人的工作、科研、生活提供更好的、更方便的設施就需要從數字電子技術入手,一切向數字化、智能化方向發展。另外,對我們學生而言,在實驗過程中有一個穩定可調的直流電源也是很有必要的,在很大程度上方便了我們的實驗操作,提高實驗的精確度。因傳統的直流穩壓電源輸出電壓是通過粗調波段開關與細調電位器來調節的,并由電壓表指示電壓值的大小,這種直流穩壓電源存在讀數不直觀、電位器易磨損、穩壓精度不高、不易調準、電路構成復雜、體積大等缺點,而基于單片機控制

16、的數字式可調穩壓電源能較好地解決了以上問題。本題采用單片機和其它元器件與外圍電路,開發一個數字式可調穩壓電源。能夠步進調節輸出電壓值,具有電壓值輸出顯示等功能。通過此系統的設計,讓開發者更深刻的掌握單片機基本原理,并熟悉一些外圍電路的擴展,以與進一步提高C語言的硬件編程能力。1.2 系統研究方向與研究方法本系統研究的直流穩壓電源主要是符合智能化、數字化以與模塊化的特點。智能化主要是指系統有可編程模塊可以對系統進行智能控制。數字化主要是指系統輸出電壓通過LED數碼管顯示,并且可以通過按鍵對輸出電壓進行連續步進數字化調節。模塊化是指系統由各個相關模塊組成,提高了系統的可靠性。此次畢業設計從一開始選

17、題就目的明確,畢業設計課題確定下來后,通過運用大學四年所學的專業知識和查閱參考了一系列的資料加以完成。針對題目的要求,首先對整個設計思路進行規劃,例如:要用到什么模塊,模塊應該怎樣分布,怎么協調好這些模塊。然后針對方案的可行性進行反復的參照對比,敲定最終設計方案,在敲定方案之后,查閱參考相關資料進行硬件電路的各個模塊的設計,同時軟件模塊也同步進行,經過不斷的檢測、編譯,將正確的代碼燒寫入單片機存儲單元中,最后一次次的調試系統,通過不斷的修改來完善系統。1.3 論文構成與研究任務要求本文總體概括了單片機實現數字式可調穩壓電源的原理、著重介紹了單片機實現數字式可調穩壓電源的軟件設計。本系統主要研究

18、數字式可調穩壓電源如何實現數控、穩壓和電壓輸出顯示等,其中包含一些必要的硬件設計和軟件設計。1.設計任務 基于單片機的可控直流電源2.任務的技術要求(1) 可輸出直流電壓5-15V,直流電流0-1A; (2) 具有電壓預置與電壓步進功能,電壓0.1V步進微調,1V步進粗調; (3) 輸出具有過流保護功能; (4) 具有人機界面,能實時顯示電壓電流值。2 方案的論證與設計2.1 方案與其框圖電子電路的重要部分是可控穩壓電源,它的質量好壞會直接影響到電子設備的可靠性,并且電子電路的故障70%來源于電源。所以電源越來越受到我們的重視。電子電路和電子設備對電源最基本的要電源的輸出電壓或者輸出電流一定要

19、穩定。通過查閱資料,控制電路是本電路的核心部分,因為控制部分決定的輸出的幅值、頻率、穩定性與達到所需電壓的速度快慢,則對它的選擇有以下三種方案:方案一:使用純數字電路純數字電路的可調穩壓電源信息使用數字格式,數字信號處理器(UCD9501)和數字控制電源驅動器(UCD7100)構成智能化數字電源系統,動態過程簡單;使用小尺寸處理,電路簡單占用的硅片比較少可以節約費用。但數字電路的實現比較復雜,數字電路使用了很多的邏輯單元;由于目前數字電路的技術不夠好,數字電路整體的花費相比于電阻電路更高;尺寸小的數字電路芯片性能要求高;數字電路組成的電源技術還不夠成熟,出現問題時可能會無法解決,純數字電路框圖

20、如圖2-1所示:交流輸入PWM電源驅動器輸出電壓UCD9501 DSP顯示電路接口電路鍵盤圖2-1 純數字電路框圖方案二:使用電阻電路使用電阻電路的可調穩壓電路是用電阻組成的電路,電壓的輸出則是利用電阻的比值來控制,且一般使用滑動變阻器來改變電阻的值,從而改變輸出的電壓幅值,由于滑動變阻器改變是靠手滑動滑片,得到的電阻值可能不是整數,得到的電壓也不是整數,那么電源就不符合電路的要求,由于滑動變阻器的電阻的阻值是確定的,所以幅值改變的圍也比較小。隨著電子行業不斷的發展,對電源的要求越來越高,它的弊端則會讓它慢慢的離開電子電路的舞臺。電阻電路框圖如圖2-2所示:交流電源變壓器整橋整流濾波器LM31

21、7穩壓電路輸出電壓圖2-2 電阻電路框圖方案三:使用單片機電路單片機電路的可調穩壓電源是將數字電路和單片機結合在一起的電路,不但有數字電路的精度高的特點,而且還能很好的地簡化復雜的純數字電路。采用單片機后,可以節省很多芯片,得到的輸出電壓更穩定,準確度更高,達到要求的速度會更快;因為單片機是使用軟件編程的,可以方便的調整電源的性能指標,只需將程序修改,不用改變硬件電路,使得單片機電源的功能更多。單片機通過數模轉換輸出一個電壓,用作電源的基準電壓電源可以通過鍵盤預置輸出電壓,單片機不加入反饋控制,電源仍要使用專門的PWM控制芯片,單片機電路框圖如圖2-3所示: 單片機電源電路顯示電路輸出電壓控制

22、單元按鍵電路電壓、電流采集單元過流保護斬波電路圖2-3 單片機電路框圖2.2 方案的確定經過全方位的比較,使單片機電路的設計更加合理化,符合技術指標的標準,我覺得使用方案三單片機的方法會更好,單片機不僅加入了反饋控制系統,而且作為控制核心,單片機得以充分利用,而且省去了D/A芯片,成本大大降低,是真正的單片機控制,而且結構簡潔、靈活、可擴展性好更加的適合這次的畢業設計,并能夠達到指標要求。單片機使用AT89S51,A/D芯片采用ADC0809,采用液晶顯示器顯示電壓電流值,鍵盤預置電壓,設計任務要求輸出可調,所以設定值需要從鍵盤輸入,實現輸入不同的電壓,輸出便可以輸出不同的壓值。3 軟件方案設

23、計3.1 主程序模塊在系統上電時,在執行主程序前需要先調用一次自檢模塊,以確認系統啟動時是否處于正常的狀態。為了發現系統運行中出現的故障,可以在時鐘模塊的配合下進行定時自檢,即每個規定的時間段調用一次自檢模塊。為了消除操作者對系統狀態的疑慮,也可以通過按鍵操作臨時調用一次自檢模塊,這個工作可以在監控模塊的配合下實現。自檢之后進行初始化,然后執行主程序進入無限循環狀態,主程序流程圖如圖3-1所示:開始自檢初始化送初始電壓5.0V按鍵子程序反饋子程序顯示子程序是否有按鍵按下結束NY圖3-1 主程序流程圖3.2 按鍵控制模塊3.2.1 按鍵電路 目前鍵盤電路常用的主要有兩種,一種是獨立式鍵盤電路,另

24、一種是行列式矩陣鍵盤電路。獨立式鍵盤電路是各個按鍵互相獨立,每個按鍵單獨連接一條輸入線,另一端接地,通過檢測輸入線的電平就可以判斷該鍵是否被按下。直接用I/O口線構成的單個按鍵電路,每根I/O口線上按鍵的工作狀態不會影響其它I/O口線的工作狀態。這種方式無論在硬件連接還是軟件編譯處理上都比較簡單,直接選取輸入鍵值,簡單快捷并且節省電路板面積,但按鍵的數目較少。 行列式矩陣鍵盤采用行、列矩陣方式交叉排列,按鍵跨接在行線、列線的交叉點上,3*3矩陣鍵盤就可以構成9個按鍵,4*4矩陣鍵盤就可以構成16個按鍵,在按鍵數據要求比較多的單片機系統中,行列式鍵盤比獨立式鍵盤結構更優越,能節省更多的I/O端口

25、線。行列式鍵盤常用逐行掃描法, 比較兩種方式后,結合設計容需要預制電壓,所以使用4*4行列式矩陣鍵盤共16個按鍵,I/O口使用P2口,10個數字鍵0至9、粗調步進“+1V”、粗調減“-1V”、微調步進“+0.1V”、微調減“-0.1V”、一個電壓電流顯示切換鍵、預制電壓時位選鍵(即十位、個位、十分位),具體讀鍵形式如下:先判斷鍵盤中有無鍵按下,將全部行線P2.0-P2.3置低電平,然后檢測列線的狀態。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 判斷閉合鍵所在的位置,在確認有鍵按下后,即可進入確定

26、具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。具體掃描過程如下:先掃描第一行,即置行線P2.0為低電平,行線P2.1至P2.3為高電平,檢測列線信號;如果列線值全為1,說明按鍵不在第1行線;如果不全為1,說明第1行上有按鍵,按鍵的位于第1行和列線值不為1的列線交叉處。如果第1行無鍵按下,則用同樣的辦法再掃描第2行是否有鍵按下,主要逐行掃描下去,直到找到按鍵為止。 當找到按鍵后根據所對應的的行線值和列線值,按特定的方式即可組合成

27、為按鍵的特征值,加入第7個鍵按下了,按鍵位于第2行、第3列的交叉處,當掃描到第2行時,置行線值為1101,列線值為1011,列線不全為1,表明找到了按鍵。這時只要把行線值和列線值合并成為1101 1011就是該按鍵的特征碼。 得到案件的特征碼后,就可以計算出所有按鍵的特征嗎,按鍵碼的順序存儲在一個表中,特征碼在表中的序號就可以作為該按鍵的鍵碼。所以只要找到按鍵的特征碼就可以通過查找特征碼在表中的具體位置,得到相應的鍵碼,最后根據鍵碼轉到相應的鍵值處理子程序,就可以完成鍵值處理。采用逐行掃描法時,列線上必須接上拉電阻,列線上可以不接上拉電阻。如果采用列掃描法識別按鍵,則行線上必須接上拉電阻,列線

28、上可以不接上拉電阻。按鍵模塊電路如圖3-2所示:圖3-2 按鍵模塊電路3.2.2 按鍵子程序進入單片機的中斷后,首先進入讀鍵子程序,判斷是電壓還是電流,再進行電壓電流調整,讀鍵程序結束后,進入負反饋程序,使輸出更接近設定值,并不斷循環;直至下一次有鍵按下,重新進入讀鍵子程序。電壓調整模塊如下:第一步,調用讀鍵子程序,檢測是否有按鍵按下,如果沒有則直接輸出當前電壓值;如果有按鍵按下,則進入下一步。第二步,在確定有按鍵按下時,判斷是否為數字鍵,如果是數字鍵,則將輸出改成當前數字電壓;如果不是數字鍵,則進入下一步。第三步,判斷按鍵是否為粗調,如果是,則調整時調整幅值為1V;如果不是,則為微調,調整幅

29、值為0.1V;然后進行輸出。當切換至電流時,方法同上,同時使用微調,幅值為加減0.1A。具體控制模塊流程圖如圖3-3所示:NYNYYNNYYYNNNN定時中斷入口重裝定時器初值是否有按鍵按下是否粗調是否是“+”是否最大值是否最小值是否是“+”是否最小值輸出電壓+1V輸出15V輸出電壓-1V輸出電壓+0.1V輸出電壓-0.1V輸出電壓值中斷返回是否數字鍵修改輸出值是否最大值輸出5V輸出15V輸出5VNNYY圖-3-3 控制決策模塊流程圖3.3反饋模塊3.3.1 模數轉換電路ADC0809是美國國家半導體公司生產的CMOS工藝8通道,8位逐次逼近式A/D模數轉換器。其部有一個8通道多路開關,它可以

30、根據地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉換。轉換時間為100s左右。ADC0809芯片有28條引腳,采用雙列直插式封裝,ADC0809引腳圖如圖3-7所示:VCC 11VREF(+) 12D1 14GND 13IN3 1EOC 7IN4 2START 6IN6 4IN7 5IN5 3CLK 10OE 9D3 828 IN222 ALE27 IN123 A225 A024 A126 IN019 D520 D621 D718 D417 D015 D216 VREF(-)ADC0809圖3-7 ADC0809引腳圖下面說明各引腳功能: IN0-IN7:8路模擬量輸入端。

31、 D0-D7:8位數字量輸出端。 A0、A1、A2:3位地址輸入線,用于選通8路模擬輸入中的一路。 ALE:地址鎖存允許信號,輸入,高電平有效。 START: A/D轉換啟動信號,輸入,高電平有效。 EOC: A/D轉換結束信號,輸出,當A/D轉換結束時,此端輸出一個高電平(轉換期間,其一直為低電平)。REF(+)、REF(-):基準電壓。OE:數據輸出允許信號,輸入,高電平有效。當A/D轉換結束時,此端輸入一個高電平,才能打開輸出三態門,輸出數字量。 CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。 ADC0809的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中

32、。此地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉換,之后EOC輸出信號變低,指示轉換正在進行。直到A/D轉換完成,EOC變為高電平,指示A/D轉換結束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態門打開,轉換結果數字量輸出到數據總線上。本設計只需電壓和電流兩個模擬量,通過給A0輸入地址1和0,并使ALE=1,將地址存入鎖存器中,通過控制信號,將采集的電壓和電流進入模擬量輸入端IN0和IN1,最后將轉換結果數字量送到數據線上,數據輸出線EXP1-EXP8分別接P1口的P1.0-P1.7。ADC0809接線圖如圖3

33、-8所示:圖3-8 ADC0809接線圖3.3.2 反饋子程序當按鍵電路結束后,進入負反饋調節系統,將采樣獲得的值與設定值進行對比,如果設定值與采樣值相等,則保持原來的值;采樣值與設定值不相等,則當采樣值大于設定值,因為設計要精確到十分位,所以將輸出做減0.1處理,再繼續取采樣值與設定值對比,判斷采樣值與設定值的大小,之后重復循環反饋系統;當采樣值小于設定值時,將采樣值做加0.1處理輸出,之后再將采樣值與設定值對比,判斷是否相等,并一直循環負反饋子程序。反饋子系統流程圖如圖3-9所示:中斷入口反饋值與設定值是否相等N反饋值是否大于設定值Y將輸出做減0.1處理N輸出做加0.1處理保存處理后結果Y

34、中斷返回圖3-9 反饋子系統流程圖3.4 顯示模塊方案一:采用LCD液晶顯示。字符型液晶顯示模塊是專門用于顯示字母、數字、符號等的點陣型液晶顯示模塊。利用單片機的軟硬件資源實現高精度高速A/D轉換,轉換精度和轉換速度可以通過軟件來改變。但是對軟件部分要求非常高不易實現。方案二:采用數碼管作為顯示器件,數碼管是一種半導體發光器件,其基本單元是發光二極管。數碼管按段數分為七段數碼管和八段數碼管,通過對其不同的管腳輸入相對的電流,會使其發亮,從而顯示出數字能夠顯示 時間、日期、溫度等所有可用數字表示的參數。由于它的價格便宜,使用簡單是我們平時用的比較多的。 結合本實驗要求,比較兩種方案得出方案二更適

35、合,所以選用第二種方案。3.4.1數碼管結構輸出電壓采用7段數碼管進行顯示。數碼管由8個發光二極管(以下簡稱字段)構成,通過不同的組合可用來顯示數字0 9、字符A F、H、L、P、R、U、Y、符號“-”與小數點“.”。數碼管的外型結構如圖3-4(a)所示。數碼管又分為共陰極和共陽極兩種結構,分別如數碼管結構圖3-4(b)和數碼管結構圖3-4(c)所示: (a) 外型結構 (b) 共陰極 (c)共陽極圖3-4 數碼管結構圖3.4.2數碼管工作原理共陽極數碼管的8個發光二極管的陽極(二極管正端)連接在一起,通常,公共陽極接高電平(一般接電源),其它管腳接段驅動電路輸出端。當某段驅動電路的輸出端為低

36、電平時,則該端所連接的字段導通并點亮,根據發光字段的不同組合可顯示出各種數字或字符。此時,要求段驅動電路能吸收額定的段導通電流,還需根據外接電源與額定段導通電流來確定相應的限流電阻。共陰極數碼管的8個發光二極管的陰極(二極管負端)連接在一起,通常,公共陰極接低電平(一般接地),其它管腳接段驅動電路輸出端,當某段驅動電路的輸出端為高電平時,則該端所連接的字段導通并點亮,根據發光字段的不同組合可顯示出各種數字或字符。此時,要求段驅動電路能提供額定的段導通電流,還需根據外接電源與額定段導通電流來確定相應的限流電阻。3.4.3數碼管字形編碼要使數碼管顯示出相應的數字或字符必須使段數據口輸出相應的字形編

37、碼。對照圖3-4(a),字型碼各位定義如下:數據線D0與a字段對應,D1字段與b字段對應,依此類推。如使用共陽極數碼管,數據為0表示對應字段亮,數據為1表示對應字段暗;如使用共陰極數碼管,數據為0表示對應字段暗,數據為1表示對應字段亮。如要顯示“0”,共陽極數碼管的字型編碼應為:11000000B(即C0H);共陰極數碼管的字型編碼應為:00111111B(即3FH)。依此類推可求得數碼管字形編碼如表3-5所示。表3-5 數碼管字型編碼表顯示字符字形共陽極共陰極dpgfedcba字型碼dpgfedcba字形碼0011000000C0H001111113FH1111111001F9H000001

38、1006H2210100100A4H010110115BH3310110000B0H010011114FH441001100199H0110011066H551001001092H011011016DH661000001082H011111017DH7711111000F8H0000011107H881000000080H011111117FH991001000090H011011116FHAA1000100088H0111011177HBB1000001183H011111007CHCC11000110C6H0011100139HDD10100001A1H010111105EHEE10000

39、11086H0111100179HFF100011108EH0111000171HHH1000100189H0111011076HLL11000111C7H0011100038HPP100011008CH0111001173HRR11001110CEH0011000131HUU11000001C1H001111103EHYY1001000191H011011106EH-10111111BFH0100000040H.011111117FH1000000080H滅滅11111111FFH0000000000H3.3.4 LED數碼管驅動74LS164是串行輸入/并行輸出移位寄存器,有兩個串行數據D

40、A、DB輸入端,使用時一般把它們連在一起;為清零輸入端,低電平有效,當該端加入低電平時,寄存器輸出Q0Q7全為低電平。在正常情況下,清零輸入端接高電平,當CP信號上升沿到來時,數據右移一位;Q0Q7為并行數據輸出端,同時Q7端也是串行數據輸出端,對于串行輸入的數據,最先輸入的從Q7輸出,最后進入的從Q0輸出。CP為移位脈沖。74LS164的管腳排列如圖3-6所示:圖3-6 74LS164的管腳排列顯示電路由四個共陰級的數碼管和一個74LS164組成。四個數碼管分別組成顯示電路的電壓電流區分位、十位、個位、小數點位,比如可以顯示A10.5V為電壓值,B0.5A為電流值。由于四個數碼管至少需要28

41、根I/O線,為節約資源,采用串行輸入并行輸出的74LS164進行驅動輸出。單片機的兩個并行口P0.4和P0.5分別作為74LS164的信號輸入口和時鐘控制信號。P0.0、P0.1、P0.2、P0.3分別接電壓電流區分位、十位、個位、小數位的片選端。Q0Q7(第36和1013引腳)并行輸出端分別接在LED顯示器的a-dp各段對應的引腳上。LED的8個段選端通過電阻和74LS164的并行輸出口即8根選線相連接。采用動態掃描驅動方式。當清除端(CLEAR)為低電平時,輸出端(QAQH)均為低電平。串行數據輸入端(A,B)可控制數據。當A、B任意一個為低電平,則禁止新數據輸入,在時鐘端(CLOCK)脈

42、沖上升沿作用下Q0為低電平。當A、B有一個為高電平,則另一個就允許輸入數據,并在CLOCK上升沿作用下決定Q0的狀態。顯示數據以串行方式從AT89S51的P1.4口輸出送往移位寄存器74LS164的A、B端,然后將變成的并行數據從輸出端Q0Q7輸出,選中LED相應的段。位選碼由AT89S51的P0.0P0.3口輸出低電平,以對數碼管LED1LED4進行位選控制,這樣,4個數碼管便輪流顯示。由于人眼的殘留效應,這4個數碼管看上去幾乎是同時顯示。致 在本論文收筆之際我首先要衷心的感我的指導老師勝群老師。老師以嚴謹的科學工作作風,淵博的知識、豐厚的學術功底、敏銳的學術洞察力和銳意進取、創新的精神使我

43、銘記于心。在今后的學習工作中都將會時刻激勵著我。在大學四年的學習中老師對我孜孜不倦地教誨、精心地培養、全心全意地指導,這不僅使我在理論知識方面受益匪淺,而且提高了我獨立分析和解決問題的能力。在此,向老師表示最誠摯的敬意。同時感在本次設計中給我很大幫助的其他老師。感四年來我們朝夕相處的同學們,在共同度過的歲月里我們互相幫助、互相學習、共同探討問題。感多年來對我辛勤培養和教育的所有老師,感曾經給我無私幫助的所有朋友。最后非常感在百忙之中評審我論文并提出寶貴意見的老師們。參考文獻1 朱兆優. 單片機原理與應用(第2版). 電子工業, 2012.72 毅剛. MCS-51單片機原理與應用. 工業大學,

44、 2004:32-403 徐建仁. 數字集成電路應用與實驗. 國防科技大學,1999:47-654 肖來勝. 單片機技術實用教程. 華中科技大學,2004:121-1345 周航慈. 單片機程序設計基礎. 航空航天大學,2003:89-1006 光東.單片機微型計算機原理與接口技術.華中理工大學,1999年。7 何希才. 新型開關電源設計與維修. 國防工業,2001:113-1378 慶雙電子元器件的選用與檢測機械工業,2003:109 王新賢通用集成電路速查手冊.科學技術,2001:1510 光序電子報第37期,2007:3-411 鄧漢馨模擬集成電子技術教程高等教育,1994:3512 許

45、興存.曾琪琳.微型計算機接口. 電子工業,2003年。13 洪潤.易濤.單片機應用技術教程.清華大學,2003年。14 全立. 單片機控制技術與應用. 電子工業,2001:54-7715 童詩白.華成英.模擬電子技術基礎. 高等教育,2001,200-215. 16 閻石.數字電子技術基礎. 高等教育,2001,523-545. 17 文博.文濤.單片機程序設計. 人民郵電,2005,25-215.18 Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriersJ. TQM Journal. 200819Tho

46、mas Floyd.Electronic DevicesM.5th ed.New Jersey:Prentice-HallInc, 2003:67-71.附錄一 系統源程序資源分配:P0.0P0.3:為數碼管控制信號;P0.4P0.5:分別作為74LS164的信號輸入口和時鐘控制信號;P0.6:PWM輸出信號P0.7:ADC0809電壓電流接收信號的選擇P1口:P1.0-P1.7分別接DC0809的數據輸出線EXP1-EXP8;P2口:10個數字鍵0至9、粗調步進“+1V”、粗調減“-1V”、微調步進“+0.1V”、 微調減“-0.1V”、一個電壓電流顯示切換鍵、預制電壓時位選鍵;P3.2:比

47、較器輸出端P3.7:ADC0809數據允許輸出控制信號PWM DATA 29H ;PWM轉換寄存器V/A DATA 30H ;電壓電流切換顯示UDIS0 DATA 31H ;顯示寄存器低位USDIS1 DATA 32H ;顯示寄存器高位KEYCODE DATA 33H ;鍵碼寄存器KEYT DATA 34H ;鍵齡寄存器BZ DATA 20HKEYOK BIT BZ.0 ;按鍵響應位 ORG 0000H LJMP MAIN ;無條件跳轉指令 ORG 000BH LJMP TIME0 ORG 0030H MAIN: MOV R2,#00 ;將數字0賦值給R2 MOV R0,#30H CLR A

48、;將A清零CLS: MOV R0,A INC R0 ;R0自加1 DJNZ R2,CLS MOV 20H,#00 MOV R2,#0AH ; 自檢 MOV DPTR,#DISLIST MOV R4,#00ZJ: MOV R3,#02 MOV A,R4 ;將R4的值給A MOVC A,A+DPTR ;讀取程序存儲器地址中的數據傳送給ASF: MOV SUBF,A ;將A的值給SUBF JNB TI,$ CLR TI DJNZ R3,SF ;R3減1不為0時跳轉 INC R4 LCALL DL500MS DJNZ R2,ZJ MOV UDIS0,#00 ;輸出低位置零 MOV UDIS1,#00

49、;輸出高位置零 LCALL DISPLAY MOV DPTR,#7FFFH ;PWM地址 MOV A,PWM MOVX DPTR,A MOV TMOD,#01H ;定時器0工作方式為1 MOV TH0,#0D8H ;定時時間為10ms MOV TL0,#0F0H SETB EA SETB ET0 SETB TR0SLPE: ORL PCON,#1 ;睡眠等待中斷 AJMP STEPTIME0:CLR EA MOV TH0,#0D8H ;定時10ms MOV TL0,#0F0H LCALL KEY SETB EA RETIDISPLAY:MOV DPTR,#DISLIST ;送顯子程序 MOV

50、A,UDIS1 ;送顯高位 MOVC A,A+DPTR CLR ACC.3 ;小數點點亮 MOV SBUF,A JNB TI,$ CLR TI ;將TI清零 MOV A,UDIS0 ;送顯低位 MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI ;將TI清零 RETKEY: MOV P2,#OFH MOV A,P2 ;鍵盤解釋子程序KSCAN:ACALLKEYS1 ;調用判鍵閉合子程序 JNZKEY1 ;有鍵閉合則轉至去抖動 AJMPRETURN ;無鍵閉合則返回KEY1:ACALLD10MS ;調用10ms延時程序 ACALLKEYS1 ;再次調用判鍵閉合子程序

51、 JNZKEY2 ;確認有鍵閉合,開始掃描 AJMPRETURN ;無鍵閉合則返回KEY2:MOVR2,#0FEH ;送首列掃描字 MOVR4,#00H ;送首列號KEY0: MOVA,R2 MOVP1,A MOVA,P1 ;掃描字從P2口送出 ACC.4,LINE1 ;第1行無鍵閉合,轉第2行 MOVA,#00H ;第1行首鍵號送A AJMPKPV ;轉鍵值計算程序LINE1: ACC.5,LINE2 ;第2行無鍵閉合,轉第3行 MOVA,#04H ;第2行首鍵號送A AJMPKPV ;轉鍵值計算程序LINE2:ACC.6,LINE3 ; 第3行無鍵閉合,轉第4行 MOVA,#08H ;第3

52、行首鍵號送A AJMPKPV ;轉鍵值計算程序LINE3: ACC.7,NEXT ;第4行無鍵閉合,轉下1列 MOVA,#0CH ;第4行首鍵號送AKPV: ADDA,R4 ;計算鍵值 PUSHACCKEY3:ACALLKEYS1 ;等待鍵釋放 JNZKEYS1 POPACC SETBFLAG ;置有鍵按下標志 SJMPKEY4RETURN:CLRFLAG ;清有鍵按下標志KEY4: RETNEXT: INCR4 ;列號加1 MOV A,R2 CJNEA,#0F7H,RETURN ;判斷4行是否都已掃描完,完則返回 RLA ;為掃描下1行做準備 MOVR2,A AJMPKEY0 ;開始掃描下1

53、列KEYS1:MOVP1,#0F0H ;判鍵閉合子程序 MOVA,P1 CPLA ANLA,#0F0H ;將A與0F0H進行與運算 RETD10MS:MOVR7,#14H ; 10ms延時子程序DLY: MOVR6,#0F8H ;將0F8H賦值給R6DLY1: DJNZR6,DLY1 DJNZR7,DLY RETKEY0:MOV KEYCODE,A ;釋放鍵 MOV KEYT,#00 CLR KEYOK ;將KEYOK清零 LJMP KEYEXT KEY1: MOV A,KEYT ;鍵齡加1 INC A MOV KEYT,A JNB KEYOK,KEY2 ;響應位為1否? MOV A,#04

54、;判斷該鍵是否允許連擊 XRL A,KEYCODE JZ KEYOUTKEY2: MOV B,#0FEH JNB KEYOK,KEY3 MOV B,#0E7H ;連擊間隔時間控制KEY3: MOV A,KEYT ADD A,B JNC KEYEXT MOV A,KEYCODE CJNE A,#01,KEYM2 ;比較KEYM2的值不等于1跳轉 LCALL ADDMODE LJMP KEYOUTKEYM2: CJNE A,#02,KEYM3 ;比較KEYM3的值不等于2跳轉 LCALL SUBMODE LJMP KEYOUTKEYM3: CJNE A,#03,KEYEXT ;比較KEYEXT的值

55、不等于3跳轉 LCALL RESTKEYOUT: SETB KEYOK MOV KEYT,#00 ;將KEYT置零KEYEXT: RETADDMODE: CLR C ;步進0.1V子程序 MOV A,PWM ;每按一下“+”鍵,PWM的幅值加0.1V ADD A,#03H JC EXT0 ;電壓到14.9V時,PWM的幅值不變 MOV PWM,A MOV A,UDIS0 ;顯示單元的十分位數加1 CJNE A,#09,ADU0 ;十分位不等于9跳轉 MOV A,UDIS1 CJNE A,#14,ADU1 ;輸出高位不等于14跳轉 AJMP ADDISADU0: INC A ;低位數值處理,A的

56、數值加1 MOV UDIS0,A AJMP ADDISADU1: INC A ;高位數值處理,A的數值加1 MOV UDIS1,A MOV UDIS0,#00ADDIS:LCALL DISPLAY ;顯示輸出值 MOV DPTR,#7FFFH MOV A,PWM MOVX DPTR,AEXT0: RET ;以下是步進0.1V子程序SUBMODE:MOV A,PWM ;每按一下“-”鍵,PWM的幅值減0.1V SUBB A,#03H JC EXT1 ;電壓到5V時,PWM的幅值不變 MOV PWM,A MOV A,UDIS0 CJNE A,#00,SUB0 ;十分位不等于0跳轉 MOV A,UDIS1 CJNE A,#00,SBU1 ;輸出高位不等于0跳轉 AJMP SBDISSBU0: DEC A ;低位數值處理,A的數值減1 MOV UDIS0,A AJMP SBDISSBU1: DEC A ;高位數值處理,A的數值減1 MOV UDIS1,A MOV UDIS0,#14SBDIS: LCALL DISPLAY MOV DPTR,#

溫馨提示

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

評論

0/150

提交評論