本書以MCS-51單片機、STM32單片機和μC/OS-Ⅱ系統(tǒng)為主線,輔以相應的編程實例,全面系統(tǒng)地闡述單片機與嵌入式系統(tǒng)的原理及應用,是一本重在原理、兼顧理論與實踐的實用教程。主要內容包括:概述、MSC-51單片機基本原理、C51語言程序設計、MSC-51單片機內部資源及應用、MSC-51單片機系統(tǒng)擴展、MSC-51單片機的常用接口及應用、ARM嵌入式微處理器及應用、嵌入式實時操作系統(tǒng)μC/OS-Ⅱ。本書提供配套的電子課件PPT、習題參考答案、程序代碼、相關軟件操作指南。本書可作為高等院校電子信息類和機電類等專業(yè)本、?茊纹瑱C與嵌入式課程的教材,或高校大學生創(chuàng)新基地的培訓教材,也可供單片機與嵌入式的初學者和從事單片機與嵌入式系統(tǒng)開發(fā)的工程技術人員參考。
石坤,博士,副教授,任職于西安理工大學,長期講授微機原理與接口技術、單片機原理及應用等課程,從事機電一體化、機械裝備自動化控制系統(tǒng)等方面的研究工作。
目 錄
第1章 概述 1
1.1 嵌入式系統(tǒng)概述 1
1.1.1 計算機基本概念 1
1.1.2 嵌入式系統(tǒng)的特點 3
1.1.3 嵌入式系統(tǒng)的發(fā)展與應用 5
1.1.4 嵌入式系統(tǒng)的組成 6
1.1.5 嵌入式系統(tǒng)的分類 7
1.2 單片機概述 8
1.2.1 單片機的基本概念 8
1.2.2 單片機的主要特點 9
1.2.3 單片機的發(fā)展及其主要品種 9
1.2.4 單片機的應用 10
1.3 信息在計算機中的表示 11
1.3.1 數制 11
1.3.2 碼制 14
1.3.3 二進制編碼 17
習題1 19
第2章 MCS-51單片機基本原理 20
2.1 MCS-51單片機簡介 20
2.2 MCS-51單片機的結構 20
2.2.1 MCS-51單片機的基本組成 20
2.2.2 MCS-51單片機的內部結構 21
2.2.3 MCS-51單片機的外部引腳 22
2.3 MCS-51單片機的中央處理器 24
2.3.1 運算器 25
2.3.2 控制器 26
2.4 MCS-51單片機的存儲器結構 27
2.4.1 程序存儲器 27
2.4.2 數據存儲器 28
2.5 MCS-51單片機的輸入/輸出接口及片外總線 32
2.5.1 MCS-51單片機的輸入/輸出接口 32
2.5.2 片外總線結構 35
2.6 MCS-51單片機的時序 35
2.6.1 機器周期和指令周期 35
2.6.2 單機器周期指令的時序 36
2.6.3 雙機器周期指令的時序 36
2.7 MCS-51單片機的工作方式 37
2.7.1 復位方式 37
2.7.2 程序執(zhí)行方式 38
2.7.3 單步執(zhí)行方式 38
2.7.4 掉電和節(jié)電方式 38
習題2 40
第3章 C51語言程序設計 42
3.1 C51基本知識 42
3.1.1 C語言的特點及程序結構 42
3.1.2 C語言與MCS-51單片機 44
3.1.3 C51程序結構 44
3.2 C51的數據類型 46
3.2.1 C51基本數據類型 46
3.2.2 C51構造數據類型 49
3.3 C51的運算量 59
3.3.1 常量 59
3.3.2 變量 60
3.3.3 絕對地址的訪問 64
3.4 C51的運算符及表達式 66
3.4.1 賦值運算符 66
3.4.2 算術運算符 66
3.4.3 關系運算符 66
3.4.4 邏輯運算符 67
3.4.5 位運算符 67
3.4.6 復合賦值運算符 68
3.4.7 逗號運算符 68
3.4.8 條件運算符 68
3.4.9 指針與地址運算符 69
3.5 表達式語句及復合語句 69
3.5.1 表達式語句 69
3.5.2 復合語句 70
3.6 C51的輸入/輸出 70
3.6.1 格式輸出函數printf() 71
3.6.2 格式輸入函數scanf() 72
3.7 C51程序基本結構與相關語句 73
3.7.1 C51的基本結構 73
3.7.2 if語句 74
3.7.3 switch…case語句 75
3.7.4 while語句 75
3.7.5 do…while語句 76
3.7.6 for語句 77
3.7.7 循環(huán)的嵌套 78
3.7.8 break和continue語句 78
3.7.9 return語句 79
3.8 函數 79
3.8.1 函數的定義 79
3.8.2 函數的調用與聲明 82
3.8.3 函數的嵌套與遞歸 84
習題3 85
第4章 MCS-51單片機內部資源及應用 87
4.1 并行I/O輸出接口 87
4.2 中斷系統(tǒng) 89
4.2.1 中斷的基本概念 89
4.2.2 MCS-51單片機的中斷系統(tǒng) 90
4.2.3 MCS-51中斷系統(tǒng)的應用 94
4.3 定時/計數器接口 96
4.3.1 定時/計數器的主要特性 96
4.3.2 定時/計數器T0、T1的結構及工作原理 96
4.3.3 定時/計數器的方式寄存器和控制寄存器 97
4.3.4 定時/計數器的工作方式 98
4.3.5 定時/計數器的初始化編程及應用 100
4.4 串行接口 103
4.4.1 通信的基本概念 103
4.4.2 MCS-51單片機串行接口的功能與結構 105
4.4.3 串行接口的工作方式 107
4.4.4 串行接口的編程及應用 111
習題4 124
第5章 MCS-51單片機系統(tǒng)擴展 128
5.1 MCS-51單片機的總線系統(tǒng) 128
5.1.1 MCS-51單片機的三總線結構 128
5.1.2 MCS-51單片機的總線驅動能力及擴展方法 129
5.2 MCS-51單片機的最小系統(tǒng) 129
5.2.1 8051/8751的最小系統(tǒng) 130
5.2.2 8031的最小系統(tǒng) 130
5.3 存儲器擴展 131
5.3.1 存儲器擴展概述 131
5.3.2 程序存儲器擴展 133
5.3.3 數據存儲器擴展 135
5.4 I/O接口擴展 136
5.4.1 簡單I/O接口擴展 136
5.4.2 可編程I/O接口擴展(8255A) 137
習題5 144
第6章 MCS-51單片機的常用接口及應用 145
6.1 鍵盤接口 145
6.1.1 鍵盤的工作原理 145
6.1.2 獨立式鍵盤與MCS-51單片機的接口 147
6.1.3 矩陣式鍵盤與MCS-51單片機的接口 147
6.2 LED顯示器接口 151
6.2.1 LED顯示器的結構與原理 151
6.2.2 LED顯示器的譯碼方式 152
6.2.3 LED數碼管的顯示方式 153
6.2.4 LED顯示器與單片機的接口 154
6.3 A/D轉換器接口 156
6.3.1 A/D轉換器概述 156
6.3.2 ADC0809與MCS-51單片機的接口 158
6.4 D/A轉換器接口 161
6.4.1 D/A轉換器概述 161
6.4.2 DAC0832與MCS-51單片機的接口 163
6.5 行程開關、晶閘管、繼電器和蜂鳴器接口 167
6.5.1 行程開關、繼電器常開觸點與MCS-51單片機的接口 167
6.5.2 晶閘管與MCS-51單片機的接口 168
6.5.3 繼電器與MCS-51單片機的接口 168
6.5.4 蜂鳴器與MCS-51單片機的接口 169
6.6 日歷時鐘芯片接口 169
6.6.1 并行日歷時鐘芯片DS12887與MCS-51單片機的接口 169
6.6.2 串行日歷時鐘芯片DS1302與MCS-51單片機的接口 175
習題6 183
第7章 ARM嵌入式微處理器及應用 185
7.1 ARM微處理器 185
7.1.1 ARM簡介 185
7.1.2 ARM微處理器系列 186
7.1.3 ARM微處理器的應用領域及特點 186
7.1.4 ARM微處理器的應用選型 187
7.2 ARM微處理器的體系結構 188
7.2.1 嵌入式微處理器的體系結構 188
7.2.2 ARM微處理器的工作模式及狀態(tài) 190
7.2.3 ARM微處理器的寄存器結構 192
7.2.4 ARM微處理器支持的數據類型和存儲模式 195
7.3 STM32F103系列微控制器的基本原理及應用 195
7.3.1 STM32F103系列微控制器內部結構 197
7.3.2 STM32F103系列微控制器片內外設概述 200
7.3.3 基于標準外設庫的軟件開發(fā) 202
習題7 205
第8章 嵌入式實時操作系統(tǒng)μC/OS-Ⅱ 206
8.1 操作系統(tǒng)概述 206
8.1.1 操作系統(tǒng)的作用 206
8.1.2 操作系統(tǒng)的特征 206
8.1.3 操作系統(tǒng)的發(fā)展 207
8.2 嵌入式操作系統(tǒng)概述 208
8.2.1 嵌入式操作系統(tǒng)的演變 208
8.2.2 嵌入式操作系統(tǒng)的特點 209
8.2.3 嵌入式操作系統(tǒng)與通用操作系統(tǒng)的區(qū)別 210
8.2.4 常見的嵌入式操作系統(tǒng) 211
8.3 嵌入式實時操作系統(tǒng)μC/OS-Ⅱ簡介 214
8.3.1 μC/OS-Ⅱ的特點 214
8.3.2 μC/OS-Ⅱ的文件結構 215
8.4 嵌入式實時操作系統(tǒng)μC/OS-Ⅱ內核 216
8.4.1 任務管理 216
8.4.2 中斷和時間管理 220
8.4.3 任務之間的通信與同步 221
8.5 嵌入式實時操作系統(tǒng)μC/OS-Ⅱ的移植 225
8.5.1 移植 225
8.5.2 產生可重入代碼 225
8.5.3 設置與處理器和編譯器相關的代碼 226
8.5.4 與操作系統(tǒng)相關的函數 226
8.5.5 時鐘節(jié)拍中斷 227
8.5.6 移植測試 227
習題8 227
附錄 應用參考例題 228
參考文獻 258