版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 模擬信號(hào)處理</b></p><p><b> 一、實(shí)驗(yàn)題目2</b></p><p><b> 二、實(shí)驗(yàn)?zāi)康?</b></p><p><b> 三、設(shè)計(jì)內(nèi)容2</b></p><p><b> 四、
2、實(shí)驗(yàn)原理2</b></p><p> 4.1 ADC0804芯片介紹2</p><p> 4.1.1 ADC0804工作過(guò)程4</p><p> 4.1.2 ADC0804 轉(zhuǎn)換器的工作時(shí)序圖及轉(zhuǎn)換步驟6</p><p> 4.1.3 ADC0804的轉(zhuǎn)換精度7</p><p>
3、4.1.4 AD轉(zhuǎn)換的轉(zhuǎn)換公式7</p><p> 4.2 矩陣鍵盤(pán)原理8</p><p> 4.3 報(bào)警電路原理9</p><p><b> 五、實(shí)驗(yàn)思路10</b></p><p> 5.1 ADC0804模塊10</p><p> 5.2 鍵盤(pán)模塊11</p&g
4、t;<p> 六、實(shí)驗(yàn)流程圖13</p><p> 6.1 AD轉(zhuǎn)換過(guò)程13</p><p> 6.2 鍵盤(pán)實(shí)現(xiàn)過(guò)程13</p><p> 七、實(shí)驗(yàn)收獲及心得體會(huì)14</p><p><b> 八、附錄15</b></p><p><b> 一、實(shí)驗(yàn)題
5、目</b></p><p><b> 模擬信號(hào)處理</b></p><p><b> 二、實(shí)驗(yàn)?zāi)康?lt;/b></p><p> 1、學(xué)習(xí)Verilog HDL的設(shè)計(jì)技巧</p><p> 2、學(xué)習(xí)ADC0804模塊工作原理</p><p> 3、掌握ADC
6、0804控制邏輯設(shè)計(jì)技術(shù)</p><p><b> 三、設(shè)計(jì)內(nèi)容</b></p><p> 學(xué)習(xí)ADC0804模塊的工作原理,利用ADC0804對(duì)外部輸入的模擬信號(hào)進(jìn)行采用獲取當(dāng)前電壓值,在數(shù)碼管上顯示。</p><p><b> 四、實(shí)驗(yàn)原理</b></p><p> 4.1 ADC080
7、4芯片介紹 </p><p><b> 1功能:</b></p><p> A/D轉(zhuǎn)換器就是模擬/數(shù)字轉(zhuǎn)換器(ADC),是將輸入的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。信號(hào)輸入端可以是傳感器或轉(zhuǎn)換器的輸出,而ADC的數(shù)字信號(hào)也可能提供給微處理器,以便更廣泛的應(yīng)用。</p><p> 2 ADC0804的規(guī)格及引腳圖:</p><p
8、> 8位CMOS依次逼近型的A/D轉(zhuǎn)換器。</p><p><b> 三態(tài)鎖定輸出</b></p><p> 存取時(shí)間:135us</p><p><b> 分辨率:8位</b></p><p> 轉(zhuǎn)換時(shí)間:100us</p><p> 總誤差:正負(fù)1LSB
9、</p><p> 工作溫度:ADC0804LCN—0_70度</p><p> 引腳圖及說(shuō)明圖如圖4.1.1所示:</p><p> 圖4.1.1 ADC0804的引腳圖</p><p> /CS:芯片選擇信號(hào)。</p><p> /RD:外部讀取轉(zhuǎn)換結(jié)果的控制輸出信號(hào)。/RD為高電平,8個(gè)數(shù)字輸出口處理高
10、阻抗,/RD為低電平時(shí)數(shù)字?jǐn)?shù)據(jù)才會(huì)輸出。</p><p> /WR:用來(lái)啟動(dòng)轉(zhuǎn)換的控制輸入,相當(dāng)于ADC轉(zhuǎn)換的開(kāi)始(CS=0時(shí)),/WR由高電平變?yōu)榈碗娖剑D(zhuǎn)換器被清除,/WR回到高電平時(shí),轉(zhuǎn)換正式開(kāi)始。</p><p> CLK_IN和CLK_R:時(shí)鐘輸入或接振蕩元件(R.C),頻率限制在100KHZ~1460KHZ,如果使用RC電路,振蕩頻率為1/(1.1RC)。</p>
11、;<p> /INTR:中斷請(qǐng)求信號(hào)輸出,低電平動(dòng)作。INTR 是轉(zhuǎn)換結(jié)束信號(hào)輸出端,輸出跳轉(zhuǎn)為低電平表示本次轉(zhuǎn)換已經(jīng)完成,可作為微處理器的中斷或查詢信號(hào)。如果將/CS 和/WR 端與/INTR 端相連,則ADC0804 就處于自動(dòng)循環(huán)轉(zhuǎn)換狀態(tài)。</p><p> VIN(+)和VIN(-):差動(dòng)模擬電壓輸入,輸入單端正電壓時(shí),VIN(-)接地。差動(dòng)輸入時(shí)直接接VIN(+) VIN(-)。&l
12、t;/p><p> AGND:模擬信號(hào)接地。</p><p> DGND:數(shù)字信號(hào)接地。</p><p> VREF/2:輔助參考電壓。</p><p> DB0~DB7:8位的數(shù)字輸出。</p><p> VCC:電源供應(yīng)以及作為電路的參考電壓。</p><p> 引腳功能及應(yīng)用特性如
13、下: /CS 、/RD 、/WR (引腳1、2、3):是數(shù)字控制輸入端,滿足標(biāo)準(zhǔn)TTL 邏輯電平。其中/CS 和/WR用來(lái)控制A/D 轉(zhuǎn)換的啟動(dòng)信號(hào)。/CS 、/RD 用來(lái)讀A/D 轉(zhuǎn)換的結(jié)果,當(dāng)它們同時(shí)為低電平時(shí),輸出數(shù)據(jù)鎖存器DB0~DB7 各端上出現(xiàn)8位并行二進(jìn)制數(shù)碼。</p><p> CLKIN(引腳4)和CLKR(引腳19):ADC0801~0805片內(nèi)有時(shí)鐘電路,只要在外部“CLKI”和“CLKR
14、”兩端外接一對(duì)電阻電容即可產(chǎn)生A/D轉(zhuǎn)換所要求的時(shí)鐘,其振蕩頻率為fclk≈1/1.1RC。其典型應(yīng)用參數(shù)為:R=10kΩ,C=150pF,fclk≈640kHz轉(zhuǎn)換時(shí)間為100us。若采用外部時(shí)鐘,則外部fclk可從CLKIN端送入,此時(shí)不接R、C允許的時(shí)鐘頻率范圍為100kHz~1460kHz。</p><p> CS=0時(shí),允許進(jìn)行A/D轉(zhuǎn)換。WR由低跳高時(shí)A/D轉(zhuǎn)換開(kāi)始,8位逐次比較需8×8=
15、64個(gè)時(shí)鐘周期,再加上控制邏輯操作,一次轉(zhuǎn)換需要66~73個(gè)時(shí)鐘周期。在典型應(yīng)用fclk=640kHz時(shí),轉(zhuǎn)換時(shí)間約為103us~114us。當(dāng)fclk 超過(guò)640kHz,轉(zhuǎn)換精度下降,超過(guò)極限值1460kHz 時(shí)便不能正常工作。本次實(shí)驗(yàn)中,選擇clk=40MHz,經(jīng)過(guò)200分頻之后,使時(shí)鐘頻率為fclk=200kHz。</p><p> 實(shí)驗(yàn)箱上ADC0804的原理圖如圖4.1.2:</p>&
16、lt;p> 圖4.1.2 ADC0804原理圖</p><p> 由原理圖上可以看出ADC0804部分的各種參數(shù)設(shè)置。</p><p> 4.1.1 ADC0804工作過(guò)程</p><p> 控制ADC0804進(jìn)行模擬/數(shù)字的轉(zhuǎn)換時(shí)使用的信號(hào)為CS、WD、RD三個(gè)。DB0~DB7代表轉(zhuǎn)換后的數(shù)字資料。可以分為如下步驟:</p><
17、p> (1)、置CS=WR=0,RD=1,要求ADC0804開(kāi)始進(jìn)行模擬/數(shù)字轉(zhuǎn)換;</p><p> (2)、置CS=WR=RD=1,此時(shí)ADC0804進(jìn)行轉(zhuǎn)換動(dòng)作,轉(zhuǎn)換時(shí)間>100us,INIT下降沿表示完成;</p><p> (3)、置CS=RD=0,WD=1,向ADC0804請(qǐng)求讀取轉(zhuǎn)換后數(shù)據(jù);</p><p> (4)、讀取DB0~D
18、B7的數(shù)據(jù),置CS=WR=RD=1。</p><p> 狀態(tài)轉(zhuǎn)換圖分析如下:</p><p> 我們把state作為狀態(tài)標(biāo)志,共有4個(gè)值:00,01,10,11.當(dāng)state=00時(shí),片選信號(hào)CS=寫(xiě)信號(hào)WR=0,而讀信號(hào)RD=1,此時(shí)執(zhí)行寫(xiě)操作,完成后延時(shí)一段時(shí)間,轉(zhuǎn)入state=01狀態(tài)。</p><p> 進(jìn)入state=01狀態(tài)后,CS=WR=RD=1
19、,即0804不工作,這樣把寫(xiě)入的數(shù)值存住,當(dāng)存完畢,發(fā)出INT=0信號(hào),轉(zhuǎn)入state=10狀態(tài),若未存住,則發(fā)出INT=1,繼續(xù)第二步。</p><p> 進(jìn)入state=10狀態(tài),CS=RD=0,WR=1,進(jìn)行讀操作,完成后延時(shí)一段時(shí)間,轉(zhuǎn)入state=11狀態(tài)。</p><p> 進(jìn)入最后一個(gè)狀態(tài)后,依然CS=RD=WR=1,這樣實(shí)現(xiàn)AD804的復(fù)位工作,再自動(dòng)轉(zhuǎn)回state=0
20、0狀態(tài)。</p><p> 設(shè)s0、s1、s2、s3對(duì)應(yīng)上面所說(shuō)的四種狀態(tài),轉(zhuǎn)換圖如下:</p><p> 4.1.2 ADC0804 轉(zhuǎn)換器的工作時(shí)序圖及轉(zhuǎn)換步驟</p><p> ADC0804的工作時(shí)序圖(Timing Diagrams)如圖4.1.2所示:</p><p> 圖4.1.2:ADC0804手冊(cè)給出的ADC轉(zhuǎn)換時(shí)
21、序圖</p><p> 圖4.1.2給出的其實(shí)就是使ADC0804正確工作的軟件編程模型。由圖可見(jiàn),實(shí)現(xiàn)一次ADC轉(zhuǎn)換主要包含下面三個(gè)步驟:</p><p> 1.啟動(dòng)轉(zhuǎn)換:由圖4.1.2中的上部“FIGURE 10A”可知,在/CS信號(hào)為低電平的情況下,將/WR引腳先由高電平變成低電平,經(jīng)過(guò)至少tW(WR)I延時(shí)后,再將/WR引腳拉成高電平,即啟動(dòng)了一次AD轉(zhuǎn)換。</p>
22、<p> 注:手冊(cè)中給出了要正常啟動(dòng)AD轉(zhuǎn)換/WR的低電平保持時(shí)間tW(WR)I的最小值為100ns,即/WR拉低后延時(shí)大于100ns即可,不用太精確,只要估計(jì)插入的延時(shí)大于100ns即可。</p><p> 2.延時(shí)等待轉(zhuǎn)換結(jié)束:依然由圖4.1.2中的上部“FIGURE 10A”可知,由拉低/WR信號(hào)啟動(dòng)AD采樣后,經(jīng)過(guò)1到8個(gè)Tclk+INTERNAL Tc延時(shí)后,AD轉(zhuǎn)換結(jié)束,因此,啟動(dòng)轉(zhuǎn)
23、換后必須加入一個(gè)延時(shí)以等待AD采樣結(jié)束。</p><p> 注:手冊(cè)中給出了內(nèi)部轉(zhuǎn)換時(shí)間“INTERNAL Tc”的時(shí)間范圍為62~73個(gè)時(shí)鐘周期,因此延時(shí)等待時(shí)間應(yīng)該至少為8+73=81個(gè)時(shí)鐘周期。本次實(shí)驗(yàn)采用外部時(shí)鐘,外部fclk可從CLKIN端送入,此時(shí)不接R、C允許的時(shí)鐘頻率范圍為100kHz~1460kHz。本實(shí)驗(yàn)時(shí)鐘頻率約為fclk=200kHz,因此時(shí)鐘周期約為T(mén)clk=1/fclk=5us。所以
24、該步驟至少應(yīng)延時(shí)81*Tclk≈405us。不用太精確,只要估計(jì)插入的延時(shí)大于405us即可。</p><p> 3.讀取轉(zhuǎn)換結(jié)果:由圖4.1.2的下部“FIGURE 10B”可知,采樣轉(zhuǎn)換完畢后,再/CS信號(hào)為低的前提下,將/RD腳由高電平拉成低電平后,經(jīng)過(guò)tACC的延時(shí)即可從DB腳讀出有效的采樣結(jié)果。</p><p> 注:手冊(cè)中給出了tACC的典型值和最大值分別為135ns和20
25、0ns,因此將/RD引腳拉低后,等待大于200ns后即可從DB0~DB7讀出有效的轉(zhuǎn)換結(jié)果。不用太精確,只要估計(jì)插入的延時(shí)大于200ns即可。</p><p> 4.1.3 ADC0804的轉(zhuǎn)換精度</p><p> 關(guān)于轉(zhuǎn)換器的轉(zhuǎn)換精度問(wèn)題,用分辨率和轉(zhuǎn)換誤差來(lái)描述其轉(zhuǎn)換精度。 </p><p> 所謂分辨率,就是電路所能分辨的最小輸出電壓U(L
26、SB)與滿刻度輸出電壓U(omax)之比: </p><p> 分辨率=U(LSB)/U(omax)=1/(2^n-1) </p><p> 轉(zhuǎn)換誤差:指輸入端加滿刻度的數(shù)字量時(shí),ADC輸出電壓的理論值與實(shí)際值之差。轉(zhuǎn)換誤差一般<0.5U(LSB) </p><p> 最小分辨電壓:U(LSB)=分辨率*U(omax)=U(oma
27、x)/(2^n-1)。由于ADC0804是個(gè)8位CMOS依次逼近型的A/D轉(zhuǎn)換器,而且原理上來(lái)說(shuō)U(omax)=5V(為參考電壓),但是經(jīng)過(guò)實(shí)際測(cè)量芯片的9號(hào)管腳(Vref/2),其電壓值為2.96V,因此,根據(jù)實(shí)際情況,將參考電壓值由5V修改為Vref=5.92V。因此最小分辨電壓為5.92V/255=0.023V。</p><p> 4.1.4 AD轉(zhuǎn)換的轉(zhuǎn)換公式 </p><p>
28、; 對(duì)采樣值進(jìn)行運(yùn)算變換,換算出實(shí)際的滑動(dòng)變阻器輸入電壓值。</p><p> 對(duì)于任何一個(gè)A/D采樣器而言,其轉(zhuǎn)換公式如下:</p><p><b> 其中:</b></p><p> :輸入ADC的模擬電壓值。</p><p> ?。篈DC轉(zhuǎn)換后的二進(jìn)制值。本試驗(yàn)的ADC0804為八位。</p>
29、<p> ?。篈DC能夠表示的刻度總數(shù)。ADC0804為八位ADC,因此</p><p> ?。篈DC參考電壓值,本試驗(yàn)ADC0804經(jīng)過(guò)測(cè)量后所得=5.92V。因此,對(duì)于本試驗(yàn),轉(zhuǎn)換公式為:</p><p> 4.2 矩陣鍵盤(pán)原理</p><p> 在鍵盤(pán)中按鍵數(shù)量較多時(shí),為了減少I(mǎi)/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤(pán)中,每條水平線
30、和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤(pán)多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤(pán),而直接用端口線則只能多出一鍵(8鍵)。由此可見(jiàn),在需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤(pán)是合理的。矩陣式結(jié)構(gòu)的鍵盤(pán)顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些,列線通過(guò)電阻接正電源,x[3..0]為列掃描輸出,y[3..0]為行掃描輸入。這樣,
31、當(dāng)按鍵沒(méi)有按下時(shí),所有的輸出端都是高電平,代表無(wú)鍵按下。列線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低,這樣,通過(guò)讀入輸入線的狀態(tài)就可得知是否有鍵按下了。本次實(shí)驗(yàn)中,clk信號(hào)采用與AD轉(zhuǎn)換所用的時(shí)鐘信號(hào)相同,均為200kHz。</p><p> 行列式鍵盤(pán)的電路原理如圖4.2.1所示。(為了說(shuō)明問(wèn)題以4*4為例)</p><p> 圖4.2.1 行列式鍵盤(pán)的電路原理如圖</
32、p><p> 設(shè)置掃描信號(hào)為x[3]~x[0],行線按鍵輸入信號(hào)y[3]~y[0]與鍵值關(guān)系如表4-2所示。</p><p> 表4-1 掃描信號(hào)和行線按鍵輸入信號(hào)與按鍵之間的關(guān)系表</p><p> 4.3 報(bào)警電路原理</p><p> 由于ADC0804芯片有電壓限制,為了避免在進(jìn)行AD轉(zhuǎn)換的過(guò)程中,由于操作不當(dāng)引起芯片燒毀這種
33、情況的發(fā)生,本次實(shí)驗(yàn)增加了一個(gè)報(bào)警電路,當(dāng)電壓大于所設(shè)的閾值時(shí),蜂鳴器報(bào)警。報(bào)警原理是:給PAin引腳一個(gè)方波,則蜂鳴器響,否則,蜂鳴器不報(bào)警。當(dāng)設(shè)置撥碼開(kāi)關(guān)為高電平時(shí)(本次實(shí)驗(yàn)設(shè)置的是第九個(gè)撥碼開(kāi)關(guān)),關(guān)閉蜂鳴器報(bào)警。具體實(shí)現(xiàn)可以看附錄代碼。</p><p> 報(bào)警電路的原理圖如圖4.3所示:</p><p><b> 圖4.3 報(bào)警電路</b></p&g
34、t;<p><b> 五、實(shí)驗(yàn)思路</b></p><p> 5.1 ADC0804模塊</p><p> 最初,我們想借鑒學(xué)長(zhǎng)的程序,建立查找表的方法;但是,這種方法的弊端很多:比如,大大增加了代碼量,直接導(dǎo)致程序編譯時(shí)間過(guò)久,效率低下;而且如果要換一個(gè)長(zhǎng)度范圍,則要完全新建一個(gè)查找表,而且這種方法會(huì)耗費(fèi)大量的計(jì)算。所以,思考前后,我們決定根據(jù)A
35、DC0804的轉(zhuǎn)換公式用除法和取余的方式進(jìn)行處理,即用二進(jìn)制的模擬電壓值通過(guò)數(shù)制計(jì)算轉(zhuǎn)換為十進(jìn)制數(shù),然后再用該數(shù)除以(255/5.92)(注:因?yàn)闇y(cè)得實(shí)驗(yàn)箱上ADC0804芯片9號(hào)管腳的電壓為Vref/2=2.96V,因此,參考電壓Vref=5.92V)。把各個(gè)位賦值到cntq(cntq4代表個(gè)位數(shù),cntq3代表第一位小數(shù),cntq2代表第二位小數(shù),cntq1代表第三位小數(shù),cntq的顯示是在8為數(shù)碼管的后四位)。我們還將8位數(shù)碼管的
36、前三位用來(lái)顯示ADC轉(zhuǎn)換后的8位二進(jìn)制值(DB0~DB7),將二進(jìn)制轉(zhuǎn)換為十進(jìn)制,即0~255的范圍;將各個(gè)位賦給a(a1代表百位,a2代表十位,a3代表個(gè)位)。</p><p><b> 具體實(shí)現(xiàn)如下:</b></p><p> 接著就是數(shù)碼管的顯示了。在數(shù)碼管輪換顯示的模塊當(dāng)中,最初我們只是按順序賦值于各個(gè)數(shù)碼管,但在硬件調(diào)試過(guò)程中出現(xiàn)中大量問(wèn)題,比如數(shù)碼管閃
37、爍強(qiáng)烈,和部分不能顯示和顯示亂碼問(wèn)題,后來(lái)加上了case語(yǔ)句,以cnt的變化做周期循環(huán),小數(shù)點(diǎn)直接賦值,這樣問(wèn)題就消失了。</p><p> 在AD讀寫(xiě)狀態(tài)的轉(zhuǎn)換中,要設(shè)定延時(shí),來(lái)保證指令的執(zhí)行。</p><p> 但是,用除法也有不足之處,數(shù)碼管一直在閃爍,即電壓不穩(wěn)定。因?yàn)槟M量肯定不像數(shù)字量一樣穩(wěn)定,所以可以對(duì)模擬量進(jìn)行濾波處理或者是通過(guò)多次采樣取平均來(lái)減小誤差,提高精度。本次實(shí)
38、驗(yàn)采用的就是100次采樣取平均來(lái)減少數(shù)碼管閃爍,實(shí)驗(yàn)結(jié)果證明效果很好。而且大大降低了實(shí)驗(yàn)誤差(沒(méi)取平均時(shí),誤差為0.04~0.05V,采用100次采樣取平均后,誤差縮小為0.005V)。</p><p><b> 具體實(shí)現(xiàn)過(guò)程如下:</b></p><p><b> 5.2 鍵盤(pán)模塊</b></p><p> 由于8
39、個(gè)數(shù)碼管中后4個(gè)用于顯示電壓值,前3個(gè)用于顯示ADC轉(zhuǎn)換后的8位二進(jìn)制值;所以只剩下第四個(gè)數(shù)碼管。我們的思路是:</p><p> 用第四個(gè)數(shù)碼管顯示鍵盤(pán)的鍵值(只需顯示0~9即可,A~F的鍵值用不到,可以不顯示),一方面可以測(cè)試一下鍵盤(pán)電路是否準(zhǔn)確;另一方面可以清晰的看到按鍵是否正常按下,方便后面的程序檢驗(yàn)。本次實(shí)驗(yàn)除了用到了數(shù)字鍵之外,只用到了A這個(gè)功能鍵,當(dāng)按下A鍵之后,可以設(shè)定一個(gè)三位數(shù)的閾值(0~25
40、5)每個(gè)數(shù)都在第四個(gè)數(shù)碼管上依次顯示,當(dāng)ADC轉(zhuǎn)換后的8位二進(jìn)制值(前三個(gè)數(shù)碼管上顯示;同時(shí)前8個(gè)LED燈對(duì)應(yīng)這8個(gè)二進(jìn)制數(shù),亮表示對(duì)應(yīng)位為1,不亮表示對(duì)應(yīng)位為0)大于設(shè)定的三位數(shù)的閾值之后,蜂鳴器報(bào)警。A設(shè)置鍵可以多次設(shè)置。</p><p> 由于只有一個(gè)數(shù)碼管可用,所以必須要在A鍵按下之后開(kāi)始存儲(chǔ)接下來(lái)按下的數(shù)字鍵,并且按照順序存儲(chǔ)。我們通過(guò)設(shè)置3個(gè)4位的寄存器threshold來(lái)存儲(chǔ)鍵值。同時(shí)設(shè)置cnt2
41、來(lái)判斷按鍵次數(shù)(鍵盤(pán)程序必須有消抖功能),每按下一個(gè)鍵cnt2+1;通過(guò)判斷cnt2的值來(lái)判斷按下數(shù)字鍵的順序;同時(shí),由于是在A鍵按下之后才開(kāi)始存儲(chǔ)數(shù)字鍵的鍵值,因此當(dāng)判斷是A鍵按下之后,cnt2清零。</p><p> 因?yàn)樵O(shè)定的是一個(gè)三位數(shù),因此還需要設(shè)定一個(gè)寄存器hh用來(lái)限制存儲(chǔ)的數(shù)值個(gè)數(shù),當(dāng)A鍵按下之后,hh=1,然后進(jìn)行存儲(chǔ)后面按下的三個(gè)數(shù)字鍵的鍵值,而當(dāng)按下三個(gè)數(shù)字鍵之后,即cnt2>3時(shí),h
42、h=0;不再對(duì)后面的數(shù)字鍵值進(jìn)行存儲(chǔ)。</p><p><b> 下面是具體實(shí)現(xiàn):</b></p><p><b> 六、實(shí)驗(yàn)流程圖</b></p><p> 6.1 AD轉(zhuǎn)換過(guò)程</p><p> 6.2 鍵盤(pán)實(shí)現(xiàn)過(guò)程</p><p> 七、實(shí)驗(yàn)收獲及心得體會(huì)&l
43、t;/p><p> 本次課程設(shè)計(jì)收獲良多,由于很多次實(shí)驗(yàn)都有接觸過(guò)AD轉(zhuǎn)換,所以這個(gè)題目對(duì)我們來(lái)說(shuō)并不陌生。雖然不陌生,但是要系統(tǒng)的實(shí)現(xiàn)一個(gè)功能的工作量也是很大的;而且本次的課程設(shè)計(jì)時(shí)間是從周二開(kāi)始的,時(shí)間相對(duì)來(lái)說(shuō)比較緊,所以我們充分利用了晚上的時(shí)間,每天晚上都到實(shí)驗(yàn)室去調(diào)代碼。</p><p> 回顧這一周的課程設(shè)計(jì),我們選定題目后,就上網(wǎng)去搜集相關(guān)的資料,分析ADC0804的工作原理,
44、然后針對(duì)ADC0804芯片的特點(diǎn)做相應(yīng)的設(shè)計(jì)。只要了解了A/D轉(zhuǎn)換的四個(gè)狀態(tài),A/D轉(zhuǎn)換部分的問(wèn)題也就迎刃而解了;但是,關(guān)鍵問(wèn)題是只去一次數(shù)值,用除法來(lái)做,無(wú)論怎么調(diào)節(jié)頻率,在數(shù)碼管上顯示的數(shù)值都會(huì)閃的很厲害,影響對(duì)對(duì)應(yīng)電壓的讀取;而且只取一個(gè)值的話,實(shí)驗(yàn)誤差必然會(huì)比較大。針對(duì)這些問(wèn)題,我們采取了采樣100次,然后取平均,將處理過(guò)的數(shù)據(jù)作為A/D轉(zhuǎn)換的數(shù)據(jù)輸出,這樣閃爍問(wèn)題也就解決了,而且取平均也順帶解決了實(shí)驗(yàn)誤差的問(wèn)題,可謂一舉兩得。
45、</p><p> 完成A/D轉(zhuǎn)換的主題部分之后,我們就想在此基礎(chǔ)上添加一些附加功能:采用鍵盤(pán)程序和蜂鳴器報(bào)警電路??紤]到滑動(dòng)變阻器阻值的改變會(huì)導(dǎo)致輸出電壓的改變,為了避免因調(diào)節(jié)滑動(dòng)變阻器導(dǎo)致電壓過(guò)高燒毀芯片這種情況的發(fā)生,我們決定通過(guò)鍵盤(pán)設(shè)定一個(gè)閾值,當(dāng)輸出電壓高于這個(gè)閾值之后,蜂鳴器報(bào)警。由于之前有做過(guò)鍵盤(pán)程序的實(shí)驗(yàn),因此,鍵盤(pán)部分就節(jié)省了不少時(shí)間;但是設(shè)定閾值部分因?yàn)橐鎯?chǔ)設(shè)定的數(shù)值的順序,實(shí)現(xiàn)起來(lái)相對(duì)麻
46、煩了一點(diǎn);所幸的是,在同學(xué)的幫助下,我們終于調(diào)試成功了。</p><p> 總體來(lái)講,本次實(shí)驗(yàn)由于是兩個(gè)人一組,兩個(gè)人的智慧肯定大于一個(gè)人的;所以,當(dāng)我們遇到什么難題的時(shí)候,經(jīng)過(guò)討論、總結(jié),最終我們都把這些困難一一解決了。這應(yīng)該算是團(tuán)隊(duì)合作的精髓所在吧。這一周基本上都在實(shí)驗(yàn)室待者,我個(gè)人比較享受在實(shí)驗(yàn)室的時(shí)光,看大家都忙著自己的課程設(shè)計(jì),還有調(diào)試成功時(shí)候露出欣慰的笑容,再看看自己一步一步調(diào)程序到最后成功實(shí)現(xiàn)希望
47、實(shí)現(xiàn)的功能時(shí),這種感覺(jué)真的是非常奇妙。</p><p> 最后,感謝我的搭檔,正是因?yàn)槲覀儍蓚€(gè)相互合作才有最后這個(gè)成品的誕生;同時(shí)還感謝那些在實(shí)驗(yàn)室?guī)臀艺{(diào)試代碼,找出程序BUG,并給我們很多建議的同學(xué)。如果沒(méi)有他們的幫助,我們估計(jì)還得走不少?gòu)澛贰?lt;/p><p><b> 八、附錄</b></p><p><b> 程序代碼如下
48、:</b></p><p> module adc(cs,wr,rd,intr,dati,clk,scan,seg,PAin,din0,reset,y,x,out,keypress);</p><p> output cs,wr,rd; //片選、讀、寫(xiě),控制AD轉(zhuǎn)換的</p><p> output[7:0] scan,seg;
49、//位選、段選</p><p> output PAin; //接蜂鳴器的,控制發(fā)聲</p><p> output[3:0] x; //鍵盤(pán)列掃描輸出</p><p> output [3:0]out; //存儲(chǔ)鍵盤(pán)鍵值</p><p> output keypress;
50、//判斷是否有鍵按下,有鍵按下高電平輸出</p><p> input clk,intr; //時(shí)鐘(40MHz),intr為下降沿表示AD轉(zhuǎn)換完成</p><p> input[7:0] dati; //ADC0804DB7~DB0輸出作為CPLD的輸入</p><p> input din0,reset; //di
51、n0接第9個(gè)撥碼開(kāi)關(guān),控制蜂鳴器</p><p> input [3:0] y; //鍵盤(pán)行掃描輸入</p><p> reg[7:0]sm=8'b11111111; //8位的閾值初始化為255</p><p> reg hh; //A鍵按下,hh=1,開(kāi)始控制存儲(chǔ)按下的數(shù)字鍵鍵值</p>
52、;<p> reg[3:0] threshold[2:0]; //用于存儲(chǔ)A鍵按下之后按的三個(gè)數(shù)字鍵的鍵值</p><p> reg[2:0] cnt2; //用于判斷按下數(shù)字鍵的順序</p><p> reg keypress; //判斷按鍵是否按下,按鍵輸出上升沿</p><p> reg
53、[4:0] count; //消抖累加到30,合約10ms左右</p><p> reg[3:0] x;</p><p> reg[7:0] dato,scan; //AD轉(zhuǎn)換的輸出dato</p><p> wire[7:0] seg;</p><p> reg cs,wr,rd;</p>
54、;<p> reg clk1,clk3; //分頻</p><p> reg[7:0] fenpinclk1,fenpinclk; //用于分頻計(jì)數(shù)</p><p> reg[15:0] fenpinclk3;</p><p> reg[3:0] cntq1,cntq2,cntq3,cntq4,Dat; //用于存儲(chǔ)A
55、D轉(zhuǎn)換輸出電壓的各個(gè)位</p><p> reg[3:0] a1,a2,a3; //用于存儲(chǔ)AD轉(zhuǎn)換輸出的二進(jìn)制轉(zhuǎn)化為十進(jìn)制值各個(gè)位</p><p> reg[3:0] cnt; //cnt不同狀態(tài)選通不同的數(shù)碼管</p><p> reg[1:0] state; //AD轉(zhuǎn)換
56、的四個(gè)不同的狀態(tài)之間的變換</p><p> reg[3:0] state1,out; //鍵盤(pán)的幾個(gè)狀態(tài)</p><p><b> reg PAin;</b></p><p> reg[7:0]i=0; //i為采樣100次的計(jì)數(shù)器</p><
57、;p> reg[20:0]datismt=0; //存儲(chǔ)采樣100次的數(shù)據(jù)之和</p><p> parameter[1:0]s0=0,s1=1,s2=2,s3=3; //AD轉(zhuǎn)換的四個(gè)狀態(tài)</p><p> always @(posedge clk3) //經(jīng)過(guò)分頻后,clk3=5kHz</p><
58、p><b> begin</b></p><p> if(dato >= sm) //超過(guò)設(shè)定的閾值之后,蜂鳴器報(bào)警</p><p><b> begin</b></p><p> PAin = ~PAin; //給蜂鳴器一個(gè)方波,發(fā)聲</p><
59、;p> if(din0==1) //撥碼開(kāi)關(guān)為高電平時(shí),蜂鳴器不叫</p><p><b> PAin=0;</b></p><p><b> end</b></p><p><b> end</b></p><p> always@(pos
60、edge clk) //分頻,clk3=5kHz</p><p><b> begin</b></p><p> if(fenpinclk3==3999) //每4000次翻轉(zhuǎn),8000分頻,clk為40MHz,</p><p><b> begin </b></p
61、><p> fenpinclk3<=8'h00;</p><p> clk3=~clk3; //clk3=5kHz</p><p><b> end</b></p><p><b> else</b></p><p><b&
62、gt; begin</b></p><p> fenpinclk3<=fenpinclk3+1;</p><p><b> end</b></p><p><b> end</b></p><p> always@(posedge clk) //clk經(jīng)
63、過(guò)分頻后,變?yōu)锳D轉(zhuǎn)換所需的頻率clk1</p><p><b> begin</b></p><p> if(fenpinclk1==8'b0110_0011) //每100次翻轉(zhuǎn),200分頻,clk1=200kHz</p><p><b> begin</b></p><p>
64、 fenpinclk1<=8'h00;</p><p> clk1=~clk1; </p><p><b> end</b></p><p><b> else</b></p><p><b> begin</b></p><p>
65、; fenpinclk1<=fenpinclk1+1;</p><p><b> end</b></p><p><b> end</b></p><p> ///////////////////////////////////////////////控制ADC0804轉(zhuǎn)換//////////////////
66、/////////////////////////////</p><p> always @(posedge clk1) </p><p><b> begin</b></p><p> case(state)</p><p> s0:begin //開(kāi)始AD轉(zhuǎn)換<
67、;/p><p><b> cs<=0;</b></p><p><b> wr<=0;</b></p><p><b> rd<=1;</b></p><p> if(fenpinclk==8'b0110_0011) //s0->s1,延
68、時(shí)</p><p><b> begin</b></p><p> state<=s1;</p><p> fenpinclk<=0;</p><p><b> end</b></p><p><b> else</b></p
69、><p> fenpinclk<=fenpinclk+1;</p><p><b> end</b></p><p> s1:begin //ADC0804轉(zhuǎn)換中</p><p><b> wr<=1;</b></p><p
70、><b> cs<=1;</b></p><p><b> rd<=1;</b></p><p> if(intr==0) // intr=0表示轉(zhuǎn)換完成,進(jìn)入下一個(gè)狀態(tài)</p><p><b> begin</b></p><
71、;p> state<=s2;</p><p><b> end </b></p><p><b> els </b></p><p> begin state<=s1; end</p><p><b> end </b></p><
72、;p> s2:begin //向ADC0804請(qǐng)求轉(zhuǎn)換后的數(shù)據(jù)</p><p><b> cs<=0;</b></p><p><b> wr<=1;</b></p><p><b> rd<=0; </b></p>
73、<p> if(fenpinclk==8'b0110_0011) //s2->s3,延時(shí)</p><p><b> begin</b></p><p> state<=s3;</p><p> fenpinclk<=0; </p><p><b> end<
74、/b></p><p><b> else</b></p><p> fenpinclk<=fenpinclk+1; </p><p><b> end </b></p><p> s3:begin //讀取轉(zhuǎn)換后的數(shù)據(jù)(DB7~DB0)
75、</p><p><b> cs<=1;</b></p><p><b> wr<=1;</b></p><p><b> rd<=1;</b></p><p> if(i<100) //采樣100次,將所采的數(shù)據(jù)
76、求和 </p><p> begin //值存在datismt中</p><p> datismt=datismt+dati; </p><p><b> i=i+1;</b></p><p> state<=s0; //每取完一個(gè)數(shù)據(jù)之后,重新進(jìn)行一次&l
77、t;/p><p> end // AD轉(zhuǎn)換,故跳轉(zhuǎn)到s0</p><p><b> else</b></p><p><b> begin</b></p><p> i=0; //取滿100個(gè)數(shù)據(jù),計(jì)數(shù)器i清零</p>
78、<p> datismt=datismt/100; //對(duì)所采數(shù)據(jù)求和之后再取平均</p><p> dato=datismt; //平均值賦給dato進(jìn)行后面的操作</p><p> datismt=0; //取完平均后,存儲(chǔ)器清零</p><p> state<=s0; //重新進(jìn)行下一輪
79、的AD轉(zhuǎn)換</p><p><b> end</b></p><p><b> end</b></p><p><b> endcase</b></p><p><b> end</b></p><p> ///////
80、//////////////////////////數(shù)碼管后四位和前三位各個(gè)位的算法/////////////////////////////////</p><p> // cntq4代表個(gè)位數(shù),cntq3代表第一位小數(shù),cntq2代表第二位小數(shù),cntq1代表//第三位小數(shù)。a1代表百位,a2代表十位,a3代表個(gè)位</p><p> always@(dato)</p>
81、<p><b> begin</b></p><p> cntq4=dato/(25500/592); </p><p> cntq3=((dato%(25500/592))*10)/(25500/592);</p><p> cntq2=((((dato%(25500/592))*10)%(25500/592))*10)/
82、(25500/592); cntq1=(((((dato%(25500/592))*10)%(25500/592))*10)%(25500/592))*10/(25500/592);</p><p> a1=dato/100;</p><p> a2=(dato%100)/10;</p><p> a3=(dato%100)%10;</p>
83、<p><b> end</b></p><p> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> always @(posedge
84、 clk1)</p><p><b> begin</b></p><p> if(cnt==4'b1000) //cnt選通數(shù)碼管并顯示</p><p> begin //當(dāng)達(dá)到第9個(gè)狀態(tài)時(shí)返回第一個(gè)狀態(tài), </p><p> cnt<=4
85、'b0000; //輪流掃描8個(gè)數(shù)碼管</p><p><b> end</b></p><p><b> else</b></p><p><b> begin </b></p><p> cnt<=cnt+1'b1; <
86、/p><p><b> end </b></p><p><b> case(cnt)</b></p><p> 4'b0000: //選通第一個(gè)數(shù)碼管,顯示百位a1</p><p><b> begin</b></p>&
87、lt;p> scan<=8'b10000000;</p><p><b> Dat<=a1;</b></p><p><b> end</b></p><p> 4'b0001: //選通第二個(gè)數(shù)碼管,顯示百位a2</p><p>
88、<b> begin</b></p><p> scan<=8'b01000000;</p><p><b> Dat<=a2;</b></p><p><b> end</b></p><p> 4'b0010:
89、 //選通第三個(gè)數(shù)碼管,顯示百位a3</p><p><b> begin</b></p><p> scan<=8'b00100000;</p><p><b> Dat<=a3;</b></p><p><b> end</b></p&g
90、t;<p> 4'b0011: //選通第5個(gè)數(shù)碼管,顯示小數(shù)點(diǎn)前一位cntq4</p><p><b> begin</b></p><p> scan<=8'b00001000; </p><p> Dat<=cntq4;</p><p&g
91、t;<b> end</b></p><p> 4'b0100: //選通第5個(gè)數(shù)碼管,顯示小數(shù)點(diǎn)</p><p><b> begin</b></p><p> scan<=8'B00001000; </p><p> Dat<=
92、4'B1010; </p><p><b> end</b></p><p> 4'b0101: //選通第6個(gè)數(shù)碼管,顯示第一位小數(shù)cntq3</p><p><b> begin</b></p><p> scan<=8'B00
93、000100; </p><p> Dat<=cntq3;</p><p><b> end </b></p><p> 4'b0110: //選通第7個(gè)數(shù)碼管,顯示第二位小數(shù)cntq2</p><p><b> begin</b></p&g
94、t;<p> scan<=8'B00000010;</p><p> Dat<=cntq2;</p><p><b> end</b></p><p> 4'b0111: //選通第8個(gè)數(shù)碼管,顯示第三位小數(shù)cntq1</p><p><
95、;b> begin</b></p><p> scan<=8'B00000001; </p><p> Dat<=cntq1; </p><p><b> end</b></p><p> 4'b1000: //這個(gè)狀態(tài)和鍵盤(pán)有關(guān)<
96、/p><p><b> begin</b></p><p> scan<=8'b00010000; //鍵盤(pán)的鍵值都在第四個(gè)數(shù)碼管顯示</p><p> if((out <= 9) && (out >= 0))</p><p><b> begin</b&
97、gt;</p><p> Dat<=out; //顯示數(shù)字鍵的鍵值</p><p> if(hh==1) //代表A鍵按下去且數(shù)字鍵按下的次數(shù)少于3</p><p><b> begin</b></p><p> case(cnt2) //A鍵按下后按數(shù)字鍵的順序</p><p&g
98、t; 1:threshold[2]<=out; //存儲(chǔ)第一個(gè)數(shù)字鍵</p><p> 2:threshold[1]<=out; //存儲(chǔ)第二個(gè)數(shù)字鍵</p><p> 3:threshold[0]<=out; //存儲(chǔ)第三個(gè)數(shù)字鍵</p><p><b> endcase</b></p><p&g
99、t; if(cnt2==3) //當(dāng)按下三個(gè)數(shù)字鍵之后,</p><p> //計(jì)算出閾值,存儲(chǔ)到sm中,</p><p> begin //與當(dāng)前輸出值比較</p><p> sm=threshold[2]*100+threshold[1]*10+threshold[0];</p><p><b>
100、; end</b></p><p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><p><b> default:</b></p><p&g
101、t;<b> begin</b></p><p> scan<=8'B11111111; </p><p> Dat<=4'B0000;</p><p><b> end </b></p><p><b> endcase</b><
102、/p><p><b> end</b></p><p> ///////////////////////////////////////////////////////鍵盤(pán)部分//////////////////////////////////////////////////////</p><p> always@ (posedge clk
103、1)</p><p> if(!reset) //reset鍵連接的是第一個(gè)撥碼開(kāi)關(guān)</p><p> begin //當(dāng)reset鍵為低電平時(shí),初始化</p><p><b> state1=0;</b></p><p>&
104、lt;b> cnt2=0;</b></p><p><b> end</b></p><p> else //初始化之后,將撥碼開(kāi)關(guān)設(shè)為高電平,則程序往下</p><p> case(state1) //執(zhí)行,否則一直都在初始化,鍵盤(pán)部分就是小了</p><
105、;p> 0:begin //判斷是否所有的鍵都松開(kāi)了,是則轉(zhuǎn)向1, </p><p> x = 4'b0000; //否則循環(huán)檢測(cè)</p><p> if(y != 4'b1111) state1 = 0;</p><p><b> else </b></p><p&
106、gt;<b> begin</b></p><p> keypress = 0; </p><p> count = 0;</p><p> state1 = 1;</p><p><b> end</b></p><p><b> end</b&
107、gt;</p><p><b> 1:begin</b></p><p> x = 4'b0000; //向四列輸出低電平,掃描是否有鍵按下</p><p> if(y == 4'b1111) state1 = 1;</p><p><b> else</b><
108、/p><p><b> begin</b></p><p> keypress = 1;</p><p> count = count + 1;</p><p> if(count == 30) //掃描到有鍵按下,消抖30ms, </p><p><b> begin &
109、lt;/b></p><p> state1 = 2; //確認(rèn)有鍵按下之后轉(zhuǎn)向2,</p><p> cnt2=cnt2+1; //按鍵計(jì)數(shù)器cnt2+1</p><p> if(cnt2 > 3) //按鍵次數(shù)大于3次之后,</p><p> hh=0; //不存儲(chǔ)之后的鍵值</p>
110、;<p><b> end</b></p><p><b> else</b></p><p> state1 = 1; //如果沒(méi)鍵按下,循環(huán)掃描</p><p><b> end</b></p><p><b> end&
111、lt;/b></p><p><b> 2:begin </b></p><p> x=4'b0111; //掃描第一列,轉(zhuǎn)向3</p><p><b> state1=3;</b></p><p><b> end</b></p&
112、gt;<p><b> 3:begin</b></p><p> case(y) //用來(lái)判斷第一列是否有鍵按下</p><p> 4'b1111: //第一列沒(méi)鍵按下,轉(zhuǎn)向4,掃描第二列</p><p><b> begin</b></p>
113、<p><b> state1=4;</b></p><p><b> end </b></p><p><b> 4'b1110:</b></p><p><b> begin</b></p><p> state1=0;
114、 //0</p><p><b> out=0; </b></p><p><b> end</b></p><p><b> 4'b1101:</b></p><p><b> begin</b></p><p&g
115、t; state1=0; //4</p><p><b> out=4; </b></p><p><b> end </b></p><p><b> 4'b1011:</b></p><p><b> begin</b><
116、/p><p> state1=0; //8</p><p><b> out=8; </b></p><p><b> end </b></p><p><b> 4'b0111: </b></p><p><b> beg
117、in</b></p><p> state1=0; //C</p><p><b> out=12; </b></p><p><b> end </b></p><p><b> endcase</b></p><p><
118、;b> end</b></p><p><b> 4:begin </b></p><p> x=4'b1011; //掃描第二列 </p><p><b> state1=5;</b></p><p><b> end </b&
119、gt;</p><p><b> 5:begin</b></p><p><b> case(y)</b></p><p> 4'b1111: //第二列沒(méi)鍵按下,轉(zhuǎn)向6,掃描第三列</p><p><b> begin</b></p>
120、;<p> state1=6; </p><p><b> end</b></p><p><b> 4'b1110: </b></p><p><b> begin</b></p><p> state1=0; //1 </p>
121、<p><b> out=1; </b></p><p><b> end</b></p><p><b> 4'b1101: </b></p><p><b> begin</b></p><p> state1=0;
122、 //5</p><p><b> out=5; </b></p><p><b> end</b></p><p><b> 4'b1011:</b></p><p><b> begin</b></p><p>
123、 state1=0; //9</p><p><b> out=9; </b></p><p><b> end </b></p><p><b> 4'b0111:</b></p><p><b> begin</b></p&
124、gt;<p> state1=0; //D</p><p> //out=13; //非數(shù)字鍵,鍵值不用顯示</p><p><b> end</b></p><p><b> endcase</b></p><p><b> end </b>&
125、lt;/p><p><b> 6:begin </b></p><p> x=4'b1101; //掃描第三列,轉(zhuǎn)向7</p><p><b> state1=7;</b></p><p><b> end </b></p><
126、p><b> 7: begin</b></p><p><b> case(y)</b></p><p> 4'b1111: //第三列沒(méi)鍵按下,轉(zhuǎn)向8,掃描第四列</p><p><b> begin</b></p><p><b>
127、; state1=8;</b></p><p><b> end </b></p><p><b> 4'b1110:</b></p><p><b> begin</b></p><p> state1=0; //2</p>&
128、lt;p><b> out=2;</b></p><p><b> end</b></p><p><b> 4'b1101:</b></p><p><b> begin</b></p><p> state1=0; //6&l
129、t;/p><p><b> out=6;</b></p><p><b> end</b></p><p><b> 4'b1011: </b></p><p><b> begin</b></p><p> stat
130、e1=0; //A鍵按下之后</p><p> hh=1; //可以開(kāi)始存儲(chǔ)之后的數(shù)字鍵鍵值</p><p> cnt2=0; //A鍵之前的按鍵數(shù)清零</p><p><b> end </b></p><p><b> 4'b0111:</b></p>
131、<p><b> begin</b></p><p> state1=0; //E</p><p> //out=14; //非數(shù)字鍵,不用顯示鍵值</p><p><b> end </b></p><p><b> endcase</b><
132、/p><p><b> end</b></p><p><b> 8:begin </b></p><p> x=4'b1110; //掃描第四列</p><p><b> state1=9;</b></p><p>&
133、lt;b> end </b></p><p><b> 9: begin</b></p><p><b> case(y)</b></p><p> 4'b1111: //第四列也沒(méi)按鍵按下,返回</p><p><b> begin&
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信原理課程設(shè)計(jì)模擬信號(hào)的數(shù)字化處理
- 模擬信號(hào)數(shù)字化傳輸系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---大電容測(cè)量?jī)x模擬信號(hào)部分電路設(shè)計(jì)
- 數(shù)字通信課程設(shè)計(jì)--模擬信號(hào)數(shù)字化pcm編碼設(shè)計(jì)
- 8路輸入模擬信號(hào)數(shù)值顯示電路單片機(jī)課程設(shè)計(jì)
- 基于壓縮傳感理論的模擬信號(hào)處理.pdf
- 《現(xiàn)代信號(hào)處理》課程設(shè)計(jì)
- 《隨機(jī)信號(hào)處理》課程設(shè)計(jì)
- 信號(hào)處理分析課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---自動(dòng)循環(huán)調(diào)光燈電路的設(shè)計(jì)和模擬信號(hào)運(yùn)算電路的設(shè)計(jì)
- 模擬信號(hào)數(shù)字處理過(guò)程.dwg
- 模擬信號(hào)數(shù)字處理過(guò)程.dwg
- 模擬信號(hào)數(shù)字處理過(guò)程.dwg
- 模擬信號(hào)數(shù)字處理過(guò)程.dwg
- 基于fpga的模擬信號(hào)檢測(cè)處理系統(tǒng)設(shè)計(jì)與仿真
- 語(yǔ)音信號(hào)處理課程設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論