導航:首頁 > 操作系統 > 何老師講單片機

何老師講單片機

發布時間:2022-10-07 09:28:49

❶ 求助:單片機及嵌入式行業所具備的知識技能

進入嵌入式行業,勉強不來(轉)
覺得海同07年的分析(好像)不錯:

「海同教育總經理曲剛老師表示,市場上需要的嵌入式人才必須具備C語言編程經驗、嵌入式操作系統(主要包括嵌入式linux、WinCE或 Symbian)經驗、內核裁剪經驗、驅動程序開發經驗,比如高級嵌入式軟體開發工程師相關職位要求是:有豐富的嵌入式多任務軟體系統分析和設計能力,能獨立完成項目系統方案,解決系統故障和問題、精通C語言應用開發,有良好的編程習慣和風格、良好的文檔編寫能力和習慣、熟悉項目管理流程。曲老師還特別指出,良好的英文閱讀能力及較強的學習能力是從事這一領域工作的基礎,對嵌入式操作系統做到一專而多能(精通嵌入式Linux,掌握WinCE及 Symbian)更會使求職者身價倍增。
目前國內外這方面的人都很稀缺。一方面,是因為這一領域入門門檻較高,不僅要懂較底層軟體(例如操作系統級、驅動程序級軟體),對軟體專業水平要求較高(嵌入式系統對軟體設計的時間和空間效率要求較高),而且必須懂得硬體的工作原理,所以非專業 IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,很多軟硬體技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很難找。
嵌入式人才稀缺,身價自然就高。目前有很多公司將硬體設計包給了專門的硬體公司,稍復雜的硬體都交給台灣或國外公司設計;而對於軟體部分,大量的嵌入式公司自己開發,比如對於日本公司來說,由於國內人力成本過高,所以日本很多嵌入式軟體開發企業都把項目外包給中國的公司來完成,國內也有越來越多的企業來從事嵌入式軟體開發,近幾年,國內對嵌入式軟體人才需求倍增,僅僅北京市場嵌入式軟體開發人員的需求就已經超過了5萬人,而且還在持續增長。
嵌入式人才的工作環境與發展前景也有優勢。曲老師告訴記者:「從事嵌入式工作有兩大優勢:一是工作強度相對較低。開發企業應用軟體的IT企業,這個用戶的系統做完了,又得去做下一個用戶的,而且每個用戶的需求和完成時間都不同,開發人員往往疲於奔命,重復勞動;而做嵌入式系統的公司,都有自己的產品計劃,按自己的節奏行事,所開發的產品通常是通用的,不會因客戶的不同而修改,一個產品型號開發完了,往往還有較長一段空閑時間進行充電和休整。二是職業發展相對順利,從事企業應用軟體的人,工作范圍廣,項目變化大,日常的積累很難產生質變,容易遭遇職業瓶頸;而從事嵌入式軟體的人,所涉及的專業技術范圍就是那些,時間長了會越來越有經驗。」
以上都是針對求職工作而言,若對於個人整體發展來說,如果想創業,做自已的產品,那麼嵌入式更是一個不錯的主意,嵌入式軟體不會像應用軟體那樣容易被盜版,開發出專利產品,又何止年薪十萬。
入行得有專業基礎,那麼,應該如何快速成長為嵌入式人才呢?曲老師指出,嵌入式系統領域門檻較高,並不適合每個人,嵌入式開發人員不僅要懂較底層軟體,對軟體專業水平要求較高,要進入嵌入式系統開發領域工作,首先必須具備一定的C語言基礎,然後可以嘗試參加一些的相關培訓課程,接著可以尋找項目實踐的機會,增加項目經驗。「

還有網友的寶貴意見:

「二、嵌入式系統的分層與專業的分類。
嵌入式系統分為4層,硬體層、驅動層、操作系統層和應用層。
1、硬體層,是整個嵌入式系統的根本,如果現在單片機及介面這塊很熟悉,並且能用C和匯編語言來編程的話,從嵌入式系統的硬體層走起來相對容易,硬體層也是驅動層的基礎 ,一個優秀的驅動工程師是要能夠看懂硬體的電路圖和自行完成CPLD的邏輯設計的,同時還要對操作系統內核及其調度性相當的熟悉的。但硬體平台是基礎,增值還要靠軟體。
硬體層比較適合於,電子、通信、自動化、機電一體、信息工程類專業的人來搞,需要掌握的專業基礎知識有,單片機原理及介面技術、微機原理及介面技術、C語言。
2、驅動層,這部分比較難,驅動工程師不僅要能看懂電路圖還要能對操作系統內核十分的精通,以便其所寫的驅動程序在系統調用時,不會獨占操作系統時間片,而導至其它任務不能動行,不懂操作系統內核架構和實時調度性,沒有良好的驅動編寫風格,按大多數書上所說添加的驅動的方式,很多人都能做到,但可能連個初級的驅動工程師的水平都達不到 ,這樣所寫的驅動在應用調用時就如同windows下我們打開一個程序運行後,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運行後來打開的程序。想做個好的驅動人員沒有三、四年功底,操作系統內核不研究上幾編,不是太容易成功的 ,但其工資在嵌入式系統四層中可是最高的。
驅動層 比較適合於電子、通信、自動化、機電一體、信息工程類專業尤其是計算機偏體系結構類專業的人來搞,除硬體層所具備的基礎學科外,還要對數據結構與演算法、操作系統原理、編譯原理都要十分精通了解。
3、操作系統層,對於操作系統層目前可能只能說是簡單的移植,而很少有人來自已寫操作系統,或者寫出缺胳膊少腿的操作系統來,這部分工作大都由驅動工程師來完成。操作系統是負責系統任務的調試、磁碟和文件的管理,而嵌入式系統的實時性十分重要。據說,XP操作系統是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟體所自己的女媧Hopen操作系統估計也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。
4、應用層,相對來講較為容易的,如果會在windows下如何進行編程介面函數調用,到操作系統下只是編譯和開發環境有相應的變化而已。如果涉及 Jave方面的編程也是如此的。嵌入式系統中涉及演算法的由專業演算法的人來處理的,不必歸結到嵌入式系統范疇內。但如果涉及嵌入式系統下面嵌入式資料庫、基於嵌入式系統的網路編程和基於某此應用層面的協議應用開發(比如基於SIP、H.323、Astrisk)方面又較為復雜,並且有難度了。
三、目標與定位。
先有目標,再去定位。
學ARM,從硬體上講,一方面就是學習介面電路設計,另一方面就是學習匯編和C語言的板級編程。如果從軟體上講,就是要學習基於ARM處理器的操作系統層面的驅動、移植了。這些對於初學都來說必須明確,要麼從硬體著手開始學,要麼從操作系統的熟悉到應用開始學,但不管學什麼,只要不是純的操作系統級以上基於API的應用層的編程,硬體的寄存器類的東西還是要能看懂的,基於板級的匯編和C編程還是要會的。因此針對於嵌入式系統的硬體層和驅動程的人,ARM的介面電路設計、ARM的C語言和匯編語言編程及調試開發環境還是需要掌握的 。
因此對於初學者必然要把握住方向,自己的目標是什麼,自己要在那一層面上走。然後再著手學習較好,與ARM相關的嵌入式系統的較為實際的兩個層面硬體層和驅動層 ,不管學好了那一層都會很有前途的。
如果想從嵌入式系統的應用層面的走的話,可能與ARM及其它體系相去較遠,要著重研究基嵌入式操作系統的環境應用與相應開發工具鏈,比如WinCe操作系統下的EVC應用開發(與windows下的VC相類似),如果想再有突破就往某些音視頻類的協議上靠,比如VOIP領域的基於SIP或H.323協議的應用層開發,或是基於嵌入式網路資料庫的開發等等。
對於初學者來講,要量力而行,不要認為驅動層工資高就把它當成方向了,要結合自身特點,嵌入式系統四個層面上那個層面上來講都是有高人存在,當然高人也對應的高工資,我是做硬體層的,以前每月工資中個人所得稅要被扣上近3千大元,當然我一方面充當工程師的角色,一方面充當主管及人物的角色,兩個職位我一個人干,但上班時間就那些。硬體這方面上可能與我PK的人很少了,才讓我拿到那麼多的工資。
四、開發系統選擇。
很多ARM初學者都希望有一套自己能用的系統,但他們住住會產生一種錯誤認識就是認為處理器版本越高、性能越高越好,就象很多人認為ARM9與ARM7 好,我想對於初學者在此方面以此入門還應該理智,開發系統的選擇最終要看自己往嵌入式系統的那個方向上走,是做驅動開發還是應用,還是做嵌入式系統硬體層設計與板級測試。如果想從操作系統層面或應用層面上走,不管是驅動還是應用,那當然處理器性能越高越好了,但這個東西自學,有十分大的困難,不是幾個月或半年或是一年二年能搞定的事。
在某種意義上請,ARM7與9的差別就是在某些功能指令集上豐富了些,主頻提高一些而已,就比如286和386。對於用戶來講可能覺查不到什麼,只能是感覺速度有些快而已。
ARM7比較適合於那些想從硬體層面上走的人,因為ARM7系列處理器內部帶MMU的很少,而且比較好控制,就比如S3C44B0來講,可以很容易將 Cache關了,而且內部介面寄存器很容易看明白,各種介面對於用硬體程序控制或AXD單步命令行指令都可以控制起來,基於51單片機的思想很容易能把他搞懂,就當成個32位的單片機,從而消除很多51工程師想轉為嵌入式系統硬體ARM開發工程師的困惑,從而不會被業界某此不是真正懂嵌入式爛公司帶到操作系統層面上去 ,讓他們望而失畏,讓業界更加缺少這方面的人才 。
而嵌入式系統不管硬體設計還是軟體驅動方面都是十分注重介面 這部分的,選擇平台還要考察一個處理器的外部資源,你接觸外部資源越多,越熟悉他們那你以後就業成功的機率就越高 ,這就是招聘時所說的有無「相關技能」,因為一個人不可能在短短幾年內把所有的處理器都接觸一遍,而招聘單位所用的處理器就可能是我們完全沒有見過的,就拿台灣數十家小公司(市價幾千萬)的公司生產的ARM類處理器,也很好用,但這些東西通用性太差,用這些處理器的公司就只能招有相關工作經驗的人了,那什麼是相關工作經驗,在硬體上講的是外圍介面設計 ,在軟體上講是操作系統方面相關介面驅動及應用開發經驗。 我從業近十年,2000年 ARM出現,我一天始做ARM7,然後直接跑到了Xscale(這個板本在ARM10-11之間),一做就是五年,招人面試都不下數百人,在這些方面還是深有體會的。
我個人認為三星的S3C44b0對初學者來說比較合適,為什麼這么說哪?因為介面資源比較豐富,技術成熟,資料較多,應該十分適合於初學者,有問題可能很容易找人幫且解決,因為大多數人都很熟悉,就如同51類的單片機,有N多位專家級的人物可以給你幫忙,相關問題得以很快解答,所然業界認為這款ARM都做用得爛了,但對於初學者來,就卻是件好事。
因此開發系統的選擇,要看自己的未來從來目標方向、要看開發板介面資源、還要看業界的通用性。
五、如何看待培訓。
首先說說我自己,我目前從業近十年,與國內嵌入式系統行業共同起步,一直站在嵌入式系統行業前沿,設計過多款高端嵌入式系統平台產品並為眾多公司提供過解決方案,離職前為從事VOIP的美資公司設計IP-PBX,歷任項目經理、項目主管、技術總監、部門經理,積累眾多人脈,並集多年經驗所得,考慮到學生就業與公司招人的不相匹配,公司想招人招不到,而學生和剛畢業的工程師想找份工作也不太容易,於此力創知天行科技有限公司,開展嵌入式系統教育培訓。
因一線的科研人員和一線的教師不相接觸,導至國內嵌入式人才缺乏,國外高校的技術超前於業界公司,而國內情況是業界公司方面的嵌入式系統技術要遠遠領先於高校 。為架構業界與高校溝通的橋梁,把先進技能帶給高校學子,為學生在就業競爭中打造一張王牌,並為業界工程師快速提升實現自我創造機遇,我就這樣辭去了外企年薪20多萬的職位,做嵌入式系統方面的培訓了。
對於培訓來講,是花錢來買時間 ,很多工程師都喜歡自己學,認為培訓不值,這也是有可能的,純為賺錢的培訓當然不會太有價值,但對於實力型的培訓他們可能就虧大了,有這樣一筆帳不知他們算過沒有,如果一個一周的培訓,能帶給他們自學兩年後才能掌握的知識,在培訓完後他們用三個月到半年時間消化培訓內容,這樣,他會省約至少一年半的時間來學其它的或重新站在另一個高度上工作,那麼他將最遲一年後會拿到他兩年後水平所對應的工資,就是在工資與水平對應的關繫上比同批人縮短一年,每月按最少1千計,再減去培訓費用至少多1.0萬,同時也省了一年時間,不管是休閑也好,再繼續提高也好,總之是跑到了隊伍的前面了。
另一層面上講,對於新人的培訓相當於他們為自己提前買了份失業保險,有師傅會帶領他們入道,我今年暑假時班裡最年輕的一個學生是大二的,今年才上大三,這學期才剛學單片機,但現在ARM方面的編程工作已經搞得有聲有色了,再過一年多畢業,他還會失業嗎?
再者通過培訓,你可以知道很多業界不為常人所知的事,同時也為自己找了個師傅,就比如說,兩個工程師分別用S3C2410和PXA255來做手持設備,同樣兩人都工作四年,再出去找工作,兩人工資可能最多可相差一倍,為什麼?這就是業界不為常人所知的規則,2410屬於民品,被業界用爛了,做產品時成本特敏感,當然也對人才成本敏感了,PXA255是intel的東西,一個255 CPU能買三個2410,一直被業界定義為貴族產品,用的公司都是大公司或為軍方服務的公司,不會在乎成本,只要把東西做好,一切都好說,但這方面做的人也少啊,因為開發系統貴啊。
對於說為自已找了個好師傅,我想是這樣的,因為同級工程師間存在著某此潛在的競爭關系,有很多人不願意把自己知道的東西教給別人,這意味著他將要失業,就是所說的教會徒弟,餓死師傅,但對於我們這些人就不存在這樣的關系了,我是在嵌入式系統平台設計上走到了一定程序,目前在國內這塊的技術上已經是自己很難再突破自己,因此很多東西我對大家都是OPEN的,就比如說下面那部分關於介面設計中所提到的時序介面東西,我要是不講,卻使是高級硬體工程師我想也幾乎只有10%的人能知道吧。
六、成為高級嵌入式系統硬體工程師要具備的技能。
首先我聲明,我是基於嵌入式系統平台級設計的,硬體這個方向我相對來講比較有發言權,如果是其它方面所要具備的基本技能還要和我們培訓中心其它專業級講師溝通,或去網站看看***。他們的方面上我只能說是知道些,但不是太多,初級的問題也可以問我。
對於硬體來講有幾個方向,就單純信號來分為數字和模擬,模擬比較難搞,一般需要很長的經驗積累,單單一個阻值或容值的精度不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著技術的發展,出現了模擬電路數字化,比如手機的Modem射頻模塊,都採用成熟的套片,而當年國際上只有兩家公司有此技術,自我感覺模擬功能不太強的人,不太適合搞這個,如果真能搞定到手機的射頻模塊,只要達到一般程度可能月薪都在15K以上。
另一類就是數字部分了,在大方向上又可分為51/ARM的單片機類,dsp類,FPGA類,國內FPGA的工程師大多是在IC設計公司從事IP核的前端驗證,這部分不搞到門級,前途不太明朗,即使做個IC前端驗證工程師,也要搞上幾年才能勝任。dsp硬體介面比較定型,如果不向驅動或是演算法上靠攏,前途也不會太大。而ARM單片機類的內容就較多,業界產品佔用量大,應用人群廣,因此就業空間極大,而硬體設計最體現水平和水準的就是介面設計這塊,這是各個高級硬體工程師相互PK,判定水平高低的依據。而介面設計這塊最關鍵的是看時序,而不是簡單的連接,比如PXA255處理器I2C要求速度在 100Kbps,如果把一個I2C外圍器件,最高還達不到100kbps的與它相接,必然要導致設計的失敗。這樣的情況有很多,比如51單片機可以在匯流排接LCD,但為什麼這種LCD就不能掛在ARM的匯流排上,還有ARM7匯流排上可以外接個Winband的SD卡控制器,但為什麼這種控制器接不到ARM9 或是Xscale處理器上,這些都是問題。因此介面並不是一種簡單的連接,要看時序,要看參數。一個優秀的硬體工程師應該能夠在沒有參考方案的前提下設計出一個在成本和性能上更加優秀的產品,靠現有的方案,也要進行適當的可行性裁剪,但不是胡亂的來,我遇到一個工程師把方案中的5V變1.8V的DC晶元,直接更換成LDO,有時就會把CPU燒上幾個。前幾天還有人希望我幫忙把他們以前基於 PXA255平台的手持GPS設備做下程序優化,我問了一下情況,地圖是存在SD卡中的,而SD卡與PXA255的MMC控制器間採用的SPI介面,因此導致地圖讀取速度十分的慢,這種情況是設計中嚴重的缺陷,而不是程序的問題,因此我提了幾條建議,讓他們更新試下再說。因此想成為一個優秀的工程師,需要對系統整體性的把握和對已有電路的理解,換句話說,給你一套電路圖你終究能看明白多少,看不明白80%以上的話,說明你離優秀的工程師還差得遠哪。其次是電路的調試能力和審圖能力,但最最基本的能力還是原理圖設計PCB繪制,邏輯設計這塊。這是指的硬體設計工程師,從上面的硬體設計工程師中還可以分出 ECAD工程師,就是專業的畫PCB板的工程師,和EMC設計工程師,幫人家解決EMC的問題。硬體工程師再往上就是板級測試工程師,就是C語功底很好的硬體工程師,在電路板調試過程中能通過自已編寫的測試程序對硬體功能進行驗證。然後再交給基於操作系統級的驅動開發人員。
總之,硬體的內容很多很雜,硬體那方面練成了都會成為一個高手,我時常會給人家做下方案評估,很多高級硬體工程師設計的東西,經常被我一句話否定,因此工程師做到我這種地步,也會得罪些人,但硬體的確會有很多不為人知的東西,讓很多高級硬體工程師也摸不到頭腦。
那麼高級硬體件工程師技術技能都要具備那些東西哪,首先要掌握EDA設計的輔助工具類如Protel\ORCAD\PowperPCB\Maplux2 \ISE、VDHL語言,要能用到這些工具畫圖畫板做邏輯設計,再有就是介面設計審圖能力,再者就是調試能力,如果能走到總體方案設計這塊,那就基本上快成為資深工程師了。
硬體是要靠經驗,也要靠積累的,十年磨一劍,百年磨一針。 」

