《STC单片机C语言程序设计 立体化教程》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:何宾编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:7302424987
  • 页数:636 页
图书介绍:

第1章 STC单片机绪论 1

1.1 单片机基础 1

1.1.1 单片机发展历史 1

1.1.2 单片机概念 2

1.1.3 单片机与嵌入式系统 4

1.1.4 单片机编程语言 5

1.2 STC单片机简介 8

1.2.1 STC单片机发展历史 8

1.2.2 STC单片机IAP和ISP 9

1.2.3 STC单片机命名规则 9

1.2.4 STC单片机封装类型 11

1.3 STC单片机系统硬件设计 13

1.4 STC单片机结构及功能 15

1.5 STC单片机引脚信号 17

第2章 数值表示及转换 24

2.1 常用码制 24

2.1.1 二进制码制 24

2.1.2 十进制码制 24

2.1.3 十六进制码制 24

2.1.4 BCD码 25

2.2 正数表示方法 26

2.2.1 正整数的表示 26

2.2.2 正小数的表示 27

2.3 正数码制转换 27

2.3.1 十进制整数转换成其他进制数 27

2.3.2 十进制小数转换成二进制数 29

2.4 负数表示方法 30

2.4.1 符号幅度表示法 30

2.4.2 补码表示法 31

2.5 负数补码的计算 31

2.5.1 负整数补码的计算 31

2.5.2 负小数补码的计算 32

2.6 定点数表示 33

2.7 浮点数表示 33

第3章 数字逻辑和时序 35

3.1 晶体管与I/O驱动 35

3.1.1 晶体管作为开关 35

3.1.2 单片机I/O驱动原理 36

3.2 有限自动状态机 38

3.2.1 有限自动状态机原理 39

3.2.2 状态图表示及实现 40

3.2.3 三位计数器设计实例 43

3.3 寄存器组功能 46

3.3.1 控制寄存器 46

3.3.2 状态寄存器 48

3.4 时序分析 49

3.4.1 逻辑门传输时序 49

3.4.2 建立时间和保持时间 51

第4章 STC单片机CPU子系统 53

4.1 STC单片机CPU内核功能单元 53

4.1.1 控制器 55

4.1.2 运算器 60

4.1.3 特殊功能寄存器 62

4.2 STC单片机存储器结构和地址空间 70

4.2.1 程序Flash存储器 70

4.2.2 数据Flash存储器 71

4.2.3 内部数据RAM存储器 74

4.2.4 外部数据存储器 77

4.2.5 字节存储顺序 79

4.3 STC单片机中断系统原理及功能 80

4.3.1 中断原理 81

4.3.2 中断系统结构 82

4.3.3 中断优先级处理 87

4.3.4 中断优先级控制寄存器 87

4.3.5 中断向量表 89

第5章 STC单片机CPU指令系统 94

5.1 STC单片机CPU寻址模式 94

5.1.1 立即数寻址模式 95

5.1.2 直接寻址模式 95

5.1.3 间接寻址模式 95

5.1.4 寄存器寻址模式 96

5.1.5 相对寻址模式 96

5.1.6 变址寻址模式 96

5.1.7 位寻址模式 97

5.2 STC单片机CPU指令集 97

5.2.1 算术指令 98

5.2.2 逻辑指令 107

5.2.3 数据传送指令 115

5.2.4 布尔指令 124

5.2.5 程序分支指令 129

第6章 STC单片机集成开发环境 138

6.1 Keil μ Vision集成开发环境介绍 138

6.1.1 软件功能介绍 138

6.1.2 软件的下载 139

6.1.3 软件的安装 141

6.1.4 导入STC单片机元件库 141

6.1.5 软件的启动 143

6.2 Keil μ Vision软件开发流程介绍 143

6.2.1 明确软件需求 143

6.2.2 创建设计工程 144

6.2.3 编写汇编/C软件代码 144

6.2.4 汇编器对汇编语言处理 145

6.2.5 C编译器对C语言进行处理 145

6.2.6 库管理器生成库文件 145

6.2.7 链接器生成绝对目标模块文件 146

6.2.8 目标到HEX转换器 146

