《21天学通51单片机开发 第2版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:陆彬编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121141607
  • 页数:416 页
图书介绍:本书分25章,全面详细地讲述了单片机的原理、程序设计方法、编程指南及应用案例。首先介绍了51系列单片机的概述及单片机的基本结构,接着介绍了单片机的程序设计语言,包括汇编语言和单片机C51语言,其中C51语言是重点内容。然后结合单片机的各个功能部件详细讲解了单片机的硬件编程方法。最后还给出了在各个领域中常用到的一些典型案例,供读者在学习和工作中参考。

第1章 51系列单片机基础知识(教学视频:33分钟) 15

1.1 51系列单片机概述 15

1.1.1单片机的发展历史 15

1.1.2 51系列单片机简介 16

1.1.3 51系列单片机的应用领域 16

1.1.4 51系列单片机的发展方向 17

1.2典型引脚结构 17

1.2.1电源引脚 18

1.2.2时钟引脚 18

1.2.3并行I/O引脚 19

1.2.4复位引脚 22

1.2.5 ALE/PROG引脚 23

1.2.6 PSEN引脚 23

1.2.7 EA/VPP引脚 23

1.3 51系列单片机内部结构 24

1.4中央处理器结构 26

1.4.1算术逻辑部件(ALU) 26

1.4.2控制器 26

1.4.3通用寄存器 26

1.4.4专用寄存器 27

1.4.5特殊功能寄存器 29

1.5存储器结构 30

1.5.1程序存储器 30

1.5.2扩展外部程序存储器 31

1.5.3数据存储器 31

1.5.4扩展外部数据存储器 33

1.6单片机指令时序 34

1.6.1几个基本概念 34

1.6.2指令执行的时序 35

1.6.3访问外部ROMROM的操作时序 37

1.6.4访问外部RAM的操作时序 38

1.7掉电保护 38

1.8低功耗模式 39

1.8.1省电保持模式 39

1.8.2休眠运行模式 39

1.9小结 40

1.10习题 40

第2章 搭建51单片机开发环境(教学视频:29分钟) 42

2.1搭建51单片机硬件开发系统 42

2.1.1单片机选型 42

2.1.2一个单片机最小开发系统 43

2.2搭建Keil C51软件开发环境 44

2.2.1 Keil μ Vision3简介 44

2.2.2 Keil μ Vision3系统安装需求 45

2.2.3 Keil μ Vision3的安装 45

2.2.4 Keil μ Vision3集成开发环境总揽 46

2.2.5 Keil μ Vision3的菜单栏 47

2.2.6 Keil μ Vision3的工具栏 50

2.2.7 Keil μ Vision3的快捷键 53

2.3小结 53

2.4习题 54

第3章 单片机汇编语言(教学视频:46分钟) 56

3.1单片机汇编语言概述 56

3.1.1单片机汇编语言简介 56

3.1.2简单的单片机汇编语言程序 57

3.2伪指令 57

3.2.1起始伪指令ORG 57

3.2.2结束伪指令END 58

3.2.3等值伪指令EQU 58

3.2.4地址赋值伪指令DATA 58

3.2.5字节保存伪指令DB 58

3.2.6字保存伪指令DW 59

3.2.7空间预留伪指令DS 59

3.2.8位变量伪指令BIT 59

3.3单片机的指令 60

3.3.1单片机指令系统简介 60

3.3.2单片机指令格式 60

3.3.3单片机指令的寻址方式 61

3.3.4 51系列单片机指令集 64

3.5单片机汇编语言的程序结构 69

3.5.1顺序结构 69

3.5.2分支结构 70

3.5.3循环结构 71

3.5.4子程序结构 72

3.5.5查表程序结构 73

3.6 Keil μ Vision3使用单片机汇编程序 74

3.6.1创建项目 74

3.6.2编辑源文件 76

3.6.3编译项目 76

3.6.4仿真调试 77

3.7综合练习 77

3.8小结 79

3.9习题 79

第4章 单片机C51语言基础(教学视频:69分钟) 82

4.1单片机C51语言概述 82

4.1.1单片机C51语言的主要特点 82

4.1.2 “Hello world”程序 82

4.1.3良好的编程规范 83

4.2标识符和关键字 84

4.2.1标识符 84

4.2.2关键字 84

4.3数据类型 86

4.3.1变量和常量 86

4.3.2整型数据 87

4.3.3字符型数据 88

4.3.4浮点型数据 90

4.4分隔符 91

