首页>参考读物>计算机科学与技术>软件与程序设计

零基础学单片机C语言程序设计 第3版
作者 : 赵建领 薛园园 等编著
丛书名 : 零基础学编程
出版日期 : 2014-07-07
ISBN : 978-7-111-44944-7
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 524
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

本书特色
⊙ 由浅入深,循序渐进,从零开始学单片机编程,一点都不难
⊙ 编程基础、编程进阶、编程应用、项目实战、上机练习、面试指南
⊙ 208个实例、7个案例、95个练习题、42个面试题

超值、大容量DVD
⊙ 本书教学视频
⊙ 本书源代码
⊙ 本书教学PPT
⊙ 本书习题答案

本书技术支持
⊙ 论坛:http://www.rzchina.net

丛书特色
⊙ 零门槛学习,没有任何基础便可轻松掌握 ⊙ 每个知识点都对应相应的实例讲解,容易理解
⊙ 给出编程经验、编程陷阱、编程技巧和编程谬误 ⊙ 提供上机实践练习题和常见面试题及解答
⊙ 源代码提供了详细的注释,阅读起来无障碍 ⊙ 提供典型案例帮助读者提高开发水平
⊙ 提供配套的多媒体教学视频,学习效果更好 ⊙ 提供了专门的售后服务论坛:http://www.rzchina.net

本书精华内容
● 单片机开发概述
● 构建C51集成开发环境
● 单片机C51语言程序设计基础
● C51语句和流程
● C51的数据结构
● C51的函数
● C51的存储结构
● C51的预处理命令和用户配置文件
● C51定时器/计数器程序设计
● C51中断程序设计
● C51串行接口程序设计
● C51下的RTX-51实时多任务操作系统
● Keil μVison3的调试和仿真
● C51矩阵式键盘程序设计
● C51液晶显示模块
● C51模拟I2C总线
● C51模拟单总线接口
● 实时时钟芯片应用
● C51通信接口程序设计
● 道路交通灯多任务控制系统
● 常见面试题及解答

图书前言

第一台电子数字计算机的诞生引发了20世纪的电子工业革命。如今,计算机特别是单片微型计算机(简称单片机)得到了迅猛发展。单片机以其高性价比、高速度、体积小、可重复编程和方便功能扩展等优点,得到了广泛应用。今天,市场上的众多产品中均能看到单片机的身影,同时单片机也成为电子爱好者的必修课程。单片机的程序设计可以采用汇编语言和单片机C51语言。目前,单片机C51语言的使用越来越广泛,大有取代汇编语言的趋势。学习并熟练掌握单片机C51语言,对于单片机的系统设计和程序开发都非常适用。
  为了方便广大读者学习和参考,本书详细讲解了单片机C51语言,以及如何使用单片机C51语言来编程控制单片机的硬件资源。最后,通过多个典型实例讲解了单片机C51语言的综合应用。通过阅读本书,读者不但可以掌握单片机C51语言,而且可以迅速进行单片机的程序开发。