6.2.9 调试器调试目标代码 146

6.3 Keil μ Vision软件开发流程实现 147

6.3.1 建立新的设计工程 147

6.3.2 配置文件结构 148

6.3.3 设置工程选项 149

6.3.4 添加新的源文件 160

6.3.5 建立设计 161

6.3.6 硬件平台 161

6.3.7 运行设计 162

6.3.8 启动硬件仿真 163

6.4 U8W编程器 165

6.4.1 U8W编程器接口和功能 166

6.4.2 U8W在线联机下载 167

6.4.3 U8W脱机下载 168

第7章 STC单片机汇编语言编程基础 170

7.1 汇编语言程序结构 170

7.2 汇编代码中段的分配 171

7.2.1 CODE段 171

7.2.2 BIT段 172

7.2.3 IDATA段 172

7.2.4 DATA段 173

7.2.5 XDATA段 174

7.3 汇编语言符号及规则 174

7.3.1 符号的命名规则 174

7.3.2 符号的作用 175

7.4 汇编语言操作数描述 175

7.4.1 数字 175

7.4.2 字符 176

7.4.3 字符串 176

7.4.4 位置计数器 176

7.4.5 操作符 176

7.4.6 表达式 177

7.5 汇编语言控制描述 178

7.5.1 地址控制 178

7.5.2 条件汇编 178

7.5.3 存储器初始化 179

7.5.4 分配存储器空间 179

7.5.5 过程声明 180

7.5.6 程序链接 180

7.5.7 段控制 181

7.5.8 杂项 182

7.6 汇编语言设计流程 182

7.6.1 建立新的设计工程 182

7.6.2 添加新的汇编语言文件 182

7.6.3 建立设计 183

7.6.4 分析.m51文件 184

7.6.5 分析.lst文件 185

7.6.6 分析HEX文件 186

7.6.7 程序软件仿真 187

7.6.8 程序硬件仿真 194

7.7 单片机端口控制汇编语言程序设计 197

7.7.1 设计原理 197

7.7.2 建立新的工程 198

7.7.3 添加汇编语言文件 198

7.7.4 建立设计 199

7.7.5 下载设计 200

7.8 单片机中断汇编语言程序设计 200

7.8.1 设计原理 200

7.8.2 建立新的工程 201

7.8.3 添加汇编语言文件 202

7.8.4 分析.lst文件 203

7.8.5 建立设计 204

7.8.6 下载设计 204

7.8.7 硬件仿真 205

第8章 STC单片机C语言编程入门 206

8.1 高级编程语言概念 206

8.1.1 构建计算模型 206

8.1.2 形式化描述 207

8.1.3 算法的流程图描述 207

8.1.4 转换成计算机可以识别的形式 208

8.1.5 代码、程序和编程的关系 208

8.2 选择C语言的理由 209

8.3 C语言发展历史 211

8.4 C语言程序框架 212

8.5 C语言词法构成 213

第9章 STC单片机C语言变量和数据类型 215

9.1 C语言中的常量和变量 215

9.1.1 常量 215

9.1.2 变量 217

9.2 C51编译器支持的数据类型 218

9.2.1 标准C语言所支持的类型 219

9.2.2 volatile类型修饰符 228

9.2.3 单片机扩充的类型 230

9.3 自定义数据类型 234

9.4 变量存储种类和存储类型 235

9.4.1 变量存储种类 235

9.4.2 变量存储器类型 237

9.5 定位变量的绝对位置 238

第10章 STC单片机C语言运算符 240

10.1 C语言运算符分类 240

10.2 C语言运算符优先级 240

10.3 赋值运算符 242

10.4 算术运算符 245

10.5 递增和递减运算符 249

10.6 关系运算符 250

10.7 逻辑运算符 251

10.8 位运算符 252

10.9 复合赋值运算符 254

10.10 逗号运算符 255

10.11 条件运算符 257

10.12 强制类型转换符 257

10.13 sizeof运算符 258

第11章 STC单片机C语言描述语句 260

11.1 输入输出语句 260

11.1.1 putchar函数 260

11.1.2 getchar函数 261

11.1.3 printf函数 262

