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

下載本文檔

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

文檔簡介

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

2、.4程序仿真結(jié)果(28)4.5實驗小結(jié)(29)6總結(jié)(29)參考文獻(29)基于單片機的函數(shù)信號發(fā)生器的設(shè)計與仿真作 者: 指導(dǎo)老師:摘要:本系統(tǒng)利用80C51設(shè)計一個函數(shù)信號發(fā)生器,詳細說明了其實現(xiàn)過程。本系統(tǒng)使用匯編語言編寫,用80C51單片機來實現(xiàn)各模塊功能,使用PROTEUS進行仿真。本文描述使用匯編語言和PROTEUS仿真實現(xiàn)函數(shù)信號發(fā)生器的基本功能,實現(xiàn)了方波、三角波、正弦波、鋸齒波,頻率可調(diào)為10HZ、100HZ、500HZ、1000HZ。本文給出了源程序、各模塊的連接圖以與仿真圖,并做出了詳細的分析。關(guān)鍵詞:匯編語言,PROTEUS,函數(shù)信號發(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)實踐中,如工業(yè)過程控制、教學(xué)實驗、機械振動試驗、動態(tài)分析、材料試驗、生物醫(yī)學(xué)等領(lǐng)域,常常需要用到低頻信號發(fā)生器。函數(shù)發(fā)生器作為一種通用的電子儀器,在生產(chǎn)、科研、測控、通訊等領(lǐng)域都得到了廣泛的應(yīng)用。但市面上能看到的此類儀器在頻率精度、帶寬、波形種類與程控方面都已不能滿足許多方面實際應(yīng)用的需求。我們長期使用的信號發(fā)生器,大部分是由模擬電路構(gòu)成的,這類儀器作為信號源,頻率可達上百MHz,在高頻圍其頻率穩(wěn)定性高、可調(diào)性好。但用于低頻信號輸出時,它所需要的RC值很大,參數(shù)準確度難以保證。而且其體積大,損耗也大。前人研制了采用8

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

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

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

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

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

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

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

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

15、2 主控電路圖如圖3.2所示,80C51從P0口接收來自鍵盤的信號,并通過P2口輸出一些控制信號,將其輸入到8255A的信號控制端,用于控制其信號的輸入、輸出。如果有鍵按下,則在讀控制端會產(chǎn)生一個讀信號,使單片機讀入信號。如果有信號輸出,則在寫控制端產(chǎn)生一個寫信號,并將所要輸出的信號通過8255A的PB口輸出,并在數(shù)碼管上顯示出來。3.3 數(shù)/模轉(zhuǎn)換電路由于單片機產(chǎn)生的是數(shù)字信號,要想得到所需要的波形,就要把數(shù)字信號轉(zhuǎn)換成模擬信號,所以該文選用價格低廉、接口簡單、轉(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,當P25有效時,若P0口向其送的數(shù)據(jù)為00H, 則U1 的輸出電壓為0V。若P0口向其送的數(shù)據(jù)為0FFH時, 則U1的輸出電壓為-5V. 故當U1 輸出電壓為0V時,Vout = - 5V.當輸出電壓為- 5V時,可得:Vout = +5V,所以輸出波形的電壓變化圍為- 5V+ 5V. 故可推得當P0所送數(shù)據(jù)為80H時,Vout為0V6。公式如右所示:3.4 按鍵接口電路圖3.4 按鍵接口電路圖3.4為鍵盤接口電路的原理圖,圖中鍵盤和8255A的PA口相連,80C51的P0口和8255A的D0口相

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

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

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

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

21、7,K1K 判斷是否“7鍵”,是則轉(zhuǎn)輸出1KHz信號AJMP MAIN 無鍵按下則返回等待4.根據(jù)頻率值置新的時間常數(shù),以顯示10HZ 為例,其他原理一樣不做論述:K10H:MOV 30H,#00H 顯示10HzMOV 31H,#00H 初始化顯示緩沖段MOV 32H,#00HMOV 33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 調(diào)顯示子程序MOV TMOD,#00H 寫定時器工作方式 MOV TL0,#15H 置新的時間常數(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個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)延時子程序INC R1 指向下一位顯示緩沖區(qū)地址DJNZ R3,GN1 循環(huán)顯示6個LEDRET7.中斷設(shè)置開中斷:GN: SETB TR0 啟動定時器SETB ET0 開定時器0中斷SETB EA 開總中斷8判斷波形:PD:JNB ACC.0,KE0 “0”號鍵按下,若是則轉(zhuǎn)方波輸出JNB ACC.1,KE1 “1”號鍵按下,若是則轉(zhuǎn)正弦方波輸出JNB ACC.2,KE2 “2”號鍵按下,若是則轉(zhuǎn)三角波輸出JNB ACC.3,KE3 “3”號鍵按下,

24、若是則轉(zhuǎn)鋸齒波輸出LJMP PD 無鍵按下則返回等待波形子程序的流程圖:Y圖4.2 子程序流程圖如圖4.2所示,在中斷服務(wù)子程序開始后,通過判斷來確定各種波形的輸出,當判斷選擇的不是方波后,則轉(zhuǎn)向?qū)φ也ǖ呐袛?,如此反?fù)。下面說明子程序流程圖的程序?qū)崿F(xiàn):1.中斷服務(wù)程序開始:LJMP TC0 絕對跳轉(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信號JNB ACC.5,K100H 判斷是否“5”,是則轉(zhuǎn)輸100Hz信號JNB ACC.6,K500H 判斷是否“6”,是則轉(zhuǎn)輸出500Hz信號JNB ACC.7,K1K 判斷是否“7”,是則轉(zhuǎn)輸出1KHz信號AJMP MAINLED1: MOV R3,#06H 設(shè)置6個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)延時子程序INC R1 指向下一位顯示緩沖區(qū)地址DJNZ R3,GN1 循環(huán)顯示6個LEDRETLOOP1:MOV R4,#08H 延時子程序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”號鍵按下,若

31、是則轉(zhuǎn)方波輸出JNB ACC.1,KE1 判斷是否“1”號鍵按下,若是則轉(zhuǎn)正弦方波輸出JNB ACC.2,KE2 判斷是否“2”號鍵按下,若是則轉(zhuǎn)三角波輸出JNB ACC.3,KE3 判斷是否“3”號鍵按下,若是則轉(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”號鍵,若是則轉(zhuǎn)輸出10Hz信號JNB ACC.5,K100H 判斷是否“5”號鍵,若是則轉(zhuǎn)輸出100Hz信號JNB ACC.6,K500H 判斷是否“6”號鍵,若是則轉(zhuǎn)輸出500Hz信號JNB ACC.7,K1K 判斷是否“7”號鍵,若是則轉(zhuǎn)輸出1KHz信號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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論