freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

畢業(yè)論文(集成運放參數測試儀)-資料下載頁

2025-06-06 08:52本頁面
  

【正文】 址 unsigned char *p1=amp。addr。 unsigned int k。 step=0x01000000。 //頻率變化的步進值 fq_up=0。 15 w_clk=0。 reset=1。 j++。 //延時作用 j++。 reset=0。 for(k=1。k0x0f78。k++) //產生信號源,由于指針之間不能直接付值所以用 //zanc變量作為它的中間變量 { p=amp。dacs。 p1=amp。addr。 for(i=1。i5。i++) { zanc[i]=*p1。 p1++。 } for(i=0。i5。i++) { *p=zanc[i]。 w_clk=1。 //送頻率控制字,先高位,后低位 j++。 j++。 w_clk=0。 } fq_up=1。 //產生一個上升沿 j++。 fq_up=0。 delay(100)。 if (addrstep) step=0x10000。 addr=step。 //改變頻率值 } } 16 圖 17 高頻輸出模塊圖 ⒌ 轉換模塊 該模塊主要包括 ad2543()函數,主要實現采集通道中的數據,并將模擬信號轉換為數字信號。 從測試板輸出的信號仍然是模擬信號,而單片機只能對數字信號進行處理,因此對于單片機而言是不可能識別模擬信號的大小,只能判斷有無電壓的輸入,所以測試板中的信號通過峰峰值檢測后必須經過 A/D 轉換才能和單片機相連,被程序讀入并做 相應的處理。 轉換模塊的程序主要是負責讀取來自 TLC2543 的數據,該芯片有 11 路模擬信號輸入通道( AN0~AN10) ,兩個參考電壓輸入端( REF+,REF)和 5 個控制管腳。其接口電路如圖 6 所示。它們的功能分別為: AN0~AN10: 11路模擬輸入通道 REF+:正參考電壓,輸入端 REF:負參考電壓,輸入端,一般直接接地 IOCLK:輸入輸出脈沖,當讀輸出數據時下降沿有效,當輸入地址時,上升沿有效,輸入端 DATA INPUT:地址選擇端,輸入當前要轉換的模擬信號的通道號,四位串行輸入,輸入端 DATA OUT: 12位數字串行信號輸出口,輸出端 EOC:輸出結束標志,轉換結束后自動置 1,輸出端 CS:片選信號,低電平有效,輸入口 開始 頻率值為 0 送時鐘脈沖和刷新脈沖 結束 N Y 送頻率字 改變頻率值 17 圖 18 轉換模塊的程序流程圖 轉換模塊的程序流程如圖 18 所示,其工作原理為:轉換輸出電平的量程大小為正負參考電壓之差 ,輸入模擬信號的電壓范圍即為正負參考電壓的大小,一般 REF+大小要小于或等于 V+;當要開始 A/D 轉換時,先使該芯片有效,即使 /CS 信號端為低電平,連續(xù)輸入四個 IOCLK,在 IOCLK的上升沿處在 DATA INPUT 端口輸入要轉換的通道地址,高位在前,低位在后,通道地址的范圍為 0到 10,并且在 IOCLK 的第四個脈沖的下降沿到來時,讀入選擇的通道中的模擬信號并開始轉換;調用延時函數作為其轉換時間,然后單片機要給 A/D 芯片的 IOCLK 端口連續(xù) 16 個脈沖,在每個脈沖的下降沿到來時讀取 A/D 中的一位數據,先讀入的數據 為高位,在程序中利用左移功能,將前 12 位數據保存在變量 ad中,后 4位數據為無效數據舍去, 然后返回到上級函數。其實在該函數中采用送通道數和讀數據在同一個時刻進行,事實上讀的數據是上次送的通道數的結果。因此在主函數中預先調用一次 ad2543()函數作為預先送通道數的操作。 ad2543()函數如下所示: /***************************************/ /* 讀取 ad2543 中的數據 */ /***************************************/ unsigned int ad2543(unsigned char tin) //tin 是通道數 { 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)將獲得的數據保存在 cjn中 cj=dout。 din=cj7。 cjn=cjn1。 cj0=cj。 sclk=1。 j++。 //脈沖高電平保持時間 sclk=0。 } ad=cjn*16。 //先讀出來的是高 8 位 開始 結束 位操作方式送通道數 位操作方式先讀高 8位,再讀后 4 位 18 cjn=tin。 //還是原來的通道 for(i=0。i8。i++) { cj=dout。 din=cj7。 cjn=cjn1。 cj0=cj。 sclk=1。 j++ 。 sclk=0。 } ad=ad+cjn/16。 //只需要后讀入數據中低 4 位 cs=1。 //片選無效 return(ad)。 } ⒍ 數據處理模塊 該模 塊主要包括 sort()函數和 jisuan()函數。 其中 sort()函數主要是將獲得的 5 組 40 個數據中每組的最大值和最小值去掉,并轉換為真實的電壓值,范圍為電壓為 0~ 5V。 jisuan()函數是將去掉最大值和最小值后每組數據進行平均,然后再參考公式進行計算,求出參數值。其函數如下所示:(其中 ad0[i][j]是在 ad2543()中獲得的數據) /*********************************/ /* 排序 */ /*********************************/ void sort(void) //排序 { unsigned char i,j。 unsigned int temp。 float sum。 //比出最大值 放在最后一位 for (i=0。i5。i++) for(j=0。j7。j++) if (ad0[i][j]ad0[i][j+1]) { temp=ad0[i][j]。 ad0[i][j]=ad0[i][j+1]。 ad0[i][j+1]=temp。 } //比出最小值 放在倒數第二位 for (i=0。i5。i++) for(j=0。j6。j++) if (ad0[i][j]ad0[i][j+1]) { temp=ad0[i][j]。 ad0[i][j]=ad0[i][j+1]。 ad0[i][j+1]=temp。 } //求和時只求出前 6 位 去掉一個最大值去掉一個最小值 for (i=0。i5。i++) { sum=ad0[i][0]。 for(j=1。j6。j++) sum=sum+ad0[i][j]。 19 average[i]=sum/6。 } //假設放大倍數為 1 for(i=0。i5。i++) average[i]=average[i]*5/4096 。 } /***************************************/ /** 計算結果 */ /***************************************/ void jisuan(void) { float temp。 average[0]=average[0]/21。 //vio average[1]=average[1]/21average[0]。 //Iio temp=average[2]。 //avd temp=average[4]/temp/21。 temp=20*log10(temp)。 average[2]=temp。 temp=average[4]/average[3]。 temp=temp/21。 //kcmr temp=20*log10(temp)。 } 四、 系統(tǒng)測試 當我們調試用 I/O方式在液晶上顯示數據時,不小心燒壞了 LCD。最后在硬件上只能用 LED來代替 LCD,軟件上也重新編寫了 LED 顯示程序和其他相關程序,經過調試,能正確顯示結果。顯示數據結果時每次顯示一個參數結果,通過按鍵顯示下一個參數結果。以 I/O 方式顯示的程序在附錄四中給出。 (一)程序調試方法 修改語法上的錯誤:軟件仿真編譯程序,查改有錯誤的地方,直到編譯通過; 按軟件模塊的劃分,用仿真器結合硬件進行仿真各模塊程序,查找邏輯錯誤; 通過單步運行和打斷點的方式調試程序,直到出現自己想要的結果。 (二)軟件調試 測試儀器:微機電源( WD999)、仿真器 ( E6000/L) 、數字 示波器 ( TDS2021) 、 萬用表( HONEYTEK A830L) 測試方案:將每個子程序經過匯編后分別進行軟件模擬仿真,然后聯(lián)合硬件用仿真 器進行仿真。 調試過程和結果: ① LCD 顯示的測試過程和結果:運行清屏程序,在屏幕任意位置顯示一個漢字和西文,發(fā)現無任何反應,參考其它的程序,發(fā)現所包含的頭文件與我的程序都是不同的,于是改變頭文件,結果顯示正確;然后在所要的位置顯示所需要的漢字和字母,顯示程序正確; ② 給 TCL2543 芯片的 0 通道輸入 2V 電壓, 調用 ad2543()函數測試獲得數據,并 將獲得的數據在液 晶上顯示,看得到的數據是否正確。 ③ 調用 highsource()函數將頻率控制字送入 AD9851 芯片,控制輸出頻率為 4M 的正弦 20 波,并用示波器看輸出波形的效果,修改程序直到輸出的波形就是所要的波形。 (三)聯(lián)機調試 測試儀器:微機電源 ( WD999) 、萬用表( HONEYTEK A830L)、仿真器( E6000/L) 調試過程和結果: 將獲得的數據顯示在 LCD 上,和手動測試的結果進行比較,結果有誤差 。 首先查看程序里邏輯上是否有錯誤,發(fā)現繼電器控制那部分有點混亂,于是參考題目要求,重整這部分程序;然后再次運行程序, 還是有誤差存在 ; 接著就查看程序的數據處理模塊部分,然后再次根據題目的要求來修改程序的邏輯問題 ; 最 后雖然還是有 誤差存在,但程序已經 基本 正確,硬件上也已無錯誤 ,就把這結果作為最后的結果。 五、 結束語 這次畢業(yè)設計,雖然是我們以前電子競賽中接觸過,但由于以前的軟件沒被保存下來,這次的編程相當于是從頭開始。因此在剛開始編程時,思路上還是有點混亂,并且犯了一些錯誤,比如對液晶顯示器寫數據和讀狀態(tài)時發(fā)生了一些錯誤,致使整個過程在開始幾天沒有一點進展。后來在何老師的指導下,我重新理清思路,結合電路原理圖編寫程序,能夠較快的找 準問題所在,能順利完成畢業(yè)設計。在這次畢業(yè)設計中,令人欣慰的是我們的畢業(yè)設計基本能夠完成課題的基本部分和發(fā)揮部分的要求。在數據處理的精度方面由于采用 C 語
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1