搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
51单片机开发入门与典型实例
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787115212467
  • 作      者:
    王守中,聂元铭编著
  • 出 版 社 :
    人民邮电出版社
  • 出版日期:
    2009
收藏
编辑推荐
  经典图书全新升级;实例丰富,步骤详尽;提供教学课件。
展开
内容介绍
  《51单片机开发入门与典型实例(第2版)》以51单片机为主线,按照初学者学习的一般步骤,详细介绍了单片机开发的入门知识和经典实例。全书分5篇,共25章,首先介绍单片机开发环境的构建方法、单片机应用程序开发流程、单片机指令系统和单片机C语言基础等单片机入门知识,然后详细讲解实际开发中常用的单片机汇编语言开发实例和单片机C语言开发实例,最后讲解时钟设计、液晶显示和制作单片机实验板等单片机应用开发综合实例。
  《51单片机开发入门与典型实例(第2版)》语言通俗、实例丰富、代码分析详尽,有较强的实用性和参考价值,适合大专院校计算机、电子、电气、控制及相关专业学生学习参考,也可供单片机开发人员和系统设计人员参考使用。
展开
精彩书摘
  4.注意程序的模块化设计与分析
  在程序设计时,一般是将一个复杂工程分解若干个模块,模块是具有单一功能,并具有相对独立性的部分。分解后的各模块比较小,既容易编写,又容易调试。然后再把各模块有机地联系在一起,便组成一个大程序。
  所以,我们在分析一个大程序时,首先要弄清它是由几个模块所组成,每个模块主要功能是什么,模块之间是怎样联系在一起的。这样先有个粗线条,有个总体轮廓,然后再逐步深入分析,即使模块中有的语句一时没能弄清楚也不要紧,可以通过模拟仿真,在实验板上实验,不断加深理解。
  每个子程序就是一个模块,子程序段的特点是:开始行有程序标号,以便主程序调用:末尾行有子程序返回指令RET或RETI。
  5.掌握程序的3种基本结构特点
  任何复杂的程序都可以看成是一个个基本程序结构的组合。基本程序结构可归纳为3种:顺序结构、选择结构、循环结构。在这里只是简单地介绍一下,希望读者在学习中逐步加深体会。(1)顺序结构程序。顺序结构程序是指一种无分支的直线程序,即从第一条指令开始依次执行每一条指令,直到最后一条结束。顺序结构程序是一种最简单、最基本的程序,是构成复杂程序的基础。(2)选择结构程序。选择结构程序利用条件转移指令,根据条件是否满足来改变程序执行的次序。选择结构使程序智能化,是设计程序和分析程序的重要部分。
  选择结构的关键是如何判断分支条件,指令系统中可以直接用于判断分支条件的指令有:累加器判零条件转移指令JZ(JNz),比较条件转移指令CJNE和位条件转移指令JC(JNC)、JB(INB)、JBC等。
  通过这些指令,可以完成各种各样的条件判断。但是,每执行一条判断指令,只能形成两路分支,若要形成多路分支,就要进行多次判断。(3)循环结构程序。循环程序也是常用的一种程序结构形式。当在程序设计中需要某一段程序重复执行多次时,可采用循环结构,如软件延时程序就是典型的循环结构程序。
  掌握程序的3种基本结构特点,会为以后分析程序、编写程序打下坚实的基础。
展开
目录
第1篇 51单片机快速入门篇

第1章 单片机的历史和分类 2
1.1 单片机名称的由来 2
1.1.1 单片机名称的由来 2
1.1.2 单片机的特点 3
1.1.3 单片机的应用 3
1.2 单片机的分类 4
1.2.1 按用途分类 4
1.2.2 按位数分类 4
1.2.3 按系列分类 4
1.3 入门级单片机的选择 5
1.3.1 入门学习选择什么样的单片机 5
1.3.2 80C51与AT89C51的区别 5
1.3.3 AT89S51与AT89C51的区别 6

