課程設計(論文)基于stc89c52單片機數控直流電壓源_第1頁
課程設計(論文)基于stc89c52單片機數控直流電壓源_第2頁
課程設計(論文)基于stc89c52單片機數控直流電壓源_第3頁
課程設計(論文)基于stc89c52單片機數控直流電壓源_第4頁
課程設計(論文)基于stc89c52單片機數控直流電壓源_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、1 前言 在現代家庭中各種電器的不斷出現,并要求著各種不同值的電源出現,使得家庭購買不同值得電源。數字化的也更加貼近人們的生活,因為它更加的直觀,易被接受,大家都開始追求數字化的各類電子產品。數控直流電源有著直觀,易操作,各種電壓集一身,輸出精度和穩定性都較高等優點,所以越來越受廣大人們的喜愛。以后家里的電視遙控,電動玩具等都可以共用一個電源。 穩壓電源按輸出電壓的類型分為直流穩壓電源和交流穩壓電源。其中直流穩壓電源是電子技術常用的設備之一,直流穩壓電源有許多基本功能要求,例如輸出電壓值能夠在額定輸出電壓值以下任意設定和正常工作;對輸出的電壓值要求精確的顯示和識別。而普通的直流穩壓電源或多或少

2、存在這樣或那樣的問題,他們的電源輸出時通過波段開關盒電位器來控制的,當輸出電壓需要精確輸出,或者在一個小范圍內微調時,困難相對來說就很大;而且隨著使用時間的增加,模擬電路元件在使用過程中難免發生磨損,波段開關與電位器均會或多或少產生接觸不良現象,這會造成電壓輸出的誤差。另外,傳統的串聯型穩壓電路構成較為復雜,穩壓精度不高。總體來說,傳統穩壓電源實現方式亟待改進。現當代社會是信息技術不斷發展的社會,模擬技術逐漸被更為優越方便的數字技術取代,大規模的社會化生產也要求更高的技術和效率。眾多家用電器以及各類電子電器設備均需要直流穩壓電源對其進行供電。而我們生活中用電均為220V的交流供電,這就需要通過

3、變壓、整流、濾波、穩壓電路將交流電轉換為穩定的直流電。濾波器用于濾除整流輸出中的紋波,一般傳統電路由于濾波扼流圈和電容器組成,若由晶體管濾波器來代替,則可縮小直流電源的體積,減輕其重量,而且晶體管濾波直流電源不需要直流穩壓器就能作家用電器的電源,這既降低了家用電器的成本,又降低了其成本,又縮小了其體積,使家用電器小型化。基于單片機控制的數控直流電壓源可以克服穩壓電源構成復雜,元器件磨損嚴重,穩壓精度不高,讀數不方便等缺點,更穩定更直觀的完成模擬穩壓電源的任務。而且成本小,經濟實惠,便于在大規模的社會生產中采用。所以,對于數控直流電壓源的研究與設計進步是技術上的革新,而且有實際的經濟性,可以提高

4、生產效率,是現代工業生產應用中的不二選擇。2 設計要求 設計并制作有一定輸出電壓調節范圍和功能的數控直流穩壓電源,基本要求如下:輸出直流電壓調節范圍1.4-9.9V,紋波小于10mv;電壓誤差少于1%;輸出電流為500mA;5、輸出直流電壓能步進調節,步進值為0.1V;6、由“+”“-”兩間分別控制輸出電壓步進增和減。3 總體設計方案 3.1 設計方案 本設計采用以單片機作為控制元件來實現數控元件直流電壓源的設計。本設計采用STC89C52芯片作為單片機的控制單元,以常用的DAC0832作為D/A轉換單元,STC89C52芯片的P0口和DAC0832 的數據口直接相連,DA的,接地,讓DA工作

5、在直通方式下。DA的8腳接參考電壓,DA的參考電壓接5V電源,所以在DAC0832的8腳輸出電壓的分辨率為5V/256約為0.02V,也就是說DA輸入數據端每增加1,電壓增加0.02V。通過運放UA741將DA的輸出電流轉化為電壓,再通過UA741將電壓反相并放大。最后經LM350調整輸出電壓并穩壓。其具體硬件框圖如圖1所示: 圖1 原理框圖STC89C52單片機作為一個整體,完成整個數控部分的功能。STC89C52作為一個智能化的可編程器件,便于系統功能的擴展。方案中使用運算放大器放大電壓,由于運算放大器具有很大的電源電壓抑制化,可以大大減少輸出端的紋波電壓,避免了線性調壓電源整流濾波后的紋

6、波對輸出的影響。該方案中采用三位數碼管直接對電壓值進行顯示,可以直觀明了的反映電壓值以及其對按鍵所作出的電壓變化。根據上述數控直流電壓源硬件框圖1,我們選用以下芯片來實現該數控直流電壓源的硬件電路接線:STC89C52單片機,DAC0832數模轉換器,集成運放UA741,電壓穩壓器LM350等。4 設計原理 本系統選用的模塊包括:單片機系統,D/A轉換模塊,LED顯示模塊,直流電源模塊,具體的電路圖參照附錄一。4.1 單片機模塊 STC89C52是一種帶8K字節FLASH存儲器的低電壓、高性能CMOS 8位未處理器。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指

7、令集和輸出管腳相兼容。其特點是擁有8K字節可編程FLASH存儲器,256*8位內部RAM,三個16位定時器/計數器,8個中斷源,擁有低功耗的閑置和掉電模式,以及片內振蕩器和時鐘電路。STC89C52內部有一個用于構成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內部方式產生或外部方式產生。內部方式是在RXD和TXD引腳上外接定時元件,內部振蕩器就產生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯諧振回路。晶體振蕩頻率可以在1.2-12MHz之間選擇,電容值在5-30pF之間選擇,電容值的大小可對頻率起到微調的作用。 外部方式是RXD接地,TXD接外部

8、振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率于12MHz的方波信號。片內時鐘發生器把振蕩頻率兩分頻,產生一個兩相對時鐘P1和P2,供單片機使用。 此次設計時鐘電路采用的是內部方式。CPU即中央處理器的簡稱,是單片機的核心部件,它完成各種運算和控制操作,CPU由運算器和控制器兩部分電路組成。 STC89C52的引腳功能如下:主電源引腳(根)VCC(Pin40):電源輸入,接電源。 GND(Pin20):接地線。外接晶振引腳(根) XTAL1(Pin19):片內振蕩電路的輸入端。 XTAL2(Pin20):片內振蕩電路的輸出端。控制引腳(根) RSTVPP(Pin9):復位引

9、腳,引腳上出現2個機器周期的高電平將使單片機復位。 ALEPROG(Pin30):地址鎖存允許信號。 PSEN(Pin29):外部存儲器讀選通信號。 EAVPP(Pin31):程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。 d .可編程輸入輸出引腳(32根) STC89C52單片機有4組8位的可編程I/O口,分別是P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。 P0口(Pin39Pin32):8位雙向I/O口線,名稱為P0.0P0.7。 P1口(Pin1Pin8):8位雙向I/O口線,名稱為P1.0P1.7。 P2口(Pin21P

10、in28):8位雙向I/O口線,名稱為P2.0P2.7。 P3口(Pin10Pin17):8位雙向I/O口線,名稱為P3.0P3.7。單片機處理周期包括12個振蕩周期每12個振蕩周期用來完成一項操作如取指令和計算指令執行時間可把時鐘頻率除以12取倒數然后指令執行所須的周期數因此如果你的系統時鐘是11.059MHz 除以12后就得到了每秒執行的指令個數為921583條指令取倒數將得到每條指令所須的時間1.085ms 。STC89C52的管腳圖如圖2: 圖2 STC89C52的管腳圖4.1.2 單片機外圍電路復位是單片機的一個重要工作方式。在單片機工作時,上電時首先要復位,發生故障后也要復位。復位

