
作者:潘永雄编著
页数:366页
出版社:西安电子科技大学出版社
出版日期:2018
ISBN:9787560650746
电子书格式:pdf/epub/txt
内容简介
本书以ST公司STM8S系列单片机原理与应用为主线,系统介绍了STM8内核MCU芯片的指令系统,简要描述了其常用内嵌外设结构、功能以及基本的使用方法,详细介绍了基于STM8S系列MCU芯片应用系统的硬件组成、开发手段与设备等。在编写过程中,尽量避免过多地介绍程序设计方法和技巧,着重介绍硬件资源及使用方法、系统构成及连接;注重典型性和代表性,以期达到举一反三的效果;在内容安排上,力求兼顾基础性、实用性。
本书可作为高等学校电子信息类专业“单片机原理与应用”、“单片机原理与接口技术”课程的本科教材,亦可供从事单片机技术开发、应用的工程技术人员参考。
本书特色
本书以ST公司STM8S系列单片机原理与应用为主线,系统介绍了STM8内核MCU芯片的指令系统,简要描述了其常用内嵌外设结构、功能以及基本的使用方法,详细介绍了基于STM8S系列MCU芯片应用系统的硬件组成、开发手段与设备等。在编写过程中,尽量避免过多地介绍程序设计方法和技巧,着重介绍硬件资源及使用方法、系统构成及连接;注重典型性和代表性,以期达到举一反三的效果;在内容安排上,力求兼顾基础性、实用性。
本书可作为高等学校电子信息类专业“单片机原理与应用”、“单片机原理与接口技术”课程的本科教材,亦可供从事单片机技术开发、应用的工程技术人员参考。
目录
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.2 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章 存储器系统及访问 49
3.1 存储器结构 49
3.1.1 随机读写RAM存储区 50
3.1.2 Flash ROM存储区 51
3.1.3 数据EEPROM存储区 52
3.1.4 硬件配置选项区 52
3.1.5 通用I/O端口及外设寄存器区 53
3.1.6 唯一ID号存储区 53
3.2 存储器读写保护与控制寄存器 53
3.2.1 存储器读保护(ROP)选择 53
3.2.2 存储器写保护 53
3.2.3 存储器控制寄存器 54
3.3 Flash ROM存储器IAP编程 56
3.3.1 字节编程 56
3.3.2 字编程 61
3.3.3 块编程 68
习题3 70
第4章 STM8内核CPU指令系统 72
4.1 ST汇编语言格式及其伪指令 72
4.1.1 ST汇编常数表示法 72
4.1.2 ST汇编语言格式 73
4.1.3 ST汇编支持的关系运算符 74
4.1.4 ST汇编伪指令(Pseudoinstruction) 75
4.2 STM8寻址方式 81
4.2.1 立即寻址(Immediate) 81
4.2.2 寄存器寻址 82
4.2.3 直接寻址(Direct) 82
4.2.4 寄存器间接寻址(Indirect) 82
4.2.5 变址寻址(Indexed) 82
4.2.6 以存储单元作间址的间接
寻址方式 83
4.2.7 复合寻址方式 84
4.2.8 相对寻址(Relative) 85
4.2.9 隐含寻址(Inherent) 85
4.2.10 位寻址(Bit) 85
4.3 STM8指令系统 86
4.3.1 数据传送(Load and Transfer)指令 86
4.3.2 算术运算(Arithmetic Operations)
指令 95
4.3.3 增量/减量(Increment/Decrement)
指令 106
4.3.4 逻辑运算(Logical Operations)
指令 108
4.3.5 位操作(Bit Operation)指令 110
4.3.6 移位操作(Shift and Rotates)指令 113
4.3.7 比较(Compare)指令 115
4.3.8 正负或零测试(Tests)指令 116
4.3.9 控制及转移(Jump and Branch)
指令 117
习题4 124
第5章 汇编语言程序设计 126
5.1 STVD开发环境与STM8汇编语言
程序结构 126
5.1.1 在STVD开发环境中创建
工作站文件 126
5.1.2 STVD自动创建项目文件内容 128
5.1.3 完善STVD自动创建的项目
文件内容 131
5.1.4 在项目文件中添加其他文件 135
5.2 STM8汇编程序结构 136
5.2.1 子程序与中断服务程序在
主模块内 136
5.2.2 子程序与中断服务程序在各自
模块内 137
5.2.3 子程序结构 138
5.3 程序基本结构 140
5.3.1 顺序结构 140
5.3.2 循环结构 143
5.3.3 分支程序结构 144
5.4 并行多任务程序结构及实现 149
5.4.1 串行多任务程序结构与并行
多任务程序结构 149
5.4.2 并行多任务程序结构 150
5.5 程序仿真与调试 154
习题5 157
第6章 STM8中断控制系统 159
6.1 CPU与外设通信方式概述 159
6.1.1 查询方式 159
6.1.2 中断通信方式 159
6.2 STM8S中断系统 160
6.2.1 中断源及其优先级 160
6.2.2 中断响应条件与处理过程 164
6.2.3 外中断源及其初始化 165
6.2.4 中断服务程序结构 167
6.2.5 中断服务程序执行时间控制 167
小结 168
习题6 168
第7章 STM8S系列MCU定时器 169
7.1 高级控制定时器TIM1结构 170
7.2 TIM1时基单元 171
7.2.1 16位预分频器TIM1_PSCR 172
7.2.2 16位计数器TIM1_CNTR 172
7.2.3 16位自动装载寄存器
TIM1_ARR 173
7.2.4 计数方式 174
7.2.5 重复计数器TIM1_RCR 177
7.2.6 更新事件(UEV)与更新中断(UIF)
控制逻辑 177
7.3 TIM1时钟及触发控制 178
7.3.1 主时钟触发信号 179
7.3.2 外部时钟模式1 180
7.3.3 外部时钟模式2 182
7.3.4 触发同步 183
7.4 捕获/比较通道 183
7.4.1 输入模块内部结构 184
7.4.2 输入捕获初始化与操作举例 185
7.4.3 输出比较 186
7.4.4 输出比较初始化举例 190
7.5 定时器中断控制 193
7.6 通用定时器TIM2/TIM3 193
7.6.1 通用定时器TIM2/TIM3结构 193
7.6.2 通用定时器时基单元 193
7.6.3 通用定时器输入捕获/输出比较 194
7.6.4 通用定时器TIM2/TIM3
初始化举例 196
7.7 窗口看门狗定时器WWDG 198
7.7.1 窗口看门狗定时器结构及其
溢出时间 198
7.7.2 窗口看门狗定时器初始化 200
7.7.3 在Halt状态下WWDG
定时器的活动 200
7.8 硬件看门狗定时器IWDG 200
7.8.1 硬件看门狗定时器结构 201
7.8.2 硬件看门狗定时器控制与初始化 201
习题7 203
第8章 STM8S MCU串行通信 204
8.1 串行通信的概念 204
8.1.1 串行通信的种类 205
8.1.2 波特率 206
8.1.3 串行通信数据传输方向 206
8.1.4 串行通信接口的种类 207
8.2 UART串行通信接口 207
8.2.1 UART串行通信波特率设置 210
8.2.2 UART串行通信信息帧格式 210
8.2.3 奇偶校验选择 211
8.2.4 数据发送/接收过程 212
8.2.5 多机通信 218
8.2.6 UART同步模式 220
8.2.7 UART串行通信的初始化步骤 222
8.3 RS232C串行接口标准及应用 223
8.3.1 RS232C的引脚功能 223
8.3.2 RS232C串行接口标准中主信道
重要信号的含义 224
8.3.3 电平转换 224
8.3.4 RS232C的连接 225
8.3.5 通信协议及约定 226
8.4 RS422/RS485总线 227
8.4.1 RS422接口标准 228
8.4.2 RS485标准 229
8.4.3 RS422/RS485标准性能指标 229
8.4.4 RS485/RS422标准接口
芯片简介 230
8.4.5 RS485/RS422通信接口
实际电路 231
8.4.6 避免总线冲突方式 232
8.5 串行外设总线接口(SPI) 234
8.5.1 STM8S系列芯片SPI接口
部件结构 235
8.5.2 STM8S系列芯片SPI接口
部件功能 235
8.5.3 STM8S系列芯片SPI接口
部件的初始化 242
习题8 244
第9章 AD转换器(ADC)及其使用 245
9.1 ADC概述 245
9.2 ADC功能选择 246
9.2.1 分辨率与转换精度 246
9.2.2 转换方式选择 247
9.2.3 转换速度设置 250
9.2.4 触发方式 250
9.3 ADC初始化过程举例 250
9.4 提高ADC转换精度与转换的
可靠性 251
9.5 软件滤波 254
9.5.1 算术平均滤波法 254
9.5.2 滑动平均滤波法 254
9.5.3 中值法 255
9.5.4 数字滤波 257
习题9 261
第10章 数字信号输入/输出
?接口电路 262
10.1 开关信号的输入/输出方式 262
10.2 I/O资源及扩展 264
10.2.1 STM8系统扩展I/O引脚
资源策略 264
10.2.2 利用串入并出及并入串出芯片
扩展I/O口 265
10.2.3 利用MCU扩展I/O 267
10.3 STM8与总线接口设备的连接 269
10.4 简单显示驱动电路 270
10.4.1 发光二极管 270
10.4.2 驱动电路 272
10.4.3 LED发光二极管显示
状态及同步 273
10.5 LED数码管及其显示驱动电路 277
10.5.1 LED数码管 278
10.5.2 LED数码显示器接口电路 279
10.5.3 LED点阵显示器及其接口电路 292
10.6 LCD模块显示驱动电路 297
10.6.1 以T6963C为显示控制芯片的
LCD模块接口及时序 298
10.6.2 T6963C操作命令 300
10.6.3 屏幕像点与显示RAM之间的
对应关系及模块的初始化 306
10.6.4 应用举例 307
10.7 键盘电路 314
10.7.1 按键结构与按键电压波形 314
10.7.2 键盘电路形式 316
10.7.3 键盘按键编码 318
10.7.4 键盘监控方式 319
10.8 光电耦合器件接口电路 337
10.9 单片机与继电器接口电路 339
习题10 341
第11章 STM8S应用系统设计 342
11.1 硬件设计 342
11.1.1 硬件资源分配 344
11.1.2 硬件可靠性设计 345
11.1.3 元器件选择原则 346
11.1.4 印制电路设计原则 347
11.2 软件设计 349
11.2.1 存储器资源分配 349
11.2.2 程序语言及程序结构选择 350
11.3 STM8芯片提供的可靠性功能 350
11.3.1 提高晶振电路的可靠性 351
11.3.2 使用存储器安全机制保护程序
代码不被意外改写 351
11.3.3 硬件看门狗 351
11.4 软件可靠性设计 351
11.4.1 PC“跑飞”及其后果 352
11.4.2 降低PC“跑飞”对系统的
影响 354
11.4.3 PC“跑飞”拦截技术 355
11.4.4 检查并消除STM8指令码中
不需要的关键字节 361
11.4.5 提高信号输入/输出的可靠性 362
11.4.6 选择合适的判别条件提高软件的
可靠性 363
11.4.7 增加芯片硬件自检功能 364
习题11 365
参考文献 366