本书特点
  1.内容全面,由浅入深
  本书涵盖了单片机C51语言程序设计所需掌握的各方面知识点。首先详细介绍了51系列单片机的基础知识,包括C51的集成开发环境和开发流程。其次对单片机C51语言程序设计基础知识点结合实例进行了全面详细的介绍,包括数据类型与结构、函数、存储结构以及预处理命令等内容。接着对单片机C51语言的程序设计方式进行了详细的讲解,包括定时计数器、中断设计、串行接口设计以及实时多任务操作系统等内容。最后介绍了电子设计各领域具有代表性的案例,包括键盘设计、液晶显示、总线接口、单片机通信以及多任务系统等方面内容。
  2.结合实例,强化理解
  本书在介绍每个相关知识点的同时,均给出了其在程序设计中的编程示例,每个例子都可以进行仿真与执行,读者可以在学习独立知识点的同时,根据应用示例举一反三,快速掌握相应的知识点在整个程序设计系统中的实际应用。
  3.联系硬件,切合需求
  本书不仅仅介绍单片机C51语言本身,还对单片机的硬件资源,以及如何使用单片机C51语言来编程控制单片机的各种片上资源进行了详细介绍。主要包括单片机定时器/计数器、中断、串行通信接口和RTX-51实时多任务操作系统。
  4.仿真调试,熟练应用
  本书对单片机C51语言的典型开发环境Keil μ Vision3进行了详细介绍。在讲解过程中,又结合了完整的C51程序实例,细致阐述了如何仿真调试各种单片机片上资源。读者可以加深对程序的理解,并做到熟练应用。
  5.案例丰富,分析全面
  本书案例丰富,基本涵盖了电子设计的各个领域,如键盘接口、LCD、单总线接口、I2C总线、实时时钟、双机和多机通信、RTX-51实时多任务操作系统等。本书对每一个案例都详细介绍了其相关的背景知识、硬件知识、电路设计、程序设计以及仿真分析等内容,并对整体程序代码按功能分块进行详细注释,更加易于读者理解。
本书内容
  本书以实用性、系统性和完整性为重点,详细介绍了单片机C51语言程序设计的各方面知识,对于每一个知识点均给出了详细的程序设计方法和编程示例,最后还提供了一些各领域的典型应用案例。本书分为四篇,共21章内容。
  第一篇是单片机C51概述,共分为两章,主要介绍了51系列单片机的发展、开发流程和集成开发环境等。
  第1章为51系列单片机开发概述,主要介绍了51系列单片机的发展、开发流程和程序设计语言。
  第2章为构建C51的集成开发环境,主要介绍了单片机的最小硬件系统的组成、Keil μVision3的安装及其集成开发环境,以及Keil μ Vision3中C51的开发流程。
  第二篇是C51语言程序设计指南,共分为6章,详细讲解了C51语言的程序设计的基础知识点。
  第3章为C51语言程序设计基础,主要介绍了C51语言的标识符和关键字、数据类型、变量及其作用域、分隔符和修饰符、运算符及表达式等。
  第4章为C51语句和流程,主要介绍了C51语言中的声明语句、表达式语句、复合语句、条件语句、开关判断语句,以及循环语句和函数调用语句,并介绍了用C51语言进行程序设计的常用流程控制结构。
  第5章为C51的数据结构,主要介绍了C51中的数组、指针、结构、联合、枚举与位域以及自定义等数据类型。
  第6章为C51的函数,主要包括函数的定义、调用和main函数,并结合实例,对Keil μVision3集成开发环境下常用的库函数进行了详细介绍。
  第7章为C51的存储结构,主要介绍了51系列单片机的存储器结构,C51中的存储类型、扩展数据类型、变量的存储模式以及存储器指针等内容。
  第8章为C51的预处理命令和用户配置文件,主要介绍了C51中的各种预处理指令和控制参数,并介绍了C51的用户配置文件,包括启动代码文件、变量初始化文件、基本I/O函数文件以及分组配置文件等。
  第三篇是C51单片机编程指南,共分为5章,详细讲解了单片机定时器/计数器、串行接口程序设计、中断程序设计、RTX-51实时多任务操作系统以及调试和仿真内容。在讲解的过程中,对每一个知识点都提供了详细的程序设计方法和程序示例。
  第9章为C51定时器/计数器程序设计,主要介绍了定时器/计数器的内部结构、控制寄存器,以及各种工作模式及其程序设计方法等。
  第10章为C51的中断程序设计,主要介绍了中断的类型、中断系统各标志及其程序访问、中断的处理过程以及各种中断源的程序设计等。
  第11章为C51串行接口程序设计,主要介绍了单片机的串行口结构及其程序控制,并详细介绍了串行口的4种工作模式及其程序示例。
  第12章为C51下的RTX-51实时多任务操作系统,主要介绍了RTX-51的系统函数、任务调度、任务管理、系统配置以及技术参数等。
  第13章为Keil μ Vision3的调试和仿真,主要介绍了Keil μ Vision3的程序调试模式、断点以及调试命令等,并介绍了各种单片机片上系统资源的仿真操作方法。
  第四篇是C51程序设计典型案例,共分为8章,详细介绍了单片机在一些常用领域的使用,其中均给出了完整的电路图、程序分析以及仿真调试的相关内容;同时有针对性地为读者提供了常见的面试题及解答。
  第14章为C51矩阵式键盘程序设计,主要介绍了常用的键盘结构,单片机与矩阵式键盘的编程接口,并给出了具体的实例。
  第15章为C51液晶显示模块,主要介绍了液晶显示模块的类型,液晶显示控制驱动器,并通过一个常用的液晶显示器介绍了如何使用单片机来实现汉字和图形的显示。
  第16章为C51模拟I2C总线,主要介绍了I2C总线的工作原理,I2C总线的传输协议以及程序实现,最后通过具体的实例介绍了单片机读写I2C器件的操作。
  第17章为C51模拟单总线接口,主要介绍了单总线接口的工作原理以及数据传输,最后通过具体的实例介绍了单总线温度传感器的应用。
  第18章为实时时钟芯片应用,主要介绍了常用的实时时钟芯片原理及数据传输方式,并给出了单片机实现时钟操作的具体实例进行说明。
  第19章为C51通信接口程序设计,主要介绍了常用的串行通信接口标准,接口转换芯片以及双机和多机通信的原理。最后分别给出了C51语言双机和多机通信的实例。
  第20章为道路交通灯多任务控制系统,主要介绍了交通灯多任务控制系统的原理,并通过RTX-51 Tiny实时多任务操作系统来实现道路交通的模拟控制,最后还介绍了多任务程序的仿真调试。
  第21章为常见面试题及解答,主要介绍了C51程序设计和与MCS-51硬件相关的面试题,方便读者做入职准备。
  本书结构紧凑,知识点涉及全面,内容翔实,案例丰富。由于本书内容较多,编写时间较仓促,书中如有遗漏或不足之处,恳请广大读者提出宝贵意见,以便于进一步改进。
