
本书基于51单片机基本型进行编写,共12讲和两个附录,依次介绍了单片机基础知识、MCS-51单片机结构与原理、MCS-51单片机汇编指令系统、汇编程序设计、51单片机C语言程序设计、单片机应用系统开发、MCS-51单片机中断系统、MCS-51单片机定时/计数器、单片机存储器与并行口的扩展、单片机串行接口与通信、MCS-51单片机接口技术和综合实例等内容。全书主要章节以“实例•模仿→内容讲解→实例•操作→实例•练习”为表述方式,通过适量的典型实例操作和重点知识相结合的方法对51单片机的使用进行了详细讲解。
本书在讲解过程中,一方面以精练的语言针对基础以及原理性知识进行较为全面的阐述,帮助读者了解和掌握51单片机工作的来龙去脉;另一方面针对关键性的知识进行细致讲解,并配合实例演示,帮助读者学习和掌握51单片机的使用方法。本书的实例介绍采用汇编语言和C语言相结合的方法,读者可以通过对比汇编语言和C语言编程实现的异同,加深对两种语言使用的认识。本书实例还采用proteus硬件仿真和keil软件仿真相结合的方法进行阐述,通过硬件仿真一方面可以加深读者对程序功能的认识,同时也为读者使用单片机完成功能打下基础。
本书语言简练、功能全面且层次递进,同时配有全程操作视频,包括相关寄存器的使用及程序的编写,读者可以通过观看视频来学习。
本书可作为51单片机初学者入门和提高的学习宝典,也可作为各大中专院校、培训机构的专业教材,还可作为从事单片机开发领域的专业人员的实用参考书。
前 言
单片机具有集成度高、结构简单、可靠性强和价格低廉等优点,如今已经被广泛应用于家用电器、智能仪表、工业控制以及机电一体化等各个领域。就CPU位数而言,现在市场上有4位单片机、8位单片机、16位单片机以及32位单片机等多种类别。其中在单片机发展历史中,Intel公司的MCS-51 8位单片机有着里程碑意义,基于MCS-51技术的51单片机现今仍有着十分广泛的应用。一个典型的51单片机由微处理器、存储器、输入/输出设备接口组成,同时还包括中断系统、定时/计数器以及串行通信接口等常用功能接口。通过对51单片机的学习,有助于读者学习和掌握其他类型的单片机。本书将利用硬件和软件仿真,配合丰富的实例、全视频讲解等方式对51单片机的工作原理以及方法进行全方位介绍。
本书的特色
本书主要章节以"实例·模仿→内容讲解→实例·操作→实例·练习"为表述方式,通过适量的典型实例操作和重点知识相结合的方法对51单片机的使用进行了详细讲解。在讲解过程中,一方面以精练的语言,针对基础和原理性知识进行较为全面的阐述,帮助读者了解和掌握51单片机工作的来龙去脉;另一方面针对关键性的知识进行细致讲解,并配合实例演示,帮助读者学习和掌握51单片机的使用方法。
本书的实例介绍采用汇编语言和C语言相结合的方法,读者可以通过对比汇编语言和C语言编程实现的异同,加深对两种语言使用的认识;同时还采用proteus硬件仿真和keil软件仿真相结合的方法进行阐述,通过硬件仿真可以加深读者对程序功能的认识,也为读者使用单片机完成功能打下基础。
本书提供了全部实例的操作录像,读者可以按照书中列出的视频路径,从光盘中打开相应的视频直接观看学习,这样学习起来更加轻松。视频包含语音讲解,可以用Windows Media Player等常用播放器观看。如果无法播放,可安装光盘中的tscc.exe插件。
本书内容
本书共12讲和两个附录。讲解中有大量原理图和表格,形象直观,便于读者理解和学习。另附有光盘,包含本书的教学视频及实例讲解的汇编语言和C语言工程项目文件,方便读者自学。
第1讲为单片机基础知识。通过对本讲的学习,读者可以学习并掌握单片机基本概念以及数制编码等基础知识。
第2讲为MCS-51单片机结构与原理。本讲主要阐述单片机的类型和基本结构,通过对本讲的学习,读者可以学习并掌握单片机中微处理器、存储器、输入/输出接口以及内部时序等相关知识。
第3~5讲为51单片机的编程语言,包括汇编指令系统、汇编程序设计和C语言程序设计。通过这几讲的学习,读者可以初步学习并了解51单片机汇编语言和C语言的编程方法。
第6讲为单片机的应用系统开发。本讲主要介绍利用proteus软件和keil软件相结合进行单片机仿真的方法,通过本讲的学习,读者可以学习并掌握proteus和keil软件的使用方法。
第7~11讲依次讲解了51单片机的中断系统、定时/计数器、存储器与并行口的扩展、串行接口与通信以及外部接口技术。通过这几讲的学习,读者可以较好地理解51单片机的典型模块和常用功能,并掌握51单片机的一般使用方法。
第12讲为综合实例,主要讲解步进电机的使用方法和LCD1602型液晶屏的显示, 以及如何使用PIC单片机对这两个模块进行控制。
本书附有两个附录,其内容为PIC指令表汇总及课后习题答案,供有需要的读者参考。
本书读者对象
本书具有操作性强、指导性强、语言简练等特点,可作为51单片机初学者入门和提高的学习宝典,也可作为各大中专院校、培训机构的专业教材,还可作为从事单片机开发领域的专业人员的实用参考书。
学习建议
建议读者按照图书编排的先后次序学习51单片机。从第3讲开始,读者可以先浏览"实例·模仿",然后打开该实例的光盘视频仔细观看,再根据实例的操作步骤一步步在keil和proteus ISIS中进行操作。如果遇到操作困难的地方,可以再次观看视频功能讲解部分,也可以阅读书本的相关内容,然后再动手进行操作;对于"实例·操作"部分,建议读者先根据书中的程序及注释进行相关操作,完成后再观看视频以加深印象,并解决自己动手操作中所遇到的问题;对于"实例·练习"部分,建议读者根据案例的要求自行练习,遇到不懂的地方再查看书中的程序或观看操作视频。
本书由王欣飞、谢龙汉、谢锋然编著,同时,腾龙工作室的杨依领、吴琼伟、娄军强、王益、王亚飞等人也参加了部分内容的编写。感谢您选用本书进行学习,请您将本书的意见和建议告诉我们,电子邮箱地址为tenlongbook@163.com。
祝您学习愉快!
编 者
II
目 录
第1讲 单片机基础知识 1
1.1 单片机概述 1
1.1.1 有关单片机的几个概念 1
1.1.2 单片机的发展历史 2
1.1.3 单片机的基本组成与特点 3
1.1.4 单片机的应用 7
1.1.5 单片机的发展趋势 8
1.2 单片机中的预备知识 8
1.2.1 数制及其转换 9
1.2.2 计算机中的常用编码 11
1.2.3 计算机中的运算 14
1.3 习题 17
第2讲 MCS-51单片机结构与原理 18
2.1 MCS-51单片机的类型与结构 18
2.1.1 MCS-51单片机的基本类型 18
2.1.2 MCS-51单片机的基本结构 20
2.1.3 MCS-51单片机的封装与引脚 24
2.2 MCS-51单片机存储器 27
2.2.1 单片机存储器组织结构 27
2.2.2 程序存储器 28
2.2.3 片外数据存储器 28
2.2.4 片内数据存储器 29
2.2.5 特殊功能寄存器 30
2.3 MCS-51单片机并行I/O口 31
2.3.1 P0口 31
2.3.2 P1口 32
2.3.3 P2口 33
2.3.4 P3口 33
2.3.5 并行口数据的读取 34
2.4 MCS-51单片机时序 35
2.4.1 时钟信号的产生 35
2.4.2 时序定时单位 36
2.4.3 单片机基本指令时序 37
2.5 MCS-51单片机工作方式 38
2.5.1 复位方式 38
2.5.2 程序执行方式 39
2.5.3 节电方式 40
2.6 习题 41
第3讲 MCS-51单片机汇编指令系统 42
3.1 实例·模仿--数据运算与转移 42
3.2 MCS-51单片机汇编指令概述 42
3.2.1 指令与指令系统 43
3.2.2 51单片机汇编指令 43
3.2.3 51汇编指令格式及常用符号解释 44
3.3 7种寻址方式 45
3.3.1 寄存器寻址 45
3.3.2 寄存器间接寻址 45
3.3.3 立即寻址 46
3.3.4 直接寻址 46
3.3.5 变址寻址 47
3.3.6 相对寻址 47
3.3.7 位寻址 48
3.4 51单片机指令系统 48
3.4.1 数据传送指令(29条) 48
3.4.2 算术运算指令(24条) 53
3.4.3 逻辑运算指令 56
3.4.4 移位指令 59
3.4.5 控制转移指令(17条) 59
3.4.6 位操作指令 63
3.5 实例·操作--BCD加减法实现 64
3.6 实例·练习--条件转移指令的
使用 65
3.7 习题 66
第4讲 汇编程序设计 68
4.1 实例·模仿--寄存器数据交换 68
4.2 汇编语言格式 68
4.3 常用伪指令 70
4.4 汇编程序的结构及常用子程序设计 73
4.4.1 顺序结构 73
4.4.2 分支结构 74
4.4.3 循环结构 75
4.4.4 子程序结构 76
4.4.5 查表程序 77
4.4.6 延时程序 78
4.5 实例·操作--数据排列和计数 78
4.6 实例·练习--并串行数据转换 80
4.7 习题 81
第5讲 51单片机C语言程序设计 82
5.1 实例·模仿--数值的循环累加 82
5.2 51单片机C语言编程概述 83
5.2.1 C语言特点 83
5.2.2 51单片机的C语言编程 84
5.2.3 C51与标准C语言编程的异同 84
5.3 C51的基本语法 85
5.3.1 基本数据类型 85
5.3.2 常量与变量 86
5.3.3 C51存储模式和地址访问 90
5.3.4 运算符及表达式 91
5.4 指针和数组 94
5.4.1 指针 94
5.4.2 数组 95
5.5 C51常用的编程控制语句 96
5.5.1 选择控制语句 96
5.5.2 循环控制语句 100
5.6 函数 101
5.7 实例·操作--多种结构类型程序
设计 103
5.8 实例·练习--数值判断及数学
运算 107
5.9 习题 109
第6讲 单片机应用系统开发 111
6.1 实例·模仿--keil及proteus
使用 111
6.2 单片机系统开发工具与过程 113
6.2.1 单片机的开发环境 113
6.2.2 单片机的开发过程 114
6.3 Keil仿真软件 114
6.3.1 keil软件简介 115
6.3.2 工程创建 115
6.3.3 添加程序代码 117
6.3.4 代码编译及调试 118
6.4 proteus仿真软件 120
6.4.1 proteus软件简介 120
6.4.2 利用proteus绘制电路图 120
6.4.3 proteus仿真 123
6.4.4 keil和proteus联调 124
6.5 实例·操作--并行口的读写 126
6.6 实例·练习--跑马灯程序 128
6.7 习题 131
第7讲 MCS-51单片机中断系统 132
7.1 实例·模仿--中断的使用 132
7.2 中断的概念 135
7.2.1 输入/输出数据传送方式 135
7.2.2 中断的定义 136
7.3 MCS-51中断控制系统 136
7.3.1 中断系统结构 136
7.3.2 中断源 137
7.3.3 中断控制寄存器 138
7.3.4 中断优先级结构和中断嵌套 140
7.4 MCS-51中断过程 142
7.4.1 中断响应条件 142
7.4.2 中断处理过程 143
7.4.3 中断响应时间 144
7.4.4 中断响应撤销 145
7.5 MCS-51单片机外部中断源的
扩展 146
7.5.1 定时/计数器溢出扩展法 146
7.5.2 硬件申请软件查询扩展法 147
7.6 实例·操作--中断扩展 148
7.7 实例·练习--跑马灯的中断
控制 152
7.8 习题 155
第8讲 MCS-51单片机定时/计数器 157
8.1 实例·模仿--定时器的使用 157
8.2 定时/计数器工作原理 160
8.3 定时/计数器控制 161
8.3.1 工作模式寄存器TMOD(89H) 161
8.3.2 控制寄存器TCON 162
8.4 定时/计数器工作方式 163
8.4.1 工作方式0 163
8.4.2 工作方式1 164
8.4.3 工作方式2 164
8.4.4 工作方式3 165
8.5 定时/计数器的初始化 166
8.5.1 初始化的步骤 166
8.5.2 计数器初值的计算 166
8.5.3 定时器初值的计算 167
8.6 实例·操作--方式2的应用 167
8.7 实例·练习--定时时间的扩展 169
8.8 习题 176
第9讲 单片机存储器与并行口的扩展 177
9.1 实例·模仿--8031最小系统
实现 177
9.2 系统扩展概述 178
9.2.1 单片机最小系统 178
9.2.2 片外三总线结构 179
9.2.3 系统扩展的几个方面 180
9.2.4 几种常用的扩展器件介绍 180
9.3 存储器扩展 182
9.3.1 单片机存储器扩展概述 182
9.3.2 程序存储器的扩展 183
9.3.3 数据存储器的扩展 187
9.4 并行I/O口的扩展 189
9.4.1 并行口扩展概述 189
9.4.2 TTL芯片扩展I/O口 190
9.4.3 8255芯片扩展I/O口 192
9.4.4 8155芯片扩展I/O口 199
9.5 实例·操作--存储器的扩展 202
9.6 实例·练习--8255的扩展 203
9.7 习题 205
第10讲 单片机串行接口与通信 206
10.1 实例·模仿--串行口I/O扩展 206
10.2 串行通信基础知识 209
10.2.1 两种基本通信方式 209
10.2.2 串行通信制式 209
10.2.3 串行通信两种基本方式 210
10.2.4 串行通信基本电路 212
10.3 51单片机串口通信原理 215
10.3.1 51单片机串口电路 215
10.3.2 串口控制寄存器(SCON和
PCON) 216
10.4 串行口的工作方式 217
10.4.1 方式0 217
10.4.2 方式1 218
10.4.3 方式2和方式3 218
10.5 波特率的指定 219
10.6 异步串行通信接口电路 220
10.6.1 TTL电平直接传输 221
10.6.2 RS232接口传输 221
10.6.3 RS422和RS485接口 223
10.7 单片机多机通信 224
10.8 实例·操作--串行通信实现 225
10.9 实例·练习--多机通信 229
10.10 习题 236
第11讲 MCS-51单片机接口技术 238
11.1 实例·模仿--LED显示器的
使用 238
11.2 单片机与显示器接口技术 242
11.2.1 常用显示器功能概述 243
11.2.2 7段LED显示器的工作方法 245
11.2.3 LCD显示器的工作方法 248
11.3 单片机与键盘接口技术 251
11.3.1 按键状态的输入与检测 251
11.3.2 独立式键盘 253
11.3.3 矩阵式键盘 254
11.4 单片机与D/A转换器接口技术 255
11.4.1 D/A转换技术概述 256
11.4.2 DAC0832基本结构 256
11.4.3 DAC0832与单片机接口 258
11.5 单片机与A/D转换器接口技术 260
11.5.1 A/D转换技术概述 260
11.5.2 ADC0809基本结构 260
11.5.3 ADC0809与单片机接口 262
11.6 实例·操作--LCD及数据
采集 263
11.7 实例·练习--数据采集系统 268
11.8 习题 272
第12讲 综合实例 274
12.1 步进电机控制 274
12.1.1 步进电机的工作原理 274
12.1.2 51单片机的步进电机控制 275
12.2 键盘输入和LCD显示 286
附录A 51单片机指令表 299
附录B 习题答案 303
IV
V