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

正文內(nèi)容

基于ad9833的信號發(fā)生器的設計與實現(xiàn)_(編輯修改稿)

2025-04-03 08:24 本頁面
 

【文章內(nèi)容簡介】 display_code[freq_code[0]])。 write_1602dat(display_code[freq_code[1]])。 write_1602dat(display_code[freq_code[2]])。 write_1602dat(display_code[freq_code[3]])。 write_1602dat(display_code[freq_code[4]])。 write_1602dat(display_code[freq_code[5]])。 write_1602dat(display_code[freq_code[6]])。 write_1602dat(39。H39。)。 write_1602dat(39。z39。)。 //第二行開始 write_1602(0x80+0x40)。 write_1602dat(39。V39。)。 write_1602dat(39。p39。)。 write_1602dat(39。p39。)。 write_1602dat(39。:39。)。 write_1602dat(display_code[vpp_code[0]])。 第 16 頁 write_1602dat(39。.39。)。 write_1602dat(display_code[vpp_code[1]])。 write_1602dat(display_code[vpp_code[2]])。 write_1602dat(display_code[vpp_code[3]])。 write_1602dat(39。V39。)。 write_1602dat(39。39。)。 for(w=0。w3。w++) { write_1602dat(waveform_code[waveform][w])。 } } 按鍵掃描程序 程序定義四個按鍵與單片機接口分別為: Sbit ktap=p2^0。 Sbit set=p2^1。 Sbit up=p2^2。 Sbit down=p2^3。 四個端口的初始化狀態(tài)均為高電平 1,當 set 鍵第一次被按下時光標移動到頻率行第一位數(shù)據(jù),此時可通過按下 tap 鍵使光標在頻率的七位數(shù)間移動,光標定格時按下 up 鍵數(shù)字增大, down 鍵數(shù)字減小。當 set 鍵第二次按下,光標移動到峰峰值行,步驟同上,當 set 鍵第三次按下光標移動到波形顯示處,通過 up、down 鍵的切換可選擇輸出三種波中的一種 。當 set 鍵第四次被按下時信號輸出。 Void fset()//按鍵掃描程序 { Unsigned char tab,fun。 fun=tab=0。 do { if(set==0) 第 17 頁 { delays(10)。 if(set==0) { set_sw=1。 fun++。 tab=0。 write_ad9833_d16(0x0100)。//復位 AD9833,停止波形輸出 if(fun==4) { set_sw=2。 write_1602(0x0c)。//關(guān)閉光標顯示 } display()。 while(!set)。 } } if(ktab==0) { delays(10)。 if(ktab==0) { tab++。 switch(fun) { case1:if(tab==7)tab=0。break。 case2:if(tab==4)tab=0。break。 case3:tab=0。break。 } while(!ktab)。 第 18 頁 } } if(fun==1)//設置頻率 { write_1602(0x80+0x05+tab)。 write_1602(0x0f)。//光標閃爍 if(up==0) { delays(10)。 if(up==0) { freq_code[tab]++。 if(freq_code[tab]==10) { freq_code[tab]=0。 } display()。 while(!up)。 } } if(down==0) { delays(10)。 if(down==0) { if(freq_code[tab]==0) { freq_code[tab]=10。 } freq_code[tab]。 第 19 頁 display()。 while(!down)。 } } } if(fun==2)//設置 Vpp { if(tab0) { write_1602(0x80+0x44+1+tab)。 } else { write_1602(0x80+0x44+tab)。 } write_1602(0x0f)。//光標閃爍 if(up==0) { delays(10)。 if(up==0) { vpp_code[tab]++。 if(vpp_code[tab]==10) { vpp_code[tab]=0。 } display()。 while(!up)。 } } 第 20 頁 if(down==0) { delays(10)。 if(down==0) { if(vpp_code[tab]==0) { vpp_code[tab]=10。 } vpp_code[tab]。 display()。 while(!down)。 } } } if(fun==3) { write_1602(0x80+0x40+13)。 write_1602(0x0f)。//光標閃爍 if(up==0) { delays(10)。 if(up==0) { waveform++。 if(waveform==3) { waveform=0。 } display()。 第 21 頁 while(!up)。 } } if(down==0) { delays(10)。 if(down==0) { if(waveform==0) { waveform=3。 } waveform。 display()。 while(!down)。 } } } if(((vpp_code[0]*1000)+(vpp_code[1]*100)+(vpp_code[2]*10)+vpp_code[3])7200) { vpp_code[0]=7。 vpp_code[1]=2。 vpp_code[2]=0。 vpp_code[3]=0。 display()。 } }while(set_sw==1)。 } 第 22 頁 TLC5615 調(diào)節(jié)轉(zhuǎn)換程序 該模塊包括 TLC5615 的數(shù)模轉(zhuǎn)換程序和輸出微調(diào)程序。由于隨頻率的改變,輸出波形的幅度會有不同程度的失真,所以對 TLC5615a 的輸出數(shù)據(jù)進行微調(diào),從而使輸出與設置一致。 Void fix() //數(shù)據(jù)寫入前的微調(diào) { Double sm=,sn=,sb=。 //正弦波修正參數(shù) Double tm=,tn=,tb=。 //三角波修正參數(shù) if(waveform==1) { v5615b=。 v5615a=(v5615a/)。 //*() } else { v5615b=(+)。 } if(waveform==0) { if(freq1000) { v5615a=((v5615a*tm)/(tb(tn*freq)))。 } else { v5615a=(v5615a*)。 } } if(waveform==2) 第 23 頁 { if(freq1000) { v5615a=((v5615a*sm)/(sb(sn*freq)))。 } else { v5615a=(v5615a*)。 } } } /****************TLC5615DAC轉(zhuǎn)換程序 ********************/ Void DAConvert(double v,unsigned int cs) { Unsigned char i。 Unsigned int Data。 if(v) { v=。 } Data=((512*v)/vref)。 Data=2。 SCLK=0。 if(cs==0) { CS0=0。 } else { 第 24 頁 CS1=0。 } for(i=0。i12。i++) { if(Dataamp。0x800) { DIN=1。 } else { DIN=0。 } SCLK=1。 Data=1。 SCLK=0。 } CS0=CS1=1。 } AD9833 程序 該模塊包括將輸入的頻率、峰峰值轉(zhuǎn)換為十進制值函數(shù),及設置 AD9833 的頻率,輸出波形及相位值函數(shù),最后通過 AD9833 寫入 16 位數(shù)據(jù)函數(shù)使 AD9833輸出已設置波形。 Void convert() //將 8421碼轉(zhuǎn)換為 十 進制 { Double i=10000。 freq=0。 vpp=0。 //頻率 freq=((freq_code[0]*1000000)+freq)。 第 25 頁 freq=((freq_code[1]*100000)+freq)。 freq=((freq_code[2]*i)+freq)。 freq=((freq_code[3]*1000)+freq)。 freq=((freq_code[4]*100)+freq)。 freq=((freq_code[5]*10)+freq)。 freq=(freq_code[6]+freq)。 //Vpp vpp=((vpp_code[0]*1000)+vpp)。 vpp=((vpp_code[1]*100)+vpp)。 vpp=((vpp_code[2]*10)+vpp)。 vpp=(vpp_code[3]+vpp)。 v5615a=(vpp/1440)。 } /**************************************************** 向 AD9833寫位數(shù)據(jù),嚴格按照這個時序,不能隨意修改否則必出錯! *****************************************************/ voidwrite_ad9833_d16(unsignedintx) { inti,w。 ad9833_sclk=1。 ad9833_fsync=1。 ad9833_fsync=0。 w=x。 for(i=0。i16。i++) //開始寫位數(shù)據(jù) { ad9833_sdata=wamp。0x8000。 ad9833_sclk=0。 ad9833_sclk=1。 第 26 頁 w=w1。 } ad9833_fsync=1。 ad9833_sclk=0。 } /***************************************************** 計算 AD9833的位數(shù)據(jù)值 變量 frequence就是頻率值,單位 Hz,比如輸入 Hz,則 frequence為,需要特別注意的是不能超過 MHz; 變量 frequence_SFR是設置頻率寄存器選擇為頻率寄存器 。1為頻率寄存器;
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1