描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111624219
内容简介
本书围绕着 51 内核单片机的硬件结构、 C 语言编程技巧和应用系统开发, 采用任务驱动与项目实训的方式, 以理论够用、 注重应用为原则,激发学生的学习兴趣, 逐步提高学生的单片机外围接口电路设计和编写程序的逻辑思维能力。 本书的实训项目由简单的如何点亮 LED 灯项目开始,引导读者入门, 逐步扩展知识面, 逐步增加项目难度, 使读者积累项目开发的经验, 提高实践动手能力、 分析与解决问题的能力, 掌握单片机系统开发技能。
本书层次结构合理, 叙述简明易懂, 参编人员有着多年的实际项目开发经验。 本书项目来自科研、 竞赛、 教学实践等, 实用性强, 提供实训项目代码, 还可以提供配套的单片机开发板。
本书可作为高等院校电子信息、 计算机、 电气工程、 自动化、 机电一体化、 仪器仪表等专业的单片机课程教材, 也适合于单片机初学者和从事单片机应用的工程技术人员参考。 本书还可以作为电子设计竞赛、 蓝桥杯电子类等比赛的培训教材。
本书层次结构合理, 叙述简明易懂, 参编人员有着多年的实际项目开发经验。 本书项目来自科研、 竞赛、 教学实践等, 实用性强, 提供实训项目代码, 还可以提供配套的单片机开发板。
本书可作为高等院校电子信息、 计算机、 电气工程、 自动化、 机电一体化、 仪器仪表等专业的单片机课程教材, 也适合于单片机初学者和从事单片机应用的工程技术人员参考。 本书还可以作为电子设计竞赛、 蓝桥杯电子类等比赛的培训教材。
目 录
前言
第 1 章 单片机入门———基础必备
知识 1
1.1 单片机概述 1
1.1.1 什么是单片机? 1
1.1.2 单片机应用领域 2
1.1.3 如何学好单片机 3
1.2 数制与编码 3
1.2.1 数制 3
1.2.2 数制之间的转换 4
1.2.3 常用的编码 5
1.3 微型计算机的基本组成和工作过程 6
1.3.1 基本组成 6
1.3.2 指令、 程序与编程语言 7
1.3.3 工作过程 8
1.4 开发软件环境搭建 9
1.5 开发板功能简介 13
本章小结 14
实训项目 14
第 2 章 点亮 LED 灯———Keil 软件与
单片机 I /O 15
2.1 Keil μVision4 使用方法 15
2.1.1 Keil μVision4 工作界面 15
2.1.2 Keil 工程的建立 15
2.2 单片机最小系统 20
2.2.1 电源 20
2.2.2 复位电路 21
2.2.3 晶振 21
2.3 时钟周期、 机器周期和指令周期 22
2.4 点亮 LED 灯 23
2.4.1 LED ( 发光二极管) 23
2.4.2 特殊功能寄存器和位定义 23
2.4.3 编写程序 25
2.5 程序下载 26
2.6 74HC573 锁存器 29
2.7 74HC02 或非门 30
2.8 74HC138 三八译码器 31
2.9 单片机资源扩展方式 34
本章小结 36
实训项目 36
第 3 章 经典再现———C 语言基础 37
3.1 C51 程序开发 37
3.1.1 采用 C51 的优点 37
3.1.2 C51 程序开发过程 37
3.1.3 C51 程序结构 37
3.2 C51 语言的数据类型 38
3.3 C51 语言的运算符 39
3.4 C51 语言的控制语句 41
3.4.1 if 语句 41
3.4.2 switch 语句 44
3.4.3 while 语句 46
3.4.4 for 语句 48
3.4.5 中断语句 break /continue 51
3.5 C51 函数 53
3.5.1 函数定义 54
3.5.2 函数的调用 54
3.5.3 中断服务函数 55
3.6 程序划分为多个文件 57
3.6.1 共享宏定义和类型定义 57
3.6.2 共享函数原型 57
3.6.3 共享变量声明 58
3.6.4 保护头文件 58
本章小结 58
实训项目 59
第 4 章 流水灯实现———C51 编程 60
4.1 设计思路 60
4.2 软件延时 61
4.3 程序实现 62
本章小结 64
实训项目 64
第 5 章 计数器———数码管显示与
独立按键 65
5.1 数码管的显示原理 65
5.2 数码管的真值表与静态显示 66
5.3 独立按键检测 68
5.4 计数器实现 70
5.5 数码管动态显示 72
5.5.1 C 语言数组回顾 72
5.5.2 动态显示原理 73
5.5.3 程序实现 74
5.5.4 数码管显示消隐 75
本章小结 76
实训项目 76
第 6 章 数字秒表———中断系统及
定时器 77
6.1 中断系统 77
6.2 中断系统处理过程 78
6.2.1 51 内核单片机的中断结构 78
6.2.2 单片机的中断源 78
6.2.3 中断响应及处理过程 81
6.3 定时器的结构和工作原理 83
6.4 定时器的寄存器 84
6.4.1 T0、 T1 的方式寄存器 TMOD 84
6.4.2 T0、 T1 的控制寄存器 TCON 87
6.5 定时器的应用 87
本章小结 91
实训项目 92
第 7 章 频率计———定时器进阶 93
7.1 NE555 93
7.2 方波频率的测量 94
7.3 定时器计数模式 95
7.4 频率计实现 95
本章小结 99
实训项目 99
第 8 章 简易加法计算器———矩阵按键与
函数进阶 100
8.1 函数的调用 100
8.2 形参与实参 103
8.3 矩阵按键扫描 104
8.3.1 按键消抖 104
8.3.2 矩阵按键的识别与编码 105
8.4 简易加法计算器的实现 108
本章小结 114
实训项目 115
第 9 章 知识沉淀———交通灯设计和
PWM 控制 116
9.1 交通灯实现 116
9.1.1 设计要求 116
9.1.2 硬件电路分析 116
9.1.3 程序设计 119
9.2 PWM 基础知识 123
9.3 直流电动机 PWM 调速 123
9.3.1 直流电动机简介 123
9.3.2 直流电动机恒速运行 124
9.3.3 直流电动机调速 127
9.4 PWM 调光 129
本章小结 132
实训项目 132
第 10 章 数据传输———串口通信 133
10.1 串口通信基础 133
10.1.1 基本通信方式及特点 133
10.1.2 串行通信数据传送方式 133
10.1.3 串行通信的传输方向 134
10.1.4 串行通信的传输速率 134
10.2 单片机与 PC 常见通信接口 135
10.3 串口结构与工作原理 137
10.4 波特率与定时器 138
10.5 编程与实现 139
10.6 ASCII 码 142
本章小结 143
实训项目 143
第 11 章 温度计———DS18B20 温度
传感器应用 144
11.1 DS18B20 温度传感器介绍 144
11.1.1 DS18B20 主要特性 144
11.1.2 DS18B20 应用电路原理图 145
11.2 DS18B20 工作原理 147
11.2.1 DS18B20 的通信协议 147
11.2.2 DS18B20 单总线通信过程 151
11.3 DS18B20 应用实例 152
11.3.1 DS18B20 的测温与显示———整数
显示 152
11.3.2 DS18B20 的测温与显示———带 1 位
小数显示 156
本章小结 158
实训项目 158
第12 章 记录开机次数———IIC 总线与
EEPROM ( AT24C02) 应用 159
12.1 IIC 总线基础 159
12.2 IIC 寻址模式 161
12.3 IIC 总线时序模拟 162
12.4 AT24C02 操作 ( 写和读操作) 165
12.5 记录开机次数实现 167
本章小结 170
实训项目 171
第 13 章 光照强度检测———A /D 与 D /A
( PCF8591 应用) 172
13.1 A /D 和 D /A
第 1 章 单片机入门———基础必备
知识 1
1.1 单片机概述 1
1.1.1 什么是单片机? 1
1.1.2 单片机应用领域 2
1.1.3 如何学好单片机 3
1.2 数制与编码 3
1.2.1 数制 3
1.2.2 数制之间的转换 4
1.2.3 常用的编码 5
1.3 微型计算机的基本组成和工作过程 6
1.3.1 基本组成 6
1.3.2 指令、 程序与编程语言 7
1.3.3 工作过程 8
1.4 开发软件环境搭建 9
1.5 开发板功能简介 13
本章小结 14
实训项目 14
第 2 章 点亮 LED 灯———Keil 软件与
单片机 I /O 15
2.1 Keil μVision4 使用方法 15
2.1.1 Keil μVision4 工作界面 15
2.1.2 Keil 工程的建立 15
2.2 单片机最小系统 20
2.2.1 电源 20
2.2.2 复位电路 21
2.2.3 晶振 21
2.3 时钟周期、 机器周期和指令周期 22
2.4 点亮 LED 灯 23
2.4.1 LED ( 发光二极管) 23
2.4.2 特殊功能寄存器和位定义 23
2.4.3 编写程序 25
2.5 程序下载 26
2.6 74HC573 锁存器 29
2.7 74HC02 或非门 30
2.8 74HC138 三八译码器 31
2.9 单片机资源扩展方式 34
本章小结 36
实训项目 36
第 3 章 经典再现———C 语言基础 37
3.1 C51 程序开发 37
3.1.1 采用 C51 的优点 37
3.1.2 C51 程序开发过程 37
3.1.3 C51 程序结构 37
3.2 C51 语言的数据类型 38
3.3 C51 语言的运算符 39
3.4 C51 语言的控制语句 41
3.4.1 if 语句 41
3.4.2 switch 语句 44
3.4.3 while 语句 46
3.4.4 for 语句 48
3.4.5 中断语句 break /continue 51
3.5 C51 函数 53
3.5.1 函数定义 54
3.5.2 函数的调用 54
3.5.3 中断服务函数 55
3.6 程序划分为多个文件 57
3.6.1 共享宏定义和类型定义 57
3.6.2 共享函数原型 57
3.6.3 共享变量声明 58
3.6.4 保护头文件 58
本章小结 58
实训项目 59
第 4 章 流水灯实现———C51 编程 60
4.1 设计思路 60
4.2 软件延时 61
4.3 程序实现 62
本章小结 64
实训项目 64
第 5 章 计数器———数码管显示与
独立按键 65
5.1 数码管的显示原理 65
5.2 数码管的真值表与静态显示 66
5.3 独立按键检测 68
5.4 计数器实现 70
5.5 数码管动态显示 72
5.5.1 C 语言数组回顾 72
5.5.2 动态显示原理 73
5.5.3 程序实现 74
5.5.4 数码管显示消隐 75
本章小结 76
实训项目 76
第 6 章 数字秒表———中断系统及
定时器 77
6.1 中断系统 77
6.2 中断系统处理过程 78
6.2.1 51 内核单片机的中断结构 78
6.2.2 单片机的中断源 78
6.2.3 中断响应及处理过程 81
6.3 定时器的结构和工作原理 83
6.4 定时器的寄存器 84
6.4.1 T0、 T1 的方式寄存器 TMOD 84
6.4.2 T0、 T1 的控制寄存器 TCON 87
6.5 定时器的应用 87
本章小结 91
实训项目 92
第 7 章 频率计———定时器进阶 93
7.1 NE555 93
7.2 方波频率的测量 94
7.3 定时器计数模式 95
7.4 频率计实现 95
本章小结 99
实训项目 99
第 8 章 简易加法计算器———矩阵按键与
函数进阶 100
8.1 函数的调用 100
8.2 形参与实参 103
8.3 矩阵按键扫描 104
8.3.1 按键消抖 104
8.3.2 矩阵按键的识别与编码 105
8.4 简易加法计算器的实现 108
本章小结 114
实训项目 115
第 9 章 知识沉淀———交通灯设计和
PWM 控制 116
9.1 交通灯实现 116
9.1.1 设计要求 116
9.1.2 硬件电路分析 116
9.1.3 程序设计 119
9.2 PWM 基础知识 123
9.3 直流电动机 PWM 调速 123
9.3.1 直流电动机简介 123
9.3.2 直流电动机恒速运行 124
9.3.3 直流电动机调速 127
9.4 PWM 调光 129
本章小结 132
实训项目 132
第 10 章 数据传输———串口通信 133
10.1 串口通信基础 133
10.1.1 基本通信方式及特点 133
10.1.2 串行通信数据传送方式 133
10.1.3 串行通信的传输方向 134
10.1.4 串行通信的传输速率 134
10.2 单片机与 PC 常见通信接口 135
10.3 串口结构与工作原理 137
10.4 波特率与定时器 138
10.5 编程与实现 139
10.6 ASCII 码 142
本章小结 143
实训项目 143
第 11 章 温度计———DS18B20 温度
传感器应用 144
11.1 DS18B20 温度传感器介绍 144
11.1.1 DS18B20 主要特性 144
11.1.2 DS18B20 应用电路原理图 145
11.2 DS18B20 工作原理 147
11.2.1 DS18B20 的通信协议 147
11.2.2 DS18B20 单总线通信过程 151
11.3 DS18B20 应用实例 152
11.3.1 DS18B20 的测温与显示———整数
显示 152
11.3.2 DS18B20 的测温与显示———带 1 位
小数显示 156
本章小结 158
实训项目 158
第12 章 记录开机次数———IIC 总线与
EEPROM ( AT24C02) 应用 159
12.1 IIC 总线基础 159
12.2 IIC 寻址模式 161
12.3 IIC 总线时序模拟 162
12.4 AT24C02 操作 ( 写和读操作) 165
12.5 记录开机次数实现 167
本章小结 170
实训项目 171
第 13 章 光照强度检测———A /D 与 D /A
( PCF8591 应用) 172
13.1 A /D 和 D /A
前 言
单片机是工科类本科生教学的主要学科基础课之一, 是电子信息工程、 通信工程、电气工程、 自动化、 计算机等专业的一门重要的专业基础课。
目前, 在市场上的众多产品中均能看到单片机的身影。 单片机以其高性价比、 高速度、 体积小、 可重复编程和方便功能扩展等优点, 在实践中得到了广泛应用。 目前, 51单片机 C 语言 ( 简称 C51 语言) 的使用越来越广泛, 大有取代汇编语言的趋势。 学习并熟练掌握 C51 语言, 对于单片机的系统设计和程序开发都非常有用。
本书为 “福建省本科高校重大教育教学改革研究项目 ( FBJG20170332) 、 泉州市高等学校中青年学科 ( 专业) 带头人培养计划、 福建省本科高校重大教育教学改革研究项目 ( JZ160227) 、 闽南理工学院校级应用型课程改革项目” 的研究成果。 本书特色如下:
1. 内容全面, 由浅入深
本书涵盖了 C51 语言程序设计所需掌握的各方面知识点。 首先详细介绍了 51 系列单片机的基础知识, 包括集成开发环境和开发流程。 然后对 C51 语言程序设计基础知识点结合实例进行全面详细的介绍, 包括数据类型与结构、 函数、 存储结构等内容。 接着对 C51 语言的程序设计方式进行了详细的讲解, 包括定时计数器、 中断设计、 串行接口设计等内容。 最后介绍了电子设计各个领域具有代表性的案例, 包括键盘设计、 总线接口、 单片机通信, 以及 A /D 转换等方面的内容。 最后设计了一个完整的综合应用实例。
2. 结合实例, 强化理解
本书在介绍每个相关知识点的同时, 均给出了其在程序设计中的编程示例, 每个例子都可以执行, 读者可以在学习独立知识点的同时, 根据应用示例举一反三, 快速掌握相应知识点在整个程序设计系统中的实际应用。
3. 联系硬件, 切合需求
本书不仅介绍 51 单片机的 C 语言, 还对单片机的硬件资源, 以及如何使用 C51 语言来编程控制单片机的各种片上资源进行了详细介绍, 主要包括单片机定时器/计数器、中断、 USART 串行通信接口、 EEPROM、 SPI 串行通信接口、 PWM 脉宽调制和 A /D转换。
4. 案例丰富, 分析全面
本书案例丰富, 基本上涵盖了电子设计的各个领域, 如键盘接口、 RS – 232 通信、SPI 总线、 掉电参数保护、 电动机控制、 电压检测等。 本书对每一个案例都详细介绍了相关的背景知识、 硬件知识、 电路设计、 程序设计, 以及扩展思考等内容, 并对整体程序代码按功能分块进行详细的注释, 更加易于读者理解。本书由郑洪庆、 安玲玲、 程蔚担任主编, 郑洪庆负责统稿。 蔡凡编写第 1 章,黄毓芯编写第 5、 8 章, 章玲编写第 6、 7 章, 陈双燕编写第 9 章, 林木泉编写第 10、 16章, 程蔚编写第 12、 13 章, 汤巧治编写第 11 章, 安玲玲编写第 14、 15 章, 其余内容由郑洪庆编写。
由于编者水平有限, 书中肯定存在错误和不足之处, 敬请各位同仁不吝批评指正。编 者
目前, 在市场上的众多产品中均能看到单片机的身影。 单片机以其高性价比、 高速度、 体积小、 可重复编程和方便功能扩展等优点, 在实践中得到了广泛应用。 目前, 51单片机 C 语言 ( 简称 C51 语言) 的使用越来越广泛, 大有取代汇编语言的趋势。 学习并熟练掌握 C51 语言, 对于单片机的系统设计和程序开发都非常有用。
本书为 “福建省本科高校重大教育教学改革研究项目 ( FBJG20170332) 、 泉州市高等学校中青年学科 ( 专业) 带头人培养计划、 福建省本科高校重大教育教学改革研究项目 ( JZ160227) 、 闽南理工学院校级应用型课程改革项目” 的研究成果。 本书特色如下:
1. 内容全面, 由浅入深
本书涵盖了 C51 语言程序设计所需掌握的各方面知识点。 首先详细介绍了 51 系列单片机的基础知识, 包括集成开发环境和开发流程。 然后对 C51 语言程序设计基础知识点结合实例进行全面详细的介绍, 包括数据类型与结构、 函数、 存储结构等内容。 接着对 C51 语言的程序设计方式进行了详细的讲解, 包括定时计数器、 中断设计、 串行接口设计等内容。 最后介绍了电子设计各个领域具有代表性的案例, 包括键盘设计、 总线接口、 单片机通信, 以及 A /D 转换等方面的内容。 最后设计了一个完整的综合应用实例。
2. 结合实例, 强化理解
本书在介绍每个相关知识点的同时, 均给出了其在程序设计中的编程示例, 每个例子都可以执行, 读者可以在学习独立知识点的同时, 根据应用示例举一反三, 快速掌握相应知识点在整个程序设计系统中的实际应用。
3. 联系硬件, 切合需求
本书不仅介绍 51 单片机的 C 语言, 还对单片机的硬件资源, 以及如何使用 C51 语言来编程控制单片机的各种片上资源进行了详细介绍, 主要包括单片机定时器/计数器、中断、 USART 串行通信接口、 EEPROM、 SPI 串行通信接口、 PWM 脉宽调制和 A /D转换。
4. 案例丰富, 分析全面
本书案例丰富, 基本上涵盖了电子设计的各个领域, 如键盘接口、 RS – 232 通信、SPI 总线、 掉电参数保护、 电动机控制、 电压检测等。 本书对每一个案例都详细介绍了相关的背景知识、 硬件知识、 电路设计、 程序设计, 以及扩展思考等内容, 并对整体程序代码按功能分块进行详细的注释, 更加易于读者理解。本书由郑洪庆、 安玲玲、 程蔚担任主编, 郑洪庆负责统稿。 蔡凡编写第 1 章,黄毓芯编写第 5、 8 章, 章玲编写第 6、 7 章, 陈双燕编写第 9 章, 林木泉编写第 10、 16章, 程蔚编写第 12、 13 章, 汤巧治编写第 11 章, 安玲玲编写第 14、 15 章, 其余内容由郑洪庆编写。
由于编者水平有限, 书中肯定存在错误和不足之处, 敬请各位同仁不吝批评指正。编 者
评论
还没有评论。