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

正文內(nèi)容

基于ad9833的信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)_(編輯修改稿)

2025-04-03 08:24 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 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。)。 //第二行開(kāi)始 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 頁(yè) 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])。 } } 按鍵掃描程序 程序定義四個(gè)按鍵與單片機(jī)接口分別為: Sbit ktap=p2^0。 Sbit set=p2^1。 Sbit up=p2^2。 Sbit down=p2^3。 四個(gè)端口的初始化狀態(tài)均為高電平 1,當(dāng) set 鍵第一次被按下時(shí)光標(biāo)移動(dòng)到頻率行第一位數(shù)據(jù),此時(shí)可通過(guò)按下 tap 鍵使光標(biāo)在頻率的七位數(shù)間移動(dòng),光標(biāo)定格時(shí)按下 up 鍵數(shù)字增大, down 鍵數(shù)字減小。當(dāng) set 鍵第二次按下,光標(biāo)移動(dòng)到峰峰值行,步驟同上,當(dāng) set 鍵第三次按下光標(biāo)移動(dòng)到波形顯示處,通過(guò) up、down 鍵的切換可選擇輸出三種波中的一種 。當(dāng) set 鍵第四次被按下時(shí)信號(hào)輸出。 Void fset()//按鍵掃描程序 { Unsigned char tab,fun。 fun=tab=0。 do { if(set==0) 第 17 頁(yè) { delays(10)。 if(set==0) { set_sw=1。 fun++。 tab=0。 write_ad9833_d16(0x0100)。//復(fù)位 AD9833,停止波形輸出 if(fun==4) { set_sw=2。 write_1602(0x0c)。//關(guān)閉光標(biāo)顯示 } 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 頁(yè) } } if(fun==1)//設(shè)置頻率 { write_1602(0x80+0x05+tab)。 write_1602(0x0f)。//光標(biāo)閃爍 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 頁(yè) display()。 while(!down)。 } } } if(fun==2)//設(shè)置 Vpp { if(tab0) { write_1602(0x80+0x44+1+tab)。 } else { write_1602(0x80+0x44+tab)。 } write_1602(0x0f)。//光標(biāo)閃爍 if(up==0) { delays(10)。 if(up==0) { vpp_code[tab]++。 if(vpp_code[tab]==10) { vpp_code[tab]=0。 } display()。 while(!up)。 } } 第 20 頁(yè) 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)。//光標(biāo)閃爍 if(up==0) { delays(10)。 if(up==0) { waveform++。 if(waveform==3) { waveform=0。 } display()。 第 21 頁(yè) 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 頁(yè) TLC5615 調(diào)節(jié)轉(zhuǎn)換程序 該模塊包括 TLC5615 的數(shù)模轉(zhuǎn)換程序和輸出微調(diào)程序。由于隨頻率的改變,輸出波形的幅度會(huì)有不同程度的失真,所以對(duì) TLC5615a 的輸出數(shù)據(jù)進(jìn)行微調(diào),從而使輸出與設(shè)置一致。 Void fix() //數(shù)據(jù)寫(xiě)入前的微調(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 頁(yè) { 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 頁(yè) 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)換為十進(jìn)制值函數(shù),及設(shè)置 AD9833 的頻率,輸出波形及相位值函數(shù),最后通過(guò) AD9833 寫(xiě)入 16 位數(shù)據(jù)函數(shù)使 AD9833輸出已設(shè)置波形。 Void convert() //將 8421碼轉(zhuǎn)換為 十 進(jìn)制 { Double i=10000。 freq=0。 vpp=0。 //頻率 freq=((freq_code[0]*1000000)+freq)。 第 25 頁(yè) 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寫(xiě)位數(shù)據(jù),嚴(yán)格按照這個(gè)時(shí)序,不能隨意修改否則必出錯(cuò)! *****************************************************/ voidwrite_ad9833_d16(unsignedintx) { inti,w。 ad9833_sclk=1。 ad9833_fsync=1。 ad9833_fsync=0。 w=x。 for(i=0。i16。i++) //開(kāi)始寫(xiě)位數(shù)據(jù) { ad9833_sdata=wamp。0x8000。 ad9833_sclk=0。 ad9833_sclk=1。 第 26 頁(yè) w=w1。 } ad9833_fsync=1。 ad9833_sclk=0。 } /***************************************************** 計(jì)算 AD9833的位數(shù)據(jù)值 變量 frequence就是頻率值,單位 Hz,比如輸入 Hz,則 frequence為,需要特別注意的是不能超過(guò) MHz; 變量 frequence_SFR是設(shè)置頻率寄存器選擇為頻率寄存器 。1為頻率寄存器;
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1