版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、集成運(yùn)放參數(shù)測(cè)試儀程序設(shè)計(jì)內(nèi)容摘要:該課題設(shè)計(jì)的運(yùn)算放大器閉環(huán)參數(shù)測(cè)試系統(tǒng)是基于MSC-51單片機(jī)控制模塊,并且由LCDLiquid Crystal Display顯示模塊,鍵盤模塊,數(shù)據(jù)采集和轉(zhuǎn)換模塊,采用DDS芯片AD9851實(shí)現(xiàn)了40kHz4MHz的掃頻輸出模塊等五局部組成。采用輔助運(yùn)放測(cè)試方法,可對(duì)運(yùn)放的輸入失調(diào)電壓、輸入失調(diào)電流、交流差模開環(huán)電壓增益和交流共模抑制比以及單位增益帶寬進(jìn)行測(cè)量。在軟件上,用C語言來編程實(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)的
2、人機(jī)界面;對(duì)來自DDS的高頻信號(hào)源的頻率進(jìn)行控制來實(shí)現(xiàn)對(duì)集成運(yùn)放的帶寬參數(shù)的測(cè)試和顯示。而且具有自動(dòng)量程轉(zhuǎn)換、自動(dòng)測(cè)量功能和良好的人機(jī)交互性。關(guān)鍵詞:?jiǎn)纹瑱C(jī) C語言 DDS LCD 人機(jī)交互界面The Instrument for testing the Parameters of Integrated Operation Amplifierprogram designAbstract:This system is designed based on C51 microcontroller to measure the close loop parameters of the operatio
3、n amplifier. The system conclude five modules: LCD (liquid crystal display) display module, keyboard module, data collection module, conversion module, 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
4、the input offset voltage、the input offset current、the open loop AC differential mode voltage gain、the AC common mode rejection ratio and unit gain bandwidth,using the measure method of assistant amplifier. The data can be display on the LCD which is using of C program. And the function concludes: re
5、ceiving, analysing and calculating the digital signals from TLC2543A/D then send them to show; accepting different key value on keyboards, analysing and processing it for controlling the measurement of different target and display on the LCD with different computer interface; controlling the bandwid
6、th of HF signal source from DDS chip to measure the integrated transport bandwidth parameters and display the result. Whats more C51 microcontroller can control relays to complete auto measurement range switching ,auto measuring and good interface. Key Words:MCU CLanguage DDS LCD interface目 錄 TOC o
7、1-2 u 前言 PAGEREF _Toc136432037 h 1一、系統(tǒng)原理框圖 PAGEREF _Toc136432038 h 1二、硬件單元電路設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc136432039 h 2一、四個(gè)參數(shù)的測(cè)試電路 PAGEREF _Toc136432040 h 2二單位增益帶寬測(cè)量電路 PAGEREF _Toc136432041 h 3三測(cè)試的信號(hào)源 PAGEREF _Toc136432042 h 3四峰峰值檢測(cè)電路的設(shè)計(jì) PAGEREF _Toc136432043 h 4五A/D采樣電路 PAGEREF _Toc136432044 h 4六掃頻信號(hào)源 PAGEREF
8、_Toc136432045 h 4七鍵盤接口電路 PAGEREF _Toc136432046 h 5八顯示接口電路 PAGEREF _Toc136432047 h 5三、軟件設(shè)計(jì) PAGEREF _Toc136432048 h 6一軟件功能設(shè)計(jì) PAGEREF _Toc136432049 h 6二系統(tǒng)軟件框圖和程序流程圖 PAGEREF _Toc136432050 h 6三軟件模塊設(shè)計(jì) PAGEREF _Toc136432051 h 7四、系統(tǒng)測(cè)試 PAGEREF _Toc136432052 h 19一程序調(diào)試方法 PAGEREF _Toc136432053 h 19二軟件調(diào)試 PAGEREF
9、 _Toc136432054 h 19三聯(lián)機(jī)調(diào)試 PAGEREF _Toc136432055 h 20五、結(jié)束語 PAGEREF _Toc136432056 h 20六、感謝詞 PAGEREF _Toc136432057 h 20參考文獻(xiàn) PAGEREF _Toc136432058 h 20附錄一 PAGEREF _Toc136432059 h 21附錄二 PAGEREF _Toc136432060 h 22附錄三 PAGEREF _Toc136432061 h 36一TLC2543 PAGEREF _Toc136432062 h 36二LCD液晶顯示器 PAGEREF _Toc1364320
10、63 h 36附錄四 PAGEREF _Toc136432064 h 38集成運(yùn)放參數(shù)測(cè)試儀程序設(shè)計(jì)前言目前國(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ù)一般包括:正向最大輸出電壓+,負(fù)向最大輸出電壓-,正向最大共模輸出電壓+,負(fù)向最大共模輸出電壓-,正轉(zhuǎn)換速率+ ,負(fù)轉(zhuǎn)換速率-,靜態(tài)工作電流,輸入失調(diào)電壓,共模抑制比,開環(huán)增益帶寬乘積BW,輸入失調(diào)電流,開環(huán)電壓增益,基極偏置電流等15項(xiàng)。但這種測(cè)試儀有一種共同的特點(diǎn)電路系統(tǒng)復(fù)雜,本錢高,因此在某些應(yīng)用領(lǐng)域中不能普遍使用。在
11、此我們根據(jù)GB344286?半導(dǎo)體集成電路運(yùn)算電壓放大器測(cè)試方法的根本原理?規(guī)定的測(cè)試方法來設(shè)計(jì),主要測(cè)試參數(shù)包括:輸入失調(diào)電壓,共模抑制比,開環(huán)增益寬帶乘積BW,輸入失調(diào)電流,開環(huán)電壓增益等5個(gè),而且用MSC51系列單片機(jī)作為中央處理器,這樣大大降低了本錢,并且具有顯示功能,使用方便,體積小,適合搬移,系統(tǒng)穩(wěn)定。在軟件方面,匯編語言是能直接控制單片機(jī)的底層語言,而且在控制硬件和位操作等方面表現(xiàn)很優(yōu)異,程序運(yùn)行時(shí)效率也很高,但當(dāng)用匯編語言來編制復(fù)雜的數(shù)學(xué)運(yùn)算類型的程序時(shí)就顯得有些不方便。而使用C51高級(jí)語言開發(fā)MSC51系列單片機(jī)比匯編語言優(yōu)越地多,如程序編寫直觀易懂、便于移植、便于修改和維護(hù)
12、、便于進(jìn)行模塊化程序設(shè)計(jì)、提高計(jì)算精度等。雖然高級(jí)語言在產(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語言來編程,實(shí)現(xiàn)這個(gè)課題的功能,從而也提高其使用性。該成品可方便用于小型實(shí)驗(yàn)或個(gè)人實(shí)驗(yàn)室等場(chǎng)合。系統(tǒng)原理框圖該系統(tǒng)包括軟件和硬件兩個(gè)方面,程序被下載到單片機(jī)中,自動(dòng)進(jìn)行一系列測(cè)試工作,而且可以通過良好的人機(jī)界面對(duì)其進(jìn)行選擇、控制。其整體系統(tǒng)原理框圖如圖1所示。運(yùn)放參數(shù)測(cè)試電路數(shù)據(jù)采集測(cè)試參數(shù)選擇高頻信號(hào)源增 益 控 制單片機(jī)LCD顯示輸出鍵 盤 輸 入圖
13、1 系統(tǒng)原理框圖硬件單元電路設(shè)計(jì)與實(shí)現(xiàn)、四個(gè)參數(shù)的測(cè)試電路按照GB344286?半導(dǎo)體集成電路運(yùn)算(電壓)放大器測(cè)試方法的根本原理?規(guī)定的輔助直流測(cè)試法,可實(shí)現(xiàn)運(yùn)算放大器直流參數(shù)的準(zhǔn)確測(cè)量。該方案的測(cè)試原理如圖2所示。 圖2 GB344286規(guī)定的運(yùn)算放大器直流參數(shù)測(cè)試方法它是國(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ì)引起自激,但可以通過一定的方法來抑制。測(cè)試這四個(gè)參數(shù)的電路可以集
14、成在兩個(gè)電路里。首先可以將測(cè)試、這兩個(gè)參數(shù)的電路通過繼電器做成一個(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)化了電路。圖3 輸入失調(diào)電壓和輸入失調(diào)電流測(cè)試電路圖4 電壓增益和共模抑制比測(cè)試電路其測(cè)試電路和過程如下:當(dāng)繼電器1、4分別腳接向3、6腳時(shí),測(cè)得輔助運(yùn)放的輸出電壓記為VL0 ,那么有
15、:當(dāng)繼電器1、4分別腳接向2、5腳時(shí),測(cè)得輔助運(yùn)放的輸出電壓記為VL1,那么有:、當(dāng)把信號(hào)源輸出電壓為VS接到繼電器的第1腳時(shí),測(cè)得輔助運(yùn)放輸出電壓為VL0,那么有 、當(dāng)把信號(hào)源輸出電壓為VS接到繼電器的第4腳時(shí),測(cè)得輔助運(yùn)放輸出電壓為VL0,那么有 通過上述方法就可測(cè)得所要測(cè)試的四個(gè)參數(shù)。單位增益帶寬測(cè)量電路單位增益帶寬測(cè)量電路為一個(gè)反向比例放大器,從P1.3口輸入正弦信號(hào)的幅值,改變信號(hào)頻率,當(dāng)P1.3口的輸入電壓幅值下降到3dB時(shí)的頻率即為單位增益帶寬。測(cè)試的信號(hào)源用文氏電橋電路實(shí)現(xiàn)產(chǎn)生4V、5Hz的正弦波。它是由RC振蕩電路構(gòu)成的低頻正弦信號(hào)發(fā)生器。通過調(diào)節(jié)電路中的電阻和電容值的大小,
16、可以產(chǎn)生不同頻率和幅度的正弦信號(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)滿足我們的要求。峰峰值檢測(cè)電路的設(shè)計(jì)圖5 峰值檢波圖該電路主要由一個(gè)二極管和兩個(gè)電容組成,用于檢測(cè)掃頻信號(hào)源的峰值。實(shí)際測(cè)量說明,該峰值檢測(cè)電路在40kHz4MHz具有很好的線性度。該電路如圖5所示。A/D采樣電路為保證測(cè)量精度,該局部電路采用12位串行口TLC2543。電路如圖6所示。圖6 A/D采樣電路圖掃頻信號(hào)源采用直接數(shù)字頻率合成芯片AD9851來產(chǎn)生掃頻信號(hào)。它的頻率穩(wěn)定度完全由有源晶振的頻率穩(wěn)定度決定,具有較高的頻率輸出
17、范圍,而且可以直接由單片機(jī)的輸出來控制頻率的大小。經(jīng)過輸出掃頻測(cè)試,DDS芯片可以在10秒內(nèi)連續(xù)、穩(wěn)定輸出頻率在40kHz4MHz范圍內(nèi)連續(xù)變化的正弦波。其電路原理圖如圖7所示。AD9851采用并行送控制字的方式將頻率控制字送入芯片。頻率控制字FSW與最終合成的信號(hào)頻率之間的轉(zhuǎn)換公式為: 假設(shè)系統(tǒng)時(shí)鐘頻率為30MHz,那么最大分辨率=30106232Hz=0.007Hz。遠(yuǎn)超出此題1kHz分辯力的要求。圖7 掃頻信號(hào)源圖鍵盤接口電路鍵盤的接收局部電路如圖8所示:圖8 鍵盤接收電路圖當(dāng)有按鍵時(shí)就觸發(fā)外中斷0,再通過控制片選端(KEY_CS)來讀取當(dāng)前按鍵的鍵值,這個(gè)信號(hào)是由74LS138實(shí)現(xiàn)的,
18、其地址為C000H;鍵值的編輯那么是采用一塊PLD芯片GAL22V100和一個(gè)雙向選通芯片74LS245來實(shí)現(xiàn);數(shù)據(jù)的讀入和其他的數(shù)據(jù)一樣都是通過總線的方式,74ALS245的輸出端B0到B7與單片機(jī)的P0口相連接。鍵值的四位由低到高分別對(duì)應(yīng)P0.0、P0.1、P0.2、P0.3。該鍵盤中各鍵的功能分配如下:KEY0:屏幕復(fù)位,鍵值為0;KEY1:進(jìn)入?yún)?shù)測(cè)試界面,鍵值為1;KEY2:進(jìn)入幅頻特性測(cè)試界面,鍵值為2。顯示接口電路采用MSC-G12864液晶顯示器。該液晶顯示器的管腳分配和管腳功能使用如表1所示,根據(jù)資料我們?cè)谟布O(shè)計(jì)時(shí)將其管腳與單片機(jī)的連接如下:控制線:P2.3連CS2,P2.
19、2連CS1,P2.1連R/W,P2.0連R/S,P2.4連E;數(shù)據(jù)線:D0P0.7相連接;因此液晶顯示器和單片機(jī)的接口電路連接如圖9所示。表1 液晶顯示器管腳分配20191817161514131211SLKSLAVOUTRSTBCS2CS1DB7DB6DB5DB410987654321DB3DB2DB1DB0ER/WRSVOVDDVss圖9顯示接口電路圖軟件設(shè)計(jì)軟件功能設(shè)計(jì)軟件系統(tǒng)以界面直觀、利于操作、便于維護(hù)和升級(jí)為根底。而且為了增強(qiáng)系統(tǒng)的抗干擾性,還增加了軟件陷阱處理,防止軟件的“跑飛。對(duì)于軟件功能的設(shè)計(jì)不僅僅是對(duì)程序的簡(jiǎn)單設(shè)計(jì),還包括對(duì)各電路間接口的設(shè)計(jì),接口設(shè)計(jì)描述的是軟件如何與外界
20、系統(tǒng)進(jìn)行通信,軟件內(nèi)部如何通信、以及軟件和軟件的使用人員之間如何通信等問題。一個(gè)接口意味著一個(gè)信息流例如,數(shù)據(jù)或控制流等,因此,在這里的一個(gè)重點(diǎn)就是要實(shí)現(xiàn)如何更好的分配數(shù)據(jù)和控制流,從而實(shí)現(xiàn)整個(gè)功能。系統(tǒng)軟件框圖和程序流程圖AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8 位單片機(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ī)相連的接
21、口電路還包括鍵盤接口電路,LCD接口電路,轉(zhuǎn)換模塊接口電路。鍵盤輸入51單片機(jī)LCD顯示A/D轉(zhuǎn)換模塊測(cè)試板圖10系統(tǒng)軟件和硬件的接口框圖TLC2543讀入信號(hào)自動(dòng)測(cè)試計(jì)算每路的值計(jì)算參數(shù)Uio、Uco、Avd、Kcmr并顯示輸出頻率為4M400KHz的波形計(jì)算帶寬增益鍵值1有按鍵鍵值0鍵值2初始化界面初始化界面圖11程序流程圖軟件模塊設(shè)計(jì)軟件設(shè)計(jì)工作是建立在自頂而下和模塊化的設(shè)計(jì)方法之上的。這就是說,軟件應(yīng)在邏輯上分割為實(shí)現(xiàn)特定功能局部的子程序,既程序編寫的模塊化,這樣無論在設(shè)計(jì)、編碼、還是以后的維護(hù)上都提供了很大的方便。在此我們根據(jù)接口電路的需要可以把該程序分為六個(gè)模塊:主程序模塊、顯示模
22、塊、鍵盤模塊、高頻輸出模塊、轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊。雖然每個(gè)模塊之間都是利用數(shù)據(jù)的傳送將他們聯(lián)系起來,但在功能的實(shí)現(xiàn)上都是獨(dú)立的。 主程序模塊該模塊主要包括main()函數(shù)。在將程序進(jìn)行模塊化時(shí)當(dāng)然還要將各個(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ī)編程的一種常用的方法。在主程序模塊中,主要實(shí)現(xiàn)的功能為:剛開
23、機(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)。開始顯示主界面有按鍵否判斷鍵值,并調(diào)用顯示模塊、調(diào)用鍵盤模塊子程序、轉(zhuǎn)換模塊和數(shù)據(jù)處理模塊子程序結(jié)束NY圖12 主函數(shù)流程圖主函數(shù)的程序如下所示: /*/ /* 主函數(shù) */ /*/void main() unsigned char k,adbuf,dabuf,rambuf; idata unsigned int *para=
24、&ramaddr; ad2543(0 x0C); /預(yù)先將要讀取數(shù)據(jù)的通道數(shù)送入 dabuf=0 xff; P3_4=1; /改變繼電器 INTlcd(); /* 調(diào)初始化函數(shù) */ CLEAR(); /* 調(diào)清屏函數(shù) */ EA=1; EX0=1; IT0=1; flag=0; fw(); /復(fù)位 while(1) /使程序處于死循環(huán) if(flag=1) /當(dāng)有按鍵按下時(shí) keycl(); /調(diào)用鍵盤處理函數(shù)包括對(duì)數(shù)據(jù)采集、分析、計(jì)算 其中INTlcd()函數(shù),CLEAR()函數(shù)和fw()函數(shù)將在附錄一里給出。 顯示模塊顯示模塊主要是負(fù)責(zé)跟液晶顯示器接口的程序模塊,包括液晶的驅(qū)動(dòng)程序和結(jié)果
25、顯示程序。該模塊主要是由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ī)和液晶之間的管腳連接,以及液晶自身的地址分配。在此我們參考了液晶顯示器的使用手冊(cè),分析了在硬件上單片機(jī)的管腳分配情況,因此單片機(jī)和液晶的接口電路如圖9。其地址控制說明如圖15所示,接口管腳電平說明如表2所示。開始取出要計(jì)算的每一位調(diào)用寫西文函數(shù)顯示結(jié)果結(jié)束
26、開始液晶忙送要顯示的數(shù)據(jù)結(jié)束NY 圖13 顯示模塊流程圖 圖14寫中、西文函數(shù)流程圖圖15地址控制說明圖表2: LCD管腳電平說明表Pin No.SymbolLevelDescription1VSS0VGround2VDDSupply voltage for logic3VO-Input voltage for LCD4RSH/LH:Date signal, L:Instruction signal5R/WH/LH:Read mode, l:write mode6EH,H-LChip enable signal7DB0H/LData bit 08DB1H/LData bit 19DB2H/LD
27、ata bit 210DB3H/LData bit 311DB4H/LData bit 412DB5H/LData bit 513DB6H/LData bit 614DB7H/LData bit 715CS1HChip select signal for KS0108B(1)16CS2HChip select signal for KS0108B(2)17RSTBLReset signal18VOUT-5VOutput voltage for LCD19SLASide light anode20SLK0VSide light cathode由液晶顯示器的資料可知LCD是由兩片KS0108B組成
28、,且在液晶顯示器上片選CS1,CS2都是高電平有效,E腳:芯片使能端,是高電平或下降沿到來時(shí)有效,即只有當(dāng)它為高電平或下降沿來時(shí)才能進(jìn)行讀、寫入數(shù)據(jù)或者寫指令操作,當(dāng)該管腳為低電平時(shí)為忙狀態(tài),因此結(jié)合硬件電路的設(shè)計(jì)可得到液晶顯示器的地址分配為:#define cwadd2 XBYTE0 xb400 /*第二片寫狀態(tài)地址*/#define cradd2 XBYTE0 xf600 /*第二片讀狀態(tài)地址*/#define dwadd2 XBYTE0 xb500 /*第二片寫數(shù)據(jù)地址*/#define cwadd1 XBYTE0 xb800 /*第一片寫狀態(tài)地址*/#define cradd1 XBY
29、TE0 xfa00 /*第一片讀狀態(tài)地址*/#define dwadd1 XBYTE0 xb900 /*第一片寫數(shù)據(jù)地址*/#define display_on 0 x3f; /開顯示#define display_off 0 x3e; /關(guān)顯示#define para1 0 x40; /*設(shè)置列地址*/#define start_line0 0 x0c0; /*開始顯示行為第0行*/#define page 0 xb8 /設(shè)置頁(yè)地址在顯示數(shù)據(jù)之前一定要進(jìn)行對(duì)液晶進(jìn)行判忙工作,只有當(dāng)液晶處于空閑狀態(tài)才能對(duì)液晶進(jìn)行寫入操作,因此在開始對(duì)液晶進(jìn)行寫入指令和數(shù)據(jù)之前要先調(diào)用兩個(gè)判忙函數(shù),一個(gè)是BUS
30、YM()即對(duì)左片判忙,還有一個(gè)是BUSYR()即對(duì)右片進(jìn)行判忙。而且只有當(dāng)液晶是處于空閑和開狀態(tài)的時(shí)候,才能進(jìn)行下一個(gè)操作,否那么將在此進(jìn)入死循環(huán)中。其中寫指令函數(shù)PR1(),PR4(),主要功能是設(shè)置液晶顯示器的地址;寫數(shù)據(jù)函數(shù)PR2(),PR5()是在地址設(shè)置后將要顯示的數(shù)據(jù)寫入到液晶顯示器中;寫中文函數(shù)whz()是顯示中文字符,寫西文函數(shù)wcode()是顯示西文字符。以下給出了xianshi()函數(shù)具體程序,其它的程序在附錄里給出,這里就不一一詳述。/*/* 顯示結(jié)果 */*/ void xianshi(void) float k; int j; unsigned char i,last
31、,hang,lie; for(i=64;i=100;i+=6) wcode(i,4,47); j=4; /求出每一位數(shù),便于在LCD上顯示 for(i=0;i0;j-) /要顯示的數(shù)據(jù)共5位從最后一位開始顯示 k=averagei-(int)averagei; /獲得最后一位小數(shù) if (k0.000000) k=0.000000; averagei=(int)averagei; last=k*10; / 將獲得的最后一個(gè)小數(shù)轉(zhuǎn)換為整數(shù),便于顯示 lie=64+j*7; /要顯示的數(shù)據(jù)的行、列 hang=7-i; if (j=5) /要顯示的數(shù)據(jù)共5位,有四位小數(shù) wcode(lie,hang
32、,46); /顯示小數(shù)點(diǎn) lie=lie+5; j-; wcode(lie,hang,last); averagei=averagei/10; /求出下位數(shù)據(jù) 鍵盤模塊該模塊主要包括中斷函數(shù)int1() interrupt 0和keycl()函數(shù)。 為了使該系統(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)志變量的查詢,來決
33、定是否調(diào)用函數(shù)keycl()。在該函數(shù)中具體實(shí)現(xiàn)不同按鍵要顯示的對(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()將數(shù)據(jù)進(jìn)行平均后再計(jì)算參數(shù)結(jié)果,最后調(diào)用函數(shù)xianshi()將處理完的結(jié)果顯示出來;如果按下的是第三個(gè)鍵,那么
34、顯示頻帶寬度界面,并調(diào)用函數(shù)highsource()輸出高頻信號(hào),頻率的分辨率為1KHz。該模塊的流程圖如圖16所示。開始結(jié)束第一個(gè)按鍵NY調(diào)用主界面第二個(gè)按鍵采集AD2543中的數(shù)據(jù)并進(jìn)行分析和顯示第三個(gè)按鍵控制AD9851產(chǎn)生信號(hào)源YYNN圖16 鍵盤模塊程序流程/*/* 鍵盤中斷 */*/void int1() interrupt 0 delay(100); if (P32=0) /消抖 keyv=keyaddr; flag=1; /*/* 按鍵處理函數(shù) */*/void keycl(void) unsigned char i,j,k; flag=0; /去除按鍵標(biāo)志 if (keyv=
35、0) /當(dāng)按下第一個(gè)鍵時(shí) fw(); /顯示主界面即復(fù)位 else if(keyv=1) /當(dāng)按下第二個(gè)鍵時(shí) zdcs(); /調(diào)用顯示參數(shù)測(cè)試界面 k=0 x0c; /選擇通道0 for(i=0;i5;i+) /需要5個(gè)數(shù)據(jù) /采集數(shù)據(jù)時(shí)要采集8組 for(j=0;j8;j+) ad0ij=ad2543(k); delay(0 x30); /在每次采集之間調(diào)用延時(shí)程序 delay(0 x60); /在要選部通道之間延時(shí) /通過改變繼電器獲得所需的不同電壓 if(i=0) /獲得 vlO 當(dāng)i=0時(shí) jdq0=1; /當(dāng)i=1時(shí)閉合開關(guān)獲得vli if (i=1) /輸入時(shí)信號(hào)源當(dāng)i=2時(shí)換通
36、道獲得vlo 用來計(jì)算avd jdq0=0; jdq1=0; k=k+0 x10; if (i=2) /i=3時(shí)獲得vlo 是用來計(jì)算dcmr jdq1=1; if (i=3) /更換通道 獲得信號(hào)源電壓 jdq1=0; k=k+0 x10; /通道數(shù)加1/因?yàn)檩斎胪ǖ罃?shù)時(shí)只有前面的四位數(shù)有效 sort(); /去掉一個(gè)最大值和一個(gè)最小值,并轉(zhuǎn)換為真實(shí)的電壓值 jisuan(); /將數(shù)據(jù)進(jìn)行平均,后再進(jìn)行計(jì)算參數(shù)結(jié)果 xianshi(); /顯示獲得的結(jié)果 else if(keyv=2) highsource(); /輸出高頻信號(hào),頻率的分辨率為1KHz flag=0; /去除按鍵標(biāo)志 其中
37、jdq0,jdq1:繼電器通斷標(biāo)志變量;falg:按鍵標(biāo)志變量,有鍵按下那么為1,否那么為0;keyv:存放不同按鍵的鍵值;ad0ij:存放來自通道的電壓信號(hào)的數(shù)據(jù),idata unsigned int ad058存放參數(shù)測(cè)試所需要的5組數(shù)據(jù),又把每個(gè)所需要的數(shù)據(jù)采集的8次,因此每組數(shù)據(jù)中包括8個(gè)數(shù)據(jù),這樣真正采集的數(shù)據(jù)應(yīng)該是40個(gè)。 高頻輸出模塊void highsource()函數(shù)是控制DDS產(chǎn)生正弦波的,產(chǎn)生的正弦波的分辨率為1KHz。以下是AD9851的局部管腳功能說明:41,2825D0D7:是8位的數(shù)據(jù)輸入口,其中D04腳是低位,D725腳是高位;5PGND:接地端;6PVCC:電
38、源端;這兩個(gè)管腳都是當(dāng)頻率取輸入數(shù)據(jù)的六倍時(shí)用的;7W_CLK:數(shù)字載入端,上升沿有效,由單片機(jī)控制,與P1.5相連; 8FQ_UD):頻率刷新端,上升沿有效,由單片機(jī)控制,與P1.6相連;9REF_CLK:系統(tǒng)時(shí)鐘,是外部輸入,直接用10M晶振產(chǎn)生;10、19(AGND):模擬信號(hào)接地端;11、18AVDD:模擬信號(hào)電源端;21IOUT:輸出口,產(chǎn)生的信號(hào)源輸出口,必須接負(fù)載后再接入示波器;22RESET:復(fù)位端,高電平時(shí)復(fù)位,當(dāng)該管腳是低電平時(shí)處于正常工作,該管腳由單片機(jī)控制,與P1.7相連。AD9851芯片具有輸入數(shù)字信號(hào)直接輸出對(duì)應(yīng)頻率的正弦波的功能的芯片,有以上的管腳說明可知,數(shù)據(jù)輸
39、入端只有8個(gè)口即D0D7,但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ù)如下所示:/*/* 產(chǎn)生高頻信號(hào) */*/void highsource()unsigned char i, j;idata unsigned long step;idata unsigned long addr=0 x22222222; /頻率的最大值約為4Midata un
40、signed char zanc5=0 x00,0 x22,0 x22,0 x22,0 x22;unsigned char *p=&dacs; /高頻信號(hào)源地址unsigned char *p1=&addr;unsigned int k;step=0 x01000000; /頻率變化的步進(jìn)值fq_up=0;w_clk=0; reset=1; j+; /延時(shí)作用 j+; reset=0;for(k=1;k0 x0f78;k+) /產(chǎn)生信號(hào)源,由于指針之間不能直接付值所以用/zanc變量作為它的中間變量 p=&dacs; p1=&addr; for(i=1;i5;i+) zanci=*p1; p1
41、+; for(i=0;i5;i+) *p=zanci; w_clk=1; /送頻率控制字,先高位,后低位 j+; j+;w_clk=0; fq_up=1; /產(chǎn)生一個(gè)上升沿 j+; fq_up=0; delay(100); if (addrstep) step=0 x10000; addr-=step; /改變頻率值 開始頻率值為0送時(shí)鐘脈沖和刷新脈沖結(jié)束NY送頻率字改變頻率值圖17 高頻輸出模塊圖 轉(zhuǎn)換模塊該模塊主要包括ad2543()函數(shù),主要實(shí)現(xiàn)采集通道中的數(shù)據(jù),并將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。從測(cè)試板輸出的信號(hào)仍然是模擬信號(hào),而單片機(jī)只能對(duì)數(shù)字信號(hào)進(jìn)行處理,因此對(duì)于單片機(jī)而言是不可能識(shí)別模
42、擬信號(hào)的大小,只能判斷有無電壓的輸入,所以測(cè)試板中的信號(hào)通過峰峰值檢測(cè)后必須經(jīng)過A/D轉(zhuǎn)換才能和單片機(jī)相連,被程序讀入并做相應(yīng)的處理。轉(zhuǎn)換模塊的程序主要是負(fù)責(zé)讀取來自TLC2543的數(shù)據(jù),該芯片有11路模擬信號(hào)輸入通道AN0AN10,兩個(gè)參考電壓輸入端REF+,REF-和5個(gè)控制管腳。其接口電路如圖6所示。它們的功能分別為:AN0AN10:11路模擬輸入通道REF+:正參考電壓,輸入端REF-:負(fù)參考電壓,輸入端,一般直接接地IOCLK:輸入輸出脈沖,當(dāng)讀輸出數(shù)據(jù)時(shí)下降沿有效,當(dāng)輸入地址時(shí),上升沿有效,輸入端DATA INPUT:地址選擇端,輸入當(dāng)前要轉(zhuǎn)換的模擬信號(hào)的通道號(hào),四位串行輸入,輸入
43、端DATA OUT:12位數(shù)字串行信號(hào)輸出口,輸出端 EOC:輸出結(jié)束標(biāo)志,轉(zhuǎn)換結(jié)束后自動(dòng)置1,輸出端CS:片選信號(hào),低電平有效,輸入口 開始結(jié)束位操作方式送通道數(shù)位操作方式先讀高8位,再讀后4位圖18 轉(zhuǎn)換模塊的程序流程圖轉(zhuǎn)換模塊的程序流程如圖18所示,其工作原理為:轉(zhuǎn)換輸出電平的量程大小為正負(fù)參考電壓之差,輸入模擬信號(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,并且
44、在IOCLK的第四個(gè)脈沖的下降沿到來時(shí),讀入選擇的通道中的模擬信號(hào)并開始轉(zhuǎn)換;調(diào)用延時(shí)函數(shù)作為其轉(zhuǎn)換時(shí)間,然后單片機(jī)要給A/D芯片的IOCLK端口連續(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ù)如下所示:/*/* 讀取ad2543中的數(shù)據(jù) */*/unsigned int ad254
45、3(unsigned char tin) /tin是通道數(shù) unsigned int ad; unsigned char i,j; cs=1; for(i=0;i10;i+) ; cs=0; cjn=tin; for(i=0;i8;i+) /通過循環(huán)將獲得的數(shù)據(jù)保存在cjn中 cj=dout; din=cj7; cjn=cjn1; cj0=cj; sclk=1; j+; /脈沖高電平保持時(shí)間 sclk=0; ad=cjn*16; /先讀出來的是高8位 cjn=tin; /還是原來的通道 for(i=0;i8;i+) cj=dout; din=cj7; cjn=cjn1; cj0=cj; scl
46、k=1; j+ ; sclk=0; ad=ad+cjn/16; /只需要后讀入數(shù)據(jù)中低4位 cs=1; /片選無效 return(ad); 數(shù)據(jù)處理模塊該模塊主要包括sort()函數(shù)和jisuan()函數(shù)。其中sort()函數(shù)主要是將獲得的5組40個(gè)數(shù)據(jù)中每組的最大值和最小值去掉,并轉(zhuǎn)換為真實(shí)的電壓值,范圍為電壓為05V。jisuan()函數(shù)是將去掉最大值和最小值后每組數(shù)據(jù)進(jìn)行平均,然后再參考公式進(jìn)行計(jì)算,求出參數(shù)值。其函數(shù)如下所示:其中ad0ij是在ad2543()中獲得的數(shù)據(jù)/*/* 排序 */*/void sort(void) /排序 unsigned char i,j; unsigne
47、d int temp; float sum; /比出最大值 放在最后一位 for (i=0;i5;i+) for(j=0;jad0ij+1) temp=ad0ij; ad0ij=ad0ij+1; ad0ij+1=temp; /比出最小值 放在倒數(shù)第二位 for (i=0;i5;i+) for(j=0;j6;j+) if (ad0ijad0ij+1) temp=ad0ij; ad0ij=ad0ij+1; ad0ij+1=temp; /求和時(shí)只求出前6位 去掉一個(gè)最大值去掉一個(gè)最小值 for (i=0;i5;i+) sum=ad0i0; for(j=1;j6;j+) sum=sum+ad0ij;
48、averagei=sum/6; /假設(shè)放大倍數(shù)為1 for(i=0;i5;i+) averagei=averagei*5/4096 ; /*/* 計(jì)算結(jié)果 */*/void jisuan(void)float temp; average0=average0/21; /vio average1=average1/21-average0; /Iiotemp=average2; /avdtemp=average4/temp/21;temp=20*log10(temp);average2=temp;temp=average4/average3; temp=temp/21; /kcmrtemp=20*l
49、og10(temp);系統(tǒng)測(cè)試當(dāng)我們調(diào)試用I/O方式在液晶上顯示數(shù)據(jù)時(shí),不小心燒壞了LCD。最后在硬件上只能用LED來代替LCD,軟件上也重新編寫了LED顯示程序和其他相關(guān)程序,經(jīng)過調(diào)試,能正確顯示結(jié)果。顯示數(shù)據(jù)結(jié)果時(shí)每次顯示一個(gè)參數(shù)結(jié)果,通過按鍵顯示下一個(gè)參數(shù)結(jié)果。以I/O方式顯示的程序在附錄四中給出。一程序調(diào)試方法1、修改語法上的錯(cuò)誤:軟件仿真編譯程序,查改有錯(cuò)誤的地方,直到編譯通過;2、按軟件模塊的劃分,用仿真器結(jié)合硬件進(jìn)行仿真各模塊程序,查找邏輯錯(cuò)誤;3、通過單步運(yùn)行和打斷點(diǎn)的方式調(diào)試程序,直到出現(xiàn)自己想要的結(jié)果。二軟件調(diào)試測(cè)試儀器:微機(jī)電源WD999、仿真器E6000/L、數(shù)字示波器
50、TDS2021、萬用表HONEYTEK A830L測(cè)試方案:將每個(gè)子程序經(jīng)過匯編后分別進(jìn)行軟件模擬仿真,然后聯(lián)合硬件用仿真 器進(jìn)行仿真。調(diào)試過程和結(jié)果:LCD顯示的測(cè)試過程和結(jié)果:運(yùn)行清屏程序,在屏幕任意位置顯示一個(gè)漢字和西文,發(fā)現(xiàn)無任何反響,參考其它的程序,發(fā)現(xiàn)所包含的頭文件與我的程序都是不同的,于是改變頭文件,結(jié)果顯示正確;然后在所要的位置顯示所需要的漢字和字母,顯示程序正確;給TCL2543芯片的0通道輸入2V電壓,調(diào)用ad2543()函數(shù)測(cè)試獲得數(shù)據(jù),并將獲得的數(shù)據(jù)在液晶上顯示,看得到的數(shù)據(jù)是否正確。調(diào)用highsource()函數(shù)將頻率控制字送入AD9851芯片,控制輸出頻率為4M的
51、正弦波,并用示波器看輸出波形的效果,修改程序直到輸出的波形就是所要的波形。三聯(lián)機(jī)調(diào)試測(cè)試儀器:微機(jī)電源WD999、萬用表HONEYTEK A830L、仿真器E6000/L調(diào)試過程和結(jié)果:將獲得的數(shù)據(jù)顯示在LCD上,和手動(dòng)測(cè)試的結(jié)果進(jìn)行比擬,結(jié)果有誤差。首先查看程序里邏輯上是否有錯(cuò)誤,發(fā)現(xiàn)繼電器控制那局部有點(diǎn)混亂,于是參考題目要求,重整這局部程序;然后再次運(yùn)行程序,還是有誤差存在;接著就查看程序的數(shù)據(jù)處理模塊局部,然后再次根據(jù)題目的要求來修改程序的邏輯問題;最后雖然還是有誤差存在,但程序已經(jīng)根本正確,硬件上也已無錯(cuò)誤,就把這結(jié)果作為最后的結(jié)果。結(jié)束語這次畢業(yè)設(shè)計(jì),雖然是我們以前電子競(jìng)賽中接觸過,
52、但由于以前的軟件沒被保存下來,這次的編程相當(dāng)于是從頭開始。因此在剛開始編程時(shí),思路上還是有點(diǎn)混亂,并且犯了一些錯(cuò)誤,比方對(duì)液晶顯示器寫數(shù)據(jù)和讀狀態(tài)時(shí)發(fā)生了一些錯(cuò)誤,致使整個(gè)過程在開始幾天沒有一點(diǎn)進(jìn)展。后來在何老師的指導(dǎo)下,我重新理清思路,結(jié)合電路原理圖編寫程序,能夠較快的找準(zhǔn)問題所在,能順利完成畢業(yè)設(shè)計(jì)。在這次畢業(yè)設(shè)計(jì)中,令人欣慰的是我們的畢業(yè)設(shè)計(jì)根本能夠完成課題的根本局部和發(fā)揮局部的要求。在數(shù)據(jù)處理的精度方面由于采用C語言編程,大大提高了精度,但遺憾的是,有些發(fā)揮局部如單位帶寬增益沒能完成,并且測(cè)試結(jié)果存在有較大的誤差??傊?,這次設(shè)計(jì)有值得我回憶的地方也有令我感到遺憾的地方。感謝詞隨著畢業(yè)設(shè)
53、計(jì)的結(jié)束,我也即將離開川師?;貞涍@四年,我在這兒學(xué)到了許多有用的知識(shí),為人的道理,受益匪淺。我想,這些將伴我走過以后的人生。雖然四年就像彈指一揮間,但這四年卻有許多令我感謝和思念的東西。首先要感謝我的學(xué)校四川師范大學(xué),它為我提供了一個(gè)良好的學(xué)習(xí)氣氛。再者,我要感謝我的老師們,任課老師讓我學(xué)到了許多有用的理論知識(shí),而實(shí)驗(yàn)室的老師們?cè)趯?shí)驗(yàn)室辛勤工作,早出晚歸地為我們指導(dǎo)畢業(yè)設(shè)計(jì),教會(huì)了我如何把理論知識(shí)應(yīng)用到實(shí)踐中去,將兩者很好結(jié)合,我才能得到更好的進(jìn)步。從您們身上,我不僅領(lǐng)略到了您們那淵博的知識(shí),也看到了您們敬業(yè)的高尚品德。在此要特別感謝我的指導(dǎo)老師何巍老師。感謝您在畢業(yè)設(shè)計(jì)中對(duì)我們的指導(dǎo),您不僅
54、教給我們?cè)撛鯓尤ピO(shè)計(jì),還教我們?cè)撊绾稳グl(fā)現(xiàn)問題,自己思考解決問題。您的啟發(fā)式教育讓我們受益良多。感謝吳均老師、毛老師、梁老師以及麥老師對(duì)我們畢業(yè)設(shè)計(jì)的大力支持和幫助。同時(shí),還要感謝我的組員:沈翔、張超和李云菲,沒有他們?cè)谶@次畢業(yè)設(shè)計(jì)中的合作和幫助,畢業(yè)設(shè)計(jì)也不會(huì)如此順利。從他們身上,我也學(xué)到了團(tuán)隊(duì)精神和其它許多知識(shí)。參考文獻(xiàn)1.白駒珩,雷曉平:?jiǎn)纹?jì)算機(jī)及其應(yīng)用第二版,成都:電子科技大學(xué)出版社,1997;2.鄒北驥:C語言程序設(shè)計(jì)(第二版),北京:電子工業(yè)出版社出版,2000;3.張齊,杜群貴:?jiǎn)纹瑱C(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)基于C語言編程, 電子工業(yè)出版社, 2004;4.謝自美:電子線路設(shè)計(jì)實(shí)驗(yàn)測(cè)試
55、第二版,武漢:華中理工出版社,2000;5.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽組委會(huì),全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽獲獎(jiǎng)作品選編2003, 北京:北京理工大學(xué)出版社 ,2005;6.康華光,陳大欽:電子技術(shù)根底模擬局部第四版,北京:高等教育出版社,1999;7.康華光,鄒壽彬:電子技術(shù)根底數(shù)字局部第四版,北京:高等教育出版社,1999.附錄一整體系統(tǒng)電路圖:附錄二源程序:#include #include AT89X52.h#include #include #include #define cwadd2 XBYTE0 xB800#define cradd2 XBYTE0 xFa00#define dwadd2
56、XBYTE0 xB900#define dradd2 XBYTE0 xFb00#define cwadd1 XBYTE0 xB400#define cradd1 XBYTE0 xF600#define dwadd1 XBYTE0 xB500#define dradd1 XBYTE0 xF700#define daaddr XBYTE0X2fff#define adaddr XBYTE0X5fff#define ramaddr XBYTE0X0001#define keyaddr XBYTE0XC000sbitACC_0=ACC0;sbitACC_1=ACC1;sbitACC_2=ACC2;sb
57、itACC_3=ACC3;sbitACC_4=ACC4;sbitACC_5=ACC5;sbitACC_6=ACC6;sbitACC_7=ACC7;#define dacs XBYTE 0X9fFF /高頻信號(hào)源產(chǎn)生地址#define display_on 0 x3f;#define display_off 0 x3e;#define para1 0 x40;#define start_line0 0 xc0;idata unsigned char keyv;sbit sclk = P10; /TLC2543時(shí)鐘信號(hào)線sbit din = P11; /TLC2543串行數(shù)據(jù)輸入線sbit dou
58、t = P12; /TLC2543串行數(shù)據(jù)輸出線sbit cs = P14; /TLC2543片選信號(hào)線sbit jdq0 = P30; /繼電器標(biāo)志sbit jdq1=P31; /繼電器標(biāo)志bdata char cjn;sbit cj0=cjn0;sbit cj1=cjn1;sbit cj2=cjn2;sbit cj3=cjn3;sbit cj4=cjn4;sbit cj5=cjn5;sbit cj6=cjn6;sbit cj7=cjn7;bit cj;bit flag;unsigned int com,dat1;float xf,yf;unsigned char code_1,count1
59、;idata unsigned int ad058;float average5;sbit fq_up=P16;sbit reset=P17;idata unsigned int vio8,vlo8;idata unsigned char *lcdpointer1=&cradd1,*lcdpointer2=&cradd2;code unsigned char CHTAB488= 0 x00,0 x3E,0 x51,0 x49,0 x45,0 x3E,0 x00,0 x00, /*0=0h*/ 0 x00,0 x00,0 x42,0 x7F,0 x40,0 x00,0 x00,0 x00, /*
60、1=1h*/ 0 x00,0 x42,0 x61,0 x51,0 x49,0 x46,0 x00,0 x00, /*2=2h*/ 0 x00,0 x21,0 x41,0 x45,0 x4B,0 x31,0 x00,0 x00, /*3=3h*/ 0 x00,0 x18,0 x14,0 x12,0 x7F,0 x10,0 x00,0 x00, /*4=4h*/ 0 x00,0 x27,0 x45,0 x45,0 x45,0 x39,0 x00,0 x00, /*5=5h*/ 0 x00,0 x3C,0 x4A,0 x49,0 x49,0 x30,0 x00,0 x00, /*6=6h*/ 0 x
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021年超市促銷方案5篇范文模板
- 石河子大學(xué)《食品物性學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《結(jié)構(gòu)力學(xué)二》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《簡(jiǎn)明新疆地方史教程》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《風(fēng)景畫表現(xiàn)》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《自動(dòng)武器原理與構(gòu)造》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《交互設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2018年四川內(nèi)江中考滿分作文《我心中的英雄》12
- 沈陽(yáng)理工大學(xué)《電力電子技術(shù)》2023-2024學(xué)年期末試卷
- 廣州 存量房交易合同 范例
- 咖啡線下活動(dòng)策劃方案
- 2024年國(guó)家體育總局事業(yè)單位招聘90人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 店長(zhǎng)協(xié)議合同模板
- Unit 2 Bridging Cultures 課文知識(shí)點(diǎn)課件-高中英語人教版(2019)選擇性必修第二冊(cè)
- 期中測(cè)試卷(1-3單元)(試題)-2024-2025學(xué)年六年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- 長(zhǎng)安集團(tuán)在線測(cè)評(píng)題答案
- 期中綜合測(cè)試卷(試題)-2024-2025學(xué)年人教PEP版英語四年級(jí)上冊(cè)
- 中西醫(yī)協(xié)同發(fā)展多學(xué)科診療制度
- 全國(guó)設(shè)備管理與智能運(yùn)維職業(yè)技能競(jìng)賽(管廊運(yùn)維員)考試題及答案
- 《醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項(xiàng)準(zhǔn)則》制定主題學(xué)習(xí)課件
- 《大學(xué)美育》 課件 22.模塊五 第二十二章 光影交織的攝影藝術(shù)之美
評(píng)論
0/150
提交評(píng)論