📄 text1.c
字号:
//*********************************************************
//File Name :AD9850.c
//Author :GHL
//Date :2007/8/6
//Desciption :AD9850的控制字串行加载程序
// 加入键盘实现步进
//*********************************************************
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define key_bus P1
sbit load=P0^1; //FQUD
sbit sclk=P0^0; //W_CLK
sbit sdata=P0^2; //DATA
sbit reset=P0^3;
unsigned char code key_decode[]={'*',0,'#','D',7,8,9,'C',4,5,6,'B',1,2,3,'A'};
/*************************延时子程序********************************/
delay(uchar d)
{
while(--d);
}
/*************************AD9850初始化********************************/
void init()
{
reset=0;
reset=1;
reset=0;
load=0;
}
/*************************AD9850显示正弦波********************************/
AD9850(float freq)
{
float fw;
uchar i,j,temp;
uchar d[5];
fw=freq*34.359738368; //d[4]中存放控制字最高位,即相位控制字
//Freq=MCLK*FW/2^32
d[4]=0;
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;
}
/************矩阵键盘读键程序*******************/
unsigned char keytest()
{
unsigned char keycode=0xff,temp,i;
key_bus=0x0f;
temp=key_bus&0x0f;
if(temp!=0x0f) //有键按下
{
key_bus=0x7f;
for(i=0;i<4;i++)
{
temp=key_bus&0x0f;
if(temp==0x07) //输出端口示数
{
keycode=i*4;
break;
}
else if(temp==0x0b)
{
keycode=i*4+1;
break;
}
else if(temp==0x0d)
{
keycode=i*4+2;
break;
}
else if(temp==0x0e)
{
keycode=i*4+3;
break;
}
key_bus=(key_bus>>1)|0x80;
}
while((key_bus&0x0f)!=0x0f) //等待释放
{
key_bus=0x0f;
}
}
return keycode;
}
main()
{
long freq;
unsigned char keycode;
AD9850(500000);
while(1)
{
keycode=keytest();
if(keycode==0xff)
{
delay(10000);
continue;
}
if(key_decode[keycode]==2)
{
freq=freq+100;
AD9850(freq);
}
else if(key_decode[keycode]==1)
{
freq=freq-100;
AD9850(freq);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -