91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-13
  • 語言: 其他
  • 標簽: AD9834??

資源簡介

51單片機控制AD9834的信號發生器。通過按鍵可以設置輸出方式及輸出頻率,并通過1602液晶顯示

資源截圖

代碼片段和文件信息


/*****************************************************??
AD9834波形產生程序??
*****************************************************/???
??
#include?
#include?????
#define?uchar?unsigned?char???
#define?uint??unsigned?int???
#define?ulong?unsigned?long???
#define?FCLK????????50000000
#define?FREQ_0??????0
#define?FREQ_1??????1?
sbit?FSYNC?=?P3^4;???
sbit?SCLK??=?P3^5;
sbit?SDATA?=?P3^6;???
sbit?RESET?=?P3^7;
sbit?CHANGE?=?P3^2;
//液晶接口
sbit?rs=P1^0;
sbit?rw=P1^1;
sbit?en=P1^2;

uchar?i=0jkkey10num;
uchar?sintrisqu;
ulong?freq=0.0;
ulong?m;

uchar?code?tab1[]={0xf70xfb0xfd0xfc}; //鍵盤
uchar?code?tab2[]=“frequency:“; ???//初始化液晶顯示
uchar??tab[6]; ??//存儲設置值????
???
/**************************??
發送控制字??
**************************/???
void?Send_Con(uint?Con_word)???
{???
???uchar?i;????
???FSYNC?=0;??? ???//低電平使數據有效
???for(i=0;i<16;i++)??? ???//傳輸16位控制字
???{???
??????SDATA?=Con_word&0x8000;???//最高位不變,最高位賦給SDATA?
??????Con_word<<=1;??? //控制字左移一位,準備下一次
??????SCLK?=0;??? //產生下降沿,傳輸SDATA
??????SCLK?=1;???
???}????
???FSYNC?=1;???? //高電平,無效
}???
???
/****************************??
發送頻率字??
****************************/???
void?Send_Freq(uint?Freq_word)???
{???
???uchar?i;?????
???FSYNC?=0;??? ???//低電平使數據有效
???for(i=0;i<16;i++)??? ???//傳輸16位頻率字
???{???
??????SDATA?=Freq_word&0x8000;??//最高位不變,最高位賦給SDATA?
??????Freq_word<<=1;??? //頻率字左移一位,準備下一次
??????SCLK?=0;??? //產生下降沿,傳輸SDATA
??????SCLK?=1;???
???}????
???FSYNC?=1;???? //高電平,無效
}???
???
/*****************************??
發送相位字??
注:根據情況可設定入口參數,設置相位??
*****************************/???
void?Send_Phase()???
{???
???Send_Con(0xC000);???//設置初相位為0???
}???
???
???
/*******************************************************??
設置頻率值???
Freq_value(value)=Freq_data(data)*FCLK/2^28??
2^28=268435456=0x10000000??
*******************************************************/???
void?writing_Freq(uchar?freq_number?ulong?Freq_value)???
{??
????ulong?FREQREG?=?(ulong)(268435456.0/FCLK*Freq_value);
????
????uint?LSB_D?=?(uint)FREQREG;
????uint?MSB_D?=?(uint)(FREQREG>>14);
????
????if(freq_number?==?FREQ_0)
????{
????????LSB_D?&=?~(1U<<15);
????????LSB_D?|=?1<<14;
????????MSB_D?&=?~(1U<<15);
????????MSB_D?|=?1<<14;
????}
????else
????{
????????LSB_D?&=?~(1<<14);
????????LSB_D?|=?1U<<15;
????????MSB_D?&=?~(1<<14);
????????MSB_D?|=?1U<<15;
????}
????
????Send_Freq(LSB_D);
????Send_Freq(MSB_D);
?????
}???
?
?void?delay(uint?x) /*延時函數*/
{
uint?ij;
for(i=x;i>0;i--)
???for(j=110;j>0;j--);
}

?void?wri(uchar?com) /*寫指令函數*/
{
rs=0;
rw=0;
en=1;
P0=com;
delay(5);
en=0;
}
?
?
?void?wrd(uchar?dat)??/*寫數據函數*/
{
rs=1;
rw=0;
en=1;
P0=dat;
delay(5);
en=0;
}
?
/**************************************
按鍵:?????0???????1???????2????????3
???????????4???????5???????6????????7
???8???????9??????設置?????確定
?正弦波 ??三角波??方波
每次按下設置鍵后,選擇波形,正弦or三角or方波,按下后,再輸入頻率值,最后按確定鍵
**

評論

共有 條評論