11、操作有兩種基本形式:一種是上電復位,另一種是按鍵復位,即要復位時,只要按圖中的KEY1鍵,電源VCC經電阻R1和R2分壓,在RESET端產生一個高電平。在上電復位時,電路要求接通電源后,通過外部電容來充電實現單片機自動復位操作。上電瞬間RESET引腳獲得高電平,隨著電容充電,RESET引腳的高電平將逐漸下降。RESET引腳的高電平只要能保持足夠的時間(2個機器周期),單片機就可以進行復位操作。單片機復位期間不產生ALE和PSEN信號,即ALE=1和PSEN=1。這表明單片機復位期間不會有任何操作。復位后:PC值為0000H,表明復位后程序從0000H開始執行:SP值為07H,需要重新置SP值:

12、單片機復位后,已使P0P3口每一端線為“1”,為這些端線用作輸入口做好準備。復位電路圖如圖所示: 圖3 復位電路單片機控制中心的各項工作都是在時鐘信號的控制下協調工作的,單片機的時鐘電路可為單片機提供一個時鐘信號。單片機本身就如一個復雜的同步時序電路,為保證工作方式的實現,電路應在唯一的時鐘信號控制下嚴格地按時序進行工作。單片機內部有一個用于構成振蕩器的高增益反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。而在芯片內部,XTAL1和XTAL2之間跨接晶體管振蕩器和微調電容,從而構成一個穩定的自激振蕩器。單片機時鐘電路可分為內部時鐘電路和外部時鐘電路。只要在單片機的XTAL1

13、和XTAL2引腳外接晶體振蕩器就構成了自激振蕩器并在單片機內部產生時鐘脈沖信號。電容C1和C2的只要功能是協調振蕩器頻率及幫助振蕩器起振,其電容值一般在20pF-60pF,典型值為30pF。外部時鐘方式是把外部已有的時鐘信號引入到單片機內。此方式常用于多單片機同時工作,以便于個單片機的同步。一般要求外部信號高電平的持續時間大于20us,且為頻率低于12MHz的方波。本設計采用內部時鐘電路來確保整個電路的協調工作。電路圖如圖所示: 圖4 時鐘電路4.2 D/A模塊 4.2.1 數模轉換器DAC0832 DAC0832是8分辨率的D/A轉換集成芯片。與微處理器完全兼容。它的特點有,分辨率為8位,電

14、流穩定時間1us,可單緩沖、雙緩沖或直接數字輸入,需要+5V+15V的電源供電。DAC0832是一種典型的8位轉換器,內部為雙緩沖寄存器既輸入寄存器和DAC寄存器,、分別為該寄存器的寫信號輸出端,ILE為輸入鎖存使能端,高電平有效,為片選端,VREF為傳輸控制端,它和共同控制DAC寄存器的工作狀態。DAC0832有兩個接地端,一般情況下,這兩個地端均并聯在接地。DAC0832的D/A轉換電路為倒型R-2R電阻網絡,故有Iout1和Iout2兩個電流輸出端,根據不同的電路組成,該芯片可以有兩種輸出模式,一種是電流輸出模式,這種模式基準電壓加在VREF端,由Iout1和Iout2輸出的電流經運算放

15、大器相加后輸出;另一種為電壓輸出方式,這種模式基準電壓加在Iout1和Iout2之間,模擬電壓從VREF端輸出。本設計采用電流輸出模式,再使輸出電流通過一個高輸入阻抗的線性運算放大器實現相應的模擬信號電壓輸出,該D/A轉換器有三種工作方式,單緩沖工作方式,雙緩沖工作方式,直通方式,該電路采用直通方式,DA的、和接地,讓DA工作在直通狀態下。 DAC0832的管腳圖如圖3所示:圖5 DAC0832管腳圖管腳的具體名稱和用法: D0 D7:數字量輸入端; :片選信號,低電平有效; ILE:數據鎖存允許信號,高電平有效; :第1寫信號,低電平有效; :第2寫信號,低電平有效; :數據傳送控制信號,低

16、電平有效; Iout1:電流輸出端1; Iout2:電流輸出端2; RFB:反饋電阻端; Vref:基準電壓,基電壓范圍為-10V +10V; GND:數字地; AGND:模擬地 ; 單片機與DAC0832的接口可按二級緩沖器方式、單緩沖器方式和直通方式聯接。如上圖4的聯接方式是直通方式聯接方式。由OUT1腳輸出的為一個模擬電流值,經過運算放大器后為一個電壓值,這電壓值輸入到后面的運算放大部分,作為后面部分的輸入。4.2.2 D/A轉換電路工作原理本設計是采用DAC0832實現數據的數模轉換,其數據口與單片機的P0口直接相連,DA的、和0.02V,也就是說DA輸入數據端每增加1,就意味著電壓輸

17、出增加0.02V。再在DA的電壓輸出端接運放UA741,將DA輸出的模擬電源轉換為電壓。如此一來,我們只要改變單片機P0口的數據輸出便可以改變DAC0832的輸出電壓,設當P0口的輸出數據位00H時,DAC0832的輸出電壓就為0V。其電路圖如圖所示: 圖6 D/A轉換電路圖4.3 電壓調整電路模塊4.3.1 集成運放UA741UA741是一款集成運算放大器,集成運算放大器是一種高增益多級直接耦合放大器,其各部分作用如圖7所示:差動輸入級 使運放有盡可能高的輸入阻抗級共模抑制比。中間放大級 由多級直接耦合放大器組成,以獲得足夠高的電壓增益。輸出級 可使運放具有一定幅度的輸出電壓、輸出電流和盡可

18、能小的輸出電阻。在輸出過載時有自動保護作用以免損壞集成塊。輸出級一般為互補對稱推挽電路。偏執電路 為各級提供合適的靜態工作點。為使工作點穩定,一般采用恒流源偏置電路。 在本設計中用到UA741共有兩個作用:放大電壓和反相作用。其引腳圖如圖8所示: 差動輸入級輸 出 級中間輸入級 偏置電路 圖7 集成運放UA741組成框圖 圖8 UA741管腳圖4.3.2 電路工作原理 本設計這一部分的工作原理為:將前一步電路輸出的反相電壓再接上一個UA741進行放大,此UA741采用反相接法,由于前一個UA741中輸出的電壓是負電壓,所以該部分接上的UA741作為負反饋放大電路對輸出電壓進行反相放大,再通過一

19、個可調的滑動變阻器調節該運算放大器的電壓放大倍數。接下來,該集成運放UA741的輸出端通過電阻接到LM350的調整端,通過改變UA741的輸出電壓即可控制LM350的輸出電壓,也就是數控電壓源的最終輸出電壓值。如圖9所示,因為輸出電壓Vout=Vref*(1+R10/R11)+Iadj*R10。設節點A的電壓為Ux,運放UA741的輸出電壓為U,則有VoutUx=Vref,又有Ux=(Vout-U)/(R10/R11)*R10+U,由此可見,Vout與U之間存在線性關系,Vout隨著U的變化而變化,改變電位器RV1的阻值即可改變U的值,進而改變整個電路的輸出Vout。數值計算:(1)輸出電壓最

20、小值Vmin的計算 由LM350的輸出電壓公式可知Vmin=1,25單片機送給DAC0832的數值 在設計時,要求單片機送給DAC0832的數值為00H時,輸出端輸出的電壓為1.4V,及單片機送給DAC0832的數值為0FFH時輸出電壓值為9.9V,所以每當電壓增加0.1V時,單片機送給DAC0832的數值就要增加3。所以在編程時,按一下步進鍵,P0口的數據便要變化3.所以可以通過調節電位器來改變運放的放大倍數,使單片機送給DAC0832的數值增加3,輸出電壓就要增加0.1V。 電壓調整電路的工作電路如圖9所示。Vout口輸出電壓即是最終電壓。 圖9 電壓調整電路圖4.4 鍵盤電路模塊4.4.

