版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)設計(論文)</b></p><p> 系 部: 電氣工程系 </p><p> 專 業(yè): 應用電子專業(yè) </p><p> 題 目: 單片機控制多功能信號發(fā)生器
2、 </p><p> 2012年 5月 </p><p> 畢業(yè)設計(論文)中文摘要</p><p> 畢業(yè)設計(論文)外文摘要</p><p><b> 目錄</b></p><p> 1 緒論 </p><p> 近年來,單片微型計算機
3、以其強大的生命力飛速發(fā)展,在工業(yè)控制、智能儀器儀表、智能化設備和家用電器等領域得到了廣泛的應用,因而引起了各行各業(yè)的極大關注,有著廣闊的發(fā)展前景。論文設計的是一個單片機控制多功能信號發(fā)生器。</p><p><b> 2 單片機概述</b></p><p> 2.1 單片機基礎知識</p><p> 一臺能夠工作的計算機要有這樣幾個部份構
4、成:CPU(進行運算、控制)、RAM(數據存儲)、ROM(程序存儲)、輸入/輸出設備(例如:串行口、并行輸出口等)。在個人計算機上這些部份被分成若干塊芯片,安裝一個稱之為主板的印刷線路板上。而在單片機中,這些部份,全部被做到一塊集成電路芯片中了,所以就稱為單片(單芯片)機,而且有一些單片機中除了上述部份外,還集成了其它部份如A/D,D/A等。隨著大規(guī)模集成電路技術的發(fā)展,中央處理器(CPU)、隨機存取存儲器(RAM)、只讀存儲器(ROM
5、)、(I/O)接口、定時器/計數器和串行通信接口,以及其他一些計算機外圍電路等均可集成在一塊芯片上構成單片微型計算機,簡稱為單片機。單片機具有體積小、成本低,性能穩(wěn)定、使用壽命長等特點。其最明顯的優(yōu)勢就是可以嵌入到各種儀器、設備中,這是其他計算機和網絡都無法做到的[9,10]。</p><p> 我們平常老是講8051,又有什么8031,現在又有89C51,它們之間究竟是什么關系? MCS51是指由美國INTE
6、L公司(對了,就是大名鼎鼎的INTEL)生產的一系列單片機的總稱,這一系列單片機包括了好些品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產品,該系列其它單片機都是在8051的基礎上進行功能的增、減、改變而來的,所以人們習慣于用8051來稱呼MCS51系列單片機,而8031是前些年在我國最流行的單片機,所以很多場合會看到8031的名稱。INTEL公司將MCS51的核心技術授權給了很多其它公
7、司,所以有很多公司在做以8051為核心的單片機,當然,功能或多或少有些改變,以滿足不同的需求,其中89C51就是這幾年在我國非常流行的單片機,它是由美國ATMEL公司開發(fā)生產的。</p><p> 2.2 單片機的內部、外部結構</p><p> 2.2.1單片機的外部結構</p><p> 拿到一塊芯片,想要使用它,首先必須要知道怎樣連線,我們用的一塊稱之為
8、89C51的芯片,下面我們就看一下如何給它連線。 1、 電源:這當然是必不可少的了。單片機使用的是5V電源,其中正極接40引腳,負極(地)接20引腳。 2、 振蒎電路:單片機是一種時序電路,必須提供脈沖信號才能正常工作,在單片機內部已集成了振蕩器,使用晶體振蕩器,接18、19腳。只要買來晶振,電容,連上就可以了,按圖1接上即可。 3、 復位引腳:按圖1中畫法連好,至于復位是何含義及為何需要復要復位,在單片機功能中介紹。 4、 EA引腳:
9、EA引腳接到正電源端。 至此,一個單片機就接好,通上電,單片機就開始工作了。</p><p> 我們的第一個任務是要用單片機點亮一只發(fā)光二極管LED,顯然,這個LED必須要和單片機的某個引腳相連,否則單片機就沒法控制它了,那么和哪個引腳相連呢?單片機上除了剛才用掉的5個引腳,還有35個,我們將這個LED和1腳相連。(見圖1,其中R1是限流電阻)</p><p> 按照這個圖的接法,當1
10、腳是高電平時,LED不亮,只有1腳是低電平時,LED才發(fā)亮。因此要1腳我們要能夠控制,也就是說,我們要能夠讓1引腳按要求變?yōu)楦呋虻碗娖?。即然我們要控?腳,就得給它起個名字,總不能就叫它一腳吧?叫它什么名字呢?設計51芯片的INTEL公司已經起好了,就叫它P1.0,這是規(guī)定,不可以由我們來更改。 </p><p><b> 圖1.1</b></p><p> 名字
11、有了,我們又怎樣讓它變'高'或變'低'呢?叫人做事,說一聲就可以,這叫發(fā)布命令,要計算機做事,也得要向計算機發(fā)命令,計算機能聽得懂的命令稱之為計算機的指令。讓一個引腳輸出高電平的指令是SETB,讓一個引腳輸出低電平的指令是CLR。因此,我們要P1.0輸出高電平,只要寫SETB P1.0,要 P1.0輸出低電平,只要寫 CLR P1.0就可以了。</p><p> 現在我們
12、已經有辦法讓計算機去將P10輸出高或低電平了,但是我們怎樣才能計算機執(zhí)行這條指令呢?總不能也對計算機也說一聲了事吧。要解決這個問題,還得有幾步要走。第一,計算機看不懂SETB CLR之類的指令,我們得把指令翻譯成計算機能懂的方式,再讓計算機去讀。計算機能懂什么呢?它只懂一樣東西——數字。因此我們得把SETB P1.0變?yōu)椋―2H,90H ),把CLR P1.0變?yōu)?(C2H,90H ),至于為什么是這兩個數字,這也是由51芯片的設計者-
13、-INTEL規(guī)定的,我們不去研究。第二步,在得到這兩個數字后,怎樣讓這兩個數字進入單片機的內部呢?這要借助于一個硬件工具"編程器"。</p><p> 我們將編程器與電腦連好,運行編程器的軟件,然后在編緝區(qū)內寫入(D2H,90H)見圖2,寫入……好,拿下片子,把片子插入做好的電路板,接通電源……什么?燈不亮?這就對了,因為我們寫進去的指令就是讓</p><p><
14、;b> 圖2</b></p><p> P10輸出高電平,燈當然不亮,要是亮就錯了?,F在我們再撥下這塊芯片,重新放回到編程器上,將編緝區(qū)的內容改為(C2H,90H),也就是CLR P1.0,寫片,拿下片子,把片子插進電路板,接電,好,燈亮了。因為我們寫入的()就是讓P10輸出低電平的指令。這樣我們看到,硬件電路的連線沒有做任何改變,只要改變寫入單片機中的內容,就可以改變電路的輸出效果。<
15、;/p><p> 2.2.2單片機內部結構分析</p><p> 我們來思考一個問題,當我們在編程器中把一條指令寫進單片要內部,然后取下單片機,單片機就可以執(zhí)行這條指令,那么這條指令一定保存在單片機的某個地方,并且這個地方在單片機掉電后依然可以保持這條指令不會丟失,這是個什么地方呢?這個地方就是單片機內部的只讀存儲器即ROM(READ ONLY MEMORY)。為什么稱它為只讀存儲器呢?剛
16、才我們不是明明把兩個數字寫進去了嗎?原來在89C51中的ROM是一種電可擦除的ROM,稱為FLASH ROM,剛才我們是用的編程器,在特殊的條件下由外部設備對ROM進行寫的操作,在單片機正常工作條件下,只能從那面讀,不能把數據寫進去,所以我們還是把它稱為ROM。</p><p> 2.3 單片機基本概念</p><p> 2.3.1數的本質和物理現象</p><p&
17、gt; 我們知道,計算機可以進行數學運算,這可令我們非常的難以理解,計算機嗎,我們雖不了解它的組成,但它總只是一些電子元器件,怎么可以進行數學運算呢?我們做數學題如37+45是這樣做的,先在紙上寫37,然后在下面寫45,然后大腦運算,最后寫出結果,運算的原材料:37、45和結果:82都是寫在紙上的,計算機中又是放在什么地方呢?為了解決這個問題,先讓我們做一個實驗:這里有一盞燈,我們知道燈要么亮,要么不亮,就有兩種狀態(tài),我們可以用’0’
18、和’1’來代替這兩種狀態(tài),規(guī)定亮為’1’,不亮為’0’?,F在放上兩盞燈,一共有幾種狀態(tài)呢?我們列表來看一下:</p><p> 請大家自已寫上3盞燈的情況000 001 010 011 100 101 110 111</p><p> 我們來看,這個000,001,101 不就是我們學過的的二進制數嗎?本來,燈的亮和滅只是一種物理現象,可當我們把它們按一按的順序排更好后,燈的亮和滅就代
19、表了數字了。讓我們再抽象一步,燈為什么會亮呢?看電路1,是因為輸出電路輸出高電平,給燈通了電。因此,燈亮和滅就可以用電路的輸出是高電平還是低電平來替代了。這樣,數字就和電平的高、低聯系上了。(請想一下,我們還看到過什么樣的類似的例子呢?(海軍之)燈語、旗語,電報,甚至紅、綠燈)</p><p> 2.3.2 位、字節(jié)的含義</p><p><b> 位的含義:</b&g
20、t;</p><p> 通過上面的實驗我們已經知道:一盞燈亮或者說一根線的電平的高低,可以代表兩種狀態(tài):0和1。實際上這就是一個二進制位,因此我們就把一根線稱之為一“位”,用BIT表示。</p><p><b> 字節(jié)的含義: </b></p><p> 一根線可以表于0和1,兩根線可以表達00,01,10,11四種狀態(tài),也就是可以表于0
21、到3,而三根可以表達0-7,計算機中通常用8根線放在一起,同時計數,就可以表過到0-255一共256種狀態(tài)。這8根線或者8位就稱之為一個字節(jié)(BYTE)。不要問我為什么是8根而不是其它數,因為我也不知道。(計算機世界是一個人造的世界,不是自然界,很多事情你無法問為什么,只能說:它是一種規(guī)定,大家在以后的學習過程中也要注意這個問題)</p><p><b> 2.3.3總線:</b><
22、/p><p> 我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中,連線并不成為一個問題,因為各器件間一般是串行關系,各器件之間的連線并不很多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協調,所以就需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數量將多得驚人,所以在微處理機中引入了總線的概念,各個器件共同享用連線,所
23、有器件的8根數據線全部接到8根公用的線上,即相當于各個器件并聯起來,但僅這樣還不行,如果有兩個器件同時送出數據,一個為0,一個為1,那么,接收方接收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發(fā)送數據(可以有多個器件同時接收)。器件的數據線也就被稱為數據總線,器件所有的控制線被稱為控制總線。在單片機內部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配
24、地址當然也是以電信號的形式給出的,由于存儲單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總線。</p><p> 2.3.4數據、地址、指令:</p><p> 之所以將這三者放在一起,是因為這三者的本質都是一樣的──數字,或者說都是一串‘0’和‘1’組成的序列。換言之,地址、指令也都是數據。指令:由單片機芯片的設計者規(guī)定的一種數字,它與我們常用的指令助記符有著嚴格的一一對
25、應關系,不可以由單片機的開發(fā)者更改。地址:是尋找單片機內部、外部的存儲單元、輸入輸出口的依據,內部單元的地址值已由芯片設計者規(guī)定好,不可更改,外部的單元可以由單片機開發(fā)者自行決定,但有一些地址單元是一定要有的(詳見程序的執(zhí)行過程)。數據:這是由微處理機處理的對象,在各種不同的應用電路中各不相同,一般而言,被處理的數據可能有這么幾種情況:</p><p> 1·地址(如MOV DPTR,#1000H),
26、即地址1000H送入DPTR。</p><p> 2·方式字或控制字(如MOV TMOD,#3),3即是控制字。</p><p> 3·常數(如MOV TH0,#10H)10H即定時常數。</p><p> 4·實際輸出值(如P1口接彩燈,要燈全亮,則執(zhí)行指令:MOV P1,#0FFH,要燈全暗,則執(zhí)行指令:MOV P1,#00H
27、)這里0FFH和00H都是實際輸出值。又如用于LED的字形碼,也是實際輸出的值。</p><p> 理解了地址、指令的本質,就不難理解程序運行過程中為什么會跑飛,會把數據當成指令來執(zhí)行了。</p><p> 2.3.5 P0口、P2口和P3的第二功能用法</p><p> 初學時往往對P0口、P2口和P3口的第二功能用法迷惑不解,認為第二功能和原功能之間要有一
28、個切換的過程,或者說要有一條指令,事實上,各端口的第二功能完全是自動的,不需要用指令來轉換。如P3.6、P3.7分別是WR、RD信號,當微片理機外接RAM或有外部I/O口時,它們被用作第二功能,不能作為通用I/O口使用,只要一微處理機一執(zhí)行到MOVX指令,就會有相應的信號從P3.6或P3.7送出,不需要事先用指令說明。事實上‘不能作為通用I/O口使用’也并不是‘不能’而是(使用者)‘不會’將其作為通用I/O口使用。你完全可以在指令中按排
29、一條SETB P3.7的指令,并且當單片機執(zhí)行到這條指令時,也會使P3.7變?yōu)楦唠娖?,但使用者不會這么去做,因為這通常這會導致系統的崩潰(即死機)。</p><p> 23.6程序的執(zhí)行過程 </p><p> 單片機在通電復位后8051內的程序計數器(PC)中的值為‘0000’,所以程序總是從‘0000’單元開始執(zhí)行,也就是說:在系統的ROM中一定要存在‘0000’這個單元,并且在‘
30、0000’單元中存放的一定是一條指令。</p><p><b> 2.3.7堆棧 </b></p><p> 堆棧是一個區(qū)域,是用來存放數據的,這個區(qū)域本身沒有任何特殊之處,就是內部RAM的一部份,特殊的是它存放和取用數據的方式,即所謂的‘先進后出,后進先出’,并且堆棧有特殊的數據傳輸指令,即‘PUSH’和‘POP’,有一個特殊的專為其服務的單元,即堆棧指針SP,
31、每當執(zhí)一次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執(zhí)行一次POP指令,SP就(在原來值的基礎上)自動減1。由于SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP的值,就可以把堆棧設置在規(guī)定的內存單元中,如在程序開始時,用一條MOV SP,#5FH指令,就時把堆棧設置在從內存單元60H開始的單元中。一般程序的開頭總有這么一條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元開始往后,
32、而08H到1FH這個區(qū)域正是8031的第二、三、四工作寄存器區(qū),經常要被使用,這會造成數據的渾亂。不同作者編寫程序時,初始化堆棧指令也不完全相同,這是作者的習慣問題。當設置好堆棧區(qū)后,并不意味著該區(qū)域成為一種專用內存,它還是可以象普通內存區(qū)域一樣使用,只是一般情況下編程者不會把它當成普通內存用了。</p><p> 2.3.8單片機的開發(fā)過程</p><p> 這里所說的開發(fā)過程并不是
33、一般書中所說的從任務分析開始,我們假設已設計并制作好硬件,下面就是編寫軟件的工作。在編寫軟件之前,首先要確定一些常數、地址,事實上這些常數、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好后,其地址也就被確定了,當器件的功能被確定下來后,其控制字也就被確定了。然后用文本編緝器(如EDIT、CCED等)編寫軟件,編寫好后,用編譯器對源程序文件編譯,查錯,直到沒有語法錯誤,除了極簡單的程序外,一般應用仿真機對軟件進行調試,直
34、到程序運行正確為止。運行正確后,就可以寫片(將程序固化在EPROM中)。在源程序被編譯后,生成了擴展名為HEX的目標文件,一般編程器能夠識別這種格式的文件,只要將此文件調入即可寫片。在此,為使大家對整個過程有個認識,舉一例說明:</p><p><b> ORG 0000H</b></p><p> LJMP START</p><p>&
35、lt;b> ORG 040H</b></p><p><b> START:</b></p><p> MOV SP,#5FH ;設堆棧</p><p><b> LOOP:</b></p><p><b> NOP</b></p>&
36、lt;p> LJMP LOOP ;循環(huán)</p><p><b> END ;結束</b></p><p><b> 表1</b></p><p> :03000000020040BB</p><p> :0700400075815F000200431F</p><
37、p><b> 表2</b></p><p> 02 00 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F
38、F FF FF FF FF FF FF FF 75 81 5F 00 02 00 43</p><p><b> 表3</b></p><p> 表1為源程序,表2是匯編后得到的HEX文件,表3是由HEX文件轉換成的目標文件,也就是最終寫入EPROM的文件,它由編程器轉換得到,也可以由HEXBIN一類的程序轉換得到。學過手工匯編者應當不難找出表3與表1的一一對應關
39、系,值得注意的是從02 00 40后開始的一長串‘FF’,直到75 81,這是由于偽指令:ORG 040H造成的結果。</p><p> 2.3.9仿真、仿真機 </p><p> 仿真是單片機開發(fā)過程中非常重要的一個環(huán)節(jié),除了一些極簡單的任務,一般產品開發(fā)過程中都要進行仿真,仿真的主要目的是進行軟件調試,當然借助仿真機,也能進行一些硬件排錯。一塊單片機應用電路板包括單片機部份及為達到
40、使用目的而設計的應用電路,仿真就是利用仿真機來代替應用電路板(稱目標機)的單片機部份,對應用電路部份進行測試、調試。仿真有CPU仿真和ROM仿真兩種,所謂CPU仿真是指用仿真機代替目標機的CPU,由仿真機向目標機的應用電路部份提供各種信號、數據,進行調試的方法。這種仿真可以通過單步運行、連續(xù)運行等多種方法來運行程序,并能觀察到單片機內部的變化,便于改正程序中的錯誤。所謂ROM仿真,就是用仿真機代替目標機的ROM,目標機的CPU工作時,從
41、仿真機中讀取程序,并執(zhí)行。這種仿真其實就是將仿真機當成一片EPROM,只是省去了擦片、寫片的麻煩,并沒有多少調試手段可言。通常這是二種不同類型的仿真機,也就是說,一臺仿真機不能既做CPU仿真,又做ROM仿真??赡艿那闆r下,當然以CPU仿真好。</p><p> 2.4信號發(fā)生器的分類</p><p> 信號發(fā)生器應用廣泛,種類繁多,性能各異,分類也不盡一致。按照頻率范圍分類可以分為:超
42、低頻信號發(fā)生器、低頻信號發(fā)生器、視頻信號發(fā)生器、高頻波形發(fā)生器、甚高頻波形發(fā)生器和超高頻信號發(fā)生器。按照輸出波形分類可以分為:正弦信號發(fā)生器和非正弦信號發(fā)生器,非正弦信號發(fā)生器又包括:脈沖信號發(fā)生器,函數信號發(fā)生器、掃頻信號發(fā)生器、數字序列波形發(fā)生器、圖形信號發(fā)生器、噪聲信號發(fā)生器等。按照信號發(fā)生器性能指標可以分為一般信號發(fā)生器和標準信號發(fā)生器。前者指對輸出信號的頻率、幅度的準確度和穩(wěn)定度以及波形失真等要求不高的一類信號發(fā)生器。后者是指
43、其輸出信號的頻率、幅度、調制系數等在一定范圍內連續(xù)可調,并且讀數準確、穩(wěn)定、屏蔽良好的中、高檔信號發(fā)生器[5]。</p><p><b> 2.5 研究內容</b></p><p> 本文是做基于單片機的信號發(fā)生器的設計,將采用編程的方法來實現三角波、鋸齒波、矩形波、正弦波的發(fā)生。根據設計的要求,對各種波形的頻率和幅度進行程序的編寫,并將所寫程序裝入單片機的程序存
44、儲器中。在程序運行中,當接收到來自外界的命令,需要輸出某種波形時再調用相應的中斷服務子程序和波形發(fā)生程序,經電路的數/模轉換器和運算放大器處理后,從信號發(fā)生器的輸出端口輸出。 </p><p> 3 信號發(fā)生器方案的設計與論證</p><p><b> 3.1 方案的比較</b></p><p> 方案一:采用單片函數發(fā)生器(如8
45、038),8038可同時產生正弦波、方波等,而且方法簡單易行,用D/A轉換器的輸出來改變調制電壓,也可以實現數控調整頻率,但產生信號的頻率穩(wěn)定度不高。</p><p> 方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(VCO)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達到輸出頻率覆蓋系數的要求,且電路復雜。</p><p> 方案三:采用單片機編程的方法來實現。該方法可
46、以通過編程的方法來控制信號波形的頻率和幅度,而且在硬件電路不變的情況下,通過改變程序來實現頻率的變換。此外,由于通過編程方法產生的是數字信號,所以信號的精度可以做的很高。</p><p> 鑒于方案一的信號頻率不夠穩(wěn)定和方案二的電路復雜,頻率覆蓋系數難以達標等缺點,所以決定采用方案三的設計方法。它不僅采用軟硬件結合,軟件控制硬件的方法來實現,使得信號頻率的穩(wěn)定性和精度的準確性得以保證,而且它使用的幾種元器件都是
47、常用的元器件,容易得到,且價格便宜,使得硬件的開銷達到最省[1,7]。</p><p><b> 3.2 設計原理</b></p><p> 數字信號可以通過數/模轉換器轉換成模擬信號,因此可通過產生數字信號再轉換成模擬信號的方法來獲得所需要的波形。89C51單片機本身就是一個完整的微型計算機,具有組成微型計算機的各部分部件:中央處理器CPU、隨機存取存儲器RAM
48、、只讀存儲器ROM、I/O接口電路、定時器/計數器以及串行通訊接口等,只要將89C51再配置鍵盤及其接口、顯示器及其接口、數模轉換及波形輸出、指示燈及其接口等四部分,即可構成所需的波形發(fā)生器,其信號發(fā)生器構成原理框圖如圖3.1所示[2]。</p><p> 圖3.1 信號發(fā)生器原理框圖</p><p> 89C51是整個波形發(fā)生器的核心部分,通過程序的編寫和執(zhí)行,產生各種各樣的信號,
49、并從鍵盤接收數據,進行各種功能的轉換和信號幅度的調節(jié)。當數字信號經過接口電路到達轉換電路,將其轉換成模擬信號也就是所需要的輸出波形。</p><p><b> 3.3 設計思想</b></p><p> ?。?)利用單片機產生方波、正弦波、三角波和鋸齒波等信號波形,信號的頻率和幅度可變。</p><p> ?。?)將一個周期的信號分離成256
50、個點(按X軸等分),每兩點之間的時間間隔為T,用單片機的定時器產生,其表示式為:T=T/256。</p><p> 如果單片機的晶振為12MHz,采用定時器方式0,則定時器的初值為:</p><p> X=213—T/Tmec (3.1)</p><p><b> 定時時間常數為:<
51、/b></p><p> TL =(8192—T)/MOD256 (3.2)</p><p> TH=(8192T)/256 (3.3)</p><p> MOD32表示除32取余數</p><p> ?。?)正弦波的模擬信
52、號是D/A轉換器的模擬量輸出,其計算公式為:</p><p> Y=(A/2sint)+A/2 (其中A=VREF) (3.4)</p><p> t=NT (N=1~256) (3.5)</p><p> 那么對應著存放在計算機里的這一點的數據為: </p
53、><p> ?。?(3.6) </p><p> ?。?)一個周期被分離成256個點,對應的四種波形的256個數據存放在以TAB1--TAB4為起始地址的存儲器中。</p><p><b> 3.4 設計功能</b></p><p> ?。?)本方案利用8155擴展8個獨立式按鍵,6個LE
54、D顯示器。其中“S0”號鍵代表方波輸出,“S1”號鍵代表正弦波輸出,“S2”號鍵代表三角波輸出,“S3” 號鍵代表鋸齒波輸出。</p><p> ?。?)“S4”號鍵為10Hz的頻率信號,“S5”號鍵為100Hz的頻率信號,“S6”號鍵為500Hz的頻率信號,“S7”號鍵為1KHz的頻率信號,6個LED顯示器輸出信號的頻率值,選用共陽極LED。</p><p> ?。?)利用兩片DAC08
55、32實現幅度可調的信號源,(其中一片用來調節(jié)幅度,另外一片用來實現信號源的輸出)。</p><p> ?。?)頻率范圍:10~1000Hz。</p><p> ?。?)輸出波形幅度為0~5V。</p><p> 4 信號發(fā)生器硬件、軟件設計</p><p> 4.1信號發(fā)生器的硬件設計</p><p> 4.1.
56、1硬件原理框圖</p><p> 硬件原理方框圖如圖4.1所示。</p><p> 圖4.1 硬件原理框圖</p><p> 4.1.2 主控電路</p><p> AT89C51單處機內部設置兩個16位可編程的定時器/計數器T0和T1,它們具有計數器方式和定時器方式兩種工作方式及4種工作模式。在波形發(fā)生器中,將其作定時器使用,用它
57、來精確地確定波形的兩個采樣點輸出之間的延遲時間。模式1采用的是16位計數器,當T0或T1被允許計數后,從初值開始加計數,最高位產生溢出時向CPU請求中斷。</p><p> 中斷系統是使處理器具有對外界異步事件的處理能力而設置的。當中央處理器CPU正在處理某件事的時候外界發(fā)生了緊急事件,要求CPU暫停當前的工作,轉而去處理這個緊急事件。在波形發(fā)生器中,只用到片內定時器/計數器溢出時產生的中斷請求,即是在AT89
58、C51輸出一個波形采樣點信號后,接著啟動定時器,在定時器未產生中斷之前,AT89C51等待,直到定時器計時結束,產生中斷請求,AT89C51響應中斷,接著輸出下一個采樣點信號,如此循環(huán)產生所需要的信號波形[6]。</p><p> 如圖4.2所示,AT89C51從P0口接收來自鍵盤的信號,并通過P2口輸出一些控制信號,將其輸入到8155的信號控制端,用于控制其信號的輸入、輸出。如果有鍵按下,則在讀控制端會產生一
59、個讀信號,使單片機讀入信號。如果有信號輸出,則在寫控制端產生一個寫信號,并將所要輸出的信號通過8155的PB口輸出,并在數碼管上顯示出來。</p><p> 圖4.2 主控電路圖</p><p> 4.1.3 數/模轉換電路</p><p> 由于單片機產生的是數字信號,要想得到所需要的波形,就要把數字信號轉換成模擬信號,所以該文選用價格低廉、接口簡單、轉換
60、控制容易并具有8位分辨率的數模轉換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉換器以及輸入控制電路四部分組成。但實際上,DAC0832輸出的電量也不是真正能連續(xù)可調,而是以其絕對分辨率為單位增減,是準模擬量的輸出。DAC0832是電流型輸出,在應用時外接運放使之成為電壓型輸出。</p><p> 由圖4.3可知,DAC0832的片選地址為7FFFH,當P25有效時,若P0
61、口向其送的數據為00H, 則U1 的輸出電壓為0V;若P0口向其送的數據為0FFH時, 則U1的輸出電壓為-5V. 故當U1 輸出電壓為0V時,由公式 得:Vout = - 5V.當輸出電壓為- 5V時,可得:Vout = +5V,所以輸出波形的電壓變化范圍為- 5V~+ 5V. 故可推得,當P0所送數據為80H時,Vout為0V[4]。</p><p> 圖4.3 數模轉換
62、電路</p><p> 4.1.4 按鍵接口電路</p><p> 圖4.4為鍵盤接口電路的原理圖,圖中鍵盤和8155的PA口相連,AT89C51的P0口和8155的D0口相連,AT89C51不斷的掃描鍵盤,看是否有鍵按下,如有,則根據相應按鍵作出反應。其中“S0”號鍵代表方波輸出,“S1”號鍵代表正弦波輸出,“S2”號鍵代表三角波輸出。 “S3”號鍵代表鋸齒波輸出,“S4”號鍵為10
63、Hz的頻率信號,“S5”號鍵為100Hz的頻率信號,“S6”號鍵為500Hz的頻率信號,“S7”號鍵為1KHz的頻率信號[3]。</p><p> 圖4.4 按鍵接口</p><p> 4.1.5 時鐘電路</p><p> 8051單片機有兩個引腳(XTAL1,XTAL2)用于外接石英晶體和微調電容,從而構成時鐘電路,其電路圖如圖4.5所示。</p&
64、gt;<p> 電容C1、C2對振蕩頻率有穩(wěn)定作用,其容量的選擇為30pf,振蕩器選擇頻率為12MHz的石英晶體。由于頻率較大時,三角波、正弦波、鋸齒波中每一點的延時時間為幾微秒,故延時時間還要加上指令時間才能獲得較大的頻率波形[9]。</p><p> 圖4.5 時鐘電路</p><p> 4.1.6 顯示電路</p><p> 顯示電路是
65、用來顯示波形信號的頻率,使得整個系統更加合理,從經濟的角度出發(fā),所以顯示器件采用LED數碼管顯示器。而且LED數碼管是采用共陽極接法,當主控端口輸出一個低電平后,與其相對應的數碼管即變亮,顯示所需數據。其器件模型如圖4.6所示。</p><p> 圖4.6 LED顯示電路</p><p> 4.2 信號發(fā)生器的軟件設計</p><p> 4.2.1 程序流
66、程圖</p><p> 本文中子程序的調用是通過按鍵的選擇來實現,在取得按鍵相應的鍵值后,啟動計時器和相應的中斷服務程序,再直接查詢程序中預先設置的數據值,通過轉換輸出相應的電壓,從而形成所需的各種波形。</p><p> 主程序的流程圖如圖4.7所示,在程序開始運行之后,首先是對8155進行初始化,之后判斷信號頻率值,如符合所需的頻率,則重置時間常數,并通過顯示器顯示出來,不符則返回
67、。在中斷結束后,還要來判斷波形是否符合,如符合,則顯示其頻率,不符則返回,重新判斷。</p><p> 圖4.7 主程序流程圖</p><p> 圖4.8為各波形子程序的流程圖。如圖所示,在中斷服務子程序開始后,通過判斷來確定各種波形的輸出,當判斷選擇的不是方波后,則轉向對正弦波的判斷,如此反復。如果選擇的是方波,則用查表的方法求出相應的數據,并通過D/A轉換</p>
68、<p> 器將數據轉換成模擬信號,形成所需波形信號。</p><p> 圖4.8 子程序流程圖</p><p><b> 總結與展望</b></p><p> 這種基于單片機的信號發(fā)生器已經展示出很好的性能,而且有著很高的性價比。此外,它產生的波形與模擬電路的波形相比,波形有著更好的平滑性,其周期性也更加穩(wěn)定。已經越來越多的應
69、用到各種電子設備當中,給人們的日常生活帶來了方便。</p><p> 在論文中簡單介紹了它的用途和發(fā)展趨勢,根據它的一些基本知識,按照自己的想法設計了一類信號發(fā)生器,具體包括了設計方案以及相關參數的選取和計算,根據工作基本原理加入了一些相關的輔助電路,并編寫了相關的應用程序。有些指標還有待于進一步提高。例如,在精度及其它功能的擴展上還有較大的潛力可以挖掘,這些都有待于我們通過對電路的改進和對元器件的最佳選擇來進
70、一步完善。而且由于本人所學知識有限,很多知識點的學習不夠深刻,我會在以后的學習中更加踏實、認真的學好各個知識點。</p><p><b> 致 謝</b></p><p> 時光匆匆如流水,轉眼便是大學畢業(yè)。人最寶貴的年華有幾個三年,在這里我度過了讓我真正成長成熟的三年,記得剛進學校是我是多么的無助與陌生,三年的異地大學生活使我變的成熟,堅強和獨立。</p
71、><p> 在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!</p><p> 感謝我的所有任課老師,他們嚴謹細致、認真講解,他們循循善誘的教導和不拘一格的思路給予我無盡的啟迪。</p><p> 感謝我大學三年中交我所有課的老師,三年的大學生活中,不管生活還是學習上都給
72、我很大的幫助,讓我從靦腆的小女孩變成能獨立面對社會的畢業(yè)生。</p><p> 首先向跟隨我們三年的班主任xx老師致以最誠摯的感謝,他不僅是我們的老師,更是我們的益友,在我的三年大學生活中她不僅給予我們學習上的幫助還給我們生活上很多幫助,鍛煉我的各方面能力,使我步入社會時能很快很好的融入。還要感謝的是在我平時學習中給我很大幫助的老師們,他們淵博的知識,嚴謹的治學,讓我不僅學到了扎實的專業(yè)知識,還教會了我如何做人
73、,面對問題養(yǎng)成了沉著冷靜,努力解決。上班了,面對自己不熟悉的環(huán)境,我們要適應,上班了沒有很多的時間看書,更沒有多少時間來做畢業(yè)設計,在我們現在做這個設計時,離我們離開學校有半年多了,很多知識我們已經忘掉了,在這里我們要感謝xx老師,在百忙之中抽出時間輔導我們,幫助我們做畢業(yè)設計輔導,使我們節(jié)省和很多時間,順利完成畢業(yè)設計。</p><p> 最后要感謝的是我的父母,因他們的給予我才能在這校園里完成我的大學夢想,
74、使我的人生閱歷提高,增長見識,提高了自己個方面的素質和涵養(yǎng)。也要感謝我的同學。,因為我們團結我們才能高效的完成畢業(yè)設計。在未來的日子里,我會更加努力的學習和工作,不辜負父母對我的殷殷期望!我一定會好好孝敬和報答他們!</p><p> 這段時間里邊非常感謝xx導師對我們的細心照顧,熱情地為我們解決設計中存在的問題。真的很感謝您xx老師!當然在設計過程中還得到了周圍許多人和老師的幫助,以使我的畢業(yè)設計能順利地完成
75、,在這里也衷心地說聲“謝謝了!”</p><p> 在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!</p><p><b> 參考文獻</b></p><p> 1 程全.基于AT89C52實現的多種波形發(fā)生器的設計[J].周口師范學院學報,2
76、005.22(5):57~58.</p><p> 2 周明德.微型計算機系統原理及應用[M].北京:清華大學出版社,2002.341~364.</p><p> 3 劉樂善.微型計算機接口技術及應用[M].北京:北京航空航天大學出版社,2001.258~264.</p><p> 4 童詩白.模擬電路技術基礎[M].北京:高等教育出版社,2000.171~2
77、02.</p><p> 5 杜華.任意波形發(fā)生器及應用[J].國外電子測量技術,2005.1:38~40.</p><p> 6 張友德.單片微型機原理、應用與實踐[M].上海:復旦大學出版社,2004.40~44. </p><p> 7 程朗.基于8051單片機的雙通道波形發(fā)生器的設計與實現[J].計算機工程與應用,2004.8:100~103.<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機多功能函數信號發(fā)生器畢業(yè)設計
- 單片機控制多功能信號發(fā)生器畢業(yè)論文
- 畢業(yè)設計--基于單片機的多功能函數信號發(fā)生器設計
- 單片機函數信號發(fā)生器畢業(yè)設計
- 51單片機課程設計---多功能信號發(fā)生器設計
- 多功能信號發(fā)生器畢業(yè)設計
- 多功能信號發(fā)生器畢業(yè)設計
- 多功能信號發(fā)生器畢業(yè)設計
- 畢業(yè)設計--多功能信號發(fā)生器
- 畢業(yè)設計--基于單片機的信號發(fā)生器
- 單片機的函數信號發(fā)生器畢業(yè)設計
- 畢業(yè)設計----基于單片機的信號發(fā)生器設計
- 基于單片機的函數信號發(fā)生器畢業(yè)設計
- 畢業(yè)設計--基于單片機的函數信號發(fā)生器
- 基于單片機的函數信號發(fā)生器畢業(yè)設計
- 畢業(yè)設計-----基于單片機的函數信號發(fā)生器
- 基于單片機的函數信號發(fā)生器畢業(yè)設計
- 基于單片機的函數信號發(fā)生器畢業(yè)設計
- 多功能信號發(fā)生器畢業(yè)設計論文
- 多功能函數信號發(fā)生器畢業(yè)設計
評論
0/150
提交評論