基于單片機(jī)的函數(shù)發(fā)射器_第1頁
基于單片機(jī)的函數(shù)發(fā)射器_第2頁
基于單片機(jī)的函數(shù)發(fā)射器_第3頁
基于單片機(jī)的函數(shù)發(fā)射器_第4頁
基于單片機(jī)的函數(shù)發(fā)射器_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 PAGE31 / NUMPAGES33師學(xué)院2007屆畢業(yè)生畢業(yè)論文(設(shè)計(jì))題 目:基于單片機(jī)的函數(shù)發(fā)射器學(xué) 制:2年 專 業(yè):通信工程 完成日期:20130514目 錄摘要(1)引言(2)1單片機(jī)簡介(2)1.1單片機(jī)概述(2)1.2信號(hào)發(fā)生器的分類(2)1.3研究容(3)2方案的設(shè)計(jì)與選擇(3)2.1方案的比較(3)2.2設(shè)計(jì)原理(4)2.3設(shè)計(jì)思想(4)2.4設(shè)計(jì)功能(5)3硬件設(shè)計(jì)(5)3.1硬件原理框圖(5)3.2主控電路(6)3.3數(shù)/模轉(zhuǎn)換電路(7)3.4按鍵接口電路(7)4軟件設(shè)計(jì)(8)4.1程序流程圖(8)4.2電路原理圖與源程序(15)4.3四種波形的仿真波形圖(26)4

2、.4程序仿真結(jié)果(28)4.5實(shí)驗(yàn)小結(jié)(29)6總結(jié)(29)參考文獻(xiàn)(29)基于單片機(jī)的函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)與仿真作 者: 指導(dǎo)老師:摘要:本系統(tǒng)利用80C51設(shè)計(jì)一個(gè)函數(shù)信號(hào)發(fā)生器,詳細(xì)說明了其實(shí)現(xiàn)過程。本系統(tǒng)使用匯編語言編寫,用80C51單片機(jī)來實(shí)現(xiàn)各模塊功能,使用PROTEUS進(jìn)行仿真。本文描述使用匯編語言和PROTEUS仿真實(shí)現(xiàn)函數(shù)信號(hào)發(fā)生器的基本功能,實(shí)現(xiàn)了方波、三角波、正弦波、鋸齒波,頻率可調(diào)為10HZ、100HZ、500HZ、1000HZ。本文給出了源程序、各模塊的連接圖以與仿真圖,并做出了詳細(xì)的分析。關(guān)鍵詞:匯編語言,PROTEUS,函數(shù)信號(hào)發(fā)生器,80C51Design an

3、d simulation of the function signal generator based on MCUElectronics and Information Science and Technology Candidate: LiuPinganAdvisor: CaiJianhuaAbstract:This system uses 80C51 designed a function signal generator, describes detailedly the implementation process. The system uses the Assembler lan

4、guage, realizing every function uses 80C51, applying PROTEUS to simulate in order to realize the function every modules. This article describes the use of Assembler language and PROTEUS simulation, to achieve the basic functions of the Function signal generator, realized square-wave, triangle wave,

5、sine wave, saw-tooth wave , and the frequency adjustable for 10HZ,100HZ,500HZ,1000HZ . This article gives the original program and the simulating diagram and the combination of all of the modules, gives detail analysis of every simulating diagram as well.Keywords:Assembler language, PROTEUS, Functio

6、n signal generator,80C51引言在科學(xué)研究、工程教育與生產(chǎn)實(shí)踐中,如工業(yè)過程控制、教學(xué)實(shí)驗(yàn)、機(jī)械振動(dòng)試驗(yàn)、動(dòng)態(tài)分析、材料試驗(yàn)、生物醫(yī)學(xué)等領(lǐng)域,常常需要用到低頻信號(hào)發(fā)生器。函數(shù)發(fā)生器作為一種通用的電子儀器,在生產(chǎn)、科研、測(cè)控、通訊等領(lǐng)域都得到了廣泛的應(yīng)用。但市面上能看到的此類儀器在頻率精度、帶寬、波形種類與程控方面都已不能滿足許多方面實(shí)際應(yīng)用的需求。我們長期使用的信號(hào)發(fā)生器,大部分是由模擬電路構(gòu)成的,這類儀器作為信號(hào)源,頻率可達(dá)上百M(fèi)Hz,在高頻圍其頻率穩(wěn)定性高、可調(diào)性好。但用于低頻信號(hào)輸出時(shí),它所需要的RC值很大,參數(shù)準(zhǔn)確度難以保證。而且其體積大,損耗也大。前人研制了采用8

7、031單片機(jī)與程序存儲(chǔ)器構(gòu)成的最小系統(tǒng)組成的數(shù)字式低頻信號(hào)發(fā)生器,它在低頻圍性能好,但是體積較大,價(jià)格較貴。隨著大規(guī)模集成電路技術(shù)的發(fā)展,集成度不斷提高,使得微型機(jī)的速度和性能大為提高,可靠性增加,成本降低。MCS-51就是將具有存儲(chǔ)程序、處理數(shù)據(jù)以與與外設(shè)交換信息的功能電路集成在一塊芯片中,并符合一定系統(tǒng)結(jié)構(gòu)而構(gòu)成的單片機(jī)。1單片機(jī)特點(diǎn)1.1單片機(jī)概述隨著大規(guī)模集成電路技術(shù)的發(fā)展,中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、(I/O)接口、定時(shí)器/計(jì)數(shù)器和串行通信接口,以與其他一些計(jì)算機(jī)外圍電路等均可集成在一塊芯片上構(gòu)成單片微型計(jì)算機(jī),簡稱為單片機(jī)。單片機(jī)具有體積小

8、、成本低,性能穩(wěn)定、使用壽命長等特點(diǎn)。其最明顯的優(yōu)勢(shì)就是可以嵌入到各種儀器、設(shè)備中,這是其他計(jì)算機(jī)和網(wǎng)絡(luò)都無法做到的1,2。1.2信號(hào)發(fā)生器的分類信號(hào)發(fā)生器應(yīng)用廣泛,種類繁多,性能各異,分類也不盡一致。按照頻率圍分類可以分為:超低頻信號(hào)發(fā)生器、低頻信號(hào)發(fā)生器、視頻信號(hào)發(fā)生器、高頻波形發(fā)生器、甚高頻波形發(fā)生器和超高頻信號(hào)發(fā)生器。按照輸出波形分類可以分為:正弦信號(hào)發(fā)生器和非正弦信號(hào)發(fā)生器,非正弦信號(hào)發(fā)生器又包括:脈沖信號(hào)發(fā)生器,函數(shù)信號(hào)發(fā)生器、掃頻信號(hào)發(fā)生器、數(shù)字序列波形發(fā)生器、圖形信號(hào)發(fā)生器、噪聲信號(hào)發(fā)生器等。按照信號(hào)發(fā)生器性能指標(biāo)可以分為一般信號(hào)發(fā)生器和標(biāo)準(zhǔn)信號(hào)發(fā)生器。前者指對(duì)輸出信號(hào)的頻率、

9、幅度的準(zhǔn)確度和穩(wěn)定度以與波形失真等要求不高的一類信號(hào)發(fā)生器。后者是指其輸出信號(hào)的頻率、幅度、調(diào)制系數(shù)等在一定圍連續(xù)可調(diào),并且讀數(shù)準(zhǔn)確、穩(wěn)定、屏蔽良好的中、高檔信號(hào)發(fā)生器1,2。1.3研究容本文是做基于單片機(jī)的信號(hào)發(fā)生器的設(shè)計(jì),將采用編程的方法來實(shí)現(xiàn)三角波、鋸齒波、矩形波、正弦波的發(fā)生。根據(jù)設(shè)計(jì)的要求,對(duì)各種波形的頻率進(jìn)行程序的編寫,并將所寫程序裝入單片機(jī)的程序存儲(chǔ)器中。在程序運(yùn)行中,當(dāng)接收到來自外界的命令,需要輸出某種波形時(shí)再調(diào)用相應(yīng)的中斷服務(wù)子程序和波形發(fā)生程序,經(jīng)電路的數(shù)/模轉(zhuǎn)換器和運(yùn)算放大器處理后,從信號(hào)發(fā)生器的輸出端口輸出。方案的設(shè)計(jì)與選擇2.1 方案的比較方案一:采用單片函數(shù)發(fā)生器(

10、如8038),8038可同時(shí)產(chǎn)生正弦波、方波等,而且方法簡單易行,用D/A轉(zhuǎn)換器的輸出來改變調(diào)制電壓,也可以實(shí)現(xiàn)數(shù)控調(diào)整頻率,但產(chǎn)生信號(hào)的頻率穩(wěn)定度不高。方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(VCO)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達(dá)到輸出頻率覆蓋系數(shù)的要求,且電路復(fù)雜。方案三:采用單片機(jī)編程的方法來實(shí)現(xiàn)。該方法可以通過編程的方法來控制信號(hào)波形的頻率和幅度,而且在硬件電路不變的情況下,通過改變程序來實(shí)現(xiàn)頻率的變換。此外,由于通過編程方法產(chǎn)生的是數(shù)字信號(hào),所以信號(hào)的精度可以做的很高。鑒于方案一的信號(hào)頻率不夠穩(wěn)定和方案二的電路復(fù)雜,頻率覆蓋系數(shù)難以達(dá)標(biāo)等缺點(diǎn),所

11、以決定采用方案三的設(shè)計(jì)方法。它不僅采用軟硬件結(jié)合,軟件控制硬件的方法來實(shí)現(xiàn),使得信號(hào)頻率的穩(wěn)定性和精度的準(zhǔn)確性得以保證,而且它使用的幾種元器件都是常用的元器件,容易得到,且價(jià)格便宜,使得硬件的開銷達(dá)到最省3,4。2.2 設(shè)計(jì)原理 輸出數(shù)字信號(hào)可以通過數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號(hào),因此可通過產(chǎn)生數(shù)字信號(hào)再轉(zhuǎn)換成模擬信號(hào)的方法來獲得所需要的波形。80C51單片機(jī)本身就是一個(gè)完整的微型計(jì)算機(jī),具有組成微型計(jì)算機(jī)的各部分部件:中央處理器CPU、隨機(jī)存取存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、I/O接口電路、定時(shí)器/計(jì)數(shù)器以與串行通訊接口等,只要將80C51再配置鍵盤與其接口、顯示器與其接口、數(shù)模轉(zhuǎn)換與波形輸出、

12、指示燈與其接口等四部分,即可構(gòu)成所需的波形發(fā)生器,其信號(hào)發(fā)生器構(gòu)成原理框圖如圖2.1所示。濾波放大D/A轉(zhuǎn)換器接口電路89C51單片機(jī)圖2.1 信號(hào)發(fā)生器原理框圖如圖2.1所示80C51是整個(gè)波形發(fā)生器的核心部分,通過程序的編寫和執(zhí)行,產(chǎn)生各種各樣的信號(hào),并從鍵盤接收數(shù)據(jù),進(jìn)行各種功能的轉(zhuǎn)換。當(dāng)數(shù)字信號(hào)經(jīng)過接口電路到達(dá)轉(zhuǎn)換電路,將其轉(zhuǎn)換成模擬信號(hào)也就是所需要的輸出波形。2.3 設(shè)計(jì)思想(1)利用單片機(jī)產(chǎn)生方波、正弦波、三角波和鋸齒波等信號(hào)波形,信號(hào)的頻率。(2)將一個(gè)周期的信號(hào)分離成256個(gè)點(diǎn)(按X軸等分),每兩點(diǎn)之間的時(shí)間間隔為,用單片機(jī)的定時(shí)器產(chǎn)生,其表示式為: 。如果單片機(jī)的晶振為12M

13、Hz,采用定時(shí)器方式0,則定時(shí)器的初值為:(2.1)定時(shí)時(shí)間常數(shù)為: (2.2) (2.3)MOD32表示除32取余數(shù)(3)正弦波的模擬信號(hào)是D/A轉(zhuǎn)換器的模擬量輸出,其計(jì)算公式為: 其中 (2.4) 其中 (2.5)那么對(duì)應(yīng)著存放在計(jì)算機(jī)里的這一點(diǎn)的數(shù)據(jù)為: (4)一個(gè)周期被分離成256個(gè)點(diǎn),對(duì)應(yīng)的四種波形的256個(gè)數(shù)據(jù)存放在以TAB1TAB4為起始地址的存儲(chǔ)器中。2.4 設(shè)計(jì)功能本方案利用8255A擴(kuò)展8個(gè)獨(dú)立式按鍵,6個(gè)LED顯示器。其中“S0”號(hào)鍵代表方波輸出,“S1”號(hào)鍵代表正弦波輸出,“S2”號(hào)鍵代表三角波輸出,“S3” 號(hào)鍵代表鋸齒波輸出。 “S4”號(hào)鍵為10Hz的頻率信號(hào),“S

14、5”號(hào)鍵為100Hz的頻率信號(hào),“S6”號(hào)鍵為500Hz的頻率信號(hào),“S7”號(hào)鍵為1KHz的頻率信號(hào),6個(gè)LED顯示器輸出信號(hào)的頻率值,選用共陽極LED。利用DAC0832實(shí)現(xiàn)頻率可調(diào)的信號(hào)源。頻率圍:10Hz,100Hz,500Hz,1000Hz。輸出波形幅度為05V。硬件設(shè)計(jì)3.1硬件原理框圖波形輸出放大電路顯示電路數(shù)/模轉(zhuǎn)換電路鍵盤電路單片機(jī)復(fù)位電路圖3.1 硬件原理框圖如圖3.1所示80C51單片機(jī)為硬件系統(tǒng)的核心,單片機(jī)對(duì)鍵盤掃描讀入鍵值確定波形與頻率,通過顯示電路顯示頻率值,通過數(shù)模轉(zhuǎn)換器放大電路輸出波形,通過示波器可以觀察波形與頻率,復(fù)位電路用于系統(tǒng)復(fù)位重啟。3.2主控電路圖3.

15、2 主控電路圖如圖3.2所示,80C51從P0口接收來自鍵盤的信號(hào),并通過P2口輸出一些控制信號(hào),將其輸入到8255A的信號(hào)控制端,用于控制其信號(hào)的輸入、輸出。如果有鍵按下,則在讀控制端會(huì)產(chǎn)生一個(gè)讀信號(hào),使單片機(jī)讀入信號(hào)。如果有信號(hào)輸出,則在寫控制端產(chǎn)生一個(gè)寫信號(hào),并將所要輸出的信號(hào)通過8255A的PB口輸出,并在數(shù)碼管上顯示出來。3.3 數(shù)/模轉(zhuǎn)換電路由于單片機(jī)產(chǎn)生的是數(shù)字信號(hào),要想得到所需要的波形,就要把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),所以該文選用價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器以與輸

16、入控制電路四部分組成。圖3.3 數(shù)模轉(zhuǎn)換電路由圖3.3可知,DAC0832的片選地址為7FFFH,當(dāng)P25有效時(shí),若P0口向其送的數(shù)據(jù)為00H, 則U1 的輸出電壓為0V。若P0口向其送的數(shù)據(jù)為0FFH時(shí), 則U1的輸出電壓為-5V. 故當(dāng)U1 輸出電壓為0V時(shí),Vout = - 5V.當(dāng)輸出電壓為- 5V時(shí),可得:Vout = +5V,所以輸出波形的電壓變化圍為- 5V+ 5V. 故可推得當(dāng)P0所送數(shù)據(jù)為80H時(shí),Vout為0V6。公式如右所示:3.4 按鍵接口電路圖3.4 按鍵接口電路圖3.4為鍵盤接口電路的原理圖,圖中鍵盤和8255A的PA口相連,80C51的P0口和8255A的D0口相

17、連,80C51不斷的掃描鍵盤,看是否有鍵按下,如有,則根據(jù)相應(yīng)按鍵作出反應(yīng)。其中“S0”號(hào)鍵代表方波輸出,“S1”號(hào)鍵代表正弦波輸出,“S2”號(hào)鍵代表三角波輸出。 “S3”號(hào)鍵代表鋸齒波輸出,“S4”號(hào)鍵為10Hz的頻率信號(hào),“S5”號(hào)鍵為100Hz的頻率信號(hào),“S6”號(hào)鍵為500Hz的頻率信號(hào),“S7”號(hào)鍵為1KHz的頻率信號(hào)78051單片機(jī)有兩個(gè)引腳(XTAL1,XTAL2)用于外接石英晶體和微調(diào)電容,從而構(gòu)成時(shí)鐘電路,其電路圖如圖3.5所示。圖3.5 時(shí)鐘電路如圖3.5所示電容C1、C2對(duì)振蕩頻率有穩(wěn)定作用,其容量的選擇為30pf,振蕩器選擇頻率為12MHz的石英晶體。由于頻率較大時(shí),三

18、角波、正弦波、鋸齒波中每一點(diǎn)的延時(shí)時(shí)間為幾微秒,故延時(shí)時(shí)間還要加上指令時(shí)間才能獲得較大的頻率波形9。圖3.6LED顯示電路如圖3.6所示顯示電路是用來顯示波形信號(hào)的頻率,使得整個(gè)系統(tǒng)更加合理,從經(jīng)濟(jì)的角度出發(fā),所以顯示器件采用LED數(shù)碼管顯示器。而且LED數(shù)碼管是采用共陽極接法,當(dāng)主控端口輸出一個(gè)低電平后,與其相對(duì)應(yīng)的數(shù)碼管即變亮,顯示所需數(shù)據(jù)10。軟件設(shè)計(jì)4.1 程序流程圖本文中子程序的調(diào)用是通過按鍵的選擇來實(shí)現(xiàn),在取得按鍵相應(yīng)的鍵值后,啟動(dòng)計(jì)時(shí)器和相應(yīng)的中斷服務(wù)程序,再直接查詢程序中預(yù)先設(shè)置的數(shù)據(jù)值,通過轉(zhuǎn)換輸出相應(yīng)的電壓,從而形成所需的各種波形。按下復(fù)位鍵后系統(tǒng)對(duì)8255A初始化,再通過

