STC8系列单片机开发指南:面向处理器、程序设计和操作系统的分析与应用
STC8系列单片机开发指南:面向处理器、程序设计和操作系统的分析与应用
学习说明
1 单片机和嵌入式系统基础知识
1.1 嵌入式系统基本概念
1.1.1 嵌入式系统的主要特点
1.1.2 嵌入式技术的构成
1.2 8051单片机内部结构
1.3 8051单片机硬件开发平台
1.4 运行第一个8051单片机程序
1.5 8051单片机编程语言
1.6 小结
2 STC单片机硬件知识
2.1 STC单片机发展历史
2.2 STC单片机IAP和ISP
2.3 STC8系列单片机命名规则及封装
2.3.1 命名规则
2.3.2 封装类型
2.3.3 引脚定义
2.4 STC8系列单片机主要性能
2.5 STC8系列单片机硬件下载电路设计
2.5.1 通过USB-串口芯片的下载电路
2.5.2 通过USB直接下载编程电路
2.6 STC8系列单片机电源系统设计
3 STC单片机软件开发环境
3.1 Keil μVision集成开发环境介绍
3.1.1 软件功能介绍
3.1.2 软件的下载
3.1.3 软件的安装
3.1.4 导入STC单片机元件库
3.1.5 软件的启动
3.2 Keil μVision5软件开发流程
3.2.1 明确软件需求
3.2.2 创建设计工程
3.2.3 编写汇编/C软件代码
3.2.4 汇编器对汇编语言进行处理
3.2.5 C编译器对C语言进行处理
3.2.6 库管理器生成库文件
3.2.7 链接器生成绝对目标模块文件
3.2.8 目标到HEX转换器
3.2.9 调试器调试目标代码
3.3 Keil μVision5基本的开发流程
3.3.1 建立新的设计工程
3.3.2 添加新的C语言文件
3.3.3 建立设计
3.3.4 下载程序到目标系统
3.3.5 硬件在线调试
4 数值表示及转换
4.1 常用码制
4.1.1 二进制码制
4.1.2 十进制码制
4.1.3 八进制码制
4.1.4 十六进制码制
4.2 正数表示方法
4.2.1 正整数的表示
4.2.2 正小数的表示
4.3 正数码制转换
4.3.1 十进制正整数转换成其他进制数
4.3.2 十进制正小数转换成二进制正小数
4.4 负数表示方法
4.4.1 符号幅度表示法
4.4.2 补码表示法
4.5 负数补码的计算
4.5.1 负整数补码的计算
4.5.2 负小数补码的计算
4.6 定点数表示
4.7 浮点数表示
5 STC单片机处理器内核和存储器系统
5.1 STC单片机处理器内核功能单元
5.1.1 控制器
5.1.2 运算器
5.1.3 特殊功能寄存器
5.2 STC单片机的存储器结构和地址空间
5.2.1 程序存储器
5.2.2 内部数据存储器
5.2.3 外部数据存储器
6 STC单片机CPU指令系统
6.1 STC单片机的CPU寻址模式
6.1.1 立即数寻址模式
6.1.2 直接寻址模式
6.1.3 间接寻址模式
6.1.4 寄存器寻址模式
6.1.5 相对寻址模式
6.1.6 变址寻址模式
6.1.7 位寻址模式
6.2 STC单片机CPU指令集
6.2.1 算术指令
6.2.2 逻辑指令
6.2.3 数据传送指令
6.2.4 布尔指令
6.2.5 程序分支指令
7 STC单片机汇编语言编程基础
7.1 汇编语言程序结构
7.2 汇编代码中段的分配
7.2.1 CODE段
7.2.2 BIT段
7.2.3 IDATA段
7.2.4 DATA段
7.2.5 XDATA段
7.3 汇编语言符号及规则
7.3.1 符号的命名规则
7.3.2 符号的作用
7.4 汇编语言操作数描述
7.4.1 数字
7.4.2 字符
7.4.3 字符串
7.4.4 位置计数器
7.4.5 操作符
7.4.6 表达式
7.5 汇编语言控制描述
7.5.1 地址控制
7.5.2 条件汇编
7.5.3 存储器初始化
7.5.4 分配存储器空间
7.5.5 过程声明
7.5.6 程序链接
7.5.7 段控制
7.5.8 杂项
7.6 Keil μVision5汇编语言设计流程
7.6.1 建立新的设计工程
7.6.2 添加新的汇编语言文件
7.6.3 建立设计
7.6.4 分析 “.m51”文件
7.6.5 分析 “.lst”文件
7.6.6 分析 “.hex”文件
7.6.7 程序软件仿真
7.6.8 程序硬件仿真
8 STC单片机C语言编程基础
8.1 常量和变量
8.1.1 常量
8.1.2 变量
8.2 数据类型
8.2.1 标准C语言所支持的类型
8.2.2 单片机扩充的类型
8.2.3 自定义数据类型
8.2.4 变量及存储模式
8.3 运算符
8.3.1 赋值运算符
8.3.2 算术运算符
8.3.3 递增和递减运算符
8.3.4 关系运算符
8.3.5 逻辑运算符
8.3.6 位运算符
8.3.7 复合赋值运算符
8.3.8 逗号运算符
8.3.9 条件运算符
8.3.10 强制类型转换符
8.3.11 sizeof运算符
8.4 描述语句
8.4.1 输入输出语句
8.4.2 表达式语句
8.4.3 条件语句
8.4.4 开关语句
8.4.5 循环语句
8.4.6 返回语句
8.5 数组
8.5.1 一维数组的表示方法
8.5.2 多维数组的表示方法
8.5.3 索引数组元素的方法
8.5.4 动态输入数组元素的方法
8.5.5 数组运算算法
8.6 指针
8.6.1 指针的基本概念
8.6.2 指向指针的指针
8.6.3 指针变量输入
8.7 函数
8.7.1 函数声明
8.7.2 函数调用
8.7.3 函数变量的存储方式
8.7.4 函数参数和局部变量的存储器模式
8.7.5 基本数据类型传递参数
8.7.6 数组类型传递参数
8.7.7 指针类型传递参数
8.8 预编译指令
8.8.1 宏定义
8.8.2 文件包含
8.8.3 条件编译
8.8.4 其他预处理命令
8.9 复杂数据结构
8.9.1 结构
8.9.2 联合
8.9.3 枚举
8.10 C程序中内嵌汇编语言
9 STC单片机I/O端口原理及驱动
9.1 STC8系列单片机的I/O驱动原理
9.2 I/O端口控制寄存器组
9.3 汇编语言程序驱动端口的实现
9.3.1 设计原理
9.3.2 建立新的工程
9.3.3 添加汇编语言源文件
9.3.4 建立设计和下载
9.4 C语言驱动端口的实现
9.4.1 设计原理
9.4.2 建立新的工程
9.4.3 添加C语言源文件
9.4.4 建立并下载设计
9.5 汇编和C混合编程驱动端口
9.5.1 添加和处理C语言与汇编语言源文件
9.5.2 建立并调试设计
10 STC单片机中断系统原理及实现
10.1 中断原理
10.2 中断系统结构
10.3 中断向量表
10.4 中断寄存器组
10.4.1 中断使能寄存器组
10.4.2 中断请求寄存器
10.5 编写汇编语言实现中断功能
10.5.1 设计原理
10.5.2 建立新的工程
10.5.3 添加汇编语言文件
10.5.4 分析 “.lst”文件
10.5.5 建立设计
10.5.6 下载设计
10.5.7 硬件仿真
10.6 编写C语言实现中断功能
10.6.1 C语言中断程序实现原理
10.6.2 C语言中断具体实现过程
10.7 中断优先级原理和中断嵌套的实现
10.7.1 不同的中断条件及处理方式
10.7.2 中断优先级控制寄存器
10.7.3 修改中断优先级的实现
11 STC8系列单片机时钟、复位和电源模式原理及实现
11.1 STC8系列单片机时钟
11.2 STC8系列单片机复位
11.2.1 外部RST引脚复位
11.2.2 软件复位
11.2.3 掉电/上电复位
11.2.4 MAX810专用复位电路复位
11.2.5 内部低压检测复位
11.2.6 看门狗复位
11.3 STC单片机电源模式
11.3.1 低速模式
11.3.2 空闲模式
11.3.3 掉电模式
12 STC单片机比较器原理及实现
12.1 STC单片机比较器结构
12.2 STC单片机比较控制寄存器组
12.2.1 比较控制寄存器1
12.2.2 比较控制寄存器2
12.3 STC单片机比较器应用:产生PWM信号
13 STC单片机计数器和定时器原理及实现
13.1 定时器/计数器模块概述
13.2 定时器/计数器寄存器组
13.2.1 定时器/计数器T0和T1控制寄存器TCON
13.2.2 定时器/计数器T0和T1工作模式寄存器TMOD
13.2.3 辅助寄存器AUXR
13.2.4 T0~T2时钟输出寄存器和外部中断允许INT_CLKO(AUXR2)寄存器
13.2.5 定时器计数器T3和T4控制寄存器T4T3M
13.2.6 定时器中断控制寄存器
13.3 计数器/定时器工作模式原理及实现
13.3.1 定时器/计数器T0工作模式
13.3.2 定时器/计数器T1工作模式
13.3.3 定时器/计数器T2工作模式
13.3.4 定时器/计数器T3工作模式
13.3.5 定时器/计数器T4工作模式
14 STC单片机串行异步收发器原理及实现
14.1 RS-232标准概述
14.1.1 RS-232传输特点
14.1.2 RS-232数据传输格式
14.1.3 RS-232电气标准
14.1.4 RS-232参数设置
14.1.5 RS-232连接器
14.2 STC单片机串口模块概述
14.2.1 串口模块结构
14.2.2 串口引脚
14.3 串口1寄存器及工作模式
14.3.1 串口1寄存器组
14.3.2 串口1工作模式
14.3.3 串口1通信实例:LED灯的控制
14.3.4 串口1通信实例:键盘扫描按键的显示
14.4 串口2寄存器及工作模式
14.4.1 串口2寄存器组
14.4.2 串口2工作模式
14.5 串口3寄存器及工作模式
14.5.1 串口3寄存器组
14.5.2 串口3工作模式
14.6 串口4寄存器及工作模式
14.6.1 串口4寄存器组
14.6.2 串口4工作模式
14.7 红外接收的设计与实现
14.7.1 红外收发器的电路原理
14.7.2 红外通信波形捕获
14.7.3 红外通信协议
14.7.4 红外检测原理
14.7.5 设计实现
15 STC单片机ADC原理及实现
15.1 STC单片机内ADC的结构原理
15.2 STC单片机内ADC寄存器组
15.3 直流电压的测量和串口显示
15.3.1 软件设计流程
15.3.2 具体实现过程
15.4 直流电压的测量和1602字符LCD的显示
15.4.1 硬件电路设计
15.4.2 1602字符LCD的原理
15.4.3 软件设计流程
15.4.4 具体实现过程
15.5 交流电压参数测量和128.4 LCD显示
15.5.1 硬件电路设计
15.5.2 12864图形点阵LCD原理
15.5.3 软件设计流程
15.5.4 具体实现过程
16 STC单片机增强型PWM发生器原理及应用
16.1 脉冲宽度调制原理
16.2 增强型PWM发生器模块
16.2.1 增强型PWM发生器功能
16.2.2 增强型PWM发生器寄存器集
16.2.3 PWM中断的声明方式
16.3 生成单路PWM信号
16.4 生成两路互补PWM信号
16.5 步进电机的驱动和控制
16.5.1 五线四相步进电机工作原理
16.5.2 步进电机的驱动
16.5.3 使用软件驱动步进电机
16.5.4 使用PWM模块驱动步进电机
17 STC单片机I2 C原理及实现
17.1 I2C总线规范概述
17.2 I2C总线时序
17.3 PCA9555的结构功能
17.3.1 寄存器映射
17.3.2 设备地址
17.3.3 控制寄存器和控制字节
17.3.4 寄存器描述
17.3.5 总线交易
17.4 STC8系列I2C控制器内的寄存器组
17.4.1 I2 C主机模式
17.4.2 I2 C从机模式
17.4.3 I2 C数据寄存器
17.5 七段数码原理及驱动电路的设计
17.5.1 七段数码管原理
17.5.2 七段数码管的驱动电路
17.6 软件应用的设计与实现
18 STC单片机SPI原理及实现
18.1 SPI模块结构及功能
18.1.1 SPI传输特点
18.1.2 SPI模块功能
18.1.3 SPI接口信号
18.1.4 SPI接口的通信方式
18.1.5 SPI模块的内部结构
18.2 SPI模块的寄存器组
18.3 SPI模块的配置和时序
18.3.1 SPI的配置模式
18.3.2 主/从模式的注意事项
18.3.3 通过SS修改模式
18.3.4 写冲突
18.3.5 数据模式时序
18.4 动态图形的交互设计
18.4.1 触摸屏显示的控制方法
18.4.2 触摸屏触摸控制方法
18.4.3 STC单片机对触摸屏的初始化
18.4.4 触摸屏基本绘图流程
18.4.5 绘制不同图形的具体实现方法
18.4.6 设计头文件说明
18.4.7 主处理文件main函数设计
19 STC单片机CCP/PCA/PWM模块的原理及实现
19.1 CCP/PCA/PWM模块的结构
19.2 CCP/PCA/PWM模块的寄存器组
19.3 CCP/PCA/PWM工作模式
19.3.1 捕获模式
19.3.2 16位软件定时器模式
19.3.3 高速脉冲输出模式
19.3.4 脉冲宽度调制模式
20 μC/OS-II操作系统的原理及实现
20.1 操作系统的必要性
20.1.1 单任务程序
20.1.2 轮询程序
20.2 操作系统基本知识
20.2.1 操作系统的作用
20.2.2 操作系统的功能
20.3 嵌入式操作系统
20.4 μC/OS-II的概述
20.4.1 任务及其种类
20.4.2 创建任务
20.4.3 任务调度
20.4.4 任务挂起和恢复
20.4.5 任务的删除
20.4.6 任务的同步及通信
20.4.7 动态内存管理
20.5 在STC单片机上移植μC/OS-II
20.5.1 修改OS_CPU.H文件
20.5.2 任务堆栈的设计
20.5.3 修改OS_CPU_C.C文件
20.6 应用实例
附录A 配套开发板原理图
思维导图
防止博客图床图片失效,防止图片源站外链:
http://www.processon.com/chart_image/5e5b3421e4b02bc3ad6a190f.png)
思维导图在线编辑链接: