标题：51单片机应用开发案例手册
图书信息
出版社: 电子工业出版社; 第1版 (2011年11月1日)
平装: 449页
正文语种: 简体中文
开本: 16
ISBN: 9787121148460
条形码: 9787121148460
尺寸: 25.8 x 18.4 x 2 cm
重量: 635 g
内容简介
《51单片机应用开发案例手册》主要介绍如何在51单片机的应用系统中使用51单片机的内部资源和外围器件，这些资源和器件包括I/O引脚、外部中断、定时/计数器、串行接口、人机交互通道、数据采集和输出通道、存储器模块、通信模块。另外，《51单片机应用开发案例手册》还介绍了51单片机C语言部分库函数的详细使用方法，以及RTX51操作系统的工作原理和使用方法。
《51单片机应用开发案例手册》基于各种实际的51单片机应用系统，介绍其51单片机内部模块和外围器件的使用方法，提供详尽的应用电路和应用代码；书中实例涉及的应用电路都有详细的说明及相应的典型器件列表，应用代码也有相应的流程说明和大量注释，从而使代码有较高的可读性，有助于读者的理解。《51单片机应用开发案例手册》实例的电路原理图及程序源代码可以到资源下载栏目下载，读者根据自己的实际需要稍加修改即可使用。
《51单片机应用开发案例手册》包含丰富的单片机内部资源和外围模块的应用实例，作为一本单片机应用手册，适合于具有单片机基础知识的单片机工程师，以及高等院校电子类专业的学生和单片机爱好者参考阅读。
目录
第1章 51单片机I/O引脚应用实例
1.1 51单片机I/O引脚模块基础
1.2 I/O引脚驱动LED
1.2.1 LED的工作原理
1.2.2 应用实例——LED闪烁和流水灯
1.3 I/O引脚驱动数码管
1.3.1 单位数码管的工作原理
1.3.2 应用实例——流水数字
1.3.3 多位数码管的工作原理
1.3.4 应用实例——多位数字显示和流水数码管显示
1.4 I/O引脚驱动继电器
1.4.1 继电器的工作原理
1.4.2 功率驱动器件的工作原理
1.4.3 应用实例——轮流加热显示系统
1.5 I/O引脚驱动蜂鸣器
1.5.1 蜂鸣器的工作原理
1.5.2 应用实例——定时报警和音乐播放
1.6 I/O引脚扩展独立按键、键盘和拨码开关
1.6.1 独立按键的工作原理
1.6.2 应用实例——按键指示和按键发声
1.6.3 行列扫描键盘的工作原理
1.6.4 应用实例——计算器键盘
1.6.5 拨码开关的工作原理
1.6.6 应用实例——地址码设定
1.7 I/O引脚驱动电动机
1.7.1 直流电动机的工作原理
1.7.2 应用实例——按键控制直流电动机
1.7.3 步进电动机的工作原理
1.7.4 应用实例——按键控制步进电动机
第2章 51单片机外部中断应用实例
2.1 51单片机中断和外部中断模块基础
2.1.1 中断和外部中断的相关控制
2.1.2 中断的处理
2.1.3 编写中断服务函数
2.2 应用实例——外部中断计数
2.3 应用实例——外部电平中断实验
2.4 应用实例——联合中断申请
第3章 51单片机的定时/计数器应用实例
3.1 51单片机定时/计数器基础
3.1.1 定时/计数器的寄存器
3.1.2 定时/计数器的工作方式
3.1.3 定时/计数器的中断
3.2 51单片机定时/计数器基础应用
3.2.1 定时器应用实例1——T0方波发生器
3.2.2 定时器应用实例2——T1方波发生器
3.2.3 定时器应用实例3——PWM波形发生器
3.2.4 计数器应用实例1——按键灯控制
3.2.5 计数器应用实例2——按键计数
3.2.6 门控信号应用实例——脉冲宽度测量
3.3 51单片机定时/计数器综合应用
3.3.1 应用实例——秒表
3.3.2 应用实例——门铃
3.3.3 应用实例——交通灯
3.3.4 应用实例——声光报警
第4章 51单片机的串行模块应用实例
4.1 51单片机串行模块基础
4.1.1 串行模块的寄存器
4.1.2 串行模块的工作方式
4.1.3 串行模块的中断
4.2 工作方式0应用实例——双机高速通信
4.3 工作方式1应用实例1——单片机和PC通信
4.4 工作方式1应用实例2——用单片机U1控制U2外围LED闪烁
4.5 工作方式1应用实例3——单片机U1和单片机U2双向控制
4.6 工作方式2应用实例——多点温度采集
第5章 51单片机常用C语言库函数应用实例
5.1 51单片机C语言库函数基础
5.1.1 库文件和头文件分类
5.1.2 库函数实例应用电路
5.2 ASCII字符分类和转换函数
5.2.1 isdigit函数应用实例
5.2.2 toint函数应用实例
5.2.3 toupper函数应用实例
5.3 内部函数
5.3.1 _crol_函数应用实例
5.3.2 _nop_函数应用实例
5.4 数学函数
5.4.1 abs函数应用实例
5.4.2 floor函数应用实例
5.4.3 modf函数应用实例
5.4.4 sqrt函数应用实例
5.5 输入/输出函数
5.5.1 putchar函数应用实例
5.5.2 printf函数应用实例
5.5.3 sprintf函数应用实例
5.6 数据类型转换和存储器定位函数
5.6.1 atoi函数应用实例
5.6.2 atof函数应用实例
5.6.3 rand函数应用实例
5.6.4 srand函数应用实例
5.7 字符串操作函数库
5.7.1 memccpy函数应用实例
5.7.2 strlen函数应用实例
5.7.3 strcat函数应用实例
5.7.4 strncpy函数应用实例
5.7.5 strcmp函数应用实例
5.7.6 strstr函数应用实例
5.8 编译常见报警错误及解决方法应用实例
5.8.1 变量未被使用警告（Warning280）
5.8.2 函数未被声明警告（WarningC206）
5.8.3 头文件无法打开错误（ErrorC318）
5.8.4 函数名称重复定义错误（ErrorC237）
5.8.5 函数未被调用警告
5.8.6 函数未定义警告（WarningC206）
5.8.7 内存空间溢出错误警告
5.8.8 函数重入警告
5.8.9 常见Keil编译错误
第6章 51单片机内部资源高阶应用实例
6.1 扩展外部中断应用实例
6.1.1 应用实例——使用定时/计数器来扩展外部中断
6.1.2 应用实例——使用串行模块来扩展外部中断
6.2 使用I/O口进行串行通信应用实例
6.3 串行通信波特率自适应应用实例
6.4 使用软件扩展多级中断应用实例
6.5 可控PWM输出应用实例
6.6 高速串行通信应用实例
6.6.1 波特率固定高速串行通信应用实例
6.6.2 波特率可变高速串行通信应用实例
6.7 51单片机内部资源综合应用实例——投票系统
6.7.1 系统设计
6.7.2 应用代码设计
第7章 RTX51实时多任务操作系统应用实例
7.1 RTX51基础
7.1.1 RTX51占用的资源
7.1.2 RTX51的实现机制
7.1.3 应用实例——一个RTX51上的最简单应用
7.2 RTX51的工作原理
7.2.1 时间片管理原理
7.2.2 任务管理原理
7.2.3 事件管理原理
7.2.4 任务调度管理
7.2.5 堆栈管理
7.3 RTX51的配置
7.3.1 RTX51的基础配置
7.3.2 RTX51的库文件配置
7.3.3 RTX51的优化配置
7.4 RXT51的库函数
7.4.1 isr_send_signal函数
7.4.2 isr_set_ready函数
7.4.3 os_clear_signal函数
7.4.4 os_create_task函数
7.4.5 os_delete_task函数
7.4.6 os_reset_interval函数
7.4.7 os_running_task_id函数
7.4.8 os_send_signal函数
7.4.9 os_set_ready函数
7.4.1 0os_switch_task函数
7.4.1 1os_wait函数
7.5 RTX51的使用方法
7.5.1 建立用户项目
7.5.2 修改RTX51配置
7.5.3 编写用户代码
7.5.4 RTX51的编译
7.5.5 RTX51的调试
7.6 应用实例——基于RTX51的交通灯
第8章 51单片机的外部资源扩展方法
8.1 数据-地址总线扩展方法
8.2 串行模块扩展方法
8.3 I2C总线扩展方法
8.3.1 I2C总线扩展原理
8.3.2 应用实例——使用I/O端口来模拟I2C总线
8.4 SPI总线扩展方法
8.4.1 SPI总线扩展原理
8.4.2 应用实例——使用I/O端口来模拟SPI总线
8.5 1-wire（单线）总线扩展方法
8.5.1 1-wire总线扩展原理
8.5.2 应用实例——使用I/O端口来模拟1-wire总线
第9章 51单片机的I/O引脚扩展应用
9.1 使用74系列芯片来扩展I/O引脚
9.1.1 应用实例——使用74273来扩展输出引脚
9.1.2 应用实例——使用74244来扩展输入引脚
9.1.3 应用实例——使用74138来扩展输出引脚
9.2 使用串行口来扩展I/O引脚
9.2.1 使用串行口来扩展输出I/O引脚
9.2.2 使用串行口来扩展输入I/O引脚
9.3 使用I/O引脚扩展I/O引脚
9.4 使用NEC8255扩展I/O引脚
9.4.1 NEC8255芯片介绍
9.4.2 NEC8255的典型扩展方法
9.4.3 应用实例——8位8段数码管驱动
9.4.4 应用实例——4×8行列扫描键盘
第10章 51单片机人机交互通道扩展
10.1 使用MAX7219扩展多位数码管
10.1.1 MAX7219介绍
10.1.2 MAX7219的数据格式
10.1.3 MAX7219的寄存器
10.1.4 应用实例——用MAX7219驱动8位数码管
10.2 使用CH452扩展数码管和按键
10.2.1 CH452芯片介绍
10.2.2 CH452的应用电路
10.2.3 应用实例——用CH452驱动4位数码管和4×4行列键盘
10.3 使用1602液晶来显示数字和字符
10.3.1 1602字符液晶介绍
10.3.2 1602字符液晶的应用电路和应用流程
10.3.3 应用实例——1602字符液晶循环显示字符
10.4 使用12864液晶来显示汉字和图形
10.4.1 12864液晶模块介绍
10.4.2 12864液晶模块的操作流程
10.4.3 应用实例——12864液晶模块的库函数
10.4.4 应用实例——12864液晶显示汉字和图形
第11章 51单片机数据采集输出通道扩展
11.1 A/D数据采集通道扩展
11.1.1 A/D数据采集通道工作原理
11.1.2 ADC0809并行A/D芯片扩展
11.1.3 TLC2543串行多通道A/D芯片扩展
11.1.4 ADS1100高精度A/D芯片扩展
11.2 D/A数据输出通道扩展
11.2.1 D/A芯片的分类和特点
11.2.2 DAC0832并行D/A芯片扩展
11.2.3 MAX517串行D/A芯片扩展
11.3 DS18B20温度芯片扩展
11.3.1 DS18B20温度传感器介绍
11.3.2 应用实例——串口温度采集系统
11.4 PCF8563时钟芯片扩展
11.4.1 PCF8563时钟芯片介绍
11.4.2 应用实例——初始化PCF8563时钟
11.4.3 应用实例——读PCF8563时钟信息
11.4.4 应用实例——设置PCF8563的报警信息
11.4.5 应用实例——PCF8563的秒中断输出
11.4.6 应用实例——PCF8563的秒时钟信号输出
第12章 51单片机的存储器扩展应用
12.1 ROM存储器和RAM存储器扩展
12.1.1 ROM存储器扩展
12.1.2 RAM存储器扩展
12.1.3 应用实例——6264的数据读/写
12.2 E2PROM存储器扩展
12.2.1 AT24系列E2PROM介绍
12.2.2 AT24系列E2PROM的操作
12.2.3 应用实例——AT24C04的字节写
12.2.4 应用实例——AT24C04的连续读
12.2.5 应用实例——用AT24C04存放音乐数据
12.3 SLE4442接触式加密IC存储卡扩展
12.3.1 SLE4442卡基础
12.3.2 SLE4442卡的工作模式
12.3.3 SLE4442卡的命令
12.3.4 应用实例——SLE4442卡的库函数
12.3.5 应用实例——基于SLE4442的简易电子房卡
12.4 U盘存储器扩展
12.4.1 CH376基础
12.4.2 CH376的命令
12.4.3 CH376的硬件接口
12.4.4 CH376的应用电路
12.4.5 CH376的U盘扩展应用
12.4.6 应用实例——CH376的库函数
12.4.7 应用实例——使用CH376建立文件并写入数据
第13章 51单片机通信通道扩展
13.1 RS-232-C协议通信扩展
13.2 RS-422/485协议通信扩展
13.3 双口RAM通信扩展
13.3.1 IDT7132双口RAM介绍
13.3.2 应用实例——使用IDT7132进行双单片机通信
13.4 无线数据通信扩展
13.4.1 PTR8000无线模块介绍
13.4.2 PTR8000无线模块的应用电路
13.4.3 51单片机扩展PTR8000无线模块的软件工作流程
13.4.4 应用实例——无线按键指示系统终端
第14章 51单片机应用系统综合设计
14.1 51单片机应用系统设计基础
14.1.1 51单片机应用系统设计流程
14.1.2 51单片机应用系统设计原则
14.2 51单片机应用系统——太阳能电池监控模块
14.2.1 系统需求分析
14.2.2 系统设计
14.2.3 系统应用代码设计
14.3 51单片机应用系统——手持倾角仪
14.3.1 系统需求分析
14.3.2 系统设计
14.3.3 系统应用代码设计