11.1.4 scanf函数 265

11.1.5 puts函数 268

11.1.6 gets函数 268

11.2 表达式语句 269

11.3 条件语句 270

11.3.1 条件语句格式1 270

11.3.2 条件语句格式2 271

11.3.3 条件语句格式3 272

11.4 开关语句 274

11.5 循环语句 275

11.5.1 while语句 275

11.5.2 do-while语句 276

11.5.3 for语句 277

11.5.4 goto语句 280

11.5.5 break语句 281

11.5.6 continue语句 281

11.6 返回语句 282

11.7 C语言端口控制实现 282

第12章 STC单片机C语言数组 285

12.1 一维数组的定义和操作 285

12.1.1 一维数组的定义 285

12.1.2 一维数组初始化 286

12.1.3 一维数组的操作 291

12.2 多维数组的定义和操作 294

12.2.1 多维数组的定义 294

12.2.2 多维数组初始化 295

12.2.3 多维数组的操作 299

第13章 STC单片机C语言指针 303

13.1 C51编译器中指针的分类 303

13.2 通用指针 303

13.2.1 未指定存储区域的通用指针 303

13.2.2 指定存储区域的通用指针 313

13.3 指定存储器类型的指针 314

13.4 指针转换 316

13.5 指针变量输入 317

13.6 指向指针的指针 319

13.7 抽象指针 322

第14章 STC单片机C语言函数 325

14.1 函数定义和声明 325

14.1.1 标准C函数定义和声明 325

14.1.2 扩展C函数定义和声明 327

14.1.3 存储器模型 327

14.2 函数调用原理 328

14.2.1 函数调用格式 328

14.2.2 参数和堆栈 328

14.2.3 参数和寄存器 329

14.2.4 返回值 329

14.3 函数调用实现分析 330

14.4 函数变量的存储方式 335

14.5 数组类型传递参数 338

14.6 指针类型传递参数 341

14.7 指向函数的指针 343

14.8 可重入函数设计 345

14.9 中断函数设计 350

14.9.1 C语言中断函数的格式 350

14.9.2 外部中断电路原理 351

14.9.3 C语言中断程序的编写和测试 352

第15章 STC单片机C语言预处理指令 354

15.1 文件包含 354

15.1.1 包含用户头文件 355

15.1.2 包含系统头文件 357

15.1.3 只包含一次文件 376

15.2 宏定义及使用 376

15.2.1 简单的宏定义 376

15.2.2 复杂的宏定义 377

15.2.3 宏操作符 378

15.2.4 预定义的宏 379

15.3 条件编译 380

15.4 其他预处理命令 382

15.4.1 #line 382

15.4.2 #message 383

15.4.3 #error 383

15.4.4 #pragma 383

第16章 STC单片机复杂数据结构 384

16.1 结构 384

16.1.1 结构类型的定义 384

16.1.2 结构变量的定义 384

16.1.3 结构变量内元素的引用 385

16.1.4 指向结构的指针 388

16.2 联合 389

16.3 枚举 391

16.4 链表 393

16.4.1 单链表的存储结构 393

16.4.2 建立链表 393

16.4.3 查找结点 396

16.4.4 删除结点 398

16.4.5 插入结点 400

第17章 STC单片机C语言高级编程技术 403

17.1 C程序中使用汇编语言 403

17.1.1 内嵌汇编语言 403

17.1.2 调用汇编程序 406

17.2 优化代码策略 409

17.3 C语言动态图形交互设计 410

17.3.1 动态图形交互硬件平台 410

17.3.2 STC单片机对触摸屏的控制 412

17.3.3 STC单片机对触摸屏的初始化 414

17.3.4 触摸屏基本绘图流程 417

17.3.5 绘制不同图形的具体实现方法 418

17.3.6 设计头文件说明 423

17.3.7 主处理文件main函数设计 424

第18章 STC单片机时钟、复位和电源模式原理及实现 425

18.1 STC单片机时钟 425

18.2 STC单片机复位 426

18.2.1 外部RST引脚复位 426

18.2.2 软件复位 427

18.2.3 掉电/上电复位 428

18.2.4 MAX810专用复位电路复位 428

