STM8S系列單片機(jī)原理與應(yīng)用(第四版)
定 價:63 元
- 作者:潘永雄
- 出版時間:2022/5/13
- ISBN:9787560662855
- 出 版 社:西安電子科技大學(xué)出版社
- 中圖法分類:TP368.1
- 頁碼:432
- 紙張:
- 版次:1
- 開本:16開
本書以ST公司STM8S系列單片機(jī)原理與應(yīng)用為主線,系統(tǒng)介紹了STM8內(nèi)核MCU芯片的指令系統(tǒng),簡要描述了其常用內(nèi)嵌外設(shè)結(jié)構(gòu)、功能以及基本的使用方法,詳細(xì)介紹了基于STM8S系列MCU芯片應(yīng)用系統(tǒng)的硬件組成、開發(fā)手段與設(shè)備等。書中盡量避免過多地介紹程序設(shè)計方法和技巧,著重介紹硬件資源及使用方法、系統(tǒng)構(gòu)成及連接;注重典型性和代表性,以期達(dá)到舉一反三的效果;在內(nèi)容安排上,力求兼顧基礎(chǔ)性、實用性。
本書可作為高等學(xué)校電子信息類專業(yè)“單片機(jī)原理與應(yīng)用”“單片機(jī)原理與接口技術(shù)”課程的教材,亦可供從事單片機(jī)技術(shù)開發(fā)、應(yīng)用的工程技術(shù)人員參考。
《STM8S系列單片機(jī)原理與應(yīng)用(第三版)》出版后,在三年多的時間里,數(shù)字IC芯片生產(chǎn)工藝、單片機(jī)技術(shù)等都有了較大的進(jìn)步。為此,在保留前三版架構(gòu)及篇幅基本不變的前提下,我們對第三版的內(nèi)容做了全面修改與調(diào)整,并逐字逐句糾正了一些不當(dāng)?shù)谋硎觯饕抻唭?nèi)容如下:
(1) 鑒于STM8L系列芯片已逐步成為STM8內(nèi)核MCU的主流芯片,為此重寫了第2章,并增加了“第12章 STM8L系列MCU芯片簡介”。第12章簡要介紹了STM8L系列芯片外設(shè)與STM8S系列芯片外設(shè)的差異,重點介紹了STM8L系列芯片新增外設(shè)的功能和使用方法,使讀者在理解STM8S系列芯片多數(shù)部件功能與用法的基礎(chǔ)上,能迅速掌握STM8L系列芯片的應(yīng)用技能。
(2) 為使讀者容易理解STM8L系列芯片定時器的功能和使用方法,重寫了第7章與高級控制定時器TIM1功能有關(guān)的內(nèi)容,并新增了8位定時器、自動喚醒及蜂鳴器等部件的使用方法。
(3) 為使讀者迅速掌握STVD開發(fā)工具的使用技能,重寫了第5章的大部分內(nèi)容。
(4) 重寫了第8章UART、SPI串行通信接口部件。
(5) 刪除了第10章中讀者可自行編寫的LCD顯示驅(qū)動程序?qū)嵗?
(6) 在第11章中增加了低功耗模式介紹及其使用方法。
(7) 重寫、補(bǔ)充了書中大部分實例的驅(qū)動程序,進(jìn)一步強(qiáng)化了重要實例的實用性、通用性、可移植性。
(8) 補(bǔ)充并修改了書中部分圖表內(nèi)容,以體現(xiàn)數(shù)字IC芯片技術(shù)與生產(chǎn)工藝的進(jìn)步,引導(dǎo)讀者在構(gòu)建單片機(jī)應(yīng)用系統(tǒng)過程中,能正確、合理地選擇MCU應(yīng)用系統(tǒng)的外圍芯片。
(9) 進(jìn)一步補(bǔ)充、完善了各章的習(xí)題。
盡管我們力求做到盡善盡美,但由于水平有限,書中錯漏在所難免,懇請讀者繼續(xù)批評指正。
作 者
2021年10月
第1章 基礎(chǔ)知識 1
1.1 計算機(jī)的基本認(rèn)識 1
1.1.1 計算機(jī)系統(tǒng)的內(nèi)部結(jié)構(gòu)及其
工作過程 3
1.1.2 指令、指令系統(tǒng)及程序 8
1.2 尋址方式 14
1.3 單片機(jī)及其發(fā)展概況 15
1.3.1 單片機(jī)芯片特征 15
1.3.2 單片機(jī)技術(shù)現(xiàn)狀 17
習(xí)題1 20
第2章 STM8內(nèi)核MCU芯片
基本功能 21
2.1 STM8內(nèi)核MCU芯片概述 21
2.1.1 STM8S系列MCU芯片概述 22
2.1.2 STM8L系列MCU芯片概述 23
2.1.3 STM8A系列MCU芯片概述 24
2.2 STM8S系列MCU芯片內(nèi)部結(jié)構(gòu) 24
2.2.1 STM8內(nèi)核CPU芯片 26
2.2.2 STM8S系列MCU芯片封裝與
引腳排列 28
2.3 通用I/O口GPIO(General
Purpose I/O Port) 30
2.3.1 I/O引腳結(jié)構(gòu) 31
2.3.2 I/O口數(shù)據(jù)寄存器與
控制寄存器 32
2.3.3 輸入模式 33
2.3.4 輸出模式 34
2.3.5 多重復(fù)用引腳的選擇 35
2.3.6 I/O引腳初始化特例 35
2.3.7 I/O引腳負(fù)載能力 36
2.4 STM8S系列MCU芯片供電及濾波 37
2.5 復(fù)位電路 39
2.5.1 復(fù)位狀態(tài)寄存器RST_SR 40
2.5.2 外部復(fù)位電路 41
2.6 時鐘電路 42
2.6.1 內(nèi)部高速RC振蕩器時鐘源HSI 43
2.6.2 內(nèi)部低速RC振蕩器時鐘源LSI 44
2.6.3 外部高速時鐘源HSE 45
2.6.4 時鐘源切換 46
2.6.5 時鐘安全系統(tǒng)(CSS) 48
2.6.6 時鐘輸出 48
2.6.7 時鐘初始化過程及特例 49
習(xí)題2 50
第3章 存儲器系統(tǒng)及訪問 52
3.1 存儲器結(jié)構(gòu) 52
3.1.1 隨機(jī)讀寫RAM存儲區(qū) 54
3.1.2 Flash ROM存儲區(qū) 54
3.1.3 數(shù)據(jù)E2PROM 存儲區(qū) 55
3.1.4 硬件配置選項區(qū) 55
3.1.5 通用I/O端口及外設(shè)寄存器區(qū) 57
3.1.6 唯一ID號存儲區(qū) 57
3.2 存儲器讀寫保護(hù) 57
3.2.1 存儲器讀保護(hù)(ROP) 57
3.2.2 存儲器寫保護(hù) 57
3.3 ROM存儲器的IAP編程 58
3.3.1 字節(jié)編程 58
3.3.2 字編程 63
3.3.3 塊編程 69
習(xí)題3 72
第4章 STM8內(nèi)核CPU指令系統(tǒng) 73
4.1 ST匯編語言格式及其偽指令 73
4.1.1 ST匯編常數(shù)表示法 73
4.1.2 ST匯編語言格式 74
4.1.3 ST匯編支持的關(guān)系運(yùn)算符 75
4.1.4 ST匯編偽指令(Pseudoinstruction) 76
4.2 STM8內(nèi)核CPU尋址方式 81
4.2.1 立即數(shù)尋址
(Immediate Addressing) 82
4.2.2 寄存器尋址(Register Addressing) 82
4.2.3 直接尋址(Direct Addressing) 83
4.2.4 寄存器間接尋址
(Indirect Addressing) 83
4.2.5 變址尋址(Indexed Addressing) 83
4.2.6 以存儲單元作間址的間接
尋址方式 84
4.2.7 復(fù)合尋址方式 85
4.2.8 相對尋址(Relative Addressing) 86
4.2.9 隱含尋址(Inherent Addressing) 86
4.2.10 位尋址(Bit Addressing) 86
4.3 STM8內(nèi)核CPU匯編指令 87
4.3.1 數(shù)據(jù)傳送(Load and Transfer)指令 87
4.3.2 算術(shù)運(yùn)算(Arithmetic Operations)
指令 96
4.3.3 增量/減量(Increment/Decrement)
指令 107
4.3.4 邏輯運(yùn)算(Logical Operations)
指令 110
4.3.5 位操作(Bit Operation)指令 112
4.3.6 移位操作(Shift and Rotates)指令 115
4.3.7 比較(Compare)指令 117
4.3.8 正負(fù)或零測試(Tests)指令 118
4.3.9 控制及轉(zhuǎn)移(Jump and Branch)
指令 119
習(xí)題4 126
第5章 匯編語言程序設(shè)計 128
5.1 STVD開發(fā)環(huán)境與STM8匯編語言
程序結(jié)構(gòu) 128
5.1.1 在STVD開發(fā)環(huán)境中創(chuàng)建工作站
文件 128
5.1.2 STVD自動創(chuàng)建項目文件內(nèi)容 130
5.1.3 完善STVD自動創(chuàng)建的項目
文件內(nèi)容 133
5.1.4 在項目文件中添加其他文件 138
5.2 STM8匯編程序結(jié)構(gòu) 138
5.2.1 子程序與中斷服務(wù)程序在
主模塊內(nèi) 139
5.2.2 子程序與中斷服務(wù)程序在
各自模塊內(nèi) 140
5.2.3 大部分子程序嵌入主模塊中的
混合結(jié)構(gòu) 142
5.2.4 子程序結(jié)構(gòu) 142
5.3 程序基本結(jié)構(gòu) 144
5.3.1 順序程序結(jié)構(gòu) 144
5.3.2 循環(huán)程序結(jié)構(gòu) 147
5.3.3 分支程序結(jié)構(gòu) 147
5.4 多任務(wù)程序結(jié)構(gòu)及實現(xiàn) 149
5.4.1 串行多任務(wù)程序結(jié)構(gòu) 149
5.4.2 并行多任務(wù)程序結(jié)構(gòu) 150
5.5 程序仿真與調(diào)試 154
習(xí)題5 158
第6章 STM8S系列MCU芯片中斷
控制系統(tǒng) 159
6.1 CPU與外設(shè)通信方式概述 159
6.1.1 查詢方式 159
6.1.2 中斷傳輸方式 159
6.2 STM8S系列MCU芯片中斷系統(tǒng) 161
6.2.1 中斷源及其優(yōu)先級 161
6.2.2 中斷響應(yīng)條件與處理過程 165
6.2.3 外中斷源及其初始化 166
6.2.4 中斷服務(wù)程序結(jié)構(gòu) 168
6.2.5 中斷服務(wù)程序執(zhí)行時間的控制 169
習(xí)題6 171
第7章 STM8S系列MCU芯片
定時器 172
7.1 高級控制定時器TIM1結(jié)構(gòu) 173
7.2 TIM1時基單元 174
7.2.1 16位預(yù)分頻器TIM1_PSCR 175
7.2.2 16位計數(shù)器TIM1_CNTR 175
7.2.3 16位自動重裝寄存器
TIM1_ARR 176
7.2.4 計數(shù)方式 177
7.2.5 重復(fù)計數(shù)器TIM1_RCR 180
7.2.6 更新事件(UEV)與更新中斷(UIF)
控制邏輯 181
7.3 TIM1時鐘及觸發(fā)控制 182
7.3.1 主時鐘信號 183
7.3.2 外部時鐘模式1 185
7.3.3 外部時鐘模式2 187
7.3.4 觸發(fā)同步 189
7.3.5 觸發(fā)輸出信號TRGO 190
7.4 捕獲/比較通道 191
7.4.1 輸入模塊內(nèi)部結(jié)構(gòu) 192
7.4.2 輸入捕獲初始化與操作舉例 193
7.4.3 輸出比較模式的內(nèi)部結(jié)構(gòu) 197
7.4.4 輸出比較初始化舉例 202
7.5 定時器中斷控制 206
7.6 通用定時器TIM2/TIM3 206
7.6.1 通用定時器TIM2/TIM3的
內(nèi)部結(jié)構(gòu) 206
7.6.2 通用定時器時基單元 207
7.6.3 通用定時器輸入捕獲/輸出比較 207
7.6.4 通用定時器TIM2/TIM3
初始化舉例 209
7.7 8位定時器TIM4與TIM6 211
7.8 窗口看門狗定時器WWDG 211
7.8.1 窗口看門狗定時器結(jié)構(gòu)及其
溢出時間 212
7.8.2 窗口看門狗定時器初始化 213
7.8.3 在HALT狀態(tài)下WWDG定時器的
活動 214
7.9 硬件看門狗定時器IWDG 214
7.9.1 硬件看門狗定時器結(jié)構(gòu) 214
7.9.2 硬件看門狗定時器控制與
初始化 215
7.10 自動喚醒(AWU) 217
7.11 蜂鳴器(BEEP)輸出信號 219
習(xí)題7 220
第8章 STM8S系列MCU芯片
串行通信 222
8.1 串行通信的概念 222
8.1.1 串行通信的種類 223
8.1.2 波特率 224
8.1.3 串行通信數(shù)據(jù)傳輸方向 224
8.1.4 串行通信接口種類 225
8.2 UART串行通信接口 225
8.2.1 波特率設(shè)置 228
8.2.2 信息幀格式 229
8.2.3 奇偶校驗選擇 230
8.2.4 數(shù)據(jù)發(fā)送/接收過程 230
8.2.5 多機(jī)通信 236
8.2.6 UART同步模式 239
8.2.7 UART串行通信的初始化步驟 241
8.3 RS-232C串行接口標(biāo)準(zhǔn)及應(yīng)用 242
8.3.1 RS-232C的引腳功能 242
8.3.2 RS-232C串行接口標(biāo)準(zhǔn)中主信道
重要信號的含義 243
8.3.3 電平轉(zhuǎn)換 244
8.3.4 RS-232C的連接 245
8.3.5 通信協(xié)議及約定 246
8.4 RS-422/RS-485總線 247
8.4.1 RS-422接口標(biāo)準(zhǔn) 247
8.4.2 RS-485標(biāo)準(zhǔn) 248
8.4.3 RS-422/RS-485標(biāo)準(zhǔn)性能指標(biāo) 249
8.4.4 RS-485/RS-422接口標(biāo)準(zhǔn)
芯片簡介 249
8.4.5 RS-485/RS-422通信接口
實際電路 251
8.4.6 避免總線沖突方式 251
8.5 串行外設(shè)接口(SPI) 252
8.5.1 STM8內(nèi)核MCU芯片SPI總線
接口部件結(jié)構(gòu) 253
8.5.2 STM8內(nèi)核MCU芯片SPI總線
接口部件功能 254
8.5.3 STM8內(nèi)核MCU芯片SPI接口部件的
初始化 263
習(xí)題8 265
第9章 A/D轉(zhuǎn)換器及其使用 266
9.1 ADC概述 266
9.2 ADC功能選擇 267
9.2.1 分辨率與轉(zhuǎn)換精度 267
9.2.2 轉(zhuǎn)換方式選擇 268
9.2.3 轉(zhuǎn)換速度設(shè)置 271
9.2.4 觸發(fā)方式 271
9.3 ADC初始化過程舉例 272
9.4 提高A/D的轉(zhuǎn)換精度與轉(zhuǎn)換的
可靠性 274
9.5 軟件濾波 277
9.5.1 算術(shù)平均濾波法 277
9.5.2 滑動平均濾波法 278
9.5.3 中值法 278
9.5.4 數(shù)字濾波 281
習(xí)題9 284
第10章 數(shù)字信號輸入/輸出
接口電路 285
10.1 開關(guān)信號的輸入/輸出方式 285
10.2 I/O資源及擴(kuò)展 287
10.2.1 擴(kuò)展STM8系統(tǒng)I/O引腳資源的
策略 288
10.2.2 利用串入并出及并入串出芯片
擴(kuò)展I/O引腳 288
10.2.3 利用MCU芯片擴(kuò)展I/O 291
10.3 STM8芯片與總線接口設(shè)備的連接 292
10.4 LED簡單顯示驅(qū)動電路 293
10.4.1 發(fā)光二極管 294
10.4.2 驅(qū)動電路 295
10.4.3 LED顯示狀態(tài)及同步 296
10.5 LED數(shù)碼管及其顯示驅(qū)動電路 301
10.5.1 LED數(shù)碼管 301
10.5.2 LED數(shù)碼顯示器接口電路 302
10.5.3 LED點陣顯示器及其接口電路 321
10.6 LCD模塊顯示驅(qū)動電路 321
10.7 鍵盤電路 323
10.7.1 按鍵結(jié)構(gòu)與按鍵電壓波形 323
10.7.2 鍵盤電路形式 325
10.7.3 鍵盤按鍵編碼 328
10.7.4 鍵盤監(jiān)控方式 329
10.8 光電耦合器件接口電路 346
10.9 單片機(jī)與繼電器接口電路 348
習(xí)題10 350
第11章 STM8S系列MCU應(yīng)用
系統(tǒng)設(shè)計 351
11.1 硬件設(shè)計 351
11.1.1 硬件資源分配 352
11.1.2 硬件可靠性設(shè)計 353
11.1.3 元器件選擇原則 354
11.1.4 印制電路設(shè)計原則 356
11.2 軟件設(shè)計 358
11.2.1 存儲器資源分配 358
11.2.2 程序語言及程序結(jié)構(gòu)的選擇 358
11.3 STM8內(nèi)核芯片提供的可靠性功能 359
11.3.1 提高晶振電路的可靠性 359
11.3.2 使用存儲器安全機(jī)制保護(hù)程序
代碼不被意外改寫 359
11.3.3 看門狗計數(shù)器 360
11.4 軟件可靠性設(shè)計 360
11.4.1 PC“跑飛”及其后果 360
11.4.2 降低PC“跑飛”對系統(tǒng)的
影響 362
11.4.3 PC“跑飛”攔截技術(shù) 363
11.4.4 檢查并消除STM8指令碼中的
高危字節(jié) 369
11.4.5 提高信號輸入/輸出的可靠性 369
11.4.6 程序中所用指令必須嚴(yán)謹(jǐn)、
規(guī)范 370
11.4.7 增加芯片硬件自檢功能 371
11.5 低功耗設(shè)計 372
11.5.1 等待模式 372
11.5.2 活躍停機(jī)模式 373
11.5.3 停機(jī)模式 374
習(xí)題11 375
第12章 STM8L系列MCU芯片
簡介 376
12.1 電源及復(fù)位電路 376
12.1.1 電源電路 376
12.1.2 復(fù)位電路 377
12.1.3 可編程的電源電壓監(jiān)視器
(PVD) 378
12.2 I/O引腳與外設(shè)多重復(fù)用引腳的
配置 378
12.2.1 數(shù)字信號多重復(fù)用引腳配置
(系統(tǒng)配置) 379
12.2.2 模擬輸入/輸出信號多重復(fù)用引腳
配置(路由接口配置) 379
12.2.3 8引腳封裝芯片 381
12.3 時鐘電路 382
12.3.1 時鐘電路簡介 382
12.3.2 復(fù)位后時鐘切換舉例 384
12.4 存儲器組織 385
12.5 中斷控制系統(tǒng) 386
12.5.1 中斷資源 386
12.5.2 外中斷控制 387
12.6 DMA控制器 388
12.6.1 DMA控制器的結(jié)構(gòu)及
主要功能 389
12.6.2 DMA控制器工作模式 390
12.6.3 DMA控制器的初始化步驟 392
12.7 定時器 394
12.7.1 高級定時器TIM1 395
12.7.2 通用定時器 396
12.7.3 8位定時器TIM4 397
12.7.4 看門狗定時器 398
12.7.5 蜂鳴器(BEEP)輸出信號 398
12.7.6 喚醒定時器WUT及RTC
單元時鐘 399
12.8 模數(shù)轉(zhuǎn)換器(ADC) 402
12.8.1 A/D轉(zhuǎn)換方式 404
12.8.2 ADC的初始化過程及特例 405
12.9 數(shù)模轉(zhuǎn)換器(DAC) 410
12.9.1 DAC的內(nèi)部結(jié)構(gòu) 410
12.9.2 DAC模擬輸出引腳的配置 413
12.9.3 DAC初始化 413
12.10 模擬比較器 417
12.10.1 比較器1的內(nèi)部結(jié)構(gòu) 417
12.10.2 比較器2的內(nèi)部結(jié)構(gòu) 419
12.10.3 由比較器1與比較器2構(gòu)成的
窗口比較器 420
12.11 低功耗模式 421
習(xí)題12 421
參考文獻(xiàn) 422