STC单片机C语言程序设计 8051体系架构、编程实例及项目实战
作者:何宾编著
出版时间:2018年版
内容简介
本书系统地论述了STC单片机的C语言程序设计方法。全书共分为27章,主要内容包括: 单片机基础知识,STC单片机硬件知识,数值表示及转换,STC单片机CPU子系统,STC单片机CPU指令系统,STC单片机集成开发环境,STC单片机汇编语言编程基础,STC单片机C语言编程入门,STC单片机C语言变量和数据类型,STC单片机C语言运算符,STC单片机C语言描述语句,STC单片机C语言数组,STC单片机C语言指针,STC单片机C语言函数,STC单片机C语言预处理指令,STC单片机C语言复杂数据结构,STC单片机C语言高级编程技术,STC单片机时钟、复位和电源模式原理及实现,STC单片机比较器原理及实现,STC单片机计数器和定时器原理及实现,STC单片机异步串行收发器原理及实现,STC单片机ADC原理及实现,STC单片机SPI原理及实现,STC单片机CCP/PCA/PWM模块原理及实现,STC 单片机增强型PWM发生器原理及实现,RTX51操作系统原理及实现,综合项目实例: 风扇转速控制系统的设计与实现。
本书将C语言程序设计与STC单片机的各个知识点进行系统化融合,不仅系统地介绍C语言程序设计的各个知识点及其在单片机中的具体应用,而且更加突出学习方法。为了方便读者自学,本书提供了大量的设计案例和公开教学视频。
本书可作为读者零基础学习单片机C语言程序设计的参考用书,也可作为单片机竞赛、单片机认证考试的参考用书。
目录
第1章 单片机基础知识
1.1单片机发展历史
1.2单片机内部架构
1.3单片机与嵌入式系统的关系
1.4单片机硬件开发平台
1.5运行第一个单片机程序
1.6单片机编程语言
第2章STC单片机硬件知识
2.1STC单片机发展历史
2.2STC单片机IAP和ISP
2.3STC单片机命名规则及封装
……
2.4STC单片机结构及功能
2.5STC单片机的I/O驱动原理
2.6STC单片机硬件下载电路设计
……
2.7STC单片机电源系统设计
2.8调试单片机系统所用到的仪器
第3章数值表示及转换
3.1常用数制
……
3.2正数表示方法
…
3.3正数码制转换
……
3.4负数表示方法
……
3.5负数补码的计算
……
3.6定点数表示
3.7浮点数表示
第4章STC单片机CPU子系统
4.1STC单片机CPU内核功能单元
……
4.2STC单片机存储器结构和地址空间
……
4.3STC单片机中断系统原理及功能
……
第5章STC单片机CPU指令系统
5.1STC单片机CPU寻址模式
……
5.2STC单片机CPU指令集
……
第6章STC单片机集成开发环境
6.1Keil μVision集成开发环境介绍
……
6.2Keil μVision软件开发流程介绍
……
6.3Keil μVision软件开发流程实现
……
6.4U8W编程器
……
第7章STC单片机汇编语言编程基础
7.1汇编语言程序结构
7.2汇编代码中段的分配
……
7.3汇编语言符号及规则
……
7.4汇编语言操作数描述
……
7.5汇编语言控制描述
……
7.6汇编语言设计流程
……
7.7单片机端口控制汇编语言程序设计
……
7.8单片机中断汇编语言程序设计
……
第8章STC单片机C语言编程入门
8.1高级编程语言概念
……
8.2选择C语言的理由
8.3C语言发展历史
8.4C语言程序框架
8.5C语言词法构成
第9章STC单片机C语言变量和数据类型
9.1C语言中的常量和变量
……
9.2C51编译器支持的数据类型
……
9.3自定义数据类型
9.4变量存储种类和存储类型
……
9.5定位变量的绝对位置
第10章STC单片机C语言运算符
10.1C语言运算符分类
10.2C语言运算符优先级
10.3赋值运算符
10.4算术运算符
10.5递增和递减运算符
10.6关系运算符
10.7逻辑运算符
10.8位运算符
10.9复合赋值运算符
10.10逗号运算符
10.11条件运算符
10.12强制类型转换符
10.13sizeof运算符
第11章STC单片机C语言描述语句
11.1输入输出语句
11.1.1putchar函数
11.1.2getchar函数
11.1.3printf函数
11.1.4scanf函数
11.1.5puts函数
11.1.6gets函数
11.2表达式语句
11.3条件语句
11.3.1条件语句格式1
11.3.2条件语句格式2
11.3.3条件语句格式3
11.4开关语句
11.5循环语句
11.5.1while语句
11.5.2dowhile语句
11.5.3for语句
11.5.4goto语句
11.5.5break语句
11.5.6continue语句
11.6返回语句
11.7C语言端口控制实现
第12章STC单片机C语言数组
12.1一维数组的定义和操作
12.1.1一维数组的定义
12.1.2一维数组初始化
12.1.3一维数组的操作
12.2多维数组的定义和操作
12.2.1多维数组的定义
12.2.2多维数组初始化
12.2.3多维数组的操作
第13章STC单片机C语言指针
13.1C51编译器中指针的分类
13.2通用指针
13.2.1未指定存储区域的通用指针
13.2.2指定存储区域的通用指针
13.3指定存储器类型的指针
13.4指针转换
13.5指针变量输入
13.6指向指针的指针
13.7抽象指针
第14章STC单片机C语言函数
14.1函数定义和声明
14.1.1标准C函数定义和声明
14.1.2扩展C函数定义和声明
14.1.3存储器模型
14.2函数调用原理
14.2.1函数调用格式
14.2.2参数和堆栈
14.2.3参数和寄存器
14.2.4返回值
14.3函数调用实现分析
14.4函数变量的存储方式
14.5数组类型传递参数
14.6指针类型传递参数
14.7指向函数的指针
14.8可重入函数设计
14.9中断函数设计
14.9.1C语言中断函数的声明格式
14.9.2外部中断电路原理
14.9.3C语言中断程序的编写和测试
第15章STC单片机C语言预处理指令
15.1文件包含
15.1.1包含用户头文件
15.1.2包含系统头文件
15.1.3只包含一次文件
15.2宏定义及使用
15.2.1简单的宏定义
15.2.2复杂的宏定义
15.2.3宏操作符
15.2.4预定义的宏
15.3条件编译
15.4其他预处理命令
15.4.1#line
15.4.2#message
15.4.3#error
15.4.4#pragma
第16章STC单片机C语言复杂数据结构
16.1结构
16.1.1结构类型的定义
16.1.2结构变量的定义
16.1.3结构变量内元素的引用
16.1.4指向结构的指针
16.2联合
16.3枚举
16.4链表
16.4.1单链表的存储结构
16.4.2建立链表
16.4.3查找结点
16.4.4删除结点
16.4.5插入结点
第17章STC单片机C语言高级编程技术
17.1C程序中使用汇编语言
17.1.1内嵌汇编语言
17.1.2调用汇编程序
17.2优化代码策略
17.3C语言动态图形交互设计
17.3.1动态图形交互硬件平台
17.3.2STC单片机对触摸屏的控制
17.3.3STC单片机对触摸屏的初始化
17.3.4触摸屏基本绘图流程
17.3.5绘制不同图形的具体实现方法
17.3.6设计头文件说明
17.3.7主处理文件main函数设计
第18章STC单片机时钟、复位和电源模式原理及实现
18.1STC单片机时钟
18.2STC单片机复位
18.2.1外部RST引脚复位
18.2.2软件复位
18.2.3掉电/上电复位
18.2.4MAX810专用复位电路复位
18.2.5内部低压检测复位
18.2.6看门狗复位
18.2.7程序地址非法复位
18.3STC单片机电源模式
18.3.1低速模式
18.3.2空闲模式
18.3.3掉电模式
第19章STC单片机比较器原理及实现
19.1STC单片机比较器结构
19.2STC单片机比较器寄存器组
19.2.1比较控制寄存器1
19.2.2比较控制寄存器2
19.3STC单片机比较器应用
第20章STC单片机计数器和定时器原理及实现
20.1计数器/定时器模块简介
20.2计数器/定时器寄存器组
20.2.1定时器/计数器0/1控制寄存器TCON
20.2.2定时器/计数器工作模式寄存器TMOD
20.2.3辅助寄存器AUXR
20.2.4T0~T2时钟输出寄存器和外部中断允许INT_CLKO(AUXR2)
20.2.5定时器T0和T1中断允许控制寄存器IE
20.2.6定时器T0和T1中断优先级控制寄存器IP
20.2.7定时器T4和定时器T3控制寄存器T4T3M
20.2.8定时器T2、T3和T4的中断控制寄存器IE2
20.3计数器/定时器工作模式原理和实现
20.3.1定时器/计数器0工作模式
20.3.2定时器/计数器1工作模式
20.3.3定时器/计数器2工作模式
20.3.4定时器/计数器3工作模式
20.3.5定时器/计数器4工作模式
第21章STC单片机异步串行收发器原理及实现
21.1RS232标准简介
21.1.1RS232传输特点
21.1.2RS232数据传输格式
21.1.3RS232电气标准
21.1.4RS232参数设置
21.1.5RS232连接器
21.2STC单片机串口模块简介
21.2.1串口模块结构
21.2.2串口引脚
21.3串口1寄存器及工作模式
21.3.1串口1寄存器组
21.3.2串口1工作模式
21.3.3人机交互控制的实现
21.3.4按键扫描及串口显示
21.4串口2寄存器及工作模式
21.4.1串口2寄存器组
21.4.2串口2工作模式
21.5串口3寄存器及工作模式
21.5.1串口3寄存器组
21.5.2串口3工作模式
21.6串口4寄存器及工作模式
21.6.1串口4寄存器组
21.6.2串口4工作模式
21.7红外通信的原理及实现
21.7.1红外收发器的电路原理
21.7.2红外通信波形捕获
21.7.3红外通信协议
21.7.4红外检测原理
21.7.5串口通信原理
21.7.6设计实现
第22章STC单片机ADC原理及实现
22.1ADC原理
22.1.1ADC的参数
22.1.2ADC的类型
22.2STC单片机内ADC的结构原理
22.2.1STC单片机内ADC的结构
22.2.2ADC转换结果的计算方法
22.3STC单片机内ADC寄存器组
22.3.1P1口模拟功能控制寄存器
22.3.2ADC控制寄存器
22.3.3时钟分频寄存器
22.3.4ADC结果高位寄存器
22.3.5ADC结果低位寄存器
22.3.6中断使能寄存器
22.3.7中断优先级寄存器
22.4直流电压测量及串口显示
22.4.1直流分压电路原理
22.4.2软件设计流程
22.4.3具体实现过程
22.5直流电压测量及LCD屏显示
22.5.1硬件电路设计
22.5.21602字符LCD原理
22.5.3软件设计流程
22.5.4具体实现过程
22.6交流电压测量及LCD屏显示
22.6.1硬件电路设计
22.6.212864图形点阵LCD原理
22.6.3软件设计流程
22.6.4ADC外部输入信号要求
22.6.5具体实现过程
22.7温度测量及串口显示
第23章STC单片机SPI原理及实现
23.1STC SPI模块结构及功能
23.1.1SPI传输特点
23.1.2SPI模块功能
23.1.3SPI接口信号
23.1.4SPI接口的数据通信方式
23.1.5SPI模块内部结构
23.2SPI模块寄存器组
23.2.1SPI控制寄存器
23.2.2SPI状态寄存器
23.2.3SPI数据寄存器
23.2.4中断允许寄存器2
23.2.5中断优先级寄存器
23.2.6控制SPI引脚位置寄存器
23.3SPI模块配置及时序
23.3.1SPI配置模式
23.3.2主/从模式的注意事项
23.3.3通过SS修改模式
23.3.4写冲突
23.3.5数据模式时序
23.47段数码管的驱动与显示
23.4.1系统控制电路原理
23.4.27段数码管原理
23.4.374HCT595原理
23.4.4系统软件控制流程
23.4.5程序具体实现
第24章STC单片机CCP/PCA/PWM模块原理及实现
24.1CCP/PCA/PWM结构
24.2CCP/PCA/PWM寄存器组
24.2.1PCA工作模式寄存器
24.2.2PCA控制寄存器
24.2.3PCA比较捕获寄存器
24.2.4PCA的16位计数器
24.2.5PCA捕获/比较寄存器
24.2.6PCA模块PWM寄存器
24.2.7PCA模块引脚切换寄存器
24.3CCP/PCA/PWM工作模式
24.3.1捕获模式
24.3.216位软件定时器模式
24.3.3高速脉冲输出模式
24.3.4脉冲宽度调制模式
第25章STC单片机增强型PWM发生器原理及实现
25.1增强型PWM发生器简介
25.2增强型PWM发生器相关寄存器组
25.2.1端口配置寄存器
25.2.2PWM配置寄存器
25.2.3PWM控制寄存器
25.2.4PWM中断标志寄存器
25.2.5PWM外部异常控制寄存器
25.2.6PWM计数器
25.2.7PWM时钟选择寄存器
25.2.8PWM2翻转计数器
25.2.9PWM2控制寄存器
25.2.10PWM3翻转计数器
25.2.11PWM3控制寄存器
25.2.12PWM4翻转计数器
25.2.13PWM4控制寄存器
25.2.14PWM5翻转计数器
25.2.15PWM5控制寄存器
25.2.16PWM6翻转计数器
25.2.17PWM6控制寄存器
25.2.18PWM7翻转计数器
25.2.19PWM7控制寄存器
25.2.20PWM中断优先级控制寄存器
25.3生成单路PWM信号
25.4生成两路互补PWM信号
25.5步进电机的驱动和控制
25.5.1五线四相步进电机工作原理
25.5.2步进电机28BYJ48电气性能
25.5.3步进电机的驱动
25.5.4使用软件驱动步进电机
25.5.5使用增强型PWM模块驱动步进电机
25.5.6设计下载和验证
第26章RTX51操作系统原理及实现
26.1操作系统的必要性
26.1.1单任务程序
26.1.2轮询程序
26.2操作系统基本知识
26.2.1操作系统的作用
26.2.2操作系统的功能
26.3RTX51操作系统的任务
26.3.1定义任务
26.3.2管理任务
26.3.3切换任务
26.4RTX51操作系统内核函数
26.5RTX51操作系统实现
26.5.1RTX51操作系统实现1
26.5.2RTX51操作系统实现2
26.5.3RTX51操作系统实现3
第27章综合项目实例: 风扇转速控制系统的设计与实现
27.1项目需求分析
27.1.1划分软件和硬件边界
27.1.2设计过程中的细节问题
27.2离散PID控制算法及其参数
27.2.1离散PID控制算法
27.2.2参数整定方法
27.3风扇原理、驱动和运动特性
27.3.1风扇原理
27.3.2风扇驱动
27.3.3风扇运动特性
27.4反馈信号处理方法
27.4.1比较器的硬件设置
27.4.2比较器的程序配置方案
27.4.3比较器处理结果分析
27.5输出测速信号的处理
27.5.1设计思路
27.5.2程序设计方案
27.6单片机串口数据通信
27.6.1设计思路
27.6.2现象分析
27.7PID控制算法中关键问题
27.8系统的硬件结构原理图
27.9控制系统设计代码
27.10上位机应用程序开发
附录ASTC单片机选型表636
附录BSTC四轴飞行器643
附录CGNTSMK2开发板原理图645