畢業(yè)設(shè)計(jì)----低頻信號(hào)分析儀軟件設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
畢業(yè)設(shè)計(jì)----低頻信號(hào)分析儀軟件設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
畢業(yè)設(shè)計(jì)----低頻信號(hào)分析儀軟件設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
畢業(yè)設(shè)計(jì)----低頻信號(hào)分析儀軟件設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
畢業(yè)設(shè)計(jì)----低頻信號(hào)分析儀軟件設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

低頻信號(hào)分析儀軟件設(shè)計(jì)與實(shí)現(xiàn)摘要隨著微電子技術(shù),計(jì)算機(jī)技術(shù),網(wǎng)絡(luò)通訊技術(shù)和軟件技術(shù)的高速發(fā)展,在實(shí)驗(yàn)室和工業(yè)應(yīng)用中,傳統(tǒng)儀器開始向計(jì)算機(jī)化的方向發(fā)展。通過(guò)串口將信號(hào)經(jīng)過(guò)傳輸和采樣到電腦里面由設(shè)計(jì)的軟件實(shí)現(xiàn)對(duì)信號(hào)時(shí)域和頻域的分析和計(jì)算是會(huì)給教學(xué)和科研帶來(lái)很多意想不到的方便。本次設(shè)計(jì)使用VISUALC60完成對(duì)串口模塊的設(shè)計(jì),使其能夠?qū)崿F(xiàn)信號(hào)的接收。然后通過(guò)MATLAB生成信號(hào),通過(guò)對(duì)生成的信號(hào)進(jìn)行傅立葉變換,由傅氏變換可以得到幅值和相角,然后通過(guò)計(jì)算得到的AFF特征值,將信號(hào)的頻譜,時(shí)間域波形等顯示出來(lái)。由波形圖和頻譜圖分析得知信號(hào)的周期,峰峰值,頻率等,從而實(shí)現(xiàn)對(duì)信號(hào)進(jìn)行分析和計(jì)算。雖然本次畢業(yè)設(shè)計(jì)雖然能夠基本完成設(shè)計(jì)要求,但是還有很多地方需要改進(jìn)。關(guān)鍵字串行通信;信號(hào)采樣;傅立葉變換;信號(hào)分析LOWFREQUENCYSIGNALANALYZERSOFTWAREDESIGNANDIMPLEMENTATIONABSTRACTWITHTHEMICROELECTRONICSTECHNOLOGY,COMPUTERTECHNOLOGY,NETWORKCOMMUNICATIONTECHNOLOGYANDTHERAPIDDEVELOPMENTOFSOFTWARETECHNOLOGYINTHELABORATORYANDINDUSTRIALAPPLICATIONS,THETRADITIONALSTARTTOTHECOMPUTERIZEDEQUIPMENTDIRECTIONTHESIGNALTHROUGHTHESERIALPORTTOACOMPUTERTHROUGHTRANSMISSIONANDSAMPLINGBYTHEDESIGNOFTHESOFTWAREINSIDETHESIGNALINTIMEDOMAINANDFREQUENCYDOMAINOFANALYSISANDCOMPUTATIONISTEACHINGANDRESEARCHWILLBRINGALOTOFUNEXPECTEDCONVENIENCETHISDESIGNUSINGVISUALC60SERIALPORTMODULETOCOMPLETETHEDESIGN,SOTHATITCANACHIEVESIGNALRECEPTIONTHENMATLABGENERATEDSIGNAL,THESIGNALGENERATEDBYTHEFOURIERTRANSFORM,FOURIERTRANSFORMCANBEOBTAINEDFROMTHEAMPLITUDEANDPHASEANGLE,ANDTHENCALCULATEDTHEEIGENVALUESOFTHESIGNALSPECTRUM,TIMEDOMAINWAVEFORMDISPLAYBYTHEWAVEFORMANDSPECTRUMANALYSISSHOWEDTHATTHESIGNALCYCLE,PEAKTOPEAK,FREQUENCY,ETC,INORDERTOACHIEVETHESIGNALANALYSISANDCALCULATIONWHILETHISCANBASICALLYCOMPLETETHEGRADUATIONPROJECTDESIGNREQUIREMENTSTHOUGH,BUTTHEREAREMANYAREASFORIMPROVEMENTKEYWORDSSERIALCOMMUNICATIONSIGNALSAMPLINGFOURIERTRANSFORMSIGNALANALYSIS目錄摘要IABSTRACTII目錄第1章前言111本論文的研究背景和意義112論文研究?jī)?nèi)容113論文研究重點(diǎn)2第2章信號(hào)的輸入321串口通信模塊3211基本原理322串口通信和RS2325221RS232通信協(xié)議5222RS232串行接口標(biāo)準(zhǔn)6223RS232接口定義6224串口信號(hào)線的接法723VISUALC及MFC簡(jiǎn)介824實(shí)現(xiàn)串行通信10241在當(dāng)前工程添加MSCOMM控件10242初始化串口設(shè)置MSCOMM控件的屬性12243數(shù)據(jù)接收函數(shù)ONCOMM13244發(fā)送數(shù)據(jù)15245程序調(diào)試1625本章小節(jié)17第3章信號(hào)的分析和計(jì)算1831信號(hào)分析的原理及意義1832信號(hào)的分類與預(yù)處理1933信號(hào)的采樣22331奈奎斯特采樣定理2234信號(hào)的時(shí)域分析2435信號(hào)的頻域分析24351信號(hào)的頻譜分析24352DFT及FFT算法描述25353FFT實(shí)現(xiàn)頻譜分析2636本章小結(jié)27第4章程序的調(diào)試2841信號(hào)的時(shí)域波形2842信號(hào)的功率譜3043信號(hào)的頻譜圖3344本章小結(jié)35結(jié)論36致謝37參考文獻(xiàn)38附錄39第1章前言11本論文的研究背景和意義利用計(jì)算機(jī)軟件在計(jì)算機(jī)上實(shí)現(xiàn)低頻信號(hào)分析(LOWFREQUENCYSIGNALANALYSIS)是最近幾十年內(nèi)迅速發(fā)展起來(lái)的一種信號(hào)分析技術(shù)。在很多的科研項(xiàng)目中,信號(hào)分析儀是一種重要的工具。傳統(tǒng)的儀器加工工藝復(fù)雜,生產(chǎn)技術(shù)要求搞,價(jià)格昂貴,功能有限,難以對(duì)分析結(jié)果進(jìn)行二次處理。因此,設(shè)計(jì)一種操作簡(jiǎn)便,功能可以自己定義,成本比較低的信號(hào)分析儀會(huì)給教學(xué)和科研帶來(lái)很多意想不到的方便。隨著微電子技術(shù),計(jì)算機(jī)技術(shù),網(wǎng)絡(luò)通訊技術(shù)和軟件技術(shù)的告訴發(fā)展,傳統(tǒng)儀器開始向計(jì)算機(jī)化的方向發(fā)展。利用軟件在微機(jī)屏幕上構(gòu)成虛擬儀器前面板,在硬件的支持下對(duì)信號(hào)進(jìn)行采樣,既可以進(jìn)行實(shí)時(shí)信號(hào)分析,顯示,又可以在離線條件下對(duì)存儲(chǔ)的采集結(jié)果進(jìn)行各種后處理。在電子技術(shù)的各領(lǐng)域中,由于數(shù)字信號(hào)處理技術(shù)的廣泛使用和大規(guī)模集成電路的高速發(fā)展,正日益廣泛的采用數(shù)字信號(hào)和數(shù)字系統(tǒng)。數(shù)字式信號(hào)分析儀是以數(shù)字濾波器或者快速傅立葉變換,即FFT為基礎(chǔ)構(gòu)成的。特別是FFT算法的問(wèn)世,大大改變了頻譜分析技術(shù)。數(shù)字式信號(hào)分析儀器由于受到數(shù)字系統(tǒng)工作速度的限制。另一方面,數(shù)字濾波和FFT技術(shù)也已滲透到隨即頻率信號(hào)分析儀當(dāng)中去。例如采用FFT算法對(duì)低頻部分進(jìn)行處理,從而使得儀器的控制另加靈活,動(dòng)態(tài)范圍,精確度也大為提高。在現(xiàn)代的工業(yè)設(shè)計(jì)生產(chǎn)當(dāng)中,信號(hào)分析儀對(duì)生產(chǎn)活動(dòng)提供了非常大的幫助,可以精確的測(cè)量待測(cè)數(shù)據(jù)信號(hào)的時(shí)域和頻域的各個(gè)方面的信息。而且由于最年來(lái)微電工程技術(shù)的技術(shù)更新,使得信號(hào)分析儀的精確度更高,測(cè)量更方便。12論文研究?jī)?nèi)容1信號(hào)接收模塊的設(shè)計(jì)。對(duì)低頻信號(hào)進(jìn)行分析和計(jì)算,首先要完成對(duì)低頻信號(hào)的采集,將經(jīng)過(guò)串口的數(shù)據(jù)接入計(jì)算機(jī),其中就會(huì)牽涉到對(duì)串口的設(shè)置,比如采樣頻率,波特率,奇偶校驗(yàn)等,還有就是RS232串口的接線方法,傳輸距離。對(duì)信號(hào)進(jìn)行成功的傳輸和采樣以后才能夠使得接下來(lái)的信號(hào)分析模塊順利進(jìn)行。2信號(hào)分析模塊設(shè)計(jì)。將采接入計(jì)算機(jī)的信號(hào)利用快速傅立葉變換進(jìn)行時(shí)域和頻域的計(jì)算,使信號(hào)的時(shí)域波形和頻譜能夠直觀地顯示出來(lái),從而達(dá)到對(duì)信號(hào)特征的分析。圖11低頻信號(hào)分析儀軟件設(shè)計(jì)設(shè)計(jì)框圖13論文研究重點(diǎn)通過(guò)MATLAB發(fā)生出低頻信號(hào),在滿足奈奎斯特定理的情況下完成對(duì)信號(hào)的采集,然后對(duì)采集到的信號(hào)進(jìn)行傅立葉變換。在傅立葉變換中當(dāng)N太大時(shí),直接進(jìn)行DFT運(yùn)算,運(yùn)算量會(huì)很大,這就對(duì)計(jì)算機(jī)的性能提出了很高的要求,但是利用周期性可以大大的降低運(yùn)算量。這時(shí)就可以用FFT算法來(lái)實(shí)現(xiàn)對(duì)信號(hào)的快速傅立葉變換。由離散傅立葉變換DFT可知,由于XF是復(fù)函數(shù),所以為的振振幅,稱為的相位譜。AFXTFXT顯示圖形串口通信進(jìn)行仿真低頻信號(hào)的采集MATLAB產(chǎn)生信號(hào)串口通信完成對(duì)信號(hào)的采集信號(hào)的分析第二章信號(hào)的輸入21串口通信模塊在實(shí)驗(yàn)室和工業(yè)應(yīng)用中,串口是常用的計(jì)算機(jī)與外部串行設(shè)備之間的數(shù)據(jù)傳輸通道,由于串行通信方便易行,所以應(yīng)用廣泛。依據(jù)不同的條件實(shí)現(xiàn)對(duì)串口的靈活編程控制是我們所需要的。在WINDOWS環(huán)境(WINDOWSNT、WIN98、WINDOWS2000)下,串口是系統(tǒng)資源的一部分。應(yīng)用程序要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資源申請(qǐng)要求(打開串口),通信完成后必須釋放資源(關(guān)閉串口)。211基本原理大多數(shù)計(jì)算機(jī)包含兩個(gè)基于RS232的串口。串口同時(shí)也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS232口。同時(shí),串口通信協(xié)議也可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。串行端口的本質(zhì)功能是作為CPU和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從CPU經(jīng)過(guò)串行端口發(fā)送出去時(shí),字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時(shí),串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。串口通信的概念非常簡(jiǎn)單,串口按位(BIT)發(fā)送和接收字節(jié)。盡管比按字節(jié)(BYTE)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總常不得超過(guò)20米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò)2米;而對(duì)于串口而言,長(zhǎng)度可達(dá)1200米。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對(duì)于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配A,波特率這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的BIT的個(gè)數(shù)。例如300波特表示每秒鐘發(fā)送300個(gè)BIT。當(dāng)我們提到時(shí)鐘周期時(shí),我們就是指波特率例如如果協(xié)議需要4800波特率,那么時(shí)鐘是4800HZ。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800HZ。通常電話線的波特率為14400,28800和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設(shè)備的通信。B,數(shù)據(jù)位這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0127(7位)。擴(kuò)展的ASCII碼是0255(8位)。如果數(shù)據(jù)使用簡(jiǎn)單的文本(標(biāo)準(zhǔn)ASCII碼),那么每個(gè)數(shù)據(jù)包使用7位數(shù)據(jù)。每個(gè)包是指一個(gè)字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語(yǔ)“包”指任何通信的情況。C,停止位用于表示單個(gè)包的最后一位。典型的值為1,15和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。D,奇偶校驗(yàn)位在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式。有四種檢錯(cuò)方式偶、奇、高和低。當(dāng)然沒有校驗(yàn)位也是可以的。對(duì)于偶和奇校驗(yàn)的情況,串口會(huì)設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對(duì)于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個(gè)。如果是奇校驗(yàn),校驗(yàn)位位1,這樣就有3個(gè)邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡(jiǎn)單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會(huì)判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步串口是否空閑發(fā)送數(shù)據(jù)關(guān)閉空閑信號(hào)接受數(shù)據(jù)開始串口初始化是否發(fā)送完畢返回NYNY圖21串口通信流程圖22串口通信和RS232221RS232通信協(xié)議RS232是串行數(shù)據(jù)接口標(biāo)準(zhǔn),最初都是由電子工業(yè)協(xié)會(huì)(EIA)制訂并發(fā)布的,RS232在1962年發(fā)布,命名為EIA232E,作為工業(yè)標(biāo)準(zhǔn),以保證不同廠家產(chǎn)品之間的兼容。RS422由RS232發(fā)展而來(lái),它是為彌補(bǔ)RS232之不足而提出的。為改進(jìn)RS232通信距離短、速率低的缺點(diǎn),RS422定義了一種平衡通信接口,將傳輸速率提高到10MB/S,傳輸距離延長(zhǎng)到4000英尺(速率低于100KB/S時(shí)),并允許在一條平衡總線上連接最多10個(gè)接收器。RS422是一種單機(jī)發(fā)送、多機(jī)接收的單向、平衡傳輸規(guī)范,被命名為TIA/EIA422A標(biāo)準(zhǔn)。為擴(kuò)展應(yīng)用范圍,EIA又于1983年在RS422基礎(chǔ)上制定了RS485標(biāo)準(zhǔn),增加了多點(diǎn)、雙向通信能力,即允許多個(gè)發(fā)送器連接到同一條總線上,同時(shí)增加了發(fā)送器的驅(qū)動(dòng)能力和沖突保護(hù)特性,擴(kuò)展了總線共模范圍,后命名為TIA/EIA485A標(biāo)準(zhǔn)。由于EIA提出的建議標(biāo)準(zhǔn)都是以“RS”作為前綴,所以在通訊工業(yè)領(lǐng)域,仍然習(xí)慣將上述標(biāo)準(zhǔn)以RS作前綴稱謂。RS232、RS422與RS485標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。因此在視頻界的應(yīng)用,許多廠家都建立了一套高層通信協(xié)議,或公開或廠家獨(dú)家使用。如錄像機(jī)廠家中的SONY與松下對(duì)錄像機(jī)的RS422控制協(xié)議是有差異的,視頻服務(wù)器上的控制協(xié)議則更多了,如LOUTH、ODETIS協(xié)議是公開的,而PROLINK則是基于PROFILE上的。222RS232串行接口標(biāo)準(zhǔn)目前RS232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS232被定義為一種在低速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。RS232采取不平衡傳輸方式,即所謂單端通訊。收、發(fā)端的數(shù)據(jù)信號(hào)是相對(duì)于信號(hào)地,如從DTE設(shè)備發(fā)出的數(shù)據(jù)在使用DB25連接器時(shí)是2腳相對(duì)7腳(信號(hào)地)的電平,DB25各引腳定義參見圖1。典型的RS232信號(hào)在正負(fù)電平之間擺動(dòng),在發(fā)送數(shù)據(jù)時(shí),發(fā)送端驅(qū)動(dòng)器輸出正電平在515V,負(fù)電平在515V電平。當(dāng)無(wú)數(shù)據(jù)傳輸時(shí),線上為TTL,從開始傳送數(shù)據(jù)到結(jié)束,線上電平從TTL電平到RS232電平再返回TTL電平。接收器典型的工作電平在312V與312V。由于發(fā)送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20KB/S。RS232是為點(diǎn)對(duì)點(diǎn)(即只用一對(duì)收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,其驅(qū)動(dòng)器負(fù)載為37K。所以RS232適合本地設(shè)備之間的通信223RS232接口定義RS232接口又稱之為RS232口、串口、異步口或一個(gè)COM(通信)口?!癛S232“是其最明確的名稱。在計(jì)算機(jī)世界中,大量的接口是串口或異步口,但并不一定符合RS232標(biāo)準(zhǔn),但我們也通常認(rèn)為它是RS232口。嚴(yán)格地講RS232接口是DTE(數(shù)據(jù)終端設(shè)備)和DCE(數(shù)據(jù)通信設(shè)備)之間的一個(gè)接口,DTE包括計(jì)算機(jī)、終端、串口打印機(jī)等設(shè)備。DCE通常只有調(diào)制解調(diào)器(MODEM)和某些交換機(jī)COM口是DCE。標(biāo)準(zhǔn)指出DTE應(yīng)該擁有一個(gè)插頭(針輸出),DCE擁有一個(gè)插座(孔輸出)。圖22RS232接口引腳定義圖224串口信號(hào)線的接法一個(gè)完整的RS232C接口有22根線,采用標(biāo)準(zhǔn)的25芯插頭座(或者9芯插頭座)。25芯和9芯的主要信號(hào)線相同。以下的介紹是以25芯的RS232C為例。(1)主要信號(hào)線定義2腳發(fā)送數(shù)據(jù)TXD;3腳接收數(shù)據(jù)RXD;4腳請(qǐng)求發(fā)送RTS;5腳清除發(fā)送CTS;6腳數(shù)據(jù)設(shè)備就緒DSR;20腳數(shù)據(jù)終端就緒DTR;8腳數(shù)據(jù)載波檢測(cè)DCD;1腳保護(hù)地;7腳信號(hào)地。(2)電氣特性數(shù)據(jù)傳輸速率最大可到20KBPS,最大距離僅15M微軟的MSDN60,其WINDOWSAPI中關(guān)于串行通訊設(shè)備(不一定都是串口RS232C或RS422或RS449)速率的設(shè)置,最大可支持到RS_256000,即256KBPS。(3)接口的典型應(yīng)用大多數(shù)計(jì)算機(jī)應(yīng)用系統(tǒng)與智能單元之間只需使用3到5根信號(hào)線即可工作。這時(shí),除了TXD、RXD以外,還需使用RTS、CTS、DCD、DTR、DSR等信號(hào)線。(當(dāng)然,在程序中也需要對(duì)相應(yīng)的信號(hào)線進(jìn)行設(shè)置。)圖23RS232C信號(hào)線接法23VISUALC及MFC簡(jiǎn)介MFC庫(kù)和VISUALC提供了可以用于創(chuàng)建各種應(yīng)用程序的環(huán)境。VISUALC可以幫助您開發(fā)滿足各種商業(yè)需求的應(yīng)用程序。它提供了各種功能和工具。VISUALC特色包括1本機(jī)COM支持可視化的COM編輯,與位置和語(yǔ)言無(wú)關(guān)的COM瀏覽,MFC模板,以及編譯器支持簡(jiǎn)化了基于組件的開發(fā)。2VISUALSCHEMADISIGNER通過(guò)從桌面遠(yuǎn)程分析MICROSOFTSQLSERVER數(shù)據(jù)庫(kù)的模式SCHEMA,提高了數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)的效率。3MICROSOFTTRANSACTIONSERVERMICROSOFTTRANSACTIONSERVER幫助您建立高性能的基于事務(wù)的應(yīng)用程序。4活動(dòng)文檔服務(wù)器支持VISUALC提供了創(chuàng)建活動(dòng)文檔服務(wù)器的向?qū)Ш涂删幊讨С?,這些活動(dòng)文檔服務(wù)器可以在任何活動(dòng)文檔服務(wù)器中調(diào)用,如在MICROSOFTOFFICE97和MICROSOFTINTERNETEXPLORER40中。VISUALC的開發(fā)環(huán)境包括1幫助管理您的工程的工程工作區(qū)。2編譯工程的工具。3設(shè)計(jì)用戶界面和創(chuàng)建資源的編譯器。4共享的開發(fā)組件,包括一個(gè)優(yōu)化的編譯器,一個(gè)增量鏈接器和一個(gè)集成的調(diào)試器。VISUALC有三個(gè)版本標(biāo)準(zhǔn)版,除了代碼優(yōu)化,性能分析器PROFILER和與MFC庫(kù)的靜態(tài)鏈接外,標(biāo)準(zhǔn)版包含了專業(yè)版的所有其它功能。專業(yè)版,使您能夠開發(fā)和發(fā)布商用等級(jí)的軟件產(chǎn)品。其功能包括VFC,ACTIVETEMPLATELIBRARYATL,活動(dòng)模板庫(kù),COM和OLEDB。企業(yè)版提供了建立和驗(yàn)證企業(yè)級(jí)COM應(yīng)用程序的工具和組件。該版本中包含專業(yè)版中的所有功能,另外還包括MICROSOFTTRANSACTIONSERVER,SQL編輯器和調(diào)試器,MICROSOFTVISUALSOURCESAFE,以及對(duì)ACTIVEX對(duì)象ADO和遠(yuǎn)程數(shù)據(jù)對(duì)象RDO的支持。MFC庫(kù)的功能MFC庫(kù)是基于C類的一個(gè)集合和一個(gè)應(yīng)用程序框架,主要用于創(chuàng)建MICROSOFTWINDOWS應(yīng)用程序。這個(gè)類的集合將C語(yǔ)言擴(kuò)展為包括創(chuàng)建基于WINDOWS的應(yīng)用程序所需要的大部分基本結(jié)構(gòu)元素。應(yīng)用程序框架則定義了應(yīng)用程序的結(jié)構(gòu),并為應(yīng)用程序處理許多常規(guī)任務(wù)。MFC庫(kù)是基于WIN32應(yīng)用程序編程接口API之上而建立的。該API是操作系統(tǒng)為應(yīng)用程序提供的一系列函數(shù)。MFC展示了代表WINDOWS操作系統(tǒng)的通用對(duì)象的基本類。MFC并不封裝或包括整個(gè)API它只包括主要的結(jié)構(gòu)組件和常用組件。由于MFC是用C編寫的,因此,您可以很容易地使用WIN32API對(duì)操作系統(tǒng)進(jìn)行本機(jī)調(diào)用。使用MFC的益處MFC庫(kù)使您能夠利用專業(yè)的WINDOWS開發(fā)人員的成果。MFC縮短了開發(fā)時(shí)間,使代碼更簡(jiǎn)潔,在不降低編程自由度和靈活性的前提下提供支持,并提供了對(duì)難于編程的用戶界面元素和技術(shù)如ACTIVEX和INTERNET編程的方便訪問(wèn)。MFC通過(guò)OLEDB模板和ADO簡(jiǎn)化數(shù)據(jù)庫(kù)編程,并通過(guò)WINDOWSSOCKET簡(jiǎn)化網(wǎng)絡(luò)編程。MFC使對(duì)諸如屬性表,打印預(yù)覽和浮動(dòng)工具欄等功能的編程變得十分簡(jiǎn)單。在開發(fā)全功能的WINDOWS應(yīng)用程序,數(shù)據(jù)庫(kù)應(yīng)用程序,ACTIVEX控件和組件以及INTERNET應(yīng)用程序時(shí),MFC可提供許多優(yōu)點(diǎn),例如1提供一個(gè)應(yīng)用程序框架,用戶可在其上建立WINDOWS應(yīng)用程序。2兼容以前版本的可重用的C類。3行業(yè)中最大的可重用的C源代碼庫(kù)。4與VISUALC集成。文檔/視圖體系結(jié)構(gòu)MFC提供了多種類來(lái)滿足范圍廣泛的編程需求。使用MFC編程的第一步是熟悉這些類,并學(xué)習(xí)它們?cè)贛FC層次結(jié)構(gòu)中的相互關(guān)系。某些類可直接使用其余的類可作為創(chuàng)建其它類的基類。學(xué)習(xí)MFC類時(shí),將它們按類別組織是很有幫助的。一些重要的MFC類的類別包括1應(yīng)用程序體系結(jié)構(gòu)類。2用戶界面類。3數(shù)據(jù)庫(kù)類。4INTERNET類。MFC編程依賴消息的傳遞推動(dòng)整個(gè)程序的運(yùn)行。24實(shí)現(xiàn)串行通信241在當(dāng)前工程添加MSCOMM控件VISUALC為我們提供了一種好用的ACTIVEX控件MICROSOFTCOMMUNICATIONSCONTROL即MSCOMM來(lái)支持應(yīng)用程序?qū)Υ诘脑L問(wèn),在應(yīng)用程序中插入MSCOMM控件后就可以較為方便地實(shí)現(xiàn)對(duì)通過(guò)計(jì)算機(jī)串口收發(fā)數(shù)據(jù)。打開VISUALC60,建立一個(gè)基于對(duì)話框的MFC應(yīng)用程序SCOMMTEST。然后在主對(duì)話框中添加控件,最后效果如圖241所示。圖24對(duì)話框最終狀態(tài)然后用CLASSWIZARD為相應(yīng)控件添加變量,控件的屬性設(shè)置情況如下表121所示??丶丶蘒DCAPTION需要添加的變量及變量類型靜態(tài)文本IDC_STATIC接收顯示靜態(tài)文本IDC_STATIC發(fā)送輸入編輯框IDC_EDIT_RXDATAM_STREDITRXDATAVALUECSTRING編輯框IDC_EDIT_TXDATAM_STREDITTXDATAVALUECSTRING按鈕IDC_BUTTON_MANUALSEND發(fā)送MSCOMMIDC_MSCOMM1M_CTRLCOMMCONTROL圖26控件及其屬性設(shè)置情況要使用ACTIVEX控件MSCOMM,程序員必須將其添加入工程,其方法是(1)單擊主菜單PROJECT的子菜單ADDTOPROJECT的COMPONENTSANDCONTROLS選項(xiàng);圖27添加控件、控件對(duì)話框(2)在彈出的“COMPONENTSANDCONTROLSGALLERY“對(duì)話框中選擇REGISTEREDACTIVEXCONTROLS文件夾中的“MICROSOFTCOMMUNICATIONSCONTROL,VERSION60“選項(xiàng)。如圖243圖28MSCOMM控件選擇對(duì)話框單擊其中的“INSERT“按鈕,MSCOMM控件就被增加到工程中了。與此同時(shí),類CMSCOMM的相關(guān)文件MSCOMMH和MSCOMMCPP也一并被加入PROJECT的HEADERFILES和SOURCEFILES中。圖29添加CMSCOMM類的確認(rèn)對(duì)話框242初始化串口設(shè)置MSCOMM控件的屬性打開CLASSWIZARDMEMBERVARIABLES頁(yè),如圖245所示,選中控件IDC_MSCOMM1,再單擊“ADDVARIALBE”按鈕,在CSCOMMTESTDLG類中為控件IDC_MSCOMM1添加CMSCOMM控制變量M_CTRLCOMM。圖210為控件IDC_MSCOMM1添加控制變量圖211MSCOMM控件出現(xiàn)在資源中通過(guò)以上操作,CLASSWIZARD自動(dòng)在SCOMMTESTDLG,H中加入了INCLUDE”MSCOMMH”語(yǔ)句。/AFX_INCLUDESINCLUDE“MSCOMMH“/AFX_INCLUDES然后在CSCOMMTESTDLGONINITDIALOG函數(shù)中寫入對(duì)串口的初始化語(yǔ)句,串口初始化語(yǔ)句由IDC_MASCOMM1的CMSCOMM控制變量M_CTRLCOMM來(lái)設(shè)置串口控件屬性。其中包括了選擇串口,輸入代碼如下BOOLCSCOMMTESTDLGONINITDIALOGCDIALOGONINITDIALOG/TODOADDEXTRAINITIALIZATIONHEREM_CTRLCOMMSETCOMMPORT2/選擇COM1M_CTRLCOMMSETINPUTMODE1/輸入方式為二進(jìn)制方式M_CTRLCOMMSETINBUFFERSIZE1024/設(shè)置輸入緩沖區(qū)大小M_CTRLCOMMSETOUTBUFFERSIZE512/設(shè)置輸出緩沖區(qū)大小M_CTRLCOMMSETSETTINGS“9600,N,8,1“/波特率9600,無(wú)校驗(yàn),8個(gè)數(shù)據(jù)位,1個(gè)停止位IFM_CTRLCOMMGETPORTOPENM_CTRLCOMMSETPORTOPENTRUE/打開串口/參數(shù)1表示每當(dāng)串口接收緩沖區(qū)中有多于/或等于1個(gè)字符時(shí)將引發(fā)一個(gè)接收數(shù)據(jù)的ONCOMM事件M_CTRLCOMMSETRTHRESHOLD1M_CTRLCOMMSETINPUTLEN0/設(shè)置當(dāng)前接收區(qū)數(shù)據(jù)長(zhǎng)度為0M_CTRLCOMMGETINPUT/先預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù)RETURNTRUE/RETURNTRUEUNLESSYOUSETTHEFOCUSTOACONTROL243數(shù)據(jù)接收函數(shù)ONCOMMMSCOMM控件一般用時(shí)間驅(qū)動(dòng)方式從串口接受數(shù)據(jù),也就是消息處理,當(dāng)串口有事件發(fā)生時(shí),程序調(diào)用消息函數(shù)來(lái)處理數(shù)據(jù)。打開CLASSWIZARDMEMBERVARIABLES頁(yè),如圖247所示,打開CLASSWIZARDMESSAGEMAPS,在CLASSNAME中選擇類CSCOMMTESTDLG,再在OBJECTIDS中選擇IDC_MSCOMM1,然后在MESSAGE中雙擊消息ONCOMM(或單擊“ADDFUNCTION”按鈕),在彈出的對(duì)話框中將函數(shù)名改為ONCOMM(好記而已),單擊“OK”,就加入了串口時(shí)間的消息處理函數(shù)。此時(shí)打開工程頭文件SCOMMTESTDLGH和實(shí)現(xiàn)文件SCOMMTESTDLGCPP會(huì)發(fā)現(xiàn)程序自動(dòng)在中添加代碼。圖212為控件IDC_MSCOMM1添加消息事件處理函數(shù)ONCOMM編寫函數(shù)ONCOMM中的代碼,主要任務(wù)是從串口接受數(shù)據(jù)并顯示在接受編輯框中。VOIDCSCOMMTESTDLGONCOMM/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHEREVARIANTVARIANT_INPCOLESAFEARRAYSAFEARRAY_INPLONGLEN,KBYTERXDATA2048/設(shè)置BYTE數(shù)組CSTRINGSTRTEMPIFM_CTRLCOMMGETCOMMEVENT2/事件值為2表示接收緩沖區(qū)內(nèi)有字符VARIANT_INPM_CTRLCOMMGETINPUT/讀緩沖區(qū)SAFEARRAY_INPVARIANT_INP/VARIANT型變量轉(zhuǎn)換為COLESAFEARRAY型變量LENSAFEARRAY_INPGETONEDIMSIZE/得到有效數(shù)據(jù)長(zhǎng)度FORK0KINCLUDE“SCOMMTESTH“INCLUDE“SCOMMTESTDLGH“IFDEF_DEBUGDEFINENEWDEBUG_NEWUNDEFTHIS_FILESTATICCHARTHIS_FILE_FILE_ENDIF/CABOUTDLGDIALOGUSEDFORAPPABOUTCLASSCABOUTDLGPUBLICCDIALOGPUBLICCABOUTDLG/DIALOGDATA/AFX_DATACABOUTDLGENUMIDDIDD_ABOUTBOX/AFX_DATA/CLASSWIZARDGENERATEDVIRTUALFUNCTIONOVERRIDES/AFX_VIRTUALCABOUTDLGPROTECTEDVIRTUALVOIDDODATAEXCHANGECDATAEXCHANGEPDX/DDX/DDVSUPPORT/AFX_VIRTUAL/IMPLEMENTATIONPROTECTED/AFX_MSGCABOUTDLG/AFX_MSGDECLARE_MESSAGE_MAPCABOUTDLGCABOUTDLGCDIALOGCABOUTDLGIDD/AFX_DATA_INITCABOUTDLG/AFX_DATA_INITVOIDCABOUTDLGDODATAEXCHANGECDATAEXCHANGEPDXCDIALOGDODATAEXCHANGEPDX/AFX_DATA_MAPCABOUTDLG/AFX_DATA_MAPBEGIN_MESSAGE_MAPCABOUTDLG,CDIALOG/AFX_MSG_MAPCABOUTDLG/NOMESSAGEHANDLERS/AFX_MSG_MAPEND_MESSAGE_MAP/CSCOMMTESTDLGDIALOGCSCOMMTESTDLGCSCOMMTESTDLGCWNDPPARENT/NULL/CDIALOGCSCOMMTESTDLGIDD,PPARENT/AFX_DATA_INITCSCOMMTESTDLGM_STREDITRXDATA_T“M_STREDITTXDATA_T“/AFX_DATA_INIT/NOTETHATLOADICONDOESNOTREQUIREASUBSEQUENTDESTROYICONINWIN32M_HICONAFXGETAPPLOADICONIDR_MAINFRAMEVOIDCSCOMMTESTDLGDODATAEXCHANGECDATAEXCHANGEPDXCDIALOGDODATAEXCHANGEPDX/AFX_DATA_MAPCSCOMMTESTDLGDDX_CONTROLPDX,IDC_MSCOMM1,M_CTRLCOMMDDX_TEXTPDX,IDC_EDIT_RXDATA,M_STREDITRXDATADDX_TEXTPDX,IDC_EDIT_TXDATA,M_STREDITTXDATA/AFX_DATA_MAPBEGIN_MESSAGE_MAPCSCOMMTESTDLG,CDIALOG/AFX_MSG_MAPCSCOMMTESTDLGON_WM_SYSCOMMANDON_WM_PAINTON_WM_QUERYDRAGICONON_BN_CLICKEDIDC_BUTTON_MANUALSEND,ONBUTTONMANUALSEND/AFX_MSG_MAPEND_MESSAGE_MAP/CSCOMMTESTDLGMESSAGEHANDLERSBOOLCSCOMMTESTDLGONINITDIALOGCDIALOGONINITDIALOG/ADD“ABOUT“MENUITEMTOSYSTEMMENU/IDM_ABOUTBOXMUSTBEINTHESYSTEMCOMMANDRANGEASSERTIDM_ABOUTBOXASSERTIDM_ABOUTBOXAPPENDMENUMF_SEPARATORPSYSMENUAPPENDMENUMF_STRING,IDM_ABOUTBOX,STRABOUTMENU/SETTHEICONFORTHISDIALOGTHEFRAMEWORKDOESTHISAUTOMATICALLY/WHENTHEAPPLICATIONSMAINWINDOWISNOTADIALOGSETICONM_HICON,TRUE/SETBIGICONSETICONM_HICON,FALSE/SETSMALLICON/TODOADDEXTRAINITIALIZATIONHEREM_CTRLCOMMSETCOMMPORT2M_CTRLCOMMSETINPUTMODE1M_CTRLCOMMSETINBUFFERSIZE1024/M_CTRLCOMMSETOUTBUFFERSIZE512M_CTRLCOMMSETSETTINGS“9600,N,8,1“IFM_CTRLCOMMGETPORTOPENM_CTRLCOMMSETPORTOPENTRUEM_CTRLCOMMSETRTHRESHOLD1M_CTRLCOMMSETINPUTLEN0M_CTRLCOMMGETINPUTRETURNTRUE/RETURNTRUEUNLESSYOUSETTHEFOCUSTOACONTROLVOIDCSCOMMTESTDLGONSYSCOMMANDUINTNID,LPARAMLPARAMIFNIDDLGABOUTDOMODALELSECDIALOGONSYSCOMMANDNID,LPARAM/IFYOUADDAMINIMIZEBUTTONTOYOURDIALOG,YOUWILLNEEDTHECODEBELOW/TODRAWTHEICONFORMFCAPPLICATIONSUSINGTHEDOCUMENT/VIEWMODEL,/THISISAUTOMATICALLYDONEFORYOU

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論