第1章STM8单片机11.1什么是单片机1
1.2单片机都能干什么2
1.3学单片机一定要从51单片机开始吗2
1.4STM8单片机的家族成员介绍3
1.4.1STM8S单片机的型号列表3
1.4.2如何查看STM8单片机数据手册4
1.5本书的主角——STM8S208RB5
第2章学STM8单片机都需要准备什么7
2.1STM8单片机程序开发环境7
2.1.1STVD开发环境安装7
2.1.2CXSTM8编译器的安装7
2.1.3CXSTM8的注册10
2.1.4STVD和CXSTM8牵手10
2.1.5如何创建自己的**个工程12
2.2实验设备16
2.2.1本书中的实验开发板16
2.2.2USB转串口下载线20
2.2.3STLink仿真器21
2.3C语言你OK了吗22
2.3.1C语言的四梁八柱——C语言程序的基本结构22
2.3.2C语言的基本字符、标识符和关键字23
2.3.3C语言中的基本数据类型24
2.3.4C语言中的运算符及其优先级24
2.3.5利益共同体——函数25
2.3.6物以类聚说数组26
2.3.7“指桑骂槐”言指针27
2.3.8结构体27
2.3.9共用体28
2.3.10枚举类型取值29
2.4古老神灯闪烁实验全过程29
2.4.1硬件电路介绍29
2.4.2建工程编程序31
2.4.3将程序下载到STM8内32
第3章STM8单片机的触角——I/O口的应用36
3.1玩转 I/O口**的“五器”36
3.1.1悬浮与上拉38
3.1.2开漏与推挽38
3.2LED孤独地闪着40
3.3跑马灯是怎么跑的41
3.3.1应用switchcase语句设计跑马灯42
3.3.2用for循环“遛马”44
3.3.3数组与万能流水灯45
3.4STM8控制数码管46
3.4.1STM8直接驱动一个数码管47
3.4.2STM8控制8个数码管48
3.5独立按键的应用51
3.5.1启用内部上拉检测按键状态51
3.5.2浮空输入 外部上拉检测按键状态54
3.6使用固件库点亮神灯55
3.6.1什么是固件库55
3.6.2建立**个包含库的工程55
3.6.3神灯再亮引出的固件库中的那些知识56
第4章时钟控制器64
4.1STM8的3颗“心脏”64
4.1.1外部晶体/陶瓷谐振器和外部时钟信号64
4.1.2高速内部RC振荡器(HSI)65
4.1.3低速内部RC振荡器(LSI)65
4.2HSI作为主时钟源66
4.2.1HSI分频寄存器66
4.2.2“心律不齐”的LED67
4.3HSE作为主时钟源69
4.3.1自动切换时钟源70
4.3.2手动切换时钟源75
4.4LSI作为主时钟源79
4.5打造不死之身——时钟安全系统(CSS)82
4.6可配置时钟输出功能85
第5章STM8片外告急——外部中断的应用87
5.1中断的意义及程序执行的过程87
5.2STM8S208RB有哪些中断源88
5.2.1无法阻挡的家伙——不可屏蔽中断89
5.2.2任人宰割的特使——可屏蔽中断90
5.3谁可以中断谁90
5.3.1人人平等——非嵌套模式90
5.3.2软实力与硬实力谁更硬——嵌套中断模式91
5.4细说外部中断“4器”93
5.4.1CPU条件寄存器CCR93
5.4.2软件优先级寄存器ITC_SPRx93
5.4.3外部中断控制寄存器EXTI_CR1与EXTI_CR294
5.5外部中断应用之独立按键95
5.5.1直接设置寄存器方式96
5.5.2库函数方式99
5.6中断嵌套101
5.6.1非嵌套模式101
5.6.2中断嵌套模式105
5.6.3为什么在中断中关“总中断”失灵108
第6章定时器家族中的小四儿——TIM4113
6.1TIM4定时器是怎么工作的113
6.1.1为TIM4工作提供“心跳”的时钟源113
6.1.2TIM4定时工作过程114
6.2TIM4相关寄存器115
6.2.1控制寄存器1(TIM4_CR1)115
6.2.2中断使能寄存器(TIM4_IER)117
6.2.3状态寄存器(TIM4_SR)117
6.2.4事件产生寄存器(TIM4_EGR)118
6.2.5计数器(TIM4_CNTR)118
6.2.6预分频寄存器(TIM4_PSCR)118
6.2.7自动重装载寄存器(TIM4_ARR)118
6.3定时500 ms让LED闪起来119
6.3.1寄存器方式119
6.3.2库函数方式121
6.4简易数字时钟122
第7章定时器家族中的大哥大——TIM1127
7.1应用TIM1的定时功能产生1 Hz方波信号127
7.1.1产生方波信号的程序设计思想127
7.1.2初始化TIM1的具体步骤127
7.1.3单片机I/O口的设置步骤129
7.1.4寄存器方式的完整程序130
7.1.5库函数方式完整程序132
7.2计数功能——会数数的TIM1133
7.2.1外部时钟源模式1——从捕获/比较通道数数133
7.2.2外部时钟源模式2——从外部触发引脚数脉冲数138
7.3输入捕获——测量周期和占空比142
7.3.1输入捕获概述142
7.3.2捕获输入信号进入单片机后的“走向”142
7.3.3测量方波信号的周期144
7.3.4测量PWM信号的占空比153
7.4输出比较——TIM1产生的那些波形164
7.4.1PWM输出165
7.4.2输出模块165
7.4.3PWM控制直流电机转速166
7.4.4单脉冲在调光灯中的应用178
7.4.5产生3路SPWM信号187
7.5编码器接口190
7.5.1编码器原理190
7.5.2电路图192
7.5.3程序代码193
第8章通用串行接口UART的应用198
8.1UART配置步骤及通信过程198
8.1.1发送器的配置及单字节通信过程198
8.1.2接收器的配置及单字节通信过程199
8.2STM8单片机与PC机之间通信200
8.2.1硬件电路图201
8.2.2直接操作寄存器方式的程序201
8.2.3采用库函数方式的程序203
第9章模数转换器的应用207
9.1模拟世界与数字世界207
9.1.1何为模拟、何为数字207
9.1.2模拟量与数字量是怎么转换的208
9.2STM8单片机的“北冥神功”是如何练成的209
9.2.1主要功能209
9.2.2A/D转换过程209
9.3简易数字电压表212
9.3.1硬件电路212
9.3.2寄存器方式实现的程序代码212
9.3.3库函数方式实现的程序代码216
9.4PC机上绘图显示声音信号220
第10章同步串行SPI接口的应用224
10.1互换信物——SPI的传输原理224
10.2SPI接口应用举例225
10.2.1查询法实现两个单片机的SPI接口之间通信225
10.2.2中断法实现两个单片机的SPI接口之间通信231
10.2.3加入CRC功能实现两个单片机的SPI接口通信237
第11章I2C总线接口的应用243
11.1I2C总线接口简介243
11.2I2C总线是怎么工作的244
11.3两个STM8单片机之间通信246
11.3.1硬件电路图246
11.3.2建立工程246
11.3.3程序流程分析248
11.3.4程序代码249
11.3.5通信时序图262
11.4STM8单片机的I2C总线控制EEPROM存储器AT24C256263
11.4.1AT24C256非易失性EEPROM存储器简介264
11.4.2硬件电路图268
11.4.3建立工程268
11.4.4EEPROM操作函数273
11.4.5程序流程275
第12章STM8补充知识277
12.1操作STM8内部EEPROM277
12.1.1存储器组织结构277
12.1.2存储器存取安全系统(MASS)277
12.1.3随时保存状态的流水灯278
12.2什么是Option Byte283
12.2.1选项字节描述284
12.2.2使用STVP修改OPT287
12.2.3通过程序修改OPT289
12.3绿色节能从STM8做起——STM8电源管理290
12.3.1常规降低功耗的办法291
12.3.2STM8低功耗模式291
12.3.3附加的模拟功耗控制293
12.4自动唤醒(AWU)294
12.5简单实用的Beep300
12.6看门狗304
12.6.1独立看门狗304
12.6.2窗口看门狗309
附录Cosmic编译器317
参考文献322