《零基础学PIC单片机》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:赵化启,闫广明,孙小君等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2010
  • ISBN:9787111307877
  • 页数:514 页
图书介绍:本书主要内容包括21章:PIC单片机概述、单片机开发流程、PIC单片机最小系统组成、PIC汇编语言及其开发环境使用、PIC单片机的C语言应用、PIC单片机内置模块的原理及应用、项目实例设计等。

第一篇 开发基础 1

第1章 单片机简介 1

1.1 常用的单片机 1

1.2 PIC单片机 2

1.2.1 PIC单片机的种类 3

1.2.2 PIC16F877的功能特性 3

1.3 实践拓展:8位PIC单片机有哪些型号 4

第2章 PIC单片机的开发流程及开发环境 7

2.1 单片机的开发流程 7

2.2 软件开发平台的安装 8

2.2.1 MPLAB集成开发环境的安装 8

2.2.2 测试汇编语言开发环境 10

2.2.3 C语言编译器HI-TECH PICC的安装 11

2.3 硬件开发平台的安装 12

2.3.1 Proteus ISIS软件的安装与测试 12

2.3.2 ICD2+开发板的硬件开发平台的安装 14

2.3.3 基于ICD2的硬件开发平台的测试 16

2.4 单片机项目的建立 19

2.4.1 汇编语言项目的建立 19

2.4.2 C语言项目的建立 24

2.4.3 目标代码的生成与排错 26

2.5 程序的烧写和调试运行 27

2.5.1 基于ISIS的目标代码烧写和调试 27

2.5.2 基于ICD2的目标代码烧写和调试 28

2.5.3 基于Proteus VSM MPLAB Viewer的目标代码调试 30

2.6 实践拓展:ICD2无法正常工作怎么办 31

第二篇 结构与编程 33

第3章 PIC单片机最小系统 33

3.1 单片机系统的组成 33

3.2 PIC单片机最小系统的组成 34

3.2.1 电源电路 34

3.2.2 时钟电路 35

3.2.3 复位电路 37

3.2.4 在线编程调试接口 38

3.3 实践拓展:设计单片机电路板需要遵守哪些原则 39

第4章 PIC单片机的系统结构 40

4.1 PIC单片机的基本结构 40

4.1.1 基本功能模块 41

4.1.2 专用功能模块 45

4.2 PIC单片机的特点 46

4.3 实践拓展:如何选择合适的单片机 49

第5章 PIC单片机的汇编指令 51

5.1 PIC的RISC指令集 51

5.2 字节操作指令 53

5.3 位操作指令 61

5.4 立即数操作指令 62

5.5 转移控制类指令 64

5.6 特别功能指令 66

5.7 实践拓展:CISC与RISC有何不同 67

第6章 MPASM汇编语言及其程序设计 68

6.1 MPASM汇编语言 68

6.1.1 MPASM的语法 68

6.1.2 MPASM的伪指令 69

6.1.3 MPASM的运算符 76

6.1.4 MPASM的内置宏指令 78

6.2 寻址模式 81

6.2.1 文件寄存器直接寻址与BANK的使用 81

6.2.2 文件寄存器间接寻址 84

6.2.3 程序的直接跳转与PAGE的使用 86

6.2.4 程序的间接跳转 88

6.3 MPASM汇编常用子程序设计 90

6.3.1 判断分支程序 90

6.3.2 循环程序 91

6.3.3 延时子程序 92

6.3.4 查表子程序 94

6.4 汇编语言程序模板 97

6.5 实践拓展:如何编程可以减少程序的bug 98

第7章 通用端口的输出控制 99

7.1 PIC16F877的输出端口 99

7.1.1 输出端口的工作原理 100

7.1.2 输出端口的相关寄存器 100

7.1.3 端口的输出驱动能力 101

7.1.4 I/O口的设定方法 102

7.1.5 PORTA的用法 103

7.2 输出控制应用 104

7.2.1 实例:LED的实用控制程序设计 104

7.2.2 实例:单个七段数码管的静态控制与动态控制 111

7.3 实践拓展:如何提高系统的抗干扰能力 117

第8章 通用端口的输入测量 120

8.1 PIC16F877的输入端口 120

8.1.1 输入端口的工作原理 120

8.1.2 输入端口的相关寄存器 121

8.1.3 端口的“读—修改—写”问题 121

8.1.4 端口的高压静电保护 122

8.2 按键状态的识别 123

8.3 矩阵式键盘的读取 128

8.3.1 4×4矩阵式键盘的工作原理 128

8.3.2 实例:基于扫描法的矩阵式键盘读取 129

8.4 实践拓展:如何正确使用上拉电阻与下拉电阻 136

第9章 PIC单片机的C语言程序设计 138

9.1 实例:第一个单片机C语言程序 138

9.2 单片机C语言的数据类型 142

9.2.1 常量和变量 143

9.2.2 字符型数据 145

9.2.3 整型数据 147

9.2.4 浮点型数据 149

9.2.5 位型数据 150

9.2.6 变量的命名规则 151

9.2.7 变量赋初值 152

9.3 C语言的运算符 152

9.3.1 算术运算符 153

9.3.2 位运算符 154

9.3.3 赋值运算符 158

9.3.4 关系运算符 159

9.3.5 逻辑运算符 160

9.4 C语言的重要控制语句 161

9.4.1 选择结构 161

9.4.2 循环结构 165

9.5 数组 168

9.5.1 数组的定义与初始化 169

9.5.2 数组的使用 170

9.5.3 实例:用C语言控制数码管 171

9.6 函数 174

9.6.1 函数的声明和定义 175

9.6.2 局部变量和全局变量 177

9.6.3 数组作为函数的参数 178

9.6.4 实例:延时函数的设计 179

9.7 预处理命令与宏定义 181

9.7.1 不带参数的宏定义 181

9.7.2 带参数的宏定义 182

9.7.3 文件包含 183

9.7.4 条件编译 183

9.8 C语言编程规范 185

9.8.1 标识符命名 185

9.8.2 可读性 186

9.8.3 程序的排版 187

9.8.4 注释的书写方法 189

9.9 多文件项目管理 191

9.9.1 头文件的书写 191

9.9.2 源码文件的书写 192

9.9.3 模块文件添加到当前项目 193

9.10 实例:一位计数器的设计 193

9.11 实践拓展:PIC单片机C语言入门常见问题 195

第10章 基于C语言的I/O控制 197

10.1 输出端口的C语言编程 197

10.1.1 走马灯控制 197

10.1.2 多数码管的显示控制 198

10.2 输入端口的编程 203

10.2.1 单个按键状态的读取 203

10.2.2 两个按键状态的读取 205

10.3 矩阵式键盘的读取方法 207

10.3.1 基于扫描法的矩阵式键盘读取 207

10.3.2 矩阵式键盘的模块化编程 209

10.4 实例:简单的电子计算器设计 211

10.5 实践拓展:如何使用去偶电容 215

第三篇 模块功能 217

第11章 中断系统 217

11.1 单片机中断的处理过程 217

11.2 PIC中断系统的硬件结构 217

11.3 中断的响应和处理 219

11.4 INT中断 221

11.4.1 INT中断的相关寄存器 221

11.4.2 INT中断的硬件连接 222

11.4.3 INT中断的汇编语言编程 223

11.4.4 PICC中断服务程序的编写 224

11.5 实例:用INT中断控制LED 225

11.6 实践拓展:PIC单片机常见的中断问题有哪些 226

第12章 定时/计数器 228

12.1 计数与定时的基本概念 228

12.2 PIC16F877的定时/计数器 228

12.3 TIMER0的用法 229

12.3.1 TIMER0的系统结构及相关寄存器 229

12.3.2 TIMER0的硬件连接 231

12.3.3 TIMER0的软件编程 232

12.4 TIMER0的应用 237

12.4.1 实例:电子表设计 237

12.4.2 实例:脉冲宽度测量 241

12.4.3 实例:频率计设计 245

12.4.4 实例:方波发生器 247

12.5 看门狗 251

12.5.1 看门狗的系统结构 251

12.5.2 看门狗的硬件设置 252

12.5.3 看门狗的程序设计 252

12.5.4 看门狗的使用要点 257

12.6 实践拓展:如何校准PIC单片机内部RC振荡器 257

第13章 A/D转换器 259