19、鍵盤按鈕確認(rèn)頻率與波形選擇。首先判斷信號(hào)頻率值,如符合所需的頻率,則重置時(shí)間常數(shù),并通過顯示器顯示出來,不符則返回。在中斷結(jié)束后,還要來判斷波形是否符合,如符合,則顯示其頻率,不符則返回,重新判斷。主程序的流程圖:圖4.1 主程序流程圖如圖4.1所示,在程序開始運(yùn)行之后,首先是對(duì)8255A進(jìn)行初始化,之后判斷信號(hào)頻率值,如符合所需的頻率,則重置時(shí)間常數(shù),并通過顯示器顯示出來,不符則返回。在中斷結(jié)束后,還要來判斷波形是否符合,如符合,則顯示其頻率,不符則返回,重新判斷。下面說明主程序流程圖的程序?qū)崿F(xiàn):1.開始:ORG 0000H 程序開始執(zhí)行,首先覺得跳轉(zhuǎn)到主程序AJM MAINORG 000B

20、H 定時(shí)器0中斷入口地址,跳轉(zhuǎn)到中斷服務(wù)程序LJMP TC0ORG 0030H2.8255A初始化:MOV DPTR,#7F00H 指向8255A命令字端口地址MOV A,#06H 設(shè)置A口為輸入,B口、C口為輸出MOVX DPTR,A 命令字(8255A初始化)3.判斷信號(hào)頻率:MOV DPTR,#7F01H 指向A口地址MOVX A,DPTR 讀入A口的開關(guān)數(shù)據(jù)JNB ACC.4,K10H 判斷是否“4鍵”,是則轉(zhuǎn)輸出10Hz信號(hào)JNB ACC.5,K100H 判斷是否“5鍵”,是則轉(zhuǎn)輸100Hz信號(hào)JNB ACC.6,K500H 判斷是否“6鍵”,是則轉(zhuǎn)輸出500Hz信號(hào)JNB ACC.

21、7,K1K 判斷是否“7鍵”,是則轉(zhuǎn)輸出1KHz信號(hào)AJMP MAIN 無鍵按下則返回等待4.根據(jù)頻率值置新的時(shí)間常數(shù),以顯示10HZ 為例,其他原理一樣不做論述:K10H:MOV 30H,#00H 顯示10HzMOV 31H,#00H 初始化顯示緩沖段MOV 32H,#00HMOV 33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 調(diào)顯示子程序MOV TMOD,#00H 寫定時(shí)器工作方式 MOV TL0,#15H 置新的時(shí)間常數(shù)MOV TH0,#9EHAJMP PD5.顯示頻率值,下面以顯示10HZ 為例,其他原理一樣不做論述:K10H:MOV 30H,#

22、00H 顯示10HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 調(diào)用顯示子程序6.顯示子程序:LED1: MOV R3,#06H 設(shè)置6個(gè)LED顯示MOV R2,#01H 選通第一位LED數(shù)據(jù)MOV R1,#30H 送顯示緩沖區(qū)首址GN1:MOV DPTR,#7F03H 指向C口地址MOV A,R2 位選通數(shù)據(jù)送AMOVX DPTR,A 位選通數(shù)據(jù)送C口RL A 通下一位MOV R2,A 位選通數(shù)據(jù)送R2中保存MOV A, R1 取鍵值MOV DPTR,#TAB 送LED顯示軟件譯碼表首址MOVC