第2章 单片机开发环境的建立 7
2.1 学习单片机的必备工具 7
2.1.1 计算机 7
2.1.2 单片机集成开发系统软件 7
2.1.3 51编程器 8
2.1.4 实验板 9
2.2 集成开发软件的下载和安装 9
2.2.1 从网上免费下载集成开发软件 9
2.2.2 MedWin集成开发软件的安装 9
2.3 编程器的安装与使用 11
2.3.1 编程器的连接 11
2.3.2 安装编程器软件 12
2.3.3 编程器的使用 12
2.4 实验板的使用 13

第3章 单片机程序开发流程 14
3.1 编写一个简单的单片机程序 14
3.1.1 目的 14
3.1.2 工作原理 14
3.1.3 用汇编语言编写程序 15
3.2 用MedWin开发单片机程序 15
3.2.1 编写源程序 15
3.2.2 创建项目 16
3.2.3 编译/汇编 16
3.2.4 输出Intel HEX文件 17
3.3 把目标文件写入单片机 17
3.3.1 选择单片机型号 17
3.3.2 进行擦除 18
3.3.3 写入文件 18
3.4 在实验板上实验 18

第4章 单片机寄存器 19
4.1 80C51单片机引脚简介 19
4.2 单片机工作的基本条件 20
4.2.1 接电源 21
4.2.2 接石英晶体振荡器和复位 21
4.2.3 单片机内装入程序 21
4.3 单片机的存储器 22
4.3.1 单元与位 22
4.3.2 字、字节和数制 22
4.3.3 程序存储器 23
4.3.4 数据存储器 24
4.4 单片机工作的基本原理 25
4.4.1 引脚与寄存器的关系 26
4.4.2 单片机中0和1的作用 27
4.4.3 工作基本原理 28

第5章 单片机指令 29
5.1 学习单片机指令与编程的经验与技巧 29
5.2 单片机编程语言概述 31
5.2.1 编程语言概述 31
5.2.2 单片机使用的编程语言 32
5.2.3 80C51汇编语言的语句结构 32
5.3 80C51单片机指令系统 33
5.3.1 数据传送类指令 33
5.3.2 控制转移类指令 34
5.3.3 逻辑运算及移位类指令 34
5.3.4 算数运算类指令 35
5.3.5 位操作类指令 35
5.4 常用的伪指令 35
5.4.1 伪指令与80C51指令的不同点 35
5.4.2 常用的伪指令 36

第2篇 51单片机典型实例篇

第6章 跑马灯 40
6.1 点亮一只灯 40
6.1.1 硬件设计 40
6.1.2 程序设计 41
6.1.3 代码详解 41
6.1.4 实例测试 43
6.1.5 经验总结 43
6.2 模拟仿真 43
6.2.1 进入模拟仿真状态 43
6.2.2 展现观察窗口 44
6.2.3 选择调试方式 44
6.2.4 观察寄存器值的变化 45
6.3 点亮6只灯 46
6.3.1 程序设计 46
6.3.2 代码详解 46
6.3.3 模拟仿真 47
6.3.4 实例测试 47
6.3.5 经验总结 47
6.4 亮灯循环左移 48
6.4.1 程序设计 48
6.4.2 代码详解 49
6.4.3 模拟仿真 50
6.4.4 实例测试 50
6.4.5 经验总结 50
6.5 亮灯循环右移 51
6.5.1 程序设计 51
6.5.2 代码详解 52
6.5.3 模拟仿真 53
6.5.4 实例测试 53
6.5.5 经验总结 53
6.6 延时时间的计算 54
6.6.1 机器周期和指令周期 54
6.6.2 单重循环短暂延时 54
6.6.3 多重循环较长时间延时 55
6.6.4 对延时程序的改进 56
6.7 亮灯左移与右移循环 56
6.7.1 程序设计 57
6.7.2 代码详解 58
6.7.3 模拟仿真 58
6.7.4 实例测试 59
6.7.5 经验总结 59
6.8 双灯左移右移加闪烁 59
6.8.1 程序设计 59
6.8.2 代码详解 60
6.8.3 模拟仿真 62
6.8.4 实例测试 62
6.8.5 经验总结 62
6.9 用取表方式实现灯移动 63
6.9.1 程序设计 64
6.9.2 代码详解 65
6.9.3 模拟仿真 67
6.9.4 实例测试 68
6.9.5 经验总结 68