21、1 鍵盤電路的分類 鍵盤接口通常包括硬件和軟件兩部分。硬件是指鍵盤的結構及其主機的連接方式;軟件是指對鍵盤的操作的識別與分析,即鍵盤管理程序。鍵盤一般是一組開關(按鍵)的集合。常用的按鍵有三種:機械觸點式:利用金屬的彈性使鍵盤復位。導電橡膠式:利用橡膠的彈性使按鍵復位。柔性按鍵:外形及面板布局等可按整機要求設計,在價格、壽命、防潮、防銹等方面顯示出加強的優越性。鍵盤按其工作原理又可分為編碼式鍵盤和非編碼式鍵盤。這兩類鍵盤的主要區別是識別鍵符及給出相應鍵碼的方法。編碼鍵盤主要是用硬件來實現對鍵的識別。非編碼鍵盤主要是由軟件來實現鍵盤的定義與識別。非編碼式鍵盤按照與主機連接方式的不同,分為獨立鍵盤

22、和矩陣式鍵盤。 (1)獨立式鍵盤:獨立式鍵盤中,每個按鍵占用一根I/O口線,每個按鍵電路相對獨立。I/O口通過按鍵與地相連,I/O口有上拉電阻,無鍵按下時,引腳為高電平,有鍵按下時,引腳電平被拉低。I/O口內部有上拉電阻時,外部可不接上拉電阻。 (2)矩陣式鍵盤:行列式鍵盤采用行列電路結構,當按鍵較多時所占用的口線相對較少,鍵盤規模越大,其優點越明顯。所以,當按鍵數目大于8時,一般采用矩陣式鍵盤結構。本設計采用機械觸點式鍵盤按非編碼方式工作。 4.4.2 鍵盤電路的工作原理當無鍵按下時,單片機的P1.0、P1.1口為高電平。當有按鍵按下時,單片機相應口線通過按鍵與地相連的電路被接通,單片機接口

23、被拉成低電平,此時其他口線的電平狀態不變。所以,通過檢測P1.0、P1.1口的電平狀態,即可判斷鍵盤上哪個鍵被按下。鍵盤電路工作原理圖如圖10所示: 圖10 鍵盤電路圖4.5 LED數碼管顯示模塊 4.5.1 數碼管顯示簡介 LED顯示器是一種通過控制半導體發光二極管的顯示方式,用來顯示圖像等各種信息的顯示屏幕。本設計所用到的LED顯示器由七個發光二極管組成,因此也稱為七段LED顯示器。此外,在本設計所用到的LED顯示器中還有一個圓點型發光二極管(在圖中以dp表示),作為小數點的顯示使用。通過七段發光二極管的不同組合,可以顯示多種數字、字母或者其他符號。LED中的發光二極管有兩種接法:a.共陽

24、極接法:把發光二極管的陽極連在一起構成公共陽極。使用時將公共陽極連接到+5V電源上。這樣若陰極端輸入低電平,則該發光二極管就導通點亮,若陰極端輸入高電平,則不點亮。b.共陰極接法:把發光二極管的陰極連在一起構成公共陰極。使用時公共陰極接地,這樣若二極管的陽極端輸入高電平,則該發光二極管就導通點亮,若陽極端輸入低電平,則該發光二極管不點亮。本設計采用共陰極接法。七段發光二極管,再加上一個小數點,共計8段。采用LED顯示器。LED顯示器由七個發光二極管組成,本設計采用共陽極接法。顯示器采用動態顯示方式。原因在于:靜態顯示方式要求口線多,占用資源多,成本就高,而動態顯示方式,電路簡單、節省口線、成本

25、低。 LED通常有兩種顯示方法:動態顯示和靜態顯示。 動態顯示:即逐位點亮顯示器的每一位,對于顯示器的每一位而言,每隔一段時間點亮一次顯示器的亮度與導通電流有關,也與點亮時間和間隔時間有關。在多位LED顯示時,為了簡化電路、降低成本,將所有位的段選碼并聯在一起,由一個8位輸入端口控制,而共陰極或共陽極點分別由相應的口線控制。 靜態顯示:是當顯示器顯示某一個字符時,相應的發光二極管恒定地導通或截止,并且顯示器的各位同時顯示。靜態顯示時,較小的驅動電流就能得到較高的顯示亮度。LED顯示器工作在靜態顯示方式下,共陰極點或共陽極點連接在一起接地:每位的段選(a-dp)與一個8位并行口相連。靜態顯示顯示

26、效果好,但是功耗大,但不占用端口,只需兩個串口線輸出,變成較為簡單。而且采用靜態顯示需要的驅動器件多,硬件成本相對更高。 比較以上兩種方案,方案一硬件簡單程序復雜,方案二硬件復雜程序簡單,考慮到實惠和對自己的編程鍛煉,選擇方案動態顯示。本次設計用到的是三位動態顯示。動態顯示是一位一位地輪流點亮各位數碼管。在本次設計中采用的是共陽極的三位一體的LED,1、2、3分別為三個數碼顯示的分別為三個數碼管顯示的控制引腳,其原理與單個LED的顯示原理完全相同。顯示部分電路圖: 圖12 顯示部分電路圖4.5.2 數碼管編碼表 7段數碼管可以包括小數點的09的數字和部分的英文字母,為了獲得不同的字符,數碼管各

27、段所加的電平也不同,編碼也不一樣。共陰極數碼管的字型,字段和編碼的關系如下表1: 十六進制數 h gf edcba 顯示代碼 0 0 xc0 1 0 xf9 2 0 xa4 3 0 xb0 4 0 x99 5 0 x92 6 0 x82 7 0 xf8 8 0 x80 9 0 x90 . 0 x7f 表 1 數碼管編碼表(共陽)5 軟件部分5.1 開發工具介紹 單片的使用除了硬件,同樣也要軟件的使用,我們寫匯編程序編程CPU可執行的機器碼有兩種方法,一種是手工匯編,一種是機器匯編。機器匯編通過匯編軟件變為機器碼,用于MSC-51單片機的匯編軟件有早期的A51,隨著單片機開發技術的不斷發展,從使

28、用普通匯編語言到高級語言的不斷發展,Keil是目前最流行開發MCS-51系列單片機的軟件。Keilc51匯編,PLM語言和C語言的程序設計,界面友好。Keil是美國keil software公司出品的52系列兼容單片機c語言開發系統。用過匯編語言后再使用C語言來開發,體會更加深刻。 KeilC51軟件提供豐富的庫,與匯編相比,C語言在功能上,結構上,可讀性,可維護性上有明顯的優勢,因而易學易用函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生產的匯編代碼,就能體會到KeilC51DE 生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解,在

29、開發大型軟件時更能體現高級語言的優勢。5.2 直流電壓源軟件系統的設計5.2.1 主程序源程序本設計的關鍵是對直流電壓源的控制和顯示。其中,當電源打開的時候,單片機控制單元STC89C52進行復位,寄存器清零,單片機送給DAC0832的數值為00H,輸出電壓為0V,此時經過兩個運算放大器的倒相放大后,電壓仍為0V,再經過穩壓器LM350后,輸出為Vout=1.25*(1+27/220)=1.4V。調整單片機的輸出數值到0FFH時,令輸出電壓變為9.9V。也即每當單片機數值增加3時,電壓增加0.1V。所以,軟件程序負責循環檢測是否有按鍵信號,如果KEY2按下,則輸出電壓增加0.1V;如果KEY3

30、按下,則輸出電壓減小0.1V;如果KEY1按下,則單片機復位,返回初始狀態,單片機輸出再次變為00H,輸出電壓再次變為1.4V。 主程序的工作是循環調用鍵掃描函數,根據鍵掃描函數的值判斷有無按鍵按下。若無按鍵按下,直接調用顯示函數,顯示當前的電壓值。若KEY2按下,令P0的數據加3,令輸出電壓增加0.1V,然后調用顯示子函數,顯示當前電壓值。若KEY3按下,令P0口的數據減3,令輸出電壓減小0.1V。然后再次調用顯示子函數,顯示減小后的電壓值。主程序流程圖如圖13所示。主程序源代碼見附錄2.1。5.2.2 顯示子程序源程序本設計采用LED顯示器動態顯示電壓數值,所以需要兩組單片機接口,一組為P

