51单片机开发入门与典型实例

51单片机开发入门与典型实例

王守中, 聂元铭, 编著

出版社:人民邮电出版社

年代:2009

定价:49.0

书籍简介:

本书首先介绍单片机开发环境的构建方法、应用程序开发流程、指令系统和单片机C语言基础等单片机入门知识, 然后详细讲解实际开发中常用的单片机汇编语言开发实例和单片机C语言开发实例,最后讲解时钟设计、液晶显示和制作单片机实验板等单片机应用开发综合实例。

书籍目录:

第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

内容摘要:

《51单片机开发入门与典型实例(第2版)》以51单片机为主线,按照初学者学习的一般步骤,详细介绍了单片机开发的入门知识和经典实例。全书分5篇,共25章,首先介绍单片机开发环境的构建方法、单片机应用程序开发流程、单片机指令系统和单片机C语言基础等单片机入门知识,然后详细讲解实际开发中常用的单片机汇编语言开发实例和单片机C语言开发实例,最后讲解时钟设计、液晶显示和制作单片机实验板等单片机应用开发综合实例。
  《51单片机开发入门与典型实例(第2版)》语言通俗、实例丰富、代码分析详尽,有较强的实用性和参考价值,适合大专院校计算机、电子、电气、控制及相关专业学生学习参考,也可供单片机开发人员和系统设计人员参考使用。

编辑推荐:

经典图书全新升级;实例丰富,步骤详尽;提供教学课件。

书籍规格:

书籍详细信息
书名51单片机开发入门与典型实例站内查询相似图书
9787115212467
如需购买下载《51单片机开发入门与典型实例》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位人民邮电出版社
版次2版印次1
定价(元)49.0语种简体中文
尺寸26 × 0装帧平装
页数 200 印数 4000

书籍信息归属:

51单片机开发入门与典型实例是人民邮电出版社于2009.10出版的中图分类号为 TP368.1 的主题关于 单片微型计算机-系统开发 的书籍。