《51单片机开发入门与典型实例》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:王守中,聂元铭编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115212467
  • 页数:391 页
图书介绍:本书首先介绍单片机开发环境的构建方法、应用程序开发流程、指令系统和单片机C语言基础等单片机入门知识, 然后详细讲解实际开发中常用的单片机汇编语言开发实例和单片机C语言开发实例,最后讲解时钟设计、液晶显示和制作单片机实验板等单片机应用开发综合实例。

第1篇 51单片机快速入门篇 2

第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.280C51与AT89C51的区别 5

1.3.3AT89S51与AT89C51的区别 6

第2章 单片机开发环境的建立 7

2.1学习单片机的必备工具 7

2.1.1计算机 7

2.1.2单片机集成开发系统软件 7

2.1.351编程器 8

2.1.4实验板 9

2.2集成开发软件的下载和安装 9

2.2.1从网上免费下载集成开发软件 9

2.2.2MedWin集成开发软件的安装 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.180C51单片机引脚简介 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.380C51汇编语言的语句结构 32

5.380C51单片机指令系统 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单片机典型实例篇 40

第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.1LED数码管结构 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.34种工作模式的特点 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

11.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.1LCD模块 175

13.1.1LCD的分类 175

13.1.2LCD模块的引脚 175

13.1.3寄存器选择及显示器地址 177

13.1.4LCM控制指令 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.4LCD显示字符串 187

13.4.1程序设计 187

13.4.2代码详解 190

13.4.3实例测试 191

13.4.4经验总结 191

13.5LCD循环显示 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.4DAC输出锯齿波 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.2DS 18B20的主要特性 210

14.5.3内部结构 210

14.5.4高速暂存存储器 211

14.5.5DS 18B20通信协议 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语言基础篇 242

第16章 单片机C语言入门 242

16.1C语言与C51 242

16.1.1C语言与C51 242

16.1.2C语言编程的优点 242

16.1.3C语言和汇编语言混合编程 243

16.2学习C51的准备工作 243

16.2.1计算机 243

16.2.251单片机C语言编译器 243

16.2.351编程器和实验板 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.3C语言程序编写特点 247

16.6单片机C程序的基本结构 248

16.6.1主函数 248

16.6.2函数 248

16.6.3头文件 248

16.7C51数据类型、常量与变量 249

16.7.1C51的数据类型 249

16.7.2常量 250

16.7.3变量 251

16.7.4数组 252

16.8C51常用的运算符 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.9C51流程控制语句 257

16.9.1流程结构及其流程图 257

16.9.2流程控制语句按功能分类 258

16.9.3循环语句 258

16.9.4选择语句 260

16.10C51函数 262

16.10.1C51函数定义的一般形式 262

16.10.2C51库函数 264

16.10.3C51中断函数 264

第17章 Keil C51的使用 265

17.1Keil C51的安装 265

17.2用Keil C51开发单片机 266

17.2.1编写源程序 267

17.2.2建立工程项目文件 268

17.2.3产生可执行的HEX文件 272

17.3Keil中的软件仿真 272

17.3.1操作的一般步骤 273

17.3.2仿真举例说明 274

17.3.3几个常用命令使用区别 278

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

第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.4LED数码管显示模块的制作 386

22.3.5其他实验电路的制作 388

22.3.6单片机端口插针座连接线 390