读者对象
   大学、大专、培训学校等相关专业的学生及教师
   单片机初学者
   电子设计爱好者
   电子工程师
   系统开发人员
本书编写人员
  本书主要由赵建领、薛园园编著,其他参与编著和资料整理的人员有冯华君、刘博、刘燕、叶青、张军、张立娟、张艺、彭涛、徐磊、戎伟、朱毅、李佳、李玉涵、杨利润、杨春娇、武鹏、潘中强、王丹、王宁、王西莉、石淑珍、程彩红、邵毅、郑丹丹、郑海平及顾旭光。

   编 者 
   2008年3

上架指导

计算机\程序设计

作者简介

赵建领 薛园园 等编著:暂无简介

图书目录

前言
第一篇 单片机C51概述
第1章 单片机开发概述 1
1.1 单片机介绍 1
1.1.1 单片机简介 1
1.1.2 单片机的主要组成部分 2
1.1.3 单片机引脚及功能 3
1.1.4 单片机的应用领域 4
1.2 单片机开发流程 5
1.2.1 系统分析 5
1.2.2 单片机选型 5
1.2.3 程序设计 8
1.2.4 仿真测试 9
1.2.5 程序下载 9
1.3 单片机开发语言概述 9
1.3.1 单片机汇编语言 9
1.3.2 单片机C51语言 10
1.4 小结 11
1.5 习题与上机实践 11
第2章 构建C51集成开发环境 12
2.1 51系列单片机的最小硬件系统 12
2.1.1 时钟振荡电路 13
2.1.2 单片机的复位电路 14
2.2 Keil μ Vision3集成开发环境 15
2.2.1 Keil μ Vision3简介 16
2.2.2 Keil μ Vision3安装 16
2.2.3 Keil μ Vision3界面概览 17
2.2.4 Keil μ Vision3的各种常用窗口 18
2.3 Keil μ Vision3中C51的开发流程 22
2.3.1 创建项目 22
2.3.2 创建源文件 22
2.3.3 编译项目 24
2.3.4 仿真调试 24
2.3.5 程序下载 25
2.4 小结 25
2.5 习题与上机实践 26
第二篇 C51语言程序设计指南
第3章 C51语言程序设计基础 27
3.1 C51程序的基本结构 27
3.2 C51编程规范及注意事项 28
3.2.1 注释 28
3.2.2 命名 29
3.2.3 格式 29
3.3 C51的标识符与关键字 30
3.3.1 标识符 30
3.3.2 关键字 30
3.4 C51的变量类型 32
3.4.1 C51的数据类型 32
3.4.2 整型变量 33
3.4.3 浮点型变量 34
3.4.4 字符型变量 35
3.4.5 指针型变量 36
3.4.6 无值型变量 37
3.5 C51的常量类型 37
3.5.1 整型常量 37
3.5.2 浮点型常量 38
3.5.3 字符型常量 39
3.5.4 转义字符 40
3.6 变量作用域 40
3.6.1 变量作用域的基本规则 41
3.6.2 自动变量 42
3.6.3 全局变量 43
3.6.4 静态变量 44
3.6.5 寄存器变量 45
3.7 分隔符与const修饰符 45
3.7.1 C51分隔符 45
3.7.2 const修饰符 45
3.8 C51的运算符 47
3.8.1 算术运算符 47
3.8.2 逻辑运算符 49
3.8.3 关系运算符 50
3.8.4 位运算符 50
3.8.5 “,”运算符 53
3.8.6 “ ”运算符 54
3.8.7 “sizeof”运算符 54
3.8.8 地址操作运算符 55
3.8.9 联合操作运算符 55
3.8.10 强制类型转换运算符 56
3.8.11 运算符优先级和结合性 57
3.9 C51的表达式 58
3.9.1 算术表达式 58
3.9.2 赋值表达式 59
3.9.3 逗号表达式 60
3.9.4 关系表达式 61
3.9.5 逻辑表达式 62
3.10 小结 63
3.11 上机实践 63
第4章 C51语句和流程 65
4.1 C51语句 65
4.1.1 变量声明语句 65
4.1.2 表达式语句 66
4.1.3 复合语句 66
4.1.4 循环语句 67
4.1.5 条件语句 70
4.1.6 开关语句 74
4.1.7 程序跳转语句 76
4.1.8 函数调用语句 78
4.1.9 函数返回语句 79
4.1.10 空语句 80
4.2 C51的流程控制结构及程序示例 80
4.2.1 顺序结构 80
4.2.2 选择结构 80
4.2.3 循环结构 81
4.2.4 流程控制结构程序示例 81
4.3 小结 82
4.4 上机实践 83
第5章 C51的数据结构 85
5.1 C51的数组 85
5.1.1 数组定义及数组元素 85
5.1.2 一维数组 87
5.1.3 一维字符串数组 90
5.1.4 二维数组 92
5.1.5 二维字符串数组 95
5.1.6 多维数组 96
5.2 C51的指针 96
5.2.1 指针及相关概念 97
5.2.2 指针变量的定义及赋值 97
5.2.3 取址运算符和取值运算符 100
5.2.4 指针变量的运算 102
5.2.5 C51的字符指针 103
5.2.6 C51的数组指针 104
5.2.7 C51的指针数组 109
5.3 C51的结构 110
5.3.1 结构的声明 110
5.3.2 结构变量的声明 111
5.3.3 结构变量的初始化 113
5.3.4 结构变量的使用 114
5.3.5 C51的结构数组 115
5.3.6 C51的结构指针 116
5.3.7 C51的嵌套式结构 119
5.3.8 C51的位结构 121
5.4 C51的联合 122
5.4.1 联合的声明和使用 122
5.4.2 结构和联合的区别 126
5.5 C51的枚举 127
5.5.1 枚举和枚举变量的声明 128
5.5.2 枚举变量的赋值和使用 129
5.6 C51的位域 131
5.6.1 位域和位域变量的声明 131
5.6.2 位域变量的使用 133
5.7 C51的类型声明 134
5.7.1 类型声明的定义 134
5.7.2 类型声明的使用 135
5.8 小结 135
5.9 上机实践 135
第6章 C51的函数 137
6.1 函数 137
6.1.1 函数的概述 137
6.1.2 函数的分类 138
6.1.3 函数的定义 139
6.1.4 函数的参数 141
6.1.5 函数的返回值 146
6.2 函数的作用域 146
6.2.1 函数的作用范围 146
6.2.2 函数代码的作用域 147
6.2.3 函数变量的作用域 147
6.3 函数的调用 148
6.3.1 赋值调用 149
6.3.2 引用调用 149
6.3.3 递归调用 150
6.3.4 嵌套调用 151
6.4 C51的main函数 153
6.4.1 无参main函数 153
6.4.2 有参main函数 153
6.5 C51的库函数 154
6.5.1 I/O函数库 154
6.5.2 标准函数库 166
6.5.3 字符函数库 173
6.5.4 字符串函数库 184
6.5.5 内部函数库 199
6.5.6 数学函数库 201
6.5.7 绝对地址访问函数库 207
6.5.8 变量参数表函数库 210
6.5.9 全程跳转函数库 211
6.5.10 偏移量函数库 212
6.6 小结 213
6.7 上机实践 213
第7章 C51的存储结构 215
7.1 单片机的存储器结构 215
7.1.1 51系列单片机的存储区域 215
7.1.2 片内RAM的存储器结构 216
7.2 C51的存储类型 216
7.2.1 code存储类型 217
7.2.2 data存储类型 217
7.2.3 bdata存储类型 218
7.2.4 idata存储类型 218
7.2.5 pdata存储类型 219
7.2.6 xdata存储类型 219
7.3 C51的扩展数据类型 219
7.3.1 sfr和sfr16型变量 220
7.3.2 sbit型变量 220
7.3.3 bit型变量 221
7.3.4 51单片机寄存器的定义 221
7.4 C51变量的存储模式 223
7.4.1 Small模式 224
7.4.2 Compact模式 224
7.4.3 Large模式 224
7.5 C51的存储器指针 225
7.5.1 一般指针 225
7.5.2 存储器指针 226
7.6 小结 228
7.7 上机实践 228
第8章 C51的预处理命令和用户配置文件 229
8.1 C51的预处理命令概述 229
8.2 文件包含指令 230
8.2.1 #include命令 230
8.2.2 C51常用的头文件 231
8.3 宏定义指令 232
8.3.1 #define命令 232
8.3.2 #undef命令 234
8.4 条件编译指令 235
8.4.1 #if、#else和#endif命令 235
8.4.2 #elif命令 236
8.4.3 #ifdef、#ifndef命令 237
8.5 其他编译指令 238
8.5.1 #line命令 238
8.5.2 #error命令 238
8.5.3 #pragma命令 239
8.6 C51的用户配置文件 240
8.6.1 C51的启动代码详解 240
8.6.2 C51的变量初始化文件 246
8.6.3 C51的基本I/O函数文件 246
8.6.4 C51的分组配置文件 246
8.7 小结 247
8.8 上机实践 247
第三篇 C51单片机编程指南
第9章 C51定时器/计数器程序设计 249
9.1 定时器/计数器简介 249
9.1.1 定时器/计数器的结构 249
9.1.2 方式控制寄存器TMOD 250
9.1.3 中断控制寄存器TCON 251
9.1.4 定时器/计数器的初值 253
9.1.5 定时器/计数器的初始化 253
9.2 定时器/计数器工作模式0的C51程序设计 253
9.2.1 定时器/计数器工作模式0 254
9.2.2 定时器/计数器模式0的程序设计 254
9.3 定时器/计数器工作模式1的C51程序设计 255
9.3.1 定时器/计数器工作模式1 255
9.3.2 定时器/计数器模式1的程序设计 256
9.4 定时器/计数器工作模式2的C51程序设计 257
9.4.1 定时器/计数器工作模式2 257
9.4.2 定时器/计数器模式2的程序设计 258
9.5 定时器/计数器工作模式3的C51程序设计 259
9.5.1 定时器/计数器工作模式3 259
9.5.2 定时器/计数器模式3的程序设计 259
9.6 小结 261
9.7 上机实践 261
第10章 C51中断程序设计 263
10.1 单片机的中断系统 263
10.1.1 单片机中断的典型概念 263
10.1.2 单片机的中断类型 264
10.1.3 中断请求标志及其C51访问 265
10.1.4 中断允许标志及其C51访问 268
10.1.5 中断优先级标志及其C51访问 269
10.1.6 中断的C51处理过程 269
10.2 外部中断源的C51程序设计 273
10.3 定时中断源的C51程序设计 274
10.4 串行中断源的C51程序设计 275
10.5 小结 276
10.6 上机实践 276
第11章 C51串行接口程序设计 277
11.1 51系列单片机的串行接口 277
11.1.1 单片机串行通信概述 277
11.1.2 单片机串行接口的内部结构 278
11.1.3 串行接口控制寄存器SCON 279
11.1.4 特殊功能寄存器PCON 282
11.2 串行口工作模式0的C51程序设计 282
11.2.1 模式0的波特率 283
11.2.2 模式0的数据发送及C51程序设计 283
11.2.3 模式0的数据接收及C51程序设计 285
11.3 串行口工作模式1的C51程序设计 287
11.3.1 模式1的波特率 287
11.3.2 模式1的数据发送及C51程序设计 289
11.3.3 模式1的数据接收及C51程序设计 291
11.4 串行口工作模式2的C51程序设计 293
11.4.1 模式2的波特率 293
11.4.2 模式2的数据发送及C51程序设计 293
11.4.3 模式2的数据接收及C51程序设计 295
11.5 串行口工作模式3的C51程序设计 297
11.5.1 模式3的波特率 297
11.5.2 模式3的数据发送及C51程序设计 299
11.5.3 模式3的数据接收及C51程序设计 300
11.6 小结 303
11.7 上机实践 303
第12章 C51下的RTX-51实时多任务操作系统 304
12.1 RTX-51实时多任务操作系统简介 304
12.1.1 单任务程序与多任务程序的比较 304
12.1.2 RTX-51实时多任务操作系统种类 306
12.2 RTX-51的系统函数 308
12.2.1 中断调用的发送信号函数 308
12.2.2 清除信号标志函数 308
12.2.3 启动任务函数 309
12.2.4 删除任务函数 309
12.2.5 获取当前任务号函数 310
12.2.6 任务调用的发送信号函数 310
12.2.7 等待函数 311
12.3 RTX-51的任务调度 313
12.3.1 循环任务调度 314
12.3.2 事件任务调度 315
12.3.3 信号任务调度 316
12.3.4 优先级及抢先任务切换 316
12.3.5 RTX-51的主要概念和特性 318
12.4 RTX-51 Tiny的任务管理 318
12.4.1 RTX-51 Tiny的任务状态 319
12.4.2 RTX-51 Tiny的事件 319
12.4.3 RTX-51 Tiny的任务切换 319
12.5 RTX-51 Tiny的系统配置 320
12.5.1 RTX-51 Tiny系统配置文件 320
12.5.2 RTX-51 Tiny系统参数 322
12.6 RTX-51 Tiny的要求及注意事项 323
12.6.1 RTX-51 Tiny的要求及技术参数 323
12.6.2 RTX-51 Tiny的注意事项 324
12.7 RTX-51 FULL实时多任务操作系统简介 325
12.7.1 RTX-51 FULL函数一览 325
12.7.2 RTX-51的技术参数 327
12.8 小结 328
12.9 上机实践 328
第13章 Keil μ Vision3的调试和仿真 329
13.1 Keil μ Vision3的程序调试 329
13.1.1 Keil μ Vision3的程序调试模式 329
13.1.2 断点 331
13.1.3 性能分析器 332
13.1.4 代码覆盖分析器 334
13.1.5 调试命令 335
13.2 系统资源仿真 336
13.2.1 并行I/O端口仿真 337
13.2.2 寄存器仿真 338
13.2.3 中断仿真 341
13.2.4 串行接口仿真 344
13.2.5 定时器/计数器仿真 348
13.2.6 看门狗定时器的仿真 354
13.2.7 低功耗仿真 356
13.3 小结 357
13.4 上机实践 357
第四篇 C51程序设计典型案例
第14章 C51矩阵式键盘程序设计 359
14.1 键盘接口概述 359
14.1.1 独立式按键和矩阵式键盘 359
14.1.2 键盘设计注意事项 360
14.2 矩阵式键盘C51程序设计 361
14.2.1 扫描法及C51程序设计 361
14.2.2 线反转法及C51程序设计 364
14.2.3 中断法及C51程序设计 365
14.3 C51矩阵式键盘设计实例 367
14.3.1 电路图 367
14.3.2 程序设计 368
14.4 小结 371
14.5 上机实践 371
第15章 C51液晶显示模块 372
15.1 液晶显示模块概述 372
15.1.1 液晶显示模块的分类 372
15.1.2 液晶显示模块的特点 373
15.2 液晶显示控制驱动器 374
15.2.1 液晶显示控制驱动器概述 374
15.2.2 液晶显示控制驱动器功能说明 374
15.3 液晶显示控制器指令集 378
15.3.1 基本指令集 378
15.3.2 扩充指令集 380
15.3.3 控制器指令操作方式 382
15.4 点阵图形型液晶操作子函数 384
15.4.1 指令操作子函数 384
15.4.2 数据操作子函数 384
15.4.3 初始化子函数 385
15.4.4 清屏子函数 386
15.4.5 汉字显示子函数 386
15.4.6 图形显示子函数 387
15.5 液晶汉字显示实例 388
15.5.1 电路设计 388
15.5.2 程序设计 390
15.6 液晶图形显示实例 392
15.6.1 图形数组的提取 392
15.6.2 图形显示程序设计 393
15.7 小结 395
15.8 上机实践 396
第16章 C51模拟I2C总线 397
16.1 I2C总线概述 397
16.1.1 I2C总线工作原理 397
16.1.2 I2C总线器件的寻址方式 398
16.1.3 I2C总线数据操作 399
16.2 I2C总线接口EEPROM存储器 400
16.3 C51模拟I2C总线协议 401
16.3.1 延时子函数 401
16.3.2 起始信号子函数 401
16.3.3 终止信号子函数 402
16.3.4 应答信号子函数 402
16.3.5 非应答信号子函数 403
16.3.6 应答位检查子函数 403
16.3.7 单字节写子函数 404
16.3.8 单字节读子函数 404
16.3.9 多字节写子函数 405
16.3.10 多字节读子函数 405
16.4 C51读写EEPROM实例 407
16.4.1 电路设计 407
16.4.2 程序设计 408
16.4.3 仿真分析 410
16.5 小结 411
16.6 上机实践 411
第17章 C51模拟单总线接口 412
17.1 单总线接口概述 412
17.1.1 单总线接口结构 412
17.1.2 单总线通信格式 412
17.1.3 单总线的特点 413
17.2 单总线温度传感器及C51操作 413
17.2.1 温度传感器DS18S20概述 413
17.2.2 DS18S20的数据操作及指令 414
17.2.3 DS18S20的访问流程 417
17.2.4 温度转换操作 417
17.2.5 C51模拟单总线操作子函数 418
17.3 C51单总线温度传感器实例 426
17.3.1 电路设计 426
17.3.2 程序设计 428
17.3.3 仿真分析 431
17.4 小结 431
17.5 上机实践 432
第18章 实时时钟芯片应用 433
18.1 实时时钟芯片DS1302概述 433
18.1.1 实时时钟芯片DS1302引脚 433
18.1.2 实时时钟芯片DS1302的日期操作 434
18.1.3 实时时钟芯片DS1302的控制操作 435
18.1.4 实时时钟芯片DS1302的RAM操作 436
18.1.5 实时时钟芯片DS1302数据传输方式 437
18.2 DS1302的控制子函数 438
18.2.1 复位子函数 438
18.2.2 字节读取子函数 439
18.2.3 字节写入子函数 439
18.2.4 年设置子函数 439
18.2.5 月设置子函数 440
18.2.6 日设置子函数 440
18.2.7 星期设置子函数 440
18.2.8 小时设置子函数 441
18.2.9 分钟设置子函数 441
18.2.10 秒设置子函数 441
18.2.11 写保护子函数 442
18.2.12 写允许子函数 442
18.2.13 充电控制子函数 442
18.2.14 初始化子函数 442
18.2.15 RAM字节写入子函数 443
18.2.16 时钟显示子函数 444
18.2.17 多字节突发方式读取RAM子函数 444
18.2.18 多字节突发方式写入RAM子函数 445
18.3 C51读写实时时钟芯片实例 445
18.3.1 电路图 446
18.3.2 程序设计 446
18.3.3 仿真分析 450
18.4 小结 452
18.5 上机实践 452
第19章 C51通信接口程序设计 453
19.1 串行接口通信概述 453
19.1.1 串行接口通信标准 453
19.1.2 串行接口芯片 458
19.1.3 双机及多机通信原理 459
19.2 C51双机通信实例 460
19.2.1 电路原理图 460
19.2.2 发送方程序设计 461
19.2.3 接收方程序设计 463
19.3 C51多机通信实例 464
19.3.1 主机程序设计 464
19.3.2 从机程序设计 468
19.4 小结 472
19.5 上机实践 472
第20章 道路交通灯多任务控制系统 473
20.1 交通灯多任务控制系统概述 473
20.2 C51交通灯多任务控制系统 474
20.2.1 电路原理图 474
20.2.2 建立RTX-51 Tiny项目 475
20.2.3 多任务划分 476
20.2.4 多任务程序设计 476
20.2.5 串行通信及命令获取子函数 483
20.2.6 仿真调试 488
20.3 小结 490
20.4 上机实践 490
第21章 常见面试题及解答 491
21.1 C51编程类面试题 491
21.1.1 预处理 491
21.1.2 C51语言基础 492
21.1.3 循环 494
21.1.4 位操作 495
21.1.5 实用子函数 496
21.2 与MCS-51硬件相关的面试题 498
21.2.1 MCS-51硬件基础 498
21.2.2 硬件编程 500

教学资源推荐
作者: 刘海燕 荆涛 主编 王子强 武卉明 杨健康 周睿 编著
作者: Mario Hewardt Daniel Pravat
作者: 马玉春 李壮 张鲲 黄应红 编著
作者: Brian W.Kernighan,Rob Pike
参考读物推荐
作者: 朱仲杰
作者: 樊松阳 著
作者: 王宇韬 房宇亮 肖金鑫 编著