畢業(yè)論文(集成運(yùn)放參數(shù)測(cè)試儀)_第1頁(yè)
已閱讀1頁(yè),還剩47頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  集成運(yùn)放參數(shù)測(cè)試儀——程序設(shè)計(jì)</p><p>  內(nèi)容摘要:該課題設(shè)計(jì)的運(yùn)算放大器閉環(huán)參數(shù)測(cè)試系統(tǒng)是基于MSC-51單片機(jī)控制模塊,并且由LCD(Liquid Crystal Display)顯示模塊,鍵盤模塊,數(shù)據(jù)采集和轉(zhuǎn)換模塊,采用DDS芯片(AD9851)實(shí)現(xiàn)了40kHz~4MHz的掃頻輸出模塊等五部分組成。采用輔助運(yùn)放測(cè)試方法,可對(duì)運(yùn)放的輸入失調(diào)電壓、輸入失調(diào)電流、交流差模開環(huán)電壓

2、增益和交流共模抑制比以及單位增益帶寬進(jìn)行測(cè)量。在軟件上,用C語(yǔ)言來編程實(shí)現(xiàn)。其要實(shí)現(xiàn)的功能包括:對(duì)來自TLC2543A/D轉(zhuǎn)換的數(shù)字信號(hào)進(jìn)行接收、分析、計(jì)算和對(duì)結(jié)果的顯示;通過不同鍵值的接收、分析來控制對(duì)不同對(duì)象的測(cè)量,并在LCD上顯示對(duì)應(yīng)的人機(jī)界面;對(duì)來自DDS的高頻信號(hào)源的頻率進(jìn)行控制來實(shí)現(xiàn)對(duì)集成運(yùn)放的帶寬參數(shù)的測(cè)試和顯示。而且具有自動(dòng)量程轉(zhuǎn)換、自動(dòng)測(cè)量功能和良好的人機(jī)交互性。</p><p>  關(guān)鍵詞:?jiǎn)?/p>

3、片機(jī) C語(yǔ)言 DDS LCD 人機(jī)交互界面</p><p>  The Instrument for testing the Parameters of Integrated Operation Amplifier</p><p>  ——program design</p><p>  Abstract:This system is designed based

4、on C51 microcontroller to measure the close loop parameters of the operation amplifier. The system conclude five modules: LCD (liquid crystal display) display module, keyboard module, data collection module, conversion m

5、odule, and the module of generating sweep sine-wave signal with frequency range from 40 kHz to 4 MHz, using the DDS chip of AD9851. The system can measure the input offset voltage、the input offset current、the open loop A

6、C differential mode v</p><p>  Key Words:MCU CLanguage DDS LCD interface</p><p><b>  目 錄</b></p><p><b>  前言1</b></p><p>  一、系統(tǒng)原理框圖1</p

7、><p>  二、硬件單元電路設(shè)計(jì)與實(shí)現(xiàn)2</p><p> ?。ㄒ唬?、、、四個(gè)參數(shù)的測(cè)試電路2</p><p> ?。ǘ﹩挝辉鲆鎺挏y(cè)量電路3</p><p> ?。ㄈy(cè)試的信號(hào)源3</p><p>  (四)峰峰值檢測(cè)電路的設(shè)計(jì)4</p><p> ?。ㄎ澹〢/D采樣電路

8、4</p><p> ?。哳l信號(hào)源4</p><p> ?。ㄆ撸╂I盤接口電路5</p><p> ?。ò耍╋@示接口電路5</p><p><b>  三、軟件設(shè)計(jì)6</b></p><p> ?。ㄒ唬┸浖δ茉O(shè)計(jì)6</p><p> ?。ǘ┫到y(tǒng)

9、軟件框圖和程序流程圖6</p><p> ?。ㄈ┸浖K設(shè)計(jì)7</p><p><b>  四、系統(tǒng)測(cè)試19</b></p><p> ?。ㄒ唬┏绦蛘{(diào)試方法19</p><p>  (二)軟件調(diào)試19</p><p> ?。ㄈ┞?lián)機(jī)調(diào)試20</p><p>

10、<b>  五、結(jié)束語(yǔ)20</b></p><p><b>  六、感謝詞20</b></p><p><b>  參考文獻(xiàn)20</b></p><p><b>  附錄一21</b></p><p><b>  附錄二22</b

11、></p><p><b>  附錄三36</b></p><p> ?。ㄒ唬㏕LC254336</p><p> ?。ǘ㎜CD液晶顯示器36</p><p><b>  附錄四38</b></p><p><b>  集成運(yùn)放參數(shù)測(cè)試儀</b

12、></p><p><b>  ——程序設(shè)計(jì)</b></p><p><b>  前言</b></p><p>  目前國(guó)內(nèi)外市場(chǎng)上各種型號(hào)的集成運(yùn)放參數(shù)測(cè)試儀已經(jīng)相當(dāng)多,而且普遍性都采用“輔助放大器的測(cè)量方法”,使測(cè)試儀的整個(gè)系統(tǒng)具有穩(wěn)定性好,精確度高,范圍大的特點(diǎn),而且測(cè)試儀測(cè)試參數(shù)一般包括:正向最大輸出電壓+,

13、負(fù)向最大輸出電壓-,正向最大共模輸出電壓+,負(fù)向最大共模輸出電壓-,正轉(zhuǎn)換速率+ ,負(fù)轉(zhuǎn)換速率-,靜態(tài)工作電流,輸入失調(diào)電壓,共模抑制比,開環(huán)增益帶寬乘積BW,輸入失調(diào)電流,開環(huán)電壓增益,基極偏置電流等15項(xiàng)。</p><p>  但這種測(cè)試儀有一種共同的特點(diǎn)電路系統(tǒng)復(fù)雜,成本高,因此在某些應(yīng)用領(lǐng)域中不能普遍使用。在此我們根據(jù)GB3442—86《半導(dǎo)體集成電路運(yùn)算電壓放大器測(cè)試方法的基本原理》規(guī)定的測(cè)試方法來設(shè)計(jì)