4.5 const修饰符 91

4.6变量作用域 92

4.6.1一般规则 92

4.6.2不同存储类型变量的作用域 93

4.7运算符 95

4.7.1算术运算符 95

4.7.2逻辑运算符 97

4.7.3关系运算符 98

4.7.4位运算符 99

4.7.5特殊运算符 102

4.7.6运算符的优先级 106

4.7.7运算符的结合性 106

4.8表达式 106

4.8.1算术表达式 107

4.8.2赋值表达式 107

4.8.3逗号表达式 108

4.8.4关系和逻辑表达式 108

4.9综合练习 109

4.10小结 110

4.11习题 110

第5章 C51的语句(教学视频:32分钟) 112

5.1声明语句 112

5.2表达式语句 112

5.3复合语句 113

5.4循环语句 114

5.4.1 for语句 114

5.4.2 while语句 115

5.4.3 do-while语句 116

5.5条件语句 117

5.5.1单分支if语句 117

5.5.2双分支if语句 118

5.5.3多分支if语句 119

5.6开关语句 120

5.7跳转语句 121

5.7.1 goto语句 121

5.7.2 break语句 122

5.7.3 continue语句 123

5.8函数调用语句 123

5.9空语句 124

5.10返回语句 124

5.11综合练习 125

5.12小结 126

5.13习题 126

第6章 C51的数组(教学视频:48分钟) 129

6.1数组的声明和表示 129

6.2初始化数组元素 131

6.2.1在声明数组时初始化 131

6.2.2动态初始化 132

6.3一维数组 132

6.3.1一维数组的内存分配 132

6.3.2一维数组的引用 133

6.3.3一维字符串数组 134

6.4二维数组 135

6.4.1二维数组的声明 135

6.4.2二维数组的初始化 136

6.4.3二维数组的内存分配 137

6.4.4二维字符串数组 138

6.5多维数组 139

6.6综合练习 140

6.7小结 141

6.8习题 141

第7章 C51的指针(教学视频:71分钟) 143

7.1地址和指针概述 143

7.2指针变量的声明 143

7.3指针变量的赋值 144

7.3.1在声明时赋值 144

7.3.2动态赋值 144

7.3.3指针变量之间传递 145

7.3.4特殊的指针变量赋值——数组 145

7.3.5特殊的指针变量赋值——字符串 145

7.3.6特殊的指针变量赋值——函数入口 146

7.4指针变量的运算符 146

7.4.1取地址运算符& 146

7.4.2取值运算符 146

7.4.3指针变量的运算 147

7.5特殊的指针类型——数组指针 148

7.5.1指向一维数组的指针 149

7.5.2指向二维数组的指针 150

7.5.3指向一个由n个元素所组成的数组指针 151

7.5.4指针和数组的关系总结 152

7.5.5数组指针和指针数组 153

7.6特殊的指针类型——字符指针 154

7.7综合练习 155

7.8小结 156

7.9习题 156

第8章 C51的结构(教学视频:35分钟) 158

8.1结构的声明 158

8.1.1定义结构 158

8.1.2声明结构变量 159

8.2结构变量的初始化 160

8.3结构变量的使用 162

8.4结构数组 163

8.4.1定义结构数组 163

8.4.2初始化结构数组 164

8.5结构指针 165

8.5.1定义结构指针 165

8.5.2使用结构指针 166

8.5.3指向结构数组的结构指针 167

8.6嵌套结构 168

8.7位结构 169

8.8综合练习 170

8.9小结 171

8.10习题 172

第9章 C51的聚合类型(教学视频:46分钟) 173

9.1联合类型 173

9.1.1联合的定义 173

9.1.2联合变量的声明 173

9.1.3联合变量成员的引用 175

9.1.4联合变量数组 175

9.1.5联合变量指针 176

9.1.6联合和结构的嵌套与区别 177

9.2枚举类型 178

9.2.1定义枚举类型 179

9.2.2声明枚举变量 179

9.2.3枚举变量的赋值和引用 180

9.3类型声明 181

9.4位域 182

9.4.1定义位域 183

9.4.2声明位域变量 184

9.4.3位域变量的引用 184

9.4.4位域指针 185

9.5综合练习 186

9.6小结 187

9.7习题 187

第10章 C51的函数(教学视频:56分钟) 189

10.1函数 189

10.1.1函数概述 189

10.1.2函数的分类 189

10.1.3 main函数 191

10.2函数的声明 191

10.2.1函数声明一 191

10.2.2函数声明二 192