31、0口,一組為P2口,P2口負責接收段控碼。先將顯示電壓的整數位表示出來,再將小數點后第一位表示出來,最后表示出小數點后第二位。再通過一個循環語句依次點亮三位LED顯示器,使它們的值對應顯示三位電壓值。顯示子程序流程圖如圖14所示。 顯示子程序源代碼見附錄2。 開 始 初 始 化顯示初值送顯示緩存調顯示子程序調延時子程序調鍵掃子程序是否有鍵按下YKRY2鍵按下Y NKEY3鍵按下Y N調顯示子程序 調延時子程序 N返 回 圖13 子程序流程圖 開 始初 始 化暫存顯示的電壓查表取段控碼段控碼送P2口位控碼送P1口調延時子程序修改段控碼修改位控碼三位掃描完NY 返 回 圖14 顯示子程序流程圖5.

32、2.3 鍵掃子程序源程序 鍵掃子程序負責掃描P1口,屏蔽掉高四位數據后,得到P1口的處理函數,即P1口低四位的反碼,然后調鍵掃描,判斷P1口是否為0,經顯示子程序延時去抖后,為零即無鍵按下,不為零即有鍵按下,然后返回鍵值給主函數。 鍵掃子程序流程圖如圖15所示。 鍵掃子程序源代碼見附錄。 開 始有鍵閉合N Y調顯示子程序延時去抖有鍵閉合N Y調顯示子程序鍵是否釋放 N Y 保存鍵值 結 束 圖15 鍵掃子程序流程圖6.結 論本文完成了一個數控電壓源的設計,此數控電壓源輸出電壓值在1.4-9.9V之間,通過兩個按鍵控制直流電壓源輸出的增加。本設計實現步驟如下:采用STC89C52芯片作為單片機的

33、控制單元,以常用的DAC0832作為D/A轉換單元,讓DAC0832工作在直通方式下。DAC0832的8腳接參考電壓,DA的參考電壓接5V電源,所以在DAC0832的8腳輸出電壓的分辨率為5V/256約等于0.02V,也就是說DAC0832輸入數據端每增加1,電壓增加0.02V。通過運放UA741將DAC0832的輸出電流轉換為電壓,再經過運放UA741將電壓反相并放大。最后經LM350調整輸出電壓并穩壓。軟件部分設計為控制按鍵每按一次,單片機P0口輸出數據增加3,DAC0832輸出電壓增加0.06V,此時調整UA741的放大系數,使電壓調整電路最終輸出電壓增加0.1V。即控制按鍵每按下一次,

34、輸出電壓增加0.1V。同時,主程序調用顯示子程序,將電壓值顯示在LED顯示屏上。本設計的具體功能是使輸出電壓值在1.4V-9.9V之間,KEY1鍵用于單片機控制單元復位,KEY2鍵用于電源步進增加0.1V,KEY3鍵用于電源步進減0.1V。使用該多功能數控電壓源操作簡單。當上電時,電源會輸出設置的1.4V電壓,若在此時按下KEY2鍵,電壓加0.1V,按KEY3鍵電壓減0.1V,然后通過一個三位一體的LED顯示器顯示輸出的電壓值。本設計仍有不足之處,其中主要的不足之處在于沒有達到0V的設計要求。其主要原因是設計條件不夠,使得DAC0832的基準電壓只能為+5V,所以只能輸出負電壓。而且LM350

35、的輸出端比輸入端也至少高1.4V的電壓,所以在本次設計中不能達到0V的電壓,但如果在0832的基準電壓上再加上一個-5V的基準電壓便可達到輸出0V的要求。在本次設計的過程中,我遇到了很多問題,這給我很難的感覺。比如,單片機程序的編寫,雖然以前學過一點C語言,但是基本上不知道如何用C語言編寫單片機程序,匯編語言更是沒有學好。還有一些看似很簡單的電路,要動手把它設計出來是一件很難的事情,主要原因是自己沒有經常動手設計過電路以及在設計過程中用到的知識我們學得不扎實,還有對于資料的查找也是一個問題,在網上查資料的時候常常發現在不同的網站上關于同一個器件的資料有所不同。因此在以后的學習中我們應該學會如何