23、 A,A+DPTR 查表求出鍵值顯示的段碼MOV DPTR,#7F02H 指向B口地址MOV DPTR,A 段碼送顯示LCALL LOOP1 調(diào)延時(shí)子程序INC R1 指向下一位顯示緩沖區(qū)地址DJNZ R3,GN1 循環(huán)顯示6個(gè)LEDRET7.中斷設(shè)置開中斷:GN: SETB TR0 啟動(dòng)定時(shí)器SETB ET0 開定時(shí)器0中斷SETB EA 開總中斷8判斷波形:PD:JNB ACC.0,KE0 “0”號(hào)鍵按下,若是則轉(zhuǎn)方波輸出JNB ACC.1,KE1 “1”號(hào)鍵按下,若是則轉(zhuǎn)正弦方波輸出JNB ACC.2,KE2 “2”號(hào)鍵按下,若是則轉(zhuǎn)三角波輸出JNB ACC.3,KE3 “3”號(hào)鍵按下,

24、若是則轉(zhuǎn)鋸齒波輸出LJMP PD 無鍵按下則返回等待波形子程序的流程圖:Y圖4.2 子程序流程圖如圖4.2所示,在中斷服務(wù)子程序開始后,通過判斷來確定各種波形的輸出,當(dāng)判斷選擇的不是方波后,則轉(zhuǎn)向?qū)φ也ǖ呐袛啵绱朔磸?fù)。下面說明子程序流程圖的程序?qū)崿F(xiàn):1.中斷服務(wù)程序開始:LJMP TC0 絕對(duì)跳轉(zhuǎn)到中斷服務(wù)程序2.判斷是否是方波與處理方法:TC0:CJNE R7,#00H,TC1 判斷是否是方波,不是則跳轉(zhuǎn)MOV DPTR,#TAB1 送方波數(shù)據(jù)表首址MOV A,R6 發(fā)送數(shù)據(jù)寄存器MOVC A,A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A

25、DAC0832(2)輸出MOV A,R6INC A MOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL13.判斷是否是正弦波與處理方法:TC1:CJNE R7,#01H,TC2 判斷是否是正弦波,不是則跳轉(zhuǎn)MOV DPTR,#TAB2 送正弦波數(shù)據(jù)表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL14.判斷是否是三角波與處理方法:TC2:CJNE R7,#

26、02H,QL1 判斷是否是三角波,不是則跳轉(zhuǎn)MOV DPTR,#TAB3 送三角波數(shù)據(jù)表首址MOV A,R6MOVC A,A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL15.判斷是否是鋸齒波與處理方法:TC3:CJNE R7,#03H,QL1 判斷是否是鋸齒波,不是則跳轉(zhuǎn)MOV DPTR,#TAB4 送鋸齒波數(shù)據(jù)表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)

27、MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00H4.2. 電路原理圖與源程序源程序:ORG 0000HAJM MAINORG 000BHLJMP TC0ORG 0030HMAIN:MOV DPTR,#9FFFH 指向DAC0832(1)MOV A,70HMOVX DPTR,A DAC0832(1)輸出MOV DPTR,#7F00H 指向8255A命令字端口地址MOV A,#06H 設(shè)置A口為輸入,B口、C口為輸出MOVX DPTR,A 命令字MOV DPTR,#7F01H 指向A口地址MOVX A,DP

28、TR 讀入A口的開關(guān)數(shù)據(jù)JNB ACC.4,K10H 判斷是否“4”,是則轉(zhuǎn)輸出10Hz信號(hào)JNB ACC.5,K100H 判斷是否“5”,是則轉(zhuǎn)輸100Hz信號(hào)JNB ACC.6,K500H 判斷是否“6”,是則轉(zhuǎn)輸出500Hz信號(hào)JNB ACC.7,K1K 判斷是否“7”,是則轉(zhuǎn)輸出1KHz信號(hào)AJMP MAINLED1: MOV R3,#06H 設(shè)置6個(gè)LED顯示MOV R2,#01H 選通第一位LED數(shù)據(jù)MOV R1,#30H 送顯示緩沖區(qū)首址GN1:MOV DPTR,#7F03H 指向C口地址MOV A,R2 位選通數(shù)據(jù)送AMOVX DPTR,A 位選通數(shù)據(jù)送C口RL A 選通下一位

29、MOV R2,A 位選通數(shù)據(jù)送R2中保存MOV A, R1 取鍵值MOV DPTR,#TAB 送LED顯示軟件譯碼表首址MOVC A,A+DPTR 查表求出鍵值顯示的段碼MOV DPTR,#7F02H 指向B口地址MOV DPTR,A 段碼送顯示LCALL LOOP1 調(diào)延時(shí)子程序INC R1 指向下一位顯示緩沖區(qū)地址DJNZ R3,GN1 循環(huán)顯示6個(gè)LEDRETLOOP1:MOV R4,#08H 延時(shí)子程序LOOP:MOV R5,#0A0HDJNZ R5,$DJNZ R4,LOOPRETK10H:MOV 30H,#00H 顯示10HzMOV 31H,#00HMOV 32H,#00HMOV

