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

正文內(nèi)容

基于dds的數(shù)字式函數(shù)信號(hào)發(fā)生器設(shè)計(jì)-資料下載頁

2025-06-20 12:30本頁面
  

【正文】 頻率以及正弦信號(hào)瞬時(shí)電壓幅值都是通過LED顯示出來,在這里都是用MAX7219驅(qū)動(dòng)LED顯示的,頻率值通過6位共陰極LED顯示頻率值,瞬時(shí)正弦電壓測量值用4位共陰極LED顯示。下面主要介紹一下MAX7219驅(qū)動(dòng)電路。傳統(tǒng)的數(shù)碼管顯示驅(qū)動(dòng)電路占用的系統(tǒng)資源較多。若是動(dòng)態(tài)顯示,8位顯示驅(qū)動(dòng)電路一般由1片8255,4片5407構(gòu)成,不僅硬件資源占用多,而且需要由軟件定時(shí)刷新,軟件資源占用也不少。若是靜態(tài)顯示,8位數(shù)碼管顯示驅(qū)動(dòng)電路一般由8片54LSl64構(gòu)成,硬件資源占用太多。現(xiàn)在,一片MAX7219便可完成8位數(shù)碼管的顯示驅(qū)動(dòng)任務(wù)。MAX7219是一種串行接口的8位數(shù)碼管顯示驅(qū)動(dòng)器。它與通用微處理器只有3根串行線相連,最多可驅(qū)動(dòng)8個(gè)共陰數(shù)碼管或64個(gè)發(fā)光二極管。它內(nèi)部有可存儲(chǔ)顯示信息的 88靜態(tài)RAM,動(dòng)態(tài)掃描電路,以及段、位驅(qū)動(dòng)器。它的特點(diǎn)有:串行接口的傳輸速率可達(dá) 1OMHz。獨(dú)立的發(fā)光二極管段控制。譯碼與非譯碼兩種顯示方式可選。數(shù)字、模擬兩種亮度控制方式??梢约壜?lián)使用。MAX7219的典型應(yīng)用如312所示。圖312 MAX7219典型應(yīng)用電路MAX7219的數(shù)據(jù)輸入主要由三根輸入線完成,它們分別是串行數(shù)據(jù)線、時(shí)鐘線與加載線。當(dāng)1個(gè)16位的數(shù)據(jù)從高位到低位依次輸入MAX7219后,在加載的上升沿將D7~D0送入對應(yīng)的內(nèi)部寄存器。MAX7219正常顯示時(shí)的程序十分簡單,只需向內(nèi)部寄存器地址Xl~X8寫入相應(yīng)的顯示值即可。輸出頻率、電壓顯示電路分別如圖313和圖314所示。圖313 輸出頻率電路圖314 電壓顯示電路 功率放大器為了實(shí)現(xiàn)信號(hào)發(fā)生器的功率放大,輸出大于1W的信號(hào)源,同時(shí)考慮到方波所要求的帶寬1~1MHz,選擇高速BUF634作為信號(hào)發(fā)生器的功率放大,如下圖315。該芯片的主要技術(shù)指標(biāo)有:輸出電流:500mA;轉(zhuǎn)換速度:2000V/us;帶寬:180MHz;靜態(tài)電流:;電壓范圍:177。~177。18V;工作溫度范圍:40℃~+85℃。圖315 功率放大 電源模塊設(shè)計(jì)本系統(tǒng)是多電源系統(tǒng),使用四種共地電源:177。15V,+5V和+:DDS芯片AD9850需要+,+5V轉(zhuǎn)變而來。比較器芯片LM308需要+15V電壓,和采樣保持芯片LF398需要177。15V電壓,還有功力放大芯片BUF634T也需要177。15V,其它都是+5V電源。本系統(tǒng)對電源的紋波要求比較高,功率要求較低。考慮到開關(guān)電源的紋波比較大,所以采用線性電源來實(shí)現(xiàn)多電源系統(tǒng)。圖316為電源部分電路設(shè)計(jì)圖。圖316 電源部分電路設(shè)計(jì)圖 4 基于DDS的信號(hào)源軟件設(shè)計(jì)上一章中主要介紹了基于DDS的信號(hào)源的硬件部分,這一章將介紹系統(tǒng)的軟件設(shè)計(jì)。系統(tǒng)中控制軟件占有很重要的地位,它不僅要產(chǎn)生波形數(shù)據(jù)、控制波形的發(fā)生,還要實(shí)現(xiàn)對LED顯示、鍵盤的控制,因此系統(tǒng)軟件的好壞將直接決定著系統(tǒng)的功能和穩(wěn)定。本設(shè)計(jì)選用的主控制芯片為AT89C52,因此用匯編語言完成軟件部分的功能。本設(shè)計(jì)中軟件所需實(shí)現(xiàn)的功能就是要將外部輸入的數(shù)據(jù)按照一定算法變換成AD9850芯片所能接收的格式,并送出相應(yīng)的頻率/相位控制字,從而使AD9850能產(chǎn)生相位、頻率可程控的信號(hào),并且能夠通過驅(qū)動(dòng)電路將頻率值和電壓瞬時(shí)值送至LED顯示輸出。 軟件總體流程根據(jù)所要實(shí)現(xiàn)的技術(shù)指標(biāo)和系統(tǒng)的總體設(shè)計(jì)方案,需要合理安排程序流程才能夠?qū)崿F(xiàn)對系統(tǒng)的軟件控制。系統(tǒng)程序流程圖見圖41。主要流程如下:圖41 總流程圖圖41是一個(gè)總體流程圖,對于一個(gè)基于DDS的高精度信號(hào)源來說,在軟件設(shè)計(jì)時(shí)還要進(jìn)一步細(xì)分。 系統(tǒng)初始化 對AD9850進(jìn)行初始化控制時(shí),主復(fù)位腳必須置高電平在10個(gè)系統(tǒng)周期以上,主復(fù)位的作用是初始化系統(tǒng)總線,置控制寄存器以缺省值。程序設(shè)計(jì)中要注意AD9850的時(shí)序要求,正確送出邏輯控制字,注意其刷新時(shí)鐘。通過寫端口寫入AD9850的控制字暫時(shí)寄存在I/O緩沖寄存器中,需要一個(gè)從低到高的時(shí)鐘信號(hào)從外部輸入,或者由內(nèi)部32bit的刷新時(shí)鐘把I/O緩沖寄存器中的控制字傳送到DDS的內(nèi)核。 AD9850初始化子程序/*AD9850初始化程序*/void Reset_AD9850()//復(fù)位,并行模式{WCLK_A=0。FQUD_A=0。REST_A=0。REST_A=1。REST_A=0。} max7219初始化子程序/**********************初始化max7219 子函數(shù)設(shè)置工作寄存器需要查看芯片手冊**********************/void Init_Max7219(void) { Write_Max7219(SHUT_DOWN, 0x01)。 //Normal Operation XXXXXXX1 Shutdown Mode XXXXXXXX0 Write_Max7219(DISPLAY_TEST, 0x00)。 //Normal Operation XXXXXXX0 Display Test Mode XXXXXXXX1 Write_Max7219(DECODE_MODE, 0xff)。 //Decode Mode Select D7~D0 1 B decode 0 No decode Write_Max7219(SCAN_LIMIT, 0x07)。 //SCAN LIMIT 0~7 0xX0~0xX7 Write_Max7219(INTENSITY, 0x04)。 //Set Intensity 0xX0~0xXf} 鍵盤掃描及按鍵識(shí)別子程序 在本設(shè)計(jì)中,所設(shè)定的頻率和初始相位都是通過鍵盤輸入的,因此要通過鍵盤掃描和按鍵識(shí)別程序?qū)⑤斎氲逆I值處理后送至AD9850。鍵盤的控制方式一般有程控掃描法、定時(shí)掃描法和中斷掃描法。鍵盤輸入程序一般包括一下幾個(gè)部分:(l)判斷是否有鍵按下;(2)消除按鍵事產(chǎn)生的機(jī)械抖動(dòng);(3)掃描鍵盤,得到按下鍵的參數(shù);(4)計(jì)算鍵值;(5)判斷閉合的鍵是否釋放;(6)執(zhí)行鍵操作;(7)返回。 為了提高CPU的工作效率,可以采用中斷的方法掃描鍵盤,平時(shí)CPU可以執(zhí)行任何操作程序,僅當(dāng)鍵盤上有鍵閉合時(shí)產(chǎn)生中斷請求。CPU在響應(yīng)中斷并執(zhí)行中斷服務(wù)程序時(shí)才掃描鍵盤,并做出相應(yīng)的操作。子程序流程圖如圖42所示。圖42 鍵盤子程序流程圖/*******************************************鍵盤掃描程序*******************************************/uint keyscan(){ uint temp。//注意temp不能為char型,或者是unsigned char型也可以 P1=0xfe。//檢測第一行 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { delay(5)。 temp=P1。 temp=tempamp。0xf0。 while(temp!=0xf0)//消抖,重新判斷是否有鍵按下 { temp=P1。 //注意必須都有這步,不然會(huì)一直執(zhí)行此死循環(huán),但不能跳出外面的第二個(gè)大循環(huán) switch(temp) { case 0xee:num=1。 break。 case 0xde:num=2。 break。 case 0xbe:num=3。 break。 case 0x7e:num=0x0a。 //作為頻率標(biāo)志位 break。 } while(temp!=0xf0) //判斷是否松手,如果不松手一直執(zhí)行此while()語句,如果松手后,temp=0xf0,就能跳出外面的第二個(gè)大循環(huán),進(jìn)而可以去掃描第二行 { temp=P3。 temp=tempamp。0xf0。 } } } P1=0xfd。//檢測第二行 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { delay(5)。 temp=P1。 temp=tempamp。0xf0。 while(temp!=0xf0) { temp=P1。 switch(temp) { case 0xed:num=4。 break。 case 0xdd:num=5。 break。 case 0xbd:num=6。 break。 case 0x7d:num=0x0b。 //作為相位標(biāo)志位 break。 } while((tempamp。0xf0)!=0xf0) { temp=P1。 temp=tempamp。0xf0。 } } } P3=0xfb。//判斷第三行 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { delay(5)。 temp=P1。 temp=tempamp。0xf0。 while(temp!=0xf0) { temp=P1。 switch(temp) { case 0xeb:num=7。 break。 case 0xdb:num=8。 break。 case 0xbb:num=9。 break。 case 0x7b:num=0x0c。//作為確認(rèn)標(biāo)志位 break。 } while((tempamp。0xf0)!=0xf0) { temp=P1。 temp=tempamp。0xf0。 } } } P3=0xf7。//判斷第四行 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { delay(5)。 temp=P1。 temp=tempamp。0xf0。 while((tempamp。0xf0)!=0xf0) { temp=P1。 switch(temp) { case 0xe7:num=0x0e。 break。 case 0xd7:num=0。 break。 case 0xb7:num=0x0f。 //小數(shù)點(diǎn)標(biāo)志位 break。 case 0x77:num=0x0d。 //作為取消標(biāo)志位 break。 } while((tempamp。0xf0)!=0xf0) { temp=P1。 temp=tempamp。0xf0。 } } } return num。} 波形數(shù)據(jù)產(chǎn)生 AD985O控制字的計(jì)算AD9850共包含有40位控制碼(D39~DO),這40位控制碼的作用是:(l)D39和D38用來控制AD9850的數(shù)據(jù)輸入模式。 AD9850的數(shù)據(jù)輸入模式分為兩種:并行輸入模式和串行輸入模式。在并行輸入模式的情況下,模式控制碼為00,由數(shù)據(jù)輸入端D7~D0每次呂位分5次輸入頻率控制字。在串行數(shù)據(jù)輸入模式的情況下,模式控制碼為11,由數(shù)據(jù)輸入端D7每次1位分40次依次輸入頻率控制字。(2)D37用來調(diào)節(jié)AD9850的輸出功率。(3)D36~D32是相位調(diào)制碼,用來控制AD9850的相位調(diào)制量。(4)D31~D0用來控制AD9850的輸出頻率。 這32位的頻率控制碼由鍵盤所輸入的頻率值直接轉(zhuǎn)換過來,具體轉(zhuǎn)換關(guān)系為,其中REFCLK為AD9850參考時(shí)鐘,為輸出信號(hào)的頻率,就是由單片機(jī)計(jì)算得出的頻率控制碼。值得注意的是,在AD9850中有一些特殊的控制碼是被用來在工廠中對AD9850進(jìn)行性能測試的。這些控制碼會(huì)使AD9850的性能臨時(shí)無效。因此,在應(yīng)用這些控制碼時(shí)必須十分注意,除非是進(jìn)行性能測試,否則應(yīng)盡量避免應(yīng)用這些控制碼。由于在硬件設(shè)計(jì)時(shí)采取的是并行數(shù)據(jù)輸入模式,因此軟件也是根據(jù)這一模式而設(shè)計(jì)的。在此軟件工作時(shí),首先由用戶從 4x4鍵盤輸入所需要的信號(hào)的頻率值,初始相位值,以及設(shè)定AD9850的工作模式。然后由單片機(jī)將用戶輸入的頻率值根據(jù)公式轉(zhuǎn)換為頻率控制字,將用戶輸入的初始相位值按照公式 計(jì)算,為從鍵盤輸入的初始相位值。為相位調(diào)整字,準(zhǔn)備送往AD9850的頻率控制輸出。AD9850在進(jìn)行頻率控制時(shí),首先送入相位控制碼、功率調(diào)節(jié)碼和輸入模式控制碼,接下來送入32位的頻率控制碼。在并行數(shù)據(jù)輸入模式下,40位的數(shù)據(jù)控制字經(jīng)8位數(shù)總據(jù)線分5次重復(fù)輸入
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1