18.2.5 内部低压检测复位 428

18.2.6 看门狗复位 430

18.2.7 程序地址非法复位 432

18.3 STC单片机电源模式 432

18.3.1 低速模式 432

18.3.2 空闲模式 432

18.3.3 掉电模式 433

第19章 STC单片机比较器原理及实现 437

19.1 STC单片机比较器结构 437

19.2 STC单片机比较器寄存器组 438

19.2.1 比较控制寄存器1 438

19.2.2 比较控制寄存器2 439

19.3 STC单片机比较器应用 440

第20章 STC单片机计数器和定时器原理及实现 443

20.1 计数器/定时器模块简介 443

20.2 计数器/定时器寄存器组 444

20.2.1 定时器/计数器0/1控制寄存器TCON 444

20.2.2 定时器/计数器工作模式寄存器TMOD 445

20.2.3 辅助寄存器AUXR 447

20.2.4 T0~T2时钟输出寄存器和外部中断允许INT_CLKO(AUXR2) 448

20.2.5 定时器T0和T1中断允许控制寄存器IE 450

20.2.6 定时器T0和T1中断优先级控制寄存器IP 451

20.2.7 定时器T4和定时器T3控制寄存器T4T3M 451

20.2.8 定时器T2、T3和T4的中断控制寄存器IE2 453

20.3 计数器/定时器工作模式原理和实现 454

20.3.1 定时器/计数器0工作模式 454

20.3.2 定时器/计数器1工作模式 459

20.3.3 定时器/计数器2工作模式 460

20.3.4 定时器/计数器3工作模式 461

20.3.5 定时器/计数器4工作模式 463

第21章 STC单片机串行异步收发器原理及实现 464

21.1 RS-232标准简介 464

21.1.1 RS-232传输特点 464

21.1.2 RS-232数据传输格式 465

21.1.3 RS-232电气标准 466

21.1.4 RS-232参数设置 467

21.1.5 RS-232连接器 468

21.2 STC单片机串口模块简介 469

21.2.1 串口模块结构 469

21.2.2 串口引脚 469

21.3 串口1寄存器及工作模式 470

21.3.1 串口1寄存器组 470

21.3.2 串口1工作模式 474

21.3.3 串口1通信实例1 476

21.3.4 串口1通信实例2 480

21.4 串口2寄存器及工作模式 487

21.4.1 串口2寄存器组 487

21.4.2 串口2工作模式 490

21.5 串口3寄存器及工作模式 490

21.5.1 串口3寄存器组 490

21.5.2 串口3工作模式 492

21.6 串口4寄存器及工作模式 493

21.6.1 串口4寄存器组 493

21.6.2 串口4工作模式 495

21.7 串行通信综合实现 495

21.7.1 红外收发器的电路原理 496

21.7.2 红外通信波形捕获 496

21.7.3 红外通信协议 497

21.7.4 红外检测原理 499

21.7.5 串口通信原理 501

21.7.6 设计实现 502

第22章 STC单片机ADC原理及实现 506

22.1 模数转换器原理 506

22.1.1 模数转换器的参数 506

22.1.2 模数转换器的类型 507

22.2 STC单片机内ADC的结构原理 510

22.2.1 STC单片机内ADC的结构 510

22.2.2 ADC转换结果的计算方法 511

22.3 STC单片机内ADC寄存器组 511

22.3.1 P1口模拟功能控制寄存器 511

22.3.2 ADC控制寄存器 512

22.3.3 时钟分频寄存器 513

22.3.4 ADC结果高位寄存器 514

22.3.5 ADC结果低位寄存器 514

22.3.6 中断使能寄存器 514

22.3.7 中断优先级寄存器 514

22.4 ADC应用实现1 515

22.4.1 直流分压电路原理 515

22.4.2 软件设计流程 516

22.4.3 具体实现过程 517

22.5 ADC应用实现2 519

22.5.1 硬件电路设计 519

22.5.2 1602字符LCD原理 520

22.5.3 软件设计流程 523

22.5.4 具体实现过程 525

22.6 ADC应用实现3 528

22.6.1 硬件电路设计 528