30、33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 調(diào)顯示子程序MOV TMOD,#00HMOV TL0,#15HMOV TH0,#9EHAJMP PDK100H:MOV 30H,#00H 顯示100HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#01HMOV 34H,#00HMOV 32H,#01HMOV 33H,#00HMOV 34H,#00HMOV 35H,#00HLCALL LED1 調(diào)顯示子程序MOV TMOD,#00HMOV TL0,#01HMOV TH0,#0FFHPD:JNB ACC.0,KE0 判斷是否“0”號(hào)鍵按下,若

31、是則轉(zhuǎn)方波輸出JNB ACC.1,KE1 判斷是否“1”號(hào)鍵按下,若是則轉(zhuǎn)正弦方波輸出JNB ACC.2,KE2 判斷是否“2”號(hào)鍵按下,若是則轉(zhuǎn)三角波輸出JNB ACC.3,KE3 判斷是否“3”號(hào)鍵按下,若是則轉(zhuǎn)鋸齒波輸出LJMP PDKE0:MOV R7,#00HLCALL LED1 調(diào)顯示子程序MOV R6,#00HAJMP GNKE1:MOV R7,#02HLCALL LED1 調(diào)顯示子程序MOV R6,#00HAJMP GNKE2:MOV R7,#02HLCALL LED1 調(diào)顯示子程序MOV R6,#00HAJMP GN KE3:MOV R7,#02HLCALL LED1 調(diào)顯示

32、子程序MOV R6,#00HGN: SETB TR0SETB ET0SETB EALOP1:JNB ACC.4,K10H 判斷是否“4”號(hào)鍵,若是則轉(zhuǎn)輸出10Hz信號(hào)JNB ACC.5,K100H 判斷是否“5”號(hào)鍵,若是則轉(zhuǎn)輸出100Hz信號(hào)JNB ACC.6,K500H 判斷是否“6”號(hào)鍵,若是則轉(zhuǎn)輸出500Hz信號(hào)JNB ACC.7,K1K 判斷是否“7”號(hào)鍵,若是則轉(zhuǎn)輸出1KHz信號(hào)AJMP LOP1TC0:CJNE R7,#00H,TC1 發(fā)送方波程序MOV DPTR,#TAB1 送方波數(shù)據(jù)表首址MOV A,R6 發(fā)送數(shù)據(jù)寄存器MOVC A,A+DPTRMOV DPTR,#0AFFF

33、H 指向DAC0832(2)MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC A MOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC1:CJNE R7,#01H,TC2 發(fā)送正弦波程序MOV DPTR,#TAB2 送正弦波數(shù)據(jù)表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC2:CJNE R7,#02H,QL1 發(fā)送三角波

34、程序MOV DPTR,#TAB3 送三角波數(shù)據(jù)表首址MOV A,R6MOVC A,A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC3:CJNE R7,#03H,QL1 發(fā)送鋸齒波程序MOV DPTR,#TAB4 送鋸齒波數(shù)據(jù)表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)輸出MOV A,R6INC AMOV R6

35、,ACJNE A,#32,QL1MOV R6,#00HQL1: RETITAB: DB 0C0H,0F9H,0A4H,0B0H,99H,82H,0F8H,80HTAB1: DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,

36、0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0

37、FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00

38、H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H

39、, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HTAB2: DB 80H, 83H, 86H,

40、 89H, 8DH,90H,93H,96H DB 99H, 9CH, 9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H, 0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H, 0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H DB 0DAH, 0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H DB 0EAH, 0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H DB 0F6H, 0F7H, 0F8H,0F9H, 0FAH, 0FBH,0FCH,0FDH DB 0FDH, 0

41、FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH DB 0FFH, 0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH DB 0FDH, 0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H DB 0F5H, 0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH DB 0E9H, 0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH DB 0D8H, 0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H DB 0C5H, 0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,

42、0B1H DB 0AEH, 0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H

43、 DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H DB 27

44、H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80HTAB3: DB 00H,02H,04H,06H,08H,0AH,0CH,0EH DB 10H,12H,14H,16H,18H,1AH,1CH,1EH DB 20H,22H,24H,26H,28H,2AH,2CH,2EH DB 30H,32H,34H,36H,38H,3AH,

45、3CH,3EH DB 40H,42H,44H,46H,48H,4AH,4CH,4EH DB 50H,52H,54H,56H,58H,5AH,5CH,5EH DB 60H,62H,64H,66H,68H,6AH,6CH,6EH DB 70H,72H,74H,76H,78H,7AH,7CH,7EH DB 80H,82H,84H,86H,88H,8AH,8CH,8EH DB 0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ACH,0AEH DB 0B0H,0B2H,0B4H,0B6H,0B8H,0BAH,0BCH,0BEH DB 0C0H,0C2H,0C4H,0C6H,0C8H,0CA

46、H,0CCH,0CEH DB 0D0H,0D2H,0D4H,0D6H,0D8H,0DAH,0DCH,0DEH DB 0E0H,0E2H,0E4H,0E6H,0E8H,0EAH,0ECH,0EEH DB 0F0H,0F2H,0F4H,0F6H,0F8H,0FAH,0FCH,0FEH DB 0FFH,0FEH,0FCH,0FAH,0F8H,0F6H,0F4H,0F2H DB 0F0H,0EEH,0ECH,0EAH,0E8H,0E6H,0E4H,0E2H DB 0E0H,0DEH,0DCH,0DAH,0D8H,0D6H,0D4H,0D2H DB 0D0H,0CEH,0CCH,0CAH,0C8H,0C

47、6H,0C4H,0C2H DB 0C0H,0BEH,0BCH,0BAH,0B8H,0B6H,0B4H,0B2H DB 0B0H,0AEH,0ACH,0AAH,0A8H,0A6H,0A4H,0A2H DB 0A0H,09EH,9CH,9AH,98H,96H,94H,92H DB 90H,8EH,8CH,8AH,88H,86H,84H,82H DB 80H,7EH,7CH,7AH,78H,76H,74H,72H DB 70H,6EH,6CH,6AH,68H,66H,64H,62H DB 60H,5EH,5CH,5AH,58H,56H,54H,52H DB 50H,4EH,4CH,4AH,48H,4

48、6H,44H,42H DB 40H,3EH,3CH,3AH,38H,36H,34H,32H DB 30H,2EH,2CH,2AH,28H,26H,24H,22H DB 20H,1EH,1CH,1AH,18H,16H,14H,12H DB 10H,0EH,0CH,0AH,08H,06H,04H,02HTAB4: DB 00H,01H,02H,03H,04H,05H,06H,07H DB 08H,09H,0AH,0BH,0CH,0DH,0EH,0FH DB 10H,11H,12H,13H,14H,15H,16H,17H DB 18H,19H,1AH,1BH,1CH,1DH,1EH,1FH DB 2

49、0H,21H,22H,23H,24H,25H,26H,27H DB 28H,29H,2AH,2BH,2CH,2DH,2EH,2FH DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,3AH,3BH,3CH,3DH,3EH,3FH DB 40H,41H,42H,43H,44H,45H,46H,47H DB 48H,49H,4AH,4BH,4CH,4DH,4EH,4FH DB 50H,51H,52H,53H,54H,55H,56H,57H DB 58H,59H,5AH,5BH,5CH,5DH,5EH,5FH DB 60H,61H,62H,63H,64H,6

50、5H,66H,67H DB 68H,69H,6AH,6BH,6CH,6DH,6EH,6FH DB 70H,71H,72H,73H,74H,75H,76H,77H DB 78H,79H,7AH,7BH,7CH,7DH,7EH,7FH DB 80H,81H,82H,83H,84H,85H,86H,87H DB 88H,89H,8AH,8BH,8CH,8DH,8EH,8FH DB 90H,91H,92H,93H,94H,95H,96H,97H DB 98H,99H,9AH,9BH,9CH,9DH,9EH,9FH DB 0A0H,0A1H,0A2H,0A3H,0A4H,0A5H,0A6H,0A7H D

51、B 0A8H,0A9H,0AAH,0ABH,0ACH,0ADH,0AEH,0AFH DB 0B0H,0B1H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7H DB 0B8H,0B9H,0BAH,0BBH,0BCH,0BDH,0BEH,0BFH DB 0C0H,0C1H,0C2H,0C3H,0C4H,0C5H,0C6H,0C7H DB 0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CEH,0CFH DB 0D0H,0D1H,0D2H,0D3H,0D4H,0D5H,0D6H,0D7H DB 0D8H,0D9H,0DAH,0DBH,0DCH,0DDH,0DEH,0DFH DB 0E

溫馨提示

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

評(píng)論

0/150

提交評(píng)論