第7章 LED显示 69
7.1 数码管工作原理及显示码 69
7.1.1 LED数码管结构 69
7.1.2 工作原理 70
7.1.3 数码管显示码 70
7.2 让数码管静态显示6 71
7.2.1 硬件设计 71
7.2.2 程序设计 71
7.2.3 代码详解 72
7.2.4 模拟仿真 73
7.2.5 实例测试 73
7.2.6 经验总结 74
7.3 循环显示0~9 74
7.3.1 程序设计 74
7.3.2 代码详解 75
7.3.3 模拟仿真 76
7.3.4 实例测试 76
7.3.5 经验总结 76
7.4 两位数码管显示00~99 76
7.4.1 硬件设计 77
7.4.2 程序设计 77
7.4.3 代码详解 79
7.4.4 模拟仿真 81
7.4.5 实例测试 81
7.4.6 经验总结 81

第8章 键盘控制 82
8.1 用8位DIP开关控制LED 82
8.1.1 硬件设计 82
8.1.2 程序设计 83
8.1.3 代码详解 83
8.1.4 模拟仿真 84
8.1.5 实例测试 84
8.1.6 经验总结 84
8.2 用4位DIP开关控制数码管显示 84
8.2.1 硬件设计 85
8.2.2 程序设计 85
8.2.3 代码详解 86
8.2.4 模拟仿真 88
8.2.5 实例测试 88
8.2.6 经验总结 88
8.3 按键开关控制指示灯 89
8.3.1 硬件设计 89
8.3.2 程序设计 89
8.3.3 代码详解 90
8.3.4 模拟仿真 91
8.3.5 实例测试 91
8.3.6 经验总结 91
8.4 键盘控制概述 92
8.4.1 按键的特性 92
8.4.2 键盘输入中要解决的问题 92
8.4.3 独立按键式键盘 93
8.4.4 矩阵式按键键盘 93
8.5 用独立式键盘控制灯移动 94
8.5.1 硬件设计 94
8.5.2 程序设计 95
8.5.3 代码详解 97
8.5.4 模拟仿真 98
8.5.5 实例测试 98
8.5.6 经验总结 99
8.6 用矩阵式键盘控制显示器 99
8.6.1 硬件设计 99
8.6.2 程序设计 100
8.6.3 代码详解 102
8.6.4 模拟仿真 106
8.6.5 实例测试 106
8.6.6 经验总结 106

第9章 中断 107
9.1 中断控制功能的作用 107
9.1.1 什么是中断 107
9.1.2 实现中断的好处 107
9.1.3 中断处理过程 108
9.1.4 中断源及入口地址 109
9.2 中断的控制及设置 110
9.2.1 中断允许控制寄存器IE 110
9.2.2 中断优先级控制寄存器IP 111
9.2.3 定时器控制寄存器TCON 112
9.2.4 串行口控制寄存器SCON 112
9.3 用外部中断控制灯闪烁 113
9.3.1 硬件设计 113
9.3.2 程序设计 114
9.3.3 代码详解 115
9.3.4 模拟仿真 117
9.3.5 实例测试 118
9.3.6 经验总结 118
9.4 用多级外部中断控制灯移动 118
9.4.1 硬件设计 118
9.4.2 程序设计 119
9.4.3 代码详解 121
9.4.4 模拟仿真 123
9.4.5 实例测试 123
9.4.6 经验总结 123

第10章 定时器/计数器 124
10.1 定时器/计数器的用途及工作原理 124
10.1.1 定时器/计数器的用途 124
10.1.2 定时器/计数器的结构 124
10.1.3 定时器/计数器的工作原理 125
10.2 定时器/计数器的控制寄存器 126
10.2.1 工作模式控制寄存器TMOD 126
10.2.2 定时器控制寄存器TCON 127
10.2.3 4种工作模式的特点 128
10.3 定时器/计数器的初始化设置 128
10.3.1 模式0的初始化步骤 128
10.3.2 模式1的初始化步骤 129
10.3.3 模式2的初始化步骤 129
10.3.4 模式3的初始化步骤 130
10.4 使用定时器延时 130
10.4.1 硬件设计 130
10.4.2 程序设计 131
10.4.3 代码详解 132
10.4.4 模拟仿真 133
10.4.5 实例测试 134
10.4.6 经验总结 134
10.5 定时器加软件计数延时 134
10.5.1 程序设计 134
10.5.2 代码详解 136
10.5.3 模拟仿真 136
10.5.4 实例测试 137
10.5.5 经验总结 137
10.6 定时与计数演示灯 137
10.6.1 硬件设计 137
10.6.2 程序设计 138
10.6.3 代码详解 139
10.6.4 实例测试 140
10.6.5 经验总结 140

