STM8S系列單片機(jī)原理與應(yīng)用(第四版)
定 價(jià):63 元
- 作者:潘永雄
- 出版時(shí)間: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è)計(jì)方法和技巧,著重介紹硬件資源及使用方法、系統(tǒng)構(gòu)成及連接;注重典型性和代表性,以期達(dá)到舉一反三的效果;在內(nèi)容安排上,力求兼顧基礎(chǔ)性、實(shí)用性。
本書可作為高等學(xué)校電子信息類專業(yè)“單片機(jī)原理與應(yīng)用”“單片機(jī)原理與接口技術(shù)”課程的教材,亦可供從事單片機(jī)技術(shù)開發(fā)、應(yīng)用的工程技術(shù)人員參考。
《STM8S系列單片機(jī)原理與應(yīng)用(第三版)》出版后,在三年多的時(shí)間里,數(shù)字IC芯片生產(chǎn)工藝、單片機(jī)技術(shù)等都有了較大的進(jìn)步。為此,在保留前三版架構(gòu)及篇幅基本不變的前提下,我們對(duì)第三版的內(nèi)容做了全面修改與調(diào)整,并逐字逐句糾正了一些不當(dāng)?shù)谋硎,主要修訂?nèi)容如下:
(1) 鑒于STM8L系列芯片已逐步成為STM8內(nèi)核MCU的主流芯片,為此重寫了第2章,并增加了“第12章 STM8L系列MCU芯片簡介”。第12章簡要介紹了STM8L系列芯片外設(shè)與STM8S系列芯片外設(shè)的差異,重點(diǎn)介紹了STM8L系列芯片新增外設(shè)的功能和使用方法,使讀者在理解STM8S系列芯片多數(shù)部件功能與用法的基礎(chǔ)上,能迅速掌握STM8L系列芯片的應(yīng)用技能。
(2) 為使讀者容易理解STM8L系列芯片定時(shí)器的功能和使用方法,重寫了第7章與高級(jí)控制定時(shí)器TIM1功能有關(guān)的內(nèi)容,并新增了8位定時(shí)器、自動(dòng)喚醒及蜂鳴器等部件的使用方法。
(3) 為使讀者迅速掌握STVD開發(fā)工具的使用技能,重寫了第5章的大部分內(nèi)容。
(4) 重寫了第8章UART、SPI串行通信接口部件。
(5) 刪除了第10章中讀者可自行編寫的LCD顯示驅(qū)動(dòng)程序?qū)嵗?
(6) 在第11章中增加了低功耗模式介紹及其使用方法。
(7) 重寫、補(bǔ)充了書中大部分實(shí)例的驅(qū)動(dòng)程序,進(jìn)一步強(qiáng)化了重要實(shí)例的實(shí)用性、通用性、可移植性。
(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í)題。
盡管我們力求做到盡善盡美,但由于水平有限,書中錯(cuò)漏在所難免,懇請(qǐng)讀者繼續(xù)批評(píng)指正。
作 者
2021年10月
第1章 基礎(chǔ)知識(shí) 1
1.1 計(jì)算機(jī)的基本認(rèn)識(shí) 1
1.1.1 計(jì)算機(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 時(shí)鐘電路 42
2.6.1 內(nèi)部高速RC振蕩器時(shí)鐘源HSI 43
2.6.2 內(nèi)部低速RC振蕩器時(shí)鐘源LSI 44
2.6.3 外部高速時(shí)鐘源HSE 45
2.6.4 時(shí)鐘源切換 46
2.6.5 時(shí)鐘安全系統(tǒng)(CSS) 48
2.6.6 時(shí)鐘輸出 48
2.6.7 時(shí)鐘初始化過程及特例 49
習(xí)題2 50
第3章 存儲(chǔ)器系統(tǒng)及訪問 52
3.1 存儲(chǔ)器結(jié)構(gòu) 52
3.1.1 隨機(jī)讀寫RAM存儲(chǔ)區(qū) 54
3.1.2 Flash ROM存儲(chǔ)區(qū) 54
3.1.3 數(shù)據(jù)E2PROM 存儲(chǔ)區(qū) 55
3.1.4 硬件配置選項(xiàng)區(qū) 55
3.1.5 通用I/O端口及外設(shè)寄存器區(qū) 57
3.1.6 唯一ID號(hào)存儲(chǔ)區(qū) 57
3.2 存儲(chǔ)器讀寫保護(hù) 57
3.2.1 存儲(chǔ)器讀保護(hù)(ROP) 57
3.2.2 存儲(chǔ)器寫保護(hù) 57
3.3 ROM存儲(chǔ)器的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 以存儲(chǔ)單元作間址的間接
尋址方式 84
4.2.7 復(fù)合尋址方式 85
4.2.8 相對(duì)尋址(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ù)或零測(cè)試(Tests)指令 118
4.3.9 控制及轉(zhuǎn)移(Jump and Branch)
指令 119
習(xí)題4 126
第5章 匯編語言程序設(shè)計(jì) 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自動(dòng)創(chuàng)建項(xiàng)目文件內(nèi)容 130
5.1.3 完善STVD自動(dòng)創(chuàng)建的項(xiàng)目
文件內(nèi)容 133
5.1.4 在項(xiàng)目文件中添加其他文件 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)及實(shí)現(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)先級(jí) 161
6.2.2 中斷響應(yīng)條件與處理過程 165
6.2.3 外中斷源及其初始化 166
6.2.4 中斷服務(wù)程序結(jié)構(gòu) 168
6.2.5 中斷服務(wù)程序執(zhí)行時(shí)間的控制 169
習(xí)題6 171
第7章 STM8S系列MCU芯片
定時(shí)器 172
7.1 高級(jí)控制定時(shí)器TIM1結(jié)構(gòu) 173
7.2 TIM1時(shí)基單元 174
7.2.1 16位預(yù)分頻器TIM1_PSCR 175
7.2.2 16位計(jì)數(shù)器TIM1_CNTR 175
7.2.3 16位自動(dòng)重裝寄存器
TIM1_ARR 176
7.2.4 計(jì)數(shù)方式 177
7.2.5 重復(fù)計(jì)數(shù)器TIM1_RCR 180
7.2.6 更新事件(UEV)與更新中斷(UIF)
控制邏輯 181
7.3 TIM1時(shí)鐘及觸發(fā)控制 182
7.3.1 主時(shí)鐘信號(hào) 183
7.3.2 外部時(shí)鐘模式1 185
7.3.3 外部時(shí)鐘模式2 187
7.3.4 觸發(fā)同步 189
7.3.5 觸發(fā)輸出信號(hào)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 定時(shí)器中斷控制 206
7.6 通用定時(shí)器TIM2/TIM3 206
7.6.1 通用定時(shí)器TIM2/TIM3的
內(nèi)部結(jié)構(gòu) 206
7.6.2 通用定時(shí)器時(shí)基單元 207
7.6.3 通用定時(shí)器輸入捕獲/輸出比較 207
7.6.4 通用定時(shí)器TIM2/TIM3
初始化舉例 209
7.7 8位定時(shí)器TIM4與TIM6 211
7.8 窗口看門狗定時(shí)器WWDG 211
7.8.1 窗口看門狗定時(shí)器結(jié)構(gòu)及其
溢出時(shí)間 212
7.8.2 窗口看門狗定時(shí)器初始化 213
7.8.3 在HALT狀態(tài)下WWDG定時(shí)器的
活動(dòng) 214
7.9 硬件看門狗定時(shí)器IWDG 214
7.9.1 硬件看門狗定時(shí)器結(jié)構(gòu) 214
7.9.2 硬件看門狗定時(shí)器控制與
初始化 215
7.10 自動(dòng)喚醒(AWU) 217
7.11 蜂鳴器(BEEP)輸出信號(hào) 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 奇偶校驗(yàn)選擇 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)中主信道
重要信號(hào)的含義 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通信接口
實(shí)際電路 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 滑動(dòng)平均濾波法 278
9.5.3 中值法 278
9.5.4 數(shù)字濾波 281
習(xí)題9 284
第10章 數(shù)字信號(hào)輸入/輸出
接口電路 285
10.1 開關(guān)信號(hào)的輸入/輸出方式 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ū)動(dòng)電路 293
10.4.1 發(fā)光二極管 294
10.4.2 驅(qū)動(dòng)電路 295
10.4.3 LED顯示狀態(tài)及同步 296
10.5 LED數(shù)碼管及其顯示驅(qū)動(dòng)電路 301
10.5.1 LED數(shù)碼管 301
10.5.2 LED數(shù)碼顯示器接口電路 302
10.5.3 LED點(diǎn)陣顯示器及其接口電路 321
10.6 LCD模塊顯示驅(qū)動(dòng)電路 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è)計(jì) 351
11.1 硬件設(shè)計(jì) 351
11.1.1 硬件資源分配 352
11.1.2 硬件可靠性設(shè)計(jì) 353
11.1.3 元器件選擇原則 354
11.1.4 印制電路設(shè)計(jì)原則 356
11.2 軟件設(shè)計(jì) 358
11.2.1 存儲(chǔ)器資源分配 358
11.2.2 程序語言及程序結(jié)構(gòu)的選擇 358
11.3 STM8內(nèi)核芯片提供的可靠性功能 359
11.3.1 提高晶振電路的可靠性 359
11.3.2 使用存儲(chǔ)器安全機(jī)制保護(hù)程序
代碼不被意外改寫 359
11.3.3 看門狗計(jì)數(shù)器 360
11.4 軟件可靠性設(shè)計(jì) 360
11.4.1 PC“跑飛”及其后果 360
11.4.2 降低PC“跑飛”對(duì)系統(tǒng)的
影響 362
11.4.3 PC“跑飛”攔截技術(shù) 363
11.4.4 檢查并消除STM8指令碼中的
高危字節(jié) 369
11.4.5 提高信號(hào)輸入/輸出的可靠性 369
11.4.6 程序中所用指令必須嚴(yán)謹(jǐn)、
規(guī)范 370
11.4.7 增加芯片硬件自檢功能 371
11.5 低功耗設(shè)計(jì) 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ù)字信號(hào)多重復(fù)用引腳配置
(系統(tǒng)配置) 379
12.2.2 模擬輸入/輸出信號(hào)多重復(fù)用引腳
配置(路由接口配置) 379
12.2.3 8引腳封裝芯片 381
12.3 時(shí)鐘電路 382
12.3.1 時(shí)鐘電路簡介 382
12.3.2 復(fù)位后時(shí)鐘切換舉例 384
12.4 存儲(chǔ)器組織 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 定時(shí)器 394
12.7.1 高級(jí)定時(shí)器TIM1 395
12.7.2 通用定時(shí)器 396
12.7.3 8位定時(shí)器TIM4 397
12.7.4 看門狗定時(shí)器 398
12.7.5 蜂鳴器(BEEP)輸出信號(hào) 398
12.7.6 喚醒定時(shí)器WUT及RTC
單元時(shí)鐘 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