微控制器8051設計簡易波形發生器,要求能產生正弦波,方波,三角波,通過鍵盤可改變輸出訊號的頻率和幅度

時間 2021-08-11 17:34:59

1樓:

基於51微控制器的訊號發生器-完整電路、程式http://wenku.baidu.com/view/effec6f2ba0d4a7302763a13.html 免費的。

可以產生弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的頻率(最大790hz)和幅度在一定範圍內可任意改變。波形和頻率的改變通過軟體控制,幅度的改變通過硬體實現。這是本人課程設計得到優秀的作品,有完整的電路圖,程式。

不是光**那種。

如果你覺得790hz的頻率不夠的話,可以用fpga+ad,頻率幾十m都沒問題,也不是很難。多看看資料,

2樓:q號

這個網上資料很多的,你可以參考下的,我前幾天也做了個,proteus**的,程式如下,希望能幫到你的,有問題可以交流下的

#include

unsigned char i,sqar_num=128; //最大值100,預設值50

unsigned char cho=0; //0:正弦波。1:方波。2:三角波。3:鋸齒波。

unsigned char num=0;

unsigned char time0_h=0xff,time0_l=0xdc; //定時器0的初值設定;全域性變數.對應正弦波,鋸齒波50hz

sbit chg= p1^0;

sbit freq_u=p1^1;

sbit freq_d=p1^2;

sbit duty_u=p1^3;

sbit duty_d=p1^4;

sbit cs =p3^7;

bit flag=0;

unsigned int freq=50;//初始化頻率,30hz

unsigned char flag1;

sbit rs=p1^5;

sbit lcdcs=p1^7;

sbit cd=p3^0;

unsigned char tempbuffer[7];

unsigned char value1=;

void delay(unsigned int ms)

//波形發生函式

void sint(void)

}/* else if(flag)

} */

}void square(void)

else

}void ********(void)

void stw(void)

}//1602顯示開始

void write_command(unsigned char command)

void write_data(unsigned char data0)

void init_1602()

//1602顯示結束

void temp_to_str()

void main()

tr0=1;

while(1)}

設計製作一個波形發生器,該波形發生器能產生正弦波、方波、三角波和由使用者編輯的特定形狀波形。 50

3樓:匿名使用者

呵呵!~樓上的樓上 這麼長程式 沒有一個電路圖 什麼管腳幹什麼用都很難弄清楚 也真是辛苦了

4樓:匿名使用者

/////p2口接4*4鍵盤的行線和列線;紅燈亮時進行頻率輸入;綠燈亮時進行佔空比輸入;頻率值暫定在100到60khz之間;輸入頻率和佔空比時要輸夠六位整數,不夠的在前面補0;佔空比以百比數(0-100)形式存在。///////////

/////////方波發生器資料。空軍工程大學導院501明明,2007.10.10初稿/////////

#include

#include

#define uchar unsigned char

sbit coma=p1^0;

sbit comb=p1^1;

sbit comc=p1^2;

sbit comd=p1^3;

sbit come=p1^4;

sbit red=p1^5;

sbit green=p1^6;

sbit new=p1^7;

sbit q=p3^7;

int i,x,y;

/* 延時函式 */

void delay(void)

/*數字對應的共陽極段碼*/

uchar getcode(uchar i)

return(p);

}/////////顯示函式/////////

void display(int t)

/* 鍵掃描函式 */

uchar keyscan(void)

else scancode = (scancode<<1)|0x01; // 行掃描碼左移一位}}

}return(0); // 無鍵按下,返回值為0

}/////////////t0中斷/////////

timer0 () interrupt 1

else }

///////////主函式///////////

main( )

break; // 1行1列,數字0

case 0x21: if (count<=5) break;// 1行2列,數字1

case 0x41: if (count<=5) break;// 1行3列,數字2

case 0x81: if (count<=5) break;// 1行4列,數字3

case 0x12: if (count<=5) break;// 2行1列,數字4

case 0x22: if (count<=5) break; // 2行2列,數字5

case 0x42: if (count<=5) break;// 2行3列,數字6

case 0x82: if (count<=5) break;// 2行4列,數字7

case 0x14: if (count<=5) break;// 3行1列,數字8

case 0x24: if (count<=5) break;// 3行2列,數字9

case 0x44: if (count==5) confirm++;} break;// 3行3列,確認鍵

//輸入完頻率,按下確認鍵,再輸入佔空比

case 0x84: x=0;count=0; break; // 3行4列,取消鍵

default: break;

} display(x);

}tr0=1;

if(new==0)}}}

5樓:康幹

這種東西買一個就可以了。

很成熟的產品,自己做反而更貴。

8051微控制器的結構特點,求解8051微控制器的硬體結構特點!!!!!!!!!!!!!!

差不多的51學習 上都又的 自己去看看吧 求解8051微控制器的硬體結構特點!51微控制器的內部硬體結構 cpu工作原理,儲存器結構,51,52和89c51,89s51型號對比 2009 09 15 23 4851系列微控制器的內部結構 主要由以下部分組成 cpu ram rom 四個並行i o口 ...

8051微控制器引腳圖,80C51微控制器引腳圖及引腳功能介紹

這個有不同封裝的,外形也不同.80c51微控制器引腳圖及引腳功能介紹 寒夢夜雨花 80c51微控制器有40個引腳大致可分為4類 電源 時鐘 控制和i o引腳。1 電源 1 vcc 晶元電源,接 5v 2 vss 接地端 2 時鐘 xtal1 xtal2 晶體振盪電路反相輸入端和輸出端。3 控制線 控...

微控制器的簡易計算器,怎麼用51微控制器做簡易計算器? 10

基本功能介紹 簡單的加減乘除的運算。時間顯示功能,而且能實現計算器模組和時間模組之間的任意切換。按鍵音卻換功能。原理 多功能微控制器計算器是一個實現加減乘除的和時間功能的計算器,主要的硬體組成由,一個at89s52微控制器晶片,一個led液晶 1602液晶 一個4 4鍵盤,和4個特殊功能按鍵。一個時...