前輩學51微控制器的感悟是怎麼樣的?說說看

時間 2021-05-07 12:13:38

1樓:大唐ing

學微控制器一段時間後,你會發現:學微控制器其實就是在學很多很多的晶元,用主晶元(以STC89C52為例)控制二極體、三極體(這是最基本的),更多的是用主晶元(以STC89C52為例)來控制形形色色的晶元,從而實現功能。而晶元內部就是很複雜的電路,各種邏輯電路,運算電路又可以被拆解為很多更基本的電路。

2樓:科技愛好者

我也學了51微控制器,後來因為要開發各種應用軟體,也有機會跟各個裝置公司的技術人員學習,主要是各種裝置的技術文件,二次開發介面和通訊協議。所以有了更多的體會。我覺得重要的是軟體的設計思想。

51微控制器容易入門,但是資源不足時就得換更好的比如stm32之類。而且用嵌入式系統能更好的設計下位機軟體。

3樓:「已登出」

不邀自來,前面已經有了很多專業的回答,就不再班門弄斧了,說個別的角度的收穫。

大一開了C語言這麼課,當時寫個簡單的for迴圈都覺得難,乙個氣泡排序要想好久,大二寒假自學了51做了一點點小東西,在那時候再寫C發現冒泡那些不過是很基礎的東西,很容易,所以,大抵興趣是最好的老師,實踐更容易掌握,以上。

4樓:ugy fyt

#include

#define uint unsigned int

#define uchar unsigned char

uchar n=1, i=1, State=1,rate=10;

/* 宣告馬達輸出埠 */

sbit MotorL_1=P2^5; //電機左驅動口 IN1

sbit MotorL_2=P2^4; //電機左驅動口 IN2

sbit MotorR_1=P4^4; //電機右驅動口 IN1

sbit MotorR_2=P4^5; //電機右驅動口 IN2

sbit key=P4^1;

sbit key1=P3^7;

void forward(void);

/*void backward(void);

void revolve(void);

void revolve2(void);

*/int keyscan(void);

void TimerInit(void);

//void left(void);

//void right(void);

void main(void)

else if(State==2)

*/keyscan();} }

void forward(void)

/*void backward(void)

void revolve(void)

void revolve2(void)

void left(void)

void right(void)

*/int keyscan(void)

while(key==0);

}return n;

}void TimerInit(void)

void TimerA_InterruptServiceRoutine(void) interrupt 1

else if(i

else if(i==1001)

i=0;

}理解這個程式的PWM波的實現過程,你就入門了,這個是自己寫的最簡單的程式了,當然最好還是學好英語,過了六級再說,方便閱讀DATEsheet

5樓:袁丁丁

以下是個人看法

裝逼是第一源動力

在給51程式設計的時候,我一直致力於怎樣搞能更有逼格,能更好的裝逼,然後怎麼樣把目前的逼裝圓了…然後,本來打算做乙個很簡單的功能,然後感覺,這不屌啊,結果,這添一點,那添一點,然後…咦,這有bug,那裡顯示不好…加了這個功能按鍵不能用了!加了那個功能顯示亂碼了!然後一著手讀說明文件解決問題,發現複雜程度遠遠超過了預期,裝逼要裝漏了…但是沒辦法,自己選擇要裝的逼,跪著也要裝完…然後各種弄…最後終於弄好了,好開心,成就感max,裝逼max,最重要的是,技能max!

下圖是最最開始做微控制器,裝逼給妹子看的時候QAQ,當然,我提倡的裝逼,不是討人厭那種~是優雅的那種~要優雅~

6樓:「已登出」

本科畢業已經3年有餘了,涉足嵌入式開發領域差不多4年多,也是從8051架構的微控制器一路摸爬滾打過來(期間確實做了很多的彎路),目前工作中基本是會結合公司的需求選擇合適架構的處理器進行開發(stm32 lpc2000 s3c2440 全志等等吧)。8051怎麼說呢~個人感覺真心是這個行的的基礎呀~做多了就會有萬變不離其宗的感受,不管是51,還是ARM還是Mips,核心的東西還是那些,如何看原理圖啊,如何看Datasheet,如何配置暫存器等等~另外重要的就是資料結構!資料結構!

資料結構!重要的話說三遍,這是理解作業系統以及理解大型專案工程的基本素質~硬體專業畢業的人,確實要加強對大型軟體工程的把控能力~說說待遇吧,這一行當不高不低吧,當然是比不了網際網路行業的繁華,但是誰讓自己喜歡呢~

7樓:

說說我自己的經歷。

1、學習51之前,先把C語言學好。還有數電模電,微機原理,基礎的東西一定得掌握。

2、學習微控制器比較有效的方法是看C例程,特別是寫的比較好的,從中可以學到很多東西。在Keil官網上的例程就是很好的教材,盡早培養出良好的程式設計習慣。

3、51微控制器只是一把梯子,基礎學好了就該往上走了。

8樓:叫我大黃叔叔

51,是微控制器入門,因為裡面暫存器不多,操作簡單,可以慢慢了解到微控制器的精髓,往後學習會比較簡單,個人走了彎路,如果你要往軟體做,不要太早接觸微控制器,學好c語言,這是慘痛的教訓

9樓:卜霞森

不邀自來…51成功的連通了C 彙編數字電路模擬電路

通俗來說…就是點個燈的全過程…

再往後,C再打包就成了資料結構和作業系統

10樓:我是土豪

學程式設計思路,之後只要看的懂51程式,對今後學習其餘的晶元來說就簡單多了。

ps:本人51都是隨便學學,基本功太爛,近乎為0。無奈被迫學習dsp,發現各種細節不注意,弄了2,3個月才能基本掌握。

微控制器與物聯網的聯絡,未來微控制器將有怎麼樣的發展趨勢?

IOT說得籠統一點,就是資訊化整合。你說的微控制器是不夠準確的,應該稱作結點,因為除了主控晶元外,必須要有很多其他的外圍器件。IOT最最主要的特點在於 big 結點數和資訊量等都會無比龐大。趨勢 1低功耗是永恆的追求。2微型化大家都知道。3結點將往兩方面發展 複雜的和精簡的。越是智慧型化就越複雜。4...

51微控制器中如果乙個數 暫存器B中的值怎麼表述?

Jienpeng lin pragma SRC typedef signedchar int8 t typedef signed short int int16 t typedef signedint int32 t typedef unsignedchar uint8 t typedef unsi...

我是繼續學M核心這種級別的微控制器的全面領域,還是再進一步 去學A核心能跑Linux晶元的某一方面的?

doyouknow 開始搞微控制器,中途我糾結過一陣,後來選擇了MCU而放棄學Linux,畢竟自己學電子資訊的。Linux對我來說相當於換行業,重新學,再找工作,恐怕不行。我覺得,不過要先選好其一再深入,都不是想的那麼難和易。 Damon 我不知道為什麼這麼多人上來就說學習linux。如果是學習li...