📄 ad9851.c
字号:
/***************************************************
ad9851控制程序
key0:输出信号
key1:加法运算
key2:减法运算
key3:选择位数
总体思路:以1M信号频率对应的数字为基准,对应的在各位
进行加减
***************************************************/
#define kinit_int0
#define kinit_t0
#define kinit_int1
#define kinit_t1
#include <init.H>
#include <dds9851.h>
#include "LCD1602.h"
unsigned char wbit=0;
unsigned char flash=0;
unsigned char num=0;
unsigned char time=0;
unsigned long dat=0;
unsigned char fdat[10]={48,48,44,48,48,48,44,48,48,48};
main()
{
init_int0();
init_int1();
init_t0();
init_t1();
TMOD=0x44,TL0=0x1f,TH0=0xff ,TR0=1;
TL1=0x1f,TH1=0xff ,TR1=1;
Delay1ms(100);//等LCD启动
LCD_Initial();
GotoXY(0,0);
Print("f= 00,000,000 Hz");
while(1)
{
if(flash==1)
{
GotoXY(wbit+2,0);
Print(" ");
Delay1ms(300);
}
GotoXY(3,0);
Printnum(fdat,10);
Delay1ms(300);
}
}
mode() interrupt 0
{
Delay1ms(200);
if(INT0==0)
{
wbit++;
if(wbit==11)
{
wbit=0;
flash=1;
writedds(dat);
}
if(wbit!=0)flash=1;
}
}
add() interrupt 1
{
TH0=0xff ,TL0=0x1f;
switch(wbit)
{
case 10:if(fdat[9]==57) break ;
dat=dat+29826150/1000000;
fdat[9]++; break ;
case 9: if(fdat[8]==57) break ;
dat=dat+29826150/100000;
fdat[8]++; break ;
case 8: if(fdat[7]==57) break ;
dat=dat+29826150/10000;
fdat[7]++; break ;
case 6: if(fdat[5]==57) break ;
dat=dat+29826150/1000;
fdat[5]++; break ;
case 5: if(fdat[4]==57) break ;
dat=dat+29826150/100;
fdat[4]++; break ;
case 4: if(fdat[3]==57) break ;
dat=dat+29826150/10;
fdat[3]++; break ;
case 2: if(fdat[1]==57) break ;
dat=dat+29826150;
fdat[1]++; break ;
case 1: if(fdat[0]==57) break ;
dat=dat+29826150*10;
fdat[0]++; break ;
default:;
}
}
decrease() interrupt 2
{
switch(wbit)
{
case 10:if(fdat[9]==48) break ;
dat=dat-29826150/1000000;
fdat[9]--; break ;
case 9: if(fdat[8]==48) break ;
dat=dat-29826150/100000;
fdat[8]--; break ;
case 8: if(fdat[7]==48) break ;
dat=dat-29826150/10000;
fdat[7]--; break ;
case 6: if(fdat[5]==48) break ;
dat=dat-29826150/1000;
fdat[5]--; break ;
case 5: if(fdat[4]==48) break ;
dat=dat-29826150/100;
fdat[4]--; break ;
case 4: if(fdat[3]==48) break ;
dat=dat-29826150/10;
fdat[3]--; break ;
case 2: if(fdat[1]==48) break ;
dat=dat-29826150;
fdat[1]--; break ;
case 1: if(fdat[0]==48) break ;
dat=dat-29826150*10;
fdat[0]--; break ;
default:;
}
}
out() interrupt 3
{
TH1=0xff ,TL1=0x1f;
wbit=0;
flash=1;
writedds(dat);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -