❶ 初學者使用哪種單片機開發板比較好
現在依然迷茫的我說點我自己的感覺吧,
1、首先你得先看看C語言的東西。了解一下知道基本的程序結構。什麼循環啊,指針啊,數組啊、堆棧啊之類的(我自己依然迷糊)
2、然後你可以上手51,搞個開發板,邊練邊學。這其中最開始會好一點。慢慢堅持下來。後面的什麼SPI、IIC、CAN之類的匯流排了可能就麻煩一點。(我也是稀里糊塗)
3、如果你有一些基礎的話,其實也可以上STM32的,庫函數如果你能接受的話,會上手快一點,不過用庫函數多數有點死記函數的意味。或者你知道怎麼去找到你要用的函數。剩下的其實還是一些程序上的東西。這里邊很多知識,需要慢慢積累的。要從最開始的時候多動手,多自己寫寫程序。
4、ARM的話沒搞過。主要是要上系統。我的水平太次了。。以後再慢慢學吧。
5、你可以買套開發板。普中的什麼的一大堆。視頻51我是看的郭天祥的。感覺還不錯。他的視頻課時很長,耐心看下去吧。他講的知識不局限於開發板什麼的。裡面有一些什麼硬體知識,AD軟體都講了點。STM32的話我是看的正點原子的。開發板也是他的。反正個人喜好吧。買別的開發板或者手頭上原來有的或者別人留下的都可以。你可以參照別人講的。再自己寫自己的開發板的程序。
6、網站的話主要是個人喜好。開源電子網、電子工程師論壇、阿莫什麼的都可以,看你自己。
7、真心的希望你堅持下去。我一直都是迷迷糊糊。學的什麼都不是。所以看到有人提問,也想告誡一下,堅持下去。你會成功的。平時沒事多逛逛論壇,看看大神說的。多動動手。衷心的祝你能成功。
❷ 求dac0832與51單片機介面電路圖,
我做的濾波器
#include<reg51.h>
#include"math.h"
#defineN25
#definePI3.1415926
sbitda_wr1=P3^6;
sbitda_cs=P2^7;
voidInputWave();
floatFIR();
voidda0832();
floatfHn[N]={0.0,0.0,0.001,-0.002,0.01,-0.09,
-0.018,0.049,-0.02,0.11,0.28,0.64,0.28,
-0.11,-0.02,0.049,-0.018,-0.009,0.01,
-0.002,-0.002,0.001,0.0,0.0
};
floatfXn[N]={0.0};
floatfInput,fOutput;
floatfSignal1,fSignal2;
floatfStepSignal1,fStepSignal2;
floatf2PI;
inti;
floatFIN[256],FOUT[256];
intnIn,nOut;
main(void)
{
nIn=0;nOut=0;
f2PI=2*PI;
fSignal1=0.0;
fSignal2=PI*0.1;
fStepSignal1=2*PI/30;
fStepSignal2=2*PI*1.4;
while(1)
{
//fInput=InputWave();
InputWave();
//FIN[nIn]=fInput;
//nIn++;nIn%=256;
fOutput=FIR();
FOUT[nOut]=fOutput;
nOut++;
if(nOut>=256)
{nOut=0;da0832();
}
}
}
/*floatInputWave()
{
for(i=N-1;i>0;i--)fXn[i]=fXn[i-1];
fXn[0]=sin(fSignal1)+cos(fSignal2)/6.0;
fSignal1+=fStepSignal1;
if(fSignal1>=f2PI)fSignal1-=f2PI;
fSignal2+=fStepSignal2;
if(fSignal2>=f2PI) fSignal2-=f2PI;
return(fXn[0]);
} */
voidInputWave()
{
inti;
for(i=0;i<=15000;i++)
{
fXn[i]=(sin(PI*2*i/N*15000)+1)*5;
}
}
floatFIR()
{
floatfSum;
fSum=0;
for(i=0;i<N;i++)fSum+=(fXn[i]*fHn[i]);
return(fSum);
}
voidda0832()
{
unsignedchari;
da_cs=0;//da轉換輸出使能標志置位
da_wr1=0;//輸入寄存器的官寫選通信號,表示單片機要傳送數據了
for (i=0;i<255;i++)
P0=FOUT[i];
da_wr1=1;//數據傳送完成,使能鎖存
da_cs=1;
}
❸ 單片機與網路的通信
問題說得不太清楚:
1,您想用什麼網連接?
我曾經做過這個項目,當時使用的是MCU+串口+Modem遠程式控制制,協議使用UDP+IP+PPP,您如果想簡化通信協議棧,也可以使用該協議棧。TCP涉及到排序及重發機制,比較復雜,同時資源佔用比較多。但如果對TCP進行裁剪,也可以用51實現,有相關圖書的中文譯本,我看過。如果使用ARM開發板+嵌入式操作系統+TCP/IP函數組,開發會快很多。
2,網頁放在那裡?
說實話,不知道您設計的方案。您是想使用PC機來控制遠程MCU?還是反之?還是其他?如果使用PC控制遠程MCU,你可以選擇將網頁放在MCU中,這樣需要HTML協議。其實也可以將界面設計在PC中,這樣可以省掉一層HTML協議,比較簡單,但在PC上需要安裝這個控制界面,不能隨心所欲地使用任意PC操作,不是很方便。