目 錄
摘 要
本文介紹一種用STC89C51RC單片機構(gòu)成的波形發(fā)生器,可產(chǎn)生方波、三角波、正弦波、鋸齒波四種波形,波形的頻率可由按鍵改變,并可根據(jù)需要選擇單極性輸出或雙極性輸出,具有線路簡單、結(jié)構(gòu)緊湊、性能優(yōu)越等特點。文章給出了源代碼,通過仿真測試,其性能指標達到了設(shè)計要求。
21世紀,單片機的發(fā)展非常的迅速。單片機是把主要計算機功能部件都集成在一塊芯片上的微型計算機。它是一種集計數(shù)和多種接口于一體的微控制器,被廣泛應(yīng)用在智能產(chǎn)品和工業(yè)自動化上,而51單片機是個單片機中最為典型和最有代表性的一種。
最近幾年來,隨著科技的飛速發(fā)展,單片機領(lǐng)域正在不斷的走向社會各個角落,還帶動傳統(tǒng)控制檢測日新月異更新。在實時運作和自動控制的單片機應(yīng)用到系統(tǒng)中,單片機如今是作為一個核心部件來使用,僅掌握單片機方面知識是不夠的,還應(yīng)根據(jù)其具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,加以完善。“單片機原理及應(yīng)用課程設(shè)計”是電子類專業(yè)的學(xué)科基礎(chǔ)科,它是繼“匯編語言程序設(shè)計”,“接口技術(shù)”等課程之后開出的實踐環(huán)節(jié)課程。
第1章 緒 論
當(dāng)今時代是一個新技術(shù)層出不窮的時代,在電子領(lǐng)域尤其是自動化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前所未有的速度被單片機智能化控制所取代。單片機具有體積小、功能強、成本低、應(yīng)用面廣等優(yōu)點,可以說智能化控制與自動控制的核心就是單片機。本設(shè)計是以AT89C52芯片的電路為基礎(chǔ),外部加上輸入設(shè)備和顯示設(shè)備,以此來實現(xiàn)信號發(fā)生器的硬件電路,通過軟件程序來控制單片機實現(xiàn)波形的輸出。對于不同型號的單片機只需要相應(yīng)的改變一下地址即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實際使用價值,為廣大的單片機愛好者提供了很好的借鑒。
1.2基本功能簡介以AT89C52單片機為核心,起著控制作用。系統(tǒng)包括D/A轉(zhuǎn)換電路、復(fù)位電路、時鐘電路、按鍵電路。設(shè)計思路分為五個模塊:復(fù)位電路、晶振電路模塊、AT89C52、D/A轉(zhuǎn)換電路、按鍵電路這五個模塊。
2.1 總設(shè)計框圖方案一:采用電池供電,但是耗費電源而且不節(jié)能環(huán)保顧不采用。
方案二:采用系統(tǒng)電源使用外接直流5伏。即就是usb數(shù)據(jù)線供電,才方案具有簡單方便節(jié)能高效等特點。
基于以上分析,本次設(shè)計我采用方案二。
2.2.2 核心控制的選擇核心控制器主要用于對輸入,D/A轉(zhuǎn)換,信號輸出等模塊進行控制。相當(dāng)于人的大腦故非常重要和復(fù)雜,控制器的選擇有以下兩種方案。
方案一:采用FPGA(現(xiàn)場可編程門列陣)作為系統(tǒng)的控制器。FPGA可以實現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,密度高,它將所有器件集成在一塊芯片上,減小了體積,提高了穩(wěn)定性。但由于本設(shè)計對數(shù)據(jù)處理的速度要求不高,F(xiàn)PGA的高速處理的優(yōu)勢得不到充分體現(xiàn),并且由于其集成度高,使其成本偏高,同時由于芯片的引腳較多,實物硬件電路板布線復(fù)雜,加重了電路設(shè)計和實際焊接的工作。
方案二:采用單片機作為系統(tǒng)控制器的作為其核心的方案。單片機算術(shù)運算功能強、軟件編程靈活、自由度大,可以用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點,使其在各個領(lǐng)域應(yīng)用廣泛。
基于以上分析,本次設(shè)計我采用方案二。
2.2.3 鍵盤的選擇
鍵盤是單片機不可缺少的輸入設(shè)備,是實現(xiàn)人機對話的紐帶。鍵盤按結(jié)構(gòu)形式可以分為非編碼鍵盤和編碼鍵盤,前者用軟件方法產(chǎn)生鍵碼,而后者則用硬件方法來產(chǎn)生鍵碼。在單片機中使用的都是非編碼鍵盤,因為非編碼鍵盤結(jié)構(gòu)簡單,成本低廉,非編碼鍵盤的類型很多,常用的有獨立式鍵盤,行列式鍵盤等。
方案一:獨立式鍵盤
獨立式鍵盤接口中使用幾根I/O線,就有幾個按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活編碼。獨立式鍵盤的缺點是需要占用比較多的I/O口線,當(dāng)單片機應(yīng)用系統(tǒng)鍵盤中需要的按鍵比較少或I/O口線比較富余時,可以采用這樣類型的鍵盤。
方案二:行列式鍵盤
行列式鍵盤是用N條I/O線作為行線,M條I/O線作為列線組成的鍵盤,按鍵在行線和列線的每個交叉點上。這種形式的鍵盤結(jié)構(gòu),能夠有效地提高單片機系統(tǒng)中I/O的利用率。
CPU對鍵盤的掃描可以采用取程序控制的隨機方式,即只有在CPU空閑是時才去掃描鍵盤,響應(yīng)操作人員的鍵盤輸入,即利用單片機內(nèi)部定時器每隔一定時間對鍵盤掃描一次,這樣控制方式,不管鍵盤上有無鍵閉合,CPU總是定時的關(guān)心鍵盤狀態(tài)。在大多數(shù)情況下,CPU對鍵盤可能進行空掃描。
根據(jù)以上的論述,我們采用方案一。
2.3 單片機最小系統(tǒng)51單片機是對目前所有兼容intel 8031指令系統(tǒng)的單片機的統(tǒng)稱。該系列單片機的始祖是intel的8031單片機,后來隨著技術(shù)的發(fā)展,成為目前廣泛應(yīng)用的8為單片機之一。單片機是在一塊芯片內(nèi)集成了CPU、RAM、ROM、定時器/計數(shù)器和多功能I/O口等計算機所需要的基本功能部件的大規(guī)模集成電路,又稱為MCU。51系列單片機內(nèi)包含以下幾個部件:
一個8位CPU;一個片內(nèi)振蕩器及時鐘電路;
8KB的ROM程序存儲器;
一個256B的RAM數(shù)據(jù)存儲器;
尋址64KB外部數(shù)據(jù)存儲器和64KB外部程序存儲空間的控制電路;
32條可編程的I/O口線;
兩個16位定時/計數(shù)器;
一個可編程全雙工串行口;
5個中斷源、兩個優(yōu)先級嵌套中斷結(jié)構(gòu)。
如圖2-2-1所示為單片機基本構(gòu)造,其基本性能介紹如下:
該單片機本身內(nèi)含40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中端口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C52可以按照常規(guī)方法進行編程,但不可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。
主要特性如下表所示:
兼容MCS—51指令系統(tǒng) | 32個可編程I/O線 |
8k字節(jié)可編程閃爍存儲器 | 可編程UARL通道 |
三個16位可編程定時/計數(shù)器中斷 | 時鐘頻率0-24MHz |
2個外部中斷源,共8個中斷源 | 128×8bit內(nèi)部RAM |
2個讀寫中斷口線 | 可直接驅(qū)動LED |
軟件設(shè)置睡眠和喚醒功能 | 低功耗空閑和掉電模式 |
表2-2-1 單片機主要功能描述
該單片機為40腳雙列直插封裝的8位通用微處理器,采用工業(yè)標準的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19腳)和XTAL2(18腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40腳)和VSS(20腳)為供電端口,分別接+5V電源的正負端。P0~P3 為可編程通用I/O腳,其功能用途由軟件定義,在本設(shè)計中,P0端口(32~39腳)被定義為N1功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13腳定義為IR輸入端,10腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12腳、27腳及28腳定義為握手信號功能端口,連接主板CPU的相應(yīng)功能端,用于當(dāng)前制式的檢測及會聚調(diào)整狀態(tài)進入的控制功能。
P0口:P0口是一組8位漏極開路型雙向I/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口P0寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash 編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。
P1口:P1是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時/計數(shù)器2 的外部計數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX)。Flash編程和程序校驗期間,P1接收低8位地址。
P2口:P2是一個帶有內(nèi)部上拉電阻的8 位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX @RI指令)時,P2口輸出P2鎖存器的內(nèi)容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號。
P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能P3口還接收一些用于Flash 閃速存儲器編程和程序校驗的控制信號。
RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。
ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個AL脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條 MOVX 和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。
PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)單片機由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。
EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。
XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
單片機最小原理圖如圖2-2-2所示。
單片機最小系統(tǒng)說明:
時鐘信號的產(chǎn)生:在MCS-51芯片內(nèi)部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個穩(wěn)定的自激振蕩器,這就是單片機的時鐘振蕩電路。
時鐘電路產(chǎn)生的振蕩脈沖經(jīng)過觸發(fā)器進行二分頻之后,才成為單片機的時鐘脈沖信號。
一般地一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C3,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。C3,C2的典型值為30PF。
單片機復(fù)位使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài)下,并從這個狀態(tài)開始工作。單片機復(fù)位條件:必須使9腳加上持續(xù)兩個機器周期(即24個振蕩周期)的高電平。
利用單片機的ISP功能通過與電腦串口連接,在電腦端運行ISP下載控制軟件STC-ISP.EXE(可到mcu-memory網(wǎng)站下載)即可對芯片進行燒錄。需要注意的是單片機要上電復(fù)位即冷啟動才會運行其內(nèi)部已固化的系統(tǒng)ISP程序與電腦端ISP下載控制軟件通訊。另外由于是串口通訊,有讀者會認為用戶系統(tǒng)目標板上要用通訊標準晶振如11.0592M等與電腦端通訊。其實并非這樣,用戶系統(tǒng)目標板上的晶振頻率選擇并沒有多大限制,只要不超過33M,理論上可選擇任一頻率的晶振。電腦端ISP下載控制軟件會自動檢測出用戶系統(tǒng)目標板上所使用晶振的頻率,并計算出合適的波特率,但不會超過用戶在ISP下載控制軟件中設(shè)定的最高波特率與之通信并開始燒錄。
由于該系列單片機EA管腳內(nèi)部已上拉到VCC,所以用戶程序如不在外部的存儲器中可懸空不接,晶振旁的電容C1最好去掉不接利于起振,C1可能造成用戶下載程序不成功。在編程方面,任何老的編譯器/匯編器均可使用,如果使用KEILC51編譯器,器件需選擇標準的Intel8052,頭文件包含標準的<reg52.h>,如果頭文件中未聲明新增的特殊功能寄存器可用“sfr”及“sbit”在頭文件中添加聲明地址,如果是匯編程序則用“DATA”或“EQU”在程序中聲明地址即可。
C51單片機與C52單片機比較:C52單片機有3個定時器,8KB的ROM程序存儲器,。
2.4按鍵輸入電路按鍵是由一組按壓式或觸摸式開關(guān)構(gòu)成的陣列,是一種常用的輸入設(shè)備。鍵盤可分為編碼式鍵盤和非編碼式鍵盤兩種。
1.編碼鍵盤通過硬件電路產(chǎn)生被按按鍵的鍵碼,這種鍵盤所需程序簡單,但硬件電路復(fù)雜、價格昂貴通常不被單片機系統(tǒng)采用。
2.非編碼鍵盤常用一些按鍵排列成行列矩陣,其硬件邏輯與按鍵編碼不存在嚴格的對應(yīng)關(guān)系,而要由所用的程序來決定。非編碼鍵盤的硬件接口簡單,但是要占用較多的CPU時間,通常采用可編程鍵盤管理芯片來克服這個缺點。
在接線時由于有四個引腳,連接時需要用萬用表進行測量,然后接通兩個引腳,原理圖如下。
要進行數(shù)據(jù)的計算就必須先進行數(shù)據(jù)的輸入,也就必須確定按鍵輸入的數(shù)值是什么,這就需要對鍵盤進行掃描,從而確定究竟是哪個鍵按下。
這些常開開關(guān)組成了調(diào)節(jié)按鍵,硬件電路簡單,在程序設(shè)計上也不復(fù)雜,只要在程序中消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象就可以了。這里采用最常用的方法即延時法,其的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾ms,而按鍵的時間一般遠遠大于這個時間,所以當(dāng)單片機檢測到有按鍵動靜后再延時一段時間(這里取10ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。
DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。
* 分辨率為8位;
* 電流穩(wěn)定時間1us;
* 可單緩沖、雙緩沖或直接數(shù)字輸入;
* 只需在滿量程下調(diào)整其線性度;
* 單一電源供電(+5V~+15V);
* 低功耗,20mW。
* D0~D7:8位數(shù)據(jù)輸入線,TTL電平,有效時間應(yīng)大于90ns(否則鎖存器的數(shù)據(jù)會出錯);
* ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效;
* CS:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效;
* WR1:數(shù)據(jù)鎖存器寫選通輸入線,負脈沖(脈寬應(yīng)大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負跳變時將輸入數(shù)據(jù)鎖存;
* XFER:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負脈沖(脈寬應(yīng)大于500ns)有效;
* WR2:DAC寄存器選通輸入線,負脈沖(脈寬應(yīng)大于500ns)有效。由WR2、XFER的邏輯組合產(chǎn)生LE2,當(dāng)LE2為高電平時,DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負跳變時將數(shù)據(jù)鎖存器的內(nèi)容打入DAC寄存器并開始D/A轉(zhuǎn)換。
* IOUT1:電流輸出端1,其值隨DAC寄存器的內(nèi)容線性變化;
* IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù);
* Rfb:反饋信號輸入線,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;
* Vcc:電源輸入端,Vcc的范圍為+5V~+15V;
* VREF:基準電壓輸入線,VREF的范圍為-10V~+10V;
* AGND:模擬信號地;
* DGND:數(shù)字信號地。
工作方式
根據(jù)對DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。
DAC0832引腳功能電路應(yīng)用原理圖DAC0832是采樣頻率為八位的D/A轉(zhuǎn)換芯片,集成電路內(nèi)有兩級輸入寄存器,使DAC0832芯片具備雙緩沖、單緩沖和直通三種輸入方式,以便適于各種電路的需要(如要求多路D/A異步輸入、同步轉(zhuǎn)換等)。所以這個芯片的應(yīng)用很廣泛,關(guān)于DAC0832應(yīng)用的一些重要資料見下圖: D/A轉(zhuǎn)換結(jié)果采用電流形式輸出。若需要相應(yīng)的模擬電壓信號,可通過一個高輸入阻抗的線性運算放大器實現(xiàn)。運放的反饋電阻可通過RFB端引用片內(nèi)固有電阻,也可外接。DAC0832邏輯輸入滿足TTL電平,可直接與TTL電路或微機電路連接。
DAC0832引腳功能說明:
DI0~DI7:數(shù)據(jù)輸入線,TLL電平。
ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效。
CS:片選信號輸入線,低電平有效。
WR1:為輸入寄存器的寫選通信號。
XFER:數(shù)據(jù)傳送控制信號輸入線,低電平有效。
WR2:為DAC寄存器寫選通輸入線。
Iout1:電流輸出線。當(dāng)輸入全為1時Iout1最大。
Iout2: 電流輸出線。其值與Iout1之和為一常數(shù)。
Rfb:反饋信號輸入線,芯片內(nèi)部有反饋電阻.
Vcc:電源輸入線 (+5v~+15v)
Vref:基準電壓輸入線 (-10v~+10v)
AGND:模擬地,摸擬信號和基準電源的參考地.
DGND:數(shù)字地,兩種地線在基準電源處共地比較好.
圖2-2-4 轉(zhuǎn)換電路
第三章 軟件設(shè)計與分析3.1 軟件設(shè)計的組成
該系統(tǒng)由調(diào)節(jié)部分——頻率子函數(shù)、調(diào)節(jié)部分——方波的占空比子函數(shù)、波形發(fā)生子函數(shù)、定時器0中斷子函數(shù)、定時器1中斷子函數(shù)、主函數(shù)和數(shù)據(jù)定義這幾部分組成。
在程序開始運行之后,首先是對單片機進行初始化,之后判斷信號頻率值,如符合所需的頻率,則重置時間常數(shù),不符則返回。在中斷結(jié)束后,還要來判斷波形是否符合,如符合,則顯示其頻率,不符則返回,重新判斷。
在中斷服務(wù)子程序開始后,通過判斷來確定各種波形的輸出,當(dāng)判斷選擇的不是方波后,則轉(zhuǎn)向?qū)φ也ǖ呐袛,如此反?fù)。如果選擇的是方波,則用查表的方法求出相應(yīng)的數(shù)據(jù),并通過D/A轉(zhuǎn)換器將數(shù)據(jù)轉(zhuǎn)換成模擬信號,形成所需波形信號。
\系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,二者密不可分。我們設(shè)計好的硬件電路和軟件程序必須經(jīng)過聯(lián)合調(diào)試才能驗證其正確性。因為大家都清楚兩者相互結(jié)合才能發(fā)揮最佳功效。
5.1 硬件調(diào)試硬件調(diào)試分為單元電路調(diào)試和聯(lián)機調(diào)試,單元電路調(diào)試在硬件電路設(shè)計中已經(jīng)進行對電路進行檢驗。
線路檢查:根據(jù)硬件邏輯設(shè)計圖,仔細檢查電路是否正確,并且核對元器件的型號、規(guī)格和安裝是否符合要求,必要時可用萬用表檢測線路通斷情況。先用萬用表檢查各管腳之間是否有短路、虛焊、漏焊現(xiàn)象。檢查無誤后,測試各個芯片是否有損,待檢查完畢后,將各個芯片插入各自的槽位。
電源調(diào)試:電路的第一次通電測試很重要,調(diào)試方法有兩種:一種是斷開電路穩(wěn)壓電源的輸出端,檢查空載時電源的工作情況;另一種是拔下電路上的主要繼承芯片,檢查電源的負載能力。確保電源無故障并符合性能要求。
5.2 Keil uVision2軟件調(diào)試軟件調(diào)試是通過對用戶程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。
本設(shè)計用到了Keil uVision2軟件,首先打開Keil uVision2,將程序輸入;然后進行調(diào)試,將程序中的語法錯誤和邏輯錯誤糾正,調(diào)試完畢后,創(chuàng)建HEX文件,HEX文件用于燒寫芯片,將制定程序?qū)懭胍言O(shè)計好的電路板中,使其能根據(jù)我們的要求實現(xiàn)相應(yīng)的功能;最后將HEX文件燒寫入芯片,運行電路,讓其實現(xiàn)信號發(fā)生器的功能
經(jīng)過近一個月的努力,終于順利完成了畢業(yè)設(shè)計。剛開始,我們頭緒不是很清楚,不知道從哪里入手,但通過老師的耐心指導(dǎo)并和同學(xué)認真研究設(shè)計課題,跑圖書館查資料、確定基本設(shè)計方案、對所用芯片功能進行查找、調(diào)試、上機仿真等,經(jīng)歷了一次次的困難,卻積累了很多寶貴的經(jīng)驗。在整個設(shè)計的過程中遇到的問題主要有以下三點,第一:基礎(chǔ)知識掌握的不牢固,主要表現(xiàn)在一些常用的電路的形式和功能不清楚,對書本上的內(nèi)容理解不夠透徹。第二:對一些常用的應(yīng)用軟件缺少應(yīng)用,體現(xiàn)在畫電路圖和系統(tǒng)的仿真的時候,對這些軟件的操作不熟練,浪費了很多時間。第三:相關(guān)知識掌握的不夠全面,缺少系統(tǒng)設(shè)計的經(jīng)驗。
這次設(shè)計進一步端了我的學(xué)習(xí)態(tài)度,學(xué)會了實事求是,嚴謹?shù)淖黠L(fēng),對自己要嚴格要求,不能夠一知半解,要力求明明白白。急于求成是不好的,我有所感受。如果省略了那些必要的步驟,急于求成,不僅會浪費時間,還會適得其反。我覺得動手之前,頭腦里必須清楚該怎么做,這一點是很重要的。就目前來說,我的動手能力雖然差一點,但我想,通過我的不懈努力,在這方面,我總會得到提高。這一點,我堅信。因為別人能做到的,我也一定能做到。
在此次的畢業(yè)設(shè)計中我最大的體會就是進一步認識到了理論聯(lián)系實踐的重要性。一份耕耘,一份收獲。通過這段時間的設(shè)計,讓我明白科學(xué)的思維方法和學(xué)習(xí)方法是多么重要,只有這樣才能夠有很高的效率,才能夠讓自己的工作更完美?偠灾,此次畢業(yè)設(shè)計讓我學(xué)到了好多平時在課堂上學(xué)不到的東西,增加了我的知識運用能力,增強我的實際操作能力。謝謝老師給我們提供這么好的機會,為我們之后走向社會奠定了一個好的基礎(chǔ)。
本次畢業(yè)設(shè)計讓我學(xué)到了很多,也學(xué)會到了要怎么樣去面對困難,不要對知識一知半截,要有的求實的能力,通過老師的幫助我學(xué)到了很多在平時的沒有注意到的動?xùn)|西及知識,更美沒有深入的的去理解,通過這次我要更加的明確自己。更要注重自己在各方面的鍛煉能力,把握機會。這次的設(shè)計非常的感謝老師們。
致謝
三年的大學(xué)生活接近尾聲,我的畢業(yè)設(shè)計也順利的完成了,這里首先向我的指導(dǎo)老師陳東鳳表示最誠摯的感謝,同時也感謝那些幫助過我的同學(xué)們。
在本次的畢業(yè)設(shè)計中陳老師給我提供了極大的幫助,首先在一開始的選題中我便遇到了難題,由于當(dāng)時選題的時候過于疏忽大意,沒有認真的加以分析,所選擇的題目并不是自己愛好的方向,陳老師便告訴我,最重要的就是找對方向找準目標,選擇一個自己擅長和喜歡的方向不僅能夠促使我們積極的完成設(shè)計,而且對于自己來說也是充滿著興趣,這樣做出來的東西會更加完美和輕松,所以我毅然的改題,選擇了一個自己喜歡的方向,其次,在畢業(yè)設(shè)計的過程中,陳老師不厭其煩的為我們講解了畢業(yè)設(shè)計中可能出現(xiàn)的問題,并為我們提供了完整的畢業(yè)設(shè)計模板無論我遇到什么樣的問題,她總能很耐心的為我們講解,同時她每個周一要求見面一次,督促我們抓緊時間完成畢業(yè)設(shè)計,每次見面她都要求我詳解上周所做的東西以及自己下周要做的東西,有問題或者不合理的地方她便為我指出來,加以指導(dǎo)。陳老師認真負責(zé)的態(tài)度讓我倍受感激。同時在此也感謝胡銀飛同學(xué),他解決了許多我在畢業(yè)設(shè)計中遇到的問題,特別是剛開始軟件的學(xué)習(xí)中,他給了我很大的幫助。
在此向所有畢業(yè)設(shè)計的過程中給予我?guī)椭睦蠋熀屯瑢W(xué)最誠摯的謝意。
附錄
原理圖
元件清單
Lily-lemon 發(fā)表于 2020-1-3 10:30
有兩個庫函數(shù)莫得呀?可以發(fā)一下或者解釋一下嗎?
SpringMean 發(fā)表于 2019-7-15 10:21
同問,能不能把前面的定義也發(fā)一下。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |