欢迎您访问【千度】vh969.com-永久免费毛片在线播放,亚洲深夜在线,影音先锋最新av资源库,歪歪漫画登录官方入口页面弹窗

C語言編程學習免費軟件手機版2.2.6 安卓版 全站導航最近更新

首頁安卓軟件教育學習 → C語言編程學習免費軟件手機版 2.2.6 安卓版
C語言編程學習免費軟件手機版圖標

C語言編程學習免費軟件手機版2.2.6 安卓版

  • 大小:20.0M
  • 時間:2024-04-23 17:15
  • 星級:
  • 語言:中文
  • 環境:Android
  • 版本:2.2.6 安卓版
  • 類別:國產軟件/ 免費軟件
  • 官網:暫無
  • 廠商:深圳市小跳龍科技有限公司
  • 包名:com.xiaotiaolong.cprogramminglanguage

軟件介紹 軟件截圖 相關下載 相關文章 評論(0)

精品下載精心為您推薦:

編輯點評:手機隨時隨地學習C語言

手機上可以免費學習C語言編程內容的一個平臺,C語言編程學習app是個可以免費看c語言程序設計知識點,函數庫,源碼合集,編程實例,算法和習題練習等等,簡單好用易于操作。

C語言編程學習免費軟件手機版

功能介紹

(1)C語言:C語言程序設計的知識點,包括數據類型、文件、函數等章節;

(2)習題練習:大量的C語言習題,其中多數也是計算機二級考試題目;

(3)算法:羅列了學習和工作中常用的一些經典算法;

(4)編程實例:列舉一些常見問題,用代碼解決實際問題需求;

(5)源碼合集:包括了大量的入門C語言學習和進階學習的源代碼;

(6)函數庫:C語言編碼中使用頻率高的函數,學習其使用方法和實現原理以及源碼;

特色介紹

C語言編程學習是一款C語言學習軟件,軟件包括了豐富的內容,C語言語法、數據結構、算法等,從基礎知識到進階知識都有,還有大量的計算機二級考試題目,無論你是大學生還是在職人員,本軟件對提升您的編程能力都大有幫助。

內容預覽

在頭文件<seddef.h>中,指定了標準庫中的公共定義。其中主要包括以下內容:

1,NULL空指針類型常量。

2,offset(type,member-designator)

它是擴展iz-t類型的一個整型常數表達式。它的值為從type定義的結構類型的開頭到結構成員member-designator的偏移字節數。

3,ptrdiff t表示兩指針之差的帶符號整數類型。

4,size_t表示由sizeof運算符計算出的結果類型,它是一個無符號整數類型。

5,wchar_t它是一種整數類型,取值范圍為在被支持的地域環境中最大擴展字符集的所有字符的各種代碼,空字符代碼值為0。

說明

三色旗的問題最早由E.W.Djkstra所提出,他所使用的用語為Dutch Nation Flag(Dijkstra為荷蘭人),而多數的作者則使用Three-Color Flag來稱之。

假設有一條繩子,上面有紅、白、藍三種顏色的旗子,起初繩子上的旗子顏色并沒有順序,您希望將之分類,并排列為藍、白、紅的順序,要如何移動次數才會最少,注意您只能在繩子上進行這個動作,而且一次只能調換兩個旗子。解法

在一條繩子上移動,在程式中也就意味只能使用一個陣列,而不使用其它的陣列來作輔助,問題的解法很簡單,您可以自己想像一下在移動旗子,從繩子開頭進行,遇到藍色往前移,遇到白色留在中間,遇到紅色往后移,如下所示:只是要讓移動次數最少的話,就要有些技巧:如果圖中W所在的位置為白色,則W+1,表示未處理的部份移至至白色群組。

如果W部份為藍色,則B與W的元素對調,而B與W必須各+1,表示兩個群組都多了一個元素。

各路大神的C語言編程建議和技巧

我們鼓勵在編程時應有清晰的哲學思維,而不是給予硬性規則。我并不希望你們能認可所有的東西,因為它們只是觀點,觀點會隨著時間的變化而變化。可是,如果不是直到現在把它們寫在紙上,長久以來這些基于許多經驗的觀點一直積累在我的頭腦中。因此希望這些觀點能幫助你們,了解如何規劃一個程序的細節。(我還沒有看到過一篇講關于如何規劃整個事情的好文章,不過這部分可以是課程的一部分)要是能發現它們的特質,那很好;要是不認同的話,那也很好。但如果能啟發你們思考為什么不認同,那樣就更好了。在任何情況下,都不應該照搬我所說的方式進行編程;要用你認為最好的編程方式來嘗試完成程序。請一以貫之而且毫不留情的這么做。

01

排版問題

程序是一種出版物。意味著程序員們會先閱讀(也許是幾天、幾周或幾年后的你自己閱讀),最后才輪到機器。機器的快樂就是程序能編譯,機器才不在乎程序寫的有多么漂亮,可是人們應該保持程序的美觀。有時人們會過度關心:用漂亮的打印機呆板地打印出漂亮的輸出,而這些輸出只是將所有介詞用英文文本以粗體字體凸顯出來,都是些與程序無關的細節。雖然有很多人認為程序就應該像 Algol.68 所描述的一樣(有些系統甚至要求照搬該風格編寫程序),可清晰的程序不會因為這樣的呈現而變得更清晰,只會使糟糕的程序變得更可笑。

對于清晰的程序來說,排版規范一向都是至關重要的。當然,眾所周知最有用的是縮進,但是當墨水遮蓋了意圖時,就會控制住排版。因此即便堅持使用簡單的舊打字機輸出,也該意識到愚蠢的排版。避免過度修飾,比如保持注釋的簡潔和靈活。通過程序整齊一致地說出想表達的。接著往下看。

02

變量命名

對于變量名稱,長度并不是名稱的價值所在,清晰的表達才是。不常用的全局變量可能會有一個很長的名稱,像 maxphysaddr。在循環中每一行所使用的數組索引,并不需要取一個比 i 更詳盡的名字。取 index 或者 elementnumber 會輸入更多的字母(或調用文本編輯器),并且會遮蓋住計算的細節。當變量名稱很長時,很難明白發生了什么。在一定程度上,這是排版問題,看看下面

現實例子中的問題會變得更糟。所以僅需把索引當成符號來對待。

指針也需要合理的符號。np 僅僅只是作為指針 nodepointer 的助記符。如果一貫都遵從命名規范,那么很容易就能推斷出 np 表示“節點指針”。在下一篇文章中會提到更多。

同時在編程可讀性的其它方面,一致性也是極其重要的。假使變量名為 maxphysaddr,則不要給同級關系的變量取名 lowestaddress。

最后,我傾向于「最小長度」但「最大信息量」的命名,并讓上下文補齊其余部分。例如:全局變量在使用時很少有上下文幫助理解,那么它們的命名相對而言更需要令人易懂。因此我稱 maxphyaddr 作為一個全局變量名,對于在本地定義和使用的指針來說 np 并不一定是 NodePoint。這是品味的問題,但品味又與清晰度相關。

我避免在命名時嵌入大寫字母;它們的閱讀舒適性太別扭了,像糟糕的排版一樣令人心煩。

03

指針的使用

C語言不同尋常,因為它允許指針指向任何事物。指針是鋒利的工具,像任何這樣的工具一樣,使用得當可以產生令人愉悅的生產力,但使用不當也可以造成極大的破壞。指針在學術界的名聲不太好,因為它太危險了,莫名其妙地就變得糟糕的不行。但我認為它是強大的符號,它可以幫助我們清楚地自我表達。

思考:當有指針指向對象時,對于那個對象,確切地說它只是名稱,其它什么也不是。聽起來很瑣碎,但看看下面的兩個表達式:

第一個指向一個 node(節點),第二個計算為(可以說)同一個 node。但第二種形式是不太容易理解的表達式。這里解釋一下,因為我們必須要知道 node 是什么,i 是什么,還要知道 i 和 node 與周圍程序之間相關的規則是什么。孤立的表達式并不能說明 i 是 node 的有效索引,更不用提是我們想要元素的索引。

如果 i、j 和 k 都是 node 數組中的索引將很容易出差錯,而且連編譯器都不能幫助找出錯誤。當給子程序傳參數時,尤其容易出錯:指針只是一個單獨的參數;但在接收的子程序中必須認為數組和索引是一體的。

計算為對象表達式本身,比該對象的地址更不易察覺,而且容易出錯。正確使用指針可以簡化代碼:

vs.

如果想取下一個元素的 type 可以是

 i 前移,但其余的表達式必須保持不變;用指針的話,只需要做一件事,就是指針前移。

把排版因素也考慮進來。對于處理連續的結構體來說,使用指針比用表達式可讀性更好:只需要較少的筆墨,而且編譯器和計算機的性能消耗也很小。與此相關的問題是,指針類型會影響指針正確使用,這也就允許在編譯階段使用一些有用的錯誤檢測,來檢查數組序列不能分開。而且如果是結構體,那么它們的標簽字段就是其類型的提示。因此

是足以讓人明白的。如果是索引數組,數組將取一些精心挑選的名字,而且表達式也會變得更長:

此外,由于例子變得越來越大,額外的字符更加讓人惱火。

一般來說,如果發現代碼中包含許多相似并復雜的表達式,而且表達式計算為數據結構中的元素,那么明智地使用指針可以消除這些問題。考慮一下

看起來像利用復合表達式表示 p。有時這值得用一個臨時變量(這里的 p)或者把運算提取成一個宏。

04

過程名稱

過程名稱應該表明它們是做什么的,函數名稱應該表明它們返回什么。函數通常在像 if 這樣的表達式使用,因此可讀性要好。

是沒有太大幫助的,因為不能推斷出 checksize 錯誤時返回 true,還是非錯誤時返回。相反

使這點能清晰表達,并且在常規使用中將來也不大可能出錯。

05

注釋

這一個微妙的問題,需要自己體會和判斷。由于一些原因,我傾向于寧可清除注釋。第一,假如代碼清晰,并且使用了規范的類型名稱和變量名稱,應該從代碼本身就可以理解。第二,編譯器不能檢查注釋,因此不能保證準確,特別是代碼修改過以后。誤導性的注釋會非常令人困惑。第三,排版問題:注釋會使代碼變得雜亂。

但有時我會寫注釋,像下文一樣僅僅只是把它們用于介紹。例如:解釋全局變量的使用和類型(我總是在龐大的程序中寫注釋);作為一個不尋常或者關鍵過程的介紹;或標記出大規模計算的一節。

有一個糟糕注釋風格的例子:

圖片

還有更糟糕的做法:

圖片

先不要嘲笑,等到在現實中看到再去吧。

或許除了諸如重要數據結構的聲明(對數據的注釋通常比對算法的更有幫助),這樣至關重要部分之外,需要避免對注釋的“可愛”排版和大段的注釋;基本上最好就不要寫注釋。如果代碼需要靠注釋來說明,那最好的方法是重寫代碼,以便能更容易地理解。這就把我們帶到了復雜度。

06

復雜度

許多程序過于復雜,比需要有效解決的問題更加復雜。這是為什么呢?大部分是由于設計不好,但我會跳過這個問題,因為這個問題太大了。然而程序往往在微觀層面就很復雜,有關這些可以在這里解決。

規則 1:不要斷定程序會在什么地方耗費運行時間。瓶頸總是出現在令人意想不到的地方,直到證實瓶頸在哪,不要試圖再次猜測并加快運行速度。

規則 2:估量(measure) 在沒有對代碼做出估量之前不要優化速度,除非發現最耗時的那部分代碼,要不也不要去做。

規則 3:當 n 很小時(通常也很小),花哨的算法運行很慢。花哨算法有很大的常數級別復雜度。在你確定 n 總是很大之前, 不要使用花哨算法。(即使假如 n 變大,也優先使用規則 2).例如,對于常見問題,二叉樹總比伸展樹高效。

規則 4:花哨的算法比簡單的算法更容易有 bug,而且實現起來也更困難 盡量使用簡單的算法與簡單的數據結構。

以下幾乎是所有實際程序中用到的數據結構:

數組

鏈表

哈希表

二叉樹

當然也必須要有把這些數據結構靈活結合的準備,比如用哈希表實現的符號表,其中哈希表是由字符型數組組成的鏈表。

規則 5:以數據為核心 如果選擇了適當的數據結構并把一切都組織得很有條理性,算法總是不言而喻的。編程的核心是數據結構,而不是算法。(參考 Brooks p. 102)

規則 6:就是沒有規則 6。

07

數據編程

不像許多 if 語句,算法或算法的細節通常以緊湊、高效和明確的數據進行編碼。眼前的工作可以編碼,歸根到底是由于其復雜性都是由不相干的細節組合而成。分析表是典型例子,它通過一種解析固定、簡單代碼段的形式,對編程語言的語法進行編碼。有限狀態機特別適合這種處理形式,但是幾乎任何涉及到對構建數據驅動算法有益的程序,都是將某些抽象數據類型的輸入“解析”成序列,序列會由一些獨立“動作”構成。

也許這種設計最有趣的地方是表結構有時可以由另一個程序生成(經典案例是解析生成器)。有個更接地氣的例子,假如操作系統是由一組表驅動,這組表包含連接 I/O 請求到相應設備驅動的操作,那么可以通過程序“配置“系統,該程序可以讀取到某些特殊設備與可疑機器連接的描述,并打印相應的表。

數據驅動程序在初學者中不常見的原因之一是由于 Pascal 的專制。Pascal 像它的創始人一樣,堅信代碼要和數據分開。因而(至少在原始形式上)無法創建初始化的數據。與圖靈和馮諾依曼的理論背道而馳,這些理論可都是定義存儲計算機的基本原理。代碼和數據是一樣的,或至少可以算是。還能怎樣解釋編譯器的工作原理呢?(函數式語言對 I/O 也有類似的問題)

08

函數指針

Pascal 專制的另一個結果是初學者不使用函數指針。(在 Pascal 中沒有把函數作為變量) 用函數指針來處理編碼復雜度會有一些令人感興趣的地方。

指針指向的程序有一定的復雜度。這些程序必須遵守一些標準協議,像要求一組都是相同調用的程序就是其中之一。除此之外,所要實現的只是完成業務,復雜度是分散的。

有個協議的主張是既然所有使用的功能相似,那么它們的行為也必須相似。這對簡單的文檔、測試、程序擴展和甚至使程序通過網絡分布都有幫助——遠程過程調用可以通過該協議進行編碼。

我認為面相對象編程的核心是清晰使用函數指針。規定好要對數據執行的一系列操作,以及對這些操作響應的整套數據類型。將程序合攏到一起最簡單的方法是為每種類型使用一組函數指針。簡而言之,就是定義類和方法。當然,面向對象語言提供了更多更漂亮的語法、派生類型等等,但在概念上幾乎沒有提出額外的東西。

數據驅動程序與函數指針的結合,變成了一種表現令人驚訝的工作方法。根據我的經驗,這種方法經常會產生驚喜的結果。即使沒有面向對象語言,無需額外的工作也可以獲得 90% 的好處,并且能更好地管理結果。我無法再推薦出更高標準的實現方式。我所有的程序都是由這種方式組織管理,而且經過多次開發后都相安無事——遠遠優于缺少約束的方法。也許正如所說:從長遠來看,約束會帶來豐厚的回報。

09

包含文件

簡單規則:包含(include)文件時應該永遠不要嵌套包含。如果聲明(在注釋或隱式聲明里)需要的文件沒有優先包含進來,那么使用者(程序員)要決定包含哪些文件,但要以簡單的方式處理,并采用避免多重包含的結構。多重包含是系統編程的禍根。將文件包含五次或更多次來編譯一個單獨的 C 源文件的事情屢見不鮮。Unix 系統中 /usr/include/sys 就用了這么可怕的方式。

說到 #ifdef,有一個小插曲,雖然它能防止讀取兩次文件,但實際上經常用錯。#ifdef 是定義在文件本身中,而不是文件包含它。結果是常常導致讓成千上萬不必要的代碼通過詞匯分析器,這是(優秀編譯器中)耗費最大的階段。

只需遵從以上簡單規則,就能讓你的代碼變得優雅而美觀,至少也是賞心悅目,從技術變成藝術~~

延伸閱讀

有人認為,現在是java和.net的時代,有誰還需要C以及匯編呢?孰不知,java和.net是建立在軟件之上的,是為了壟斷市場而建立起來的體系, 猶如挖好一個金壁輝煌的坑,請你往下跳,還自以為站在巨人的肩膀上,事實上成了坑底之蛙。要成為一個真正的程序員,并期望成為一個程序員高手,必須從機器 出發,從cpu到操作系統,再到軟件體系,高手的境界就是悟道后的明鏡靈臺,軟件設計出神入化,我就是程序,程序就是我。

旁觀者李四說:此人大笨也!我用鼠標隨便拖幾個控件,就是一個xxx管理系統了,你用C語言怕是一年也寫不出來吧!好吧,我要承認,講這話的都已經是mS 的奴才了,別的我不了解,MFC本身就是一個封閉的架構,從MFC入手學習,你只會形成一種封閉的思維模式,因為MS希望很多人只學會表面的東西,不致成 為高手,所以它大力推薦所謂的可視化的程序開發工具,也真有很多人愿意上他的當,最后真正迷失方向。說他坐不了程序吧,他也可以作,但是如果程序復雜一 點,出現問題時,問題出再哪里就搞不清楚了,反正是不清楚!

梁肇新,大牛啊,他說:"我就搞不懂了,用鼠標怎么寫程序呢?在我的公司里,高手的鍵盤響個不停,鼠標偶爾響一下,新手是鼠標響個不停,鍵盤偶爾響一下,他們的薪水相差的就不是一倍那么多了!"

C語言是各大操作系統的基礎,Unix、Linux、Windows其內核都清一色是C語言開發的,(某些地方是和匯編語言混合開發的),君不見 WindowsAPI都是C語言函數的接口?Unix/Linux絕大多數應用都是C語言開發的;Windows應用程序用純API開發已然不多,大多都 是依靠某種ApplicationFramework,比如所謂的VC++,其實就是指VCIDE+C++語言+MFC(現在重點已轉向ATL、 WTL),但是Windows服務、網絡、驅動程序等底層軟件,還是C語言開發的。各種語言的編譯器,包括java虛擬機,都是用C語言開發的。各種嵌入 式設備,如手機、PDA也都是C語言開發的。

下面是一些個人建議:

多看課本、代碼

由于C語言靈活、強大,初學者要全面地掌握它非常吃力,因此在學習C語言的過程中,要多看課本、代碼,課本上沒有的可以上網搜索。首先一定要熟練掌握變量、常量、基本數據類型、庫函數及特點和運用、運算符、表達式及語句、C語言編寫的基本格式。再次要掌握C語言的流程控制語句、數組、函數、指針等基礎知識,上述知識熟練后就可以學習鏈表、隊列、樹、圖等知識。最后要熟練各個知識點的運用,可以把學習的重點放在函數的設計框架、參數設計、返回值設計等關鍵問題上。

學好數學、英語

在C語言的學習過程中,一般有大量的算法和數據結構需要去了解(大一同學在大二會接觸這些知識,如果有想提前了解的同學,可以點擊下面鏈接查看:),許多算數運算和邏輯運算、關系運算、循環結構都可以利用數學知識來完成的,同樣許多算法都是為了完成數學領域的計算。編寫程序是為了讓計算機可以代替人操作運算過程,從而減少人力。可見數學在計算機學習中的重要地位,有了數學知識,你會發現數據結構與算法原來也是很簡單的。同理,在C語言的學習過程中,我們會用到大量的英語知識。對于編程來說,英語的作用體現在閱讀英文文檔,適應國際化的編程環境,我們要記住常用的一些C語言中用到的詞匯,也就是諸多的關鍵字。

理論聯系實踐,重視上機試驗

計算機專業的大部分課程都是通過實踐來檢驗學習成果的,更重要的是要將所學的理論知識都要在實踐中更好的發揮。編程序是個實干的活,光說不練不行。剛開始學的時候可以多練習書上的習題。對于自己不明白的地方,自己編個小程序實驗一下是最好的方法,能給自己留下深刻的印象。自己動手的過程中要不斷糾正自己不好的編程習慣和認識錯誤 C語言也是一門實踐性很強的課程,既要掌握概念,又要動手編程、上機調試運行。養成上機前分析題目,并編出程序源代碼的好習慣,編程時要注意程序的格式、標點符號等,同時調試程序時要有耐心,有時一個程序可能要修改多次,甚至于費了不少勁還是沒結果。要不斷向老師或者同學請教,不斷地查閱資料,所以編程千萬不可遇難而退,這個時候是決定你水平提高的關鍵,一定要堅持到底。大家對自己要有自信,對學好C語言課程要有信心,這樣我們才會有一個好的學習狀態并改正BUG。程序調試成功后,要總結分析出自己在編寫程序時都出現了那些不足,在以后的解題過程中自己應該注意的問題。上機調式程序成功后要完成實驗報告,逐步積累調試程序的經驗。培養自己良好的編程習慣。

養成良好的編程習慣

(1)在比較復雜的代碼后面要有注釋。如果光溜溜一堆代碼,別人就不可能看懂你的代碼,而且也不利于查找錯誤。除非你一直編東西給自己看。能在代碼里說明白的就一定要在代碼里體現。比如變量名、函數名,在命名的時候盡量說明是干什么用的。

(2)注意語句的嵌套不要太長,把主函數盡量寫簡短。經常看到別人的代碼是主函數只有幾行,幾個函數調用,而定義全在主函數外部。這樣一是減少了主函數內部的嵌套,二是比較精簡,容易讀懂。

(3)注意語句的選擇。并不是分支語句就用if循環就用while、for。在適當的情況下switch和dowhile語句也是要用的。在某些時候,switch語句比if語句更加精練明了,而dowhile比while少一個循環。

那么如何學好單片機C語言?

很多想學單片機的人問我的第一句話就是怎樣才能學好單片機?對于這個問題我今天就我自己是如何開始學單片機,如何開始上手,如何開始熟練這個過程給大家講講。

先說說單片機,一般我們現在用的比較多的的MCS-51的單片機,它的資料比較多,用的人也很多,市場也很大。就我個人的體會怎么樣才能更快的學會單片機這門課。單片機這門課是一項非常重視動手實踐的科目,不能總是看書,但是學習它首先必須得看書,因為從書中你需要大概了解一下,單片機的各個功能寄存器,而說明白點,我們使用單片機就是用軟件去控制單片機的各個功能寄存器,再說明白點,就是控制單片機那些管腳的電平什么時候輸出高,什么時候輸出低。由這些高低電平的變化來控制你的系統板,實現我們需要的各個功能。至于看書,只需大概了解單片機各管腳都是干什么的?能實現什么樣的功能?第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。所以我總是說,學單片機看書看兩三天的就夠了,看小說你一天能看五六本,看單片機你兩三天看兩三遍就夠了,可以不用仔細的看。推薦一本書,就這一本就足夠,書名是《新編MCS-51單片機應用設計》,是哈爾濱工業大學出版社出的的,作者是張毅剛。大概了解一下書上的內容,然后實踐,這是非常關鍵的,如果說學單片機你不實踐那是不可能學會的,關于實踐有兩種方法你可以選擇,一種方法:你自己花錢買一塊單片機的學習板,不要求功能太全的,對于初學者來說你買功能非常多的那種板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數碼管、獨立鍵盤、矩陣鍵盤、AD或DA(原理一樣)、液晶、蜂鳴器,這就差不多了。如果上面我提到的這些,你能熟練應用,那可以說對于單片機方面的硬件你已經入門了,剩下的就是自己練習設計電路,不斷的積累經驗。只要過了第一關,后面的路就好走多了,萬事開頭難,大家可能都聽過。方法二:你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統板。對于高手來說,做個單片機的最小系統板只需要一分鐘的時間,而對于初學者可就難多了,因為只有對硬件了解了,才能熟練運用。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買上一塊,畢竟自己有一塊要方便的多,以后做單片機類的小實驗時都能用得上,還省事。

有了單片機學習板之后你就要多練習,最好是自己有臺電腦,一天少看電影,少打游戲,把學習板和電腦連好,打開調試軟件坐在電腦前,先學會怎么用調試軟件,然后從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意愿隨意流動時你已經入門了,你會發現單片機是多么迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程序按你的意愿實現時你比做什么事都開心,你會上癮的,真的。做電子類的人真的會上癮。然后讓數碼管亮起來,這兩項會了后,你已經不能自拔了,你已經開始考慮你這輩子要走哪一行了。就是要這樣練習,在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當得到解答后你會記住一輩子的,知識必須用于現實生活中,解決實際問題,這樣才能發揮它的作用,你自己好好想想,上了這么多年大學,天天上課,你在課堂上學到了什么?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈好高興啊,下學期開學回來忘的一干二凈,是不是?你學到什么了?但是我告訴你單片機一旦學會,永遠不會忘了。另外我再說說用匯編和C語言編程的問題。很多同學大一二就開設了C語言的課,我也上過,我知道那時天天就是幾乘幾,幾加幾啊,求個階乘啊。學完了有什么用?讓你用C語言編單片機的程序你是不是就傻了?書上的東西我們必須要會運用。單片機編程用C語言或匯編語言都可以,但是我建議用C語言比較好,如果原來有C語言的基礎那學起來會更好,如果沒有,也可以邊學單片機邊學C語言,C語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以后也得學,你一點匯編都不會根本無所謂,但你一點C語言都不會那你將來會吃苦頭。匯編寫程序代碼效率高,但相對難度較大,而且很羅嗦,尤其是遇到算法方面的問題時,根本是麻煩的不得了,現在單片機的主頻在不斷的提高,我們完全不需要那么高效率的代碼,因為有高頻率的時鐘,單片機的ROM也在不斷的提高,足夠裝得下你用C語言寫的任何代碼,C語言的資料又多又好找,將來可移植性非常好,只需要變一個IO口寫個溫度傳感器的程序在哪里都能用,所以我勸大家用C語言。

總結上面,只要你有信心,做事能堅持到底,有不成功不放棄的強烈意志,那學個單片機來說就是件非常容易的事。

步驟:

1.找本書大概了解一下單片機結構,大概了解就行。不用都看懂,又不讓你出書的。(三天)

2.找學習板練習編寫程序,學單片機就是練編程序,遇到不會的再問人或查書。(二十天)

3.自己網上找些小電路類的資料練習設計外圍電路。焊好后自己調試,熟悉過程。(十天)

4.自己完全設計具有個人風格的電路,產品,。。。你已經是高手了。。。。。

看到了嗎?下功夫一個多月你就能成為高手,我就講這么多了,學不學得會,下不下得了功夫就看你的了。

我的單片機學習心得

很多人說,學單片機最好先學匯編語言,以我的經驗告訴大家,絕對沒有這個必要,初學者一開始就直接用C語言為單片機編程,既省時間,學起來又容易,進步速度會很快。在剛開始學單片機的時候,千萬不要為了解單片機內部結構而浪費時間,這樣只能打擊你的信心,當你學會編程后,自然一步步就掌握其內部結構了。

單片機的學習實踐。

單片機提高重在實踐,想要學好單片機,軟件編程必不可少。但是熟悉硬件對于學好單片機的也是非常重要的。如何學習好硬件,動手實踐是必不可少的。我們可以通過自己動手做一個自己的電子制作,通過完成它,以提高我的對一些芯片的了解和熟練運用它。這樣我們就可以多一些了解芯片的結構。我相信,你完成了一個屬于自己的電子制作,你的單片機水平就會有一個質的提高。

這就是我學習單片機的心得體會,希望給單片機的愛好者學好單片機有所幫助。

使用單片機就是理解單片機硬件結構,以及內部資源的應用,在匯編或C語言中學會各種功能的初始化設置,以及實現各種功能的程序編制。

第一步:數字I/O的使用

使用按鈕輸入信號,發光二極管顯示輸出電平,就可以學習引腳的數字I/O功能,在按下某個按鈕后,某發光二極管發亮,這就是數字電路中組合邏輯的功能,雖然很簡單,但是可以學習一般的單片機編程思想,例如,必須設置很多寄存器對引腳進行初始化處理,才能使引腳具備有數字輸入和輸出輸出功能。每使用單片機的一個功能,就要對控制該功能的寄存器進行設置,這就是單片機編程的特點,千萬不要怕麻煩,所有的單片機都是這樣。

第二步:定時器的使用

學會定時器的使用,就可以用單片機實現時序電路,時序電路的功能是強大的,在工業、家用電氣設備的控制中有很多應用,例如,可以用單片機實 現一個具有一個按鈕的樓道燈開關,該開關在按鈕按下一次后,燈亮3分鐘后自動滅,當按鈕連續按下兩次后,燈常亮不滅,當按鈕按下時間超過2s,則燈滅。數 字集成電路可以實現時序電路,可編程邏輯器件(PLD)可以實現時序電路,可編程控制器(PLC)也可以實現時序電路,但是只有單片機實現起來最簡單,成本最低。定時器的使用是非常重要的,邏輯加時間控制是單片機使用的基礎。

第三步:中斷

單片機的特點是一段程序反復執行,程序中的每個指令的執行都需要一定的執行時間,如果程序沒有執行到某指令,則該指令的動作就不會發生,這樣就會耽誤很多快速發生的事情,例如,按鈕按下時的下降沿。要使單片機在程序正常運行過程中,對快速動作做出反應,就必須使用單片機的中斷功能,該功能就是在快速動作發生后,單片機中斷正常運行的程序,處理快速發生的動作,處理完成后,在返回執行正常的程序。中斷功能使用中的困難是需要精確地知道什么時候不允許中斷發生(屏蔽中斷)、什么時候允許中斷發生(開中斷),需要設置哪些寄存器才能使某種中斷起作用,中斷開始時,程序應該干什么,中斷完成后,程序應該干什么等等。中斷學會后,就可以編制更復雜結構的程序,這樣的程序可以干著一件事,監視著一件事,一旦監視的事情發生,就中斷正在干的事情,處理監視的事情,當然也可以監視多個事情,形象的比喻,中斷功能使單片機具有吃著碗里的,看著鍋里的功能。

以上三步學會,就相當于降龍十八掌武功,會了三掌了,可以勉強護身。

第四步:與PC機進行RS232通信

單片機都有USART接口,特別是MSP430系列中很多型號,都具有兩個USART接口。USART接口不能直接與PC機的RS232接口連接,它們之間的邏輯電平不同,需要使用一個MAX3232芯片進行電平轉換。

USART接口的使用是非常重要的,通過該接口,可以使單片機與PC機之間交換信息,雖然RS232通信并不先進,但是對于接口的學習是非常重要的。正確使用USART接口,需要學習通信協議,PC機的RS232接口編程等等知識。試想,單片機實驗板上的數據顯示在PC機監視器上,而PC機的鍵盤信號可以在單片機實驗板上得到顯示,將是多么有意思的事情啊!

第五步:學會A/D轉換

MAP430單片機帶有多通道12位A/D轉換器,通過這些A/D轉換器可以使單片機操作模擬量,顯示和檢測電壓、電流等信號。學習時注意模擬地與數字地、參考電壓、采樣時間,轉換速率,轉換誤差等概念。使用A/D轉換功能的簡單的例子是設計一個電壓表。

第六步:學會PCI、I2C接口和液晶顯示器接口

這些接口的使用可以使單片機更容易連接外部設備,在擴展單片機功能方面非常重要。

第七步:學會比較、捕捉、PWM功能

這些功能可以使單片機能夠控制電機,檢測轉速信號,實現電機調速器等控制起功能。如果以上七步都學會,就可以設計一般的應用系統,相當于學會十招降龍十八掌,可以出手攻擊了。

第八步:學習USB接口、TCP/IP接口、各種工業總線的硬件與軟件設計

學習USB接口、TCP/IP接口、各種工業總線的硬件與軟件設計是非常重要的,因為這是當前產品開發的發展方向。

到此為止,相當于學會15招降龍十八掌,但還不到打遍天下無敵手的境界。即使如此,也算是單片機大蝦了!

C語言編程學習免費軟件手機版截圖

下載地址

網友評論

熱門評論

最新評論

發表評論查看所有評論(0)

昵稱:
表情: 高興 可 汗 我不要 害羞 好 送花 親親
字數: 0/500 (您的評論需要經過審核才能顯示)

TOP榜

秋霞国产精品视频| 亚洲无AV在线中文字幕| 亚洲综合丁香婷婷六月香|