收藏 分销(赏)

用DDS AD9854产生各种波形程序集.pdf

上传人:曲**** 文档编号:5444915 上传时间:2024-11-04 格式:PDF 页数:83 大小:1.11MB 下载积分:15 金币
下载 相关 举报
用DDS AD9854产生各种波形程序集.pdf_第1页
第1页 / 共83页
用DDS AD9854产生各种波形程序集.pdf_第2页
第2页 / 共83页


点击查看更多>>
资源描述
用DDSAD9854产生各种波形程序集本程序集包含以下波形的程序:正弦波,三角波,AM调制,FM调制,ASK调制,PSK调制,FSK调制最后还有一个包含12864液晶显示、7290键盘控制的可以输出正弦波,三角波,方波(由单片机产生),AM调制,FM调制,ASK调制和PSK调制的一个DDS函数发生器的综合 系统。这些程序都是本人写的,单片机用的是TI的msp430f247,这些程序都经过精心调试,并都已调试成功。希望这些程序能给需要的朋友一定的帮助。头文件【AD9854.h】:#define PAR1_H 0 x00#define PAR1_L 0X01#define PAR2_H 0X02#define PAR2_L 0X03#define FTW1_6 0X04#define FTW1_5 0X05#define FTW1_4 0X06#define FTW1_3 0X07#define FTW1_2 0X08#define FTW1_1 0X09#define FTW2_6 0X0A#define FTW2_5 OXOB#define FTW2_4 OXOC/define FTW2_3 OXOD#define FTW2_2 OXOE#define FTW2_1 OXOF#define DFW_6 0X10/define DFW_5 0X11#define DFW_4 0X12#define DFW_3 0X13#define DFW_2 0X14#define DFW_1 0X15#define UDCLK_4 0X16/Phase Adjust Register#l/Phase Adjust Register#l/Phase Adjust Register#2/Phase Adjust Register#2/Frequency Tuning Wordl/Frequency Tuning Wordl/Frequency Tuning Wordl/Frequency Tuning Wordl/Frequency Tuning Wordl/Frequency Tuning Wordl/Frequency Tuning Word2/Frequency Tuning Word2/Frequency Tuning Word2/Frequency Tuning Word2/Frequency Tuning Word2/Frequency Tuning Word2/Delta Frequency Word/Delta Frequency Word/Delta Frequency Word/Delta Frequency Word/Delta Frequency Word/Delta Frequency Word/Update Clock#define UDCLK 3 0X17#define UDCLK_2 0X18#define UDCLK 10X19#define RRC 3 0X1A#define RRC_2 0X1B#define RRC_1 0X1C/define PD 0X1D/Update Clock/Update Clock/Update Clock/Ramp Rate Clock/Ramp Rate Clock/Ramp Rate Clock/Power Down:DC,DC,DC,Comp PDQQDAC PD,DAC PD,DIG PD#define REFCLK 0X1E/REFCLK:DC,PLL Range,Bypass PLL,RM4,RM3,RM2,RM1,RMO#define MOD OX1F/MOD:CLR ACC1,CLR ACC2,Triangle,SRC QDAC,M2,Ml,M0,lnt Update Clk#define OSK_S 0X20 First,SDO Active#define 0SKI_2 0X21#define OSKI_1 0X22#define 0SKQ_2 0X23#define OSKQ_1 0X24#define OSKRR 0X25#define QDAC_2 0X26#define QDAC_1 0X27/OSK&SERIAL COM:DC,Bypass Inv Sinc,OSK EN,OSK IN1;DC,DC,LSB/Output Shape Key I Mult/Output Shape Key I Mult/Output Shape Key Q Mult/Output Shape Key Q Mult/Output Shape Key Ramp Rate/QDAC/QDAC正弦波:#include msp430 x24x.hinclude AD9854.h#define uchar unsigned char#define us _NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP()#define data_out P5OUT#define datajn P5IN#define data_dir P5DIR#define add_out P4OUT#define add_dir P4DIR#define ctrl_out P1OUT#define ctrl_dir P1DIR/define UDCLKBIT6#define WR BIT5#define RD BIT4#define FBH BIT3/define SK BIT2#define SP BIT1#define RST BITOvoid init();void init_9854();void send_byte(uchar add,uchar data);uchar read_byte(uchar add);void delayus(int t);ucharFTW1,FTW2,FTW3,FTW4,FTW5,FTW6,P_D,REF_CLK,UD_CLK1,UD_CLK2,UD_CLK3/UD_CLK4,OSKS,MD;/*系统整体时钟设定*void time_set()char i;BCSCTL1&=(XT2OFF+XTS);BCSCTL2|二 SELM1;BCSCTL2&=SELS;do(IFG1&=-OFIFG;for(i=0 xFF;i0;i-);)while(IFGl&OFIFG)!=0);启动 xt2,ACLK 为 LFXT1/MCLK 为 XT2/SMCLK 为 DCO)*主 函*int main(void)/Stop watchdog timer to prevent time out reset WDTCTL=WDTPW+WDTHOLD;init();init_9854();send_byte(PD,OxOO);O,QDAC,DAC,DIG/*send_byte(FTWl_6,0 xl5);send_byte(FTWl_5,0 x55);send_byte(FTWl_4,0 x46);send_byte(FTWl_3,0 x8C);se n d_byte(FTW l_2,0 x40);send_byte(FTWl_l,OxOO);*/send_byte(FTWl_6,0 x02);send_byte(FTWl_5,0 x22);send_byte(FTWl_4,0 x22);send_byte(FTWl_3,0 x00);send_byte(FTWl_2,0 x00);send_byte(FTWl_l,OxOO);)/turn on I DAC and DIG,but still offQDAC,PD:DC,DC,DC,COMP,设置频率 10MHz:15 55 46 8C 40 00设置频率 lMHz:02 22 22 22 22 22I/*_ 女台*void init()time_set();data_dir=OxFF;add_dir=Oxff;ctrl_dir=Oxff;ctrl_out=0 x32;/CP,UDCLK,F/B/H,SK,RST=O;WR,RD,S/P=1)*j女台AD9854*/void init_9854()ctrl_out|=RST;delayus(l);ctrl_out&=RST;1F为默认值,即Triangle”,QDAC为内部输入,模式0,内部刷新时钟send_byte(REFCLK,0 x04);delayus(4);send_byte(UDCLK_l,0 x20);PLL小于200MHz,不旁路PLL,4倍频延时4us,以保证数据写入将刷新周期改为600多ns,保证发送1字节数据的周期大于刷新周期delayus(2);send_byte(PD,0 xl7);send_byte(OSK_S,OxOO);延时lus,以保证数据写入/power down所有模块不旁路Inv Sine,不使能OSK EN*发送 i 字节数据*void send_byte(uchar add,uchar data)data_dir=Oxff;ctrl_out|=WR;add_out=add;_NOP();送地址ctrl_out&=WR;拉低WRdata_out=data;_NOP();送数据ctrl_out|=WR;delayus(l);拉高WR*读取_个字节的数据*II uchar read_byte(uchar add)uchar dat;data_dir=OxOO;ctrl_out|=RD;add_out=add;ctrl_out&=RD;_NOP();dat=data_in;ctrl_out|=RD;return dat;)I/*us 日寸*void delayus(int t)while(t-)us;三角波:#include msp430 x24x.hinclude AD9854.h#define uchar unsigned char#define us _NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP()/define data_out P5OUT#define datajn P5IN#define data_dir P5DIR#define add_out P4OUT#define add_dir P4DIR#define ctrl_out P1OUTttdefine ctrl_dir P1DIR#define UDCLKBIT6#define WR BITSttdefine RD BIT4#define FBH BIT3#define SK BIT2#define SP BIT1#define RST BITOvoid init();void init_9854();void init_TA();void send_byte(uchar add,uchar data);uchar read_byte(uchar add);void delayus(int t);*系 日寸车中*void time_set()char i;BCSCTL1&=(XT2OFF+XTS);BCSCTL2|二 SELM1;BCSCTL21=SELS+BIT2+BIT1;do启动 xt2,ACLK 为 LFXT1/MCLK 为 XT2/SMCLK 为 XT2,8 分频IFG1&=-OFIFG;for(i=0 xFF;i0;i-);)while(IFGl&OFIFG)!=0);)*主 函*int main(void)/Stop watchdog timer to prevent time out reset WDTCTL=WDTPW+WDTHOLD;init();init_9854();init_TA();send_byte(PD,OxlO);O,QDAC,DAC,DIGCCR0=18;/18CCR1=9;/16/turn on I DAC and DIG,but still offQDAC,PD:DC,DC,DC,COMP,send_byte(OSKRR,0X03);幅度扫描时间设为最大-8.7381ms TACTL|=0X0010;开始增计数模式 while(l);)I/*_*void init()time_set();data_dir=OxFF;add_dir=Oxff;ctrl_dir=0 xff;P1SEL|=OXO4;ctrl_out=0 x36;)P1.2为TA1输出/U DCLK,F/B/H,RST=O;WR,RD,SK,S/P=1*女台AD9854*/void init_9854()ctrl_out|=RST;delayus(l);ctrl_out&=RST;:LF为默认值,BP Triangle=O,QDAC为内部输入,模式0,内部刷新时钟send_byte(REFCLK,0 x04);delayus(4);send_byte(UDCLK_l,0 x20);PLL小于200MHz,不旁路PLL,4倍频延时4us,以保证数据写入将刷新周期改为600多ns,保证发送1字节数据的周期大于刷新周期delayus(2);send_byte(PD,0 xl7);send_byte(OSK_S,0 x30);)延时lus,以保证数据写入/power down所有模块不旁路Inv Sine,使能OSK EN,选择内部配置ramp*mer A 女台*void init_TA()TACTL=0X0204;选择子系统时钟,不分频,停止计数,清除定时器,禁止中断,清溢出 标志CCTL1=OUTMOD_7;禁止捕获,输出模式7(复位/置位模式)*发送 1 字节数据*void send_byte(uchar add,uchar data)data_dir=Oxff;ctrl_out|=WR;add_out=add;_NOP();送地址ctrl_out&=WR;拉低WRdata_out=data;_NOP();送数据ctrl_out|=WR;delayus(l);拉高WR*读取个字节的数据*ii uchar read_byte(uchar add)uchar dat;data_dir=OxOO;ctrl_out|=RD;add_out=add;ctrl_out&=RD;_NOP();dat=data_in;ctrl_out|=RD;return dat;/*II*lus 时*void delayus(int t)while(t-)us;)AM调制:#include msp430 x24x.hinclude AD9854.h#define uchar unsigned char/define us _NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP()/define data_out P5OUT#define datajn P5IN#define data_dir P5DIR#define add_out P4OUT/define add_dir P4DIR#define ctrl_out P1OUT#define ctrl_dir P1DIR#define UDCLKBIT6#define WR BIT5#define RD BIT4/define FBH BIT3#define SK BIT2#define SP BIT1#define RST BITO void init();void init_9854();void init_adcl2();void send_byte(uchar add,uchar data);uchar read_byte(uchar add);void delayus(int t);int samp=0,ATW;float A=0.5,dc,ac;A:调制指数,de:直流量,ac:交流量*/日寸车中*void time_set()char i;BCSCTL1&=(XT2OFF+XTS);BCSCTL2|二 SELM1;BCSCTL2&=SELS;do启动 xt2,ACLK 为 LFXT1/MCLK 为 XT2/SMCLK 为 DCOIFG1&=-OFIFG;for(i=0 xFF;i0;i-);)while(IFGl&OFIFG)!=0);)/*主函数*/int main(void)|/Stop watchdog timer to prevent time out resetinit();init_9854();init_adcl2();send_byte(PD,OxlO);O,QDAC,DAC,DIGsend_byte(FTWl_6,0 x2a);send_byte(FTWl_5,0 xaa);se n d_byte(FTW l_4,0 x8d);send_byte(FTWl_3,0 xl8);se n d_byte(FTW l_2,0 x80);WDTCTL=WDTPW+WDTHOLD;/turn on I DACand DIG,but still off QDAC,PD:DC,DC,DC,COMP,设置频率 10MHz:15 55 46 8C 40 00send_byte(FTWl_l,OxOO);ADC12CTL0|=0 x01;开始转换 while(l);)I/*_ 女台*void init()time_set();data_dir=OxFF;add_dir=Oxff;ctrl_dir=Oxff;ctrl_out=0 x32;CP,UDCLK,F/B/H,SK,RST=O;WR,RD,S/P=1)*女台AD9854*I/void init_9854()ctrl_out|=RST;delayus(l);ctrl_out&=RST;工F为默认值,BP Triangle=0,QDAC为内部输入,模式0,内部刷新时钟send_byte(REFCLK,0 x04);delayus(4);send_byte(UDCLK_l,0 x20);PLL小于200MHz,不旁路PLL,4倍频延时4us,以保证数据写入将刷新周期改为600多ns,保证发送1字节数据的周期大于刷新周期delayus(2);send_byte(PD,0 xl7);send_byte(OSK_S,0 x20);)延时lus,以保证数据写入/power down所有模块不旁路Inv Sine,使能OSK EN,使用OSK寄存器*女台ADC12*/void init_adcl2()P6SEL|=OXFF;ADC12CTL0&=ENC;ADC12CTL0=0X03f0;/D-7采样保持时间为ADC12时钟的32倍(4us,多次采样,2.5V参 考源,参考源开,ADC12内核开,溢出中断等关闭ADC12CTLl=0X0214;首地址从 ADC12MEM0开始,输入信号源为 ADC12SC,采样由SAMPCON触发,输入信号同向输入,不分频,时钟源选择MCLK,单通道多次转换ADC12MCTL0=0X10;通道0选择内部参考源-2.5VADC12IE=0X0001;使能通道0转换完成后中断-EINT0;ADC12CTL0|=ENC;/使能 AD 转换)*II void send_byte(uchar add,uchar data)data_dir=Oxff;ctrl_out|=WR;add_out=add;_NOP();ctrl_out&=WR;data_out=data;_NOP();ctrl_out|=WR;delayus(l);)送地址拉低WR送数据拉高WR*读取_个字节的数据*II uchar read_byte(uchar add)uchar dat;data_dir=OxOO;ctrl_out|=RD;add_out=add;ctrl_out&=RD;_NOP();dat=data_in;ctrl_out|=RD;return dat;)/*11I/*us 日寸*void delayus(int t)while(t-)us;)/pragma vector=ADC12_VECTOR_interrupt void adcl2()(samp=ADC12MEM0;dc=(l-A)*OXFFF/(l+A);ac=2*A*samp/(l+A);ATW=dc+ac;send_byte(OSKI_2,ATW/DxlOO);send_byte(OSKI_l,ATW%OxlOO);)FM调制:include msp430 x24x.hinclude AD9854.h#define uchar unsigned char#define us _NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP()#define data_out P5OUT#define datajn P5IN#define data_dir P5DIR/define add_out P4OUT/define add_dir P4DIR#define ctrl_out P1OUT#define ctrl_dir P1DIR#define UDCLKBIT6#define WR BIT5#define RD BIT4#define FBH BIT3#define SK BIT2/define SP BIT1/define RST BITOvoid init();void init_9854();void init_adcl2();void send_byte(uchar add,uchar data);uchar read_byte(uchar add);void delayus(int t);int samp=0,pp=75;pp:频偏uchar ftwl,ftw2,ftw3,ftw4,ftw5,ftw6;unsigned int am,per,ppl,pp2,pp3,sppl,spp2,spp3,ftwll,ftwl2,ftwl3,ftwl4,ftwl5,ftwl6,c,i;long int seal;uchar rd=O;*日寸车中*void time_set()char i;BCSCTL1&=(XT2OFF+XTS);BCSCTL2|=SELM1;BCSCTL2&SELS;do启动 xt2,ACLK 为 LFXT1/MCLK 为 XT2/SMCLK 为 DCOIFG1&=-OFIFG;for(i=0 xFF;i0;i-);)while(IFGl&OFIFG)!=0);)*函*int main(void)(/Stop watchdog timer to prevent time out resetWDTCTL=WDTPW+WDTHOLD;init();init_9854();init_adcl2();send_byte(PD,OxlO);/turn on I DAC and DIG,but still offQDAC,PD:DC,DC,DC,COMP,O,QDAC,DAC,DIGsend_byte(FTWl_6,0 x02);设置频率 lMHz:02 22 20 a7 aO 00send_byte(FTWl_5,0 x22);send_byte(FTWl_4,0 x20);send_byte(FTW l_370 xa 7);send_byte(FTWl_2,0 xa0);send_byte(FTWl_l,OxOO);ftwl=0 x00;ftw2=0 xa0;ftw3=0 xa7;ftw4=0 x20;ftw5=0 x22;ftw6=0 x02;switch(pp)case 15:pp3=0 x0008;pp2=0 x3156;ppl=0 x544E;break;case 20:pp3=0 x000A;pp2=0 xEC2C;ppl=0 x5000;break;case 25:pp3=0 x000D;pp2=0 xA746;ppl=0 xA640;break;case 30:pp3=0 x0010;pp2=0 x6251;ppl=0 xBA40;break;case 35:pp3=0 x0013;pp2=0 xlD5C;ppl=0 xCE40;break;case 40:pp3=0 x0015;pp2=0 xD867;ppl=0 xE240;break;case 45:pp3=0 x0018;pp2=0 x9345;ppl=0 x2F80;break;case 50:pp3=0 x001B;pp2=0 x4E6E;ppl=0 xC800;break;case 55:pp3=0 x001E;pp2=0 x0998;ppl=0 x6080;break;case 60:pp3=0 x0020;pp2=0 xC4Cl;ppl=0 xF900;break;case 65:pp3=0 x0023;pp2=0 x7FEB;ppl=0 x9180;break;case 70:pp3=0 x0026;pp2=0 x3A7C;ppl=0 x9380;break;case 75:pp3=0 x0028;pp2=0 xF5A6;ppl=0 x2C00;)ADC12CTL0|=0 x01;开始转换while(l);)*单片初始化*void init()time_set();data_dir=OxFF;add_dir=Oxff;ctrl_dir=Oxff;ctrl_out=0 x32;/CP,UDCLK,F/B/H,SK,RST=O;WR,RD,S/P=1*女台AD9854*I/void init_9854()(ctrl_out|=RST;delayus(l);ctrl_out&=RST;1F为默认值,BP Triangle=0,QDAC为内部输入,模式0,内部刷新时钟send_byte(REFCLK,0 x04);PLL 小于 200MHz,不旁路 PLL,4 倍频delayus(4);延时4us,以保证数据写入send_byte(UDCLK_l,0 x20);将刷新周期改为600多ns,保证发送1字节数据的周期大于刷新周期delayus(2);延时lus,以保证数据写入send_byte(PD,0 xl7);/power down 所有模块send_byte(OSK_S,OxOO);不旁路 Inv Sine,不使能 OSK EN*女台ADC12*void init_adcl2()P6SEL|=OXFF;ADC12CTL0&=ENC;ADC12CTL0=0X03f0;/0-7采样保持时间为ADC12时钟的32倍(4us),多次采样,2.5V参 考源,参考源开,ADC12内核开,溢出中断等关闭ADC12CTLl=0X0214;首地址从 ADC12MEM0开始,输入信号源为 ADC12SC,采样由SAMPCON触发,输入信号同向输入,不分频,时钟源选择MCLK,单通道多次转换ADC12MCTL0=0X10;通道0选择内部参考源-2.5VADC12IE=0X0001;使能通道0转换完成后中断-EINT0;ADC12CTL0|=ENC;使能 AD 转换)*发送1字节数据*void send_byte(uchar add,uchar data)data_dir=Oxff;ctrl_out|=WR;add_out=add;送地址_NOP();ctrl_out&=WR;拉低WRdata_out=data;送数据_NOP();ctrl_out|=WR;拉高WRdelayus(l);)*读取_i 个字节的数据*ii uchar read_byte(uchar add)uchar dat;data_dir=OxOO;ctrl_out|=RD;add_out=add;ctrl_out&=RD;_NOP();dat=data_in;ctrl_out|=RD;return dat;*/I/*曰寸*void delayus(int t)while(t-)us;ttpragma vector=ADC12_VECTOR_interrupt void adcl2()(samp=ADC12MEM0;if(samp0 x7ff)(am=samp-0 x7ff;per=am*0 xl0000/Dx7ff;/per-long int;scal=0 xl0000;while(pp30 x0f&per=0 x600)per/=0 xl0;scal/=0 xl0;while(pp3=0 xl000)per/=0 xl0;scal/=0 xl0;MPY=ppl;OP2=per;_NOP();_NOP();sppl=RESLO;c=RESHI;MPY=pp2;OP2=per;_NOP();_NOP();spp2=RESLO;spp2=spp2+c;c=RESHI;MPY=pp3;OP2=per;_NOP();_NOP();spp3=RESLO;spp3=spp3+c;switch(scal)(case 0 xl0000:sppl=spp2;spp2=spp3;spp3=0 x0000;break;caseOxlOOO:sppl=sppU)xlOOO+(spp2%OxlOOO)*OxlO;spp2=spp?A)xlOOO+(spp3%OxlOOO)*OxlO;spp3=sppM)xlOOO;break;caseOxlOO:sppl=sppl/DxlOO+(spp2%OxlOO)*OxlOO;spp2=spp2/OxlOO+(spp3%OxlOO)*OxlOO;spp3=spp OxlOO;break;case0 xl0:sppl=sppU)xl0+(spp2%0 xl0)*0 xl000;spp2=sppxl0+(spp3%0 xl0)*0 xl000;spp3=spp0 x 10;)send_byte(FTWl_l,ftwl+sppl%0 xl00);send_byte(FTWl_2,ftw2+sppU)xl00);send_byte(FTWl_3,ftw3+spp2%0 xl00);send_byte(FTWl_4,ftw4+spp0 xl00);send_byte(FTWl_5,ftw5+spp3%0 xl00);send_byte(FTWl_6,ftw6+spp0 xl00);for(i=15000;i0;i-);)else(am=0 x7ff-samp;per=am*0 xl0000/Dx7ff;/per-long int;scal=0 xl0000;while(pp30 x0f&per=0 x600)per/=0 xl0;scal/=0 xl0;while(pp3=0 xl000)per/=0 xl0;scal/=0 xl0;MPY=ppl;OP2=per;_NOP();_NOP();sppl=RESLO;c=RESHI;MPY=pp2;OP2=per;_NOP();_NOP();spp2=RESL0;spp2=spp2+c;c=RESHI;MPY=pp3;OP2=per;_NOP();_NOP();spp3=RESL0;spp3=spp3+c;switch(scal)case 0 xl0000:sppl=spp2;spp2=spp3;spp3=0;break;case0 xl000:sppl=sppWxl000+(spp2%0 xl000)*0 xl0;spp2=spp?A)xl000+(spp3%0 xl000)*0 xl0;spp3=sppt)xlOOO;break;caseOxlOO:sppl=sppU)xlOO+(spp2%OxlOO)*OxlOO;spp2=spp?/DxlOO+(spp3%OxlOO)*OxlOO;spp3=spp 5t)xl00;break;case0 xl0:sppl=sppWxl0+(spp2%0 xl0)*0 xl000;spp2=spp?/Dxl0+(spp3%0 xl0)*0 xl000;spp3=sppt)x 10;)ftwll=0 xl00+ftwl-sppl%0 xl00;ftwl2=0 xl00+ftw2-(0 x01-ftwlU)xl00)-sppWxl00;ftwl3=0 xl00+ftw3-(0 x01-ftwl?A)xl00)-spp2%0 xl00;ftwl4=0 xl00+ftw4-(0 x01-ftwl3xl00)-spp)xl00;ftwl5=0 xl00+ftw5-(0 x01-ftwl40 xl00)-spp3%0 xl00;ftwl6=ftw6-(0 x01-ftwl5/0 xl00)-spp0 xl00;send_byte(FTWl_l,(uchar)ftwll);send_byte(FTWl_2,(uchar)ftwl2);send_byte(FTWl_3,(uchar)ftwl3);send_byte(FTWl_4,(uchar)ftwl4);send_byte(FTWl_5,(uchar)ftwl5);send_byte(FTWl_6,(uchar)ftwl6);for(i=15000;i0;i-);)ASK调制:*ASK,*由单片机产生基带码,同时从P3.0 口输出基带码供检测用,码率由for循*环控制,改变for循环时间控制码率变化*#include msp430 x24x.hinclude AD9854.h#define uchar unsigned char#define us _NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP()#define data_out P5OUT/define data J n P5IN#define data dir P5DIR#define add_out P4OUT#define add_dir P4DIR#define ctrl_out P1OUT#define ctrl_dir P1DIR#define UDCLKBIT6#define WR BIT5#define RD BIT4#define FBH BIT3#define SK BIT2#define SP BIT1/define RST BITO void init();void init_9854();void send_byte(uchar add,uchar data);uchar read_byte(uchar add);void delayus(int t);*系 日寸车中*void time_set()char i;BCSCTL1&=(XT2OFF+XTS);BCSCTL2|=SELM1;BCSCTL2&=SELS;do启动 xt2,ACLK 为 LFXT1/MCLK 为 XT2/SMCLK 为 DCOIFG1&=-OFIFG;for(i=0 xFF;i0;i-);)while(IFGl&OFIFG)!=0);)*十 函*int main(void)int i;/Stop watchdog timer to prevent time out reset WDTCTL=WDTPW+WDTHOLD;init();init_9854();send_byte(PD,OxlO);/turn on I DACand DIG,but still offQDAC,PD:DC,DC,DC,COMP,0,QDAC,DAC,DIGsend_byte(FTWl_6,0 xl5);设置频率 10MHz:15 55 46 8C 40 00send_byte(FTWl_5,0 x55);send_byte(FTWl_4,0 x46);send_byte(FTWl_3,0 x8C);send_byte(FTWl_2,0 x40);send_byte(FTWl_l,0 x00);while(l)send_byte(OSKI_2,OXOO);send_byte(OS
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服