趙威主編的《單片機技術及項目訓練》以單片機套用為主線,先介紹彙編語言,再講述C51,最後進行兩種語言的混合編程。整個過程與情境任務緊密結合,讓學生在實際任務中逐漸掌握編程方法,避免了學生單純學習程式語言而感到枯燥和困惑。
基本介紹
- 中文名::《單片機技術及項目訓練》
- 作者::趙威
- 系列::高職高專十二五規劃教材
- 價格::28.0
- 字數::371千字
- 語種::中文
- ISBN::978-7-5124-0830-2
- 出版社::北京航空航天大學
- 頁數::222頁
- 開本::787×1092 1/16
- 出版時間::2012年8月
- 裝幀::平裝
簡介
前言
1.以情境任務引導學生學習
本書包括25個學習情境和4個訓練項目。以任務為導向,每個學習情境分為“情境任務”、“知識準備”、“任務實施”和“能力拓展”四部分。“情境任務”先讓學生知道要完成怎樣的任務或解決什麼問題,激發學生學習的熱情;“知識準備”引入解決問題所需的相關知識和方法;“任務實施”指導學生利用所學知識完成任務或解決問題;“能力拓展”則通過橫向或縱向的知識拓展,使學生的能力得到進一步提高。整個結構設計符合學生“做什麼,怎么做”的認知規律,更加貼合高職高專的教學特點。
2.從學生職業發展出發,從彙編語言走向C語言
傳統單片機教學採用彙編語言。彙編語言程式代碼短,運行速度快,但複雜運算編程比較耗時。C語言程式容易閱讀、理解,程式風格更加人性化,且方便移植。如果用彙編語言編寫與硬體有關的部分程式,用C語言編寫與硬體無關的運算部分程式,充分發揮兩種語言的長處,可以提高開發效率。
本書以單片機套用為主線,先介紹彙編語言,再講述C51,最後進行兩種語言的混合編程。整個過程與情境任務緊密結合,讓學生在實際任務中逐漸掌握編程方法,避免了學生單純學習程式語言而感到枯燥和困惑。
3.突出套用能力,從學習情境走向綜合項目訓練
本書的學習情境針對單片機套用中的具體知識點,精心選擇情境任務,避免過大過繁。25個學習情境任務相互獨立,但在知識點上保持著緊密聯繫,由淺入深,循序漸進,並且滿足了本課程知識與技能的系統性。
本書配有4個綜合項目訓練,該部分內容由帶隊獲得全國大學生電子設計競賽一等獎並且具有豐富工程經驗的教師負責編寫。訓練課題具有代表性,能覆蓋單片機套用中的多個方面,並且給出了彙編語言和C語言兩種源程式,可作為課程設計或綜合實訓項目使用。
本書系統介紹了單片機硬體結構、單片機指令系統、單片機中斷與定時系統、單片機連線埠套用以及單片機系統功能擴展等內容。參考學時數約為78學時,在使用時可根據具體情況對相關學習情境進行靈活選擇。
本書由趙威主編,宋科、楊怡、王前、李彬為副主編。趙威對本書的編寫思路和結構進行了總體策劃,並編寫了學習情境1~13,學習情境16和17。宋科對情境任務和訓練項目進行選擇,並編寫學習情境20~25。王前編寫學習情境14和15,楊怡編寫學習情境18和19,李彬編寫項目訓練。易禎華、羅長清、王娜、孫宏偉、陽妮老師協助編寫了本書。
目錄
1.1情境任務——單片機的發展歷程、趨勢及主流產品1
1.2知識準備1
1.2.1單片機的定義1
1.2.2單片機的套用領域2
1.3任務實施3
1.3.1單片機的發展歷程3
1.3.2單片機的發展趨勢3
1.3.3單片機分類及當前的主流產品4
1.4能力拓展6
1.4.1其他主流單片機生產廠商介紹6
1.4.2單片機與PC機的參數對比6
2學習情境2單片機中的數8
2.1情境任務——數據存儲與進制轉換8
2.2知識準備8
2.2.1數制8
2.2.2進制間的轉換8
2.2.3單片機中的存儲單位9
2.3任務實施9
2.4能力拓展10
2.4.1無符號數與有符號數10
2.4.2有符號數編碼10
3學習情境3單片機存儲器組織12
3.1情境任務——存儲器地址編號12
3.2知識準備12
3.2.1存儲單元地址12
3.2.280C51單片機存儲器結構13
3.2.3程式存儲器ROM的使用方式13
3.3任務實施13
3.4能力拓展14
3.4.1程式存儲器起始端的特殊單元14
3.4.2單片機各類存儲器空間的訪問14
4學習情境4數據存儲器與特殊功能暫存器15
4.1情境任務——片內RAM與特殊功能暫存器15
4.2知識準備15
4.2.1片內RAM分區15
4.2.2特殊功能暫存器區17
4.3任務實施18
4.4能力拓展——特殊功能暫存器分類18
5學習情境5單片機最小電路19
5.1情境任務——理解並搭建單片機最小電路19
5.2知識準備19
5.2.1單片機時鐘電路19
5.2.2單片機復位電路20
5.3任務實施21
5.4能力拓展——單片機中的S狀態周期22
6學習情境6數據傳送23
6.1情境任務——數據大轉移23
6.2知識準備23
6.2.1一般傳送指令24
6.2.2特殊傳送指令27
6.2.3其他特殊傳送指令29
6.3任務實施29
6.4能力拓展30
6.4.1指令機器碼30
6.4.2指令執行時間31
6.4.3累加器A與ACC31
7學習情境7算術運算32
7.1情境任務——四則運算32
7.2知識準備——單片機中的算術運算類指令32
7.2.1加法33
7.2.2減法35
7.2.3乘法35
7.2.4除法36
7.3任務實施36
7.4能力拓展36
7.4.1使用CY和OV進行運算結果驗證36
7.4.2BCD碼運算及調整37
8學習情境8邏輯運算與循環39
8.1情境任務——邏輯運算與倍乘39
8.2知識準備——邏輯運算及循環移位指令39
8.2.1邏輯運算40
8.2.2累加器清0和取反41
8.2.3累加器循環移位42
8.3任務實施42
8.4能力拓展42
8.4.1邏輯與、邏輯或和邏輯異或使用要點42
8.4.2RL與RLC使用示例43
9學習情境9程式轉移44
9.1情境任務——分段函式44
9.2知識準備——轉移類指令44
9.2.1條件轉移指令45
9.2.2無條件轉移46
9.3任務實施48
9.4能力拓展48
9.4.1靈活運用指令“ANLA,#80H”進行正負數的區分48
9.4.2多分支結構程式設計48
9.4.3循環結構程式設計49
10學習情境10位操作51
10.1情境任務——邏輯電路51
10.2知識準備——位操作51
10.2.1常規操作53
10.2.2位邏輯操作53
10.2.3位傳送53
10.2.4判斷位值的條件轉移指令54
10.3任務實施54
10.4能力拓展——累加器A編程求補碼55
11學習情境11偽指令56
11.1情境任務——創建平方表56
11.2知識準備56
11.2.1彙編方式56
11.2.2偽指令56
11.3任務實施58
11.4能力拓展——查詢平方表58
12學習情境12定址方式59
12.1情境任務——辨別定址方式59
12.2知識準備——定址方式分類59
12.3任務實施60
12.4能力拓展——目的運算元定址方式61
13學習情境13子程式調用62
13.1情境任務——查表計算平方和62
13.2知識準備——子程式調用及返回62
13.2.1調用指令62
13.2.2子程式調用返回指令62
13.3任務實施63
13.4能力拓展63
13.4.1延時子程式63
13.4.2現場保護與恢復64
13.4.3參數傳遞66
14學習情境14單片機中斷系統67
14.1情境任務——中斷型數據採集系統67
14.2知識準備67
14.2.1中斷概念67
14.2.2中斷源及中斷請求標誌67
14.2.3中斷系統的控制暫存器68
14.2.4中斷的回響過程70
14.2.5中斷系統程式結構71
14.3任務實施72
14.4能力拓展——多外部中斷源系統74
15學習情境15定時/計數器76
15.1情境任務——生產線產品計數系統76
15.2知識準備76
15.2.1定時/計數器中的暫存器76
15.2.2定時/計數器的工作方式78
15.3任務實施80
15.4能力拓展81
15.4.1脈衝的發生與測量81
15.4.2定時/計數器用於外部中斷擴展83
15.4.3其他定時方法84
16學習情境16並行接口85
16.1情境任務——循環彩燈85
16.2知識準備85
16.2.1P1口85
16.2.2發光二極體85
16.2.3延時程式85
16.3任務實施86
16.4能力拓展87
16.4.1通用鎖存器、緩衝器擴展87
16.4.2擴展8255可程式並行接口晶片89
17學習情境17串列口通信技術92
17.1情境任務——串口通信92
17.2知識準備92
17.2.1單片機通信概念92
17.2.2串列通信的分類93
17.2.3通信方向分類93
17.2.4單片機的串列接口94
17.3任務實施97
17.4任務擴展——雙機通信99
18學習情境18存儲器的擴展104
18.1情境任務——擴展片外存儲器104
18.2知識準備104
18.2.1存儲器擴展概念104
18.2.2程式存儲器擴展109
18.2.3數據存儲器擴展110
18.3任務實施111
18.4能力拓展113
18.4.1擴展多片數據存儲器113
18.4.2存儲器綜合擴展114
19學習情境19A/D與D/A轉換115
19.1情境任務——模擬量輸入的巡迴檢測系統及信號發生器115
19.2知識準備115
19.2.1A/D轉換器115
19.2.2D/A轉換器120
19.3任務實施124
19.4能力拓展126
20學習情境20初識C語言127
20.1情境任務——C語言程式結構127
20.2知識準備——單片機C語言基礎127
20.3任務實施129
20.4能力拓展——兩種程式語言比較129
21學習情境21數據和運算131
21.1情境任務——使用C語言設計流水燈131
21.2知識準備131
21.2.1C51的數據類型131
21.2.2數據的存儲類型和存儲模式133
21.2.3C51對SFR、可定址位、存儲器和I/O口的定義135
21.2.4C51的運算符137
21.3任務實施138
21.4能力拓展——流水燈其他實現方法140
22學習情境22C語言基本語句142
22.1情境任務——汽車轉向燈控制系統142
22.2知識準備143
22.2.1表達式語句和複合語句143
22.2.2選擇語句144
22.3任務實施147
22.4能力拓展——循環語句150
23學習情境23數組158
23.1情境任務——簡易密碼鎖158
23.2知識準備158
23.2.1數組的概念158
23.2.2數組的類型158
23.3任務實施162
23.4能力拓展——數組實現流水燈控制163
24學習情境24函式165
24.1情境任務——使用庫函式控制流水燈165
24.2知識準備165
24.2.1函式的分類165
24.2.2函式的定義165
24.2.3函式的調用166
24.2.4對被調函式的說明166
24.3任務實施167
24.4能力拓展——C語言中散轉移編程168
25學習情境25彙編語言和C語言的混合編程169
25.1情境任務——方波發生器169
25.2知識準備169
25.2.1混合編程概念169
25.2.2C語言程式和彙編語言程式參數的傳遞169
25.3任務實施170
25.4能力拓展172
25.4.1數值比較混合編程172
25.4.2C和彙編混合編程傳遞的參數多於三個的編程方法172
26項目訓練1報警產生器175
27項目訓練24×4矩陣式鍵盤識別技術178
28項目訓練3字元型LCD顯示183
29項目訓練4音樂聲192
自測練習題200
附錄AKeilC51軟體使用207
附錄Bat89s52單片機燒寫軟體214
附錄C常用的C51標準庫函式219
參考文獻222