14、,主要測(cè)試參數(shù)包括:輸入失調(diào)電壓,共模抑制比,開環(huán)增益寬帶乘積BW,輸入失調(diào)電流,開環(huán)電壓增益等5個(gè),而且用MSC51系列單片機(jī)作為中央處理器,這樣大大降低了成本,并且具有顯示功能,使用方便,體積小,適合搬移,系統(tǒng)穩(wěn)定。</p><p>  在軟件方面,匯編語(yǔ)言是能直接控制單片機(jī)的底層語(yǔ)言,而且在控制硬件和位操作等方面表現(xiàn)很優(yōu)異,程序運(yùn)行時(shí)效率也很高,但當(dāng)用匯編語(yǔ)言來編制復(fù)雜的數(shù)學(xué)運(yùn)算類型的程序時(shí)就顯得有些不方便

15、。而使用C51高級(jí)語(yǔ)言開發(fā)MSC51系列單片機(jī)比匯編語(yǔ)言優(yōu)越地多,如程序編寫直觀易懂、便于移植、便于修改和維護(hù)、便于進(jìn)行模塊化程序設(shè)計(jì)、提高計(jì)算精度等。雖然高級(jí)語(yǔ)言在產(chǎn)生代碼方面會(huì)比較長(zhǎng)些,而且運(yùn)行速度相對(duì)來說會(huì)慢些但對(duì)于當(dāng)今作為開發(fā)的計(jì)算機(jī)軟件來說優(yōu)化程序的編譯已經(jīng)不是問題。在次我們結(jié)合了該設(shè)計(jì)自身的特點(diǎn)和需要,綜合分析了以上的優(yōu)、缺點(diǎn)最后決定采用C語(yǔ)言來編程,實(shí)現(xiàn)這個(gè)課題的功能,從而也提高其使用性。該成品可方便用于小型實(shí)驗(yàn)或個(gè)人實(shí)驗(yàn)

16、室等場(chǎng)合。</p><p><b>  系統(tǒng)原理框圖</b></p><p>  該系統(tǒng)包括軟件和硬件兩個(gè)方面,程序被下載到單片機(jī)中,自動(dòng)進(jìn)行一系列測(cè)試工作,而且可以通過良好的人機(jī)界面對(duì)其進(jìn)行選擇、控制。其整體系統(tǒng)原理框圖如圖1所示。</p><p><b>  圖1 系統(tǒng)原理框圖</b></p><p

17、>  硬件單元電路設(shè)計(jì)與實(shí)現(xiàn)</p><p>  、、、四個(gè)參數(shù)的測(cè)試電路</p><p>  按照GB3442—86《半導(dǎo)體集成電路運(yùn)算(電壓)放大器測(cè)試方法的基本原理》規(guī)定的輔助直流測(cè)試法,可實(shí)現(xiàn)運(yùn)算放大器直流參數(shù)的準(zhǔn)確測(cè)量。該方案的測(cè)試原理如圖2所示。</p><p>  圖2 GB3442—86規(guī)定的運(yùn)算放大器直流參數(shù)測(cè)試方法</p>

18、<p>  它是國(guó)標(biāo)推薦的測(cè)試方法也是目前國(guó)際普遍采用的一種測(cè)試方法,具有穩(wěn)定性好、精度高、范圍大等特點(diǎn),可測(cè)量各種集成運(yùn)算放大器的輸入失調(diào)電壓、失調(diào)電流、共模抑制比、差模開環(huán)增益等參數(shù),測(cè)試方便,測(cè)量輸出的電壓范圍合適。而輔助運(yùn)放對(duì)系統(tǒng)增益的穩(wěn)定性有很關(guān)鍵的作用,雖然也會(huì)引起自激,但可以通過一定的方法來抑制。</p><p>  測(cè)試這四個(gè)參數(shù)的電路可以集成在兩個(gè)電路里。首先可以將測(cè)試、這兩個(gè)參數(shù)的電

19、路通過繼電器做成一個(gè)電路系統(tǒng),如圖3所示。電容Cu是補(bǔ)償分布電容,用來抑制自激的發(fā)生,而Cu的值是通過實(shí)驗(yàn)獲得的:先將數(shù)百皮法的瓷片電容接入電路選定位置,觀察自激信號(hào)的變化,直到取得使自激信號(hào)最小的電容值為止。然后將測(cè)試、這兩個(gè)參數(shù)的電路也集成一個(gè)電路系統(tǒng),如圖4所示。這樣通過兩個(gè)核心測(cè)量電路就可以完成所有參數(shù)測(cè)試,同時(shí)通過對(duì)繼電器的控制實(shí)現(xiàn)了測(cè)量的自動(dòng)化,而且大大簡(jiǎn)化了電路。</p><p>  圖3 輸入失調(diào)

20、電壓和輸入失調(diào)電流測(cè)試電路</p><p>  圖4 電壓增益和共模抑制比測(cè)試電路</p><p>  其測(cè)試電路和過程如下:</p><p>  當(dāng)繼電器1、4分別腳接向3、6腳時(shí),測(cè)得輔助運(yùn)放的輸出電壓記為VL0 ,則有:</p><p>  當(dāng)繼電器1、4分別腳接向2、5腳時(shí),測(cè)得輔助運(yùn)放的輸出電壓記為VL1,則有:</p>

21、;<p> ?、?、當(dāng)把信號(hào)源輸出(電壓為VS)接到繼電器的第1腳時(shí),測(cè)得輔助運(yùn)放輸出電壓為VL0,則有</p><p> ?、堋?dāng)把信號(hào)源輸出(電壓為VS)接到繼電器的第4腳時(shí),測(cè)得輔助運(yùn)放輸出電壓為VL0,則有</p><p>  通過上述方法就可測(cè)得所要測(cè)試的四個(gè)參數(shù)。</p><p>  單位增益帶寬測(cè)量電路</p><p&g

22、t;  單位增益帶寬測(cè)量電路為一個(gè)反向比例放大器,從P1.3口輸入正弦信號(hào)的幅值,改變信號(hào)頻率,當(dāng)P1.3口的輸入電壓幅值下降到3dB時(shí)的頻率即為單位增益帶寬。</p><p><b>  測(cè)試的信號(hào)源</b></p><p>  用文氏電橋電路實(shí)現(xiàn)產(chǎn)生4V、5Hz的正弦波。它是由RC振蕩電路構(gòu)成的低頻正弦信號(hào)發(fā)生器。通過調(diào)節(jié)電路中的電阻和電容值的大小,可以產(chǎn)生不同頻

23、率和幅度的正弦信號(hào),而且信號(hào)比較純。該電路簡(jiǎn)單、信號(hào)幅度穩(wěn)定,其穩(wěn)定度優(yōu)于1%。經(jīng)過仿真后發(fā)現(xiàn)該電路只能產(chǎn)生400KHz以內(nèi)的信號(hào),但這個(gè)頻率范圍已經(jīng)滿足我們的要求。</p><p>  峰峰值檢測(cè)電路的設(shè)計(jì)</p><p><b>  圖5 峰值檢波圖</b></p><p>  該電路主要由一個(gè)二極管和兩個(gè)電容組成,用于檢測(cè)掃頻信號(hào)源的峰值

24、。實(shí)際測(cè)量表明,該峰值檢測(cè)電路在40kHz~4MHz具有很好的線性度。該電路如圖5所示。</p><p><b>  A/D采樣電路</b></p><p>  為保證測(cè)量精度,該部分電路采用12位串行口——TLC2543。電路如圖6所示。</p><p>  圖6 A/D采樣電路圖</p><p><b> 

25、 掃頻信號(hào)源</b></p><p>  采用直接數(shù)字頻率合成芯片(AD9851)來產(chǎn)生掃頻信號(hào)。它的頻率穩(wěn)定度完全由有源晶振的頻率穩(wěn)定度決定,具有較高的頻率輸出范圍,而且可以直接由單片機(jī)的輸出來控制頻率的大小。經(jīng)過輸出掃頻測(cè)試,DDS芯片可以在10秒內(nèi)連續(xù)、穩(wěn)定輸出頻率在40kHz-4MHz范圍內(nèi)連續(xù)變化的正弦波。其電路原理圖如圖7所示。</p><p>  AD9851采用

26、并行送控制字的方式將頻率控制字送入芯片。頻率控制字FSW與最終合成的信號(hào)頻率之間的轉(zhuǎn)換公式為: </p><p>  若系統(tǒng)時(shí)鐘頻率為30MHz,則最大分辨率=30×106/232Hz=0.007Hz。遠(yuǎn)超出本題1kHz分辯力的要求。</p><p><b>  圖7 掃頻信號(hào)源圖</b></p><p><

27、b>  鍵盤接口電路</b></p><p>  鍵盤的接收部分電路如圖8所示:</p><p>  圖8 鍵盤接收電路圖</p><p>  當(dāng)有按鍵時(shí)就觸發(fā)外中斷0,再通過控制片選端(KEY_CS)來讀取當(dāng)前按鍵的鍵值,這個(gè)信號(hào)是由74LS138實(shí)現(xiàn)的,其地址為C000H;鍵值的編輯則是采用一塊PLD芯片—GAL22V100和一個(gè)雙向選通芯片7

28、4LS245來實(shí)現(xiàn);數(shù)據(jù)的讀入和其他的數(shù)據(jù)一樣都是通過總線的方式,(74ALS245的輸出端B0到B7與單片機(jī)的P0口相連接)。鍵值的四位由低到高分別對(duì)應(yīng)P0.0、P0.1、P0.2、P0.3。該鍵盤中各鍵的功能分配如下:</p><p>  KEY0:屏幕復(fù)位,鍵值為0;</p><p>  KEY1:進(jìn)入?yún)?shù)測(cè)試界面,鍵值為1;</p><p>  KEY2:進(jìn)

29、入幅頻特性測(cè)試界面,鍵值為2。</p><p><b>  顯示接口電路</b></p><p>  采用MSC-G12864液晶顯示器。該液晶顯示器的管腳分配和管腳功能使用如表1所示,根據(jù)資料我們?cè)谟布O(shè)計(jì)時(shí)將其管腳與單片機(jī)的連接如下:</p><p>  控制線:P2.3連CS2,P2.2連CS1,P2.1連R/W,P2.0連R/S,P2.

30、4連E;</p><p>  數(shù)據(jù)線:D0~D7分別與P0.0~P0.7相連接;</p><p>  因此液晶顯示器和單片機(jī)的接口電路連接如圖9所示。</p><p>  表1 液晶顯示器管腳分配</p><p><b>  圖9顯示接口電路圖</b></p>

31、;<p><b>  軟件設(shè)計(jì)</b></p><p><b>  軟件功能設(shè)計(jì)</b></p><p>  軟件系統(tǒng)以界面直觀、利于操作、便于維護(hù)和升級(jí)為基礎(chǔ)。而且為了增強(qiáng)系統(tǒng)的抗干擾性,還增加了軟件陷阱處理,防止軟件的“跑飛”。</p><p>  對(duì)于軟件功能的設(shè)計(jì)不僅僅是對(duì)程序的簡(jiǎn)單設(shè)計(jì),還包括對(duì)各電

32、路間接口的設(shè)計(jì),接口設(shè)計(jì)描述的是軟件如何與外界系統(tǒng)進(jìn)行通信,軟件內(nèi)部如何通信、以及軟件和軟件的使用人員之間如何通信等問題。一個(gè)接口意味著一個(gè)信息流(例如,數(shù)據(jù)或控制流等),因此,在這里的一個(gè)重點(diǎn)就是要實(shí)現(xiàn)如何更好的分配數(shù)據(jù)和控制流,從而實(shí)現(xiàn)整個(gè)功能。</p><p>  系統(tǒng)軟件框圖和程序流程圖</p><p>  AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8 位單片

33、機(jī),片內(nèi)含8K bytes 的Flash ROM和256 bytes的SRAM。器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容。本系統(tǒng)以單片機(jī)AT89C52為主控核心,系統(tǒng)軟件和硬件的接口框圖如圖10所示,程序流程圖如圖11所示。與單片機(jī)相連的接口電路還包括鍵盤接口電路,LCD接口電路,轉(zhuǎn)換模塊接口電路。</p><p>  圖10系統(tǒng)軟件和硬件的接口框圖&

34、lt;/p><p><b>  圖11程序流程圖</b></p><p><b>  軟件模塊設(shè)計(jì)</b></p><p>  軟件設(shè)計(jì)工作是建立在自頂而下和模塊化的設(shè)計(jì)方法之上的。這就是說,軟件應(yīng)在邏輯上分割為實(shí)現(xiàn)特定功能部分的子程序,既程序編寫的模塊化,這樣無論在設(shè)計(jì)、編碼、還是以后的維護(hù)上都提供了很大的方便。在此我們根據(jù)

35、接口電路的需要可以把該程序分為六個(gè)模塊:主程序模塊、顯示模塊、鍵盤模塊、高頻輸出模塊、轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊。雖然每個(gè)模塊之間都是利用數(shù)據(jù)的傳送將他們聯(lián)系起來,但在功能的實(shí)現(xiàn)上都是獨(dú)立的。</p><p><b> ?、?主程序模塊</b></p><p>  該模塊主要包括main()函數(shù)。</p><p>  在將程序進(jìn)行模塊化時(shí)當(dāng)然還要將

36、各個(gè)子程序聯(lián)系起來,在主程序里就是要實(shí)現(xiàn)它們之間邏輯關(guān)系的聯(lián)系,而且基于單片機(jī)自身的特點(diǎn),主程序應(yīng)該是一個(gè)死循環(huán)的過程,否則程序執(zhí)行完一次程序后就會(huì)跑飛,而不能實(shí)現(xiàn)整體功能,因而使整個(gè)系統(tǒng)處于癱瘓狀態(tài),此時(shí)只能通過重新斷電和通電才能使系統(tǒng)重新運(yùn)行,即使這樣該系統(tǒng)還是會(huì)再次進(jìn)入癱瘓狀態(tài)。因此只能利用死循環(huán)來解決這個(gè)問題,這也是對(duì)單片機(jī)編程的一種常用的方法。</p><p>  在主程序模塊中,主要實(shí)現(xiàn)的功能為:剛開

37、機(jī)時(shí),對(duì)外圍設(shè)備進(jìn)行初始化設(shè)置,然后顯示主界面,即歡迎界面;等待按鍵,通過按鍵標(biāo)志來判斷是否要調(diào)用按鍵處理函數(shù)keycl()。在keycl()函數(shù)中包括對(duì)不同鍵值的判斷,并調(diào)用數(shù)據(jù)采集、分析、處理、顯示等函數(shù)。因此主函數(shù)的流程圖如圖12所示。該主函數(shù)處于一種死循環(huán)的狀態(tài)。</p><p>  圖12 主函數(shù)流程圖</p><p>  主函數(shù)的程序如下所示:</p><p

38、>  /*********************************/</p><p>  /* 主函數(shù) */</p><p>  /********************************/</p><p>  void main()</p><p><b>  {&

39、lt;/b></p><p>  unsigned char k,adbuf,dabuf,rambuf;</p><p>  idata unsigned int *para=&ramaddr;</p><p>  ad2543(0x0C); //預(yù)先將要讀取數(shù)據(jù)的通道數(shù)送入</p><p>  dabu

40、f=0xff;</p><p>  P3_4=1; //改變繼電器</p><p>  INTlcd(); /* 調(diào)初始化函數(shù) */</p><p>  CLEAR(); /* 調(diào)清屏函數(shù) */</p><p><b>  EA=1;&

41、lt;/b></p><p><b>  EX0=1;</b></p><p><b>  IT0=1;</b></p><p><b>  flag=0;</b></p><p>  fw(); //復(fù)位</p><p

42、>  while(1) //使程序處于死循環(huán)</p><p><b>  {</b></p><p>  if(flag==1) //當(dāng)有按鍵按下時(shí)</p><p>  keycl(); //調(diào)用鍵盤處理函數(shù)包括對(duì)數(shù)據(jù)采集、分析、計(jì)算</p><

43、;p><b>  }</b></p><p><b>  }</b></p><p>  其中INTlcd()函數(shù),CLEAR()函數(shù)和fw()函數(shù)將在附錄一里給出。</p><p><b> ?、?顯示模塊</b></p><p>  顯示模塊主要是負(fù)責(zé)跟液晶顯示器接口

44、的程序模塊,包括液晶的驅(qū)動(dòng)程序和結(jié)果顯示程序。該模塊主要是由xianshi()函數(shù)組成,它的功能是將處理結(jié)果數(shù)據(jù)顯示在LCD上。流程圖如圖13所示。其中調(diào)用了寫中文函數(shù)whz(),寫西文函數(shù)wcode()。流程圖如圖14所示,以及兩個(gè)判忙函數(shù)BUSYM(),BUSYR(),兩個(gè)寫指令函數(shù)PR1(),PR4(),兩個(gè)寫數(shù)據(jù)函數(shù)PR2(),PR5(),該模塊在設(shè)計(jì)時(shí)主要考慮單片機(jī)和液晶之間的管腳連接,以及液晶自身的地址分配。在此我們參考了液

45、晶顯示器的使用手冊(cè),分析了在硬件上單片機(jī)的管腳分配情況,因此單片機(jī)和液晶的接口電路如圖9。其地址控制說明如圖15所示,接口管腳電平說明如表2所示。</p><p>  圖13 顯示模塊流程圖 圖14寫中、西文函數(shù)流程圖</p><p>  圖15地址控制說明圖</p><p>  表2: LC

46、D管腳電平說明表</p><p>  由液晶顯示器的資料可知LCD是由兩片KS0108B組成,且在液晶顯示器上片選CS1,CS2都是高電平有效,E腳:芯片使能端,是高電平或下降沿到來時(shí)有效,即只有當(dāng)它為高電平或下降沿來時(shí)才能進(jìn)行讀、寫入數(shù)據(jù)或者寫指令操作,當(dāng)該管腳為低電平時(shí)為忙狀態(tài),因此結(jié)合硬件電路的設(shè)計(jì)可得到液晶顯示器的地址分配為:</p><p>  #define cwadd2 X

47、BYTE[0xb400] /*第二片寫狀態(tài)地址*/</p><p>  #define cradd2 XBYTE[0xf600] /*第二片讀狀態(tài)地址*/</p><p>  #define dwadd2 XBYTE[0xb500] /*第二片寫數(shù)據(jù)地址*/</p><p>  #define cwadd1 XBYTE[0xb800]

48、/*第一片寫狀態(tài)地址*/</p><p>  #define cradd1 XBYTE[0xfa00] /*第一片讀狀態(tài)地址*/</p><p>  #define dwadd1 XBYTE[0xb900] /*第一片寫數(shù)據(jù)地址*/</p><p>  #define display_on 0x3f; //開顯示</p>

49、<p>  #define display_off 0x3e; //關(guān)顯示</p><p>  #define para1 0x40; /*設(shè)置列地址*/</p><p>  #define start_line0 0x0c0; /*開始顯示行為第0行*/</p><p>  #define page

50、 0xb8 //設(shè)置頁(yè)地址</p><p>  在顯示數(shù)據(jù)之前一定要進(jìn)行對(duì)液晶進(jìn)行判忙工作,只有當(dāng)液晶處于空閑狀態(tài)才能對(duì)液晶進(jìn)行寫入操作,因此在開始對(duì)液晶進(jìn)行寫入指令和數(shù)據(jù)之前要先調(diào)用兩個(gè)判忙函數(shù),一個(gè)是BUSYM()即對(duì)左片判忙,還有一個(gè)是BUSYR()即對(duì)右片進(jìn)行判忙。而且只有當(dāng)液晶是處于空閑和開狀態(tài)的時(shí)候,才能進(jìn)行下一個(gè)操作,否則將在此進(jìn)入死循環(huán)中。</p><

51、;p>  其中寫指令函數(shù)PR1(),PR4(),主要功能是設(shè)置液晶顯示器的地址;寫數(shù)據(jù)函數(shù)PR2(),PR5()是在地址設(shè)置后將要顯示的數(shù)據(jù)寫入到液晶顯示器中;寫中文函數(shù)whz()是顯示中文字符,寫西文函數(shù)wcode()是顯示西文字符。以下給出了xianshi()函數(shù)具體程序,其它的程序在附錄里給出,這里就不一一詳述。</p><p>  /*********************************

52、*****/</p><p>  /* 顯示結(jié)果 */</p><p>  /**************************************/</p><p>  void xianshi(void)</p><p><b>  {float k;</b>

53、</p><p><b>  int j;</b></p><p>  unsigned char i,last,hang,lie;</p><p>  for(i=64;i<=100;i+=6)</p><p>  wcode(i,4,47);</p><p><b>  j=4

54、;</b></p><p>  //求出每一位數(shù),便于在LCD上顯示</p><p>  for(i=0;i<5;i++)</p><p>  {average[i]=(int)(average[i]*1000); //擴(kuò)大1000倍,所以要顯示的數(shù)據(jù)有4位小數(shù)</p><p>  average[i]=ave

55、rage[i]/10;</p><p>  for(j=6;j>0;j--) //要顯示的數(shù)據(jù)共5位從最后一位開始顯示</p><p><b>  {</b></p><p>  k=average[i]-(int)average[i]; //獲得最后一位小數(shù)</p&g

56、t;<p>  if (k<0.000000)</p><p>  k=0.000000;</p><p>  average[i]=(int)average[i];</p><p>  last=k*10; // 將獲得的最后一個(gè)小數(shù)轉(zhuǎn)換為整數(shù),便于顯示</p><p>  l

57、ie=64+j*7; //要顯示的數(shù)據(jù)的行、列</p><p><b>  hang=7-i;</b></p><p>  if (j==5) //要顯示的數(shù)據(jù)共5位,有四位小數(shù)</p><p>  {wcode(lie,hang,46);

58、 //顯示小數(shù)點(diǎn)</p><p>  lie=lie+5;</p><p><b>  j--; }</b></p><p>  wcode(lie,hang,last);</p><p>  average[i]=average[i]/10; //求出下位數(shù)據(jù)</p><p>&l

59、t;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b> ?、?鍵盤模塊</b></p><p>  該模塊主要包括中斷函數(shù)int1() interrupt 0和keycl()函數(shù)。 &l

60、t;/p><p>  為了使該系統(tǒng)更具人性化,在硬件上加入了三個(gè)按鍵,相應(yīng)地在軟件上也離不開這個(gè)模塊。這三個(gè)按鍵分別用來在:初始界面,參數(shù)測(cè)試界面和增加功能的帶寬測(cè)試界面之間轉(zhuǎn)換。當(dāng)有鍵按下,就會(huì)產(chǎn)生一個(gè)下降沿脈沖從而觸發(fā)中斷的發(fā)生。在中斷函數(shù)中調(diào)用一個(gè)延時(shí)程序?qū)崿F(xiàn)消抖,如果確定有按鍵按下則將中斷標(biāo)志變量置1,即flag=1;在主程序中,通過對(duì)這個(gè)標(biāo)志變量的查詢,來決定是否調(diào)用函數(shù)keycl()。在該函數(shù)中具體實(shí)現(xiàn)不

61、同按鍵要顯示的對(duì)應(yīng)界面,并進(jìn)行不同的操作。如果當(dāng)前按下第一個(gè)鍵,則調(diào)用復(fù)位函數(shù)fw(),返回到初始的歡迎界面,顯示“歡迎使用”這四個(gè)字;如果按下的是第二個(gè)鍵,在液晶的頂部中間顯示要測(cè)試的四個(gè)參數(shù) 、、、然后調(diào)用參數(shù)測(cè)試函數(shù)ad2543()讀取不同通道的數(shù)據(jù),并通過對(duì)繼電器的控制來讀入相同通道中不同參數(shù)所需要的電壓值,然后調(diào)用sort()函數(shù)去掉采集的數(shù)據(jù)中的一個(gè)最大值和一個(gè)最小值,并將獲得的數(shù)據(jù)轉(zhuǎn)換為真實(shí)的電壓值,調(diào)用函數(shù)jisuan(

62、)將數(shù)據(jù)進(jìn)行平均后再計(jì)算參數(shù)結(jié)果,最后調(diào)用函數(shù)xianshi()將處理完的結(jié)果顯示出來;如果按下的是第三個(gè)鍵,則顯示頻帶寬度界面,并調(diào)用函數(shù)highsource(</p><p>  圖16 鍵盤模塊程序流程</p><p>  /*************************************/</p><p>  /* 鍵盤中斷

63、 */</p><p>  /*************************************/</p><p>  void int1() interrupt 0 </p><p><b>  {</b></p><p>  delay(100);&l

64、t;/p><p>  if (P3^2==0) //消抖</p><p>  keyv=keyaddr;</p><p><b>  flag=1;</b></p><p><b>  }</b></p><p>  /****

65、**********************************/</p><p>  /* 按鍵處理函數(shù) */</p><p>  /**************************************/</p><p>  void keycl(void)</p><p><b

66、>  {</b></p><p>  unsigned char i,j,k;</p><p>  flag=0; //清除按鍵標(biāo)志</p><p>  if (keyv==0) //當(dāng)按下第一個(gè)鍵時(shí)</p><p>  fw(

67、); //顯示主界面即復(fù)位</p><p>  else if(keyv==1) //當(dāng)按下第二個(gè)鍵時(shí)</p><p>  {zdcs(); //調(diào)用顯示參數(shù)測(cè)試界面</p><p>  k=0x0c;

68、//選擇通道0</p><p>  for(i=0;i<5;i++) //需要5個(gè)數(shù)據(jù)</p><p>  { //采集數(shù)據(jù)時(shí)要采集8組</p><p>  for(j=0;j<8;j++)</p><p><b>  {</b></

69、p><p>  ad0[i][j]=ad2543(k);</p><p>  delay(0x30); //在每次采集之間調(diào)用延時(shí)程序</p><p><b>  }</b></p><p>  delay(0x60); //在要選部通道之間延時(shí)</p><p>  //

70、通過改變繼電器獲得所需的不同電壓</p><p>  if(i==0) //獲得 vlO 當(dāng)i=0時(shí)</p><p>  jdq0=1; //當(dāng)i=1時(shí)閉合開關(guān)獲得vli</p><p>  if (i==1) </p><p>  { //輸入時(shí)信號(hào)源當(dāng)i=2時(shí)換通道獲得vlo 用來

71、計(jì)算avd</p><p><b>  jdq0=0;</b></p><p><b>  jdq1=0;</b></p><p><b>  k=k+0x10;</b></p><p><b>  }</b></p><p>  

72、if (i==2) //i==3時(shí)獲得vlo 是用來計(jì)算dcmr</p><p><b>  jdq1=1;</b></p><p>  if (i==3) //更換通道 獲得信號(hào)源電壓</p><p><b>  {</b></p><p><

73、b>  jdq1=0;</b></p><p>  k=k+0x10; //通道數(shù)加1</p><p>  //因?yàn)檩斎胪ǖ罃?shù)時(shí)只有前面的四位數(shù)有效</p><p><b>  }</b></p><p><b>  }</b></p><p>

74、;  sort(); //去掉一個(gè)最大值和一個(gè)最小值,并轉(zhuǎn)換為真實(shí)的電壓值</p><p>  jisuan(); //將數(shù)據(jù)進(jìn)行平均,后再進(jìn)行計(jì)算參數(shù)結(jié)果</p><p>  xianshi();} //顯示獲得的結(jié)果</p><p>  else if(keyv==2)

75、</p><p>  highsource(); //輸出高頻信號(hào),頻率的分辨率為1KHz</p><p>  flag=0; //清除按鍵標(biāo)志</p><p><b>  }</b></p><p><b>  } </b><

76、;/p><p><b>  其中</b></p><p>  jdq0,jdq1:繼電器通斷標(biāo)志變量;</p><p>  falg:按鍵標(biāo)志變量,有鍵按下則為1,否則為0;</p><p>  keyv:存放不同按鍵的鍵值;</p><p>  ad0[i][j]:存放來自通道的電壓信號(hào)的數(shù)據(jù),id

77、ata unsigned int ad0[5][8]存放參數(shù)測(cè)試所需要的5組數(shù)據(jù),又把每個(gè)所需要的數(shù)據(jù)采集的8次,因此每組數(shù)據(jù)中包括8個(gè)數(shù)據(jù),這樣真正采集的數(shù)據(jù)應(yīng)該是40個(gè)。</p><p><b> ?、?高頻輸出模塊</b></p><p>  void highsource()函數(shù)是控制DDS產(chǎn)生正弦波的,產(chǎn)生的正弦波的分辨率為1KHz。以下是AD9851的部分

78、管腳功能說明:</p><p>  4–1,28—25(D0—D7):是8位的數(shù)據(jù)輸入口,其中D0(4腳)是低位,D7(25腳)是高位;</p><p>  5(PGND):接地端;</p><p>  6(PVCC):電源端;</p><p>  這兩個(gè)管腳都是當(dāng)頻率取輸入數(shù)據(jù)的六倍時(shí)用的;</p><p>  7(

79、W_CLK):數(shù)字載入端,上升沿有效,由單片機(jī)控制,與P1.5相連; </p><p>  8(FQ_UD):頻率刷新端,上升沿有效,由單片機(jī)控制,與P1.6相連;</p><p>  9(REF_CLK):系統(tǒng)時(shí)鐘,是外部輸入,直接用10M晶振產(chǎn)生;</p><p>  10、19(AGND):模擬信號(hào)接地端;</p><p>  11、1

80、8(AVDD):模擬信號(hào)電源端;</p><p>  21(IOUT):輸出口,產(chǎn)生的信號(hào)源輸出口,必須接負(fù)載后再接入示波器;</p><p>  22(RESET):復(fù)位端,高電平時(shí)復(fù)位,當(dāng)該管腳是低電平時(shí)處于正常工作,該管腳由單片機(jī)控制,與P1.7相連。</p><p>  AD9851芯片具有輸入數(shù)字信號(hào)直接輸出對(duì)應(yīng)頻率的正弦波的功能的芯片,有以上的管腳說明可

81、知,數(shù)據(jù)輸入端只有8個(gè)口即D0—D7,但AD9851允許輸入的數(shù)據(jù)范圍為40位,因此在程序中要用串并合用的方法,每次送入8位數(shù)據(jù),并送W_CLK端一個(gè)脈沖,使芯片接受送入的數(shù)據(jù),共送5次,先送入的為高電位,送完后將FQ_UD信號(hào)置1,使送入得數(shù)據(jù)有效,產(chǎn)生所需要頻率的正弦波。該模塊的程序流程如圖17所示。highsource()函數(shù)如下所示:</p><p>  /************************

82、***********************/</p><p>  /* 產(chǎn)生高頻信號(hào) */</p><p>  /***********************************************/</p><p>  void highsource()</p><p&

83、gt;<b>  {</b></p><p>  unsigned char i, j;</p><p>  idata unsigned long step;</p><p>  idata unsigned long addr=0x22222222; //頻率的最大值約為4M</p><p>  idata un

84、signed char zanc[5]={0x00,0x22,0x22,0x22,0x22};</p><p>  unsigned char *p=&dacs; //高頻信號(hào)源地址</p><p>  unsigned char *p1=&addr;</p><p>  unsigned int k;</p>

85、<p>  step=0x01000000; //頻率變化的步進(jìn)值</p><p><b>  fq_up=0;</b></p><p><b>  w_clk=0;</b></p><p><b>  reset=1;</b></p>

86、<p>  j++; //延時(shí)作用</p><p><b>  j++;</b></p><p><b>  reset=0;</b></p><p>  for(k=1;k<0x0f78;k++) //產(chǎn)生信號(hào)源,由

87、于指針之間不能直接付值所以用</p><p>  //zanc變量作為它的中間變量</p><p><b>  {</b></p><p><b>  p=&dacs;</b></p><p><b>  p1=&addr;</b></p><

88、;p>  for(i=1;i<5;i++)</p><p><b>  {</b></p><p>  zanc[i]=*p1;</p><p><b>  p1++;</b></p><p><b>  }</b></p><p>  fo

89、r(i=0;i<5;i++)</p><p><b>  { </b></p><p>  *p=zanc[i];</p><p>  w_clk=1; //送頻率控制字,先高位,后低位</p><p><b>  j++;</b></p><

90、p><b>  j++;</b></p><p><b>  w_clk=0;</b></p><p><b>  }</b></p><p>  fq_up=1; //產(chǎn)生一個(gè)上升沿</p><p><b>  j+

91、+;</b></p><p><b>  fq_up=0;</b></p><p>  delay(100);</p><p>  if (addr<step) </p><p>  step=0x10000;</p><p>  addr-=step;

92、 //改變頻率值</p><p><b>  }</b></p><p><b>  }</b></p><p>  圖17 高頻輸出模塊圖</p><p><b> ?、?轉(zhuǎn)換模塊</b></p><p>  該模塊主要包括ad2543

93、()函數(shù),主要實(shí)現(xiàn)采集通道中的數(shù)據(jù),并將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。</p><p>  從測(cè)試板輸出的信號(hào)仍然是模擬信號(hào),而單片機(jī)只能對(duì)數(shù)字信號(hào)進(jìn)行處理,因此對(duì)于單片機(jī)而言是不可能識(shí)別模擬信號(hào)的大小,只能判斷有無電壓的輸入,所以測(cè)試板中的信號(hào)通過峰峰值檢測(cè)后必須經(jīng)過A/D轉(zhuǎn)換才能和單片機(jī)相連,被程序讀入并做相應(yīng)的處理。</p><p>  轉(zhuǎn)換模塊的程序主要是負(fù)責(zé)讀取來自TLC2543的數(shù)據(jù)

94、,該芯片有11路模擬信號(hào)輸入通道(AN0~AN10),兩個(gè)參考電壓輸入端(REF+,REF-)和5個(gè)控制管腳。其接口電路如圖6所示。它們的功能分別為:</p><p>  AN0~AN10:11路模擬輸入通道</p><p>  REF+:正參考電壓,輸入端</p><p>  REF-:負(fù)參考電壓,輸入端,一般直接接地</p><p>  

95、IOCLK:輸入輸出脈沖,當(dāng)讀輸出數(shù)據(jù)時(shí)下降沿有效,當(dāng)輸入地址時(shí),上升沿有效,輸入端</p><p>  DATA INPUT:地址選擇端,輸入當(dāng)前要轉(zhuǎn)換的模擬信號(hào)的通道號(hào),四位串行輸入,輸入端</p><p>  DATA OUT:12位數(shù)字串行信號(hào)輸出口,輸出端

96、 </p><p>  EOC:輸出結(jié)束標(biāo)志,轉(zhuǎn)換結(jié)束后自動(dòng)置1,輸出端</p><p>  CS:片選信號(hào),低電平有效,輸入口</p><p>  圖18 轉(zhuǎn)換模塊的程序流程圖</p><p>  轉(zhuǎn)換模塊的程序流程如圖18所示,其工作原理為:轉(zhuǎn)換輸出電平的量程大小為正負(fù)參考電壓之

97、差,輸入模擬信號(hào)的電壓范圍即為正負(fù)參考電壓的大小,一般REF+大小要小于或等于V+;當(dāng)要開始A/D轉(zhuǎn)換時(shí),先使該芯片有效,即使/CS信號(hào)端為低電平,連續(xù)輸入四個(gè)IOCLK,在IOCLK的上升沿處在DATA INPUT端口輸入要轉(zhuǎn)換的通道地址,高位在前,低位在后,通道地址的范圍為0到10,并且在IOCLK的第四個(gè)脈沖的下降沿到來時(shí),讀入選擇的通道中的模擬信號(hào)并開始轉(zhuǎn)換;調(diào)用延時(shí)函數(shù)作為其轉(zhuǎn)換時(shí)間,然后單片機(jī)要給A/D芯片的IOCLK端口連

98、續(xù)16個(gè)脈沖,在每個(gè)脈沖的下降沿到來時(shí)讀取A/D中的一位數(shù)據(jù),先讀入的數(shù)據(jù)為高位,在程序中利用左移功能,將前12位數(shù)據(jù)保存在變量ad中,后4位數(shù)據(jù)為無效數(shù)據(jù)舍去,然后返回到上級(jí)函數(shù)。其實(shí)在該函數(shù)中采用送通道數(shù)和讀數(shù)據(jù)在同一個(gè)時(shí)刻進(jìn)行,事實(shí)上讀的數(shù)據(jù)是上次送的通道數(shù)的結(jié)果。因此在主函數(shù)中預(yù)先調(diào)用一次ad2543()函數(shù)作為預(yù)先送通道數(shù)的操作。ad2543()函數(shù)如下所示:</p><p>  /*********

99、******************************/</p><p>  /* 讀取ad2543中的數(shù)據(jù) */</p><p>  /***************************************/</p><p>  unsigned int ad2543(unsigned char tin) //

100、tin是通道數(shù)</p><p><b>  {</b></p><p>  unsigned int ad;</p><p>  unsigned char i,j;</p><p><b>  cs=1;</b></p><p>  for(i=0;i<10;i++)

101、</p><p><b>  {;}</b></p><p><b>  cs=0;</b></p><p><b>  cjn=tin;</b></p><p>  for(i=0;i<8;i++)</p><p>  {

102、 //通過循環(huán)將獲得的數(shù)據(jù)保存在cjn中</p><p><b>  cj=dout;</b></p><p><b>  din=cj7;</b></p><p>  cjn=cjn<<1;</p><p><b>  cj0=cj;</b

103、></p><p><b>  sclk=1;</b></p><p>  j++; //脈沖高電平保持時(shí)間</p><p><b>  sclk=0;</b></p><p><b>  }</b></p><

104、p>  ad=cjn*16; //先讀出來的是高8位</p><p>  cjn=tin; //還是原來的通道</p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><p><b>  c

105、j=dout;</b></p><p><b>  din=cj7;</b></p><p>  cjn=cjn<<1;</p><p><b>  cj0=cj;</b></p><p><b>  sclk=1;</b></p><

106、;p><b>  j++ ;</b></p><p><b>  sclk=0;</b></p><p><b>  }</b></p><p>  ad=ad+cjn/16; //只需要后讀入數(shù)據(jù)中低4位</p><p>  cs=1;

107、 //片選無效</p><p>  return(ad);</p><p><b>  }</b></p><p><b> ?、?數(shù)據(jù)處理模塊</b></p><p>  該模塊主要包括sort()函數(shù)和jisuan()函數(shù)。</p><p>  其中so

108、rt()函數(shù)主要是將獲得的5組40個(gè)數(shù)據(jù)中每組的最大值和最小值去掉,并轉(zhuǎn)換為真實(shí)的電壓值,范圍為電壓為0~5V。jisuan()函數(shù)是將去掉最大值和最小值后每組數(shù)據(jù)進(jìn)行平均,然后再參考公式進(jìn)行計(jì)算,求出參數(shù)值。其函數(shù)如下所示:(其中ad0[i][j]是在ad2543()中獲得的數(shù)據(jù))</p><p>  /*********************************/</p><p>

109、;  /* 排序 */</p><p>  /*********************************/</p><p>  void sort(void) //排序</p><p>  { unsigned char i,j;</p><p>  unsigned i

110、nt temp;</p><p>  float sum;</p><p>  //比出最大值 放在最后一位</p><p>  for (i=0;i<5;i++)</p><p>  for(j=0;j<7;j++)</p><p>  if (ad0[i][j]>ad0[i][j+1])</

111、p><p>  { temp=ad0[i][j];</p><p>  ad0[i][j]=ad0[i][j+1];</p><p>  ad0[i][j+1]=temp;</p><p><b>  }</b></p><p>  //比出最小值 放在倒數(shù)第二位</p><p&

112、gt;  for (i=0;i<5;i++)</p><p>  for(j=0;j<6;j++)</p><p>  if (ad0[i][j]<ad0[i][j+1])</p><p>  { temp=ad0[i][j];</p><p>  ad0[i][j]=ad0[i][j+1];</p><

113、p>  ad0[i][j+1]=temp;</p><p><b>  }</b></p><p>  //求和時(shí)只求出前6位 去掉一個(gè)最大值去掉一個(gè)最小值</p><p>  for (i=0;i<5;i++)</p><p>  { sum=ad0[i][0];</p><

114、p>  for(j=1;j<6;j++)</p><p>  sum=sum+ad0[i][j];</p><p>  average[i]=sum/6;</p><p><b>  }</b></p><p>  //假設(shè)放大倍數(shù)為1</p><p>  for(i=0;i<5

115、;i++)</p><p>  average[i]=average[i]*5/4096 ;</p><p><b>  }</b></p><p>  /***************************************/</p><p>  /** 計(jì)算結(jié)果 */<

116、;/p><p>  /***************************************/</p><p>  void jisuan(void)</p><p><b>  {</b></p><p>  float temp;</p><p>  average[0]=average[

117、0]/21; //vio</p><p>  average[1]=average[1]/21-average[0]; //Iio</p><p>  temp=average[2]; //avd</p><p>  temp=average[4]/temp/21;</p><p

118、>  temp=20*log10(temp);</p><p>  average[2]=temp;</p><p>  temp=average[4]/average[3]; </p><p>  temp=temp/21; //kcmr</p><p>  temp

119、=20*log10(temp);</p><p><b>  }</b></p><p><b>  系統(tǒng)測(cè)試</b></p><p>  當(dāng)我們調(diào)試用I/O方式在液晶上顯示數(shù)據(jù)時(shí),不小心燒壞了LCD。最后在硬件上只能用LED來代替LCD,軟件上也重新編寫了LED顯示程序和其他相關(guān)程序,經(jīng)過調(diào)試,能正確顯示結(jié)果。顯示數(shù)據(jù)結(jié)

120、果時(shí)每次顯示一個(gè)參數(shù)結(jié)果,通過按鍵顯示下一個(gè)參數(shù)結(jié)果。以I/O方式顯示的程序在附錄四中給出。</p><p><b>  (一)程序調(diào)試方法</b></p><p>  1、修改語(yǔ)法上的錯(cuò)誤:軟件仿真編譯程序,查改有錯(cuò)誤的地方,直到編譯通過;</p><p>  2、按軟件模塊的劃分,用仿真器結(jié)合硬件進(jìn)行仿真各模塊程序,查找邏輯錯(cuò)誤;</

121、p><p>  3、通過單步運(yùn)行和打斷點(diǎn)的方式調(diào)試程序,直到出現(xiàn)自己想要的結(jié)果。</p><p><b> ?。ǘ┸浖{(diào)試</b></p><p>  測(cè)試儀器:微機(jī)電源(WD999)、仿真器(E6000/L)、數(shù)字示波器(TDS2012)、</p><p>  萬(wàn)用表(HONEYTEK A830L)</p>

122、<p>  測(cè)試方案:將每個(gè)子程序經(jīng)過匯編后分別進(jìn)行軟件模擬仿真,然后聯(lián)合硬件用仿真 器進(jìn)行仿真。</p><p><b>  調(diào)試過程和結(jié)果:</b></p><p>  ①LCD顯示的測(cè)試過程和結(jié)果:運(yùn)行清屏程序,在屏幕任意位置顯示一個(gè)漢字和西文,發(fā)現(xiàn)無任何反應(yīng),參考其它的程序,發(fā)現(xiàn)所包含的頭文件與我的程序都是不同的,于是改變頭文件,結(jié)果顯示正確;然

123、后在所要的位置顯示所需要的漢字和字母,顯示程序正確;</p><p> ?、诮oTCL2543芯片的0通道輸入2V電壓,調(diào)用ad2543()函數(shù)測(cè)試獲得數(shù)據(jù),并將獲得的數(shù)據(jù)在液晶上顯示,看得到的數(shù)據(jù)是否正確。</p><p> ?、壅{(diào)用highsource()函數(shù)將頻率控制字送入AD9851芯片,控制輸出頻率為4M的正弦波,并用示波器看輸出波形的效果,修改程序直到輸出的波形就是所要的波形。&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論