標(biāo)題: 基于51單片機(jī)函數(shù)信號(hào)發(fā)生器完整論文下載 帶源碼 原理圖 [打印本頁]

作者: 山中人家    時(shí)間: 2017-5-3 17:15
標(biāo)題: 基于51單片機(jī)函數(shù)信號(hào)發(fā)生器完整論文下載 帶源碼 原理圖
這個(gè)51單片機(jī)函數(shù)信號(hào)發(fā)生器論文,大家可以看看

摘要
本文以STC89C51單片機(jī)為核心設(shè)計(jì)了一個(gè)低頻函數(shù)信號(hào)發(fā)生器。信號(hào)發(fā)生器采用數(shù)字波形合成技術(shù),通過硬件電路和軟件程序相結(jié)合,可輸出自定義波形,如正弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的頻率和幅度在一定范圍內(nèi)可任意改變。波形和頻率的改變通過軟件控制,幅度的改變通過硬件實(shí)現(xiàn)。介紹了波形的生成原理、硬件電路和軟件部分的設(shè)計(jì)原理。本系統(tǒng)可以產(chǎn)生最高頻率798.6HZ的波形。該信號(hào)發(fā)生器具有體積小、價(jià)格低、性能穩(wěn)定、功能齊全的優(yōu)點(diǎn)。


1設(shè)計(jì)選題及任務(wù)
設(shè)計(jì)題目:基于單片機(jī)的信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)
任務(wù)與要求:
設(shè)計(jì)一個(gè)由單片機(jī)控制的信號(hào)發(fā)生器。運(yùn)用單片機(jī)系統(tǒng)控制產(chǎn)生多種波形,這些波形包括方波、三角波、鋸齒波、正弦波等。信號(hào)發(fā)生器所產(chǎn)生的波形的頻率、幅度均可調(diào)節(jié)。并可通過軟件任意改變信號(hào)的波形。
基本要求:
1.              產(chǎn)生三種以上波形。如正弦波、三角波、矩形波等。
2.最大頻率不低于 500Hz。并且頻率可按一定規(guī)律調(diào)節(jié),如周期按1T,2T,3T,4T或1T,2T,4T,8T變化。
3.幅度可調(diào),峰峰值在0——5V之間變化。
擴(kuò)展要求:產(chǎn)生更多的頻率和波形。


2系統(tǒng)概述
2.1方案論證和比較
211總體方案:
方案一:采用模擬電路搭建函數(shù)信號(hào)發(fā)生器,它可以同時(shí)產(chǎn)生方波、三角波、正弦波。但是這種模塊產(chǎn)生的不能產(chǎn)生任意的波形(例如梯形波),并且頻率調(diào)節(jié)很不方便。
方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(VCO)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達(dá)到輸出頻率覆蓋系數(shù)的要求,且電路復(fù)雜。
方案三:使用集成信號(hào)發(fā)生器發(fā)生芯片,例如AD9854,它可以生成最高幾十MHZ的波形。但是該方案也不能產(chǎn)生任意波形(例如梯形波),并且價(jià)格昂貴。
方案四:采用AT89C51單片機(jī)和DAC0832數(shù)模轉(zhuǎn)換器生成波形,加上一個(gè)低通濾波器,生成的波形比較純凈。它的特點(diǎn)是可產(chǎn)生任意波形,頻率容易調(diào)節(jié),頻率能達(dá)到設(shè)計(jì)的500HZ以上。性能高,在低頻范圍內(nèi)穩(wěn)定性好、操作方便、體積小、耗電少。
經(jīng)比較,方案四既可滿足課程設(shè)計(jì)的基本要求又能充分發(fā)揮其優(yōu)勢,電路簡單,易控制,性價(jià)比高,所以采用該方案.

212改變幅度方案:
方案一:可以將送給DA的數(shù)字量乘以一個(gè)系數(shù),這樣就可以改變DA輸出電流的幅度,從而改變輸出電壓;但是這樣做有很嚴(yán)重的問題,單片機(jī)在做乘法運(yùn)算時(shí)需要很長的時(shí)間,這樣的話輸出波形的頻率就會(huì)很低,達(dá)不到至少500HZ的要求;
并且該方案的輸出電壓做不到連續(xù)可調(diào),當(dāng)DA的輸入數(shù)字量比較小時(shí),輸出的波形失真就會(huì)比較嚴(yán)重。
方案二:將輸出電壓通過一個(gè)運(yùn)算放大器的放大。這樣還有個(gè)優(yōu)點(diǎn)是幅度連續(xù)可調(diào)。
經(jīng)比較,方案二既可滿足課程設(shè)計(jì)的基本要求,并且電路也挺簡單。



2.2工作原理
數(shù)字信號(hào)可以通過數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號(hào),因此可通過產(chǎn)生數(shù)字信號(hào)再轉(zhuǎn)換成模擬信號(hào)的方法來獲得所需要的波形。89C51單片機(jī)本身就是一個(gè)完整的微型計(jì)算機(jī),具有組成微型計(jì)算機(jī)的各部分部件:中央處理器CPU、隨機(jī)存取存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、I/O接口電路、定時(shí)器/計(jì)數(shù)器以及串行通訊接口等,只要將89C51再配置鍵盤及、數(shù)模轉(zhuǎn)換及波形輸出、放大電路等部分,即可構(gòu)成所需的波形發(fā)生器,其信號(hào)發(fā)生器構(gòu)成系統(tǒng)框圖如下圖所示。

系統(tǒng)框圖

89C51是整個(gè)波形發(fā)生器的核心部分,通過程序的編寫和執(zhí)行,產(chǎn)生各種各樣的信號(hào),并從鍵盤接收數(shù)據(jù),進(jìn)行各種功能的轉(zhuǎn)換和信號(hào)幅度的調(diào)節(jié)。當(dāng)數(shù)字信號(hào)電路到達(dá)轉(zhuǎn)換電路,將其轉(zhuǎn)換成模擬信號(hào)也就是所需要的輸出波形。
波形ROM表是將信號(hào)一個(gè)周期等間距地分離成64個(gè)點(diǎn),儲(chǔ)存在單片機(jī)得RON內(nèi)。具體ROM表是通過MATLAB生成的,例如正弦表,MATLAB生成的程序如下:
x=0:2*pi/64:2*pi; y=round(sin(x)*127)+128



3單元電路設(shè)計(jì)與分析
3.1.1主控電路
設(shè)計(jì)中主要采用STC89C51型單片機(jī),它具有如下優(yōu)點(diǎn):(1)擁有完善的外部擴(kuò)展總線,通過這些總線可方便地?cái)U(kuò)展外圍單元、外圍接口等。(2)該單片機(jī)內(nèi)部擁有4K字節(jié)的FLASH ROM程序存儲(chǔ)器空間和256字節(jié)的RAM數(shù)據(jù)存儲(chǔ)空間,完全可以滿足程序的要求。由于該芯片可電擦寫,故可重復(fù)使用。如果更改程序內(nèi)容,可將芯片拿下重新燒寫。(3)該單片機(jī)與工業(yè)標(biāo)準(zhǔn)的MCS-51型機(jī)的指令集和輸出引腳兼容。
中斷系統(tǒng)是使處理器具有對(duì)外界異步事件的處理能力而設(shè)置的。當(dāng)中央處理器CPU正在
處理某件事的時(shí)候外界發(fā)生了緊急事件,要求CPU暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個(gè)緊
急事件。
在波形發(fā)生器中,用兩個(gè)開光直接與外部中斷0和外部中斷1的管腳相連,其中S1開光用來改變波形,S2開光用來改變頻率。在程序主函數(shù)中,我們寫了個(gè)死循環(huán)一直輸出一個(gè)默認(rèn)的波形,當(dāng)S1或S2按下又抬起時(shí),程序會(huì)暫時(shí)跳出死循環(huán),進(jìn)入中斷處理程序,從而對(duì)波形和頻率進(jìn)行改變。
時(shí)鐘電路。由于頻率較大時(shí),三角波、正弦波、方波等波中每一點(diǎn)延時(shí)時(shí)間為幾微秒,故延時(shí)時(shí)間還要加上指令時(shí)間即可得到指定頻率的波形,該電路用11.0592MHz晶振。
主控電路圖

3.1.2 數(shù)/模轉(zhuǎn)換電路
由于單片機(jī)產(chǎn)生的是數(shù)字信號(hào),要想得到所需要的波形,就要把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),所以該文選用價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器以及輸入控制電路四部分組成。但實(shí)際上,DAC0832輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對(duì)分辨率為單位增減,是準(zhǔn)模擬量的輸出。DAC0832是電流型輸出,在應(yīng)用時(shí)外接運(yùn)放使之成為電壓型輸出。
根據(jù)對(duì)DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。本設(shè)計(jì)選用直通方式。
DAC0832的數(shù)據(jù)口和單片機(jī)的P0口相連。
CSDA:片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器),低電平有效;
WR:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存;
數(shù)模轉(zhuǎn)換電路

3.1.3運(yùn)算放大電路和低通濾波電路
LM324的5管腳與DAC0832的(IOUT2)12管腳相連,LM324的6管腳與DAC0832的(IOUT1)11管腳相連,LM324的7管腳與DAC0832的REF(9)管腳相連.
第一級(jí)運(yùn)算放大器的作用是將DAC0832輸出的電流信號(hào)轉(zhuǎn)化為電壓信號(hào)V1,第二級(jí)運(yùn)算放大器的作用是將V1通過反向放大電路-(R2/R1)倍。
題目要求輸出的電壓在0-5V可調(diào),而V1的電壓大約是5V,所以R1選擇5K的電阻,R2選擇10K的電位器,這樣最大的輸出電壓為5*(10/2)=10,最小電壓為0,可以實(shí)現(xiàn)題目要求的0-5V。
在第二個(gè)運(yùn)算放大器的輸出端連了一個(gè)低通濾波器。如果不加低通濾波器,也能夠生成波形,但是產(chǎn)生的信號(hào)中毛刺很多,加一個(gè)低通濾波器不僅起到的濾波的作用,還起到了平滑的作用。低通濾波器的截止頻率F=1/(2*pi*R3*C6),這里我們選擇R3 為100歐姆電阻,C6為104電容,截止頻率F=16KHZ。實(shí)驗(yàn)表明,此時(shí)的輸出波形效果不錯(cuò)。

3.1.4串口通信電路
通用異步收發(fā)器(UART)是一種串行接口,一般微處理器中都包含這種外設(shè)接口。異步串行接口提供了一種簡單的途徑,使兩個(gè)器件無需共享同一個(gè)時(shí)鐘信號(hào)就能進(jìn)行通信。如果再加入一個(gè)合適的電平轉(zhuǎn)換器MAX232,串口就能能用在RS232和RS485等網(wǎng)絡(luò)中實(shí)現(xiàn)通信,或者與計(jì)算機(jī)的COM端口連接。串口只需兩根信號(hào)線(RX和TX)即可實(shí)現(xiàn),而且只要兩端器件都采用同樣的位格式和波特率,那么它們無需其它任何對(duì)方的信息就可以成功傳輸數(shù)據(jù)。
                                                        串口通信電路圖

3.2系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)上,根據(jù)功能分了幾個(gè)模塊編程。模塊主要有:主程序模塊、外部中斷0模塊,外部中斷1模塊。
主程序:
              主程序先是進(jìn)行一些初始化的工作,然后根據(jù)波形標(biāo)志a,b,c,d,e的值進(jìn)入相應(yīng)的while 循環(huán)。這樣寫的好處是輸出的波形頻率可以790多HZ。在while循環(huán)中,單片機(jī)根據(jù)地址標(biāo)志位不停低查表,然后把查得的值賦給DAC0832的數(shù)據(jù)口,然后地址標(biāo)志位加一,并判斷地址標(biāo)志位是否等于64,如果是就置0再往下執(zhí)行,如果不是直接往下執(zhí)行。然后根據(jù)頻率標(biāo)志位進(jìn)行相應(yīng)的延時(shí)。
主程序流程圖

中斷服務(wù)程序:
本程序中兩個(gè)外部中斷分別起到了控制波形和頻率的作用。在程序中還加入了消抖部分。

4安裝調(diào)試及測量數(shù)據(jù)分析
4.1調(diào)試過程;
1. 不通電,用萬用表根據(jù)電路圖仔細(xì)檢查各線路連接是否正常。
2. 首先是調(diào)試單片機(jī)部分,DA和運(yùn)算放大器芯片不接。用STC_ISP_V483軟件通過串口下程序?词欠窨梢哉O鲁绦。
3.當(dāng)可以正常下程序時(shí),給51單片機(jī)下一個(gè)讓所有I/0口一會(huì)兒輸入0,延時(shí),再輸出1,以此類推。用萬用表測量各I/O口得電壓是不是一會(huì)兒高,一會(huì)兒低。
4.安上DA和運(yùn)算放大器芯片,給單片機(jī)下一個(gè)輸出正弦波的測試程序,通過示波器看輸出是否正常。
5. 給單片機(jī)下一個(gè)完整的程序,分別按下S1,看波形是否改變。按下S2,看頻率是否改變。



4.2頻率的測量數(shù)據(jù):
                                                                                                                                                                                                                             單位:HZ
周期
T
2T
3T
4T
5T
6T
7T
8T
理論值
798.6
399.3
266.2
199.7
159.7
133.1
114.1
99.8
實(shí)際值
798.6
399.6
266.5
199.9
159.9
133.3
114.2
99.9


4.3出現(xiàn)的問題與解決的方法:
1.
調(diào)試單片機(jī)的串口時(shí),發(fā)現(xiàn)不能正常的下程序。我想可能是單片機(jī)壞了借了一塊學(xué)習(xí)板測試了一下單片機(jī)芯片,發(fā)現(xiàn)可以正常下載。這說明很可能是MAX232的電路出了問題。我仔細(xì)查看了電路圖,又上網(wǎng)查了下其他的MAX232的電路圖,發(fā)現(xiàn)我的電路圖和別人的不一樣。我是按照郭天翔的那本《新概念51單片機(jī)C語言教程 入門、提高、開發(fā)、拓展全》第130頁的串口電路畫的圖,電路圖中MAX232的TIOU1接串口的第3腳。而其他書上有些電路圖卻是MAX232的TIOU1接到了串口的第2腳。于是我將MAX232的TIOU1接串口的第2腳,再下程序,終于可以正常下載了。
2.剛開始寫的測試程序輸出的波形失真很大。我想可能是波形的ROM表里的數(shù)據(jù)值過小,導(dǎo)致DA輸出的誤差很大。因而臥將波形的ROM表里的數(shù)據(jù)值調(diào)大,在測試時(shí)發(fā)現(xiàn)波形變得好多了。
3.
調(diào)試波形的時(shí)候我發(fā)現(xiàn)矩形波的失真比較大。我想到可能是低通濾波器的截止頻率太低了,因而我將RC低通濾波器的電阻由1K換成了100歐姆,效果好了很多。

4.4系統(tǒng)仿真波形:
矩形波
鋸齒波
正弦波

4.5效果分析:
由4.2的頻率理論值與實(shí)際值,可知頻率在T,2T,3T,4T,5T,6T,7T,8T上頻率誤差很小。
最終的波形輸出效果也很不錯(cuò)。

4.6測量儀器
示波器
直流穩(wěn)壓電源
萬用表

5結(jié)束語
基于單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì),這個(gè)信號(hào)發(fā)生器的設(shè)計(jì)中涉及到一個(gè)典型的控制過程。通過單片機(jī)控制一個(gè)模數(shù)轉(zhuǎn)換器DAC0832產(chǎn)生所需要的電流,然后使用運(yùn)算放大器LM324可以將其電流輸出線性地轉(zhuǎn)換成電壓輸出,再將電壓經(jīng)過運(yùn)算放大器的放大,可以得到足夠幅度的信號(hào)。通過程序的控制,可以產(chǎn)生一系列有規(guī)律的波形。這樣一個(gè)信號(hào)發(fā)生裝置在控制領(lǐng)域有相當(dāng)廣泛的應(yīng)用范圍。
最終做出來的信號(hào)發(fā)生器滿足了題目中的所有要求:
1.產(chǎn)生五種波形。正弦波、三角波、矩形波、梯形波,鋸齒波。
2.最大頻率為798.6HZ。并且頻率可按按1T,2T,3T,4T,5T,6T,7T,8T變化。
3.幅度可調(diào),峰峰值在0——5V之間變化。
當(dāng)然還是存在不足的地方,比如不能實(shí)現(xiàn)頻率的按一個(gè)小的步進(jìn)調(diào)整。并且當(dāng)頻率太小時(shí)矩形波會(huì)有些失真。
信號(hào)發(fā)生器可以生成更多的波形,只需要再加些波形表即可。
在這里得感謝學(xué)校為我們提供個(gè)這樣一個(gè)實(shí)踐的機(jī)會(huì),當(dāng)然還得感謝實(shí)驗(yàn)室指導(dǎo)老師們的細(xì)心指導(dǎo)。


參考文獻(xiàn):
[1] 郭天翔.新概念51單片機(jī)C語言教程 入門、提高、開發(fā)、拓展全.北京.電子工業(yè)出版社 2009.1
[2] 童詩白.模擬電路技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2000.171~202.



附錄
1:總電路圖



附錄2:源程序

  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit csda=P2^2;
  5. sbit wr=P2^1;
  6. sbit s1=P3^2;
  7. sbit s2=P3^3;
  8. uchar k=0,p=0,delay=0;
  9. uchar bxxz=0;pinglv=0;
  10. uchar a=1,b=0,c=0,d=0,e=0;

  11. uchar code sin[64]={
  12. 135,145,158,167,176,188,199,209,218,226,234,240,245,249,252,254,254,253,251,247,243,237,230,222,213,204,193,182,170,158,
  13. 146,133,121,108,96,84,72,61,50,41,32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66,78,90,102,114,128
  14. };
  15. uchar code juxing[64]={
  16. 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
  17. 255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  18. };
  19. uchar code juchi[64]={
  20. 0,4,8,12,16,20,24,28,32,36,40,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,130,134,138,142,
  21. 146,150,154,158,162,166,170,174,178,182,186,190,194,198,202,206,210,215,219,223,227,231,235,239,243,247,251,255
  22. };
  23. uchar code tixing[64]={
  24. 0,13,26,39,52,65,78,91,104,117,130,143,156,169,182,195,208,221,234,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
  25. 247,247,247,247,247,247,247,242,229,216,203,190,177,164,151,138,125,112,99,86,73,60,47,34,21,8
  26. };
  27. uchar code sanjiao[64]={
  28. 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,
  29. 248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,0
  30. };
  31. void delay1()
  32. {
  33.               int a,b;
  34.               for(a=1;a>0;a--)
  35.                             for(b=122;b>0;b--);
  36. }
  37. void int0() interrupt 0
  38. {            
  39.               EX0=0;
  40.               delay1();
  41.               if(s1==0){                           
  42.               bxxz++;
  43.               if(bxxz==5)
  44.                             bxxz=0;
  45.               switch(bxxz)
  46.                             {
  47.                             case 0 :
  48.                                           {a=1,b=0,c=0,d=0,e=0;}
  49.                                           break;
  50.                             case 1 :
  51.                                           {a=0,b=1,c=0,d=0,e=0;}
  52.                                           break;
  53.                             case 2 :
  54.                                           {a=1,b=0,c=1,d=0,e=0;}
  55.                                           break;            
  56.                             case 3 :
  57.                                           {a=0,b=0,c=0,d=1,e=0;}
  58.                                           break;
  59.                             case 4 :
  60.                                           {a=0,b=0,c=0,d=0,e=1;}
  61.                                           break;
  62.                             }
  63.               delay1();
  64.               while(!s1);            
  65.                             }
  66.               while(!s1);
  67.               EX0=1;
  68. }
  69. void int1() interrupt 2
  70. {
  71.               EX1=0;            
  72.               delay1();
  73.               if(s2==0){                           
  74.               p++;
  75.               if(p==8)
  76.                                p=0;
  77.               switch(p)
  78.                             {
  79.                             case 1 :
  80.                                           pinglv=3;
  81.                                           break;
  82.                             case 2 :
  83.                                           pinglv=6;
  84.                                           break;            
  85.                             case 3 :
  86.                                           pinglv=9;
  87.                                           break;
  88.                             case 4 :
  89.                                           pinglv=12;
  90.                                           break;
  91.                             case 5 :
  92.                                           pinglv=15;
  93.                                           break;
  94.                             case 6 :
  95.                                           pinglv=18;
  96.                                           break;
  97.                             case 7 :
  98.                                           pinglv=21;
  99.                                           break;                                                      
  100.                             default :
  101.                                           pinglv=0;
  102.                                           break;
  103.                             }
  104.                             delay1();
  105.                             while(!s2);            
  106.                             }
  107.               while(!s2);            
  108.               EX1=1;
  109. }
  110. void main()
  111. {
  112.               csda=0;
  113.               wr=0;
  114.               EA=1;
  115.               IT0=1;
  116.               EX0=1;
  117.               IT1=1;
  118.               EX1=1;
  119.               while(1)
  120.               {
  121.                             while(a)
  122.                             {
  123.                             delay=pinglv;
  124.                             P0=sin[k];
  125.                             k++;
  126.                             if(k==64)
  127.                                           k=0;
  128.                             while(delay)           
  129.                                               delay--;
  130.                             }
  131.                             while(b)
  132.                             {
  133.                             delay=pinglv;
  134.                             P0=juxing[k];
  135.                             k++;
  136.                             if(k==64)
  137.                                           k=0;
  138.                             while(delay)         
  139.                                               delay--;
  140.                             }
  141.                             while(c)
  142.                             {
  143.                             delay=pinglv;
  144.                             P0=juchi[k];
  145.                             k++;
  146.                             if(k==64)
  147.                                           k=0;
  148.                             while(delay)           
  149.                                               delay--;
  150.                             }
  151.                             while(d)
  152.                             {
  153.                             delay=pinglv;
  154.                             P0=tixing[k];
  155.                             k++;
  156.                             if(k==64)
  157.                                           k=0;
  158.                             while(delay)           
  159.                                               delay--;
  160.                             }


  161. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

完整論文下載:
基于51單片機(jī)的信號(hào)發(fā)生器-完整電路、程序.doc (384 KB, 下載次數(shù): 534)



作者: 龍與少年游    時(shí)間: 2017-8-13 15:02
給力給力

作者: 愛吃排骨的ss    時(shí)間: 2017-12-13 21:16
贊贊贊
作者: YLFTAKE    時(shí)間: 2018-3-10 15:33
厲害~~~
作者: xiegh    時(shí)間: 2018-3-14 16:13
看起來很不錯(cuò),有沒有器材清單
作者: rj0202    時(shí)間: 2018-3-14 20:26
學(xué)到了
作者: hhdbaby    時(shí)間: 2018-4-12 15:37
xiegh 發(fā)表于 2018-3-14 16:13
看起來很不錯(cuò),有沒有器材清單

做出來了嗎?
作者: hhdbaby    時(shí)間: 2018-4-12 15:47
串口通信電路要程序嗎?
作者: huahusiasu    時(shí)間: 2018-5-3 04:10
很好的一個(gè)分享
作者: yes____    時(shí)間: 2018-5-15 17:35
delay=pinglv;請(qǐng)問這句是什么意思 啊
作者: 565106557    時(shí)間: 2018-5-18 11:19
不錯(cuò),贊一個(gè)
作者: ~Roll~、    時(shí)間: 2018-7-9 12:10
很給力,謝謝
作者: 通超    時(shí)間: 2018-7-16 22:01
很好的資源,感謝分享!
作者: Saigetsu    時(shí)間: 2018-7-20 10:37
這個(gè)挺厲害的,但是原材料清單有沒有
作者: Everest    時(shí)間: 2018-10-1 20:46
感謝分享。。
作者: QIANCHENGBC    時(shí)間: 2018-10-31 21:34
拿來參考非常不錯(cuò)
作者: gemxie    時(shí)間: 2018-11-4 22:45
好東西啊。謝謝了
作者: 1ychee    時(shí)間: 2018-11-5 09:29
蠻詳細(xì)的
作者: adminTN    時(shí)間: 2018-11-13 15:39
很給力,幫助很大
作者: red178    時(shí)間: 2018-11-13 19:31
努力,學(xué)習(xí)中,謝謝!
作者: 轉(zhuǎn)身回到    時(shí)間: 2018-11-27 16:22
感謝分享
作者: zh19999999    時(shí)間: 2018-12-12 14:44
厲害呀
作者: 15738536901    時(shí)間: 2018-12-24 11:51
給力給力
作者: 12345633    時(shí)間: 2019-1-5 16:53
厲害

作者: sss123123    時(shí)間: 2019-1-16 23:00
下載了,只有主函數(shù)啊,沒有DAC0832的函數(shù)啊
作者: 499799107    時(shí)間: 2019-2-26 09:45
sss123123 發(fā)表于 2019-1-16 23:00
下載了,只有主函數(shù)啊,沒有DAC0832的函數(shù)啊

怎么下載啊

作者: 大順666    時(shí)間: 2019-4-15 22:12
希望你可以把極限頻率提高到1Khz
作者: 學(xué)什么電控    時(shí)間: 2019-4-18 17:23
太棒了這東西
作者: 曹慢慢    時(shí)間: 2019-5-14 00:17
厲害了哦  看一看
作者: liuchbeyond    時(shí)間: 2019-5-14 11:25
相當(dāng)不錯(cuò)
作者: 酸葡萄    時(shí)間: 2019-5-14 16:17
感謝分享

作者: 461614    時(shí)間: 2019-6-25 15:30
很完整,很棒
作者: snaiodiwa    時(shí)間: 2019-12-12 16:31
很棒的帖子
作者: 2098262008    時(shí)間: 2020-7-7 15:47
有sch原理圖文件嗎
作者: guan1989    時(shí)間: 2020-9-4 11:55
正想做個(gè)函數(shù)信號(hào)發(fā)生器,下載學(xué)習(xí)參考下
作者: xcer    時(shí)間: 2024-8-30 17:01
給力,大佬優(yōu)秀!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1