㈠ 求《單片機原理及應用(第二版)》 張毅剛 pdf教材 ,謝謝
你好!
很高興為你解答,這本單片機的應用是張毅剛的PDF教材不知道是不是你想要得,這個教材多的是我給你推薦8051系列單片機C程序設計完全手冊.pdf,和
《51單片機C語言創新教程》免費版.pdf
這個兩本教材都不錯,希望我的回答對你有幫助教材下載地址附件裡面有!
㈡ 單片機原理及應用張毅剛第三版
㈢ 單片機原理與應用
《單片機原理和應用》是2010年9月由電子工業出版社出版的圖書,本書系統全面地介紹了80C51單片機的基本原理、硬體結構、指令系統,並從應用的角度介紹了匯編語言程序設計、單片機外部電路的擴展,以及與鍵盤、LED顯示、LCD顯示、列印機等多種硬體介面的設計方法,詳細介紹了串列、並行介面的A/D、D/A轉換器功能特點和典型應用,增加了單片機應用系統設計、Proteus模擬、實驗和課程設計等內容。
二,本書特色
本書為江西省省級精品課程建設成果。
本書從現實教學和工程實際應用出發,對傳統單片機教材內容進行了改良,力求做到與市場接軌,與現實同步。在並行匯流排擴展問題上,著重介紹了擴展方法和典型應用,對並行器件、並行匯流排擴展及8255、8155、8279等已基本淘汰的器件進行了精簡或摒棄,補充了串列匯流排技術、串列匯流排器件介面應用和STC系列單片機內部新增功能部件的使用,以及C51編程規范等內容。
書中有單片機應用系統設計、Proteus模擬、實驗和課程設計等章節,主教材與實驗教材整合為一本書,知識量大。
㈣ 已知8051單片機的fosc=12MHz,用T1 定時,試編程由P1.2 和P1.3 引腳分別輸出周期為2ms 和500μs 的方波
定時器T1定時250μs,工作方式設置為方式2,用TL1作為8位定時器,產生250μs的定時,定時初值X為:X=2^8-(12* 10^6* 250 * 10^(-6))/12=6
TH1=TL1=6H,TMOD=20H
源代碼如下:
MOV TMOD,#20H
MOVTH1,#06H
MOVTL1,#06H
SETB TR1
DS1_RPTA:
MOVR2,#04H
DS1_RPTB:
JNB TF1,$
CLR TF1
CPL P1.3
DJNZ R2,DS1_RPTB
CPL P1.2
LJMP DS1_RPTA
51單片機中有兩個定時器T0和T1,分別是由兩個8位的專用寄存器組成,即定時/計數器T0由TH0和TL0組成,T1由TH1和TL1組成。單片機中的定時器溢出時申請的中斷,達到計時或計數的目的。並使用定時控制寄存器控制它。其中的:
TF1:定時器1溢出標志。定時/計數器溢出時由硬體置位。中斷處理時由硬體清除。或用軟體清除。
TF0:定時器0溢出標志。定時/計數器溢出時由硬體置位。中斷處理時由硬體清除,或用軟體清除。
(4)單片機原理及應用作業張剛毅擴展閱讀
定時器工作的流程:
以51為例用定時器0方式一產生50毫秒的定時:
1、確定使用哪個定時器,使用哪種方式,通過TMOD設置,TMOD的低四位是設置定時器0的,高四位是用來設置定時器1的,其中的M0,M1是用來設置定時器工作在哪種方式,GATE一般用不要設置,C/T是選擇計數模式還是定時模式的,如:TMOD = 0X01,就說明定時器0工作在方式1。
2、設置定時的時間,用定時器定時,如:50毫秒,可以用這種方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以這樣理解:因為這是定時器的初值,也就是說計數脈沖就是在這個數的基礎上向上遞增,到達65535後就溢出產生中斷。
3、打開中斷,使用IE寄存器,首先打開總中斷EA = 1,這一步是所有中斷所必須的,然後打開定時器0中斷,ET0 =1。
4、這時准備工作結束,啟動定時器,使用TCON寄存器,TR0 = 1,實現了一個50毫秒的定時。
㈤ 新編mcs-51單片機應用設計第3版 張毅剛怎樣
張老師的書都不錯,最經典的是《單片機原理與應用》這本書,對於初學者來說非常適合。國內的書都差不多, 隨便找一本看就行, 重要的是多動手。
㈥ 求單片機原理及介面技術 試題及答案
單片機模擬試卷001
一、選擇題(每題1分,共10分)
1.8031單片機的( )口的引腳,還具有外中斷、串列通信等第二功能。
a)P0 b)P1 c)P2 d)P3
2.單片機應用程序一般存放在( )
a) RAM b)ROM c)寄存器 d)CPU
3.已知某數的BCD碼為0111 0101 0100 0010 則其表示的十進制數值為( )
a) 7542H b) 7542 c) 75.42H d) 75.42
4.下列指令中不影響標志位CY的指令有( )。
a)ADD A,20H b)CLR c)RRC A d)INC A
5.CPU主要的組成部部分為( )
a)運算器、控制器 b)加法器、寄存器
c)運算器、寄存器 d)運算器、指令解碼器
6.INTEL 8051 CPU是( )位的單片機
a) 16 b)4 c)8 d)准16
7.8031復位後,PC與SP的值為( )
a )0000H,00H b) 0000H,07H c) 0003H,07H d)0800H,00H
8.當需要從MCS-51單片機程序存儲器取數據時,採用的指令為( )。
a)MOV A, @R1 b)MOVC A, @A + DPTR
c)MOVX A, @ R0 d)MOVX A, @ DPTR
9.8031單片機中既可位定址又可位元組定址的單元是( )
a)20H b)30H c)00H d)70H
10.下列哪條指令是正確的( )
a) PUSH R2 b) ADD R0,A
c) MOVX A @DPTR d) MOV @R0,A
二、填空題(每空1分,共30分)
1.一個完整的微機系統由 和 兩大部分組成。
2.8051 的引腳RST是____(IN腳還是OUT腳),當其端出現____電平時,8051進入復位狀態。8051一直維持這個值,直到RST腳收到____電平,8051才脫離復位狀態,進入程序運行狀態,從ROM H單元開始取指令並翻譯和執行。
3.半導體存儲器分成兩大類 和 ,其中 具有易失性,常用於存儲 。
4.求十進制數-102的補碼(以2位16進制數表示),該補碼為 。
5.PC存放_______________,具有___________特性。在8051中決定程序執行順序的是PC還是DPTR? 它是______位? (是,不是)SFG?
6.123= B= H。
7.8051內部有 並行口,P0口直接作輸出口時,必須外接 ;並行口作輸入口時,必須先 ,才能讀入外設的狀態。
8.MCS-51的堆棧只可設置在 ,其最大容量為 ,存取數據的原則是 。堆棧寄存器SP是 位寄存器,存放 。
9.中斷處理的全過程分為以下3個段: 、 、 。
10.定時和計數都是對 進行計數,定時與計數的區別是
。
三、判斷題(對者打√,錯者打×,並改正,每題1分,共10分)
1 中斷服務程序的最後一條指令是RET。
2 存儲器分成內存和外存兩大部分,其中外存可以直接與CPU交換信息。
3 P2口既可以作為I/O使用,又可以作地址/數據復用口使用。
4 在中斷響應階段CPU一定要做如下2件工作:保護斷點和給出中斷服務程序入口地址。
5 RC A為循環左移指令。
6 MOV A,30H的源操作數為立即定址方式。
7 MOV A,@A+DPTR是一條查表指令。
8 MUL AB的執行結果是高8位在A中,低8 位在B中。
9 AJMP跳轉空間最大可達到64KB 。
10 DPTR是由DPH和DPL兩個8位特殊寄存器組成的。
四、簡答題(每題5分,共15分)
1.MCS51的中斷系統有幾個中斷源?幾個中斷優先順序?中斷優先順序是如何控制的?在出現同級中斷申請時,CPU按什麼順序響應(按由高級到低級的順序寫出各個中斷源)?各個中斷源的入口地址是多少?
2.已知單片機系統晶振頻率為6MHz,若要求定時值為10ms時,定時器T0工作在方式1時,定時器T0對應的初值是多少?TMOD的值是多少?TH0=?TL0=?(寫出步驟)
3.MCS51系列單片機的內部資源有哪些?說出8031、8051和8751的區別。
五、作圖題(10分)
用6264(8K*8)構成16K的數據存儲系統。要求採用線選法產生片選信號,並計算6264的地址范圍。
六、設計題(1題13分;2題12分,共25分)
1.某單片機控制系統有8個發光二極體。試畫出89C51與外設的連接圖並編程使它們由左向右輪流點亮。
2.某控制系統有2個開關K1和K2,1個數碼管,當K1按下時數碼管加1,K2按下時數碼管減1。試畫出8051與外設的連接圖並編程實現上述要求。
單片機模擬試卷001答案
一、選擇題(每題1分,共10分)
1. D 2. B 3. B 4. D 5. A 6. C 7. B 8. B 9. A 10. D
二、填空題(每空1分,共30分)
1.一個完整的微機系統由硬體和軟體兩大部分組成。
2.8051 的引腳RST是IN腳(IN腳還是OUT腳),當其端出現高電平時,8051進入復位狀態。8051一直維持這個值,直到RST腳收到低電平,8051才脫離復位狀態,進入程序運行狀態,從ROM 0000 H單元開始取指令並翻譯和執行。
3.半導體存儲器分成兩大類:RAM ROM,其中 RAM 具有易失性,常用於存儲 臨時性數據 。
4.求十進制數-102的補碼(以2位16進制數表示),該補碼為¬¬¬¬ 9AH 。
5.PC存放_CPU將要執行的指令所在的ROM單元的地址,具有自動加1特性。在8051中決定程序執行順序的是PC還是DPTR PC ?它是16位?不是(是,不是)SFG?
6.123= 01010010 B= 52 H。
7.8051內部有 4 個並行口,P0口直接作輸出口時,必須外接 上拉電阻 ;並行口作輸入口時,必須先 將口鎖存器置1 ,才能讀入外設的狀態。
8.MCS-51的堆棧只可設置在 內RAM低128B區 ,其最大容量為 128B ,存取數據的原則是 先進後出 。堆棧寄存器SP是 8 位寄存器,存放 堆棧棧頂的地址 。9.中斷處理的全過程分為以下3個段: 中斷請求 、 中斷響應 、 中斷服務 。
10.定時和計數都是對 脈沖 進行計數,定時與計數的區別是 定時是對周期已知的脈沖計數;計數是對周期未知的脈沖計數 。
三、判斷題(對者打√,錯者打×,並改正,每題1分,共10分)
1 中斷服務程序的最後一條指令是RETRETI。×
2 存儲器分成內存和外存兩大部分,其中外內存可以直接與CPU交換信息。×
3 P2口既可以作為I/O使用,又可以作地址/數據復用口使用。√
4 在中斷響應階段CPU一定要做如下2件工作:保護斷點和給出中斷服務程序入口地址。√
5 LCRL A為循環左移指令。×
6 MOV A,30H的源操作數為立即直接定址方式。
7 MOVMOVC A,@A+DPTR是一條查表指令。×
8 MUL AB的執行結果是高低8位在A中,低高8 位在B中。×
9 AJMP跳轉空間最大可達到642KB 。
10 DPTR是由DPH和DPL兩個8位特殊寄存器組成的。 √
四、簡答題(每題5分,共15分)
1.MCS51的中斷系統有幾個中斷源?幾個中斷優先順序?中斷優先順序是如何控制的?在出現同級中斷申請時,CPU按什麼順序響應(按由高級到低級的順序寫出各個中斷源)?各個中斷源的入口地址是多少?
答:MCS51單片機有5個中斷源,2個中斷優先順序,中斷優先順序由特殊功能寄存器IP控制,在出現同級中斷申請時,CPU按如下順序響應各個中斷源的請求:INT0、T0、INT1、T1、串口,各個中斷源的入口地址分別是0003H、000BH、0013H、001BH、0023H。
2.已知單片機系統晶振頻率為6MHz,若要求定時值為10ms時,定時器T0工作在方式1時,定時器T0對應的初值是多少?TMOD的值是多少?TH0=?TL0=?(寫出步驟)
答:定時值為10ms時,定時器T0工作在方式1時,定時器T0對應的初值是1388H
TMOD的值是00000001B,TH0=13H;TL0=88H。
3.MCS51系列單片機的內部資源有哪些?說出8031、8051和8751的區別。
答:MCS51系列單片機上有1個8位CPU、128B的RAM、21個SFR、4個並行口、1個串列口、2個定時計數器和中斷系統等資源。8031、8051和8751的區別是8031內無ROM;8051內有4KB的掩膜ROM;8751內有4KB的EPROM。
五、作圖題(10分)
答:WR接6264的WE
RD接6264的OE
AB0---AB12接6264的A0---A12
DB0—DB7接6264的D0—D7
AB15、AB14分別接Y0和Y1
地址:0000H---1FFFH;2000H---3FFFH
六、設計題
1.某單片機控制系統有8個發光二極體。試畫出89C51與外設的連接圖並編程使它們由右向左輪流點亮。
答: 圖 (5分) 構思 (3分)
MOV A,#80H (1分)
UP:MOV P1,A (1分)
RR A (2分)
SJMP UP (1分)
2.某控制系統有2個開關K1和K2,1個數碼管,當K1按下時數碼管加1,K2按下時數碼管減1。試畫出8051與外設的連接圖並編程實現上述要求。
答:圖 (5分) 構思 (3分)
程序(4分)
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP AINT0
ORG 0013H
LJMP BINT1
MAIN: MOV IE,#83H
SETB IT0
SETB IT1
MOV R0,#00H
MOV DPTR,#TAB
UP: MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
SJMP UP
AINT0: INC R0
CJNE R0,#10,AINT01
MOV R0,#0
AINT01: RETI
BINT1: DEC R0
CJNE R0,#0FFH,BINT11
MOV R0,#9
BINT11: RETI
㈦ 《單片機》課程學習總結
《單片機》課程學習總結
篇一:《單片機》課程學習總結
《單片機》這門課程我已經學了一個學期了,在這一個學期的學習過程中,我一開始不怎麼懂得編程,但慢慢的我現在已經不僅會讀程序還會寫程序了。真為自己一個學期來努力學到的單片機知識只是而感到高興。
怎麼學單片機?也常看到有人說學了好幾個月可就是沒有什麼進展。當然,受限於每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。
我覺得學習單片機首先要懂得C語言,因為單片機大多說都是靠程序來實現的,如果看不懂程序或則不懂的編程是很難學會單片機的。學習單片機首先要明白一個程序是怎麼走的,要完全懂得程序每一個步驟的意思。其次要懂得每一條指令的意思,不能盲目地去靠背指令,這是記得不牢靠的,最主要的還是靠了解。學習單片機最主要的對89C51晶元內部結構有全方面的,只要了解了89C51才能知道單片機實現什麼樣的功能和作用,才能對單片機有更深一步的了解。 通過一個學期《單片機》這門課程的學習,我也從中有了不少心
得和體會想和大家分享一下。
萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,不要說單片機的程序全是英文,自己看不懂。遇到困難要一件件攻克,不懂指令就要勤奮看書,不懂程序就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然後可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養一下自己的感覺,知道寫程序是怎麼一回事,無論寫大程序還是小程序,要做的工序不會差多少。然後建個程序,加入項目中,再寫代碼、編譯、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,模擬器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。
知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了後面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。 程序不要光看不寫,一定要自己寫一次。最開始的時候,什麼都不懂,可以抄人家的程序過來,看看每一句是干什麼用的,達到什麼目的,運行後有什麼後果。看明白了之後,就要自己寫一次,你會發現,原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距。當你自己能寫出來的時候,說明你就真的懂了。
必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,
然後一運行,不是自己想要的結果,就暈了,然後跑到論壇上發個帖子,把程序一貼,問:為什麼我的程序不能正常運行?然後就等別人來給自己分析。這是一種很不好的行為,應該自己學會發現問題和學會如何解決問題。這就需要學習調試程序的方法,比如KEIL里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發現你寫的程序運行結果和你想像中不一樣的時候,你可以單步,也可以下斷點,然後跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什麼偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。
找到解決問題思路比找到代碼更重要。我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態度,無助於你編程水平的提高。
我幾乎不怎麼看人家的代碼,多數時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以。要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人。所以現在我也明白了,以前讀書時說的程序流程圖很重要,現在算是知道了。當你知道一個問題怎麼去解決了,那麼剩下的只是你安排代碼去完成,這就已經不是什麼問題了。
開動腦筋,運用多種方法,不斷優化自己的程序。想想用各種不同方法來實現同一功能。這是一個練習和提高的過程,一個問題,你解決了,那麼你再想想,能不能換種寫法,也可以實現同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,並不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。
看別人的程序,學習人家的思路。這個在學習初期是很有用,通過看別人的程序,特別是老師寫出的具有一定水平的程序,可以使自己編程水平得到迅速的提高。同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的程序,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。
嘗試編寫一下綜合應用的程序。從流水燈學起,到動態掃描,再到中斷,那麼,你可以試試寫一下時鍾這種綜合性應用的程序,不要小看時鍾,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(IO讀取)、動態掃描(IO輸出)、中斷等,如何協調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序什麼也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數碼管既能顯示,又要去處理按鍵讀取,怎麼使這兩部分都正常工作,這就是一個協調過程。當你有了這個處理協調能力,你就算是入門了。
著重於培養解決問題的能力,而不是具體看自己編寫了多少程序或者做過什麼。「學單片機重點在於學習解決問題的思路,而不是局限於具體的晶元類型和語言」這一直是我的座右銘,是我學單片機學習單片機之後感悟出來的。真正的能力不是你曾經編寫過多少個可以實現的程序,而應該是:「遇到沒有解決過的問題,能利用自己已學的知識,迅速找到解決問題的方法。」這個才是能力。
面對一個新程序時,多自己開動腦筋,不要急於找別人的程序。
有不少人面對一個新程序時,第一步想到的就是網上找別人寫過的程序,然後抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個程序時,應該先自己構思一下整個程序的架構,想想如何來完成。有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數據、變數有一個初步的安排,然後自己動手去寫,遇到實在沒辦法解決的地方,再去請教老師或同學,或看別人是怎麼處理的,這樣首先起碼你自己動過腦想過,自己有自己的思路。如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。
學會提問題。一般來說,學習過程中,你遇上的問題,多數人也有遇上的,所以如果有什麼不懂,你可以去問老師。我覺得學習單片機最主要的要多提問,對於一個自己不是太懂的程序,自己一定要多提問幾遍,這樣不但有利於加深自己的印象還能從中學到不少別人的方法。
經過一個學期我對《單片機》這門課程的學習,不僅讓我懂得了很多程序的編寫,還讓我學到了很多對自己有用的學習方法。總結這個學期來的我自己的學習情況,我覺得自己對編程進步了不少,懂得運用正確的學習方法學習單片機程序,不再去死記硬背指令了。所以我覺得學習要不斷總結學習方法,才能讓自己學習不斷進步。
交通信號燈設計報告
實驗目的: P1口的使用方法,延時程序的編寫
實驗要求:在一個十字路口分為東西南北走向,信號等按以下的狀態順序工作:
(1) 初始狀態0,東西、南北紅燈全亮。延時一定時間;
(2) 狀態1,南北綠燈亮通車,東西紅燈,延時一定時間;
(3) 狀態2,南北綠燈閃爍幾次轉黃燈,東西仍然紅燈,延時一定
時間;
(4) 狀態3,南北紅燈,東西綠燈通車,延時一定時間;
(5) 狀態4,南北仍然紅燈,東西綠燈閃爍幾次轉黃燈,延時一定
時間;
(6) 循環至狀態1,繼續
實驗電路和流程框架圖:
(1) 硬體電路
交通燈實訓設備用最小系統板和信號燈組合而成。
2、軟體編程
若各路口燈亮滅的時間間隔為2s鍾,燈光閃爍時間間隔為0.5s。用軟體延時的方法,晶振頻率12MHz時,一個機器周期為1us。
編寫交通信號燈程序:
編寫主程序,由R7做主程序的計數器,確定調用延時時間為0.5s,從而獲得交通燈的亮滅時間。
篇二:《單片機》課程學習總結
時光飛逝,一轉眼,一個學期又進尾聲了,本學期的單片機課程也結束,但通過這次單片機的學習,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我還學會了如何去培養我們的創新精神,從而不斷地戰勝自己,超越自己。創新可以是在原有的基礎上進行改進,使之功能不斷完善,成為真己的東西。
當今社會隨著電子技術的發展,特別是隨著大規模集成電路的產生,給人們的生活帶來了根本性的變化,如果說微型計算機的出現使現代的科學研究得到了質的飛躍,那麼可編程式控制制器的出現則是給現代工業控制測控領域帶來了一次新的革命。在現代社會中,溫度控制不僅應用在工廠生產方面,其作用也體現到了各個方面。本學期我們就學習了單片機這門課程,感覺是有點難呢。也不知道整個學習過程是怎麼過來得,可是時間不等人。
剛開始學習的時候,對單片機沒有什麼認識,不知道什麼是單片機,更不知道它有什麼作用。通過學習才大體知道了單片機的一些知識。單片機是一塊在集成電路晶元上集成了一台有一定規模的微型計算機。簡稱為:單片微型計算機或單片機。單片機的應用到處可見,應用領域廣泛,主要應用在智能儀表、實時控制、通信、家電等方面。由中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、I/O介面、定時器/計數器以及串列通信介面等集成在一塊晶元上,構成了一個單片微型計算機,簡稱為單片機。它的應用范圍很廣,在工業自動化中應用有數據採集、測控技術。
在智能儀器儀表中應用有數字示波器、數字信號源、自動取款機等。在消費類電子產品中應用有空調機、電視機、微波爐、手機、IC卡、汽車電子設備等。在通訊方面應用有手機、小靈通等。在武器裝備方面應用有飛機、坦克、導彈、太空梭、智能武器等。剛開始學習時只能抄寫別人做成功的程序,一遍一遍的寫,從簡單的入手,逐步的積累,一步步的能夠將小的程序結合到一起,拼接成較為復雜一些的程序。但是程序不要只是看別人得,一定要自己寫過才是自己的。只有當你自己能寫出來的時候說明你真懂了。剛接觸KEIL時確實很讓人頭疼,使用 KEIL不會建項目、不會使用實驗板。然後可以參考已經成功的程序,抄過來,寫一個最簡單的,讓它運行起來,先培養一下自己的感覺,先建個項目,再配置一下項目,然後建個程序,加入項目中,再寫代碼、編譯、生成HEX,刷進單片機中、運行。其實當遇到問題一定要自己嘗試著解決,不能遇到問題就去問別人,自己一定要掌握解決問的方法和思路。對一個新項目時,自己一定要多想想,不要急著去看別人是怎麼寫的。應該先想一下程序的構架,想想如何來完成。然後自己動手去寫,理清自己的思路這樣更容易提高自己。
熟悉單片機的人都知道,要學好單片機可不是一件容易的事,倒不是因為單片機很難學,而是很難找到一本專為單片機入門者而編寫的教材。翻一下身邊的單片機教材,都好像是為已經懂單片機的人而寫的,一般先介紹單片機的硬體結構和指令系統,再是系統擴展和外圍器件,順便講一些應用設計(隨便說一下,很多書中的電路設計已經過時,並且有些程序還是錯誤的`)。如果按照此種學習方法,想進行產品開發,就必須先把所有的知識全部掌握了才可以進行實際應用。學習使用單片機只能靠循序漸進的積累,雖然單片機的課程只上了幾節就去上班了,但在學習的過程中有了一定的了解。下面就本人學習單片機的過程和經驗做簡要介紹。
首先,學習單片機要有一定的基礎:電子技術方面要有數字電路和模擬電路等方面的理論基礎,特別是數字電路;編程語言要求匯編語言或C語言。要想成為單片機高手,建議初學者首先學習匯編語言,學的差不多的時候,轉入C語言學習。盡管匯編語言屬於低級語言,編程效率低,但是較C語言具有目標代碼簡短,佔用內存少,執行速度快等優點,更重要的是能使初學者盡快熟悉單片機的內部結構,並能對其進行精確的控制。匯編語言在單片機教材裡面都會涉及,不需要單獨購買教材和學習。C語言是一門學問,有很多專業書籍來講解,並且對我們今後的編程生涯有絕對的好處,因此要深入學習,千萬不要自以為看了某某的視頻教程就以為掌握了C語言,那隻是C語言的一部分。在這里給大家推薦一本單片機C語言程序設計參考書,馬忠梅等著,北京航空航天大學出版社出版的《單片機的C語言應用程序設計》,要求C語言基礎。如果沒學過C語言,建議學習清華大學譚浩強編寫的C語言程序設計,這本書寫的不錯,通俗易懂。
其次,是單片機教材選擇。單片機是一門非常重視實踐的技術,不能總是看書,但要學習它首先應看書,對單片機引腳、內部結構、寄存器和原理有一定地了解和感官認識,它的是怎樣工作的,能幹些什麼?剛開始時,也許你看不明白,但這並不要緊,因為你還缺乏實踐經驗。現在單片機應用廣泛,因此各個廠家分別推出了自己的單片機,我們沒必要每樣都學!因為他們的編程方法和調試過程以及內部指令結構有一定的相似,只要學精通一款就OK了!尤其是用C語言編程,就幾乎不用分什麼派系,但是我們要選擇一款有代表性的知識范圍廣,並且入門容易,書籍多。一般來說,MCS-51系列單片機已經得到廣泛的普及和應用,市場上它的資料也比較多,用的人也很多。給大家推薦一些參考書,學習時只需要一本就足夠拉。書名:《新編MCS-51單片機應用設計》,哈爾濱工業大學出版,作者:張毅剛;書名:《單片機原理及應用》,高等教育出版社,作者:張毅剛等;書名:《單片機高級教程:應用與設計》,北京航空航天大學出版社,作者:何立民。相關教材還有很多,在這不一一列舉。
然後,是開發工具和開發環境的選擇。選擇一塊合適的學習板,對於初學者來說一般無力接受,如果經濟條件允許、本人又對單片機很感興趣、有從事相關工作意向的話,鼓勵大家購買。隨便說一句,學習板功能要求太全,具有流水燈、數碼管、獨立鍵盤、矩陣鍵盤、AD或DA、液晶、蜂鳴器等就差不多啦,畢竟,功能齊全的價格比較高。模擬器對單片機初學者來說既是那麼耳熟,同時又有些陌生,這主要是因為市場上傳統的模擬器價格都在千元以上,對經濟不是非常寬裕的人來說是不小的開支。同時模擬器是用來提高調試程序效率的,也不是非需不可的,如果你沒有模擬器,遇到程序出錯的時候,只好苦思冥想,反復燒寫調試。
隨便推薦一下,學林電子的51tracer模擬器,有興趣的朋友可關注一下。有了單片機教程板以後,先看下指導說明書,熟悉一下學習板,開卷有益。以後就得靠自己多練習了,將學習板與電腦連接好,先學會開發軟體的使用,然後從最簡單的流水燈實驗做起,按照你自己的意願控制流水燈,當你完成時,你會發現這是多麼愜意的事情。太好玩了,你會覺得這不是在學習,而是在玩,當你發現,單片機能夠按照你編寫的程序工作時,你會覺得非常興奮,比做什麼事情都開心,這樣你會慢慢迷上單片機,真的。不少網站上說搞定某個實驗,就恭維的告訴你一聲」恭喜你,學會了」自己學會了單片機,這有點可笑,這只能說明你算過關了,對單片機有了一定了解和會使用它了。但是單片機能完成的功能太多了,尤其是對外圍器件的控制,綜合起來能設計出許多意想不到的產品.因此除了入門外,精通可千萬別輕易說出口。
最後,在熟練掌握和應用後,那可以說對於單片機方面的硬體你已經入門了,剩下的就是自己練習設計開發各種課題,不斷的積累經驗。最終,自己完全設計具有個人風格的課題,產品,這樣你就是單片機高手拉。只要過了第一關,後面的路就好走多了,萬事開頭難,這大家可能都聽過。
有時候單片機的學習很單調,有些知識學起來很抽象,不容易理解,只能慢慢適應,一邊學習理論知識,一邊編寫程序,將程序刷入單片機進行調試,通過這種方式才能更快速的學習單片機。要堅定自己的學習信心,在付出持之以恆的努力,我相信自己能進一步加深對單片機的了解,在單片機的學習道路上走得更遠!
;