13.1 PIC16F877片内A/D转换器的结构与基本用法 259

13.1.1 A/D转换器的系统结构 259

13.1.2 与A/D转换相关的寄存器 261

13.1.3 A/D转换器的硬件设计 262

13.1.4 A/D转换器的查询方式操作时序与编程 262

13.2 实例:多通道A/D转换编程 265

13.3 中断模式下的A/D转换 267

13.3.1 中断模式下A/D转换器涉及的寄存器 268

13.3.2 中断模式下A/D转换器编程 268

13.4 实例:电位器阻值测量 270

13.4.1 电位器阻值测量仪设计 271

13.4.2 A/D转换的软件滤波 274

13.4.3 上下限报警 278

13.4.4 休眠模式的A/D转换 281

13.5 A/D转换参数计算 283

13.5.1 转换精度 284

13.5.2 采样时间要求 284

13.5.3 转换时间要求 285

13.6 实践拓展:常见的A/D转换器件有哪些 285

第14章 通用同步/异步收发器USART 287

14.1 串行通信与并行通信的基本概念 287

14.1.1 通信协议 287

14.1.2 数据传送方式 288

14.1.3 波特率 289

14.1.4 串行通信的检错和纠错 289

14.2 PIC单片机的USART模块 289

14.2.1 USART的功能特点 289

14.2.2 USART发送器的系统结构 290

14.2.3 USART发送器的相关寄存器 292

14.2.4 实例:USART异步模式下发送数据 294

14.2.5 USART接收器的系统结构 297

14.2.6 USART接收器的相关寄存器 298

14.2.7 实例:USART异步模式下接收数据 300

14.2.8 实例:USART异步接收方式的出错分析 304

14.3 USART的外围硬件电路设计 306

14.4 高级串行通信协议的设计 308

14.4.1 实例:单向数据通信协议的设计 309

14.4.2 带应答的数据通信协议 314

14.5 实践拓展:什么是RS-485/EIA-485 314

第15章 SPI接口 316

15.1 SPI模块的功能及系统结构 316

15.2 主控发送模式 317

15.2.1 主控发送模式的工作流程 317

15.2.2 主控发送模式的相关寄存器 318

15.2.3 主控发送模式的硬件连接 319

15.2.4 实例:主控发送模式的程序设计 319

15.3 从动接收模式 321

15.3.1 从动接收模式的工作流程 322

15.3.2 从动接收模式的相关寄存器 322

15.3.3 从动接收模式的硬件连接 324

15.3.4 实例:从动接收模式的程序设计 325

15.4 主控接收与从动发送 328

15.4.1 主控接收模式的工作流程 328

15.4.2 主控接收模式的相关寄存器 329

15.4.3 从动发送模式的工作流程 331

15.4.4 主控接收和从动发送模式下的硬件连接 331

15.4.5 实例:双机通信的程序设计 332

15.5 25xxx系列EEPROM的读写 336

15.5.1 25C160的功能特点 336

15.5.2 25C160的系统结构与工作流程 337

15.5.3 25C160的硬件连接 339

15.5.4 实例:25C160的程序设计 340

15.6 实践拓展:常用SPI接口芯片有哪些 345

第16章 I2C接口 346

16.1 I2C的功能特点 346

16.1.1 I2C的电气连接 346

16.1.2 I2C协议简介 347

16.1.3 PIC16F877的I2C模块 349

16.2 I2C主模式数据发送 349

16.2.1 I2C主模式系统结构与数据发送流程 350

16.2.2 I2C主模式发送过程相关寄存器 352

16.2.3 I2C模块的硬件连接 353

16.2.4 实例:I2C的主模式数据发送程序设计 354

16.3 I2C主模式数据接收 357

16.3.1 I2C主模式数据接收流程 357

16.3.2 I2C主模式接收过程相关寄存器 359

16.3.3 实例:I2C的主模式数据接收程序设计 360

16.4 I2C主模式的复合数据帧 364

16.5 I2C接口EEPROM的读写实例 364

16.5.1 24C02C功能简介 364

16.5.2 24C02C的系统结构与读写帧格式 365

16.5.3 24C02C的硬件连接 366

16.5.4 实例:读写24C02C的程序设计 367

16.6 I2C从模式的数据接收和发送 373

16.6.1 I2C从模式系统结构和数据接收流程 373

16.6.2 I2C从模式相关寄存器 374

16.6.3 实例:I2C从模式数据接收 376

16.6.4 实例:I2C从模式数据发送 379

16.7 实践拓展:SPI、I2C、USART有何区别 381

第17章 CCP模块 382

17.1 CCP模块的基本概念 382

17.2 CCP1的捕捉模式 382

17.2.1 CCP1捕捉模式的系统结构和工作过程 383

17.2.2 CCP1捕捉模式下的相关寄存器 384

17.2.3 实例:基于捕捉功能的频率计设计 385

17.3 CCP1的比较模式 390

17.3.1 CCP1比较模式的系统结构和工作过程 390

17.3.2 CCP1比较模式下的相关寄存器 391

17.3.3 实例:基于比较功能的方波发生器设计 391

17.4 CCP1的PWM模式 394

17.4.1 CCP1的PWM模式的系统结构和工作过程 394

17.4.2 CCP1的PWM模式下的相关寄存器 394

17.4.3 PWM的周期与占空比 395

17.4.4 实例:基于PWM功能的方波发生器设计 396

17.4.5 实例:基于PWM功能的D/A转换器设计 399

17.5 CCP2模块 402

17.6 实践拓展:什么是SPWM 402

第四篇 综合实例 403

第18章 LED点阵显示屏及其应用 403

18.1 8×8LED显示屏显示原理及编程 403

18.2 改进的8×8LED显示屏原理及编程 406

18.3 16×16LED显示屏显示原理及编程 410

18.4 基于第三方软件的汉字字模生成 414

18.5 LED点阵显示屏的动态显示 416

18.6 基于硬件字库的汉字显示 420

18.7 实践拓展:字模Ⅲ软件有什么特色功能 425

第19章 液晶显示屏的使用 427

19.1 笔段式液晶显示屏原理及编程 427

19.1.1 VIM-332-DP的显示原理 427

19.1.2 VIM-332-DP的硬件连接 428

19.1.3 VIM-332-DP的软件编程 429

19.2 字符式液晶显示屏原理及编程 433

19.2.1 字符式液晶显示屏LM016L的特点 434

19.2.2 LM016L的系统结构与硬件连接 434

19.2.3 LM016L的指令集 436

19.2.4 LM016L的编程方法 437

19.2.5 LM016L的字符显示 437

19.2.6 LM016L的初始化 438

19.2.7 实例:基于LM016L的秒表显示设计 439

19.3 图形点阵式液晶显示屏原理及应用 445

19.3.1 HDG12864F-3的功能特点 445

19.3.2 HDG12864F-3的接口与硬件连接 446

19.3.3 HDG12864F-3的指令集 447

19.3.4 HDG12864F-3的编程方法 448

19.3.5 HDG12864F-3的数据显示 450

19.3.6 HDG12864F-3的初始化 450

19.3.7 HDG12864F-3的驱动程序设计 451

19.3.8 在图形点阵式液晶显示屏上显示图像和汉字 457

19.4 实践拓展:使用液晶显示屏时有哪些常见问题 462

第20章 多点温度监测系统 464

20.1 DS18B20的结构与功能特点 464

20.2 DS18B20的操作命令及其应用 465

20.2.1 复位操作 466

20.2.2 写位操作 467

20.2.3 写字节操作 467

20.2.4 读位操作 468

20.2.5 读字节操作 469

20.3 DS18B20的命令列表 469

20.4 实例:单点温度测量 470

20.5 多点温度采集相关命令及编程 481

20.5.1 搜索ROM命令 481

20.5.2 读ROM命令 485

20.5.3 匹配ROM命令 485

20.6 实例:多点温度监测报警系统 487

20.7 实践拓展:常用一线总线芯片有哪些 500

第21章 步进电机控制 501

21.1 步进电机的控制原理 501

21.2 步进电机的驱动系统 502

21.2.1 电机驱动芯片L298原理与应用 502

21.2.2 电机控制芯片L297原理与应用 505

21.3 实例:基于L297和L298的步进电机控制 508

21.4 实践拓展:步进电机使用中的常见问题有哪些 512

参考文献 514