仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語言:C語言
設計編號:S0055
1.主要功能:
基于51單片機的三角波信號發(fā)生器
1、幅值在0-5V可以通過按鍵調整,頻率在0-50Hz,可以通過按鍵調整
2、通過LCD1602顯示幅值和頻率
3、使用示波器查看波形
需注意仿真中51單片機芯片是兼容的,AT89C51,AT89C52是51單片機的具體型號,內核是一樣的。相同的原理圖里,無論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機芯片。
2.仿真設計
開始仿真
打開仿真工程,雙擊proteus中的單片機,選擇hex文件路徑,然后開始仿真。
經以上調試,確認程序沒有問題時,加載到Proteus軟件中進行仿真,所得仿真結果如下。
剛開始運行程序,沒有按鍵操作時,仿真結果如圖25所示。

圖25 仿真初始化結果
通過按鍵調整振幅頻率選擇時,四個按鍵操作的仿真結果如下。

圖26 頻率調低到1HZ

圖27 頻率加到50HZ,振幅不變

圖28 振幅減到2.5V,頻率不變。
以上仿真結果均符合設計要求。
程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結合報告理解代碼含義。

關鍵字:51單片機 波形信號發(fā)生器
引用地址:
基于51單片機的可調頻率幅值的波形信號發(fā)生器設計
推薦閱讀最新更新時間:2025-06-07 23:28
基于51單片機,3秒1亮的程序
#include reg52.h sbit led=P2^0; void delay3s(void) //誤差 0us { unsigned char a,b,c; for(c=189;c 0;c--) for(b=230;b 0;b--) for(a=33;a 0;a--); } void main() { while(1) { led = ~led; delay3s(); } }
[單片機]
8051單片機-軟件復位
ISP_CONTR:ISP/IAP控制寄存器 D7 D6 D5 D4 D3 D2 D1 D0 復位值 ISPEN SWBS SWRST - - WT2 WT1 WT0 000x,0000 SWBS:當設置為0時,軟件復位后從用戶應用程序區(qū)啟動;當設置為1時,軟件復位從ISP程序區(qū)啟動,。要與SWRST直接配合才可以實現。 SWRST:當設置為0時,不執(zhí)行軟件復位;當設置為1時,產生軟件系統(tǒng)復位,硬件自動清零。 該復位是整個系統(tǒng)復位,所有的特殊功能寄存器都會復位到初始值,I/O口也會初始化。 【例子】通過按鍵中斷來使MCU軟件復位,復位后閃爍LED燈一段時間,然
[單片機]
51單片機數據類型int,float,指針所占字節(jié)數
1.int===2個字節(jié) 2.sfr===特殊功能寄存器,也是一種擴充數據類型,占用1個內存單元,利用它可以訪問51單片機內的所有特殊功能寄存器。 sfr P1 = 0x90;/////////這一句定義P1為P1端口在片內的寄存器。 3.sfr16===16位特殊功能的寄存器。用于定時器T0,T1 4.sbit===可錄址位,也是一種擴充數據類型。利用它可訪問芯片內部RAM中的可尋址位或特殊功能寄存器的可尋址位。 sfr P1 = 0x90;/////////因P1端口的寄存器是可尋址位的,所以我們可以定義 sbit P1_1 = P1^1;///////P1_1為P1中的P1.1引腳 ////////== sbit P1_1
[單片機]
海速芯8051單片機TM52F1376在電子投票機中的應用
8051單片機的應用可減小電子產品的尺寸、成本和復雜性,本篇文章主要介紹海速芯8051單片機TM52F1376在電子投票機中的應用。 TM52F1376電子投票機應用 電子投票機,也就是我們??吹降碾娨暪?jié)目中給演唱歌手投票的工具,這是TM52F1376在電子領域的典型應用之一。 如使用某一項目設計的投票機可容納八名參賽者,那么,八個按鈕與八個參賽者相關,其中一個主按鈕用于投票權限。通過使用主按鈕,可以避免單個人進行多次投票,因為每個人都需要獲得其投票的批準(一個人只能將一個選票投票給任何一位參賽者)。 此方案的應用框圖由電源模塊、按鈕、單片機模塊、LCD顯示屏、蜂鳴器、EEPROM和晶體管等各種模塊組成。投票人員的
[單片機]
89C2051單片機無線遙控電鈴的工作原理
如電路圖所示。AC220V市電經降壓、整流、濾波后,得到12V直流電壓,再經穩(wěn)壓得到Sv直流電壓,分別為繼電器J1、89C2051單片機和315接收模塊供電。 未按遙控器的A鍵時,接收模塊⑩腳沒有指令信號輸出,單片機Pl.0口的綠色指示燈Dl每隔0.5秒閃一下,Dl既作電源指示又作遙控指令信號。此時,如果按下遙控器的A鍵,接收模塊收到信號后從⑩腳輸出高電平信號到單片機的P3.0口,單片機從P1.2口輸出低電平,P1.1口輸出高電平,令綠燈滅紅燈亮,同時經三極管Q1驅動繼電器J1吸合,電鈴響10秒后恢復初始狀態(tài)。完整的程序清單如下(已通過調試)。
[單片機]
51單片機產生PWM方法
89C51芯片沒有自帶PWM發(fā)生器,如果要用51來產生PWM波就必須要用軟件編程的方法來模擬。方法大概可以分為軟件延時和定時器產生兩種方法。下面將逐一介紹。 1 軟件延時法 利用軟件延時函數,控制電平持續(xù)的時間,達到模擬pwm的效果。 程序如下: #include sbit pwm=P1^0; main() { while(1) { pwm=1; delayus(60);//置高電平后延時60us,占空比60% pwm=0; delayus(40); } } void delayus(uint x) { while(x--); } proteus軟件仿真結果如下: 可見,用這種延時函數的方法就能簡單地模擬出pwm輸出。但是
[單片機]
基于51單片機的實時時鐘+溫度應用設計
顯示實時時鐘、溫度檢測并使用LCD1602顯示相關信息 ,能模式切換、加減時間。 仿真圖: 程序運行圖: 部分程序: #include REG51.H #include intrins.h //#include LCD1602.h //#include DS1302.h #define uint unsigned int #define uchar unsigned char sbit DS1302_CLK = P1^7; //實時時鐘時鐘線引腳 sbit DS1302_IO = P1^6; //實時時鐘數據線引腳 sbit DS1302_RST = P1^5; //實時時鐘復位線引腳 sbit wireless_1 =
[單片機]
51單片機學習:LED閃爍實驗
實驗名稱:LED閃爍實驗 接線說明: 實驗現象:下載程序后“LED模塊”的D1指示燈閃爍 注意事項: ***************************************************************************************/ #include reg52.h typedef unsigned int u16; //對系統(tǒng)默認數據類型進行重定義 typedef unsigned char u8; sbit LED1=P2^0; //將P2.0管腳定義為LED1 /**********************************************************
[單片機]