22.6.2 12864图形点阵LCD原理 529

22.6.3 软件设计流程 536

22.6.4 ADC外部输入信号要求 538

22.6.5 具体实现过程 539

22.7 ADC应用实现4 545

第23章 STC单片机SPI原理及实现 550

23.1 STC SPI模块结构及功能 550

23.1.1 SPI传输特点 550

23.1.2 SPI模块功能 550

23.1.3 SPI接口信号 551

23.1.4 SPI接口的数据通信方式 552

23.1.5 SPI模块内部结构 553

23.2 SPI模块寄存器组 554

23.2.1 SPI控制寄存器 554

23.2.2 SPI状态寄存器 555

23.2.3 SPI数据寄存器 555

23.2.4 中断允许寄存器2 556

23.2.5 中断优先级寄存器 556

23.2.6 控制SPI引脚位置寄存器 556

23.3 SPI模块配置及时序 557

23.3.1 SPI配置模式 557

23.3.2 主/从模式的注意事项 558

23.3.3 通过SS修改模式 558

23.3.4 写冲突 559

23.3.5 数据模式时序 559

23.4 SPI模块设计实例 561

23.4.1 系统控制电路原理 561

23.4.2 7段数码管原理 562

23.4.3 74HCT595原理 563

23.4.4 系统软件控制流程 565

23.4.5 程序具体实现 565

第24章 STC单片机CCP/PCA/PWM模块原理及实现 569

24.1 CCP/PCA/PWM结构 569

24.2 CCP/PCA/PWM寄存器组 571

24.2.1 PCA工作模式寄存器 571

24.2.2 PCA控制寄存器 572

24.2.3 PCA比较捕获寄存器 572

24.2.4 PCA的16位计数器 575

24.2.5 PCA捕获/比较寄存器 575

24.2.6 PCA模块PWM寄存器 576

24.2.7 PCA模块引脚切换寄存器 578

24.3 CCP/PCA/PWM工作模式 579

24.3.1 捕获模式 579

24.3.2 16位软件定时器模式 580

24.3.3 高速脉冲输出模式 582

24.3.4 脉冲宽度调制模式 584

第25章 STC单片机增强型PWM发生器原理及实现 589

25.1 增强型PWM发生器简介 589

25.2 增强型PWM发生器相关寄存器组 590

25.2.1 端口配置寄存器 590

25.2.2 PWM配置寄存器 590

25.2.3 PWM控制寄存器 591

25.2.4 PWM中断标志寄存器 592

25.2.5 PWM外部异常控制寄存器 593

25.2.6 PWM计数器 594

25.2.7 PWM时钟选择寄存器 595

25.2.8 PWM2翻转计数器 595

25.2.9 PWM2控制寄存器 596

25.2.10 PWM3翻转计数器 597

25.2.11 PWM3控制寄存器 597

25.2.12 PWM4翻转计数器 598

25.2.13 PWM4控制寄存器 599

25.2.14 PWM5翻转计数器 600

25.2.15 PWM5控制寄存器 600

25.2.16 PWM6翻转计数器 601

25.2.17 PWM6控制寄存器 602

25.2.18 PWM7翻转计数器 603

25.2.19 PWM7控制寄存器 603

25.2.20 PWM中断优先级控制寄存器 604

25.3 增强型PWM发生器实现1 605

25.4 增强型PWM发生器实现2 606

第26章 RTX51操作系统原理及实现 609

26.1 操作系统的必要性 609

26.1.1 单任务程序 609

26.1.2 轮询程序 609

26.2 操作系统基本知识 610

26.2.1 操作系统的作用 610

26.2.2 操作系统的功能 611

26.3 RTX51操作系统的任务 613

26.3.1 定义任务 613

26.3.2 管理任务 613

26.3.3 切换任务 614

26.4 RTX51操作系统内核函数 614

26.5 RTX51操作系统实现 618

26.5.1 RTX51操作系统实现1 618

26.5.2 RTX51操作系统实现2 621

26.5.3 RTX51操作系统实现3 622

附录A STC单片机选型表 625

附录B STC四轴飞行器 631

附录C GNT-SMK-2开发板原理图 633