




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
本科畢業(yè)設(shè)計(論文)爆轟性能測試系統(tǒng)軟件設(shè)計SoftwareDesignofDetonationPerformanceTestSystem總計:畢業(yè)設(shè)計(論文)26頁表格:2個插圖:20幅學(xué)院(系):電子與電氣工程系專業(yè):電子信息工程爆轟性能測試系統(tǒng)軟件設(shè)計[摘要]火藥性能測試系統(tǒng)主要是對炸藥爆炸時的各種性能參數(shù)進行有效的測試,并將這些測試參數(shù)上傳給PC機,進行數(shù)據(jù)存儲記錄。整個炸藥性能測試系統(tǒng)包括爆轟波數(shù)據(jù)測試和爆速數(shù)據(jù)測試兩個方面。本文對爆轟波波形數(shù)據(jù)存儲,根據(jù)實際中的條件和要求,本論文中選擇了ADC、CPLD、RAM、AT89C52單片機等模塊和串口傳輸?shù)姆桨?。該方案的主要思路是ADC芯片完成數(shù)據(jù)采集,CPLD模塊用于控制ADC工作及數(shù)據(jù)傳輸。RAM模塊負(fù)責(zé)數(shù)據(jù)的存儲。單片機控制模塊用于數(shù)據(jù)的讀取,然后通過串口傳輸上傳到PC機。當(dāng)PC機得到所采集的數(shù)據(jù)后,對數(shù)據(jù)進行存儲。本文首先對系統(tǒng)功能進行了詳細(xì)分析,提出系統(tǒng)總體結(jié)構(gòu)和設(shè)計原則。然后對高速數(shù)據(jù)采集系統(tǒng)、存儲器等相關(guān)控制電路進行了設(shè)計、仿真和調(diào)試。[關(guān)鍵詞]CPLD;采樣;高速數(shù)據(jù)采集;系統(tǒng)調(diào)試SoftwareDesignofDetonationPerformanceTestSystemAbstract:Powderperformancetestsystemmainlyforexplosiveperformanceparametersduringthetestefficiently,anduploadthemtothePC,testparameters,datastoragerecords.Performancetestsystem,includingtheexplosivedetonationandthedetonationvelocitydatatestingdatatestingtwoaspects.Thisformofdatastorageonthedetonationwave,inaccordancewiththeactualconditionsandrequirements,thepaperselectedADC,CPLD,RAM,AT89C52microcontrollermoduleandserialtransmissionofsuchprogram.Theprogram'smainideaistocompletethedataacquisitionADCchip,CPLDmoduleisusedtocontroltheADCworkanddatatransmission.RAMmodulesresponsiblefordatastorage.SCMcontrolmodulefordataread,andthenuploadedtothePCthroughtheserialportmachine.WhenthePC,thedataarecollected,thedatastorage.Thispaperfeaturesadetailedsystemanalysis,systemarchitectureanddesignprinciples.Thenhigh-speeddataacquisitionsystem,memoryandotherrelatedcontrolcircuitdesign,simulationanddebugging.Keywords:CPLD;sampling;highspeeddataacquisition;systemcommissioning
目錄1引言 12炸藥性能測試系統(tǒng)的設(shè)計概述 13爆轟波波形數(shù)據(jù)的采集、存儲、處理及通訊的具體實現(xiàn) 33.1數(shù)據(jù)采集系統(tǒng)的基本方案 33.1.1A/D轉(zhuǎn)換電路 33.2CPLD電路部分設(shè)計 43.2.1可編程邏輯器件 53.2.2VHDL語言 53.2.3可編程邏輯器件的開發(fā)工具 63.2.4CPLD控制器的詳細(xì)設(shè)計 63.3單片機控制模塊設(shè)計 93.3.1AT89C52的體系結(jié)構(gòu)和硬件描述 93.3.2中斷系統(tǒng) 93.3.3RS232通訊接口的設(shè)計 104.軟件設(shè)計 104.1CPLD控制程序部分 104.1.1CPLD最小控制系統(tǒng)各模塊程序及仿真 114.1.2CPLD最小控制系統(tǒng)流程圖 184.2單片機控制程序部分 20結(jié)束語 24參考文獻 25致謝 261引言隨著無線通信與計算技術(shù)、信號處理與分析技術(shù)的發(fā)展,軍事、衛(wèi)星通信等信號不斷向高頻、寬帶、數(shù)字化發(fā)展。高速采集成為制約信號處理的關(guān)鍵因素之一。今天高速數(shù)據(jù)采集技術(shù)已在雷達、通信、地震勘探、智能儀器、科學(xué)實驗等各個方面有著廣泛的應(yīng)用。本文介紹了以CPLD為核心處理芯片的多路數(shù)據(jù)采集系統(tǒng)的實現(xiàn)方法。該系統(tǒng)通過CPLD控制ADC轉(zhuǎn)換,將采樣數(shù)據(jù)儲存到靜態(tài)存儲器(RAM)中,再由單片機從RAM中取出數(shù)據(jù)經(jīng)MAX232串口上傳到PC機,由PC機完成對數(shù)據(jù)的處理。由于實驗條件,論文中實現(xiàn)的最高采樣率為20MSPS。本設(shè)計系統(tǒng)主要是完成對炸藥爆速及爆轟波數(shù)據(jù)的采集和數(shù)據(jù)處理工作,形象的反映出炸藥爆炸時的性能。具體到本文,主要是實現(xiàn)爆轟波數(shù)據(jù)的采集和處理。在具體的實現(xiàn)上,主要解決了傳感器的數(shù)據(jù)測量、模數(shù)的轉(zhuǎn)換、高速信號的緩沖處理、數(shù)據(jù)的存儲、看門狗、單片機與PC機的通信等問題。論文中側(cè)重分析了CPLD芯片F(xiàn)LEX10K30E在系統(tǒng)中的硬件應(yīng)用以及軟件實現(xiàn),另一個重點是主CPU模板的單片機對整個系統(tǒng)的控制,以及PC機的終端數(shù)據(jù)庫軟件的設(shè)計。在器件的選擇上,主要采用了FLEX10K30E和AT89C52[1]。這是從本設(shè)計的實際要求出發(fā)而考慮的。由于數(shù)據(jù)處理方面的高速要求,考慮到成本,采用了CPLD器件來作為數(shù)據(jù)緩沖的設(shè)計器件,這樣達到電路保密以及減小系統(tǒng)的PCB面積的目的。采用AT89C52可以以最小的成本來達到對系統(tǒng)全面控制的要求。本文針對炸藥性能——爆轟波數(shù)據(jù)采集的要求,首先闡明了本設(shè)計的產(chǎn)生和應(yīng)用背景,接著討論了整個高速數(shù)據(jù)采集系統(tǒng)的整體實現(xiàn)原理,接下來主要具體講述了如何設(shè)計一種基于CPLD和單片機的卡式測試儀器。講述了可編程器件CPLD及VHDL語言的原理和設(shè)計實現(xiàn),單片機及匯編語言的原理和設(shè)計實現(xiàn),PC終端數(shù)據(jù)的處理。在文章的最后給出了具體設(shè)計中應(yīng)該注意的一些問題。2炸藥性能測試系統(tǒng)的設(shè)計概述單獨使用單片機作為存儲測試系統(tǒng)主控元件發(fā)送數(shù)據(jù)采集和數(shù)據(jù)傳輸?shù)闹噶顣r,單片機的工作速度很難完成采樣率達到1MS/s的數(shù)據(jù)采集工作,而且單片機的端口數(shù)目、內(nèi)部定時器和中斷源的數(shù)目都有限,在應(yīng)用中往往要加外圍擴展芯片,這就增加了系統(tǒng)硬件的復(fù)雜程度;若選擇CPLD作為系統(tǒng)控制核心,不僅可以簡化系統(tǒng)設(shè)計,而且提高了系統(tǒng)的整體性能和系統(tǒng)穩(wěn)定性,但若單獨通過CPLD完成整個系統(tǒng)的控制功能,則需選用內(nèi)部容量大,可用門數(shù)多的CPLD器件,這勢必使系統(tǒng)功耗和成本都有所提高[2]。而且控制時序的設(shè)計也相當(dāng)復(fù)雜,應(yīng)用者開發(fā)起來比較費力。因此,本設(shè)計在傳統(tǒng)存儲測試系統(tǒng)的基礎(chǔ)上,采用高速ADC與高速靜態(tài)隨機存取存儲器(RAM)構(gòu)成的設(shè)計方案結(jié)合采用CPLD與單片機技術(shù)相結(jié)合的存儲測試系統(tǒng)。由于考慮研究中主要還是實驗室研究階段,是采用信號發(fā)生器產(chǎn)生被測信號,省去了ADC前端的濾波、放大等信號調(diào)理電路部分。經(jīng)全面衡量對比,選擇了ADC+CPLD+RAM+AT89C52單片機+串口傳輸?shù)姆桨?。該方案的主要思路是,先采用CPLD控制高速AD轉(zhuǎn)換器把信號采集進來并同時存儲到RAM存儲器中,當(dāng)RAM存儲器存滿以后,認(rèn)為CPLD及ADC和RAM完成一次采集存儲任務(wù),此為前一階段任務(wù)完成;然后通知并等待單片機將存儲器中采集的數(shù)據(jù)取走,通過串口傳輸上傳到PC機。當(dāng)PC機得到所采集的數(shù)據(jù)后,對數(shù)據(jù)進行存儲。其方案框圖如圖1所示。圖1爆轟性能測試系統(tǒng)方案框圖該系統(tǒng)能夠以較高的采樣率完成對信號的采集存儲。模擬信號在CPLD時序控制下經(jīng)AD轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,并實時存儲于靜態(tài)存儲器中?,F(xiàn)場采集完成后(即RAM已經(jīng)存儲滿),單片機將數(shù)據(jù)從存儲器中讀取出來,通過RS-232串口上傳至PC計算機作進一步的處理[3]。在通常的數(shù)據(jù)采集系統(tǒng)中,每次數(shù)據(jù)采集過程,單片機和A/D轉(zhuǎn)換之間都由執(zhí)行指令完成數(shù)據(jù)的傳送,由于受單片機執(zhí)行指令時間的限制,采集一個數(shù)據(jù)往往需要幾到幾十微秒的時間,這樣的數(shù)據(jù)采集系統(tǒng)難以適應(yīng)高速信號采集的需要。本系統(tǒng)是在單片機控制下,完全由硬件自動實現(xiàn)數(shù)據(jù)采集的全過程。在該系統(tǒng)中單片機只控制數(shù)據(jù)采集的啟動和采集結(jié)束后對數(shù)據(jù)的傳輸,在數(shù)據(jù)采集的過程中,單片機并不對采集通道進行任何干預(yù),這樣就使系統(tǒng)的采集速率完全不受單片機速度的限制,從而實現(xiàn)高速數(shù)據(jù)采集的目的。該系統(tǒng)具體工作原理是:作為控制器的CPLD上電以后即輸出連續(xù)的定時脈沖給A/D轉(zhuǎn)換器(ADC0809)的CLK端,使其每接受一個時間脈沖即進行一次A/D轉(zhuǎn)換,同時將CPLD內(nèi)部地址發(fā)生器產(chǎn)生的依次連續(xù)變化的地址信號在每一定時脈沖期間經(jīng)地址選擇器(在CPLD內(nèi)部)直接送到存儲器,同時在每一定時脈沖期間A/D轉(zhuǎn)換器將所采集到的第n一3次的數(shù)據(jù)經(jīng)數(shù)據(jù)總線直接輸入到兩片SRAM存儲器中保存,如此連續(xù)循環(huán),完成一個一個采樣周期。重復(fù)上述過程,直到存儲器存滿,由CPLD器件引起單片機外部中斷,結(jié)束數(shù)據(jù)采集,轉(zhuǎn)入中斷處理程序進行數(shù)據(jù)處理,單片機從RAM中讀取數(shù)據(jù)并送PC機處理。系統(tǒng)工作原理可由圖1描述[4]。3爆轟波波形數(shù)據(jù)的采集、存儲、處理及通訊的具體實現(xiàn)3.1數(shù)據(jù)采集系統(tǒng)的基本方案開機后,CPLD發(fā)出時鐘脈沖ADCLK給ADC,控制AD轉(zhuǎn)換。每ADCLK脈沖ADC轉(zhuǎn)換一次,CPLD即刻給出OE輸出數(shù)據(jù)使能信號,將8位數(shù)據(jù)寫入存儲器中。這樣一直循環(huán)采集,直到存儲器滿。然后CPLD置低INTO通知單片機讀取數(shù)據(jù),得到通知后,單片機將工作狀態(tài)信號置為有效以應(yīng)答,然后單片機直接控制RAM讀取數(shù)據(jù),并不斷通過串口RS232將數(shù)據(jù)上傳到PC機,當(dāng)讀取完數(shù)據(jù)后,再將工作狀態(tài)信號置為無效。CPLD一直處于工作狀態(tài),當(dāng)工作狀態(tài)信號置為無效后,又開始下一次的數(shù)據(jù)寫入到存儲器。此時,PC機對上傳的數(shù)據(jù)進行處理、波形回放,如此循環(huán)。詳細(xì)原理邏輯框圖如圖2。圖2數(shù)據(jù)采集系統(tǒng)邏輯框圖3.1.1A/D轉(zhuǎn)換電路A/D轉(zhuǎn)換是將模擬量電信號轉(zhuǎn)換為數(shù)字信號。本文中A/D轉(zhuǎn)換單元采用ADC0809芯片實現(xiàn)模數(shù)轉(zhuǎn)換功能,下面分別對這種芯片的工作原理做出介紹。ADC0809是CMOS工藝,采用8位逐次逼近型8路模數(shù)轉(zhuǎn)換器,ADC0809集成了8路地址鎖存地址鎖存與譯碼8位模擬量輸入IN0~IN7ADDCALE啟動START輸出允許OE時鐘CLOCKVREF+VREF-8位輸出數(shù)字量轉(zhuǎn)換結(jié)束(中斷)EOC8路模擬開關(guān)8位A/D轉(zhuǎn)換器三態(tài)輸出緩沖器ADDAADDB圖3芯片的內(nèi)部結(jié)構(gòu)模擬開關(guān),地址鎖存與譯碼器、8位A/D轉(zhuǎn)換器以及8位三態(tài)輸出鎖存器。其中IN0--IN7為8路模擬量輸入端口,D0~D0為8為數(shù)字量輸出端口,VREF(+)與VREF(9是基準(zhǔn)參考電壓,用于確定輸入模擬量的量程范圍。CLK為時鐘信號輸入端,一個轉(zhuǎn)換周期需要64個時鐘信號。START為轉(zhuǎn)換啟動引腳,高電平有效。ALE是地址鎖存允許信號,在它的下降沿將地址打入鎖存器[5]。EOC為轉(zhuǎn)換結(jié)束信號,在轉(zhuǎn)換期間該信號為低電平,轉(zhuǎn)換結(jié)束后變?yōu)楦唠娖健E為數(shù)字量輸出允許信號,高電平有效。A、B、C為地址輸入端口,通過他們的二進制編碼組合選擇輸入模擬量的通道。ADC0809在一個轉(zhuǎn)換周期內(nèi),首先在ALE的作用下讀入A、B、C的數(shù)據(jù),進而控制8路模擬開關(guān)接通所要轉(zhuǎn)換的通道,然后EOC變?yōu)榈碗娖?,被轉(zhuǎn)換信號在轉(zhuǎn)換器內(nèi)同多個參考值相比較,直至找到最為接近的一個參考值,并將該參考值對應(yīng)的數(shù)字量送到三態(tài)輸出鎖存器,然后EOC變?yōu)楦唠娖?,表示轉(zhuǎn)換結(jié)束。這時如果OE收到高電平信號,便將輸出鎖存起開放,送出轉(zhuǎn)換后的數(shù)字量。這一部分電路的功能是將輸入模擬信號高速數(shù)字化,并將結(jié)果存儲在RAM中,供CPU處理。本設(shè)計采用雙通道輸入。由兩個信號發(fā)生器發(fā)出的信號,通過兩路A/D轉(zhuǎn)換后,由CPLD控制送入兩片RAM中存儲。該電路的工作原理是:CPLD發(fā)出時鐘脈沖ADCLK給ADC,控制AD轉(zhuǎn)換。每ADCLK脈沖ADC轉(zhuǎn)換一次,CPLD同時即刻給出0E輸出數(shù)據(jù)使能信號,將兩路8位數(shù)經(jīng)8根數(shù)據(jù)總線輸送至存儲器中。與此同時,CPLD在同時給存儲器送9位相同地址信號后再送寫信號WE,將數(shù)據(jù)同時寫入RAM中。這種并行處理方式也在一定程度上提高了系統(tǒng)的速度。3.2CPLD電路部分設(shè)計高速數(shù)據(jù)采集系統(tǒng)中,一般采用DMA方式,由于單片機本身并不支持DMA接口方式,必須外加DMA控制器和總線仲裁電路:數(shù)據(jù)采集電路中,時序控制電路、地址發(fā)生器、多路控制驅(qū)動器等芯片眾多,從而提高了硬件電路的復(fù)雜性,降低了系統(tǒng)的靈活性和可靠性,并且占用了大部分體積,邏輯時序復(fù)雜。用CPLD實現(xiàn)這些電路則使開發(fā)簡單、靈活、方便。3.2.1可編程邏輯器件在數(shù)字化的道路上,電子設(shè)計技術(shù)的發(fā)展經(jīng)歷了并將繼續(xù)經(jīng)歷許多重大的變革和飛躍。從應(yīng)用通用數(shù)字電路芯片構(gòu)成電路與系統(tǒng)、廣泛應(yīng)用的MPU(徼處理單元)等到可編程邏輯器件(包括現(xiàn)場可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)在電子設(shè)計自動化(EDA)中廣泛應(yīng)用,使得電路系統(tǒng)在設(shè)計上發(fā)生了~系列具有里程碑意義的飛躍[6]。如果說MPU在邏輯的實現(xiàn)上是無限的話,那么FPCA/CPLD不但包括了MPU這一特點,而且還觸及硅片電路的物理極限,并兼有高速、大容量、高可靠性以及很寬的適用性等諸多特點。其不可替代的地位及伴隨而來的極具知識經(jīng)濟特征的IP核技術(shù)的發(fā)展越來越受到電路設(shè)計人員的關(guān)注。可編程邏輯器件(FLD)是由用戶編程實現(xiàn)所需邏輯功能的數(shù)字集成電路。在20世紀(jì)80年代初,簡單的PLD主要用于集成多個分立邏輯器件,還可用它來實現(xiàn)布爾方程。如今,高密度PLD不僅可以實現(xiàn)系統(tǒng)級的電路集成,而且被看作是ASIC和ASSP的替代品。ASIC是用戶根據(jù)某一專門應(yīng)用設(shè)計的,ASSP是用來實現(xiàn)特定功能的器件。由于大批量的生產(chǎn)采用了先進的工藝技術(shù),使PLD的價格不斷降低。Altera公司提供的器件在集成度、密度、性能和成本方面都可與ASIC相比。這些因素與產(chǎn)品投放市場的時間和可編程的靈活性相結(jié)合,不斷地推動著高密度PLD在電子系統(tǒng)開發(fā)和生產(chǎn)中的應(yīng)用[7]。在可編程邏輯器件的學(xué)習(xí)和使用中,我認(rèn)識到可編程邏輯器件的學(xué)習(xí)和應(yīng)用已不僅僅是單純地基于某種特定器件的開發(fā)過程,而是一種極富挑戰(zhàn)性和創(chuàng)造性的勞動,使目前許多處于計算機輔助設(shè)計(CAD)和規(guī)劃的純軟件活動變成了實實在在的設(shè)計和實體,這些設(shè)計在計算機上仿真通過后,幾乎即可應(yīng)用于實際電路,大大地簡化了設(shè)計方法和調(diào)試過程。3.2.2VHDL語言VHDL最早是由美國國防部提出的。1987年12月,IEEE接受VHDL為標(biāo)準(zhǔn)的IIDL,這就是今天我們所了解的IEEESTDl076—1987[LRM87]。此后又做了一些修改,增加了一些功能,后來形成了新的版本IEEESTDl0761993。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,其語言形式和描述風(fēng)格與句法十分類似于一般的計算機高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件、一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分及端口)和內(nèi)部(或稱不可視部分),即涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦內(nèi)部開發(fā)完成,其他的設(shè)計就可以直接調(diào)用這個實體。隨著數(shù)字電路的發(fā)展,VHDL語言將承擔(dān)更多數(shù)字系統(tǒng)設(shè)計任務(wù)。3.2.3可編程邏輯器件的開發(fā)工具開發(fā)Altera公司的可編程邏輯器件有兩種軟件,QuartuslI和MAX+PLUSII。本設(shè)計采用QuartusII可編程邏輯器件開發(fā)軟件,它提供了一種與結(jié)構(gòu)無關(guān)的全集成化設(shè)計環(huán)境,使設(shè)計者能對Altera公司的各種產(chǎn)品系列方便地進行設(shè)計輸入、快速處理和器件編程[8]。QuartusII開發(fā)系統(tǒng)具有強大的處理能力和高度的靈活性,它的優(yōu)點主要表現(xiàn)在以下方面:(1)與結(jié)構(gòu)無關(guān):QuartusII系統(tǒng)的編譯程序,支持從Class到FLEXI的Altera全部系列的PLD產(chǎn)品,提供與結(jié)構(gòu)無關(guān)的設(shè)計開發(fā)壞境,具有強大的邏輯綜合與優(yōu)化功能。(2)多平臺:QuartusII可在基于Pc機的WINDOWS或WINDOWSNT環(huán)境下運行。全集成化:QuartusII的設(shè)計輸入、處理、優(yōu)化和校驗功能全部集成在統(tǒng)一的開發(fā)環(huán)境下,可以加快動態(tài)調(diào)試,縮短開發(fā)周期。(3)硬件描述語言(HDL):Quartus11支持各種HDL輸入選項,包括ⅧDL,VerilongHDL和Altera公司自己的硬件描述語言VHDL。(4)豐富的設(shè)計庫:OuartusII提供豐富的庫單元提供設(shè)計者調(diào)用,其中包括74系列的全部器件和多種特殊的邏輯宏單元(Macro—Funtion),以及新型的參數(shù)化宏單元(Maga-Function)。調(diào)用庫單元進行設(shè)計,可以大大減輕設(shè)計工作量,設(shè)計周期成倍縮短。(5)開放的界面:QuartustI提供標(biāo)準(zhǔn)的接口,可以與其它工業(yè)標(biāo)準(zhǔn)的EDA軟件協(xié)同使用。設(shè)計者可以使用其他的EDA軟件工具進行設(shè)計輸入.再利用QuartusII的Compiler進行編譯處理,并使用其它工具進行器件和板級仿真晰朝。3.2.4CPLD控制器的詳細(xì)設(shè)計在整個高速采集系統(tǒng)中,CPLD起著決定性的控制作用,因為CPLD本身具有高速、并行工作的特點,所以具有很好的控制能力。下面具體說CPLD內(nèi)部的工作機制。所設(shè)計的CPLD控制程序是針對基本方案的。CPLD的主要任務(wù)是:CPLD對AD進行時序控制,以采集模擬信號到CPLD,在AD進行采集的同時,CPLD將采集到的數(shù)據(jù),按RAM的寫時序,將數(shù)據(jù)并行寫入RAM中,這樣AD每采集一次數(shù)據(jù),CPLD立即將采集到的數(shù)據(jù)寫入RAM,直到RAM存儲滿為止,然后CPLD發(fā)出數(shù)據(jù)已滿的低跳變信號給單片機的外部中斷INTO口(通知線),通知單片機可以讀取數(shù)據(jù)了。單片機得到通知,當(dāng)做好讀取數(shù)據(jù)的準(zhǔn)備后,立刻將工作狀態(tài)置為有效以應(yīng)答CPLD,表示正在采集數(shù)據(jù),這時CPLD等待單片機從RAM取走數(shù)據(jù)。當(dāng)單片機取走數(shù)據(jù)后,置工作狀態(tài)信號為無效。一旦CPLD檢測到工作狀態(tài)信號無效后,則說明單片機己讀取完數(shù)據(jù),CPLD就立即控制AD進入下一輪的采集工作當(dāng)中。經(jīng)過對AD和RAM的詳細(xì)時序分析,可以據(jù)此很精確的對它們進行時序控制設(shè)計了。在CPLD中設(shè)計了兩大部分。分別是AD轉(zhuǎn)換部分與存儲控制模塊和地址計數(shù)器部分。(1)AD轉(zhuǎn)換與存儲控制模塊的功能是對AD進行時序控制和對RAM的寫時序控制。(2)地址計數(shù)器模塊的功能是輸出9位地址信號,實現(xiàn)對RAM尋址。引腳及功能介紹,詳細(xì)連接圖見圖4。圖4AD轉(zhuǎn)換與存儲控制模塊和地址計數(shù)器模塊框圖CLK:CPLD的全局時鐘信號輸入端,實驗初期暫時采用20MHz,以免對于調(diào)試過程給予過高苛求。D[7..0]:AD轉(zhuǎn)換器輸入到CPLD的數(shù)據(jù)端口。EOC:轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換。ALE:8個模擬信號通道地址鎖存信號。START:轉(zhuǎn)換開始信號。OE:CPLD輸送給AD轉(zhuǎn)換器的AD數(shù)據(jù)輸出使能信號。當(dāng)為低時,ADC輸出所鎖存的采集的數(shù)據(jù)信號ADDA:信號通道最低位控制信號。LOCK0:觀察數(shù)據(jù)鎖存時鐘。Q[7..0]:8位數(shù)據(jù)輸出。CPLD輸出到RAM的AD轉(zhuǎn)換數(shù)據(jù)輸出端口。通過它將數(shù)據(jù)寫入RAM數(shù)據(jù)端口。WREN:RAM的寫脈沖。當(dāng)為高電平時,寫有效。INTERRUPT:讀取通知信號,連接到單片機的INTO口,下跳沿有效。(4)時序和狀態(tài)機設(shè)計說明根據(jù)時序圖的特點,AD只需要供給固定的時鐘節(jié)拍就可以進行控制,同時按照RAM的寫時序的特點,設(shè)計了如下狀態(tài)機來進行基本的采集和存儲,存儲是與AD的采集時鐘完全同步的,也就是說,在每一個AD采樣周期內(nèi)實現(xiàn)的數(shù)據(jù)存儲。設(shè)計了狀態(tài)機如圖5所示。st0st0st1st2st3st4reset圖5采集存儲狀態(tài)機圖當(dāng)系統(tǒng)復(fù)位后,進入狀態(tài)stO,根據(jù)一定的狀態(tài)轉(zhuǎn)移條件進入下一個狀態(tài)。下面分別說明每個狀態(tài)的主要任務(wù)。stO:初始化各端口信號和等待作用。如檢測是否開始采集,復(fù)位地址計數(shù)器,將外部輸出端口信號進行復(fù)位。stl:ALE<=’1’,地址鎖存信號有效。START<=’1’,啟動AD采樣。LOCK<=’0’,轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號,此時無效。OE<=st2:ALE<=’0’;START<=’1’;LOCK<=’0’;OE<=’0’;狀態(tài)跟stl基本一樣,所不同的是在st2狀態(tài)中還要檢測EOC是否為高電平st3:ALE<=’0’;START<=’0’;LOCK<=’0’;OEst4:ALE<=’0’;START<=’0’;LOCK<=’1’,輸出數(shù)據(jù)鎖存時鐘信號;OE<=’(5)時序仿真結(jié)果與分析由時序仿真圖7可以看到,當(dāng)FULL置高時,說明地址計數(shù)器到頂了,這是RAM存儲已經(jīng)滿了。CPLD立刻將INTERRUPT置低產(chǎn)生下降沿通知單片機可以讀取數(shù)據(jù)了,此時CPLD什么都不做,除了等待單片機的應(yīng)答信號。單片機響應(yīng)中斷,置WREN為低電平,RAM進入讀出狀態(tài)。單片機此時進入串口通信狀態(tài),等待串口中斷,發(fā)送數(shù)據(jù),當(dāng)數(shù)據(jù)發(fā)送完,繼續(xù)等待串口中斷,直到把RAM中的數(shù)據(jù)讀完,才關(guān)閉串口中斷。這里有個中斷優(yōu)先級的區(qū)別,必須先響應(yīng)外部中斷后,置RAM為讀出狀態(tài)時,再執(zhí)行串口中斷程序,發(fā)送數(shù)據(jù)。之后,CPLD一直處于等待單片機讀取數(shù)據(jù)的狀態(tài),直到檢測到WREN為高,說明單片機已經(jīng)讀取完了數(shù)據(jù)。此時,CPLD將進入stO的復(fù)位狀態(tài),為下一輪采集做好準(zhǔn)備,又開始采集。AC0809采樣狀態(tài)工作時序仿真圖如圖6所示。圖6ADC0809采樣狀態(tài)工作時序仿真圖3.3單片機控制模塊設(shè)計單片機作為主控元件完成對RAM中數(shù)據(jù)讀取并進行通過RS一232口向Pc機上傳的功能。當(dāng)單片機接收到CPLD發(fā)送的外部中斷觸發(fā)信號之后開始數(shù)據(jù)上傳工作,該中斷信號通過邊沿觸發(fā)單片機INT0引腳[9]。在數(shù)據(jù)傳輸過程中,上位機和下位機需要具有完備的握手通信協(xié)議才能保證上位機及時、準(zhǔn)確地接收數(shù)據(jù)。單片機以校驗和的方式發(fā)送數(shù)據(jù),以8B數(shù)據(jù)為一幀發(fā)送。3.3.1AT89C52的體系結(jié)構(gòu)和硬件描述本設(shè)計中所采用的CPU為ATMEL公司生產(chǎn)的8位FLASH單片機系列中的AT89C52。AT89C52是一種低功耗/低電壓、高性能的8位單片機,它是ATMEL公司在AT89C51的基礎(chǔ)上,存儲容量、定時器和中斷能力等得到改進的型號[10]。它的主要性能如下:(1)8KB的FLASH存儲器;(2)256字節(jié)的片內(nèi)RAM;(3)32條可編程I/O線;(4)3個16位定時器/計數(shù)器;(5)6個中斷源;(6)3級程序存儲器保密;(7)可編程串行接口;(8)片內(nèi)時鐘振蕩器。3.3.2中斷系統(tǒng)AT89C52總共具有6個中斷源,兩個外部中斷(INT0、INT1)和三個內(nèi)部定時器中斷(定時器0、1、2),另外還有一個串行口中斷。所有的這些中斷都屬于可屏蔽中斷,即可以通過軟件對片內(nèi)特殊功能寄存器IE的設(shè)置,實現(xiàn)對各個中斷源中斷請求的開放(允許)或屏蔽(禁止)的控制。中斷控制寄存器IE的字節(jié)地址為A8H,可進行位尋址操作。本設(shè)計中,將用到兩個外部中斷,來實現(xiàn)主CPU模板對波形數(shù)據(jù)采集板和爆速數(shù)據(jù)采集板的控制[11]。3.3.3RS232通訊接口的設(shè)計RS-232C接口標(biāo)準(zhǔn)簡述:RS-232C標(biāo)準(zhǔn)時美國電子工業(yè)協(xié)會(EIA)與BELL等公司一起開發(fā)的1969年公布的通信協(xié)議[12]。它適合于數(shù)據(jù)傳輸率在0至20000b/s范圍內(nèi)的通信,它具有機械特性:RS-232C接口是單端發(fā)送,單端接收,傳輸線上允許一個驅(qū)動器和一個發(fā)送器。RS-232C標(biāo)準(zhǔn)接口有25條線,其中4條數(shù)據(jù)線,11條控制線,3條定時線,7條備用線和未定義線。它所采用的電纜傳輸長度與傳輸?shù)碾娙萦嘘P(guān)。它的最大傳輸距離可達30m,最大速率20kb/s,適于相距較近設(shè)備的通信。電氣特性:RS-232C標(biāo)準(zhǔn)定義-15V~-3V表示邏輯“1”,+3V~+15V表示邏輯“0”。它選擇-15V~-3V和+3V~+15V這個范圍而不采用TTL邏輯(0V~5V)的原因是為了提高抗干擾能力和增加傳輸距離,因此與TTL設(shè)備連接時需加電平轉(zhuǎn)換接口。MAX232芯片是常用的RS-232C與TTL電平轉(zhuǎn)換芯片,它的內(nèi)部有電壓倍增電路和轉(zhuǎn)換電路,只需+5V電源便可實現(xiàn)RS-232C與TTL電平轉(zhuǎn)換,芯片連接圖如圖7:圖7采用MAX232接口的串行通信電路圖圖中TXD和RXD與AT89C52的串行通訊引腳相連接,而PCTXD和PCRXD與一9針插頭插座相連接,具體連接為PCRXD(2)、PCTXD(3)。同時,9針插頭插座的第5管腳接地,形成一個最簡單的串行異步通訊的連接方式。這個串口就是單片機與PC進行數(shù)據(jù)通訊的通信接口。4.軟件設(shè)計4.1CPLD控制程序部分本設(shè)計是利用FPGA直接控制0809對模擬信號進行采樣,然后將轉(zhuǎn)換好的8位二進制數(shù)據(jù)迅速存儲到存儲器中,在完成對模擬信號一個或數(shù)個周期的采樣后,由外部電路系統(tǒng)(如單片機)將存儲器中的采樣數(shù)據(jù)讀出處理。(1)元件ADCINT是控制0809的采樣狀態(tài)機。(2)元件CNT10B中有一個用于RAM的9位地址計數(shù)器,此計數(shù)器的工作時鐘CLK0由WE控制:當(dāng)WE=’1’時,CLK0=LOCK0:LOCK0來自0809采樣控制器的LOCK0(每一采樣周期產(chǎn)生一個鎖存脈沖),(3)當(dāng)WE=’0’時,處于采樣禁止階段,此時允許讀出RAM中的數(shù)據(jù),CLKOUT=CLK0=CLK=采樣狀態(tài)機的工作時鐘(一般取65536Hz)圖8CPLD最小控制系統(tǒng)框圖4.1.1CPLD最小控制系統(tǒng)各模塊程序及仿真(1)ADC采樣模塊圖9ADCINT采樣狀態(tài)機模塊圖由狀態(tài)圖也可以看出,在狀態(tài)st2中需要對0809工作狀態(tài)信號EOC進行測試,如果為低電平,表示轉(zhuǎn)換沒有結(jié)束,在下一時鐘脈沖到來時轉(zhuǎn)向狀態(tài)3。在狀態(tài)3,由狀態(tài)機向0809發(fā)出轉(zhuǎn)換好的8位數(shù)據(jù)輸出允許命令,這一狀態(tài)周期同時可作為數(shù)據(jù)輸出穩(wěn)定周期,以便能在下一狀態(tài)中向鎖存器中鎖入可靠的數(shù)據(jù)。在狀態(tài)st4,由狀態(tài)機向FPGA中的鎖存器發(fā)出鎖存信號,將0809輸出的數(shù)據(jù)進行鎖存[13]。由lock信號鎖存轉(zhuǎn)換好的數(shù)據(jù)OE=1,數(shù)據(jù)輸出有效由lock信號鎖存轉(zhuǎn)換好的數(shù)據(jù)OE=1,數(shù)據(jù)輸出有效采樣周期等待中EOC=1,轉(zhuǎn)換結(jié)束EOC=0,正在轉(zhuǎn)換啟動A/D轉(zhuǎn)換對0809初始化st0st3st4st2st1圖10控制ADC0809采樣狀態(tài)圖在時序圖中START為轉(zhuǎn)換啟動信號,高電平有效;ALE為模擬信號輸入選通端口地址鎖存信號,上升沿有效;一旦START有效后,狀態(tài)信號EOC即變?yōu)榈碗娖?,表示進入轉(zhuǎn)換狀態(tài)。轉(zhuǎn)換結(jié)束后,EOC將變?yōu)楦唠娖?。此后外部控制可以使OE由低電平變?yōu)楦唠娖剑藭r0809的輸出數(shù)據(jù)總線D[7..0]從原來的高阻態(tài)變?yōu)檩敵鰯?shù)據(jù)有效。圖11ADC0809采樣狀態(tài)機工作時序圖libraryieee;useieee.std_logic_1164.all;entityadcintisport(D:instd_logic_vector(7downto0);--來自0809轉(zhuǎn)換的8位數(shù)據(jù)CLK:instd_logic;--狀態(tài)機工作時鐘EOC:instd_logic;--轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換ALE:outstd_logic;--8個模擬信號通道地址鎖存信號START:outstd_logic;--轉(zhuǎn)換開始信號OE:outstd_logic;-數(shù)據(jù)輸出三態(tài)控制信號ADDA:outstd_logic;--信號通道最低位控制信號LOCK0:outstd_logic;--觀察數(shù)據(jù)鎖存時鐘Q:outstd_logic_vector(7downto0)--8位數(shù)據(jù)輸出);endadcint;architecturebehavofadcintistypestateis(st0,st1,st2,st3,st4);--定義各狀態(tài)子類型signalcurrent_state,next_state:state;signalregl:std_logic_vector(7downto0);signallock:std_logic;--轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時鐘信號beginadda<='1';--ADDA<='0',模擬信號進入通道INO;當(dāng)ADDA<='1',則進入通道IN1q<=regl;lock0<=lock;COM:process(current_state,eoc)--規(guī)定各狀態(tài)轉(zhuǎn)換方式begincasecurrent_stateiswhenST0=>ALE<='0';START<='0';LOCK<='0';OE<='0';next_state<=st1;--0809初始化whenST1=>ALE<='1';START<='1';LOCK<='0';OE<='0';next_state<=st2;--啟動采樣whenST2=>ALE<='0';START<='0';LOCK<='0';OE<='0';if(EOC='1')thennext_state<=st3;--EOC=1表明轉(zhuǎn)換結(jié)束elsenext_state<=st2;endif;--轉(zhuǎn)換未結(jié)束,繼續(xù)等待whenST3=>ALE<='0';START<='0';LOCK<='0';OE<='1';next_state<=st4;--開啟OE,輸出轉(zhuǎn)換好的數(shù)據(jù)whenST4=>ALE<='0';START<='0';LOCK<='1';OE<='1';next_state<=st0;whenothers=>next_state<=st0;endcase;endprocessCOM;REG:process(CLK)beginIF(CLK'eventandCLK='1')thencurrent_state<=next_state;endif;endprocessREG;--由信號current_state將當(dāng)前狀態(tài)值帶出此進程:regLATCH1:process(lock)--此進程中在LOCK的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入beginif(lock'eventandlock='1')thenregl<=d;endif;endprocessLATCH1;endbehav;(2)地址計數(shù)器模塊圖12RAM地址計數(shù)器模塊圖地址計數(shù)器模塊有兩個時鐘信號輸入LOCK0和CLK,LOCK0為寫時鐘信號,CLK為讀時鐘信號。WE為讀寫控制端,CLR為復(fù)位端。當(dāng)WE為高電平的時候,CLKOUT=LOCK0,地址計數(shù)端DOUT[8..0]在時鐘上升沿開始計數(shù),對SRAM進行尋址,計滿后DOUT[8..0]同時清零,INTERRUPT置位向單片機申請中斷請求。單片機響應(yīng)中斷,控制CNT10B的WE為低電平,此時CLKOUT=CLK,CLK由單片機提供。地址計數(shù)端DOUT[8..0]又開始計數(shù),對SRAM進行尋址,此時為單片機讀取數(shù)據(jù)提供地址。Libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCNT10Bisport(LOCK0,CLR,CLK,WE:instd_logic;CLKOUT:outstd_logic;DOUT:outstd_logic_vector(8downto0);INTERRUPT:outstd_logic);ENDCNT10B;architecturebehavofCNT10BissignalDOUT0:std_logic_vector(8downto0);signalfull:std_logic;beginDOUT<=DOUT0;INTERRUPT<=full;process(CLK,CLR,WE)beginifCLR='0'thenDOUT0<="000000000";elseifWE='1'thenif(LOCK0'eventandLOCK0='1')thenifDOUT0="111111111"thenDOUT0<="000000000";full<='1';elseDOUT0<=DOUT0+1;full<='0';endif;endif;CLKOUT<=LOCK0;elseifDOUT0="111111111"thenDOUT0<="000000000";elseDOUT0<=DOUT0+1;endif;CLKOUT<=CLK;endif;endif;endprocess;DOUT<=DOUT0;endbehav;圖13RAM地址計數(shù)器寫工作時序仿真圖由圖可知WE為讀寫時鐘信號選擇端。當(dāng)WE為高電平,CLKOUT=LOCK0。當(dāng)WE為低電平,CLKOUT=CLK。在兩種時鐘信號下,地址計數(shù)器都進行計數(shù),給數(shù)據(jù)的寫入或者讀出提供地址信號。圖14RAM地址計數(shù)器讀工作時序仿真圖當(dāng)?shù)刂酚嫈?shù)模塊接讀時鐘信號時,此時提供讀出數(shù)據(jù)的地址,需從寫地址開始。(3)存儲器模塊存儲器模塊是在QuartusII環(huán)境下定制的RAM,此RAM的數(shù)據(jù)寬度選擇為8位,地址寬度為9位,有一個地址鎖存時鐘clock和一個寫使能控制線wren。Wren為高電平時SRAM進入寫狀態(tài),在寫時鐘控制下將數(shù)據(jù)由data[7..0]寫入。當(dāng)wren為低電平時SRAM進入讀狀態(tài),在讀時鐘控制下將數(shù)據(jù)由q[7..0]讀出[14]。存儲器模塊如圖17所示。圖15RAM模塊圖RAM在LOCK0時鐘上升沿時將數(shù)據(jù)寫入,地址計數(shù)器將LOCK0作為寫時鐘信號,在其上升沿時地址自加一,RAM寫時序如圖18所示。圖16RAM寫時序圖當(dāng)寫入數(shù)據(jù)的地址加滿時,產(chǎn)生一個溢出信號,向單片機申請中斷信號。圖17RAM寫時序中斷信號圖RAM進入讀狀態(tài)時,此時由單片機提供讀時鐘信號,RAM寫時序如圖19所示。圖18RAM讀時序圖LIBRARYieee;USEieee.std_logic_1164.all;LIBRARYaltera_mf;USEaltera_mf.altera_mf_components.all;ENTITYRAMIS PORT (address :INSTD_LOGIC_VECTOR(8DOWNTO0); clock :INSTD_LOGIC; data :INSTD_LOGIC_VECTOR(7DOWNTO0); wren :INSTD_LOGIC; q :OUTSTD_LOGIC_VECTOR(7DOWNTO0) );ENDRAM;ARCHITECTURESYNOFRAMIS SIGNALsub_wire0 :STD_LOGIC_VECTOR(7DOWNTO0); COMPONENTaltsyncram GENERIC( intended_device_family :STRING; width_a :NATURAL; widthad_a :NATURAL; numwords_a :NATURAL; operation_mode :STRING; outdata_reg_a :STRING; outdata_aclr_a :STRING; width_byteena_a :NATURAL; clock_enable_input_a :STRING; clock_enable_output_a :STRING; power_up_uninitialized :STRING; lpm_hint :STRING; lpm_type :STRING ); PORT( wren_a :INSTD_LOGIC; clock0 :INSTD_LOGIC; address_a :INSTD_LOGIC_VECTOR(8DOWNTO0); q_a :OUTSTD_LOGIC_VECTOR(7DOWNTO0); data_a :INSTD_LOGIC_VECTOR(7DOWNTO0) ); ENDCOMPONENT;BEGIN q<=sub_wire0(7DOWNTO0); altsyncram_component:altsyncram GENERICMAP( intended_device_family=>"CycloneII", width_a=>8, widthad_a=>9, numwords_a=>512, operation_mode=>"SINGLE_PORT", outdata_reg_a=>"CLOCK0", outdata_aclr_a=>"NONE", width_byteena_a=>1, clock_enable_input_a=>"BYPASS", clock_enable_output_a=>"BYPASS", power_up_uninitialized=>"FALSE", lpm_hint=>"ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=RAM", lpm_type=>"altsyncram" ) PORTMAP( wren_a=>wren, clock0=>clock, address_a=>address, data_a=>data, q_a=>sub_wire0 );ENDSYN;4.1.2CPLD最小控制系統(tǒng)流程圖CPLD最小控制系統(tǒng)包括ADCINT模塊,地址計數(shù)器模塊和RAM存儲器模塊。ADCINT模塊控制ADC0809啟動采集數(shù)據(jù),輸出數(shù)據(jù)鎖存時鐘信號(用于單片機讀取數(shù)據(jù)的時鐘信號)。地址計數(shù)器模塊控制RAM數(shù)據(jù)的寫入和讀出的地址計數(shù)。RAM存儲器模塊用于將ADC0809采樣的數(shù)據(jù)存儲和作為單片機的片外數(shù)據(jù)存儲器[15]。RAM存儲器的讀入和寫出狀態(tài)由WREN控制,寫入狀態(tài)下的時鐘信號由CPLD的LOCK0輸出數(shù)據(jù)鎖存信號提供,讀出狀態(tài)下的時鐘信號為狀態(tài)機的的工作時鐘信號。圖19CPLD最小控制系統(tǒng)流程圖4.2單片機控制程序部分AT89C51內(nèi)部有一個可編程的全雙工串行接口SBUF,具有UART(通用異步接受和發(fā)送器)的全部功能。串行接口的控制寄存器有兩個,串行控制寄存器SCON和能改變波特率的特殊功能寄存器PCON,其作用如下:(1)串行控制寄存器SCON,字節(jié)地址98HSCON寄存器用于設(shè)定串行口的工作方式、接收發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志。各位的含義如表:表1專用寄存器SCON各位含義表D0D1D0D1D2D3D4D5D6D7RITIRB8TB8RENSM2SM1SM1SM0、SMl一串口的方式選擇位,其編碼如表2所示。REN.允許串行接受控制位。REN=l:允許串行接受,REN=0:禁止串行接受。SM2一允許方式2和方式3進行多機通信控制位。SM2=0:單機對單機,SM2=I多機通信。TB8--發(fā)送數(shù)據(jù)第9位。RB8--接收數(shù)據(jù)第9位。TI--發(fā)送中斷標(biāo)志。RI--接收中斷標(biāo)志。表2串口的工作方式方式SM0方式SM0SM1功能說明012300110101移位寄存器方式,波特率為fosc/128位UART,波特率可變(T=溢出率/n)8位UART,波特率為fosc/64或fosc/329位UART,波特率可變(T=溢出率/n)表中fosc為晶振頻率;UART為通用異步接受和發(fā)送器。(2)特殊功能寄存器PCON,字節(jié)地址87HPCON是電源控制寄存器,其中SMOD為串行接口波特率系數(shù)選擇位。當(dāng)SMOD=1時波特率加倍。(波特率:串行接口每秒發(fā)送或接收的位數(shù))串行口工作方式1將串行口配置為波特率可變的通用異步接收發(fā)送UART方式。本方式的數(shù)據(jù)格式為10位:一個起始位(0),8個數(shù)據(jù)位(LSB在前),一個停止位(1)。接收時,停止位進入SCON特殊功能寄存器的RB8位。工作方式1時的波特率是可變的。在51型中方式1的波特率取決于定時器1溢出率。波特率確定采用定時器1的方式2,即自動重裝的8位定時器。圖20單片機最小控制系統(tǒng)流程圖#include<reg952.h>#include<stdio.h>unsignedchargetdata;unsignedinttemp;inti;intj;sbitP11=P1^1;sbitP10=P1^0;//串口初始化voidcorn_initialize(void){TMOD=0x20;//設(shè)置波特率為9600的定時器1方式和初始值TLl=0xf3;THl=0xf3;SCON=0xd8;//設(shè)置串口工作方式3PCON=0x80;IT0=1;TRl=l;EA=1;EX0=1;)main(){getdata=P0;temp=getdata;corn_initialize();while(1){ SBUF=ternp;}voidint0_interrupt(void)interrupt0{ P10=0; ES=1;}voidserial_interrupt(void)interrupt4{ TI=0; i++;P11=~P11;if(i==512){ ES=0; P10=0; }}單片機的P0口用來讀取存儲器的數(shù)據(jù),P1.0接地址計數(shù)器的WE讀寫時鐘信號選擇端和存儲器的WREN讀寫使能端,當(dāng)計數(shù)器在寫時鐘狀態(tài)計滿時,申請中斷,單片機響應(yīng)外部中斷,并在中斷服務(wù)子程序中將P1.0置零,即使存儲器進入讀出狀態(tài),同時開串口中斷,準(zhǔn)備發(fā)送數(shù)據(jù)到PC機中,讀出時鐘由單片機的P1.1提供。當(dāng)讀地址計到512時,關(guān)閉串口中斷,同時使存儲器進入寫入狀態(tài)。這里存在中斷嵌套問題,必須先執(zhí)行由
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國食品級磷酸鹽行業(yè)投資規(guī)劃及發(fā)展前景研究報告
- 2025-2030年中國雕塑工藝品行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究報告
- 2025-2030年中國金屬酸洗行業(yè)發(fā)展趨勢及前景調(diào)研分析報告
- 2025-2030年中國辣椒紅色素市場運行態(tài)勢及投資戰(zhàn)略研究報告
- 2025年河北建筑安全員考試題庫
- 2025-2030年中國花露水運行趨勢及發(fā)展前景分析報告
- 2025-2030年中國磷酸二氫鉀行業(yè)運營狀況及發(fā)展趨勢分析報告
- 2025-2030年中國男士香水行業(yè)運營狀況及投資策略研究報告
- 唐山職業(yè)技術(shù)學(xué)院《國際人才管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025人教版一年級下冊數(shù)學(xué)教學(xué)進度表
- 休學(xué)復(fù)學(xué)申請書
- 2025年四川司法警官職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 新建污水處理廠工程EPC總承包投標(biāo)方案(技術(shù)標(biāo))
- 山東省德州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 本人報廢車輛委托書
- 雙減政策與五項管理解讀
- 2025年道德與法治小學(xué)六年級下冊教學(xué)計劃(含進度表)
- 過橋資金操作流程
- 貨物學(xué) 課件1.2貨物的特性
- 《略陽名勝古跡》課件
評論
0/150
提交評論