第11章 音乐发声 141
11.1 发声实验 141
11.1.1 硬件设计 141
11.1.2 程序设计 142
11.1.3 代码详解 143
11.1.4 模拟仿真 143
11.1.5 实例测试 143
11.1.6 经验总结 143
11.2 变频报警 143
11.2.1 程序设计 144
11.2.2 代码详解 145
11.2.3 模拟仿真 146
11.2.4 实例测试 146
11.2.5 经验总结 146
11.3 歌曲演奏 147
11.3.1 编程演奏器原理 147
11.3.2 程序设计 149
11.3.3 代码详解 151
11.3.4 模拟仿真 153
11.3.5 实例测试 153
11.3.6 经验总结 153
11.4 电子琴 154
14.4.1 硬件设计 154
11.4.2 程序设计 154
11.4.3 代码详解 157
11.4.4 模拟仿真 158
11.4.5 实例测试 158
11.4.6 经验总结 158

第12章 串行通信 159
12.1 单片机串行通信功能 159
12.1.1 单片机串行通信的作用 159
12.1.2 串行通信中双方基本约定 159
12.1.3 串行口的结构和通信过程 160
12.2 串行口的控制 161
12.2.1 电源和数据传输率控制寄存器PCON 161
12.2.2 串行口控制寄存器SCON 161
12.2.3 串行口的4种工作方式 162
12.3 扩展8个输出端口 163
12.3.1 硬件设计 163
12.3.2 程序设计 164
12.3.3 代码详解 165
12.3.4 模拟仿真 166
12.3.5 实例测试 167
12.3.6 经验总结 167
12.4 扩展8个输入端口 167
12.4.1 硬件设计 167
12.4.2 程序设计 168
12.4.3 代码详解 169
12.4.4 模拟仿真 170
12.4.5 实例测试 170
12.4.6 经验总结 170
12.5 向计算机发送一封信 170
12.5.1 硬件设计 171
12.5.2 程序设计 171
12.5.3 代码详解 172
12.5.4 模拟仿真 173
12.5.5 实例测试 173
12.5.6 经验总结 174

第13章 LCD模块及其应用 175
13.1 LCD模块 175
13.1.1 LCD的分类 175
13.1.2 LCD模块的引脚 175
13.1.3 寄存器选择及显示器地址 177
13.1.4 LCM控制指令 177
13.2 一个简单的液晶显示程序 179
13.2.1 硬件设计 179
13.2.2 程序设计 179
13.2.3 代码详解 181
13.2.4 实例测试 183
13.2.5 经验总结 183
13.3 使LCD显示两行字符 183
13.3.1 程序设计 184
13.3.2 代码详解 186
13.3.3 实例测试 187
13.3.4 经验总结 187
13.4 LCD显示字符串 187
13.4.1 程序设计 187
13.4.2 代码详解 190
13.4.3 实例测试 191
13.4.4 经验总结 191
13.5 LCD循环显示 191
13.5.1 程序设计 191
13.5.2 代码详解 194
13.5.3 实例测试 196
13.5.4 经验总结 196
13.6 自编图形显示 196
13.6.1 程序设计 197
13.6.2 代码详解 200
13.6.3 实例测试 201
13.6.4 经验总结 201

