『壹』 單片機晶元時序圖究竟怎麼看
操作時序:
1、注意時間軸,如果沒有標明(其實大部分也都是不標明的),那麼從左往右的方向為時間正向軸,即時間在增長。
2、上圖框出並註明了看懂此圖的一些常識:
(1).時序圖最左邊一般是某一根引腳的標識,表示此行圖線體現該引腳的變化,上圖分別標明了RS、R/W、E、DB0~DB7四類引腳的時序變化。
(2).有線交叉狀的部分,表示電平在變化,如上所標注。
(3).應該比較容易理解,如上圖右上角所示,兩條平行線分別對應高低電平,也正好吻合(2)中電平變化的說法。
(4).上圖下,密封的菱形部分,注意要密封,表示數據有效,Valid Data這個詞也顯示了這點。
3、需要十分嚴重注意的是,時序圖里各個引腳的電平變化,基於的時間軸是一致的。一定要嚴格按照時間軸的增長方向來精確地觀察時序圖。要讓器件嚴格的遵守時序圖的變化。在類似於18B20這樣的單匯流排器件對此要求尤為嚴格。
4、以上幾點,並不是LCD1602的時序圖所特有的,絕大部分的時序圖都遵循著這樣的一般規則,所以大家要慢慢的習慣於這樣的規則。
也許你還注意到了上面有許多關於時間的標注,這也是個十分重要的信息,這些時間的標注表明了某些狀態所要維持的最短或最長時間。因為器件的工作速度也是有限的,一般都跟不上主控晶元的速度,所以它們直接之間要有時序配合。
『貳』 我是一個單片機初學者,我想問一下我需要學哪些知識
我覺得首先要看懂111條指令,懂意思就行,根本就不需要每一條都記住,因為常用的都只有四五十條罷了。那麼多的指令意在可以用多種語句實現同一種功能。
還有就是一定要實際的編程,這一點是非常重要的,只有在實際編程中才能熟悉指令的應用,當然你或許會問自己什麼都不懂怎麼編程啊,這時候你不要著急,你可以你買一本書,有實際的例子的書,我也見過有這種書但是名字我忘記了,它每個例子是講得十分詳細,有匯編的代碼,也有C語言的代碼,而且每一行都有注釋(名字我忘記了只記得那封皮是黑色的)你可以仿照它的代碼寫寫看,再模擬一下,或者在實際的板子上試試看能不能實現功能,別人的程序修改了能用在自己的板子上那麼就是自己的程序了。
至於模擬軟體我建議用protues,專用的單片機模擬軟體。
如果是自學,那麼不懂的地方可以上網收索或者上論壇詢問,這里有個單片機的QQ群,是官方建的你可以加上一起學習討論群號是:7344883
還有在了解指令的同時你要了解你的板子的結構亦即電路連接才能寫好你的程序。
當你學到一定程度的時候你可以學習一下單片機的外圍電路設計比如液晶顯示啊,A/D轉換啊什麼的....
總之,實際編程練習是學好單片機的唯一途徑,至於它和匯編的關系,樓上的哥們兒已解釋得十分清楚了的,就不多說了,免得啰嗦。
最後,祝你成功!!!
『叄』 單片機怎樣快速入門怎樣看懂晶元手冊
晶元手冊的話
一方面你的專業英語和專業知識要有一定的積累
還有就是對一些基本概念的了解
要能夠明白晶元手冊說的是什麼
最後就是多看多比較了
看多了
你就知道晶元手冊的套路
你會知道挑著看
看重點的
到時候你會發現看晶元手冊是一種享受
單片機的快速學習的步驟
當前的單片機種類很多,但是 51 是最基礎的,因此單片機的學習最好也是從 51 開始,不僅容易上手,而且相當實用。然而 51 單片機畢竟過於基礎,後來的很多單片機在功能上都有很大的擴展,因此按照我們實驗室多數人的路線接下來大多數人會學習 AVR 單片機, AVR 單片機在功能上較 51 有很大提升,集成了 A/D 、快速 PWM 等很多實用的功能,而且和很多大型的單片機在功能上有很多類似之處,因此如果以後還想掌握其他單片機 AVR 無疑是一個很好的跳板。
學習的過程
學習單片機最終要的是當然是練,我所說的學習跟課堂上的單片機學習不同,我以前也看過一些單片機教材,有些教材講的是單片機的工作原理和內部結構,這些東西對於我們暫時並不需要,等以後開課的時候在學習好了。現在要學習的是暫時拋開內部結構原理不談,如何能用單片機寫一些簡單的小程序,是從實用性的角度出發,網上有一種說法稱之為先實踐後理論的學習方法。
因此我的觀點如下,單片機的硬體結構首先要有一個基本的了解,最起碼要知道各引腳的功能、區別,能自己動手搭一個單片機的最小系統,然後就可以直接從程序入手,程序最好還是用 C 語言編程,從簡單的跑馬燈做起,逐漸深入,陸續可以做一些數碼管、液晶、 DS1302 、 DS18B20 等電子元器件的應用,在深入就可以結合一些具體實例擴展一些中斷、串口通訊等功能。還有一點要聲明的是單片機里用到的 C 語言其實很有限,課堂上學習 C++ 的很大一部分內容在初期單片機編程中都用不到,因此沒必要因為覺的自己的 C 語言基礎不是很好而對單片機望而止步!
學習的工具
軟體方面方面, 51 單片機用的是 KEIL 軟體,這個軟體在學校圖書館軟體下載和其他網站上都有,具體用法自己查找相關資料, AVR 的軟體就比較多了,我用的是 CVAVR ,另外還有 ICCAVR 等多款編譯軟體,這要看個人喜好了,建議有了一定的 51 基礎再學。另外就是燒寫軟體,燒寫軟體的作用就是將編譯器生成的 HEX 文件燒寫至單片機里,這要配合下載線實用,如果有並口的話最好用並口下載線,軟體最好用廣州雙龍的 SLISP 軟體,如果是筆記本沒有並口的話則要自己買一個下載器了,名稱為 USBASP ,網上電子市場有賣 20 塊錢左右,軟體會隨光碟自帶。
硬體方面,首先是要有單片機,對於單片機有一點要注意, 51 單片機最好買 89S51 、 89S52 這兩種型號,上面我所說的燒寫程序是 ISP 方式,這兩種單片機支持 ISP 下載,所以如果買其他型號的燒寫程序可能會不太方便, AVR 單片機常用的就是 ATmega16L 其它型號的區別也不是很大,甚至有些兼容。至於單片機開發板,目前的價格都很貴,從一百到幾百不等,不過像上次學校里廣告的那個六十多塊錢的最好還是免了,沒什麼作用。能買一塊當然好,沒有的話也不要緊,自己動手買個電路板搭一下也很方便,引出 ISP 介面,燒寫程序十分容易,然後將 I/O 口引出擴展也很方便。
學習單片機的其它幾個注意點:
1 .理論與實踐並重
對一個初學單片機的人來說,如果按教科書式的學法,上來就是一大堆指令、名詞,學了半天還搞不清這些指令起什麼作用,也許用不了幾天就會覺得枯燥乏味以致半途而廢。所以學習與實踐結合是一個好方法,邊學習、邊演練,循序漸進,這樣用不了幾次就能將所用到的指令理解、吃透、紮根於腦海,甚至 「 根深蒂固 」 。也就是說,當你學習完幾條指令後 ( 一次數量不求多,只求懂 ) ,接下去就該做實驗了,通過實驗,使你感受到剛才的指令產生的控制效果,眼睛看得見 ( 燈光 ) 、耳朵聽得到 ( 聲音 ) ,更能深刻理解指令是怎樣轉化成信號去實現控制的,通過實驗看到自己所學的成果不僅有一種成就感也能提升你對單片機的興趣。說句實在話,單片機與其說是學出來的,還不如說是做實驗練出來的,何況做實驗本身也是一種學習過程。因此邊學邊練的學習方法,效果特別好。
2 .合理安排時間持之以恆
學習單片機不能 「 三天打魚、兩天曬網 」 ,要有持之以恆的毅力與決 4 心。學習完幾條指令後,就應及時做實驗,融匯貫通,而不要等幾天或幾個星期之後再做實驗,這樣效果不好甚至前學後忘。另外要有打 「 持久戰 」 的心理准備,不要興趣來時學上幾天,無興趣時涼上幾星期。學習單片機很重要的一點就是持之以恆。
3 .遇到問題耐心檢查
單片機有軟硬體兩方面的內容,有時一個程序怎麼調都不出效果,然而從理論分析卻又是對的,這是就要仔細找原因了,學習單片機經常碰到很多問題,有時一兩天都不能解決,這是就要有耐心,從底層找起,相信每找出一個錯誤都會有一個新的收獲。切不可輕言放棄!!!
4 .對只短暫學過一遍的知識,充其量只比浮光掠影稍好。因此,較好的方法是過一段時間後 (1-2 個月 ) 再重新學一遍,學過的知識要經常運用,這樣反復循環幾次就能徹底弄懂消化,永不忘卻。
5 .要進行適當投資購買實驗器材及書籍資料
單片機技術含金量高,一旦學會後,給你帶來的效益當然也高,無論是應聘求職還是自起爐灶開廠辦公司,其前景都光明無限。因此在學習時要捨得適當投資購買必要的學習、實驗器材。另外還要經常去科技圖書店看看,購買一些適合自己學習、提高的書籍。一本好的書籍真的很重要,可以隨時翻閱,隨時補充不懂或遺忘的知識。
『肆』 我在學習單片機,但遇到很多晶元資料看不懂,有哪位高手可以教教我如何快速看懂晶元資料謝謝了!
嵌入式開發需要的入門知識,主要是這些:
一是程序設計的基礎,例如:基本的編程語言基礎,至少對數據類型、程序的結構及流程式控制制等最基本的內容要相當清楚,所以建議惡補一下C語言,推薦譚浩強的C語言程序設計,好好看一下,呵呵!另外有不少同學都問到數據結構的基礎,我一直認為數據結構和演算法的學習是幫助形成程序設計邏輯思維的很好訓練方式,對於程序員的長期專業素養的提高一定有好處,所以建議即使已經在嵌入式行業中工作之後也應該多補充一些相關的知識。許多在學校沒有學過數據結構的同學往往認為這部分非常枯燥、難學。而實際上如果你能明白研究計算機存儲和數據組織方式的意義,就一定能夠充分體會到數據結構的價值和魅力。一旦興趣有了,一切就會迎刃而解,呵呵!
二是操作系統工作原理,這部分往往是非計算機專業的同學在學校時沒有接觸過的。而由於嵌入式軟體設計相關的多任務環境、模塊間的同步與通信協同、驅動設計等往往都需要有對操作系統工作機制的了解和掌握作為基礎,因此建議沒有系統學習過的同學,找一本相關的操作系統工作原理書籍認真看一下(不用特厚、特專業、特內核的,先以普及知識為主,呵呵!)。
三是基本的硬體基礎,由於嵌入式linux開發往往是ARM+Linux路線,所以為了能夠在後續學習過程中很好地掌握主流嵌入式微處理器的結構與原理(例如:ARM9),就需要對硬體工作原理有初步的了解和掌握,建議看一下諸如計算機組成原理、體系結構等相關的專業書籍。
要深入學習你可以嘗試以下路線:
(1) C語言是所有編程語言中的強者,單片機、DSP、類似ARM的種種晶元的編程都可以用C語言搞定),因此必須非常熟練的掌握。
推薦書籍:《The C Programming Language》 這本經典的教材是老外寫的,也有中譯版本。
(2) 操作系統原理,是必需的,如果你是計算機專業畢業那也就無所謂了,如果是非計算機專業的就必須找一本比較淺顯的計算機原理書籍看一看,把啥叫「進程」「線程」「系統調度」等等基本問題搞清楚。
(3)Linux操作系統就是用C語言編寫的,所以你也應該先學習下Linux方面的編程,只有你會應用了,才能近一步去了解其內核的精髓。
推薦書籍:《UNIX環境高級編程》(第2版)
(4) 了解ARM的架構,原理,以及其匯編指令,我們在嵌入式開發中,一般很少去寫匯編,但是最起碼的要求是能夠看懂arm匯編。
(5) 系統移植的時候,就需要你從最下層的bootloader開始,然後內核移植,文件系統移植等。而移植這部分對硬體的依賴是非常大的,其配置步驟也相對復雜,也沒有太多詳細資料。
(6) 驅動開發
linux驅動程序設計既是個極富有挑戰性的領域,又是一個博大精深的內容。
linux驅動程序設計本質是屬於linux內核編程范疇的,因而是對linux內核和內核編程是有要求的。在學習前你要想了解linux內核的組成,因為每一部分要詳細研究的話足夠可以擴展成一本厚書。
以上只不過是大概的框架,在實際的開發中還會涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,所以說學習嵌入式的周期較長,門檻較高,自學的話更是需要較強的學習能力和專業功底。只要能堅持下來一定會取得成功!
華清遠見的嵌入式專業教材比較專業,也很出名,高校圖書館以及外面書店都有賣,你可以去網上搜一下,買本看看,華清遠見的網站和技術論壇上面也有很多嵌入式學習資料和視頻可以下載,而且更新的速度也很快,LZ沒事可以去轉轉,相信對你會有幫助!
『伍』 跪求高手指點如何看懂單片機C語言程序,我是初學者,C語言是沒問題,對單片機知之甚少。
硬體知識要補上,否則會很吃力。首先從你的程序用到的單片機開始,下載該單片機的datasheet,可以從alldatasheet網站或該單片機官網,單片機的各個功能都在裡面介紹了,並且有示例代碼。你對照著程序看,單片機程序和應用層程序的區別是它和硬體是息息相關的,你光看代碼簡直是看天書,並且可能由你的臆斷而產生錯誤的結論。單片機程序也從來不是只是單片機,和外設也是息息相關的,同樣,找到外設的型號,下載datasheet一句句對照著看,沒有硬體知識可能不了解程序的原理,但是搞懂程序在幹嘛應該不難。
『陸』 如何看懂單片機C語言參數傳遞機制
因為str的定義為unsigned
char型數組,作為變數的str是指向這個數組首地址的指針,所以主程序引用str時是告訴子程序傳入數組首地址;對於子程序必須知道這是一個數組首指針,用
unsigned
char
*修飾傳入的參數或寫成unsigned
char
str[]均是可以的。
『柒』 怎樣讀好單片機程序
過了C語言二級!
我給你的建議————C語言是簡單
單片機編程也用不到多深度的編程,問題是你的C語言弄明白了嗎,就是一些簡單的程序。我說得明白是:知道程序的編寫思路,並不是你能否看懂這個程序,否則C語言算是什麼也不是
就是算是知道有英語一樣。
對單片機的內部結構比較了解!
…………告訴你,其實內核才是最要的,應為他才是基礎。至於一個內核,你首先要知道他都有些什麼,這些資源你能明白多少。初次看,肯定是一知半解,對於這些資源你首先能想到你能做些什麼。你也許寫不出來程序,但是你能想到用這些資源做什麼。例子我不說了。當你把內核都了解了(建議了解三四遍——也許還要多),你才算是做到了第一步,這個時候你就可以鍛煉你的思路。這個是最最重要的。思路的好壞決定了你以後在這方面的發展
,不要拘泥於課本。
也許初學時你並看不懂一些C語言程序。那是應為你所看的是你沒有見過的,並且你現在看到的程序並不是一個難度循序漸漸的。看不懂不要緊,先看內核,知識學習程序中的方法,自己考錄其中的思路。
要想學好單片機……一定要動手,光考慮沒有用。別拍花錢,再說了也花不多少~··~
『捌』 怎樣能夠快速看懂單片機的晶元手冊
晶元手冊往往寫的十分啰嗦,確實看起來令人頭疼,不過可以按需去看,先確定功能,知道你需要什麼,這是第一步:選型;第二步就是看典型應用電路,引腳怎麼連接;第三步看時序關系,編程會用到;第四步就是細節了,關注其參數
『玖』 什麼是單片機,如何正確全面理解他的含義
其實吧,這個還真不是一兩句就能說明白的,簡單點,你就把單片機理解成是一個小電腦,你寫好程序,燒進去,這樣通過編程,你可以控制他,想做什麼就做什麼,比如你身邊的手機,電子表等等,現在好多的電子產品上都有單片機的身影。
『拾』 怎麼能看懂單片機程序
學習C語言.通常單片機的編程語言是C
學會看懂單片機的數據手冊,通常單片機的編程需要頻繁操作其IO埠, 定時器這些資源,這就需要仔細閱讀其數據手冊,了解這些硬體的操作方法.