單片機原理及應用(C語言版)
-
【作 者】周國運 主編
【I S B N 】978-7-5084-6151-9
【責任編輯】李炎
【適用讀者群】高職高專
【出版時間】2009-02-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版
【頁 數】248
【千字數】
【印 張】
【定 價】¥25
【叢 書】21世紀高職高專規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書以應用最廣泛的MCS-51增強型單片機為對象,系統地講解了單片機原理及其應用,具體內容包括:MCS-51單片機的結構與工作原理,指令系統,中斷、定時器、串行口工作原理及應用,系統擴展及各種應用接口,并且還講了單片機C語言及編程。
本書以單片機C語言為主要編程工具,在第2章就引入C51的一些概念,第4章“單片機C語言及程序設計”之后各章節內容的講解、所有的編程舉例、程序設計,都采用C語言,并且為了便于學習匯編語言,也列出了匯編語言程序。
本書適用于具有C語言基礎的計算機、電子、電氣、自動化、測控與儀器儀表專業的本、專科學生作為教材,也可以作為各種培訓機構的教材使用,以及工程技術人員參考、自學者使用。
本書主要有以下特點:講解結構和片內外設時,以增強型單片機為對象;講控制轉移指令時,對傳統講解方法做了三個方面的改進;用一章內容講解了單片機的C語言,并且沒有涉及C語言的基礎知識;注重單片機的應用,書中提供了大量的例子和習題。
MCS-51單片機雖然走過了30年的歷史,但它那獨特的系統結構、不斷增加的片內設備、以及強大的指令系統,不僅沒有被歷史淘汰,而且依然是單片機中的主流。隨著技術的發展和應用的需求,MCS-51單片機片內設備越來越豐富,應用也越來越多。所以MCS-51單片機仍然是單片機教學的主要對象。
近幾年隨著MCS-51單片機和開發工具的發展,我們教師在單片機項目開發中都采用C語言編寫程序,與匯編語言相比有諸多優勢,因此,我們將單片機C語言部分寫成小冊子,補充到單片機教學中,后來就動手編寫了C語言版的“單片機原理及應用”講義,把C51的概念從開始就引入其中,并且以C語言為主要編程工具講解、舉例和編程,試用效果比用匯編語言好,學生更容易掌握用C語言編寫單片機程序。
本書結合作者多年來講授單片機和C語言的教學心得,以及從事單片機項目開發的經驗,在C語言版“單片機原理及應用”講義及試用的基礎上,經過修改編寫成這本教材。本書主要有以下特點。
一是講解結構和片內外設時,以增強型單片機為對象。其原因是當今在實際中使用的單片機多數是增強型,而現在又多用C語言編程,程序的長度很容易超過4KB,另外增強型單片機的價格比51多出的很少,并且有更多的片內設備。書中講解了增強型片內高128字節的存儲器,定時器/計數器2的多種用途,片內的A/D轉換器等。
二是講控制轉移指令時,對傳統的講解方法做了三個方面的改進。其一,在指令講解和注釋時不提及“(PC)+2→PC或(PC)+3→PC”,只講滿足條件轉移,不滿足條件順序執行,這樣既降低難度、又容易理解;其二,相對尋址中的“偏移量rel”的計算,簡化為“rel=目標地址-PC”,使其容易理解;其三,沒有講“絕對轉移指令AJMP”和“子程序絕對調用指令ACALL”,因為這兩條指令較難理解,并且在使用中有可能會出錯,這兩條指令的優點是比“長轉移指令LJMP”和“子程序長調用指令LCALL”少一個字節,在存儲器容量大、價格低的今天,其唯一的優點也沒有了意義,所以沒有必要使用這兩條指令。
三是用一章內容講解了單片機的C語言。原因是在實際應用中,程序設計多以C語言為主,匯編語言為輔,為了適應實際工作的需要,必須要掌握C語言編程。本書在講解第2章的單片機結構和原理時,就把C51的概念引入了進來;在第4章的“單片機C語言及程序設計”之后,所有內容的講解、編程舉例、程序設計,都采用C語言,并且為了便于學習匯編語言,也列出了匯編語言程序。
四是C語言一章的內容更具特點,沒有涉及C語言的基礎內容。如:運算符與表達式,邏輯運算和條件判斷,循環控制,數組,結構體,函數,指針概念和指針的基本應用,以及位運算等。因為現在所有理工科都開設了C語言課程,因此在C語言一章主要是緊密結合單片機及其應用,講解了變量的存儲區屬性、位變量的定義、特殊功能寄存器的定義、單片機中指針的定義及應用、C51的輸入/輸出及應用、C51函數的定義、匯編語言與C語言混合編程,以及與單片機實際結合的例題和習題等。并且介紹了Windows的C語言集成開發工具Keil C。其內容的組織與撰寫有別于其他單片機書,使讀者在較短的時間能夠掌握單片機C語言,并且能夠用C語言編寫單片機程序。
五是注重單片機的應用,書中有較多的應用例子和習題,有一些更是來自于實際應用中。
建議在使用本教材時,第3章“MCS-51指令系統及匯編程序設計”主要講尋址方式和指令,匯編程序設計內容留給學生自學。第4章“單片機C語言及程序設計”中的“C51與匯編語言混合編程”一節,因為混合編程涉及匯編程序內容較多,比較難,可以留給學生自學或全書講完之后再講,其他各節都是基本內容要講。本建議的目的是要以C語言編程為主,要讓學生盡快掌握C51編程,有了一定的C51編程基礎和混合編程需求后,再講混合編程。
本書由周國運任主編,并且編寫了第2、3、4章,趙天翔編寫了第1、8章,仝選悅編寫了第5、6章,魯慶賓和陳華敏編寫了第7、9章及附錄。
由于編者水平有限,時間倉促,錯誤和不妥之處定會不少,敬請同行和讀者批評指正。
前言
第1章 單片機概述 1
1.1 單片機的基本概念 1
1.2 單片機的發展概況 1
1.2.1 單片機的歷史 1
1.2.2 單片機技術的發展 3
1.3 單片機的特點及應用 4
1.3.1 單片機的特點 4
1.3.2 單片機的應用 5
1.4 常用單片機簡介 5
1.4.1 MCS-51系列單片機 5
1.4.2 ATMEL89系列單片機 5
1.4.3 STC89/12系列單片機 8
1.4.4 常見的其他系列單片機介紹 9
1.5 單片機系統的開發方法 11
1.5.1 單片機系統的設計要求 11
1.5.2 單片機系統的開發特點 11
1.5.3 單片機系統的開發工具及環境 11
1.5.4 單片機系統設計中芯片的選擇 12
思考題與習題 12
第2章 MCS-51單片機結構與原理 13
2.1 MCS-51單片機內部結構及CPU 13
2.1.1 MCS-51單片機的功能結構及特點 13
2.1.2 MCS-51單片機的內部原理結構 14
2.1.3 MCS-51單片機的CPU 14
2.2 MCS-51單片機的引腳與總線結構 17
2.2.1 MCS-51單片機的引腳信號及功能 17
2.2.2 MCS-51單片機外部總線結構 19
2.3 MCS-51單片機的存儲器結構 20
2.3.1 程序存儲器結構 20
2.3.2 片內數據存儲器結構 22
2.3.3 片外數據存儲器結構 25
2.4 MCS-51單片機的輸入/輸出端口 25
2.4.1 P1口 26
2.4.2 P2口 27
2.4.3 P3口 28
2.4.4 P0口 28
2.4.5 端口負載能力和接口要求 30
2.5 MCS-51單片機的時鐘及CPU時序 30
2.5.1 時鐘電路及時鐘信號 30
2.5.2 CPU時序 32
2.6 MCS-51單片機的工作方式 33
2.6.1 復位方式 33
2.6.2 程序執行方式 34
2.6.3 單步執行方式 34
2.6.4 節電工作方式 35
2.6.5 編程和校驗方式 36
思考題與習題 37
第3章 MCS-51指令系統及匯編程序設計 38
3.1 匯編語言概述 38
3.1.1 指令和機器語言 38
3.1.2 匯編語言 38
3.1.3 匯編語言指令格式 39
3.2 MCS-51單片機尋址方式 40
3.2.1 立即數尋址 40
3.2.2 寄存器尋址 41
3.2.3 直接尋址 41
3.2.4 寄存器間接尋址 42
3.2.5 變址尋址 43
3.2.6 位尋址 43
3.2.7 指令尋址 44
3.2.8 尋址空間及指令中符號注釋 44
3.3 MCS-51單片機指令系統 45
3.3.1 數據傳送指令 46
3.3.2 算術運算指令 50
3.3.3 邏輯操作指令 52
3.3.4 控制程序轉移指令 54
3.3.5 位操作指令 58
3.4 MCS-51單片機偽指令 60
3.5 匯編語言程序設計舉例 62
3.5.1 簡單程序設計 62
3.5.2 分支程序設計 63
3.5.3 循環程序設計 64
3.5.4 子程序設計 65
思考題與習題 67
第4章 單片機C語言及程序設計 70
4.1 C51概述 70
4.1.1 C語言編程的優勢 70
4.1.2 C51與ANSI C的區別 71
4.1.3 C51擴展的關鍵字 71
4.2 C51數據類型及存儲 71
4.2.1 C51的數據類型 71
4.2.2 C51數據的存儲 73
4.3 C51變量的定義及數據存儲區域 74
4.3.1 C51變量的定義 74
4.3.2 C51變量的存儲類型 74
4.3.3 C51變量的存儲區 75
4.3.4 C51變量定義舉例 76
4.3.5 C51變量的存儲模式 76
4.3.6 C51變量的絕對定位 77
4.4 C51位變量的定義 77
4.4.1 bit型位變量的定義 77
4.4.2 sbit型位變量的定義 78
4.4.3 bdata型變量的位變量定義 79
4.5 C51特殊功能寄存器的定義 79
4.5.1 8位特殊功能寄存器的定義 79
4.5.2 16位特殊功能寄存器的定義 79
4.6 C51指針的定義 80
4.6.1 通用指針 80
4.6.2 存儲器專用指針 80
4.6.3 指針變換 81
4.6.4 C51指針應用 82
4.7 C51的輸入/輸出 84
4.7.1 格式輸出函數printf 85
4.7.2 格式輸入函數scanf 85
4.8 C51函數的定義 87
4.8.1 C51函數的定義 87
4.8.2 C51中斷函數的定義 88
4.9 C51與匯編語言混合編程 89
4.9.1 在C51函數中嵌入匯編程序 89
4.9.2 C51程序與匯編程序混合編程 89
4.10 C51集成開發軟件Keil C 94
4.10.1 Keil C集成工具簡介 94
4.10.2 Keil C操作界面 95
4.10.3 Keil C的使用 99
4.10.4 項目的運行調試 100
思考題與習題 103
第5章 單片機中斷系統 106
5.1 中斷概述 106
5.1.1 微機的輸入/輸出方式 106
5.1.2 中斷的概念 107
5.2 中斷系統結構及控制 108
5.2.1 MCS-51的中斷結構 108
5.2.2 MCS-51的中斷源 108
5.3 中斷響應及處理過程 113
5.3.1 中斷響應 113
5.3.2 中斷處理和中斷返回 116
5.4 中斷應用舉例 116
思考題與習題 121
第6章 MCS-51單片機定時器/計數器 123
6.1 MCS-51單片機定時器/計數器的結構及原理 123
6.1.1 MCS-51單片機定時器/計數器結構 123
6.1.2 MCS-51單片機定時器/計數器的工作原理 124
6.1.3 定時器/計數器的方式和控制寄存器 125
6.2 定時器T0與T1 126
6.2.1 模式0 126
6.2.2 模式1 127
6.2.3 模式2 127
6.2.4 模式3 128
6.3 定時器T2 132
6.3.1 定時器T2特殊功能寄存器 133
6.3.2 定時器T2的工作方式 134
6.4 定時器應用舉例 138
6.4.1 定時器的初始化 138
6.4.2 定時器應用舉例 139
6.4.3 定時器/計數器應用中的注意事項 144
思考題與習題 145
第7章 MCS-51單片機串行口 147
7.1 串行通信基礎知識 147
7.1.1 數據通信 147
7.1.2 異步通信和同步通信 148
7.1.3 波特率 149
7.1.4 通信方向 149
7.1.5 串行通信接口種類 150
7.2 串行口結構及控制 150
7.2.1 89C52串行口結構 150
7.2.2 與串行口有關的特殊功能寄存器 151
7.2.3 波特率設計 152
7.3 串行口工作方式 155
7.3.1 串行口方式0 155
7.3.2 串行口方式1 156
7.3.3 串行口方式2和方式3 158
7.4 串行口應用舉例 159
7.4.1 同步方式應用 159
7.4.2 異步方式應用 161
7.5 單片機與PC機通信的接口電路 165
7.5.1 MAX232芯片簡介 165
7.5.2 PC機與89C52串行通信的接口電路 167
思考題與習題 167
第8章 單片機系統擴展 169
8.1 擴展并行三總線 169
8.1.1 片外三總線結構 169
8.1.2 MCS-51系統擴展的實現 170
8.1.3 總線驅動 171
8.2 擴展簡單并行輸入/輸出口 171
8.3 擴展并行數據存儲器 173
8.3.1 擴展存儲器概述 173
8.3.2 數據存儲器的擴展 174
8.4 串行擴展總線接口技術 175
8.4.1 常用的串行總線接口簡介 176
8.4.2 I2C總線 177
8.4.3 SPI串行外設接口總線 184
思考題與習題 189
第9章 單片機系統配置及接口 190
9.1 鍵盤接口 190
9.1.1 鍵盤基本問題 190
9.1.2 鍵盤結構及處理程序 192
9.1.3 中斷掃描方式 197
9.2 LED顯示接口 197
9.2.1 LED顯示器結構原理 198
9.2.2 LED顯示器接口及顯示方式 198
9.2.3 LED顯示器與89C52接口及顯示子程序 199
9.3 A/D轉換接口 201
9.3.1 多通道串行輸出A/D芯片TLC2543及接口 201
9.3.2 逐次逼近型并行輸出A/D轉換器及接口 209
9.3.3 單片機內部集成的A/D轉換器 212
9.4 D/A轉換接口 214
9.4.1 8位并行D/A轉換器DAC0832接口技術 214
9.4.2 串行輸入D/A轉換器TLC5615接口技術 217
9.5 開關器件接口 220
思考題與習題 223
附錄A ASCII碼表 224
附錄B MCS-51指令表 225
附錄C C51庫函數 229
參考文獻 237
- 單片機應用技術項目教程(C語言版)(第三版) [主編 郭志勇]
- 單片機原理及應用技術(C語言版) [周國運 魯慶賓 趙天翔 編著]
- 單片機實用技術項目教程 [主編 周威 熊輝]
- 單片機原理及應用項目化教程(C語言版) [主編 謝四連 王善偉 李石林]
- 單片機控制技術 [李美菊 劉敏 許艷梅]
- 單片機應用技術項目教程(C語言版)(第二版) [主編 郭志勇]
- 單片機技術實驗實訓教程(第二版) [周越 鄭棣]
- 單片機應用教程 [胡云冰 聶振華]
- 單片機應用系統設計安裝與調試 [主編 田浩鵬]
- 單片機原理及應用設計(第二版) [主編 胡輝 ]
- 單片機原理及典型應用接口技術 [劉甫 陳健美 編著]
- 單片機原理及應用教程(C語言版) [主編 周國運]
- 單片機應用系統設計與訓練 [胡輝 主編]
- 單片機應用技術項目教程(C語言版) [郭志勇]
- 單片機原理及應用 [主 編 李英順]
- 單片機應用技術 [周越 主編]
- 16位單片機及語音嵌入式系統 [趙定遠 馬洪江 主編]
- 單片機原理及應用設計 [胡輝 主編]
- 單片機原理與應用 [金龍國 主編]
- 單片機原理與應用技術 [秦實宏 周龍 肖忠 等編著]
- 單片機接口技術(C51版) [張道德 編著]
- 單片機原理及基于單片機的嵌入式系統設計 [蔡方凱 主編]
- 單片機原理與應用 [胡輝 主編]
- 單片機技術實驗實訓教程 [周越 等編著]
- 單片機原理與應用系統設計 [李云鋼 等編著]
- 計算機硬件技術實驗教程 [張志勇 戴金波 主編]