第一范文网 - 专业文章范例文档资料分享平台

正弦信号发生器ad9850实际键盘(经典)

来源:用户分享 时间:2025/5/29 7:04:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

P1=(P1<<1)|0x1; }

while((P1&0x0f)!=0x0f) //等待释放 {

P1=0x0f; }

beep=1; }

return keycode; }

/********* 显示数字 *************/ void xianshu(unsigned long a) { unsigned long c,p=0; c=a/1000000000; if(c!=0)

{lcd1602_wrdata(c+0x30); p=1; }

c=(a00000000)/100000000; if(c!=0 || p==1)

{lcd1602_wrdata(c+0x30); p=1; }

c=(a0000000)/10000000; if(c!=0 || p==1)

{lcd1602_wrdata(c+0x30); p=1; }

c=(a000000)/1000000; if(c!=0 || p==1)

{lcd1602_wrdata(c+0x30); p=1; }

c=(a00000)/100000; if(c!=0 || p==1)

{lcd1602_wrdata(c+0x30); p=1;

}

c=(a0000)/10000; if(c!=0 || p==1)

{lcd1602_wrdata(c+0x30); p=1; }

c=(a000)/1000; if(c!=0 || p==1)

{lcd1602_wrdata(c+0x30); p=1; }

c=(a00)/100; if(c!=0 || p==1)

{lcd1602_wrdata(c+0x30); p=1; } c=(a0)/10;

if(c!=0 || p==1)

{lcd1602_wrdata(c+0x30); }

c=a+0x30; lcd1602_wrdata(c); }

/******* 菜单显示子程序 ************/ void xianshi(uchar j)

{ uchar code str[][9]={{\\F \dF\XW\\\\\ uchar i;

unsigned char offset=0x80; lcd1602_clear();

lcd1602_wrcmd(offset+0x00);

lcd1602_wrcmd(offset+0x00); lcd1602_wrdata('-'); lcd1602_wrdata('>');

for(i=0;i<8;i++) lcd1602_wrdata(str[j+0][i]);

lcd1602_wrcmd(offset+0x40); lcd1602_wrdata(' ');

\ lcd1602_wrdata(' ');

for(i=0;i<8;i++) lcd1602_wrdata(str[j+1][i]); }

/*************** AD9850驱动程序 ************/ ad9850(float freq, float dfreq,ulong d4) {

float fw; uchar i,j,temp; uchar s; uchar d[5];

fw=freq*34.359738368*3; //d[4]中存放控制字最高位,即相位控制字 //Freq=MCLK*FW/2^32 d[4]=(unsigned long)(d4/11.25)*8; d[0]=(unsigned long)fw; d[1]=(unsigned long)fw>>8; d[2]=(unsigned long)fw>>16; d[3]=(unsigned long)fw>>24;

load=0; sclk=0; sclk=1; sclk=0; load=1; load=0;

for(i=0;i<5;i++) {

temp=d[i]; for(j=0;j<8;j++) {

sclk=0;

if(temp&1) sdata=1; else sdata=0; sclk=1;

temp=temp>>1; } } load=1; load=0;

lcd1602_clear(); lcd1602_wrdata(' ');

lcd1602_wrdata(' '); lcd1602_wrdata(' '); lcd1602_wrdata(' '); lcd1602_wrdata(' ');

if ((unsigned long)freq00==0 ) {

s='K'; freq=freq/1000;

if ( (unsigned long) freq00==0) {s='M';freq=freq/1000 ; } }

else{ s=' ';} xianshu(freq); lcd1602_wrdata(s); lcd1602_wrdata('H'); lcd1602_wrdata('Z');

lcd1602_wrcmd(0x80+0x40); //换行

if ((unsigned long)dfreq00==0 ) {

s='K'; dfreq=dfreq/1000;

if ( (unsigned long) dfreq00==0) {s='M';dfreq=dfreq/1000 ; } }

else{ s=' ';}

lcd1602_wrdata(0x7e); xianshu(dfreq); lcd1602_wrdata(s); lcd1602_wrdata('H'); lcd1602_wrdata('Z');

lcd1602_wrcmd(0x80+0x4b); //定坐标 控制显示位子 lcd1602_wrdata(0xf2); lcd1602_wrdata(':'); xianshu(d4);

}

/********************** 按键显示数程序 *************************/ ulong dushu()

正弦信号发生器ad9850实际键盘(经典).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5fxbw0aqwz0h1ll029uy_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top