當前位置:編程學習大全網 - 源碼下載 - 51單片機方波發生器源代碼

51單片機方波發生器源代碼

//0832各種波形輸出演示

//p 1.1p 1.0 = 00正弦波

//p 1.1p 1.0處的鋸齒波= 01

//p 1.1p 1.0 = 10處的方波

//p 1.1p 1.0 = 11三角波

//要連接的電線:

//(1)解碼器Y0連接到DAC0832的CS。

//(2)P3.6即XWR插孔連接到DAC0832的WR。

//(3)8芯電纜連接8排針的P0口和DAC0832的D7-D0。

//(4)串並轉換區的+5v連接到DAC0832的參考電壓Vref插孔。

# include & ltreg 51 . h & gt;

# include & ltABSACC。H & gt//absacc.h是C51中絕對地址訪問函數的頭文件。

#define daport XBYTE[0x8000]//如果將daport定義為地址為8000H的外部I/O端口,則74ls138的Y0有效。

sbit p1_1=p1^1;

sbit p1_0=p1^0;

無符號字符I,j,k;bit updown//三角波的上升/下降

無符號字符代碼sinn[64]={

198,204,210,216,222,228,233,237,242,245,249,251,253,255,255,255,

255,254,252,250,247,243,239,235,230,224,219,213,207,201,194,188,

181,175,169,163,158,152,147,143,139,136,133,131,129,128,128,128,

129,130,132,135,138,142,146,151,156,162,168,174,180,186,193,199

};//正弦的值在128-255之間,所以輸出的正弦幅度為0-5v。

無效總管(無效)

{

up down = 0;

I = 128;

j = 0;

while(1)

{

if (P1_1==1)

{

If (P1_0==0) //輸出占空比為25%的方波。

{

if(j & lt;= 40)I = 255;當//i=255時,輸出電壓為+5v。

else if(j & lt;= 160)I = 0;//當I = 0時,輸出電壓為-5v。

否則j = 0;

}

Else //輸出-5v-+5v的三角波。

{

If (updown==0) //上升

{

if(I = = 255)up down = 1;

else I = I+5;//i++;

}

否則//丟棄

{

if(I = = 0)up down = 0;//if(I = = 128)up down = 0;I=128輸出電壓0。

else I = I-5;//I-;

}

}

}

否則{

If (P1_0==0) //正弦波

{

I = sinn[j];

if(j & gt;= 63)j = 0;

}

Else //鋸齒波

{

if(I = = 255)I = 128;

else i++;

}

}

da port = I;

for(k = 0;k & lt2;k++);

j++;

}

}

  • 上一篇:股票裏面啥叫基本面,技術面,消息面?
  • 下一篇:美麗的彩虹的作文500字
  • copyright 2024編程學習大全網