




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、/AD9833 模塊測試程序/功能:循環(huán)輸出 1KHz 方波,正弦波。三角波/ 接口:/sum 為按鍵輸入臨時(shí)變量/ K3 為外部中斷口 控制通道開關(guān)/ R=33 為選擇通道 A 標(biāo)志 R34為選擇通道 B標(biāo)志/ y1 A 通道的開關(guān)標(biāo)志 1:關(guān)閉 ;0:打開 y2 也一樣/ temp1 A 通道的頻率控制字變量temp3 A 通道的相位控制字變量/ temp2 B通道的頻率控制字變量temp4 B 通道的相位控制字變量/ c1 c2 為頻率比變量b1 為選擇比例標(biāo)志位變量/ 定義頭文件#include <reg51.h>#include <stdio.h>#inclu
2、de <intrins.h>#include <a5110.h>#include <Key.h>/sbit ad9833_sdata =P22;/ad9833 數(shù)據(jù)線sbit ad9833_sclk =P23;/ad9833 時(shí)鐘線sbit ad9833_fsync1 =P24;/ 通道 A 使能sbit ad9833_fsync2 =P21;/ 通道 2 使能/ 外部中斷的 IOsbit K3=P32;/ 外部中斷 0sbit K4=P33;/ 外部中斷 1#define uchar unsigned char#define uint unsigned i
3、ntlong int m;uint w1=38,w2=38,w3=38,w4=38,floag1=0;uchar z,y=1,y1=1,y2=1;extern unsigned long int sum,temp1,temp2,temp3,temp4,temp5=0,temp6=0;extern uchar s,di,R,b1,q;void output_f1(unsigned long freq_value);/ 輸出子函數(shù)void output_f2(unsigned long phase_value); / 相位輸出函數(shù)void output_p1(unsigned long freq_
4、value);/ 輸出子函數(shù)void output_p2(unsigned long phase_value); / 相位輸出函數(shù)void display(longint p,uchar s,uchar b1,uchar floag1);/ 顯示處理函數(shù)void IntConfiguration();/ 外部中斷函數(shù)/ 延時(shí)程序/void delay(unsigned int m) unsigned int n;for (n=0;n<=m;n+)void delayms(unsignedint ii)/1ms 延時(shí)函數(shù)unsigned int i,x;for(x=0;x<ii;x+
5、)for (i=0;i<100;i+);/ write_ad9833: 向 AD9833_ic1 寫 16 位數(shù)據(jù) 軟件 SPI 方式 / void write_ad9833ic1_d16(unsigned int x)int i,w;ad9833_sclk=1; /scl 置為高電平ad9833_fsync2=1; / 關(guān)閉 ic2ad9833_fsync1=1; /fsync 置為高電平,關(guān)閉使能 ic1 ad9833_fsync1=0; /fsync 置為低電平,使能 ic1/寫 16 位數(shù)據(jù)w=x;for(i=0;i<16;i+)ad9833_sdata=w&0x8
6、000;ad9833_sclk=0;ad9833_sclk=1;w=w<<1;ad9833_fsync1=1;ad9833_sclk=0;/ 向 16 位 AD9833_ic2 寫數(shù)據(jù) / void write_ad9833ic2_d16(unsigned int x)int i,w;ad9833_sclk=1; ad9833_fsync1=1; ad9833_fsync2=1; ad9833_fsync2=0;/scl 置為高電平/ 關(guān)閉 ic1/fsync 置為高電平,關(guān)閉使能 ic2/fsync 置為低電平,使能 ic2w=x;for(i=0;i<16;i+) ad98
7、33_sdata=w&0x8000; ad9833_sclk=0; ad9833_sclk=1; w=w<<1;ad9833_fsync2=1; ad9833_sclk=0;/ 向 16 位 AD9833_ic2 和 ic2 同 時(shí) 寫 數(shù) 據(jù) 寫 數(shù) 據(jù) / void write_ad9833_d16(unsigned int x)int i,w;ad9833_sclk=1;ad9833_fsync1=1;ad9833_fsync2=1;ad9833_fsync1=0;ad9833_fsync2=0;/寫 16 位數(shù)據(jù)w=x;for(i=0;i<16;i+)ad98
8、33_sdata=w&0x8000; ad9833_sclk=0; ad9833_sclk=1;w=w<<1;ad9833_fsync1=1;ad9833_fsync2=1;ad9833_sclk=0;/ 主程序 / main()P0=0XFF;P1=0Xff;P2=0XFF;P3=0Xff;chushi();IntConfiguration();/寄存器頻率 0輸出 1KHz 波形 write_ad9833_d16(0x0100); / 復(fù)位 AD9833 write_ad9833_d16(0x2100); / 選擇數(shù)據(jù)一次寫入 write_ad9833_d16(0x60
9、00); /L14 write_ad9833_d16(0x4000); /H14 頻率寄存器 0 為 1KHz write_ad9833_d16(0x9001); /L14 write_ad9833_d16(0x8000); /H14 頻率寄存器 1 為 2KHz write_ad9833_d16(0x2100); / 芯片進(jìn)入關(guān)閉工作狀態(tài) ,寄存器頻率 0輸出 1KHz波形 / / write_ad9833_d16(0xc000); /L14 相位寄存器 0 / write_ad9833_d16(0xe000); /H14 相位寄存器 1/write_ad9833_d16(0x93E3);
10、/L14/write_ad9833_d16(0x8001); /H14 頻率寄存器 1 為 2KHz/寄存器頻率 0輸出 1KHz 波形write_ad9833_d16(0x0100); / 復(fù)位 AD9833write_ad9833_d16(0x2100); / 選擇數(shù)據(jù)一次寫入 / output1(80000);write_ad9833_d16(0x2000); / 芯片進(jìn)入工作狀態(tài) ,寄存器頻率 0 輸出 1KHz 波形 delay(60);write_ad9833_d16(0x0100); / 復(fù)位 AD9833 write_ad9833_d16(0x2100); / 選擇數(shù)據(jù)一次寫入
11、 write_ad9833ic1_d16(0x0c000); /L14 相位寄存器 0delay(100);write_ad9833ic2_d16(0x0c000); /L14 相位寄存器 0while(1)q=floag1; display(sum,s,b1,floag1);KeyDown();if(K4=0) z+;delayms(100);void output_f1(unsigned long freq_value)/A 頻率輸出函數(shù)unsigned long dds; / 頻率變量unsigned int dds_l,dds_h;/h 為高 14 位, l 為低 14 位if(fre
12、q_value>=100) / 高于 100hz 的情況dds=(freq_value/100*1074)+freq_value%100*10.74; /268435456/ FMCLKelse / 低于 100hz 的情況dds=freq_value*10.74;/ 輸出頻率 =頻率控制字 = 按鍵輸入值 *( MCLK/228 )系數(shù) 10.7 根據(jù)實(shí)際情況修改dds_l=dds; / 低字節(jié) dds_h=dds>>14; / 高字節(jié)dds_l=dds_l & 0x3FFF;dds_l=dds_l | 0x4000;dds_h=dds_h & 0x3FFF
13、;dds_h=dds_h | 0x4000;write_ad9833ic1_d16(0x0100); /28 位連續(xù),選擇頻率 0,相位 0, RESET=0write_ad9833ic1_d16(0x2100); /28 位連續(xù),選擇頻率 0,相位 0, RESET=0 write_ad9833ic1_d16(dds_l);write_ad9833ic1_d16(dds_h);void output_f2(unsigned long freq_value) /B 頻率輸出函數(shù)unsigned long dds;unsigned int dds_l,dds_h;if(freq_value>
14、;=100)dds=(freq_value/100*1074)+freq_value%100*10.74; /268435456/ FMCLKelsedds=freq_value*10.74;dds_l=dds; / 低字節(jié)dds_h=dds>>14; / 高字節(jié)dds_l=dds_l & 0x3FFF;dds_l=dds_l | 0x4000;dds_h=dds_h & 0x3FFF;dds_h=dds_h | 0x4000;write_ad9833ic2_d16(0x0100); /28 位連續(xù),選擇頻率 0,相位 0, RESET=0 write_ad9833
15、ic2_d16(0x2100); /28 位連續(xù),選擇頻率 0,相位 0, RESET=0 write_ad9833ic2_d16(dds_l);write_ad9833ic2_d16(dds_h);void display(long int p,uchar s,uchar b1,uchar floag2) / 顯示 處理 函數(shù) uchar i=0,j=0;float c1=0,c2=0;if(y1=0) w1=46;w2=0; if(y1=1) w1=w2=38; if(y2=0) w3=46;w4=0;/y1=0 顯示 on (打開通道)/y1=1 顯示 off (關(guān)閉通道)/ 同上if(
16、y2=1) w3=w4=38; /if(R=33&di=1) temp1=p;/r=33 , di=1 則寫 a 通道的頻率控制字if(R=34&di=1) temp2=p; /r=34 , di=1 則寫 b 通道的頻率控制字 if(s=5)if(b1=1)c1=c2=1;if(b1=2) c1=1;c2=2;if(b1=3) c1=1;c2=3;if(b1=4) c1=2;c2=3;temp2=temp1*(c2/c1);頻率顯示數(shù) */CHA/光標(biāo) R=33 ,光標(biāo)if(R=33&di=1) displayc(0,2);displayd(0,2);displaye
17、(0,2);displayb(30,2);/ di=1 ,光標(biāo)在 a 通道頻率處,并清除其余處的光標(biāo)顯示if(R=33&di=2) displayb(0,2);displayc(30,2);/s/ 光標(biāo)、類似上面 if(R=34&di=1) displayb(0,2);displayc(0,2);displaye(0,2); displayd(30,2);/s/ if(R=34&di=2) displayd(0,2); displaye(30,2);/s/ 光標(biāo) if(s=5)if(q=1)displaya(0,0);/sdisplaya(0,1);/idisplaya
18、(38,2);/ndisplaya(0,3);/ndisplaya(0,4);/celsedisplaya(70,0);/f displaya(17,1);/1 displaya(26,2);/: displaya(70,3);/f displaya(2+16,4);/2elsedisplaya(0,0);/s displaya(0,1);/i displaya(0,2);/n displaya(0,3);/n displaya(0,4);/cdisplaya(51,6);/edisplaya(73,7);/edisplaya(78,8);/edisplaya(67,9);/edisplaya
19、(69,10);/e/ displaya(51,4);/s/ displaya(73,5);/i/ displaya(78,6);/n/ displaya(67,7);/c/ displaya(69,8);/e/ displaye(30,0);displayb(33,0);/CHA displayb(26,1);displayb(temp1/1000000+16,3); displayb(temp1%1000000/100000+16,4); displayb(temp1%100000/10000+16,5); displayb(temp1%10000/1000+16,6); displayb
20、(temp1%1000/100+16,7); displayb(temp1%100/10+16,8);displayb(temp1%10+16,9);displayb(40,10); /Hdisplayb(90,11); /z/CHB/displayd(34,0);displayd(26,1);displayd(temp2/1000000+16,3); displayd(temp2%1000000/100000+16,4); displayd(temp2%100000/10000+16,5); displayd(temp2%10000/1000+16,6); displayd(temp2%10
21、00/100+16,7);displayd(temp2%100/10+16,8);displayd(temp2%10+16,9);displayd(40,10); /Hdisplayd(90,11); /z相位顯示數(shù) */CHA/displayc(0,0); displayc(26,1); displayc(48,3);displayc(temp3/100+16,4);displayc(temp3%100/10+16,5);displayc(temp3%100%10+16,6);displayc(92,7); / 相位displayc(47,9);displayc(w1,10);display
22、c(w2,11);/CHB/displaye(0,0);displayc(26,1);displaye(48,3); displaye(temp4/100+16,4); displaye(temp4%100/10+16,5);displaye(temp4%100%10+16,6); displaye(92,7);/ 相位displaye(47,9);displaye(w3,10);displaye(w4,11);displayf(38,0); / 頻率比值displayf(26,1);displayf(c1+16,2);displayf(26,3); /:displayf(c2+16,4);d
23、isplayf(27,5);displayf(93,6); / 相位差displayf(92,7);if(temp3>=temp4)displayf(temp3-temp4)/100+16,8); /temp3>temp4 時(shí),相位差 =temp3-temp4 displayf(temp3-temp4)%100/10+16,9);displayf(temp3-temp4)%10+16,10);else displayf(temp4-temp3)/100+16,8);displayf(temp4-temp3)%100/10+16,9); displayf(temp4-temp3)%10+16,10);displayf(92,11);void Int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息檢索語言與技巧考核試卷
- 化工生產(chǎn)過程中的能量集成考核試卷
- 小學(xué)生音樂律動課件視頻
- 辦公文具創(chuàng)新設(shè)計(jì)理念與實(shí)踐考核試卷
- 城市綠化管理的城市設(shè)計(jì)與城市規(guī)劃考核試卷
- 秋季安全宣傳課件圖片
- 門市倉庫出租合同范本
- 醫(yī)藥器械采購合同范本
- 種植基地配送合同范本
- 酒店客房預(yù)訂操作規(guī)范及流程制度
- 馬工程《刑法學(xué)(下冊)》教學(xué)課件 第22章 妨害社會管理秩序罪
- GB/T 14643.6-2009工業(yè)循環(huán)冷卻水中菌藻的測定方法第6部分:鐵細(xì)菌的測定MPN法
- 《政治經(jīng)濟(jì)學(xué)》全套課件(完整版)【復(fù)旦版】
- 國有企業(yè)干部選拔任用條例
- QSB質(zhì)量體系基礎(chǔ)課件
- 仁愛版八年級英語上復(fù)習(xí)課Unit 2 Keep Healthy Topic1 2教學(xué)課件
- 系統(tǒng)運(yùn)維投標(biāo)文件含運(yùn)維方案
- 心理健康教育課《在變化中成長》課件
- JJF 1341-2012 鋼筋銹蝕測量儀校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 人教版數(shù)學(xué)五年級下冊 全冊各單元教材解析
- 偏癱臨床路徑流程
評論
0/150
提交評論