1. 怎樣學好單片機
首先申明這是專貼,但是感覺對你應該很有幫助,好好看看吧:
我是一個電子工程師,我把我原來寫的關於電子工程師怎樣成長的一個帖子改改放在這里。
實際上,技術這種東西的規律是大同小異的,雖然是電子工程師的成長的道路,但是,其它領域的技術人員,我想也是一樣的。
因為我也是比較痛苦地用了較長的時間才完成了從初學者到一個系統工程師的轉變,所以啊,將自己這點體會寫出來,希望能起到一點微薄的作用。
作為一個初出校門的大學生,如果有高手帶的話,實際上只需要大概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這樣的大公司。才有形成這樣的大公司的技術基礎。
2. 怎樣提升自己單片機C語言編程能力啊求高手指點迷津!我硬體也懂一點 但我想朝編程方面發展 跪求高手指教
到樓主描述的這種程度,比較實際的只有兩種方法:一是實踐,實際做一個較大的項目,二是多看看網上的一些好的範例,哪怕是你做過的項目,重點不是看其所實現的功能,而是看其源程序的特點和結構!個別的可以關注一下演算法。還有一種方法,學一些軟體專業的必修基礎課,了解軟體編程的思維模式,這可能要搭些功夫,而且影響是潛移默化的,如果不是搞純軟體的話,個人觀點可以不學。
C語言編程能力並不完全體現在代碼的編寫效率和執行效率高。注意:是不完全,這方面的提升與個人的邏輯思維能力和其它知識水平有關。舉個例子:假如讓你編制一個函數實現求arctan反三角函數的值,你會怎麼做?如果你不知道採用級數展開的方法就無從下手。其實這考驗的是你的數學水平。所以這方面的提高是綜合性的,無法具體而談。
可以提升的我認為體現在如下幾個方面,這幾方面做好了,同樣也可以說具備相當的編程能力了。
1、軟體版本管理:任何軟體,每次修改發布後必須更新軟體版本號,這點工作後尤其關鍵,我見過這方面不認真的,別多了,3、4個版本後就焦頭爛額。
2、源程序中多些注釋:比如函數的功能描述、入口參數說明、返回值說明、調用的要求、完成日期等。另外,關鍵演算法的說明也應該注釋。常言道:好記憶不如爛筆頭,不能太過相信自己的智商。
3、工程化管理源程序:比如對一些常數、介面地址、數據類型定義(typedef)、數據結構定義、自定義的函數聲明等,應寫入單獨建立.H文件,然後在其它.C文件中包含。.C文件,如果軟體大的話也盡量的按照功能分別建立,然後在工程中包含。
4、有時,一個軟體會針對不同型號的設備,此時應採用#ifdef等編譯控制語句加以區分;而且,為方便調試,有時需要對一些狀態或變數賦與初值,而正式版本中不能要,也可以採用這種方法,便於管理,不易出錯。這部分內容應放在前面所說的.H文件中。
5、盡量多使用函數,這樣模塊化強,也能通過函數名看出函數功能,易於代碼閱讀。最簡單的例子就是初學者常用的Delay()。不過也別太過了,A=B+C就沒必要了。
6、對一些常數、地址,最好使用#define通過英文字元來代替,將其放在.H文件中,這樣萬一有變化,只需改一處即可,方便,又不會遺漏。比如定時器重裝值:
#define C_TH0_50MS (65536-50000)/256
如果需要改晶振,只需改此處即可。
以上注重的是整個軟體方面,下面說一些具體需要注意的,不成系統,也沒整理過,想到那說到哪吧。基本上是些規范,規范同樣代表著水平:
1、多分枝邏輯判斷類語句:應養成將所有判斷情況都寫出來、不用的注掉的習慣,這類語句包括if、switch,舉例
if(i==4)
{....}
//else if i>4
//else i<4
其中else的兩部份不用,那也寫出來,注掉。這樣幫助你保證程序的嚴密型,也有助於問題排查
2、常數、變數、函數、埠等的命名:(不要出現全局變數名與局部變數名相同的情況,雖然在C里允許這樣做)我個人採用如下規則
全局變數:類型+具有實際意義的片語或拼音,其中片語或拼音中每個字首字母應大寫。
例如: iSecondCount:一個int類型的秒計數變數
局部變數:全小寫字元,循環計數變數可以採用諸如i、j、k、n之類的無意義字元。最好不用
a、b、c之類的16進制數所使用的字元。
埠:全大寫,並使用具有實際意義的片語或拼音,使用_作為分割符。如KEY_COM
常數:前面加「C_」,後面每個單詞之間最好也加「_」,如上例中的C_TH0_50MS
函數:類似於全局變數,只是前面不加類型說明符。如Timer0、Delay、DelayMs。
3、源程序中的注釋符盡量不使用/* */,而使用//,這樣如果要臨時注掉大塊程序時,使用一次/* */就可以了,否則可能需要修改多處,麻煩。
4、格式上,注意縮進,尤其是多級判斷。而且執行體既便只有一句,有些地方也盡量不要忽略大括弧,舉例:
if(a>4)
{
a++;
}
else
{
a=0;
}
5、..............還有很多,一下想不起來。你可以自己體會,自己制定。
能力的體現方式有很多,比如說求職是否能如願。看人看細節,如果編程時養成了上述的習慣,不管你的實際水平如何,都說明了你的處事態度,在大家的智商水平差不多的前提下,無論於公於私,如果我是老闆的話會選擇你,放心的把任務交給你去做。
你先試試吧,說起來容易,做起來難,我自己的規則,我的執行度也就達到70%水平吧。
3. 單片機編程步驟
一、什麼是 nec 單片機
隨著大范疇集成電路的顯現和發展,將計算機的cpu、ram、rom、定時/數器和多種i/o介面集成在一片晶元上,組成晶元級的計較機,因此單片機早期的含義稱為單片微型計較機,直譯為單片機。單片機是一種集成在電路晶元,是採用超大范疇集成電路技能把具有數據處理本事的中心處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和間斷系統、 定時器 / 計時器 等成果(大要還包括表現驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完竣的計算機系
二、nec單片機的操縱教程詳解
1、在智能儀器儀表中的操縱:在各類儀器儀表中引入單片機,使儀器儀表智能化,進步測試的自動化程度和精度,簡化儀器儀表的硬體結構,進步其性能價格比。
2、在機電一體化中的操縱:機電一體化產品是指集呆板、微電子技能、計較機技能於一本,具有智能化特徵的電子產品。
3、在實時過程式控制制中的操縱:用單片機實時進行數據處理和控制,使系統保持最佳事變狀態,進步系統的事變從命和產品的品格。
4、在人類生活中的操縱:目前國外各種家用電器已普通採用單片機代替傳統的控制電路。
5、在此外方面的操縱:單片機除以上各方面的操縱,它還遍布操縱於辦公自動化范圍、商業營銷范圍、汽車及通信、計較機外部裝備、暗昧控制等各范圍中。
以上就是為大家整理的關於單片機含義及其具體操縱教程的全部內容了。此外小編還額外為大家整理了單片機的優點:低電壓、低功耗、集成度高、可靠性高、體積小、控製成果強等。希望通過這篇文章能夠給想要了解單片機相關知識的朋友帶來一些幫助。另外大家如果想了解更多單片機的知識可以通過圖書查閱、網路查閱等方式。