1. 如何更好的掌握編譯器的設計與實現
1. 閱讀相關書籍:編譯原理、編譯器設計、編譯器實現等;
2. 自學相關編程語言:C、C++、java等;
3. 實踐:可以使用開源的編譯器框架,例如ANTLR,搭建自己的編譯器;
4. 了解編譯器的各個組成部分,並學習它們的工作原理;
5. 閱讀技術文章,了解編譯器的設計和實現的最新進展;
6. 加入開源項目,編寫和維護編譯器;
7. 在論壇上交流,和更多的編譯器開發者分享心得體會;
8. 參加學術會議,接觸到最新的研究成果;
9. 嘗試著自己設計一個編譯器,用實踐來加深理解。
2. 大哥 大姐 求一篇 學計算機新技術的感想作文 我們聽的是演講 == 800字左右 拜託 急用啊 .......謝謝了
1.開場
自我介紹, 簡單講述我大學的學習的歷程,成果和感想。(1分鍾)
我一直都感慨本年級許多同學在大一時因為缺乏好指引,在一開始就對編程很害怕,對計算機的學習沒有開好頭,動手能力長期跟不上,空會理論,不會實踐,一直拖累到大四,最終選擇忍痛考研或者抱怨找工作難。我也幫助過不少在這方面比較弱的同學,但是總是因為基礎沒打好導致難以提高。我也一直希望學校能在大一的時候就讓同學們明白學習的重要性,打好扎實的專業基礎。現在終於有一次這樣的機會站在這里,為指引大家如何在大學專業技術學習的道路上開好頭做點貢獻。
今天我將結合我自身的經歷和我對計算機的理解,我對編程的感悟,我對大學學習的認識,給大家做報告。
首先問三個問題:
1) qq聊天軟體是用什麼語言寫的(第二天要換個問題)
答對的演講結束後留下來,我要親自給他傳授寶貴經驗,沒人答的話,很遺憾
2) 誰玩電腦游戲比較牛
恩,人很多,大家很踴躍,很好
展示下我寫的人工智慧黑白棋游戲,聲明真正的編程高手基本從來不玩游戲
(結合大四同學長期沉迷游戲最後找不到工作的例子,說明一個嚴肅的問題,只會玩游戲沒有用,會做游戲才牛,鼓勵大家努力學習,讓會玩游戲的同學也熱愛編程,最後也能自己寫游戲)
請大家記住:只會玩游戲沒有用,會做游戲才牛
3) 有沒有人對計算機特別感興趣 (為什麼感興趣)
如果有興趣,對學習計算機有巨大的幫助
興趣是最好的老師,鼓勵他們,勉勵其他人,興趣是可以培養的,要學會培養興趣
2.概述
計算機"科學"與"技術" 包含兩個層面
"科學" 指計算機硬體、軟體與應用的理論知識 理論的學習
"技術" 指軟體開發、工程實踐等技能與方法 能力的培養
我主要講的是如何學習技術(計算機技術)
講之前 澄清一個觀點 計算機技術 不等於 編程技術
編程只是一個工具,編程沒學好不代表你技術就學不好
計算機技術應該是與計算機軟體、硬體和網路三個部分相關的各種科技成果和應用的綜合,包括了多媒體,資料庫,操作系統,嵌入式系統,計算機安全,計算機網路,計算機管理和維護,計算機應用,人工智慧,模式識別,管理信息系統等,在我們生活的方方面面計算機技術幾乎無處不在。
(舉幾個例子)在現在社會,它幾乎與我們的生活息息相關。
(大學和高中的學習方式的區別)(學好技術的重要性)
在大學,學習的方式與高中或小學是有很大的區別的,大學更大,大學更自由,不再是完全跟著老師,不再是只要吃透了老師教授的內容就萬事大吉了,從我這一屆的情況看,許多同學特別是女生在大學還沿襲著高中的學習方式,勤奮刻苦,天天自習,非常認真,上課筆記做得秘密麻麻,把理論學得非常扎實,但是卻嚴重地忽略了實踐能力的培養,理論考試分數很高,但課程設計做不出東西來,顯然這種學習方式是不對的,這和高中的偏科又有什麼本質區別呢。
我覺得理論的學習和技術的學習是同等重要的,二者都不應該輕視,沒有側重點是不可能的,至於如何側重,如何在二者之間找到平衡點就取決於你自己的人生目標了。如果你喜歡研究理論,以後想繼續讀研深造可以稍微偏向理論,把理論基礎打得扎實一些,畢業以後可以留校任教或到科研院所去發展。如果你想走技術路線,那麼你就可以稍稍偏向技術,在不落下理論學習的情況下,把技術學好學精,畢業以後可以去IT企業發展,也可以自己創業,有了一身技術不怕沒飯吃。切莫完全忽視技術最後變成書獃子或完全不顧理論最後只是個代碼搬運工。
大家每個人,從現在開始就要下決心學好技術,那麼,如何學好技術呢。
3.如何學好技術
3.1制定好的學習計劃
3.1.1大一大二:打好基礎
3.1.1.1計算機方面的基本技能的學習
包括計算機眾多的應用技術的學習 和 常見的硬體維護
(大家應該盡量多多掌握計算機方面的基本技能,如word excel ppt access* photoshop* flash* dreamveaver* 結合我的經歷講講,我大一在自己沒有電腦的情況下把這些基本全學了 舉一個考研的同學不會在excel里找自己的名字的例子,如果這些最基本的技能都不會,只能說計算機還沒入門)大二有電腦之後,終於有機會整自己的電腦了,要學習常見的常見的硬體維護(系統崩潰了怎麼辦,如何安裝操作系統,如何分區等)
3.1.1.2專業理論基礎和編程基礎的學習
技術是將理論運用到實踐中去,不能輕視理論,沒有理論何來應用。計算機"科學"與"技術" 中的"科學"和"技術"應該是相互依賴和促進的。
先學好《高級語言程序設計》《數據結構》等專業課,理論基礎扎實了,學應用性技術就更容易了
編程基礎:學精C++(為什麼),可以考慮過渡到 java 或 C# (最好只學一個,為什麼)
(編程的學習會在後面再詳細講)
3.1.1.3珍惜這兩年大學自由學習的黃金時間
(曾經和一家公司的經理開玩笑,總經理感慨的說現在在大學里找一個又能力的學生來幫忙做項目真是很難啊,我說是呀,大學四年,大一的剛進校還在打基礎沒法做,大二的還剛起步沒足夠的能力做,大三的課程會很緊沒時間做,大四的找工作的找工作去了,考研的考研去了,沒人做了),大學四年,實則三年,希望大家不要把最寶貴的時間荒廢在游戲和娛樂上
3.1.2大三:深入學習,確定方向(技術方向,職業規劃)+多多實踐
到了大三,各種專業課會非常多,包括很重要的操作系統,匯編,組成原理,編譯原理,資料庫,計算機網路,軟體工程等等,大家將深入學習計算機的各大核心課程。這時大家的基礎打得也差不多了,可以選擇一門自己比較感興趣的技術並確定自己的技術的一個方向,比如選擇j2ee, .NET,WEB技術,資料庫技術,嵌入式,linux內核開發等等。當然也會有非常豐富多彩的專業選修課可以選擇學習。這段時間大家可以利用課程設計的機會好好鍛煉自己。
3.1.3大四:實踐和進步
大四,如果不打算考研的同學,工作有了著落之後,可以試著做項目,大四基本沒什麼課,相對輕松,這段時間是獲得經驗,銀子和巨大的進步黃金時期。
3.2重視專業課的學習
要把數據結構、演算法、資料庫、操作系統原理、計算機體系結構、計算機網路,離散數學等基礎課程學好
除非你足夠牛,請務必認真聽專業課,有些課像《數據結構》,《編譯原理》,《組成原理》,《操作系統》等等,這種課老師講一分鍾能讓你明白的內容,你自己看要看好幾個月
3.3培養好的思維能力
數學是鍛煉是思維的最好的東西了,他是你思考問題的最得力的工具,他體現著你的思想,在編程中會思考才能編出好的程序。
此外還要注重離散數學,數值分析,線性代數,數字邏輯等等課程的學習,他們對培養好的思維能力大有裨益
3.4激勵創新意識
創新太重要了,不管在哪個學科都重要,計算機同樣需要
3.5培養獨立分析問題和解決問題的能力
遇到問題,要先學會獨立思考,不能凡事依賴他人,盡量自己解決,在獨立解決問題過程中能獲得更大的進步,實在不能解決再請教別人也不遲
3.6培養自學能力和快速獲取知識的能力
自學能力之重要(大學和高中的學習方式的區別)
可以說高中是靠老師,大學是靠自己,要做到嚴格自律,自我約束,必須要學會自學
學習的過程也是學會學習的過程
要充分利用圖書館和網路上的豐富學習資源, 要培養計算機新知識,新技術方面的自學習能力,要學會如何通過網路,書籍,文獻,獨立地快速獲取自己需要的知識和信息
3.7培養團隊協作精神
在一個大型項目中,往往要求各種參與者密切配合才能取得成功。大家要從現在就開始注重團隊協作精神的培養,要學會與人溝通,善於表達,要注意提高自己的綜合素質,成為綜合型人才。
3.8學好英語
包括現在的大學英語和日後的專業英語。
也許有人會問,英語和技術有什麼大的關系嗎。大家是否知道,計算機的發展飛速,國際上新技術不斷涌現,如果今天國外出現了一門新的技術,或者國外某本技術書籍出了新版本,相關資料的中文的翻譯不知道要等到什麼猴年馬月才會出來,現在的許多出版也有了越來越多的英文原版書。
大家要學好英語,培養閱讀專業外語資料的能力,開始會看不懂,看多了自然熟練了。
(講下四六級,四級最好一次就過,六級在大二下結束前最好過)
3.9適時關注新技術
了解學科發展動態,跟上時代步法
3.10勤學苦練,持之以恆
學好技術不是一蹴而就的,要長期堅持。
4.無
5.無
6.關於編程的學習
6.1為什麼要學習編程
編程是軟體開發的基礎,學習計算機,只會編程是千萬不行的,但是開發軟體,不會編程是萬萬不行的
(結合本年級的情況將一下現狀,學習的重要性等)
6.2編程真的那麼難學嗎
(講講編程的苦與樂)
編程真的那麼可怕,那麼枯燥,那麼沒意思嗎?假如真是這樣,為什麼世界上還有那麼多優秀的人樂此不疲。
其實編程並不可怕,可怕的是你的心態。
編程固然很苦,編程時長時間對著屏幕,對身體不好,而且,經常因為考慮不周,會遇到各種各樣的錯誤和麻煩,初學者處處容易受挫。
但是其實編程是很有趣的,編程中充滿著無窮的快樂
首先,你通過編程得到了想要的成果的過程是一種創造的快樂
(編出了有用的東西的那一刻會有一股美好的成就感)
其次,你開發了有用的軟體可以方便自己或他人,方便自己,是一種享受的快樂,方便他人,是一種奉獻的快樂
再次,假如你開發的軟體得到了用戶的認可或好評,會有一種欣慰和滿足感
還有,你可以根據自己的意願寫你想要的東西,經過自己的努力親自實現你心中的願望
然後,編程也是一個挑戰自我的過程,遇到困難想辦法解決的過程是思考的過程,思維能得到鍛煉
最後,在代碼中有一種看不見的美,就像詩一樣,美景全是你的,你可以隨心所欲
編程真的非常有趣,它不僅滿足了我們內心深處進行創造的渴望,讓人頭腦變得靈活,而且還愉悅了每個人內在的情感。
6.3學好編程的建議
6.3.1請熱愛編程
如果想成為編程牛人的話,請熱愛編程。有興趣是最好了,沒興趣也沒關系,可以慢慢培養,當你感受到了編程的樂趣的時候你會愛上它。
6.3.2不要畏難
很多初學者往往都在遇到許多困難,遭受多次挫折後,自信心受到打擊從而對編程喪失興趣
這些困難每個人都會遇到,我在初學編程時也遇到過,關鍵是看你用什麼心態對待,是想辦法解決困難還是選擇逃避。很多問題其實是有很多解決方法的。譬如看書,遇到看不懂的部分,可以暫時跳過,先往後看,看完後面的之後,再回頭看前面跳過的部分往往會有一種豁然開朗的感覺。再比如,編程調試時死活找不到錯誤會很郁悶,這個時候很多同學會束手無策,其實只要在程序不同的地方加上輸出語句,然後運行看有哪些輸出,這樣一步步縮小錯誤的范圍從而確定錯誤發生的位置。等等。。。
不要畏懼困難,要用你的智慧戰勝它。
6.3.3多實踐,多交流
學習編程的秘訣是:編程,編程,再編程;(講講如何動手實踐)
在學校的實驗室就算你做錯一萬次程序都不會有人罵你,如果在公司你試試看!所以多去實驗室上機,現在錯得多了,畢業後就錯得少了。多實踐,多從失敗中吸取教訓,積累經驗。要勤奮,三天打魚兩天曬網是學不好的,學會了的東西一段時間不用就容易忘記,實踐得越多才能記得越牢。
現在大家是大一,可能有人會說沒有電腦不方便,其實實驗室不是只有在老師安排的實驗時間才可以去的,它是是面向計算機專業的學生免費開放的,大家有時間就去實驗機房練習,只要拿著學生證,或者乾脆直接跟那個阿姨說你是計算機的就行了。航海樓7樓的機房和圖書館電子閱覽室也是可以的。我大一的時候甚至還到陽光網吧編程呢。
到大二大三的時候課程設計就會多起來,大家一定要自己動手做,不要去網上搜一個就完事了。
與人交流,分享自己編程中的樂趣和經驗,共同進步。
6.3.4多閱讀書籍和代碼
編程不是非要在電腦上才能學的,閱讀書籍和書中的代碼也是一種學習方式,自己還可以嘗試著改進那些代碼,最後可以把自己的成果拿到電腦上調試
千萬不要忽視書後面的習題
6.3.5養成良好習慣
細節很重要
要細心,沉下心來編程,戒驕戒躁
養成良好習慣,注重編程風格,盡量寫代碼注釋,把寫過的代碼保留下來,以後會有用
6.3.6善於思考
遇到問題動腦筋解決
6.3.7注重基礎
打好編程基礎,除了熟悉基本的語法之外,要深刻理解指針,引用,面向過程思想,類,模板,標准庫,介面,繼承機制,面向對象思想等等,課後習題盡量全做一下
剛才說了,有精力的可以學學 photoshop圖像處理, flash動畫製作,3dmax或maya三維建模,dreamveaver網頁設計,但是不要因為他們花費過多的時間而影響了你基礎的學習,那些都是些應用技術,你學會了更好,不會也沒什麼丟人的,基礎打好了,以後學啥都輕松。
在基礎沒打好的情況下,不要覺得你編的程序只能在黑白的DOS窗口了運行就去學VC做漂亮的窗口,3d程序很有意思就去看OpenGL或DirectX,那些都屬於高級應用,沒有基礎學起來會很吃力。
基礎要扎實,不要覺得C#中沒有指針就扔掉C++, 不要今天看C#,明天搞java
要有明確的方向,計算機技術的發展實在太快,新技術不斷涌現,了解一下就可以了,不要隨波逐流,要沉得住氣
6.3.8選好開發環境
選擇一種適當的開發環境並熟悉它就可以了,不要今天擺弄Visual Studio,明天鑽研Eclipse,後天來個netbeans,在工具的使用的學習上白白浪費時間。
6.3.9選好編程語言
我在選擇語言時,走過一些彎路,浪費了一些精力,我在這里選出一些主流編程語言,對語言特性與環境稍作介紹,希望可以幫助大家,讓大家盡早了解與選擇,少走彎路
C(多用在性能要求較高的場合,如操作系統,嵌入式等)
C++(應用最廣泛、成熟,強大而復雜,兼有性能高和易於構建大型程序的優點,基本是衡量一個國家軟體產業發達程度的核心基礎)
Java(著名的SUN公司推出的,面向對象、安全、跨平台、強大穩健,需要java虛擬機的支持)
C#(微軟推出的完全面向對象,運行在 .NET Framework 環境中新興、易學、強大語言)
Python(新興的面向對象腳本語言,跨平台,語法清新易於使用,代碼優美得像數學一樣,非常容易學)
PHP (目前最流行、強大、穩健的動態網站開發腳本語言,語法類似C++)
ActionScript (Flash的編程腳本,最新版支持面向對象,能基於Flex開發RIA應用)
除此之外,還有vb, vb.net, asp.net, jsp, asp, ruby, Javascript等
這么多五花八門的語言,大家可能都會覺得眼花繚亂了。
其實各種語言之間只是語法不同,編程思想都是相通的,學精一門,了解多門是上策。
" 程序=演算法+數據結構 " 其中並沒有編程語言,說明語言只是程序員與計算機的編譯器溝通的一種工具,程序員用某種語言來表達程序的邏輯結構,計算機中相應的編譯器或解釋器理解這種語言,編譯得到二進製程序或者直接解釋執行。
以上這些語言我在大學前三年全部學過了,有的學得很深,有的很淺。因為人的精力畢竟有限,很多語言學過了之後根本就很少用到,幾乎是白學了,現在我深深的體會到,
語言並不是學得越多越好,與其泛而不精不如有針對性的先精通一門,其他的觸類旁通。
就大家現在的情況,希望大家把當前正在學習的C++學好,學到一定程度的時候,可以繼續深入的研究C++的各種庫,也可以從上面選擇感興趣的新語言學習,如果把C++基礎打好了,後面的學習就會容易得多。
最流行的語言不一定是最好的語言,用的人最多的語言也不一定是最好的語言。
請大家記住,沒有最好的語言,只有最適合某個領域的語言, 在不同的環境下選擇不同的語言就可以了。
6.3.10重視數據結構和演算法
理論上,計算機的任何編程語言都有可能會被淘汰,隨著時間的推移和計算機軟硬體的飛速發展,不斷會有新的語言產生和和舊的語言過時,但不會過時的是數據結構和優秀的演算法。真正的高手應該是善於設計優秀的數據結構和演算法的,應該是具有獨立分析和解決問題的能力並利用計算機程序來實現的,他的思想應該是超脫語言、在更高處的一種升華。
如果某一天,你深切的體會到,真正重要的不是什麼語言而是思想的時候,說明你可以出師了。
3. java學習心得
Java學習心得
引言
軟體開發之路是充滿荊棘與挑戰之路,也是充滿希望之路。Java學習也是如此,沒有捷徑可走。夢想像《天龍八部》中虛竹一樣被無崖子醍醐灌頂而輕松獲得一甲子功力,是很不現實的。每天仰天大叫"天神啊,請賜給我一本葵花寶典吧",殊不知即使你獲得了葵花寶典,除了受自宮其身之苦外,你也不一定成得了"東方不敗",倒是成"西方失敗"的幾率高一點。
"不走彎路,就是捷徑",佛經說的不無道理。
1.如何學習程序設計?
Java是一種平台,也是一種程序設計語言,如何學好程序設計不僅僅適用於Java,對C++等其他程序設計語言也一樣管用。有編程高手認為,Java也好C也好沒什麼分別,拿來就用。為什麼他們能達到如此境界?我想是因為編程語言之間有共通之處,領會了編程的精髓,自然能夠做到一通百通。如何學習程序設計理所當然也有許多共通的地方。
1.1培養興趣
興趣是能夠讓你堅持下去的動力。如果只是把寫程序作為謀生的手段的話,你會活的很累,也太對不起自己了。多關心一些行業趣事,多想想蓋茨。不是提倡天天做白日夢,但人要是沒有了夢想,你覺得有味道嗎?可能像許多深圳本地農民一樣,打打麻將,喝喝功夫茶,拜拜財神爺;每個月就有幾萬十幾萬甚至更多的進帳,憑空多出個"食利階層"。你認為,這樣有味道嗎?有空多到一些程序員論壇轉轉,你會發現,他們其實很樂觀幽默,時不時會冒出智慧的火花。
1.2慎選程序設計語言
男怕入錯行,女怕嫁錯郎。初學者選擇程序設計語言需要謹慎對待。軟體開發不僅僅是掌握一門編程語言了事,它還需要其他很多方面的背景知識。軟體開發也不僅僅局限於某幾個領域,而是已經滲透到了各行各業幾乎每一個角落。
如果你對硬體比較感興趣,你可以學習C語言/匯編語言,進入硬體開發領域。如果你對電信的行業知識及網路比較熟悉,你可以在C/C++等之上多花時間,以期進入電信軟體開發領域。如果你對操作系統比較熟悉,你可以學習C/Linux等等,為Linux內核開發/驅動程序開發/嵌入式開發打基礎。
如果你想介入到應用范圍最廣泛的應用軟體開發(包括電子商務電子政務系統)的話,你可以選擇J2EE或.NET,甚至LAMP組合。每個領域要求的背景知識不一樣。做應用軟體需要對資料庫等很熟悉。總之,你需要根據自己的特點來選擇合適你的編程語言。
1.3要腳踏實地,快餐式的學習不可取
先分享一個故事。
有一個小朋友,他很喜歡研究生物學,很想知道那些蝴蝶如何從蛹殼里出來,變成蝴蝶便會飛。有一次,他走到草原上面看見一個蛹,便取了回家,然後看著,過了幾天以後,這個蛹出了一條裂痕,看見裡面的蝴蝶開始掙扎,想抓破蛹殼飛出來。這個過程達數小時之久,蝴蝶在蛹裡面很辛苦地拚命掙扎,怎麼也沒法子走出來。這個小孩看著看著不忍心,就想不如讓我幫幫它吧,便隨手拿起剪刀在蛹上剪開,使蝴蝶破蛹而出。但蝴蝶出來以後,因為翅膀不夠力,變得很臃腫,飛不起來。
這個故事給我們的啟示是:欲速則不達。
浮躁是現代人最普遍的心態,能怪誰?也許是貧窮落後了這么多年的緣故,就像當年的大躍進一樣,都想大步跨入***主義社會。現在的軟體公司、客戶、政府、學校、培訓機構等等到處彌漫著浮躁之氣。就拿我比較熟悉的大連大工IT職業培訓來說吧,居然打廣告宣稱"20多年的計算機職業教育,遼寧省十佳學校",殊不知中國計算機發展才幾年,軟體發展才幾年,居然去報名的學生不少,簡直是藐視天下程序員。培訓出來的「程序員」大多不知道OO,OP為何物?社會環境如是,我們不能改變,只能改變自己,鬧市中的安寧,彌足珍貴。許多初學者C++/Java沒開始學,立馬使用VC/JBuilder,會使用 VC/JBuilder開發一個Hello World程序,就忙不迭的向世界宣告,"我會軟體開發了",簡歷上也大言不慚地寫上"精通VC/Java"。結果到軟體公司面試時要麼被三兩下打發走了,要麼被駁的體無完膚,無地自容。到處碰壁之後才知道捧起《C++編程思想》《Java編程思想》仔細鑽研,早知如此何必當初呀。
"你現在講究簡單方便,你以後的路就長了",好象也是佛經中的勸戒。
1.4多實踐,快實踐
彭端淑的《為學一首示子侄》中有窮和尚與富和尚的故事。
從前,四川邊境有兩個和尚,一個貧窮,一個有錢。一天,窮和尚對富和尚說:"我打算去南海朝聖,你看怎麼樣?"富和尚說:"這里離南海有幾千里遠,你靠什麼去呢?"窮和尚說:"我只要一個水缽,一個飯碗就夠了。"富和尚為難地說:"幾年前我就打算買條船去南海,可至今沒去成,你還是別去吧!" 一年以後,富和尚還在為租賃船隻籌錢,窮和尚卻已經從南海朝聖回來了。
這個故事可解讀為:任何事情,一旦考慮好了,就要馬上上路,不要等到准備周全之後,再去幹事情。假如事情准備考慮周全了再上路的話,別人恐怕捷足先登了。軟體開發是一門工程學科,注重的就是實踐,"君子動口不動手"對軟體開發人員來講根本就是錯誤的,他們提倡"動手至上",但別害怕,他們大多溫文爾雅,沒有暴力傾向,雖然有時候蓬頭垢面的一副"比爾蓋茨"樣。有前輩高人認為,學習編程的秘訣是:編程、編程、再編程,筆者深表贊同。不僅要多實踐,而且要快實踐。我們在看書的時候,不要等到你完全理解了才動手敲代碼,而是應該在看書的同時敲代碼,程序運行的各種情況可以讓你更快更牢固的掌握知識點。
1.5多參考程序代碼
程序代碼是軟體開發最重要的成果之一,其中滲透了程序員的思想與靈魂。許多人被《仙劍奇俠傳》中凄美的愛情故事感動,悲劇的結局更有一種缺憾美。為什麼要以悲劇結尾?據說是因為寫《仙劍奇俠傳》的程序員失戀而安排了這樣的結局,他把自己的感覺融入到游戲中,卻讓眾多的仙劍迷扼腕嘆息。
多多參考代碼例子,對Java而言有參考文獻[4.3],有API類的源代碼(JDK安裝目錄下的src.zip文件),也可以研究一些開源的軟體或框架。
1.6加強英文閱讀能力
對學習編程來說,不要求英語, 但不能一點不會,。最起碼像Java API文檔(參考文獻[4.4])這些東西還是要能看懂的,連猜帶懵都可以;旁邊再開啟一個"金山詞霸"。看多了就會越來越熟練。在學Java的同時學習英文,一箭雙雕多好。另外好多軟體需要到英文網站下載,你要能夠找到它們,這些是最基本的要求。英語好對你學習有很大的幫助。口語好的話更有機會進入管理層,進而可以成為剝削程序員的"周扒皮"。
1.7萬不得已才請教別人
筆者在Martix與Java論壇的在線輔導系統中解決學生問題時發現,大部分的問題學生稍做思考就可以解決。請教別人之前,你應該先回答如下幾個問題。
你是否在google中搜索了問題的解決辦法?
你是否查看了Java API文檔?
你是否查找過相關書籍?
你是否寫代碼測試過?
如果回答都是"是"的話,而且還沒有找到解決辦法,再問別人不遲。要知道獨立思考的能力對你很重要。要知道程序員的時間是很寶貴的。
1.8多讀好書
書中自有顏如玉。比爾蓋茨是一個飽讀群書的人。雖然沒有讀完大學,但九歲的時候比爾蓋茨就已經讀完了所有的網路全書,所以他精通天文、歷史、地理等等各類學科,可以說比爾?茨不僅是當今世界上金錢的首富,而且也可以稱得上是知識的巨富。
筆者在給學生上課的時候經常會給他們推薦書籍,到後來學生實在忍無可忍開始抱怨,"天吶,這么多書到什麼時候才能看完了","學軟體開發,感覺上了賊船 "。這時候,我的回答一般是,"別著急,什麼時候帶你們去看看我的書房,到現在每月花在技術書籍上的錢400元,這在軟體開發人員之中還只能夠算是中等的 ",學生當場暈倒。(註:這一部分學生是剛學軟體開發的)
1.9使用合適的工具
工欲善其事必先利其器。軟體開發包含各種各樣的活動,需求收集分析、建立用例模型、建立分析設計模型、編程實現、調試程序、自動化測試、持續集成等等,沒有工具幫忙可以說是寸步難行。工具可以提高開發效率,使軟體的質量更高BUG更少。組合稱手的武器。到飛花摘葉皆可傷人的境界就很高了,無招勝有招,手中無劍心中有劍這樣的境界幾乎不可企及。
2.軟體開發學習路線
兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進也不保守並非中庸之道,而是找尋學習軟體開發的正確路線與規律。
從軟體開發人員的生涯規劃來講,我們可以大致分為三個階段,軟體工程師→軟體設計師→架構設計師或項目管理師。不想當元帥的士兵不是好士兵,不想當架構設計師或項目管理師的程序員也不是好的程序員。我們應該努力往上走。讓我們先整理一下開發應用軟體需要學習的主要技術。
A.基礎理論知識,如操作系統、編譯原理、數據結構與演算法、計算機原理等,它們並非不重要。如不想成為計算機科學家的話,可以採取"用到的時候再來學"的原則。
B.一門編程語言,現在基本上都是面向對象的語言,Java/C++/C#等等。如果做WEB開發的話還要學習HTML/JavaScript等等。
C.一種方法學或者說思想,現在基本都是面向對象思想(OOA/OOD/設計模式)。由此而衍生的基於組件開發CBD/面向方面編程AOP等等。
D.一種關系型資料庫,ORACLE/SqlServer/DB2/MySQL等等
E.一種提高生產率的IDE集成開發環境JBuilder/Eclipse/VS.NET等。
F.一種UML建模工具,用ROSE/VISIO/鋼筆進行建模。
G.一種軟體過程,RUP/XP/CMM等等,通過軟體過程來組織軟體開發的眾多活動,使開發流程專業化規范化。當然還有其他的一些軟體工程知識。
H.項目管理、體系結構、框架知識。
正確的路線應該是:B→C→E→F→G→H。
還需要補充幾點:
1).對於A與C要補充的是,我們應該在實踐中逐步領悟編程理論與編程思想。新技術雖然不斷涌現,更新速度令人眼花燎亂霧里看花;但萬變不離其宗,編程理論與編程思想的變化卻很慢。掌握了編程理論與編程思想你就會有撥雲見日之感。面向對象的思想在目前來講是相當關鍵的,是強勢技術之一,在上面需要多投入時間,給你的回報也會讓你驚喜。
2).對於資料庫來說是獨立學習的,這個時機就由你來決定吧。
3).編程語言作為學習軟體開發的主線,而其餘的作為輔線。
4).軟體工程師著重於B、C、E、D;軟體設計師著重於B、C、E、D、F;架構設計師著重於C、F、H。
3.如何學習Java?
3.1 Java學習路線
3.1.1 基礎語法及Java原理
基礎語法和Java原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習Java也是如此,必須要有扎實的基礎,你才能在J2EE、 J2ME領域游刃有餘。參加SCJP(SUN公司認證的Java程序員)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉Java基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟體公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得"真正"的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。
3.1.2 OO思想的領悟
掌握了基礎語法和Java程序運行原理後,我們就可以用Java語言實現面向對象的思想了。面向對象,是一種方法學;是獨立於語言之外的編程思想;是 CBD基於組件開發的基礎;屬於強勢技術之一。當以後因工作需要轉到別的面向對象語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這么簡單。
使用面向對象的思想進行開發的基本過程是:
●調查收集需求。
●建立用例模型。
●從用例模型中識別分析類及類與類之間的靜態動態關系,從而建立分析模型。
●細化分析模型到設計模型。
●用具體的技術去實現。
●測試、部署、總結。
3.1.3 基本API的學習
進行軟體開發的時候,並不是什麼功能都需要我們去實現,也就是經典名言所說的"不需要重新發明輪子"。我們可以利用現成的類、組件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調用類中的方法來完成某些功能或繼承它。那麼這些類中究竟提供了哪些方法給我們使用?方法的參數個數及類型是?類的構造器需不需要參數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,Java DOC文檔(參考文獻4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。
基本API指的是實現了一些底層功能的類,通用性較強的API,如字元串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查Java DOC文檔(參考文獻4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。
3.1.4 特定API的學習
Java介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發,那麼你需要學習Swing/AWT/SWT等API;如果你進行網路游戲開發,你需要深入了解網路API/多媒體API/2D3D等;如果你做WEB開發,就需要熟悉Servlet等API啦。總之,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。
3.1.5 開發工具的用法
在學習基礎語法與基本的面向對象概念時,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急於上手JBuilder/Eclipse等集成開發環境,以免過於關注IDE的強大功能而分散對Java技術本身的注意力。過了這一階段你就可以開始熟悉 IDE了。
程序員日常工作包括很多活動,編輯、編譯及構建、調試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務欄上不斷的切換,效率很低下,也很容易出錯。在JBuilder、 Eclipse等IDE中已經自動集成編輯器、編譯器、調試器、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進去,又提供了豐富的向導幫助生成框架代碼,讓我們的開發變得更輕松。應該說IDE發展的趨勢就是集成軟體開發中要用到的幾乎所有工具。
從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程序員轉變的里程碑。
Java開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder 佔有的市場份額是最大的。JBuilder在近幾年來一直是Java集成開發環境中的霸主,它是由備受程序員尊敬的Borland公司開發,在硝煙彌漫的 Java IDE大戰中,以其快速的版本更新擊敗IBM的Visual Age for Java等而成就一番偉業。IBM在Visual Age for Java上已經無利可圖之下,乾脆將之貢獻給開源社區,成為Eclipse的前身,真所謂"柳暗花明又一村"。浴火重生的Eclipse以其開放式的插件擴展機制、免費開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發展潛力。
3.1.6 學習軟體工程
對小型項目而言,你可能認為軟體工程沒太大的必要。隨著項目的復雜性越來越高,軟體工程的必要性才會體現出來。參見"軟體開發學習路線"小節。
3.2學習要點
確立的學習路線之後,我們還需要總結一下Java的學習要點,這些要點在前文多多少少提到過,只是筆者覺得這些地方特別要注意才對它們進行匯總,不要嫌我婆婆媽媽啊。
3.2.1勤查API文檔
當程序員編寫好某些類,覺得很有成就感,想把它貢獻給各位苦難的同行。這時候你要使用"Javadoc"工具(包含在JDK中)生成標準的Java DOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。J2SE DOC文檔官方下載地址:http://Java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下載。也可以在線查看:http://Java.sun.com/j2se/1.5.0/docs/api/index.html。
對待DOC文檔要像毛語錄,早上起床念一遍,吃飯睡覺前念一遍。
當需要某項功能的時候,你應該先查相應的DOC文檔看看有沒有現成的實現,有的話就不必勞神費心了直接用就可以了,找不到的時候才考慮自己實現。使用步驟一般如下:
●找特定的包,包一般根據功能組織。
●找需要使用類,類命名規范的話我們由類的名字可猜出一二。
●選擇構造器,大多數使用類的方式是創建對象。
●選擇你需要的方法。
3.2.2 查書/google->寫代碼測試->查看源代碼->請教別人
當我們遇到問題的時候該如何解決?
這時候不要急著問別人,太簡單的問題,沒經過思考的問題,別人會因此而瞧不起你。可以先找找書,到google中搜一下看看,絕大部分問題基本就解決了。而像"某些類/方法如何使用的問題",DOC文檔就是答案。對某些知識點有疑惑是,寫代碼測試一下,會給你留下深刻的印象。而有的問題,你可能需要直接看 API的源代碼驗證你的想法。萬不得已才去請教別人。
3.2.3學習開源軟體的設計思想
Java領域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進行分析,領會其中的設計思想,有朝一日說不定你也能寫一個XXX框架什麼的,風光一把。分析開源軟體其實是你提高技術、提高實戰能力的便捷方法。
3.2.4 規范的重要性
沒有規矩,不成方圓。這里的規范有兩層含義。第一層含義是技術規范,多到http://www.jcp.org下載JSRXXX規范,多讀規范,這是最權威准確最新的教材。第二層含義是編程規范,如果你使用了大量的獨特演算法,富有個性的變數及方法的命名方式;同時,沒給程序作注釋,以顯示你的編程功底是多麼的深厚。這樣的代碼別人看起來像天書,要理解談何容易,更不用說維護了,必然會被無情地掃入垃圾堆。Java編碼規范到此查看或下載http://Java.sun.com/docs/codeconv/,中文的也有,啊,還要問我在哪,請參考3.2.2節。
3.2.5 不局限於Java
很不幸,很幸運,要學習的東西還有很多。不幸的是因為要學的東西太多且多變,沒時間陪老婆家人或女朋友,導致身心疲憊,嚴重者甚至導致抑鬱症。幸運的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達成心願。
Java不要孤立地去學習,需要綜合學習數據結構、OOP、軟體工程、UML、網路編程、資料庫技術等知識,用橫向縱向的比較聯想的方式去學習會更有效。如學習Java集合的時候找數據結構的書看看;學JDBC的時候復習資料庫技術;採取的依然是"需要的時候再學"的原則。
4.結束語
需要強調的是,學習軟體開發確實有一定的難度,也很辛苦,需要付出很多努力,但千萬不要半途而廢。本文如果能對一直徘徊在Java神殿之外的朋友有所幫助的話,筆者也欣慰了。哈哈,怎麼聽起來老氣橫秋呀?沒辦法,在電腦的長期輻射之下,都快變成小老頭了。最後奉勸各位程序員尤其是MM程序員,完成工作後趕快遠離電腦,據《胡播亂報》報道,電腦輻射會在白皙的皮膚上面點綴一些小黑點,看起來鮮艷無比…… 拖起明天的夢想還得靠自己!
4. 零基礎如何學習C語言
如何學習 C 語言?
在教學過程中,有些人會覺得C語言。學習比較困難,主要是有幾個原因,一個是它C 語言的語法知識太多有點太過於瑣碎,碎了。第二個就是他C 語言反復的算數類編程練習,有些人會不感興趣,然後就不願意寫程序就覺得入門很困難。
總結:其實最主要的是要勤加練習,勤能補拙,當年基礎知識掌握後你就可以試著開發一個小程序的開發了自己人生第一個程序後,你就會油然而生,一種自豪感,這樣的話就會增加你對編程工能力的提高以及感興趣程度。所以興趣是第一老師,如果你不愛玩游戲,沒有好奇心的話,你最好還是要考慮一下對是否學習編程
5. 單片機實訓總結範文5篇
單片機實訓課程,是農業工程類專業非常重要的專業技術課,是後續專業實踐課的基礎,大家做好實訓 總結 ,總結更多的 經驗 。下面是我給大家帶來的單片機實訓總結 範文 _單片機實訓 工作總結 ,以供大家參考,我們一起來看看吧!
↓ ↓ 更多關於 「 實 訓總 結 」 內容推薦 ↓ ↓
★ 單 片機實 訓報 告 ★
★ 單 片 機實 訓心得 體 會 ★
★ 實 訓總 結報 告范 文 ★
★ 實 訓總 結與心 得 體 會 ★
★ 實 習實訓總 結報 告 ★
▼ 單片機實訓總結範文篇一:
通過今次單片機實訓,使我對單片機的認識有了更深刻的理解。系統以51單片機為核心部件,利用匯編軟體編程,通過鍵盤控制和數碼管顯示實現了基本時鍾顯示功能、時間調節功能,能實現本設計題目的基本要求和發揮部分。
由於時間有限和本身知識水平的限制,本系統還存在一些不夠完善的地方,要作為實際應用還有一些具體細節問題需要解決。例如:不能實現只用兩個按鍵來控制時鍾時間,還不能實現鬧鍾等擴展功能。
踉踉蹌蹌地忙碌了兩周,我的時鍾程序終於編譯成功。當看著自己的程序,自己成天相伴的系統能夠健康的運行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最終都會化為甜美的甘泉。
但在這次實訓中同時使我對匯編語言有了更深的認識。當我第一次接觸匯編語言就感覺很難,特別是今次實訓要用到匯編語言,盡管困難重重,可我們還是克服了。這次的實訓使培養了我們嚴肅認真的做事作風,增強了我們之間的團隊合作能力,使我們認識到了團隊合作精神的重要性。
這次實訓的經歷也會使我終身受益,我感受到這次實訓是要真真正正用心去做的一件事情,是真正的自己學習的過程和研究的過程,沒有學習就不可能有研究的能力,沒有自己的研究,就不會有所突破。希望這次的經歷能讓我在以後學習中激勵我繼續進步。
▼ 單片機實訓總結範文篇二:
通過這一個學期的單片機學習,我收獲了很多關於單片機的知識,並且這些知識和日常的生活息息相關。了解了一些簡單程序的錄入,LED 顯示器 、鍵盤、和顯示器的應用和原理。
LED顯示器:LED顯示器是由發光二管組成顯示欄位的器件。通常的8段LED顯示器是由8個發光二極體組成,LED顯示器分共陽極和共陰極兩種。有段選碼和和位選碼。當LED顯示器每段的平均電流位5MA時,就有較滿意的亮度,一般選擇斷碼5-10MA電流;位線的電流應選擇40-80MA。LED顯示器的顯示方式有動態和靜態兩種。7289A晶元是具有SPI串列介面功能的顯示鍵盤控制晶元,它可同時取得8位共陰極數碼管和64個鍵的鍵盤矩陣。7289A的控制指令分為兩類:8位寬度的單位元組指令和16位寬度雙位元組指令;還有閃爍指令和消隱指令。7289A採用串列方式SPI匯流排與微處理器通信;7289A與AT89C52介面電路,在實際電路中無論接不接鍵盤,電路中連接到其各段上的8個 100千歐的下拉電阻均不可以省去,如果不接鍵盤而只接顯示器可以省去8個10千歐電阻,若僅接鍵盤而不接顯示器,可省去串入DP及SA-SG連線的8個220歐電阻,7289A還需要外接晶體振盪電路。液晶顯示器簡稱LCD,其顯示原理是用經過處後的液晶具有能改變光線傳輸方向的特性,達到顯示字元和圖形的目的。最簡單的筆段式液晶顯示器類似於LCD顯示器,可以顯示簡單的字元和數字,而目前大量使用的是點陣式LCD顯示器,既可以顯示字元和數字也可以顯示漢字和圖形。如果把LCD顯示屏、背光可變電源、介面控制邏輯、驅動集成晶元等部件構成一個整體,是的與CPU介面十分方便。
鍵盤:鍵盤是最常見的計算機輸入設備,它廣泛應用於微型計算機和各種終端設備上。計算機操作者通過鍵盤向計算機輸入各種指令、數據,指揮計算機的工作。按照鍵盤的工作原理和按鍵方式的不同,可以劃分為四種:機械式鍵盤採用類似金屬接觸式開關,工作原理是使觸點導通或斷開,具有工藝簡單、噪音大、易維護的特點。 塑料薄膜式鍵盤鍵盤內部共分四層,實現了無機械磨損。其特點是低價格、低噪音和低成本,已佔領市場絕大部分份額。 導電橡膠式鍵盤觸點的結構是通過導電橡膠相連。鍵盤內部有一層凸起帶電的導電橡膠,每個按鍵都對應一個凸起,按下時把下面的觸點接通。這種類型鍵盤是市場由機械鍵盤向薄膜鍵盤的過渡產品。 無接點靜電電容式鍵盤使用類似電容式開關的原理,通過按鍵時改變電極間的距離引起電容容量改變從而驅動編碼器。特點是無磨損且密封性較好。
按照按鍵方式的不同鍵盤可分為接觸式和無觸點式兩類。接觸式鍵盤就是我們通常所說的機械式鍵盤,它又分為普通觸點式和干簧式。普通觸點式的兩個觸點直接接觸,從而使電路閉合,產生信號;而干簧式鍵盤則是在觸點間加裝磁鐵,當鍵按下時,依靠磁力使觸點接觸,電路閉合。與普通觸點式鍵盤相比,干簧式鍵盤具有響應速度快、使用壽命長、觸點不易氧化等優點。無觸點式鍵盤又分為電容式、霍爾式和觸摸式三種。其中電容式是我們最常用到的鍵盤類型,它的觸點之間並非直接接觸,而是當按鍵按下時,在觸點之間形成兩個串聯的平板電容,從而使脈沖信號通過,其效果與接觸式是等同的。電容式鍵盤擊鍵時無雜訊,響應速度快,但是價格很高一些。
顯示器:按照顯示器的顯示管分類CRT、LCD。按顯示色彩分類單色顯示器、彩色顯示器。按大小分類通常有14寸、15寸、17寸和19寸,或者更大。顯示管的屏幕上塗有一層熒光粉,電子槍發射出的電子擊打在屏幕上,使被擊打位置的熒光粉發光,從而產生了圖像,每一個發光點又由「紅」「綠」「藍」三個小的發光點組成,這個發光點也就是一個象素。由於電子束是分為三條的,它們分別射向屏幕上的這三種不同的發光小點,從而在屏幕上出現絢麗多彩的畫面。顯示器顯示畫面是由顯示卡來控制的。若仔細觀察顯示器上的文本或圖像是由點組成的,屏幕上點越多越密,則解析度越高。
屏幕上相鄰兩個同色點的距離稱為點距,常見點距規格有0.31mm、0.28mm、0.25mm等。顯示器點距越小,在高解析度下越容易取得清晰的顯示效果。電子束採用光柵掃描方式,從屏幕左上角一點開始,向右逐點進行掃描,形成一條水平線;到達最右端後,又回到下一條水平線的左端,重復上面的過程;當電子束完成右下角一點的掃描後,形成一幀。此後,電子束又回到左上方起點,開始下一幀的掃描。這種 方法 也就是常說的逐行掃描顯示。而隔行掃描指電子束在掃描時每隔一行掃一線,完成一屏後再返回來掃描剩下的線,這與電視機的原理一樣。隔行掃描的顯示器比逐行掃描閃爍得更厲害,也會讓使用者的眼睛更疲勞。完成一幀所花時間的倒數叫垂直掃描頻率,也叫刷新頻率,比如60Hz、75Hz等。
通過這幾天的單片機的實訓,我在理論的基礎上更深刻的掌握了單片機的深層內容及實際生活中的應用,實訓鍛煉了自己動手能力和思維能力,還有在軟體方面的編程能力,讓我受益匪淺,同時也暴露出一些平時學習上的問題,讓我深刻 反思 。這些問題的發現將為我以後的學習和工作找明道路,查漏補缺為進一步學習作好准備。通過實訓,讓我懂得了如何編寫一些簡單的程序,學會了如何製作單片機應用程序,並且可以在今後的日常生活中靈活運用。
▼ 單片機實訓總結範文篇三:
一 實習目的
1. 通過對單片機小系統的設計、焊接、裝配,掌握電路原理圖及電子線路的基本焊接裝配工藝、規范及注意事項;
2. 通過對系統板的測試,了解系統板的工作原理及性能,掌握元器件及系統故障的排除方法;
3. 掌握程序編制及調試方法,完成系統初始化、存儲器操作、埠操作、鍵盤顯示等程序的編制及調試(匯編語言、C語言均可);
4. 通過單片機系統的組裝,調試以及程序編制、調試及運行,與理論及實驗的有機結合和指導教師的補充介紹,使學生掌握控制系統的工作原理、開發方法和操作方法。
5. 培養學生解決實際問題的能力,提高對理論知識的感性認識。
二 實習意義
通過本實習不但可以掌握單片機軟、硬體的綜合調試方法,而且可以熟練掌握電路原理圖,激發對單片機智能性的探索精神,提高學生的綜合素質,培養學生應用單片機實現對工業控制系統的設計、開發與調試的能力。在製作學習過程中,不但可以掌握軟、硬體的綜合調試方法,而且可以使學生對單片機智能性產生強烈的慾望。達到最大限度地掌握微機應用技術,軟體及介面設計和數據採集與處理的技能,培養電綜合實踐素質的目的。
三 系統基本組成及工作原理
1 系統基本組成
系統以單片機STC89C52作為控制核心,各部分基本組成框圖如圖1所示。
流水燈部分由單片機、鍵盤模塊等組成;
四位數碼顯示,編程實現30秒倒計時部分由單片機、鍵盤模塊、液晶顯示模塊等組成;
按鍵功能部分通過按鍵控制流水燈部分、四位數碼顯示部分;
電子鍾部分由單片機、鍵盤模塊、液晶顯示模塊等組成;
使用功能鍵實現相應的功能組合部分通過流水燈部分、30秒倒計時部分實現;
模數轉換部分由單片機、ADC0809轉換模塊、鍵盤模塊、液晶顯示模塊等組成。
2 系統工作原理
本設計採用STC89C52RC單片機作為本系統的控制模塊。單片機可把由ADC0809及單片機中的數據利用軟體來進行處理,從而把數據傳輸到顯示模塊,實現阻值大小的顯示。以數碼管顯示為顯示模塊,把單片機傳來的數據顯示出來。在顯示電路中,主要靠按鍵來實現各種顯示要求的選擇與切換。
對於模數轉換部分,單片機89C51通過P0口的I/O線向ADC0809發送鎖存地址以及復位、啟動轉換等信號,並查詢轉換狀態。 ADC0809啟動轉換後,將0-8個通道一次輸入的電壓信號轉換成相應的數字量,供89c51讀取使用,並且將EOC置1供單片機查詢轉換狀態。而滑動變阻器負責將阻值信號轉換成電壓信號,再送到ADC0809的八個通道。當單片機查詢到轉換結束後依次讀取數據並按照現實的需要進行二進制轉BCD碼等處理最後控制顯示電路顯示出數字。 其實現方式是:ADC0809轉換來自3通道的阻值變化信號。80c51的P2口與ADC0809的輸出相連用於讀取轉換結果,同時P0.0-P0.6作控制匯流排,向ADC0809發送鎖存、啟動等控制信息,並查詢EOC狀態。ALE經分頻後給ADC0809提供時鍾信號。P3.0和P3.1口用於向顯示電路輸出段碼,P3.2-P3.7用於數碼管的位選。
四 系統硬體設計
結合本設計的要求和技術指標,通過對系統大致程序量的估計和系統工作的估計,考慮價格因素。選定AT89C51單片機作為系統的主要控制晶元,8位模擬轉換器ADC0809進行阻值轉換。 逐次比較法A/D轉換器是目前種類最多、應用最廣的A/D轉換器,其原理即「逐位比較」,其過程類似於用砝碼在天平上稱物體重量。它由N位寄存器、A/D轉換器、比較器和控制邏輯等部分組成,N位寄存器代表N位二進制碼。目前應用最廣的逐次比較法A/D轉換器有ADC0809。它是一種8路模擬輸入8位數字輸出的逐次比較法A/D轉換器件。其主要性能指標和特性如下:
分表率:8位
轉換時間:取決於晶元時鍾頻率,轉換一次時間位64個時鍾周期
單一電源:+5v
模擬輸入電壓范圍:單極性0-+5v;雙極性-5v-+5v
具有可控三態輸出鎖存器
啟動轉換控制位脈沖式,上升沿使內部所有寄存器清零,下降沿使A/D轉換開始。
通過以上性能比較,我們不難看出ADC0809滿足本設計的要求,所以本設計採用ADC0809作為A/D轉換器
1 按鍵電路設計
利用單片機的P1口擴展一個8位鍵盤。
2 晶振與復位電路設計
本設計採用的是上電復位的形式,如圖3.3所示,上電順進RST獲得高電平,隨著電容器C的充電,RST引腳上的高電平將逐漸下降,只要高電平能保持復位所需要的兩個機器周期以上時間,單片機就能實現復位操作。 晶振電路為單片機提供工作所需要的時鍾信號。震盪頻率越高,系統時鍾頻率也越高,單片機運行的速度就越快。其電路如圖3.4所示。89C51的_TAL1和_TAL2兩個引腳跨接晶體振盪器和微調電容C1、C2形成反饋電路,就構成了穩定的自激振盪器,本設計的震盪器頻率為12MHZ。
3 下載電路設計
4 流水燈模塊設計
5 模數轉換模塊設計
6 顯示電路設計
本設計採用六位數碼管。本系統採用共陽極動態掃描的方式連接。數碼管的段碼數據由89C51的P3.0-P3.1口送出,89C51的P3.2-P3.7輸出位選通信號,只有被選中的那位數碼管才會顯示段碼
7 整體電路設計
五 系統軟體設計
1主程序設計
主程序採用分支結構,以狀態號標識系統所處的狀態。在上電初始化後即進入狀態號的輪詢掃描,狀態號的值決定了分支程序的入口。其中分支程序分別為:AD轉換模塊(狀態號為0),數字模塊狀態號為1),倒計時模塊(狀態號為2),電子鍾模塊(狀態號為3),功能組合模塊(狀態號為4),流水燈模塊(狀態號為5)。
2 功能子程序設計
2.1 流水燈模塊
流水燈模塊利用單片機的P3口,通過給P3口的各位送低電平,相應的實現流水燈有規律的點亮。
2.2 30秒倒計時模塊
30秒倒計時模塊利用單片機的P3.0與P3.1口送相應的段控數據,P3.2-P3.7口送相應的位控數據。通過程序實現30秒倒計時。
2.3 數字加減模塊
利用數碼管實現數字顯示,通過加一鍵或者是減一鍵實現數字變數的加一或者減一,進而實現利用數碼管顯示加一鍵、減一鍵功能。
2.4 電子鍾模塊
利用數碼管實現時間顯示,通過加一鍵或者是減一鍵實現小時變數或者是分鍾變數的加一,從而實現調時功能。
2.5 模數轉換模塊
對於模數轉換部分,單片機89C51通過P0口的I/O線向ADC0809發送鎖存地址以及復位、啟動轉換等信號,並查詢轉換狀態。 ADC0809啟動轉換後,將0-8個通道一次輸入的電壓信號轉換成相應的數字量,供89c51讀取使用,並且將EOC置1供單片機查詢轉換狀態。而滑動變阻器負責將阻值信號轉換成電壓信號,再送到ADC0809的八個通道。當單片機查詢到轉換結束後依次讀取數據並按照現實的需要進行二進制轉BCD碼等處理最後控制顯示電路顯示出數字。 其實現方式是:ADC0809轉換來自3通道的阻值變化信號。80c51的P2口與ADC0809的輸出相連用於讀取轉換結果,同時P0.0-P0.6作控制匯流排,向ADC0809發送鎖存、啟動等控制信息,並查詢EOC狀態。ALE經分頻後給ADC0809提供時鍾信號。P3.0和P3.1口用於向顯示電路輸出段碼,P3.2-P3.7用於數碼管的位選。
六 實習總結 、體會
本次單片機實習我們一共完成了個模塊的程序設計,包括:led顯示模塊、數碼管顯示模塊和鍵盤模塊。分別實現了流水燈的循環點亮控制、數碼管的靜態和動態計數顯示,還有矩陣鍵盤按鍵控制數碼管顯示的程序設計。然後我們分別用protues系統模擬軟體對各個模塊進行了模擬模擬,用keil軟體編制了匯編語言程序,驗證了我們所設計的程序。 這次實習還使我理解了編寫程序的一些技巧。單片機應用系統一般由包含多個模塊的主程序和由各種子程序組成。每一模塊都要完成一個明確的任務,實現某個具體的功能,如計算、接受、發送、延時、顯示等。採用模塊化程序設計方法,就是將這些具體功能程序進行獨立設計和分別調試,最後將這些模塊程序裝配成整體程序並進行聯合調試。模塊化程序設計方法的優點:一個模塊可以為多個程序所共享;單個功能明確的程序模塊的設計和調試比較方便,容易完成;利用已經編好的成熟模塊,將大大縮短開發程序的時間,降低開發成本。採用循環結構和子程序結構可以使程序的容量大大減少,提高程序的效率,節省內存。對於多重循環,要注意各重循環的初值和循環結束的條件,避免出現程序無休止循環的「死循環」現象; 通過這次的實習我發現,只有理論水平提高了,才能夠將課本知識與實踐相結合,理論知識服務於教學實踐,以增強自己的動手能力。這次實習十分有意義,這次實習我們知道了理論和實踐的距離,也知道了理論和實踐相結合的重要性。 回顧起此次課程設計,感覺受益匪淺,從拿到題目到完成整個編程,從理論到實踐,學到很多很多的課堂理論中沒學到過的東西,不僅對鍵盤的識別技術這一章節的知識點有了深刻的認識,而且對這學期開設的單片機這門課程有了更全面的了解,尤其是在學習使用proteus軟體片編程和模擬時收獲良多。通過這次單片機課程設計,還使我懂得了實踐的重要性。同時在程序調試的過程中提高自己的發現問題、解決問題、實際動手和獨立思考的能力。 這次課程設計能順利的完成,除了我們的努力外,當然也離不開指導老師申老師的辛勤指導,致使我在設計的過程中學到了很多實用性的知識。同時,對給過我幫助的所有同學和各位指導老師表示忠心的感謝!
▼ 單片機實訓總結範文篇四:
通過為期一周的單片機實訓,是我們對這門課有了許多新的了解,彌補了在課堂上學習的不足。相信這對我們以後的學習和工作都會有很大的幫助。我們一定要在最短的時間里對這些不足加以改正!
首先,在這次試訓中我被單片機強大的功能所震撼,以前在課堂上完全沒有能理解可編程單片機的優越性。這次通過實體模擬軟體等輔助軟體的共同效果,是這次試訓有了鮮明的活力。換是我們認識到這次試訓不僅僅是一個軟體的應用,更多的是使我們認識到學習到很多在課堂上無法得到的東西。特別是protues軟體的功能是我們了解了當今開發系統的新方向,簡直太不可思議啦!
單片機作為一種最簡單的軟體,與我們的日常生活息息相關,了解一些單片機程序的簡單錄入是非常必要的。如:LED顯示器、鍵盤和顯示器的應用和原理。
在被刺實訓中我們每個人通過一個八位流水燈的製作,使我們深深地體會到了單片機在現實生活中的小小應用,既增強了我們的好奇心,又鞏固了我們的理論知識。更讓我們體會到了單片機手動的開始平台的完善與成熟。只要你有想法,單片機就有可能讓他成為現實。這里我學習完protues軟體後的第一感覺是,雖然這軟體工作不穩定,但是會有相當不錯的效果出來。這對我以後的工作一定會有幫助的。在這次試訓中不僅只對單片機編程有了新的認識,還對整個單片機的開發平台都有了一廳的了解,這是一筆不錯的收獲。
通過這幾天的試訓,使我的感觸很深,真實「條條大路通羅馬」,要達到目的,不同的人就有不同的方法。只要你的方法不錯!五花八門都可以,而且是各有特色。走出來的結果都有各自的獨到之處。在編程中「簡」字貫穿於整個程序設計中,越簡單越好,畢竟單片機留給用戶的資源是有限的,所以我們要充分利用這些資源,達到更好的效果,這些是我們在以後的學習生活中應值得注意的地方。
在試訓中有苦有甜,當我們為一個很難攻破的程序找出路時,心情煩躁,感覺自己很不可理喻,當程序一點一點編好後,自己從心底感覺到一點小小的安慰,看著自己的成果。感覺很欣慰,有一絲絲的甜意,幾天的實訓使自己的思維邏輯也有了小小的進步。
▼ 單片機實訓總結範文篇五:
這是我第一次做單片機實驗,說起來有一些緊張和新奇。在此之前我並沒有接觸過單片機,我本以為與之前的光學實驗及 其它 實驗差不多,可我進到實驗室之後,我就改變了這個看法。
單片機實驗要求的是一種思維的創新,而不是簡單的重復老師所說的實驗步驟。因此第一次實驗,實驗老師向我們講解了CVAVR編譯器的大體情況及使用方法和技巧,並簡單的向我們示例——如何在CVAVR中編寫一段程序。編完程序之後,知道我們如何使用AVRStudio達到將編好的程序輸入到單片機中來使其運行。
之後老師讓我們以組為單位合作編寫一段程序,並使其運行。我們組想要編寫一個跑馬燈的程序。在第一次運行CVAVR時,我們組就遇到了一個麻煩,我們在建立一個新project文件那裡出現了錯誤。在保存這個新project文件的時候,我們單擊了Save,而不是Generate,SaveandE_it.因此它彈不出我們我們所需要的源程序。之後我們通過詢問其他人解決了這個問題。在編程中,我們開始做的是兩盞燈的交替閃爍,間隔時間是1000ms。在運用AVRStudio的時候,我們又犯了一個錯誤。在我們打開編譯好的工程文件時,開始調試,在最後一步點擊Finish時,彈出一對話框,問我們是否更新,然後我們單擊了Yes。這導致了模擬器無法下次使用。這是由於實驗室中的模擬器是盜版的,無法進行更新。
經過我們的不斷努力,我們終於實現了簡單的跑馬燈的運行,便是兩個燈地交替閃爍。我們感到興奮極了。但是我們並沒有滿足於當前,我們又編寫了三個燈地交替閃爍,四個及多個。當我們一步步實現我們的目的時,我得到莫大成就感和自信。
在這次實驗中,我體會到了合作的重要性。一個人也可能實現這一系列的過程,但是要花費很多精力和時間。群策群力,分工明確,可以使我們更好、更快地完成我們的工作。在此期間,你可以更好知道自己的不足和缺陷,來得到改正。還可以知道自己的優勢所在,把握好自己的優勢。
單片機實訓總結相關 文章 :
★ 單片機實訓報告範文精選5篇
★ 單片機實訓總結範文3篇
★ 單片機實驗心得體會範文
★ 單片機實訓報告範文
★ 單片機實訓工作報告範文精選
★ 單片機實習報告範文
★ 單片機實驗的心得體會
★ 單片機課程設計心得體會3篇
★ 實驗總結5篇精選
★ 單片機設計的心得體會
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm..com/hm.js?"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();6. 單片機工作總結
單片機工作總結
總結是對過去一定時期的工作、學習或思想情況進行回顧、分析,並做出客觀評價的書面材料,它可以促使我們思考,因此十分有必須要寫一份總結哦。我們該怎麼去寫總結呢?下面是我幫大家整理的單片機工作總結,希望對大家有所幫助。
單片機是一門應用性和綜合性很強的學科,它綜合了電子技術中的模擬電路和數字電路方面的知識,特別是數字電路,因為數字電路在裡面的應用很多。學習單片機最好先從匯編語言入手,雖然匯編語言是低級語言 ,編程效率低,但它比C語言佔用內存小,執行速度快等優點,在剛接觸單片機時更容易學習。由於單片機涉及的知識很多,所以我們只能循序漸進的學習,逐步的積累,沒有什麼捷徑可循。
剛開始學習的時候,對單片機沒有什麼認識,不知道什麼是單片機,更不知道它有什麼作用。通過學習才大體知道了單片機的一些知識。由中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、I/O介面、定時器/計數器以及串列通信介面等集成在一塊晶元上,構成了一個單片微型計算機,簡稱為單片機。它的應用范圍很廣,在工業自動化中應用有數據採集、測控技術。在智能儀器儀表中應用有數字示波器、數字信號源、數字萬用表、感應電流表,自動取款機等。在消費類電子產品中應用有洗衣機、電冰箱、空調機、電視機、微波爐、手機、IC卡、汽車電子設備等。在通訊方面應用有數據機、程式控制交換技術、手機、小靈通等。在武器裝備方面應用有飛機、軍艦、坦克、導彈、太空梭、魚雷制導、智能武器等。剛開始學習是總覺得指令語句太過復雜,怎麼也記不住,這時只能多練、多記,剛開始連一個最簡單的控制一盞小燈的亮滅的程序都不會寫,只能抄寫別人做成功的程序,一遍一遍的寫,直到能熟練的獨自將程序寫出來,從簡單的入手,逐步的積累,對單片機就會有新的認識,能夠自己獨立的寫一些小的程序,能夠將小的程序結合到一起,拼接成較為復雜一些的程序。剛接觸KEIL時確實很讓人頭疼,使用 KEIL不會建項目、不會使用實驗板。遇到困難要一件件攻克,不會建項目,就到教學視頻里找,仔細看一下,做幾次就懂了。然後可以參考已經成功的程序,抄過來,寫一個最簡單的,讓它運行起來,先培養一下自己的感覺,知道寫程序是怎麼一回事,無論寫大程序還是小程序,要做的工序不會差多少,總得建個項目,再配置一下項目,然後建個程序,加入項目中,再寫代碼、編譯、生成HEX,刷進單片機中、運行。
我的英文得到了提高,自己也愛上了單片機,下面是我學習單片機中的一些經驗總結:
1. 萬事開頭難,要勇敢的邁出第一步。開始時候是有點難度,但不要為自己找借口,要勇敢的邁出第一步,以後的路就會慢慢地順起來了。
2. 知識點用到才學,不用的暫時放在一邊。這個世界,如果每樣東西都學,自己就會太累,但這並不是說有些東西可以不學,像在哪裡都可以用到的時序圖等就要好好的研究一下了。
3. 程序不要光看別人的而不寫,一定要自己看了別人怎麼寫後自己再寫一遍,最好這時什麼都不要參考,憑自己的印象去寫,遇到錯誤時再好好看下,可以收到事半功倍效果。
4. 必須學會掌握調試程序的方法,自己的程序遇到錯誤時一定要自己慢慢的把它調出來,有些人寫好程序後發現問題,就到q群里或論壇上發表帖子,等著別人來回答,這對自己是沒有好處的。
5. 找到解決問題的思路比找到代碼更重要,世界上的事情千變萬化,就像不可能找到兩片相同的葉子一樣,世界上也找不到使用同一個代碼的項目,所以要學會自己分析問題,找出解決問題的方案。
6. 開動腦筋,運用多種方法,不斷優化自己的程序,這是鍛煉你寫程序能力的一個很好的方法,這對於提高元器件執行的效率也是很重要的。
7. 看別人的代碼,學習別人的思路。這是一種很有用的方法,可以把別人的思路與自己的相比較,發現自己的優缺點。
8. 著重培養自己解決問題的能力,而不是看自己寫過多少代碼或者做過什麼,這個最好的方法就是做一些具體的項目,從中培養自己解決問題的能力。
9. 嘗試寫一下綜合應用的程序,這個是很重要的,因為獨立可以的綜合在一起後並不一定可以正常工作。
10. 如果有可能,多學習一下計算機專業的課程,例如數據結構,畢竟單片機與程序的設計也是不能分開的,這是一個綜合的科目。
11. 面對一個新的項目,要先自己想下怎麼做,而不是單單地找別人的代碼,這是很重要的,因為只有這樣做,自己才能獨立去思考一個新的東西,也更有可能創造出一個更好的程序。 有時候單片機的學習很單調,有些知識學起來很抽象,不容易理解,只能慢慢適應,一邊學習理論知識,一邊編寫程序,將程序刷入單片機進行調試,通過這種方式才能更快速的學習單片機。同事也會從學習中體會成功的喜悅。
好了,自己的單片機的學習心得也就這么幾句,若有不對的地方,請多包涵,也願學習單片機的人能學有所成。
作為一個剛剛從事單片機工作不久的我來說,對於單片機我了解了一段時間,但總感覺無從入手,理論性的東西看了幾遍也不會把它用到實處,通過這次彩燈控制實驗,我也對單片機有了一定的了解。單片機是一門非常重視實踐的技術,不能總是看書,但要學習它首先應看書,對單片機引腳、內部結構、寄存器和原理有一定地了解和感官認識,它的是怎樣工作的,能幹些什麼?以前看學長做的流水燈我還不知道原理,現在總算清楚了。
在短短的幾周工作時間里,真的學了很多,對我來說,編程是個問題,但我知道這是任重而道遠的。我上的第一節課是關於流水燈左右循環移動在實驗箱上的實現,這個程序老師教了但還是搞不懂,後來通過同學之間相互探討,終於理解了,最重要的還是C語言沒學好,二進制轉換為十六進制是很普通的但我還是不會,現在已經掌握了。『紙上得來終覺淺,絕知此事要躬行。』在短暫的學習過程中,我深深感覺到自己在實際應用中的專業知識的匱乏,總以為自己還可以,一旦接觸到實際,才知道自己知道的是多麼少,這時才真正領悟到「學無止境」的含義。
「千里之行,始於足下。」這是一個短暫而充實的話。每看懂一個程序自己試著學人家編,去修改,去記錄,終於能略懂,這確實讓人深有體會。興趣是最好的老師,這樣才能堅持,要在以後積累很多經驗。主要肯不恥下問,那就會學到很多東西。最後一句:基礎很重要,實踐也同樣重要。必須要有學習單片機的熱情,這樣才能學好單片機。謝謝老師幾周以來的指導。
經過一周的課程設計,我收獲頗多,有深刻的心得體會。實訓讓我們受益匪淺。首先是關於單片機方面的。我們學到了許多關於單片機系統開發的知識,從最開始選題到最後的結題,更使我們得到了充分的鍛煉。其次,它讓我體會到了什麼才是teamworkspirit。一如:團隊管理的經驗、團隊意識的提升和協調能力等等,這些都會讓我們終身受益。
通過此次課程設計,使我更加扎實的掌握了有關電子線路單片機方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查我終於找出了問題所在,也暴露出了前期我在這方面的知識欠缺和經驗不足。實踐才能出真知,實踐才是檢驗真理的唯一標准,唯有通過親自動手製作,才能令我們掌握的知識不再是一些紙上談兵的東西。
在這次的課程設計中,我們遇到了很多困難,過程很艱難,但是我們都克服了,這是對我們自己的肯定。我們不斷發現錯誤,不斷改正,不斷領悟,不斷獲取。我們也曾灰心,也曾茫然,也曾不知所措,從一開始的自信滿滿,到最後的緊張繁雜,所有的這些都令我們回味無窮,這已經成為了我們人生的一個寶藏。我想今後的學習和工作也是這樣的,汗水見證著成功,我想十年過後,但我們都已經走入了社會,在某個陽光明媚的夏日,午後醒來,突然想起大學經歷的時候,最先映入腦海里的就是這門課程吧,就是這些為了一個共同的目標,相互合作,共同奮斗的日子吧。
不可否認,單片機是一門比較難的專業學科。但是經過這一學期的學習,我們覺得單片機這門課很好,讓我們在設計中掌握課程,具有很強的實用性。在社會上,單片機也應用極其廣泛。通過這次課程設計,我掌握了常用元件的識別和測試;熟悉了常用儀器、儀表;了解了電路的連線方法;以及如何提高電路的性能等等。我相信在接下來的日子裡,我會更深刻地去研究它,發掘它。
在這次的實訓里,我覺得過得很充實。實訓,不僅培養了我們獨立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實驗課上,我們學會了很多學習的方法。而這是日後最實用的,真的是受益匪淺。要面對社會的挑戰,只有不斷的學習、實踐,再學習、再實踐。這對於我們的將來也有很大的幫助。以後,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發現其中珍貴的事情。汗水,是我們努力的過程,更是成功的使者。它是希望的凝聚。
回首此次實訓,我們真的學到了很多很多。鞏固了以前所學過的知識,將理論與實際結合起來,不斷提高自己的實際動手能力和獨立思考的能力,並學會去使用知識。當然不僅僅是這些課本上的知識,更重要的是一些課本上沒有但是也很重要的知識,像是團隊合作精神等。當我們都已經走入了社會,在某個陽光明媚的夏日,午後醒來,突然想起大學經歷的時候,回憶起這些泛著汗水的時光的時候,定然會被我們的團隊感動。
成功後會很喜悅,但過程一樣令我們回味無窮。此次設計也讓我明白了思路即出路,學問學問,有學必問。只要認真鑽研,動腦思考,動手實踐,就沒有弄不懂的知識。親歷親為,親手實踐才是硬道理。希望這樣的實訓能夠繼續下去,並不斷地前進,幫助更多的學生更好地學習單片機,並能夠在使用中發現它的無窮魅力!
從剛開始接觸單片機,到現在已經有4年的時間了,在這期間學習和使用了51單片機、飛思卡爾單片機,lpc2138,pic16f887等系列的單片機,每接觸一款單片機,都會經歷熟悉其基本開發,然後將其用於項目中的過程,對於如何學習一款單片機,自己做了如下的總結。
大家都知道,51單片機是最容易入門的,不僅因為其編程簡單,更重要的是網上的資料非常豐富。所以一般學習單片機開發的都將51單片機作為入門開發的首選。我學習51單片機的時候是採用這樣的一個步驟進行學習的:
第一步(熟悉的過程):買了一款51單片機開發板,然後就開始了我的學習之旅,剛開始的時候沒有去看視頻教程,而是對著一本實驗教材進行學習,那本實驗教材的名字記不清楚了,但是其內容就是圍繞單片機的led燈進行控制,將51單片機內部的各個功能部件全部都使用到了,這樣就能使我在很短的時間內,通過控制led燈的亮、滅熟悉了51單片機的內部的各種資源,這時對51單片機也就沒有感到陌生了。所以,個人覺得,學習單片機,要從實驗入手,先熟悉單片機再說,開發語言開始使用的是c語言。
第二步(進階的過程):有了第一步的基礎之後,接下來的便是進階的過程,當時,我看的是郭天祥十天學會單片機的視頻教程,因為這個教程從基礎到復雜的編程慢慢深入,講的比較的全面,而且也生動,所以那一階段,也是我學習單片機進步最快的階段,每次聽課的時候,按照上面的實驗,以及課堂上面調試程序時出現的一些問題,自己認真的在電腦上進行調試,並分析產生故障的原因,讓我有了一定的開發基礎。在看完了視頻教程之後,後面又對基礎的知識進行了下補習,主要是看單片機原理性的教材,因為有些細節性的東西還是要從教材上面獲得。
第三步(項目實戰的階段):學習單片機的時候,雖然也編寫了一些程序,但是那些都是一些很小的模塊程序,並沒有起到綜合應用的目的,所以在這之後,我和另外一個學習硬體的同學一起組成了一個小的團隊,進行項目實踐開發,那時候,實驗室的條件比價好,有很多的器件可以自己使用。所以,我們就設計了我們的第一個作品,基於單片機的`液體點滴監控系統。做這個系統時,就將以前單片機所學的知識,做了一個綜合的應用,包括有lcd1602控制,串口的控制等。
經過以上三個步驟的學習之後,對於51單片機的開發基本上就算入門了。而對於其他類型的單片機,如飛思卡爾單片機,lpc2148arm7單片機,pic16f887等,雖然每個系列的功能不一樣,但是最基本的編程思想還是一樣的,不同的可能就是編譯器,程序下載的軟體等差別,所以有了51單片機的開發基礎之後,學習其他單片機所採用的方法就是一個差異化的學習,學習各種單片機不同的地方,這樣,就能很快的熟悉一款新的型號的單片機。
如在學習pic16f887這個系列的單片機時,我首先做的工作不是去閱讀數據手冊,而是先拿著demo代碼,在編譯軟體中編譯、鏈接、生成hex文件,然後將其下載到開發板中跑起來,這個過程主要就是學習其軟體的基本操作,有了這個基礎之後,就能自己進行編程、測試。之後就是熟悉其編程的模式,所謂其編程模式,就是寄存器的控制,中斷程序的編寫,熟悉了這個操作,也就能控制其他的功能模塊了,如串口的控制、i2c硬體控制器的控制。這些基本的開發熟悉了之後,接下來便是學習差異的部分,例如pic單片機c語言中,其堆棧深度不能超過8級,超過了之後,將會使得程序出現跑飛的現象。而且內存的分配完全要靠自己來控制,分成了4個bank的數據,bank0,bank1,bank2,bank3等。這些就是每個系列單片機所獨有的一些東西,這些東西需要詳細的了解,因為它們可能為你的編程帶來很大的便利。
以上就是我學習單片機的總結,如果大家有更好的學習方法,希望大家能夠提出來,一起討論,共同進步。
單片機系統學習總結[篇2]
人的一生是一個不斷學習、不斷成長的過程。轉眼間,研究生的學習生涯結束了,走上新的工作崗位。回頭看看,發現自己不知不覺已經走過了五年的單片機學習之旅。
在20xx年最初接觸單片機的時候,在我心中覺得51就是單片機,單片機就是51,根本不知道還有其他單片機的存在。那時候老師只教會了我們匯編語言,根本不知道用c語言也可以進行單片機開發。幸運的是,我加入了單片機興趣小組,在老師的指導下,做了一系列實驗,有「基於ds18b20的溫度採集系統」、「有基於164的移位寄存器的燈光控制系統」、「有步進電機和直流電機的控制系統」。這時候我才發現,這是學習單片機的一個最好途徑——在實踐中領悟理論,用理論指導實踐。在上課的整整一個學期中,雖然老師講得很詳細,但是大部分概念都是到了實際動手做東西的時候才弄明白的。而且在經歷了迷惑之後再搞清楚,印象就特別深刻。直到現在我對那些概念和介面都非常清晰。其實我也很慶幸學習和使用了兩年多的匯編語言。由於有這些鍛煉,我對單片機底層結構和介面時序就弄得很清楚。在使用c語言開發的時候,優化代碼和處理中斷也就不會太費勁。我覺得,雖然現在絕大部分單片機開發都使用c語言,甚至有些公司還推出了圖形化編程的工具,這樣對於項目的開展從時間上快了很多,在管理上也規范了不少,但是從學習和想深入掌握單片機精髓的角度來說,還是需要熟練掌握匯編語言的使用。
機會總是青睞於有準備的人。也許有了前面一段時間的理論和實踐的積累,我才慢慢得到了一些參加科技競賽和參與科研項目的機會。在參加第一屆浙江省機械設計競賽的時候,我們設計的由多單片機系統協調控制的「月球車」機器人奪得了唯一的一個特等獎。這個競賽給我最大的收獲是我對單片機的認識改變了,它不再僅僅是一門學科了,它是一個可以讓你的創意得到充分發揮的平台。後來參與了「基於視頻分劃技術的鋼捲尺自動切零位機」、「電能表渦杠渦輪嚙合深度檢測系統」、「基於公共電話網的水表集抄數據路由器」、「高精度電感微位移測量系統」等一些實際的項目。在這些過程中,我發現只是精通單片機技術還不能很好的解決問題。體會最深的是,單片機只有融合到各種應用領域中,才能展現它的最大活力。然而單片機僅僅是一個工具而已,要做好單片機系統還需要各種應用領域的專業知識的支持。例如,在「基於視頻分劃技術的鋼捲尺自動切零位機」中,就需要搞清楚全電視信號的時序,弄明白鋼捲尺切零位機的工作原理,懂得怎麼利用疊加在視頻信號中的橫豎線來進行刻度的瞄準等。沒有這些專業知識,就算單片機技術再厲害也不可能做好這個項目。脫離應用背景的單片機開發,就像一個沒有靈魂的軀體一樣。
隨著arm的出現,我曾經認為,8位單片機可能在32位單片機的沖擊下就此走進歷史,可是很快就認識到我是錯誤的。隨著技術的革新和時間的推移,各大單片機公司紛紛將單片機朝著片上系統這個方向發展,集成了現在各種流行的技術和常用的模塊。我相信,在當前國內和國外的這個市場中,8位單片機應用的市場仍然是充滿生機,活力無限。在市場的不斷變化和技術的不斷更新過程中,8位單片機也會順應潮流不斷革新。
從我五年走過的路來看,單片機學習的過程應該是一個循序漸進、不斷學習、不斷積累的過程,可以分為三個階段。
第一階段:掌握開發單片機的必備基礎知識。首先是熟練掌握單片機的基本原理,其實各家各門的單片機其基本結構和原理都差不多,特別是共有的知識需要好好理解和掌握。例如,內核結構、內存分配、中斷處理、定時計數、串列通信、埠復用等一些最基本的概念和原理。除此之外,我們還需要具備模擬電子、數字電子、c語言程序開發知識以及原理圖和pcb設計等一些技能。在進行系統開發的時候,進行原理設計、pcb布板、程序編寫、系統聯調這些工作都是在所難免的。
第二階段:在掌握好一款單片機原理和應用的基礎上,開始學習其他各家單片機的獨有技術,學不了那麼多也要多了解了解。同時盡可能多地掌握單片機的一些外圍器件和常用電路,以備不時之需。有時候客戶要求低成本,那我們只好選用合鈦、義隆、華邦等這類那個島晶元;如果客戶要求工業級的性能,那麼我們就得從pic、nec、飛思卡爾、nxp等這些歐美和日式單片機中選擇;若要進行功耗的開發,選用msp430系列應該有一定優勢;在進行測量儀器設計的時候,c8051和ac842這類數模混合晶元就顯得比較方便。所以說最好每個類型的單片機都會一兩款,在實際項目選型中可以更加靈活。另外,要注意平時的技術積累。比如,在項目開發過程中將一些常用的介面程序和控制演算法整理成模塊或者函數,在其他的項目開發中,有同樣或者接近的需求時馬上就可以使用,又快又好。
第三階段:在實際的項目開發過程中,不斷深化單片機應用技術,不斷積累應用行業的專業知識。例如,我完成了「高精度電感微位移測量系統」,就會對電感感測器的測量機理和信號特性、測量電路的設計、電磁兼容處理、誤差修正和非線性處理等測控方面的專業技術有很深的認識。以後碰到類似的項目時,很多東西就可以直接利用了。有了扎實的單片機應用相關的基礎知識,並且熟悉掌握了幾款不同類型單片機的開發方法,再結合實際的應用背景,那麼就可以隨心所欲,設計出性能最優、結構最合理的單片機應用系統。這是我最大的奮斗目標,我覺得這也應該是單片機應用的最高境界吧。
在這五年的學習中,有感慨、有遺憾、有憧憬、有希望,更重要的是我對單片機應用這個領域充滿熱情。由於才疏學淺、涉世未深,希望能與行業里的各位老師多多交流,不斷學習,不斷成長。
單片機系統學習總結[篇3]
基於本人學習單片機的痛苦經歷,特編寫本教程,以此獻給廣大的單片機初學者,希望您能從中受益。
作者提示:本教程乃最通俗易懂之單片機教材也,如果您還是看不懂,請千萬不要涉足此行,以免誤入歧途,耽誤您的前程*_*
拿到這本教程您首先就會想,什麼是iap教學法?是不是一種什麼全新的教學方法?當然不是,我可沒有那麼大的本事,其實這只是我杜撰的一個新名詞,意思就是inapplicationsprogram(在應用中編程),當然這只是針對單片機教學,說法是否正確,還得您說了算。
至於為什麼要提這種說法,那我倒想說幾句。大家都知道,學習電子技術是一件非常無聊和枯燥的事情,為什麼會有這種想法,就是因為我們傳統的教學方法只重理論而忽略了實踐,要一個人記住那些空洞而有無聊的理論知識實在不是一件容易的事,好在我們總算熬過來了,不管如何,也多多少少的學習了一些電子基礎知識。
接下來我們應該進一步掌握些什麼知識呢,凡涉足此行的朋友都知道,那就是單片機。不過這可不是一件容易的事,倒不是因為單片機很難學,而實在是我們身邊很難找到一本專為單片機入門者而編寫的教材。翻一下傳統的單片機教材,都好象是為已經懂單片機的人而寫的,一般總是以單片機的結構為主線,先講硬體原理,然後是指令,接著講軟體編程,再是系統擴展和外圍器件,最後舉一些實例(隨
,很少涉及單片機的基礎知識,如果按照此種學習方法,想便說一點:很多書中的實例都是有錯誤的)
進行產品開發,就必須先把所有的知識全部掌握了才可以進行實際應用。孰不知,單片機不象模擬電路和數字電路那樣,只要搞懂了電路原理,再按照產品要求設計好相應的電路就可以了。它是一種以簡單的硬體結構,復雜而有靈活的軟體系統來完成設計的通用性產品,不同的設計者只會使用其不同的功能,幾乎沒有人會把它的全部指令都使用起來,所以學習使用單片機只能靠循序漸進的積累,而不可能先把
。它全部掌握了再去做產品開發(當然天才就例外了*_*)
基於以上原因,本人想嘗試一種全新的單片機教學方法,打破傳統的循序漸進式的教學方法,以單片機的應用為藍本,結合基本的工業控制系統和實踐工作中的具體應用,不分先後順序,將各條指令貫串於一個又一個的實驗中,通過所見即所得的實驗來講解各種指令的編程方法,順便講解相關的基本概念,使您盡快地熟悉單片機應用的基本步驟,掌握軟體編程的基本方法。
如果您學完了就能成為單片機的入門者,完全可以進行一般產品的開發;下冊部分是單片機應用的提高部分,主要學習單片機的系統擴展(比如:rom和ram存儲器的擴展,並行口的擴展,串列口的擴展,a/d和d/a與單片機的介面)以及相關開發工具和軟體的使用(包括kellc51的應用與調試技巧,硬體模擬器的使用)等等,如果您學完了下冊部分,那就得恭喜您成為了單片機開發的高手了,不過單片機的技術是在不斷的發展和提高的,您也不要太驕傲哦!
為了盡量把最新的單片機知識和應用成果收錄進我們的教程,希望您能不吝賜教,共同來努力把我們的教程不斷的改進和完善。還是那句題外話,技術是靠不斷的積累和交流才會進步的,固封自守只會更加落後。
由於時間和精力的限制,我還是希望在您學習本教程之前,自己先熟悉一點相關的電子技術知識,特別是數字電路基礎,這對您學習中碰到的相關概念會有很大的幫助。
;