第14章 AD与DA及其应用 202
14.1 信号转换概述 202
14.1.1 模拟信号 202
14.1.2 数字信号 202
14.1.3 信号转换 202
14.2 简单DA转换程序 203
14.2.1 硬件设计 203
14.2.2 程序设计 204
14.2.3 代码详解 204
14.2.4 实例测试 205
14.2.5 经验总结 205
14.3 指拔开关控制输出电压 205
14.3.1 硬件设计 205
14.3.2 程序设计 206
14.3.3 代码详解 206
14.3.4 模拟仿真 206
14.3.5 实例测试 207
14.3.6 经验总结 207
14.4 DAC输出锯齿波 207
14.4.1 程序设计 207
14.4.2 代码详解 208
14.4.3 模拟仿真 208
14.4.4 实例测试 209
14.4.5 经验总结 209
14.5 单线数字温度传感器 209
14.5.1 引脚及其与单片机的连接方式 209
14.5.2 DS18B20的主要特性 210
14.5.3 内部结构 210
14.5.4 高速暂存存储器 211
14.5.5 DS18B20通信协议 212
14.5.6 使用注意事项 212
14.6 数字温度计 213
14.6.1 硬件设计 213
14.6.2 程序设计 214
14.6.3 代码详解 218
14.6.4 实例测试 219
14.6.5 经验总结 219

第15章 步进电机的控制 220
15.1 步进电机的工作原理 220
15.1.1 步进电机的种类 220
15.1.2 步进电机工作原理 221
15.1.3 小型步进电机驱动电路 222
15.2 步进电机正转 222
15.2.1 硬件设计 222
15.2.2 程序设计 223
15.2.3 代码详解 224
15.2.4 模拟仿真 225
15.2.5 实例测试 226
15.2.6 经验总结 226
15.3 步进电机反转 226
15.3.1 程序设计 226
15.3.2 代码详解 228
15.3.3 模拟仿真 228
15.3.4 实例测试 229
15.3.5 经验总结 229
15.4 步进电机转速控制 229
15.4.1 程序设计 229
15.4.2 代码详解 231
15.4.3 模拟仿真 232
15.4.4 实例测试 232
15.4.5 经验总结 233
15.5 开关控制步进电机正反转 233
15.5.1 硬件设计 233
15.5.2 程序设计 234
15.5.3 代码详解 236
15.5.4 模拟仿真 238
15.5.5 实例测试 239
15.5.6 经验总结 239

第3篇 51单片机C语言基础篇

第16章 单片机C语言入门 242
16.1 C语言与C51 242
16.1.1 C语言与C51 242
16.1.2 C语言编程的优点 242
16.1.3 C语言和汇编语言混合编程 243
16.2 学习C51的准备工作 243
16.2.1 计算机 243
16.2.2 51单片机C语言编译器 243
16.2.3 51编程器和实验板 243
16.3 单片机C语言程序开发流程 243
16.4 单片机C语言入门实例 244
16.4.1 程序工作原理 245
16.4.2 源程序 245
16.4.3 程序说明 245
16.5 单片机C语言编程特点 245
16.5.1 程序工作原理 246
16.5.2 用两种语言编写 246
16.5.3 C语言程序编写特点 247
16.6 单片机C程序的基本结构 248
16.6.1 主函数 248
16.6.2 函数 248
16.6.3 头文件 248
16.7 C51数据类型、常量与变量 249
16.7.1 C51的数据类型 249
16.7.2 常量 250
16.7.3 变量 251
16.7.4 数组 252
16.8 C51常用的运算符 252
16.8.1 赋值运算符 253
16.8.2 增量和减量运算符 253
16.8.3 关系运算符 253
16.8.4 逻辑运算符 254
16.8.5 位运算符 255
16.8.6 运算符的运算优先次序 256
16.9 C51流程控制语句 257
16.9.1 流程结构及其流程图 257
16.9.2 流程控制语句按功能分类 258
16.9.3 循环语句 258
16.9.4 选择语句 260
16.10 C51函数 262
16.10.1 C51函数定义的一般形式 262
16.10.2 C51库函数 264
16.10.3 C51中断函数 264

第17章 Keil C51的使用 265
17.1 Keil C51的安装 265
17.2 用Keil C51开发单片机 266
17.2.1 编写源程序 267
17.2.2 建立工程项目文件 268
17.2.3 产生可执行的HEX文件 272
17.3 Keil中的软件仿真 272
17.3.1 操作的一般步骤 273
17.3.2 仿真举例说明 274
17.3.3 几个常用命令使用区别 278

第4篇 51单片机C语言实例篇

第18章 节日彩灯设计 280
18.1 彩灯闪烁 280
18.1.1 硬件设计 280
18.1.2 程序设计 281
18.1.3 代码详解 282
18.2 延时模块 282
18.2.1 延时原理 282
18.2.2 软件延时 283
18.2.3 利用定时器延时 284
18.3 彩灯由右向左侧逐渐点亮 284
18.3.1 程序设计 284
18.3.2 代码详解 285
18.4 单组彩灯循环左右移动 286
18.4.1 程序设计 286
18.4.2 代码详解 287
18.4.3 经验总结 289
18.5 采用制表方法实现彩灯变化 289
18.5.1 程序设计 290
18.5.2 代码详解 291

第19章 开关输入设计 292
19.1 单开关输入状态指示灯 292
19.1.1 硬件设计 292
19.1.2 程序设计 293
19.1.3 代码详解 293
19.1.4 经验总结 294
19.2 多路开关输入状态指示灯 294
19.2.1 硬件设计 294
19.2.2 程序设计 295
19.2.3 代码详解 296
19.3 多路开关控制灯 297
19.3.1 硬件设计 297
19.3.2 程序设计 297
19.3.3 代码详解 298
19.4 按钮开关次数显示灯 299
19.4.1 硬件设计 299
19.4.2 程序设计 299
19.4.3 代码详解 300
19.5 一键多功能控制 301
19.5.1 程序设计 301
19.5.2 代码详解 302

第20章 报警声设计 303
20.1 发出1kHz声音 303
20.1.1 硬件设计 303
20.1.2 程序设计 304
20.1.3 代码详解 304
20.2 发出嘀、嘀声 305
20.2.1 程序设计 305
20.2.2 代码详解 306
20.2.3 经验总结 306
20.3 救护车声 306
20.3.1 程序设计 307
20.3.2 代码详解 308
20.4 闹钟铃声 308
20.4.1 程序设计 308
20.4.2 代码详解 309
20.4.3 经验总结 309
20.5 发出20次的报警声 309
20.5.1 程序设计 309
20.5.2 代码详解 310
20.5.3 经验总结 310
20.6 警报的同时LED闪烁 310
20.6.1 硬件设计 311
20.6.2 程序设计 311
20.6.3 代码详解 312

第21章 时钟设计综合实例 313
21.1 简单时钟设计 313
21.1.1 学习单片机时钟设计目的 313
21.1.2 时钟结构与原理 314
21.1.3 走时功能的设计 315
21.1.4 显示部分的设计 317
21.1.5 调整时间部分的设计 319
21.1.6 喇叭和指示灯等子程序 320
21.1.7 时钟主程序 321
21.1.8 简单时钟程序清单 323
21.2 带定时功能的闹铃时钟设计 330
21.2.1 闹钟结构与原理 330
21.2.2 闹铃功能主要子程序 331
21.2.3 闹钟主程序 334
21.2.4 闹钟程序清单 337
21.3 带定时和倒计时功能的时钟设计 346
21.3.1 结构与原理 347
21.3.2 倒计时功能主要子程序 348
21.3.3 带倒计时闹钟程序清单 351
21.4 简单时钟的C语言程序设计 363
21.4.1 时钟结构和使用方法 363
21.4.2 走时功能的设计 363
21.4.3 显示功能的设计 365
21.4.4 调整时间功能的设计 365
21.4.5 按键扫描等其他函数 366
21.4.6 时钟主函数 367
21.4.7 简单时钟C语言程序清单 368

第22章 动手制作单片机实验板 373
22.1 制作实验板准备工作 373
22.1.1 制作实验板的目的 373
22.1.2 制作前的准备工作 374
22.1.3 焊接技巧 375
22.2 单片机外围常用元器件及其检测方法 376
22.2.1 发光二极管和LED数码管 376
22.2.2 三极管 378
22.2.3 电阻和电容 379
22.3 实验板制作过程 382
22.3.1 实验板功能简介 382
22.3.2 简单稳压电源的制作 383
22.3.3 单片机最小系统的制作 385
22.3.4 LED数码管显示模块的制作 386
22.3.5 其他实验电路的制作 388
22.3.6 单片机端口插针座连接线 390
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证