資源簡介
利用51單片機控制AD9850產生正弦信號,利用矩陣鍵盤實現實現頻率預置,通過LCD1602顯示預置頻率

代碼片段和文件信息
#?include?
#?include?
#?include?
sbit?ad9850_w_clk????=P2^2;
sbit?ad9850_fq_up????=P2^1;??
sbit?ad9850_rest?????=P2^0;?
sbit?ad9850_bit_data?=P1^7;
sbit?lcden=P2^5;
sbit?lcdrs=P1^0;
sbit?lcdrw=P1^1;
#define?uint?unsigned?int
#define?uchar?unsigned?char
uchar?s1s2s3s4s5s6s7s8;
uchar?abcdefgh;
unsigned?long?shu=1000;
uchar?numtempweiok;
uchar?code?table1[]=“freq:sin“;
uchar?code?table[]=“0123456789“;
void?delay(uint?z)
{
uint?xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void?write_com(uchar?com)
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void?write_data(uchar?date)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void?ad9850_reset_serial()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
ad9850_w_clk=0;
ad9850_w_clk=1;
ad9850_w_clk=0;
ad9850_fq_up=0;
ad9850_fq_up=1;
ad9850_fq_up=0;
}
void?ad9850_wr_serial(unsigned?char?w0double?frequence)
{
unsigned?char?iw;
long?int?y;
double?x;
x=4294967295/125;
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
w=(y>>=0);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
w=(y>>8);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
w=(y>>16);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
w=(y>>24);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
w=w0;???
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
ad9850_fq_up=1;
ad9850_fq_up=0;
}
void?keyscan();
void?lcd_init();
void?display();
void?main()
{
ad9850_reset_serial();
ad9850_wr_serial(0x001000);
lcd_init();
while(1)
{
keyscan();
if(wei!=0)
?????????? {
switch(wei)
{
case?1:?a=num;s1=a;?break;
case?2:?b=num;s2=b;?break;
case?3:?c=num;s3=c;?break;
case?4:?d=num;s4=d;?break;
case?5:?e=num;s5=e;?break;
case?6:?f=num;s6=f;?break;
case?7:?g=num;s7=g;?break;
case?8:?h=num;s8=h;?break;
}
????}
if(ok) ?
{
ok=0;
switch(wei)
{
case?1:?shu=s1;?break;
case?2:?shu=s2+s1*10;?break;
case?3:?shu=s3+s2*10+s1*100;?break;
case?4:?shu=s4+s3*10+s2*100+s1*1000;?break;
case?5:?shu=s5+s4*10+s3*100+s2*1000+s1*10000;?break;
case?6:?shu=s6+s5*10+s4*100+s3*1000+s2*10000+s1*100000;?break;
case?7:?shu=s7+s6*10+s5*100+s4*1000+s3*10000+s2*100000+s1*1000000;?break;
case?8:?shu=s8+s7*10+s6*100+s5*1000+s4*10000+s3*100000+s2*1000000+s1*10000000;?break;
}
display();
ad9850_reset_serial();
ad9850_wr_serial(0x00shu);
wei=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6092??2015-06-29?21:15??AD9850顯示+鍵盤\main.c
?????文件??????18145??2015-06-29?20:07??AD9850顯示+鍵盤\main.LST
?????文件??????19296??2015-06-29?20:07??AD9850顯示+鍵盤\main.OBJ
?????文件??????16863??2015-06-29?20:07??AD9850顯示+鍵盤\pp
?????文件???????7606??2015-06-29?20:07??AD9850顯示+鍵盤\pp.hex
?????文件?????????38??2015-06-29?20:07??AD9850顯示+鍵盤\pp.lnp
?????文件??????18827??2015-06-29?20:07??AD9850顯示+鍵盤\pp.M51
?????文件????????977??2015-06-29?21:21??AD9850顯示+鍵盤\pp.Opt
?????文件????????170??2015-06-29?21:21??AD9850顯示+鍵盤\pp.plg
?????文件???????2129??2015-06-26?21:58??AD9850顯示+鍵盤\pp.Uv2
?????文件????????977??2015-06-29?21:15??AD9850顯示+鍵盤\pp_Opt.Bak
?????文件??????????0??2015-06-26?19:34??AD9850顯示+鍵盤\pp_Uv2.Bak
?????目錄??????????0??2015-08-04?09:10??AD9850顯示+鍵盤
-----------?---------??----------?-----??----
????????????????91120????????????????????13
- 上一篇:51單片機紅外遙控器程序
- 下一篇:abaqus裂紋模擬
評論
共有 條評論