第一篇基础篇
第1章单片机C语言
1.1什么是单片机C语言
1.1.1什么是单片机
1.1.2C语言概述
1.1.3单片机C语言
1.1.4C语言的特点
1.1.5C51的特点
1.1.6C51和标准C的比较
1.2单片机C语言与汇编语言
1.2.1汇编语言概述
1.2.2汇编语言特点
1.2.3指令系统
1.2.4C51语言与汇编语言的比较
1.3单片机C语言的学习方法
1.3.1学会看C语言程序
1.3.2编写C语言程序的一般步骤
1.3.3通过编程、仿真学习C语言程序设计
1.3.4通过实例学习C51语言程序设计
1.4本章小结
1.5习题
第2章单片机集成开发环境(视频)
2.1μVision5集成开发环境
2.1.1μVision5 开发环境
2.1.2μVision5 用户界面
2.1.3μVision5 创建应用程序
2.1.4μVision5 调试工程
2.1.5案例1: 创建Hello World项目
2.2Source Insight 3.5
2.2.1Source Insight 3.5功能特点
2.2.2Source Insight 3.5用户界面
2.2.3Source Insight 3.5项目
2.3案例2: 两位数码管的计数器项目
2.3.1在Source Insight中创建项目
2.3.2在Source Insight中编写代码
2.3.3在μVision5中创建项目
2.3.4在μVision5中调试代码
2.4小结
2.5习题
第3章C51基础语法
3.1数据类型
3.1.1常量
3.1.2变量
3.1.3整型数据
3.2实型数据
3.2.1实型常量
3.2.2实型变量
3.3字符型数据
3.3.1字符常量
3.3.2转义字符
3.3.3字符串常量
3.3.4符号常量
3.3.5变量赋值
3.3.6复合赋值
3.4运算符和表达式
3.4.1运算符优先级和结合性
3.4.2算术运算符和算术表达式
3.4.3逗号运算符和逗号表达式
3.4.4关系运算
3.4.5关系表达式
3.4.6逻辑运算符
3.4.7逻辑表达式
3.4.8条件运算符和条件表达式
3.4.9强制类型运算符与表达式
3.5特殊功能寄存器
3.5.1特殊功能寄存器
3.5.2可按位寻址操作
3.6本章小结
3.7习题
第4章语句
4.1表达式语句与复合语句
4.1.1表达式语句
4.1.2空语句
4.1.3复合语句
4.2分支程序
4.2.1if语句
4.2.2使用if语句需要注意的事项
4.2.3if语句的嵌套
4.2.4switch/case语句
4.2.5案例1: 分支程序应用
4.3循环程序
4.3.1goto语句构成循环
4.3.2while语句
4.3.3dowhile语句
4.3.4for语句
4.3.5break和continue语句
4.3.6案例2: 循环程序应用
4.4本章小结
4.5习题
第5章C51储存结构
5.1AT89S51系列单片机的存储结构
5.1.1存储器结构
5.1.2存储器特点
5.1.3存储器地址分配
5.1.4寄存器
5.1.5位寻址空间
5.1.6堆栈和数据缓冲区
5.1.7特殊功能寄存器
5.2数据存储类型
5.2.1C51的存储类型
5.2.2绝对地址访问
5.2.3C51的扩展数据类型
5.2.4C51变量的存储模式
5.2.5C51的存储器指针
5.3本章小结
5.4习题
第6章C51函数(视频)
6.1函数概述
6.2函数定义的一般形式
6.2.1C51无参函数的一般形式
6.2.2C51有参函数的一般形式
6.3函数的形式参数和实际参数
6.3.1形式参数
6.3.2实际参数
6.3.3函数的返回值
6.3.4函数的形参和实参的特点
6.4函数的调用
6.4.1函数调用的一般形式
6.4.2函数调用需要注意的事项
6.4.3函数的嵌套调用
6.5数组作为函数参数
6.5.1用数组元素作实参
6.5.2用数组名作实参
6.5.3用数组名作实参应注意的事项
6.6局部变量和全局变量
6.6.1局部变量
6.6.2局部变量作用域
6.6.3全局变量
6.6.4使用全局变量应注意的事项
6.7变量的存储类型
6.7.1静态局部变量
6.7.2静态全局变量
6.7.3register变量
6.7.4外部变量
6.8中断函数定义与使用
6.8.1中断函数的定义
6.8.2使用中断函数应注意的事项
6.9本章小结
6.10习题
第7章数组(视频)
7.1一维数组的定义和引用
7.1.1一维数组的定义形式
7.1.2一维数组元素的引用
7.1.3一维数组的初始化
7.1.4案例1: 秒表程序
7.2字符数组
7.2.1字符数组的定义
7.2.2字符数组的初始化
7.2.3字符数组的引用
7.2.4字符串和字符串结束标志
7.2.5字符串处理函数
7.3本章小结
7.4习题
第8章指针(视频)
8.1指针的基本概念
8.1.1什么是指针
8.1.2指针变量的类型说明
8.1.3指针变量的赋值
8.1.4指针变量的运算
8.2指针与数组
8.2.1一维数组与指针
8.2.2指针数组
8.3指针与函数
8.3.1函数指针
8.3.2指针型函数
8.4字符指针
8.5本章小结
8.6习题
第9章结构体与联合体(视频)
9.1结构变量
9.1.1结构体的定义
9.1.2结构类型变量的说明
9.1.3结构变量成员的表示
9.1.4结构变量的赋值
9.1.5结构变量的初始化
9.2结构指针变量的说明和使用
9.2.1结构指针变量概述
9.2.2结构体指针变量的定义
9.2.3结构体指针变量的引用
9.3联合类型
9.3.1联合体的定义
9.3.2联合体的使用
9.4枚举类型
9.4.1枚举类型声明
9.4.2枚举变量的定义
9.4.3枚举变量应用举例
9.5自定义类型
9.6本章小结
9.7习题
第10章预处理命令
10.1预处理概述
10.2宏定义
10.2.1无参宏定义
10.2.2带参宏定义
10.3文件包含
10.3.1文件包含命令行的一般形式
10.3.2使用文件包含命令行应注意的事项
10.4条件编译
10.5本章小结
10.6习题
第二篇应用篇
第11章基本I/O口驱动(视频)
11.1单片机I/O口概述
11.1.1P0口概述
11.1.2P1口概述
11.1.3P2口概述
11.1.4P3口概述
11.2C51操作单片机I/O口的方法
11.2.151单片机引脚及逻辑图
11.2.251单片机I/O口定义
11.2.3利用reg51.h访问I/O口
11.2.4案例1: I/O口的输入输出
11.3LED驱动
11.3.1案例2: 单个I/O口驱动单个LED
11.3.2案例3: 8个LED流水灯式点亮(数组)方式
11.3.3案例4: 驱动“电子协会”招牌
11.4继电器驱动
11.4.1继电器原理
11.4.2案例5: 三极管驱动继电器
11.4.3案例6: 集成块驱动继电器
11.5数码管驱动
11.5.1数码管分类
11.5.2数码管驱动方式
11.5.3数码管字符编码
11.5.4案例7: 单数码管静态依次显示0~9
11.5.5案例8: 两位数码管静态显示
11.5.6案例9: 四位数码管动态显示(译码器驱动)方式
11.5.7案例10: 八位数码管动态驱动
11.6键盘接口技术
11.6.1独立式开关按键
11.6.2按键开关的去抖动措施
11.6.3案例11: 按键检测(短按)功能
11.6.4案例12: 按键检测(长按)功能
11.6.5案例13: 一键多功能技术
11.6.6矩阵键盘原理
11.6.7案例14: 矩阵键盘检测
11.7按键控制数码管显示
11.7.1案例15: 按键有效击键计数
11.7.2案例16: 双按键组合加减
11.7.3案例17: 八路智力竞赛抢答器制作
11.8本章小结
11.9习题
第12章定时器、中断使用(视频)
12.1定时器
12.1.1定时器概述
12.1.2定时器结构
12.1.3与定时器控制相关的寄存器
12.2定时器的工作模式
12.2.1工作模式0
12.2.2案例1: 输出占空比为1∶1的方波信号
12.2.3案例2: 基于CD4511的两位数显脉冲计数器
12.2.4工作模式1
12.2.5案例3: 输出长周期的方波
12.2.6工作模式2
12.2.7工作模式3
12.2.8案例4: 1kHz方波发生器
12.3定时器的使用
12.3.1定时器使用方法
12.3.2案例5: 秒脉冲发生器及99s倒计时
12.4单片机发声
12.4.1单片机发声技术
12.4.2音调与节拍
12.4.3案例6: 单片机产生音调
12.4.4案例7: 单片机产生节拍
12.5中断
12.5.1单片机中断概述
12.5.2中断结构
12.5.3和中断相关的寄存器
12.5.4中断的使用方法
12.6单片机外部中断的触发方式
12.6.1低电平触发
12.6.2边沿触发
12.6.3两种触发方式比较
12.7综合应用
12.7.1案例8: 报警器的制作
12.7.2案例9: 多功能数字显示器
12.8外中断扩展
12.8.1外中断扩展概述
12.8.2案例10: 使用定时器扩展外中断
12.9本章小结
12.10习题
第13章串行接口应用(视频)
13.1单片机串行口
13.1.1串行口概述
13.1.2串行口结构
13.1.3与串行口相关的寄存器
13.1.4串行口的使用方法
13.1.5波特率
13.2通信方式
13.2.1异步通信
13.2.2同步通信
13.2.3通信方向
13.3串行口的工作方式
13.3.1工作方式0
13.3.2案例1: 串口扩展输入I/O口
13.3.3工作方式1
13.3.4工作方式2、3
13.4RS232串行通信
13.4.1RS232C标准介绍
13.4.2RS232C电气特性
13.4.3RS232C机械连接器及引脚定义
13.4.4RS232电平转换芯片及电路
13.5串口应用
13.5.1案例2: 串口驱动4位数码管
13.5.2案例3: 双单片机通信方式
13.5.3案例4: 多单片机通信
13.5.4案例5: 单片机与PC通信
13.6本章小结
13.7习题
第14章单片机外部接口技术(视频)
14.1单总线
14.1.1单总线的结构原理
14.1.2DS18B20芯片概述
14.2I2C总线
14.2.1I2C总线特点
14.2.2I2C总线的工作原理
14.2.3I2C总线基本操作
14.2.4AT24C系列概述
14.2.5Watchdog Timer
14.3SPI总线
14.3.1SPI总线的结构原理
14.3.2SPI总线的数据传送
14.3.3SPI总线的接口
14.3.4X25045芯片概述
14.4A/D和D/A转换器概述
14.4.1A/D转换器的工作原理
14.4.2A/D转换器的性能指标
14.4.3ADC0832芯片概述
14.4.4D/A转换器工作原理及技术指标
14.4.5DAC0832芯片概述
14.5单片机驱动接口总线应用举例
14.5.1案例1: DS18B20驱动程序
14.5.2案例2: AT24C04驱动程序
14.5.3案例3: X25045驱动程序
14.6本章小结
14.7习题
第15章显示器接口(视频)
15.1LED显示屏驱动
15.1.1LED点阵模组概述
15.1.2案例1: 单片机驱动16×16LED点阵
15.1.3案例2: LED点阵滚屏显示
15.2LCD显示驱动
15.2.1LCD显示器介绍
15.2.2HD44780概述
15.2.3案例3: LCD数字时钟
15.3本章小结
15.4习题
第16章电机驱动
16.1直流电机
16.1.1直流电机结构原理
16.1.2直流电机的分类
16.1.3案例1: 单片机控制直流电机综合应用
16.2步进电机
16.2.1步进电机结构原理
16.2.2案例2: 单片机驱动步进电机
16.3本章小结
16.4习题
第三篇项目篇
第17章通用流水线控制系统(视频)
17.1系统分析
17.1.1概述
17.1.2设计思路
17.1.3系统构成框图
17.2硬件设计
17.2.1主要芯片介绍
17.2.2主控电路
17.2.3显示电路
17.2.4信号输入电路
17.2.5信号输出电路
17.2.6电源电路
17.2.7串行接口电路
17.2.8看门狗电路
17.3程序设计
17.3.1程序流程图
17.3.2主函数
17.3.3定时器T1中断服务函数
17.3.4定时器T0中断服务函数
17.3.5串行接口函数
17.3.6看门狗函数
17.4小结
第18章便携式移动冰箱(视频)
18.1概述
18.2硬件设计
18.2.1硬件架构
18.2.2主控单元
18.2.3电源管理
18.2.4温度控制
18.2.5人机交互
18.2.6声音提示电路
18.2.7电路打样及器件采购
18.3软件设计
18.3.1软件架构
18.3.2系统初始化
18.3.3电源管理
18.3.4温度调控
18.3.5人机交互
18.3.6声音提示
18.3.7工作模式
18.4外设接口驱动
18.4.1ADC0832数据读取
18.4.2数码管驱动
18.4.3DS18B20温度读取
18.4.4AT24C04读写
18.5小结
附录
参考文献