10.2.3函数声明三 193

10.3函数的参数和返回值 194

10.3.1形参和实参 194

10.3.2数组元素作为函数参数 195

10.3.3数组名作为函数参数 196

10.3.4二维数组作为函数参数 196

10.3.5指针变量作为函数参数 197

10.3.6函数的返回值 198

10.4函数的调用 198

10.4.1函数调用的方式 198

10.4.2赋值调用 199

10.4.3引用调用 199

10.4.4递归调用 200

10.4.5嵌套调用 201

10.5作用域 202

10.5.1函数的作用域 202

10.5.2函数代码的作用域 203

10.5.3函数内部变量的作用域 203

10.6 C51常用库函数 203

10.6.1字符函数库 204

10.6.2字符串函数库 216

10.6.3输入/输出函数库 231

10.6.4数学函数库 241

10.6.5标准函数库 246

10.6.6 内部函数库 253

10.7综合练习 256

10.8小结 257

10.9习题 257

第11章 C51的预处理(教学视频:36分钟) 260

11.1预处理命令概述 260

11.2宏定义指令 261

11.2.1 #define指令 261

11.2.2带参数的#define指令 262

11.2.3 #undef指令 263

11.3文件包含指令 264

11.3.1 #include指令 264

11.3.2常用的头文件 265

11.4条件编译指令 266

11.4.1双分支条件编译指令 266

11.4.2多分支条件编译指令 267

11.4.3宏名判断指令 267

11.5其他预处理指令 268

11.5.1 #line指令 269

11.5.2 #error指令 269

11.5.3 #pragma指令 270

11.6综合练习 270

11.7小结 271

11.8习题 271

第12章 C51的存储结构(教学视频:40分钟) 273

12.1单片机存储结构 273

12.1.1 51系列单片机的存储区域 273

12.1.2片内低128字节RAM区 273

12.1.3特殊功能寄存器区(SFR) 274

12.2存储类型 274

12.2.1 data存储类型 274

12.2.2 bdata存储类型 275

12.2.3 idata存储类型 275

12.2.4 pdata存储类型 276

12.2.5 xdata存储类型 276

12.2.6 code存储类型 276

12.2.7 sfr存储类型 277

12.2.8 sfr16存储类型 277

12.2.9 sbit存储类型 277

12.2.10 bit型变量 278

12.3存储模式 278

12.3.1 Small模式 279

12.3.2 Compact模式 279

12.3.3 Large模式 279

12.3.4存储模式的选择 279

12.4存储器指针 280

12.4.1指针存储类型 280

12.4.2存储器指针 281

12.5综合练习 282

12.6小结 283

12.7习题 284

第13章51系列单片机的定时器/计数器(教学视频:53分钟) 286

13.1单片机的定时器/计数器 286

13.1.1定时器/计数器的概述 286

13.1.2定时器/计数器的控制寄存器 287

13.1.3定时器/计数器的初始化 290

13.2定时器/计数器工作模式0及其程序设计 290

13.3定时器/计数器工作模式1及其程序设计 292

13.4定时器/计数器工作模式2及其程序设计 294

13.5定时器/计数器工作模式3及其程序设计 295

13.6综合练习 297

13.7小结 299

13.8习题 299

第14章 51系列单片机的中断系统(教学视频:62分钟) 302

14.1中断系统概述 302

14.1.1中断概述 302

14.1.2中断的典型概念 303

14.2单片机中断的类型 304

14.2.1外部中断源 304

14.2.2定时中断源 304

14.2.3串行中断源 304

14.3中断系统的程序访问 305

14.3.1中断标志控制寄存器TCON 305

14.3.2中断标志控制寄存器SCON 306

14.3.3中断允许标志寄存器IE 306

14.3.4中断优先级标志寄存器IP 307

14.4中断的响应过程 308

14.4.1中断识别 308

14.4.2中断响应 309

14.4.3中断处理 310

14.4.4中断撤离 310

14.5外部中断源及其程序设计 310

14.6定时中断源及其程序设计 311

14.7串行中断源及其程序设计 312

14.8综合练习 313

14.9小结 314

14.10习题 315

第15章 51系列单片机的串行接口(教学视频:66分钟) 317

15.1串行通信概述 317

15.1.1串行通信与并行通信 317

15.1.2异步串行通信与同步串行通信 318

15.1.3异步串行通信的波特率 319

15.1.4串行通信的数据传送方式 319

15.2 51系列单片机的串行接口 320

15.2.1单片机串行接口的内部结构 320

15.2.2串行接口控制寄存器SCON 321

15.2.3波特率选择寄存器PCON 323

15.2.4波特率的程序设计 324

15.3串行接口工作模式0及其程序设计 326

15.4串行接口工作模式1及其程序设计 327

15.5串行接口工作模式2及其程序设计 329

15.6串行接口工作模式3及其程序设计 330

15.7综合练习 331

15.8小结 332

15.9习题 332

第16章 51系列单片机扩展键盘(教学视频:41分钟) 335

16.1键盘的种类 335

16.1.1直接式按键键盘 335

16.1.2阵列式按键键盘 336

16.2键盘的基本原理 337

16.2.1按键编码 337

16.2.2按键确认 337

16.2.3按键消抖 338

16.2.4读取键值 340

16.2.5避免重复响应 340

16.2.6多按键响应 340

16.3键盘程序设计 340

16.3.1直接式按键键盘的查询方式 340

16.3.2阵列式按键键盘的扫描方式 341

16.3.3阵列式按键键盘的线反转方式 344

16.3.4阵列式按键键盘的中断方式 346

16.4单片机扩展键盘实例 348

16.4.1电路原理图 348

16.4.2程序设计 349

16.5综合练习 351

16.6小结 352

16.7习题 353

第17章 51系列单片机的显示接口(教学视频:45分钟) 354

17.1 LED数码管的基本原理 354

17.2单个LED数码管的直接驱动实例 356

17.3静态驱动多个LED数码管实例 358

17.4使用LED驱动器驱动多个LED数码管实例 360

17.4.1 LED驱动器功能简介 360

17.4.2 LED驱动器的数据传输方式 361

17.4.3 LED驱动器的控制寄存器 361

17.4.4使用LED驱动器的电路图 364

17.4.5程序设计 365

17.5综合练习 368

17.6小结 368

17.7习题 369

第18章 51系列单片机扩展I2C接口(教学视频:46分钟) 371

18.1 I2C总线的工作原理 371

18.2 I2C总线的寻址方式 372

18.3 I2C总线的协议 372

18.3.1起始信号 373

18.3.2终止信号 373

18.3.3应答信号 373

18.3.4非应答信号 373

18.3.5总线数据位 373

18.3.6数据写入 374

18.3.7数据读出 374

18.4 I2C总线接口的EEPROM 375

18.5 I2C总线扩展实例——硬件加密 375

18.6综合练习 379

18.7小结 382

18.8习题 382

第19章 51系列单片机与PC的串行通信(教学视频:44分钟) 384

19.1串行通信接口概述 384

19.1.1 RS-232C串行通信接口标准 384

19.1.2 RS-449串行通信接口标准 387

19.1.3 RS-423A串行通信接口标准 388

19.1.4 RS-422A串行通信接口标准 388

19.1.5 RS-485串行通信接口标准 389

19.1.6 20mA电流环串行通信接口 389

19.2串行通信接口芯片 390

19.3单片机与PC的串行通信实例 391

19.3.1电路图 391

19.3.2程序设计 392

19.4综合练习 394

19.5小结 396

19.6习题 396

第20章 51系列单片机的多任务操作系统(教学视频:62分钟) 398

20.1 RTX-51实时多任务操作系统简介 398

20.1.1多任务系统简介 398

20.1.2 RTX-51实时多任务系统 399

20.1.3 RTX-51实时多任务系统特点 399

20.2 RTX-51 Tiny的任务管理 400

20.3 RTX-51 Tiny的系统函数 401

20.3.1信号发送函数isr_sendsignal 401

20.3.2信号标志清除函数os_clear_signal 402

20.3.3任务启动函数os_create_task 402

20.3.4任务删除函数os_delete_task 403

20.3.5当前任务号函数os_running_task_id 403

20.3.6信号发送函数os_send_signal 403

20.3.7等待函数os_wait 404

20.3.8等待函数os_wait1 405

20.3.9等待函数os_wait2 405

20.4 RTX-51与单任务程序的比较 406

20.4.1简单的单任务C51程序 406

20.4.2多任务循环C51程序 407

20.4.3多任务RTX-51程序 408

20.5 RTX-51循环任务调度程序设计 409

20.6 RTX-51事件任务调度程序设计 410

20.7 RTX-51信号任务调度程序设计 411

20.8 RTX-51优先级及抢先任务切换程序设计 412

20.9综合练习 414

20.10小结 414

20.11习题 415