36、高效快速地查找資料,同時我們也要學會把書本中的知識和實際連接起來,這不論是對我們以后的就業還是學習,都會起到很大的幫助。在老師詳細說明了任務要求后,我們就開始大量的查資料,上網,去圖書館搜索相關的東西,后來終于在查閱大量網絡和圖書資料后做出了原理圖。在這次的課程設計中,我收獲的東西很多。這次課程設計不但加深了我對課本知識的理解,而且還加深了對單片機的了解。我們課本上所學知識是有限的,因此我們在解決實際問題的時候,不但要充分利用已學的知識,還要積極的運用網絡,常到圖書館查閱資料。在這次課程設計中我不僅學到了非常多的知識還深深地感受到了團結就是力量與智慧。這段時間里,在我們組成員默契的配合下,圓滿

37、地完成了課程設計任務。這次課程設計不僅鞏固了我們在課堂上所學到的知識還極大的增長了見識。同時,也使我們把理論與實踐真正意義上相結合起來,考驗了我們借助網絡搜集查閱相關文獻資料和組織材料的綜合能力。從中可以自我檢測,認識到自己哪方面有欠缺、不足,以便在日后的工作中得以改進、提高。通過此次課程設計,我也對Keil、Proteus、AD09等軟件的使用,加深了對它們的了解。總之,我非常地感謝這次課程設計,它讓我懂得了很多東西,也學會了很多東西,這是一件非常有意義的任務。8 謝辭在這次課程設計中,要特別感謝帶領我們的老師,雖然這是我們第二次做課程設計,但是我們對于這次的設計題目沒有多少思路,不知如何下

38、手,每次見面你都會給我們講的特別仔細,讓我們明白接下來一步該做什么,該借閱什么樣的參考書,最后是報告的格式,格式非常重要,包括以后的畢業論文。還要感謝我們這組的每個成員,你們都非常有知識,教會了我很多不明白的地方,讓我懂得了團隊合作的重要性。最后我們要感謝尊敬的學校領導及學院領導和老師,感謝你們把課程設計安排在假期中,讓我們不用擔心什么考試,有充足的時間完成課程設計,可以充分利用圖書館的資源,增長我們的見識,為以后的畢業設計打好了基礎。有了這些,我們才能這么圓滿地完成這次課程設計的任務,感謝你們。9參考文獻 1胡輝、單片機原理及應用設計、中國水利水電出版社、2005 2楊素行、模擬電子技術基礎

39、簡明教程、高等教育出版社、2008 3余孟嘗、數字電子技術基礎簡明教程、高等教育出版社、2007 4譚浩強、C程序設計、清華大學出版社、2007 5龔尚福、微機原理與接口技術、西安電子科技大學出版社、2006 6何希才 張明莉、新型穩壓電源及其應用實例、電子工業出版社、2004 7裴云慶 楊旭 王兆安、開關穩壓電源的設計和應用、機械工業出版社、2010附錄1:電路原理圖附錄2:軟件部分源程序#include#include#include#include#define uchar unsigned char#define uint unsigned int#define DAC0832 XBYTE0XEFFFfloat vol;void delay(uint a);sbit e=P16;sbit f=P15;sbit g=P14;uchar led3;uchar t=0;uchar keychuli();uchar key();void put_on_leds(); /顯示輸出函數char code ledm=0 xc0,/*0*/ 0 xf9,/*1*/ 0 xa4,/*2*/ 0 xb0,/*3*/ 0 x99,/*4*/ 0 x92,/*5*/ 0 x82,/*6*/ 0 xf8,/*7*/ 0 x80,/*8*/ 0

溫馨提示

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

評論

0/150

提交評論