《STM8S系列單片機原理與套用(第二版)》是2015年西安電子科技大學出版社出版的圖書,作者是潘永雄。
基本介紹
- 書名:STM8S系列單片機原理與套用(第二版)
- 作者:潘永雄
- 出版社:西安電子科技大學出版社
- 出版時間:2015年02月
- 定價:34 元
- ISBN:978-7-5606-3671-9
內容簡介,目錄,
內容簡介
本書以ST公司STM8S系列單片機原理與套用為主線,系統介紹了STM8核心MCU晶片的指令系統,簡要描述了其常用內嵌外設結構、功能以及基本的使用方法,詳細介紹了基於STM8S系列晶片套用系統的硬體組成、開發手段與設備等。在編寫過程中,儘量避免過多地介紹程式設計方法和技巧,著重介紹硬體資源及使用方法、系統構成及連線;注重典型性和代表性,以期達到舉一反三的效果。在內容安排上,力求兼顧基礎性、實用性。
目錄
第1章 基礎知識 1
1.1 計算機的基本認識 1
1.1.1 計算機系統的工作過程及其內部結構 3
1.1.2 指令、指令系統及程式 8
1.2 定址方式 14
1.3 單片機及其發展概況 14
1.3.1 單片機及其特點 15
1.3.2 單片機技術現狀及將來發展趨勢 16
習題1 20
第2章 STM8S系列MCU晶片內部結構 21
2.1 STM8S系列MCU性能概述 21
2.2 STM8S系列MCU內部結構 23
2.2.1 STM8 核心CPU 24
2.2.2 STM8S系列晶片封裝與引腳排列 26
2.3 通用I/O口GPIO(General Purpose I/O Port) 29
2.3.1 I/O引腳結構 30
2.3.3 輸入模式 32
2.3.4 輸出模式 32
2.3.5 多重複用引腳的選擇 33
2.3.6 I/O引腳初始化特例 33
2.3.7 I/O引腳負載能力 34
2.4 STM8S的電源供電及濾波 35
2.5 復位電路 37
2.5.1 復位狀態暫存器RST_SR 38
2.5.2 外部復位電路 39
2.6 時鐘電路 40
2.6.1 內部高速RC振盪器時鐘源HSI 41
2.6.2 內部低速RC振盪器時鐘源LSI 42
2.6.3 外部高速時鐘源HSE 42
2.6.4 時鐘源切換 43
2.6.5 時鐘安全系統(CSS) 45
2.6.6 時鐘輸出 46
2.6.7 時鐘初始化過程及特例 46
習題2 47
第3章 存儲器系統及訪問 48
3.1 存儲器結構 48
3.1.1 隨機讀寫RAM存儲區 49
3.1.2 Flash ROM存儲區 50
3.1.3 數據EEPROM存儲區 51
3.1.4 硬體配置選項區 51
3.1.5 通用I/O連線埠及外設暫存器區 52
3.1.6 唯一ID號存儲區 52
3.2 存儲器讀防寫與控制暫存器 52
3.2.1 存儲器讀保護(ROP)選擇 52
3.2.2 存儲器防寫 52
3.2.3 存儲器控制暫存器 53
3.3 Flash ROM存儲器IAP編程 55
3.3.1 位元組編程 55
3.3.2 字編程 60
3.3.3 塊編程 66
習題3 69
第4章 STM8核心CPU指令系統 70
4.1 ST彙編語言格式及其偽指令 70
4.1.1 ST彙編常數表示法 70
4.1.2 ST彙編語言格式 71
4.1.3 ST彙編支持的關係運算符 72
4.1.4 ST彙編偽指令(Pseudoinstruction) 73
4.2 STM8定址方式 79
4.2.1 立即定址(Immediate) 79
4.2.2 暫存器定址 80
4.2.3 直接定址(Direct) 80
4.2.4 暫存器間接定址(Indirect) 80
4.2.5 變址定址(Indexed) 80
4.2.6 以存儲單元作間址的間接定址方式 81
4.2.7 複合定址方式 82
4.2.8 相對定址(Relative) 83
4.2.9 隱含定址(Inherent) 83
4.2.10 位定址(Bit) 83
4.3 STM8指令系統 84
4.3.1 數據傳送(Load and Transfer)指令 84
4.3.2 算術運算(Arithmetic operations)指令 92
4.3.3 增量/減量(Increment/Decrement)指令 104
4.3.4 邏輯運算(Logical operations)指令 105
4.3.5 位操作(Bit Operation)指令 108
4.3.6 移位操作(Shift and Rotates)指令 110
4.3.7 比較(Compare)指令 113
4.3.8 正負或零測試(Tests)指令 114
4.3.9 控制及轉移(Jump and Branch)指令 114
習題4 121
第5章 彙編語言程式設計 123
5.1 STVD開發環境與STM8彙編語言程式結構 123
5.1.1 STVD開發環境中創建工作站檔案 123
5.1.2 STVD自動創建項目檔案內容 125
5.1.3 完善STVD自動創建的項目檔案內容 128
5.1.4 在項目檔案中添加其他檔案 132
5.2 STM8彙編程式結構 132
5.2.1 子程式與中斷服務程式在主模組內 132
5.2.2 子程式與中斷服務程式在各自模組內 134
5.2.3 子程式結構 135
5.3 程式基本結構 136
5.3.1 順序結構 136
5.3.2 循環結構 140
5.3.3 分支程式結構 140
5.4 並行多任務程式結構及實現 145
5.4.1 串列多任務程式結構與並行多任務程式結構 145
5.4.2 並行多任務程式結構 146
5.5 程式仿真與調試 150
習題5 153
第6章 STM8中斷控制系統 154
6.1 CPU與外設通信方式概述 154
6.1.1 查詢方式 154
6.1.2 中斷通信方式 154
6.2 STM8S中斷系統 155
6.2.1 中斷源及其優先權 155
6.2.2 中斷回響條件與處理過程 159
6.2.3 外中斷源及其初始化 160
6.2.4 中斷服務程式結構 162
6.2.5 中斷服務程式執行時間控制 162
小結 163
習題 6 163
第7章 STM8S系列MCU定時器 164
7.1 高級控制定時器TIM1結構 165
7.2 TIM1時基單元 166
7.2.1 16位預分頻器TIM1_PSCR 167
7.2.2 16位計數器TIM1_CNTR 167
7.2.3 16位自動裝載暫存器TIM1_ARR 168
7.2.4 計數方式 169
7.2.5 重複計數器TIM1_RCR 172
7.2.6 更新事件(UEV)與更新中斷(UIF)控制邏輯 172
7.3 TIM1時鐘及觸發控制 173
7.3.1 主時鐘觸發信號 174
7.3.2 外部時鐘模式1 175
7.3.3 外部時鐘模式2 177
7.3.4 觸發同步 178
7.4 捕獲/比較通道 178
7.4.1 輸入模組內部結構 179
7.4.2 輸入捕獲初始化與操作舉例 180
7.4.3 輸出比較 181
7.4.4 輸出比較初始化舉例 185
7.5 定時器中斷控制 187
7.6 通用定時器TIM2/TIM3 187
7.6.1 通用定時器TIM2/TIM3結構 188
7.6.2 通用定時器時基單元 188
7.6.3 通用定時器輸入捕獲/輸出比較 189
7.6.4 通用定時器TIM2/TIM3初始化舉例 190
7.7 視窗看門狗定時器WWDG 193
7.7.1 視窗看門狗定時器結構及其溢出時間 193
7.7.2 視窗看門狗定時器初始化 194
7.7.3 在Halt狀態下WWDG定時器的活動 195
7.8 硬體看門狗定時器IWDG 195
7.8.1 硬體看門狗定時器結構 195
7.8.2 硬體看門狗定時器控制與初始化 196
習題7 198
第8章 STM8S MCU串列通信 199
8.1 串列通信的概念 199
8.1.1 串列通信的種類 200
8.1.2 波特率 201
8.1.3 串列通信數據傳輸方向 201
8.1.4 串列通信接口的種類 202
8.2 UART串列通信接口 202
8.2.1 UART串列通信波特率設定 205
8.2.2 UART串列通信信息幀格式 205
8.2.3 奇偶校驗選擇 206
8.2.4 數據傳送/接收過程 207
8.2.5 多機通信 212
8.2.6 UART同步模式 215
8.2.7 UART串列通信的初始化步驟 217
8.3 RS232C串列接口標準及套用 218
8.3.1 RS232C的引腳功能 218
8.3.2 RS232C串列接口標準中主信道重要信號的含義 219
8.3.3 電平轉換 219
8.3.4 RS232C的連線 220
8.3.5 通信協定及約定 221
8.4 RS422/RS485匯流排 222
8.4.1 RS422接口標準 223
8.4.2 RS485標準 224
8.4.3 RS422/RS485標準性能指標 224
8.4.4 RS485/RS422標準接口晶片簡介 225
8.4.5 RS485/RS422通信接口實際電路 226
8.4.6 避免匯流排衝突方式 227
8.5 串列外設匯流排接口(SPI) 229
8.5.1 STM8S系列晶片SPI接口部件結構 230
8.5.2 STM8S系列晶片SPI接口部件功能 230
8.5.3 STM8S系列晶片SPI接口部件的初始化 236
習題8 238
第9章 ADC轉換器及其使用 239
9.1 ADC轉換器概述 239
9.2 ADC轉換器功能選擇 240
9.2.1 解析度與轉換精度 240
9.2.2 轉換方式選擇 241
9.2.3 轉換速度設定 244
9.2.4 觸發方式 244
9.3 ADC轉換器初始化過程舉例 244
9.4 提高ADC轉換精度與轉換的可靠性 245
9.5 軟體濾波 246
9.5.1 算術平均濾波法 246
9.5.2 滑動平均濾波法 247
9.5.3 中值法 247
9.5.4 數字濾波 247
習題9 251
第10章 數位訊號輸入/輸出接口電路 252
10.1 開關信號的輸入/輸出方式 252
10.2 I/O資源及擴展 254
10.2.1 STM8S系統擴展I/O引腳資源策略 254
10.2.2 利用串入並出及併入串出晶片擴展I/O口 256
10.2.3 利用MCU擴展I/O 257
10.3 STM8S與匯流排接口設備的連線 258
10.4 簡單顯示驅動電路 260
10.4.1 發光二極體 260
10.4.2 驅動電路 261
10.4.3 LED發光二極體顯示狀態及同步 263
10.5 LED數碼管及其顯示驅動電路 267
10.5.1 LED數碼管 267
10.5.2 LED數碼顯示器接口電路 268
10.5.3 LED點陣顯示器及其接口電路 281
10.6 LCD模組顯示驅動電路 286
10.6.1 以T6963C為顯示控制晶片的LCD模組接口及時序 287
10.6.2 T6963C操作命令 289
10.6.3 螢幕像點與顯示RAM之間的對應關係及模組的初始化 295
10.6.4 套用舉例 296
10.7 鍵盤電路 303
10.7.1 按鍵結構與按鍵電壓波形 303
10.7.2 鍵盤電路形式 305
10.7.3 鍵盤按鍵編碼 307
10.7.4 鍵盤監控方式 308
10.8 光電耦合器件接口電路 321
10.9 單片機與繼電器接口電路 323
10.10 電平轉換電路 325
10.10.1 高壓器件驅動低壓器件接口電路 326
10.10.2 低壓器件驅動高壓器件接口電路 327
10.10.3 非軌對軌運放構成的比較器驅動數字IC電路 328
習題10 329
第11章 STM8S套用系統設計 330
11.1 硬體設計 330
11.1.1 硬體資源分配 332
11.1.2 硬體可靠性設計 333
11.1.3 元器件選擇原則 334
11.1.4 印製電路設計原則 335
11.2 軟體設計 337
11.2.1 存儲器資源分配 337
11.2.2 程式語言及程式結構選擇 338
11.3 STM8晶片提供的可靠性功能 338
11.3.1 提高晶振電路的可靠性 339
11.3.2 使用存儲器安全機制保護程式代碼不被意外改寫 339
11.3.3 硬體看門狗 339
11.4 軟體可靠性設計 339
11.4.1 PC“跑飛”及其後果 340
11.4.2 降低PC“跑飛”對系統的影響 341
11.4.3 PC“跑飛”攔截技術 343
11.4.4 檢查並消除STM8指令碼中不需要的關鍵位元組 349
11.4.5 提高信號輸入/輸出的可靠性 350
11.4.6 選擇合適的判別條件提高軟體的可靠性 351
11.4.7 增加晶片硬體自檢功能 352
習題11 353
參考文獻 354