




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、項目編號:大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目研究報告項目名稱: 基于AT89C52的低頻函數信號發(fā)生器 項目級別: 國家級 省級 校級 項目類別: 創(chuàng)新訓練 創(chuàng)業(yè)訓練 創(chuàng)業(yè)實踐 項目負責人: 任佳 所在學院: 電氣信息工程學院 專業(yè): 電子信息工程 學號: 201210501019 項目組成員: 楊麗娟 夏皓 指導教師: 曾技 二一 年 月 日目錄第1節(jié) 前 言51.1 課題研究背景51.2信號發(fā)生器分類51.3研究的目的及意義61.4 系統(tǒng)設計6第2節(jié) 設計方案與論證72.1技術指標72.2方案設計設計論證72.2.1 信號發(fā)生電路方案論證72.2.2 單片機的選擇論證82.2.3 顯示方案論證8第
2、3節(jié) 硬件電路設計93.1 系統(tǒng)硬件總述93.2 主控制器電路設計93.3 波形產生模塊設計103.4 顯示模塊的設計113.5 鍵盤模塊的設計12第四節(jié) 軟件設計134.1主程序設計134.2 人機交互程序設計154.3 鍵盤掃描程序設計154.4 波形產生程序16第五節(jié) 組裝調試及項目成果175.1 仿真調試175.1.1初始界面調試175.1.2三角波仿真調試175.1.3矩形波仿真調試185.1.4 正弦波波仿真185.2 生成PCB195.3組裝實物圖20結束語22參考文獻23儀器儀表清單24附 錄25附錄一系統(tǒng)原理圖及PCB25附錄二源程序26基于AT89C52的低頻函數信號發(fā)生器
3、摘 要本系統(tǒng)是基于AT89C52單片機的低頻函數信號發(fā)生器。采用AT89C52單片機作為控制核心,外圍采用數字/模擬轉換電路(DAC0832)、運放電路(LM324)、按鍵和1602等。通過按鍵控制可產生方波、三角波、正弦波,同時用1602進行相應的顯示。其設計簡單、性能良好,可用于多種需要低頻信號的場所,具有一定的實用性。各種各樣的信號是通信領域的重要組成部分,其中正弦波、三角波和方波等是較為常見的信號。在科學研究及教學實驗中常常需要這幾種信號的發(fā)生裝置。為了實驗、研究方便,研制一種靈活適用、功能齊全、適用方便的信號源是十分必要的。本文介紹的是利用AT89C52單片機和數模轉換器件DAC08
4、32產生所需不同信號的低頻信號源,其信號頻率可以按要求進行調節(jié)。文中介紹了DAC0832數模轉換器的結構原理和使用方法,AT89C52的基礎理論,以及與設計電路有關的各種芯片。文中著重介紹了如何利用單片機控制D/A轉換器產生上述信號的硬件電路和軟件編程。本次關于低頻函數信號發(fā)生器的設計方案,不僅在理論和實踐上都能滿足實驗的要求,而且具有很強的可行性。關鍵詞:單片機,模轉換,運放,信號源Low frequency signalgenerator based on AT89C52Abstract This system is thelow frequency signal generatorbas
5、ed on AT89C52 mcu.Using AT89C52 microcontrolleras control core,the external use ofdigital / analogconversion circuit(DAC0832),op amp circuit(LM324),buttons and 1602etc.Through the buttoncontrol can produceFang Bo,triangle wave,sine wave,at the same time with the1602correspondingdisplay.Its design is
6、 simple,the performance is good,can be used for a variety ofneeds of low-frequency signal place,has a certain practicality. Various signals are an importantpart ofthe communication field,includingsine wave,triangle waveand Fang Boare common signals.Several signal generating deviceoften needsin scien
7、ce research and teaching experiment.For experimental convenience,to develop a suitable,complete function,convenientforthe signal sourceis very necessary. This paperintroduces islow frequencysignal source usingAT89C52 SCM andDAC0832 generated bydifferent signals,thesignalfrequency can beadjustedaccor
8、ding torequirements.This paperintroduces thestructure and principle of DAC0832digital to analog converterandmethod of use,the basic theory of AT89C52,and a variety ofchipdesign relatedcircuit.This paper mainly introduces thehardwarecircuit and software programminghow to useSCM control D/Aconverter g
9、eneratesthe signal.Thistime about thelow frequency signal generatordesign,can meet the requirements of the experimentin the theory and the practicenot only,but also have strong feasibility.Keywords: MCU,analog conversion,operational amplifier,signal source第1節(jié) 前 言1.1 課題研究背景隨著電子測量及其他部門對各類信號發(fā)生器的廣泛需求及電子
10、技術的迅速發(fā)展,促使信號發(fā)生器種類增多,性能提高。尤其隨著70年代微處理器的出現,更促使信號發(fā)生器向著自動化、智能化方向發(fā)展。現在,許多信號發(fā)生器帶有微處理器,因而具備了自校、自檢、自動故障診斷和自動波形形成和修正等功能,可以和控制計算機及其他測量儀器一起方便的構成自動測試系統(tǒng)。當前信號發(fā)生器總的趨勢是向著寬頻率覆蓋、低功耗、高頻率精度、多功能、自動化和智能化方向發(fā)展。在科學研究、工程教育及生產實踐中,如工業(yè)過程控制、教學實驗、機械振動試驗、動態(tài)分析、材料試驗、生物醫(yī)學等領域,常常需要用到低頻信號發(fā)生器。而在我們日常生活中,以及一些科學研究中,鋸齒波和正弦波、矩形波信號是常用的基本測試信號。譬
11、如在示波器、電視機等儀器中,為了使電子按照一定規(guī)律運動,以利用熒光屏顯示圖像,常用到鋸齒波產生器作為時基電路。信號發(fā)生器作為一種通用的電子儀器,在生產、科研、測控、通訊等領域都得到了廣泛的應用。但市面上能看到的儀器在頻率精度、帶寬、波形種類及程控方面都已不能滿足許多方面實際應用的需求。加之各類功能的半導體集成芯片的快速生產,都使我們研制一種低功耗、寬頻帶,能產生多種波形并具有程控等低頻的信號發(fā)生器成為可能。1.2信號發(fā)生器分類信號發(fā)生器是指產生所需參數的電測試信號的儀器。因其應用廣泛,種類繁多,特性各異,分類也不盡一致。按信號波形可分為正弦信號、函數信號、脈沖信號和隨機信號發(fā)生器等四大類;按頻
12、率覆蓋范圍分為低頻信號發(fā)生器、高頻信號發(fā)生器和微波信號發(fā)生器;按輸出電平可調節(jié)范圍和穩(wěn)定度分為簡易信號發(fā)生器、標準信號發(fā)生器和功率信號發(fā)生器;按頻率改變的方式分為調諧式信號發(fā)生器、掃頻式信號發(fā)生器、程控式信號發(fā)生器和頻率合成式信號發(fā)生器等。信號發(fā)生器又稱信號源或振蕩器,在生產實踐和科技領域中有著廣泛的應用。1.3研究的目的及意義信號發(fā)生器是一種經常使用的設備,由純粹物理器件構成的傳統(tǒng)的設計方法存在許多弊端,如:體積較大、重量較沉、移動不方便、信號失真較大、波形形狀調節(jié)過于死板,無法滿足用戶對精度、便攜性、穩(wěn)定性等要求,研究設計出一種具有頻率穩(wěn)定、準確、波形質量好、輸出頻率范圍寬、便攜性好等特點
13、的波形發(fā)生器具有較好的市場前景。以滿足工業(yè)領域對信號源的要求。本次試驗實現利用單片機AT89S52和8位D/A轉換芯片DAC0832共同實現方波、鋸齒波、三角波、正弦波這四種常用波形的發(fā)生。根據設計的要求,對各種波形的頻率和幅度進行程序的編寫,并將所寫程序裝入單片機的程序存儲器中。在程序運行中,當接收到來自外界的命令,需要輸出某種波形時再調用相應的中斷服務子程序和波形發(fā)生程序,經電路的數/模轉換器和運算放大器處理后,從信號發(fā)生器的輸出端口輸出。并且可以通過數碼管和鍵盤顯示模塊,鍵盤可以實現對幾種波形的切換。1.4 系統(tǒng)設計該設計設計一個低頻信號發(fā)生器,我們采用的是AT89C51單片機用軟件實現
14、信號的輸出。該單片機是一個微型計算機,包括中央處理器CPU,RAM,ROM、I/O接口電路、定時計數器、串行通訊等,是波形設計的核心。該信號發(fā)生器原理框圖如圖2.1,總體原理為:利用AT89C51單片機構造低頻信號發(fā)生器,可產生正弦波,方波,三角波,三種波形,通過C語言對單片編程即可產生相應的波形信號,并可以通過鍵盤進行各機的種功能的轉換和信號頻率的控制,當輸出的數字信號通過數模轉換成模擬信號也就得到所需要的信號波形,通過運算放大器的放大輸出波形,同時讓顯示器顯示輸出的波形信息。第2節(jié) 設計方案與論證2.1技術指標 1、利用單片機采用軟件設計方法產生三種波形 2、三種波形可通過按鍵選擇 3、波
15、形頻率可調 4、顯示波形的種類及其頻率AT89C521602液晶顯示獨立按鍵復位電路起振電路D/A轉換波形輸出LM324放大5v電源主要控制圖2.2方案設計設計論證2.2.1 信號發(fā)生電路方案論證 方案一:通過單片機控制D/A,輸出四種波形。此方案輸出的波形不夠穩(wěn)定,抗干擾能力弱,不易調節(jié)。但此方案電路簡單、成本低。方案二:使用傳統(tǒng)的鎖相頻率合成方法。通過芯片IC145152,壓控振蕩器搭接的鎖相環(huán)電路輸出穩(wěn)定性極好的正弦波,再利用過零比較器轉換成方波,積分電路轉換成三角波。此方案,電路復雜,干擾因素多,不易實現。方案三:利用MAX038芯片組成的電路輸出波形。MAX038是精密高頻波形產生電
16、路,能夠產生準確的鋸齒波、三角波、方波和正弦波四種周期性波形。但此方案成本高,程序復雜度高。以上三種方案綜合考慮,選擇方案一。2.2.2 單片機的選擇論證 方案一:AT89C52單片機是一種高性能8位單片微型計算機。它把構成計算機的中央處理器CPU、存儲器、寄存器、I/O接口制作在一塊集成電路芯片中,從而構成較為完整的計算機、而且其價格便宜。方案二:C8051F005單片機是完全集成的混合信號系統(tǒng)級芯片,具有與8051兼容的微控制器內核,與MCS-51指令集完全兼容。除了具有標準8052的數字外設部件,片內還集成了數據采集和控制系統(tǒng)中常用的模擬部件和其他數字外設及功能部件,而且執(zhí)行速度快。但其
17、價格較貴以上兩種方案綜合考慮,選擇方案一2.2.3 顯示方案論證方案一:數碼管。數碼管顯示能在低電壓、小電流條件下驅動發(fā)光,能與CMOS、ITL電路兼容。發(fā)光響應時間極短(0.1us),高頻特性好,單色性好,亮度高。體積小,重量輕,抗沖擊性能好。壽命長,使用壽命在10萬小時以上,甚至可達100萬小時。但顯示功能有限,只能顯示數字和個別字母。方案二:液晶顯示器。液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,顯示質量高。其接口都是數字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方便。功耗主要消耗在其內部的電極和驅動IC上,因而耗電量比其它顯示器要少得多。方案三:陰極射線管顯示
18、器。此種顯示器圖像色彩豐富,還原性好,有豐富的幾何失真調整能力。但不能長期暴露在磁場下,會磁化或損壞,不能讓強光直射,會降低發(fā)光效率,不能在高溫下使用,工作性能和使用壽命會大打折扣。基于對顯示器功能的穩(wěn)定性和齊全性考慮,我們采用方案二。 第3節(jié) 硬件電路設計3.1 系統(tǒng)硬件總述對于該低頻信號發(fā)生器的設計,我們采用了以AT89C51單片機芯片作為核心處理器,編程實現各種不同類型信號的產生,最后通過DA轉換輸出到示波器。結構簡單,思路僅僅有條,而根據設計的基本要求,我們又把其細分為不同的功能模塊,各個功能模塊相互聯系,相互協調,通過單片機程序構成一個統(tǒng)一的整體。3.2 主控制器電路設計主控制器采用
19、AT89C52單片機作為微處理器,該單片機內含256個字節(jié)的RAM、32條I/O線、3個16位定時器/計數器,且自帶8K的電擦除EEPROM,可用以保存控制程序。用dac0832作為模數轉換器,可以實現對電流,電壓由模擬量向數字量的轉換,單片機的P0口與dac0832的輸出端口連接,以讀取AD轉換后的結果。主控制器系統(tǒng)的外圍接口電路由鍵盤、液晶顯示及放大電路、起振電路、復位電路等幾部分組成。主控制器系統(tǒng)的硬件電路原理圖如圖3.2所示。圖3.2主控制器電路圖3.3 波形產生模塊設計 由單片機采用編程方法產生三種波形、通過DA轉換模塊DAC0832在經過放大之后輸出。其電路圖3.3如下:圖3.3
20、DAC0832模塊在函數信號發(fā)生器中,DAC0832為電流輸出型轉換器,所以必須還要經過一個外接的運算放大器將電流轉換成電壓。如圖所示為一種用兩級運算放大器組成的模擬電壓輸出電路。從第一個運放輸出的為單極性模擬轉換電壓,從第二個運放輸出的電壓為雙極性模擬電壓。DAC0832是8分辨率的D/A轉換集成芯片,由8位輸入鎖存器、8位DAC寄存器、8位D/A轉換器及轉換控制電路四部分構成。8位輸入鎖存器用于存放主機送來的數字量,使輸入數字得到緩沖和鎖存,并加以控制;8位DAC寄存器用于存放存放待轉換的數字量,并加以控制;8位D/A轉換器輸出與數字量成正比的模擬電流,由與門、與非門組成的輸入控制的輸入電
21、路來控制2個寄存器的選通或鎖存狀態(tài),其原理框圖如3.3。當WR2和XFER同時有效時,8位DAC寄存器端為高電平“1”,此時DAC寄存器的輸出端Q跟隨輸入端D也就是出入寄存器Q端得電平變化,反之,當端為低電平“0”時,第一級8位輸入寄存器Q端得狀態(tài)則鎖存到第二級8位DAC寄存器中,以便第三極8位DAC轉換器進行D/A轉換圖3.3.1 DAC0832引腳圖3.4 顯示模塊的設計通過液晶1602顯示輸出的波形、頻率,其電路圖3.4如下:圖3.4 1602液晶顯示模塊如上圖所示,1602的八位數據端接單片機的P0口,其三個使能端RS、RW、E分別接單片機的P2.1P2.3。通過軟件控制液晶屏可以顯示
22、波形的種類以及波形的頻率。3.5 鍵盤模塊的設計由于本系統(tǒng)所用按鍵少,所以采用獨立鍵盤,其連接電路圖3.5如下:圖3.5 按鍵模塊第四節(jié) 軟件設計4.1主程序設計本系統(tǒng)采用AT89S52單片機,用編程的方法來產生三種波形,并通過編程來切換三種波形以及波形頻率的改變。具體功能有:(1)各個波形的切換;(2)各種參數的設定;(3)頻率增減等。軟件調通后,通過編程器下載到AT89S52芯片中,然后插到系統(tǒng)中即可獨立完成所有的控制。軟件的流程圖如下:主程序D/A轉換程序按鍵程序設液晶顯示程序Led驅動程序利用8位D/A轉換器DAC0832,可以將8位數字量轉換成模擬量輸出。數字量輸入的范圍為0255,
23、對應的模擬量輸出的范圍在VREF-到VREF+之間。根據這一特性,可以利用單片機的并行口輸出的數字量,產生常用的波形。例如,要產生幅度為05V的三角波,只要將DAC0808的VREF-接地,VREF+接+5V,單片機的并行口首先輸出00H,再輸出01H、02H,直到輸出FFH,再輸出00H,依此循環(huán),這樣在圖4.2所示的Vout端就可以看到輸出的三角波。4.2 人機交互程序設計開始LCD初始化延時顯示第一行內容顯示第二行內容顯示光標移動位置圖4.2 LCD1602程序設計流程圖系統(tǒng)的人機交互程序設計,主要是解決按鍵的掃描與信息的顯示,讓操作者能夠靈活地控制系統(tǒng)工作。鍵盤用來輸入指令,液晶顯示器
24、LCD1602用來顯示單片機的狀態(tài),這是一個比較簡單的人機交互形式。4.3 鍵盤掃描程序設計本系統(tǒng)的鍵盤采用的是單鍵盤,單鍵盤由一行四個按鍵組成,按鍵位于一行、上。一個一行4鍵的可以構成一個含有4個按鍵的鍵盤,顯然,在按鍵數量較多時,鍵盤較之獨立式按鍵鍵盤要節(jié)省很多I/O口。在進行鍵盤掃描時,首先把鍵盤的第一根線置高,然后分別再檢測鍵盤行線是否有高電平的信號,如果有信號,那么就證明這根行線與第一根列線相交處的按鍵被按下了,單片機就讀入這個鍵值。由于鍵盤掃描的速度很快,而人按鍵總會持續(xù)一定的時間,因此只要單片機處在等待輸入的狀態(tài),這個鍵盤掃描程序基本上不會錯過任何一個按鍵信號。由于一般人按鍵會有
25、抖動,抖動信號造成鍵盤掃描時會出現一些錯誤的信號,要不就是掃描不進數據,要不就是重復輸入很多次數據,因此需要有一個消除抖動的程序。讓單片機不響應一些相關的抖動信號,而只響應一次確實存在的按鍵信號。消抖動程序是這樣實現的,當檢測到一個脈沖信號時,并不立即認為是一次按鍵,而是延時一段時間以后再進行檢測,如果三次檢測都有信號,那么就認為有一次按鍵動作發(fā)生了。延時的選擇非常重要,太快了,起不到消除抖動的效果,太慢了系統(tǒng)的按鍵定義除了基本的數字鍵(04)外,將其它的鍵依次定義為增值、減值、定時、確認四個命令鍵,其控制的基本功能是:(1) 通過按鍵進行波形的轉換(2) 通過按鍵進行輸出波形頻率的加減(3)
26、 通過按鍵對設置進行復位系統(tǒng)通過軟件方法實現該功能,即定義開、關、增值、減值、定時、確認等命令鍵,利用鍵盤掃描程序獲取對應命令鍵的鍵值,然后執(zhí)行相應的子程序,實現所要求的控制功能。4.4 波形產生程序為各波形子程序的流程圖。如圖所示,在中斷服務子程序開始后,通過判斷來確定各種波形的輸出,當判斷選擇的不是方波后,則轉向對正弦波的判斷,如此反復。如果選擇的是方波,則用查表的方法求出相應的數據,并通過D/A轉換器將數據轉換成模擬信號,形成所需波形信號。第五節(jié) 組裝調試及項目成果5.1 仿真調試5.1.1初始界面調試 圖5.1.15.1.2三角波仿真調試5.1.3矩形波仿真調試 5.1.4 正弦波波仿
27、真 5.2 生成PCB PROTEL99SE的介紹與PCB板的設計Protel99SE是應用于Windows9X/2000/NT操作系統(tǒng)下的EDA設計軟件,采用設計庫管理模式,可以進行聯網設計,具有很強的數據交換能力和開放性及3D模擬功能,是一個32位的設計軟件,可以完成電路原理圖設計,印制電路板設計和可編程邏輯器件設計等工作,可以設計32個信號層,16個電源-地層和16個機加工層。一、Protel 99 SE的系統(tǒng)組成按照系統(tǒng)功能來劃分,Protel99se主要包含以下兩大部分和6個功能模塊。1、電路工程設計部分(1)電路原理設計部分(Advanced Schematic 99):電路原理圖
28、設計部分包括電路圖編輯器(簡稱SCH編輯器)、電路圖零件庫編輯器(簡稱Schlib編輯器)和各種文本編輯器。本系統(tǒng)的主要功能是:繪制、修改和編輯電路原理圖;更新和修改電路圖零件庫;查看和編輯有關電路圖和零件庫的各種報表。(2)印刷電路板設計系統(tǒng)(Advanced PCB 99):印刷電路板設計系統(tǒng)包括印刷電路板編輯器(簡稱PCB編輯器)、零件封裝編輯器(簡稱PCBLib編輯器)和電路板組件管理器。本系統(tǒng)的主要功能是:繪制、修改和編輯電路板;更新和修改零件封裝;管理電路板組件。(3)自動布線系統(tǒng)(Advanced Route 99):本系統(tǒng)包含一個基于形狀(Shape-based)的無柵格自動布
29、線器,用于印刷電路板的自動布線,以實現PCB設計的自動化。2、電路仿真與PLD部分(1)電路模擬仿真系統(tǒng)(Advanced SIM 99):電路模擬仿真系統(tǒng)包含一個數字/模擬信號仿真器,可提供連續(xù)的數字信號和模擬信號,以便對電路原理圖進行信號模擬仿真,從而驗證其正確性和可行性。(2)可編程邏輯設計系統(tǒng)(Advanced PLD 99):可編程邏輯設計系統(tǒng)包含一個有語法功能的文本編輯器和一個波形編輯器(Waveform)。本系統(tǒng)的主要功能是;對邏輯電路進行分析、綜合;觀察信號的波形。利用PLD系統(tǒng)可以最大限度的精簡邏輯部件,使數字電路設計達到最簡化。(3)高級信號完整性分析系統(tǒng)(Advanced
30、 Integrity 99):信號完整性分析系統(tǒng)提供了一個精確的信號完整性模擬器,可用來分析PCB設計、檢查電路設計參數、實驗超調量、阻抗和信號諧波要求等。二、Protel 99 SE的功能特性1、開放式集成化的設計管理體系2、超強功能的、修改與編輯功能3、強大的設計自動化功能本設計中,PCB的設計如圖所示:將DXP 制圖軟件中的PCB原理圖封裝,布線。點擊軟件菜單欄中“設計”按鈕,然后點擊其下的“update PCB Document.PCB2PcbDoc”按鈕,就將PCB原理圖封裝,布線到創(chuàng)建的PCB文件上,如圖所示的PCB布線圖。5.3組裝實物圖 制完板后,先對各個電路連線進行檢測,這時
31、就需要用到萬用表進行通路的檢測。檢測無誤后,按元件清單上列出的元器件進行查找和相應的元件檢測。最后,按照電路原理圖進行元器件的焊接,并調試單片機最小系統(tǒng)、液晶顯示、按鍵等性能。 實物上層 實物底層結束語 在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意! 在本次設計的過程中,我發(fā)現很多的問題,雖然以前還做過這樣的設計但這次設計真的讓我長進了很多。對于單片機設計,其硬件電路是比較簡單的,主要是解決程序設計的問題,而程序設計是一個很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力,它才是一個設計的靈魂所在
32、。因此在整個設計過程中大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個子程序才是關鍵的問題所在,這需要對單片機的結構很熟悉。因此可以說單片機的設計是軟件和硬件的結合,二者是密不可分的。要設計一個成功的電路,必須要有耐心,要有堅持的毅力。在整個電路的設計過程中,花費時間最多的是各個單元電路的連接及電路的細節(jié)設計上,如在多種方案的選擇中,我們仔細比較分析其原理以及可行的原因。這就要求我們對硬件系統(tǒng)中各組件部分有充分透徹的理解和研究,并能對之靈活應用。完成這次設計后,我在書本理論知識的基礎上又有了更深層次的理解。同時在本次設計的過程中,我還學會了高效率的查閱資料、運用工具書、
33、利用網絡查找資料。我發(fā)現,在我們所使用的書籍上有一些知識在實際應用中其實并不是十分理想,各種參數都需要自己去調整。偶而還會遇到錯誤的資料現象,這就要求我們應更加注重實踐環(huán)節(jié)。參考文獻【1】 1程全.基于AT89C52實現的多種波形發(fā)生器的設計J.周口師范學院學報,【2】 2005.22(5):5758.【3】 2周明德.微型計算機系統(tǒng)原理及應用M.北京:清華大學出版社,2002.341364.【4】 3劉樂善.微型計算機接口技術及應用M.北京:北京航空航天大學出版社,2001.258264.【5】 4童詩白.模擬電路技術基礎M.北京:高等教育出版社,2000.171202.5杜華.任意波形發(fā)生
34、器及應用J.國外電子測量技術,2005.1:3840.6張友德.單片微型機原理、應用與實踐M.上海:復旦大學出版社,2004.4044.【6】 7程朗.基于8051單片機的雙通道波形發(fā)生器的設計與實現J.計算機工程與應【7】 用,2004.8:100103.【8】 8張永瑞.電子測量技術基礎M.西安:西安電子科技大學出版社,2006.61101.9李葉紫.MCS-51單片機應用教程M.北京:清華大學出版社,2004.232238.【9】 李華. MCS-51系列單片機實用接口技術M. 北京:北京航空航天大學出版社. 2003儀器儀表清單設計所用儀器及器件如表一所示:表一 儀器清單表類型規(guī)格數量
35、備注電阻500W11KW3滑動變阻器10KW/220v1芯片DAC08321芯片LM3241芯片74LS081單片機AT89C521電容33PF2晶振11.0592MHz1液晶16021開關按鍵開關4附 錄附錄一系統(tǒng)原理圖及PCB附圖1附圖2附錄二源程序#include#include lcd1602.h#include delay.h#include pltable.h#include key.h#include adc0832.hvoid timer0() interrupt 1TH0=THtemp;TL0=TLtemp;if(waveform=0) sine_out();else if(
36、waveform=1) triangle_out();else if(waveform=2) square_out();void main() DAdata=0;DA_S1=1; /關閉8位輸入寄存器init_lcd();TMOD=0x01; /設置定時器0為16位工作方式IT0=1; /設置外部中斷0為下降沿觸發(fā)ET0=1; /開定時器中斷EX0=1; EA=1;while(1) ; #ifndef _ADC0832_H_#define _ADC0832_H_#define DAdata P1/DA數據端口uchar wavecount; /抽點計數uchar THtemp,TLtemp;/
37、傳遞頻率的中間變量uchar judge=1; /在方波輸出函數中用于簡單判別作用uchar waveform; /當其為0、1、2時,分別代表三種波uchar code freq_unit3=5,25,100; /三種波的頻率單位uchar idata wavefreq3=1,1,1; /給每種波定義一個數組單元,用于存放單位頻率的個數sbit DA_S1= P27; / 控制DAC0832的8位輸入寄存器,僅當都為0時,可以輸出數據(處于直通狀態(tài)),否則,輸出將被鎖存void triangle_out()/三角波輸出 DAdata=triangle_tabwavecount+;if(wav
38、ecount64) wavecount=0;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關閉8位輸入寄存器void sine_out() /正弦波輸出 DAdata=sine_tabwavecount+;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關閉8位輸入寄存器void square_out() /方波輸出 judge=judge; if(judge=1) DAdata=0xff;else DAdata=0x00;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關閉8位輸入寄存器#endif#ifndef _DELAY_h_#define _DELAY
39、_h_#define uchar unsigned char#define uint unsigned intvoid delay(uchar z) uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);void delay5us() uchar i; for(i=1;i0;i-);#endif #ifndef _KEY_h_#define _KEY_h_#include adc0832.h#include delay.hbit ST=0;bit DUQU=0;sbit key=P32;unsigned char keytemp;unsigned int total
40、_freq; /總頻率void key_int0() interrupt 0 EA=0; TR0=0; /關總中斷與定時器delay(50); /延時夠嗎if(key=0) /確實有按鍵按下而引發(fā)中斷delay(50);if (key=0)keytemp=P3&0xf8; switch(keytemp) case 0xf0:/選擇波形 waveform+; if(waveform2) waveform=0; break; case 0xe8: /頻率按規(guī)定單位依次增加 wavefreqwaveform+; if(wavefreqwaveform10) wavefreqwaveform=1; b
41、reak; case 0xd8: /頻率按規(guī)定單位依次衰減 wavefreqwaveform-; if(wavefreqwaveform1) wavefreqwaveform=10; break;case 0xb8: wavefreqwaveform=0; THtemp=waveTHwaveform*10+(wavefreqwaveform-1); /方括號中選 取第幾個數后,并把該值賦給T_tempTLtemp=waveTLwaveform*10+(wavefreqwaveform-1);total_freq= wavefreqwaveform * freq_unitwaveform; /求
42、輸出頻率(個數*單位)lcd_hang25=total_freq%10+0x30;lcd_hang35=total_freq%10+0x30; /在液晶中顯示個位,(0x30 在液晶顯示中表示數字0) total_freq/=10; lcd_hang24=total_freq%10+0x30;lcd_hang34=total_freq%10+0x30; /在液晶中顯示時十位 total_freq/=10; lcd_hang23=total_freq%10+0x30;lcd_hang33=total_freq%10+0x30; /在液晶中顯示時百位 total_freq/=10; lcd_han
43、g22=total_freq%10+0x30; lcd_hang32=total_freq%10+0x30;/在液晶中顯示時千位 disp_lcd(0x80,&lcd_hang1waveform*16); /在第一行顯示 disp_lcd(0xc0,lcd_hang2); /在第二行顯示 wavecount=0; /抽點計數清零 while(!key); EA=1; TR0=1; /開啟總中斷與定時器#endif#ifndef _LCD1602_h_#define _LCD1602_h_#include delay.huchar code lcd_hang1=ZX Wave SJ Wave J
44、X Wave System Is Ready! Now to switch. SAVE . Finish! Reading . ;uchar idata lcd_hang216=F= Hz ;uchar idata lcd_hang316=F= Hz . V;sbit rs=P20;sbit rw=P21;sbit lcden=P22; sbit lcdbf=P07; /讀寫操作使能位unsigned char i,j; void LCD_Wait(void)/讀忙狀態(tài)rs=0;rw=1;lcden=1;delay(10);lcden=0;/下降沿while(lcdbf) lcden=0;lc
45、den=1; void write_com(uchar dat)rs=0;rw=0;P0=dat;lcden=1;delay(10);lcden=0;LCD_Wait();void write_date(uchar date)rs=1;rw=0;P0=date;lcden=1;delay(10);lcden=0;LCD_Wait();void disp_lcd(uchar addr,uchar *temp1) reentrantuchar num;write_com(addr);delay(1); /延時一會兒?for(num=0;num16;num+) write_date(temp1num
46、);/或者這樣寫write_date(*(temp1+num); delay(1);void init_lcd()lcden=0; rw=0; /初始化一定要設置為零,表示寫數據write_com(0x38); /使液晶顯示點陣,為下面做準備write_com(0x0c); /初始設置write_com(0x06); /初始設置write_com(0x01); /清零write_com(0x80); /使指針指向第一行第一格 disp_lcd(0x80,&lcd_hang13*16); /在第一行顯示 disp_lcd(0xc0,&lcd_hang14*16); /在第二行顯示#endif#i
47、fndef _PLTABLE_h_#define _PLTABLE_h_uchar code waveTH= 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe;uchar code waveTL= 0x16,0x9a,0x20,0x5e,0x88,0xa3,0xb8,0xc3,0xce,0xd6, /正弦波頻率調整中間值0xbc,0xce,0x58,0x8a,0xa9,0xbf,0xcb,0xd8,0xe0,0xee,/三角波頻率調整中間值0x98,0x60,0xa0,0x42,0x44,0xce,0x5a,0xb3,0xf5,0x3c; /*/uchar code triangle_tab= /每隔數字8,采取一次 ,三角波0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 客服話務知識培訓課件
- 供貨合同補充協議
- 交通運輸行業(yè)智能化交通規(guī)劃與建設方案
- 湖北省武漢市2024-2025學年高一上學期1月期末地理試題 含解析
- 云南省昭通市昭通一中教研聯盟2024-2025學年高一上學期期中質量檢測生物學B試題(含答案)
- 吉林省長春市榆樹市2024-2025學年七年級上學期期末生物學試題(含答案)
- 小學低年級數學故事讀后感
- 會議記錄表格:會議記錄臺賬分類
- 季度采購管理計劃與工作推進安排
- 辦公用品采購與供應鏈管理協議
- 新能源概論新能源及其材料課件
- 化學化工專業(yè)英語1課件
- 裝配式建筑裝配率計算評分表
- 1.1北京市基本概況與主要文旅資源《地方導游基礎知識》(第四版)PPT
- 綜述的寫作方法與技巧課件
- 零售藥店實施GSP情況的內審報告
- 機械設計基礎網考題庫答案 吉林大學
- 新蘇教版科學六年級下冊全冊教案(含反思)
- 觸電事故應急處置卡
- 國際貿易運輸方式課件
- 南陽理工學院畢業(yè)論文格式規(guī)范
評論
0/150
提交評論