❷ 學習機器人編程有什麼好處

有專家說孩子在8歲以前學東西特別快,是大腦發育的黃金期,這會兒多動腦開發思路,以後不會形成思維定式。
像家裡孩子7歲,在樂博樂博這邊學邊實踐的,這里不是純理論課,,在學單片機機器人,看了他的一些課堂筆記,能涉及到杠桿、電子電路、機械結構這種物理知識。

❸ 單片機的開發也屬於交叉編譯吧

交叉編譯
由於計算機的指令集與ARM上的指令集不一樣。所以當程序能正常在PC上執行時,不一定能正常地在ARM上執行。
一般交叉編譯的過程是這樣的:PC調試的程序 =====> 調試可用,通過交叉編譯器將代碼指令轉換成對應的ARM平台代碼指令 ====> 移植到ARM平台上使用。

而單片機的過程也有些像。你像這類高深的問題不會出現在單片機上。其實你要明白什麼是編譯。
編譯就是將 高級的語言轉換成機器能識別的語言。這個過程就叫編譯。
單片機的C語言在平台上能運行,是因為有模擬軟體。而經過編譯之後,就變成單片機能執行的代碼了。
而ARM不一樣。PC中Linux下,程序也能執行,但不是模擬。他是真正的運行。但你移植到ARM平台就不一定能執行,需要轉化代碼的指令。這個轉換過程你可以當成是交叉編譯。

其實說白了吧。沒多大區別,就是轉換成他們能執行的代碼就對了。但只是單片機不這樣叫。因為單片機的代碼是沒辦法直接在PC上跑的。只能通過模擬軟體跑。

希望我的回答對你有所幫助。

❹ 單片機 RRC右移 指令的用法

RRC指令就是帶進位累加器循環右移。舉例說明:

C =1,A=1100 1100B,

執行RRC A後,C=0,A=1110 0110B(A的最低位移給C,並且C原來的值移給A的最高位。)

SETB C(cy=1)

XCH A,R2(兩數交換R2=54H,A=C2H)

JB A.7 , ELSE(若A的最高位為1,則轉至else)

CLR C

ELSE: RRC A(帶進位位右移A=1110 0 001B=E1H Cy=0)

XCH A ,R2(兩數交換後,R2=E1H,A=54H)

RRC A(帶進位位右移A=0010 1 010B=2AH Cy=0)

所以,最終(R2)=E1H,(A)=2AH

(4)何老師講單片機擴展閱讀:

控制轉移類指令還包括以下:

1、無條件轉移指令 AJMP addrll (2位元組指令),2K(地址211)位元組范圍內的無條件跳轉指令。64K程序存儲器空間分為32個區,每區2K位元組,轉移的目標地址必須與AJMP下一條指令的地址高5位地址碼A15-A11相同。

指令執行時,先PC加2,然後把addrll送入PC.10~PC.0,PC.15~PC.11保持不變,程序轉移到目標地址。注意:轉移目標首地址必須在AJMP指令下一條指令地址(PC+2)的2KB范圍內。

2、長跳轉指令 LJMP addr16 (3位元組指令),64K位元組范圍內的無條件跳轉指令。指令執行時,把指令的第二和第三位元組分別裝入PC的高位和低位位元組中,無條件地轉向addr16指出的目標地址。

目標地址可以在64K程序存儲器地址空間的任何位置。注意:短跳轉、長跳轉指令中addrll、addr16直接寫上要轉向的目標地址標號(即符號地址)就可以。

3、相對轉移指令 SJMP rel (雙位元組),rel為8位帶符號二進制補碼數(-128~+127),實現程序的雙向轉移。在編寫程序時,直接寫上要轉向的目標地址標號就可以。

4、間接跳轉(散轉)指令JMP @A+DPTR (三位元組),由A中8位無符號數與DPTR的16位數內容之和來確定。以DPTR內容作為基址,A的內容作變址。

5、條件轉移指令 (雙位元組)

JZ rel ; 如果累加器為「0」,則轉移

JNZ rel; 如果累加器非「0」,則轉移

❺ PC控制單片機,串口中斷接到數據後如何才能跳出進行中的大循環

你的問題在於 dat = 0xaa後進入死循環。實際只要將
if(dat==0x55)
{
break;
}
這句移入if(dat==0xaa) 執行的while(1)循環即可。改成這樣
while(1)
{
if(dat==0xaa)
{
while(1)
{
led=0;
delay_s(100);
led=1;
delay_s(100);
if(dat==0x55)
{
break;
}

}
}

❻ 怎樣學好單片機

首先申明這是專貼,但是感覺對你應該很有幫助,好好看看吧:
我是一個電子工程師,我把我原來寫的關於電子工程師怎樣成長的一個帖子改改放在這里。
實際上,技術這種東西的規律是大同小異的,雖然是電子工程師的成長的道路,但是,其它領域的技術人員,我想也是一樣的。
因為我也是比較痛苦地用了較長的時間才完成了從初學者到一個系統工程師的轉變,所以啊,將自己這點體會寫出來,希望能起到一點微薄的作用。
作為一個初出校門的大學生,如果有高手帶的話,實際上只需要大概6個月到1年的時間就能實現這個轉變。
只要你夠勤奮、善於溝通、人品好。
前2者大家都可以理解;人品好就是大家看著這個人順眼,願意幫他,什麼都願意跟他講,相處不厭倦。
要是狗脾氣、自私,誰愛理你?要知道,自私的人,也願意跟人品好的人在一起。
一個電子工程師,或者說,一個電子系統設計工程師,需要有機會,這種機會是靠自己去爭取, 「哭著喊著要進步」,有這種精神,還需要明師帶著,就可以。
可是,上了班,誰會帶你?很少,或者沒有。市場競爭激烈,過去還說:「教會徒弟餓死師父」,這種現象,國營單位或許嚴重一些,民營企業中你需要給老闆創造效益,至於學習,是在工作中學,老闆是不會讓你不幹活而學習的,只能邊干邊學。
我把技術人員的成長之路分成幾個階段:
1. 入門 1~2年
2. 登堂入室 3年
3. 勤奮至卓越
4. 溝通、協作
5. 對某個行業深入理解,做出產品 5年
第一步 入門-51核心和基本電路
中國人有10億啊,每年有多少大學生畢業呢?我不知道。但是我看到有一張照片,招聘會上熙熙攘攘,人來人往,十分震撼。從來沒有一個時刻讓我感覺到中國的人力資源是如此的豐富。但是,從現在的大學畢業出來的學生學到了什麼東西呢?一些理論,跟實際脫鉤的理論。有沒有用呢?有點用。但是,在企業中,需要的是實際干點事情出來,實際解決問題。所以說,很多企業不想要大學本科出來的大學生,說動手,沒有動手能力,不知道電阻電容長得什麼樣子,能夠做什麼?但是又自視甚高,對工資的期望值比較高。等到能夠干點事情了,又拍拍屁股跑了。所以企業現在喜歡使用大專中專甚至是職業學校培訓出來的小孩,至少這些孩子們知道自己的份量,能夠實實在在地做事。要知道,他們很多人的天賦並不差,很多人是家庭條件不好,打小就是苦孩子,沒有條件接受良好的教育。一旦給機會,他們都比較珍惜。
現在的大學,誤人子弟甚多。擴招是沒有錯,但是,實驗室擴了嗎?教室擴了嗎?教師擴了嗎?至少實驗室是沒有擴。老樹認得的一個研究生說,只有到了一個階段,才能到實驗室作實驗。很多導師就是把學生當奴隸一樣幹活,要是在幹活中能夠學到東西那就算是運氣好的;運氣不好的,直接就是導師的廉價的勞力了,學不到東西,活倒幹了不少。
但是,既然學生要拿文憑,要應付考試,沒有辦法,那怎麼自救?
在入門這個階段,需要去學習大量的知識,摸清你所在的領域所需要的知識體系,從最基本的學起。
如果勵志要做一名出色的電子工程師,老樹可以談談自己的看法。
做一個電子工程師,先從51學起,這是得到公認的。不需老樹饒舌。
首先,去買一個開發板,越便宜的越好,在上面可以練練keil C。最好再買一個模擬器,這樣調試的效率高。當然這個不便宜,但是我覺得可以志同道合的哥幾個合買。反正1天24小時,每人8個小時輪流上,有個幾個月,C51語言也就差不多了。
其次,看看老樹的文章,北京的大學生沒事到中發去轉轉,認認老樹的文章上說得哪些電阻、電容、三極體、晶元、接插件什麼的,看看自己的電腦上的主板、網卡、音效卡、顯卡是怎麼畫的,找到感覺,這些板卡都是高手的傑作啊。
構思一個小的產品,按照老樹文章上的思考題,找本protel99se的書,從每個菜單練起,循序漸進,從單片機最小系統->輸入->LED->RS232/RS422/RS485->固態繼電器、繼電器等原理圖畫起,邊畫邊學,一點一點做,做好了,最好找個高手看看,找出毛病在哪裡,再反復改進。在這樣的模擬實戰中找到感覺。
順便說一句我對市場上的開發板的看法,這些開發板當然都不錯,但是,只能學到語言,不能教你畫原理圖和PCB,實際做的時候,還是需要高手帶一帶是最快的。我就是一個朋友教我的,也就半天的功夫,就會了。當時還是DOS下的protel 3.16版本。
以戰養戰。找個公司、企業,幫他們做個小產品,既能得到公司的高手的指點,又能賺到一筆費用,豈不甚佳?這時,你的開發板、模擬器的費用就出來了。從原理圖->PCB->C51,單片機也入門了。
第二步:登堂入室
對所在的技術領域的知識全面進行了解,做好知識的儲備,同時徹底掌握單項和多項技術。
作為一個電子工程師,這時,需要對電子技術的所有東東進行全面的了解,主要是看看雜志、BBS、網站上的技術文章、何立民先生主持編著的《單片機應用技術大全》系列,將單片機和它的配套的電路,輸入輸出、通訊等等做一個全面的了解。目標是為什麼?系統的技術儲備。知道什麼問題可以使用什麼方法解決,可能在什麼地方找到解決的方法,這對你以後走上工作崗位,解決實際問題是非常有好處的。如果你真能這么做,那麼,你今後肯定比單位中的老同志還要棒。
老樹在國營研究所的時候,曾經有一段時間無所事事,就是在那一兩年的時間內將研究所的技術雜志看了一遍,尤其是《電子技術應用》。打下了一個良好的基礎。
這時,爭取機會,學習高手們的硬體設計。一個比較快的辦法就是到工控機的廠家那裡,看看工控機的板卡和調理板是怎樣設計的,都使用了哪些東西。記得老樹第一次看到國外的一個器件,到處去問,也不知道是什麼東東。後來在四通工控那裡看到了,原來是固態繼電器。這時,腦子里關於固態繼電器的知識都冒出來了。
什麼東西就是這樣,你要是不知道它是干什麼的,你天天看見,也熟視無睹。
有心人就是這樣,在什麼樣的情況下,都能慢慢積蓄知識和力量。畢竟一個產品,不是只會單片機就可以了,還是需要很多的外圍電路,按照何老師的分類,前向、後向、人機、互相通道等,才能做成一件產品的。
這個時候,抓住任何機會,去參與一個大型產品開發,在其中做一件事情,你可以學到溝通、協作、界面等產品開發的一些要素。
第三步:勤奮至卓越
中國人多啊,每個人都是智商100,誰比誰傻啊。憑什麼你比別人強?你能有好的工作、好的收入,你能香車寶馬,醇酒美人?老樹認為,沒有別的辦法,就是靠勤奮。
勤奮學習-這個道理大家知道,知識就是金錢啊;
勤奮工作-想比別人多賺錢,在智商相同的情況下,就是靠多付出時間幹活,再提高工作效率。別人5×8小時工作,你是7×16小時,再提高工作效率一倍,你不久賺了比別人多5倍的錢嗎?老樹公司有2個員工,原來在老家種蘋果,沒有賺到錢,到老樹的公司中幹活,計件,活忙的時候,早晨8:00起來,晚上12:00收工,年底也賺了一筆錢回家,高高興興,老樹也開心,原來一屋子人乾的活,現在2個人幹了,公司管理省事了,員工也賺到了錢。
開發也是一樣。當然,這個需要你的公司有這個機制,多勞多得的機制。但是,要是現在沒有,你要不要這樣干呢?
我認為,需要。一方面,干別人的活,練自己的技術,長自己的本事。另一方面,多幹活,才能快速增長本事,技術才能躍變、突破,登堂入室,再得心應手、出神入化。至少,熟練工種是沒有問題的吧。
就象一壺水,老是小火,燒了半天,也是溫吞水;可是大火一上,一會就開了,就是這個意思。
你看《射鵰英雄轉》中的郭靖,沒有別的本事,就是傻練,有一天開竅了,如有神助。技術這個東西就是這樣,突破了門檻,就是坦途。需要勤奮勤奮再勤奮。有一天這個日子來了,你就苦盡甘來了。
勤奮還有另外一個含意,就是天道酬勤。其實是每個人看見勤奮的人,都會給他機會的,覺得幫助這樣的人,高興;把事情放在他的手裡,也放心。
還有一個含意是觸類旁通。知識需要很多的參照物,去比較、聯想、萃取、升華。換句話,你可能付出的是其他人的n倍的努力,可是你得到的是n倍以上的回報,你的知識已經不是簡單的累加了,已經質變了。
如果你在這個單位,勤奮了,也出成果了,就是沒有得到公平的待遇,也沒有關系。換一個環境就是了,總有人會欣賞你的。再說了,付出總有回報。
有些人習慣怨天尤人,沒有好的老爸老媽,沒有好的老師,沒有好的同伴,沒有好的環境。這些人需要去看看周立功的文章,看看周老師怎樣一步步成長的。
第四步:溝通、協作
原來還有,現在越來越少,做一個小的產品,就可以生活無憂。
現在這種情況越來越少了。在任何一個單位,將一個產品做好,都需要與同伴主動溝通,與不同部門的人互相協作。經常是跟不同單位的人溝通完成意見事情。
有些人性格內向,從做技術的角度出發,這也是不可取的,還是要善於跟同事溝通,向高手求教,才能學到真本領。
第五步:對某個行業深入理解
每個人生存在這個世界上,大都需要有一門獨到的技術;更何況你是這個論壇的讀者;
有的人天生千嬌百媚,有的人天生金嗓子,有的人有個好的老爸老媽;這些都不足為恃,更何況沒有這些天賦呢?
當你掌握了單片機、ARM、CPLD/FPGA等高端的技術,應該說,養身立命是沒有問題了,可以解決人生的基本問題了;但是,還想更上一步,就需要對某個行業進入深入的理解和挖掘我認識的靠技術過上寶馬豪宅生活的工程師,並不是在技術上一開始就有什麼過人之處,也不是說他的產品一開始就會比別人好很多,而是都是特別有韌性的人,都 在捕捉某個行業的機會,在某個行業內精耕細作,堅持不懈,別人都干其它的去了,只有他還在這個行業中慢慢來,過上5年或者更多的時間,慢慢得到業內人士的 認可,產品不斷改進,慢慢打開了銷路,最後站住腳,機會來了,一下發達了。我的一個朋友,就是這樣修煉成了正果。
有個笑話,說:剛剛離開的行業,發展最快。說得就是這個道理。
中國大啊,市場大啊,只要認真耕耘,就會有收獲。
需要去從事多個行業嗎?就個體而言,不需要。那個行業都有金子。
就公司而言,需要嗎?那要看你的公司有沒有這方面的人才;還需要看有沒有這個方面的機制。否則,盲目的進行多個行業的擴展,沒有必要。需要做的是至少在某個行業做到前三名。
你看,原來的LOTUS的notes,賣給了IBM,原來只賣出去300萬份,到了IBM,就賣到了1000萬份。產品就是這樣,佔領市場的同時,利潤就有了,規模效益就有了。一個公司的產品不需要太多,但是要賣的多,才是正路。
象吉列,就是那麼個小刀片,作成這么大的企業,多麼舒服。
象GE,每個行業都是業內的翹楚,那是資本主義社會200年的技術積累。在中國,需要做的是每一個小的公司都是某個產品最突出的。從小的產品做起,做到國內最好、亞洲最好、世界最好。就行了。中國就強大了。
到那個時候,才有可能出現象GE這樣的大公司。才有形成這樣的大公司的技術基礎。

❼ 51單片機內置定時器製作計時的誤差怎麼產生的。

首先,單片機定時器的記數的頻率是由單片機的時鍾頻率所決定的,而單片機的時鍾頻率是由外部晶振或內部震盪電路所決定的。不管是外部晶振還是內部晶振,本身都是有誤差的!然後又受外部的溫度、濕度、電磁干擾的影響,他們的頻率也是在變化的。這是無法避免的。然後,人在操作時也是有誤差的,例如51單片機工作在模式1的16位的定時器。當發生定時中斷後,要重裝定時器的初值,而執行這兩條指令也是要花時間的。這個誤差很小,可以忽略。最後就是當你 的中斷函數過長,其執行時間已經超過了定時周期,這時候將會丟失中斷。因為在發生下一次中斷的時候,而CPU還在執行本次的中斷服務程序。由於同優先順序的中斷不能被打斷,所以就會丟失中斷信號,這是產生了錯誤,而非誤差,所以中斷函數盡量短!

❽ 求教,想要參加大學生機器人比賽單片機要學到什麼程度

能做到機器人控制,你需要懂得感測器、電機控制、通訊技術等等,所以單片機技術至少也要做到熟練,最好是精通的程度。

❾ 我是專科生 學單片機有希望找到工作嗎

英雄不問出處啊,文憑不是最主要的啊,看你提的問題,是不是對自己的學歷耿耿於懷啊。我見過一個人,只上過初中,但是人家ARM+linux很厲害。所以不關學歷的問題。
單片機蠻好找工作的,相對來說。前景似乎也不錯。當是一門技術來學,完全有必要。同時單片機要精通也是需要花費大力氣的,我出來工作一年了,干也是單片機,但是我覺得自己還是菜鳥中的菜鳥。
匯編是需要學的,有助於了解硬體。匯編跟C各有特點。用C編感覺容易一些,沒那麼麻煩。
在學校老師教的都是皮毛,我覺得自己當時比你現在還不如。學校嘛,大鍋飯教育,如果不是非常好的學校,一般都是如此的,正常。
可以買學習板回來自己練練,有些基礎以後,就可以去找相關的工作了,剛出校門的,企業的要求也不是非常的高,別被那些什麼 精通這個精通那個,有這個什麼項目經驗的這類嚇跑了。剛出校門,談什麼項目經驗呢。
找不到人問?可以上網加Q群啊,另我也可以幫你,但是我也是菜鳥的361762504

閱讀全文

與何老師講單片機相關的資料

熱點內容
程序員用得到數字區嗎 瀏覽:174
python求商 瀏覽:478
ipad能用c語言編譯器嗎 瀏覽:565
軟泥解壓球最新版 瀏覽:999
4萬程序員辭職創業 瀏覽:760
thinkingphp 瀏覽:597
安卓相冊移動文件夾 瀏覽:7
耳朵清潔解壓聲控99的人都睡得著 瀏覽:206
叉車出租網站源碼 瀏覽:874
共享單車的app是什麼 瀏覽:409
不帶gui的伺服器什麼意思 瀏覽:374
金剛經及PDF 瀏覽:102
php中冒號 瀏覽:359
php5432 瀏覽:353
命令在哪使用 瀏覽:172
php獲取網頁元素 瀏覽:709
為什麼需要硬體驅動編譯 瀏覽:886
pm編程怎樣看導柱孔對不對稱 瀏覽:139
農業大學選課找不到伺服器怎麼辦 瀏覽:661
路由配置網關命令 瀏覽:935