《PIC单片机原理与实践 汇编及C语言》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:曾辉著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2017
  • ISBN:9787512425040
  • 页数:622 页
图书介绍:全书共19章,以PIC16F877A的为对象进行讲解,另附新增的PIC16F193X相关内容,包括PIC16F877A硬件系统、指令系统、C语言及汇编语言、中断系统、输入输出I/O端口、Timer0模块、Timer1模块、Timer2模块、CCP模块、ADC模块、基准电压源与比较器、SPI通信、IIC通信、USART异步通信、USART同步通信、PSP通信、EEPROM、时钟系统、复位系统等内容。本书可供电子设计工程技术人员,大专院校学生及教师参考用。

第1章 PIC16F877A硬件系统 1

1.1 PIC16F877A硬件配置概览 1

1.2 PIC16F877A引脚布置图 3

1.3 PIC16F877A内部结构图 5

1.4 PIC16F877A程序存储器结构图 9

1.5 PIC16F877A数据存储器结构图 10

1.6 两种不同的存储器组织结构的比较 14

1.7 PIC16F193X硬件配置概览 16

1.8 PIC16F193X引脚布置图 18

1.9 PIC16F193X内部结构图 19

第2章 指令系统 27

2.1 关于指令系统 27

2.2 RISC与CISC指令系统的比较 28

2.3 指令的格式 28

2.4 RISC指令的时序 30

2.5 指令系统概览 32

2.6 指令系统说明 33

2.7 寻址方式 45

2.8 PIC16F193X的指令系统 48

2.9 C语言中与位操作有关的函数 56

第3章 汇编语言编程 59

3.1 关于汇编语言 59

3.2 汇编器 60

3.3 汇编语言的语句格式 60

3.4 操作数格式描述 61

3.5 汇编伪指令 62

3.6 汇编语言的程序格式 65

3.7 顺序程序结构 66

3.8 循环程序结构 67

3.9 分支程序结构 68

3.10 子程序结构 69

3.11 延时程序设计 70

3.12 查表程序设计 72

3.13 RAM数据存储器的体选寻址 74

3.14 FLASH程序存储器的分区及跨页跳转 78

3.15 PIC16F193X的FLASH程序存储器及跳转指令 82

3.16 C语言中与内存操作有关的函数 84

第4章 中断系统 86

4.1 由查询方式到中断方式 86

4.2 中断的响应过程 87

4.3 中断的基本硬件结构 89

4.4 PIC16F877A的中断源 90

4.5 与PIC16F877A中断相关的寄存器 91

4.6 PIC16F877A的中断逻辑 95

4.7 中断的响应延时 96

4.8 中断的现场保护 98

4.9 RB0/INT外部中断 101

4.10 与INT中断相关的寄存器 101

4.11 INT外部中断块应用实践 102

4.12 RB端口电平变化中断 104

4.13 与RB端口电平变化中断相关的寄存器 104

4.14 RB端口电平变化中断应用实践 105

4.15 PIC16F193X的中断逻辑 109

4.16 PIC16F193X的中断自动现场保护 109

4.17 PIC16F193X的RB端口电平变化中断 110

4.18 中断的C语言编程 113

第5章 I/O端口 117

5.1 典型的I/O端口 117

5.2 典型的I/O端口工作原理 119

5.3 推挽电路的实验 120

5.4 D触发器的实验 121

5.5 关于端口的读取—修改—写入 122

5.6 I/O端口的保护 124

5.7 RA端口 125

5.8 RB端口 129

5.9 RC端口 135

5.10 RD端口 141

5.11 RE端口 143

5.12 PIC16F193X系列机型的I/O端口 145

5.13 I/O端口的C语言编程 147

第6章 TIMER0(WDT)模块 151

6.1 TIMER0模块定时器/计数器的功能特点 151

6.2 与TIMER0模块相关的寄存器 151

6.3 TIMER0(WDT)模块的电路结构 153

6.4 TIMER0模块两种工作模式的说明 155

6.5 TIMER0模块应用实践 159

6.6 软件与硬件定时的比较与分析 166

6.7 看门狗定时器WDT 168

6.8 与WDT工作相关的寄存器 169

6.9 WDT的工作原理 170

6.10 PIC16F193X系列的TIMER0和WDT模块(EWDT) 173

6.11 TIMER0模块的C语言编程 175

6.12 WDT模块的C语言编程 178

第7章 TIMER1模块 180

7.1 TIMER1模块定时器/计数器的功能特点 180

7.2 与TIMER1模块相关的寄存器 180

7.3 TIMER1模块的电路结构和相关原理 182

7.4 TIMER1模块自带振荡器的电路结构和工作原理 183

7.5 TIMER1模块两种工作模式的说明 186

7.6 TIMER1模块应用实践 192

7.7 PIC16F193X的Timer1模块(ETimer1) 202

7.8 TIMER1模块的C语言编程 208

第8章 TIMER2模块 213

8.1 TIMER2模块定时器的功能特点 213

8.2 与TIMER2模块相关的寄存器 213

8.3 TIMER2模块的电路结构 215

8.4 TIMER2模块的工作原理 216

8.5 TIMER2模块应用实践 219

8.6 三类TIMER的比较 224

8.7 TIMER2模块的C语言编程 224

8.8 虚拟定时器(#use timer) 227

第9章 CCP模块 230

9.1 CCP模块的功能特点 230

9.2 与Capture、Compare、Timer1工作相关的寄存器 231

9.3 Capture模式的电路结构和工作原理 232

9.4 Capture模式的应用实践 235

9.5 Compare模式的电路结构和工作原理 239

9.6 Compare模式的应用实践 241

9.7 两种定时(计数)方式的比较 244

9.8 与PWM、Timer2工作相关的寄存器 245

9.9 PWM模式的电路结构和工作原理 246

9.10 两个CCP模块之间的相互关系 252

9.11 PWM工作方式应用实践 254

9.12 PIC16F193X系列的ECCP模块 260

9.13 CCP模块的C语言编程 265

第10章 模/数转换模块ADC 277

10.1 单片机环境下的数据采集 277

10.2 ADC模块的概述 277

10.3 与ADC模块相关的寄存器 278

10.4 ADC模块的电路结构 281

10.5 ADC模块的静态特性 283

10.6 ADC模块的动态特性 286

10.7 ADC模块模拟输入引脚的设置 290

10.8 特殊情况下的A/D转换 291

10.9 综合权衡转换速度与转换精度 292

10.10 基准电压、电源电压和模拟输入电压的比较 292

10.11 工作流程和传递函数 294

10.12 ADC模块应用实践 295

10.13 PIC16F193X系列的ADC模块 300

10.14 ADC模块的C语言编程 302

第11章 电压基准与比较器模块 306

11.1 基准电压模块的功能特点 306

11.2 与基准电压模块相关的寄存器 306

11.3 电压基准源模块的电路结构 307

11.4 基准电压的配置 309

11.5 基准电压连接注意事项 309

11.6 基准电压使用注意事项 310

11.7 比较器模块的功能特点 310

11.8 与比较器模块相关的寄存器 311

11.9 比较器不同工作方式下的引脚配置 312

11.10 比较器的工作原理及使用注意事项 313

11.11 比较器模块应用实践 319

11.12 PIC16F193X系列的固定基准电压(FVR) 323

11.13 PIC16F193X系列的DAC模块 324

11.14 PIC16F193X系列的比较器模块(带SR锁存) 327

11.15 电压基准源及比较器模块的C语言编程 330

第12章 SPI通信 334

12.1 SPI通信接口概述 334

12.2 SPI通信接口功能特点 335

12.3 SPI系统拓扑 336

12.4 SPI接口通信方式 336

12.5 SPI通信方式举例 338

12.6 与SPI通信相关的寄存器 339

12.7 SPI工作方式下的硬件电路结构与工作原理 342

12.8 SPI接口的初始化设置 343

12.9 SPI接口在主控方式下的工作 345

12.10 SPI接口在从动方式下的工作 347

12.11 SPI通信应用实践 349

12.12 SPI模块的C语言编程 361

第13章 I2C通信 373

13.1 I2C通信接口概述 373

13.2 I2C通信接口功能特点 374

13.3 I2C系统拓扑 375

13.4 I2C接口的电路结构 376

13.5 I2C总线的基本工作原理 377

13.6 I2C通信的波特率发生器 379

13.7 I2C总线信号的时序分析 380

13.8 I2C通信的信号传输格式 385

13.9 I2C通信寻址方式 386

13.10 与I2C通信相关的寄存器 387

13.11 I2C接口在主控方式下的工作 391

13.12 I2C接口在被控方式下的工作 396

13.13 I2C通信的C语言编程 416

第14章 USART异步通信 427

14.1 USART通信接口概述 427

14.2 USART通信模块的组成 428

14.3 USART通信接口功能特点 428

14.4 与USART异步通信相关的寄存器 429

14.5 USART波特率发生器BRG 432

14.6 USART模块的异步工作方式 433

14.7 USART异步发送器 434

14.8 USART异步接收器 436

14.9 USART异步通信应用分析 438

14.10 带地址检测功能的9位USART异步接收器 448

14.11 AUSART异步通信应用分析 450

14.12 USART模块的C语言编程 455

第15章 USART同步通信 467

15.1 USART同步工作方式 467

15.2 USART同步通信拓扑 467

15.3 与USART同步通信相关的寄存器 468

15.4 USART波特率发生器BRG 470

15.5 USART同步工作方式下的硬件电路结构与工作原理 471

15.6 USART同步通信应用分析 476

15.7 USART模块的C语言编程(同步方式) 481

第16章 PSP通信 484

16.1 串行通信与并行通信的比较 484

16.2 PSP通信介绍 485

16.3 与PSP通信相关的寄存器 485

16.4 PSP通信的硬件电路结构与工作原理 487

16.5 PSP通信应用实践 490

16.6 PSP通信的C语言编程 494

第17章 EEPROM 498

17.1 关于EEPROM 498

17.2 片内EEPROM存储器结构 499

17.3 与EEPROM相关的寄存器 500

17.4 片内EEPROM的结构与操作原理 503

17.5 片内EEPROM(HEF)与独立式EEPROM的比较 506

17.6 防止片内EEPROM数据丢失的安全措施 508

17.7 EEPROM应用实践 509

17.8 EEPROM模块的C语言编程 519

第18章 振荡器电路 522

18.1 振荡器电路概述 522

18.2 RC振荡器电路 523

18.3 外接石英晶体振荡器电路(LP/XT/HS) 524

18.4 外接陶瓷谐振器电路(LP/XT/HS) 527

18.5 外部振荡器电路(LP/XT/HS) 528

18.6 石英晶体振荡器的起振过程 530

18.7 Sleep工作方式 531

18.8 Sleep工作方式下的唤醒 532

18.9 与睡眠(Sleep)及唤醒(Wakeup)相关的寄存器 535

18.10 PIC16F193X系列的振荡器电路 536

18.11 片内振荡器电路的C语言编程 545

第19章 复位系统 548

19.1 复位及复位系统概述 548

19.2 片内复位系统电路结构 549

19.3 简易的电源上电复位方式 552

19.4 特殊情况下的电源上电复位 554

19.5 通常情况下的电源上电复位 556

19.6 正常工作状态下的手动复位 557

19.7 Sleep状态下的手动复位 559

19.8 看门狗WDT复位 560

19.9 电源欠压复位(BOR及LPBOR) 560

19.10 PIC16F193X的复位系统 564

19.11 与C有关的预处理器#include与#fuses 565

19.12 C语言控制类函数 567

第20章 C语言编程 569

20.1 C语言简史 569

20.2 为什么要使用C语言 569

20.3 使用CCS公司的C语言编译器 571

20.4 CCS C编译器的数据类型 573

20.5 CCS C编译器的预处理器 575

20.6 CCS C编译器的内置函数 578

20.7 观察C程序的编译结果 580

第21章 新型8位MCU及特色 586

21.1 新型8位MCU系列及特点 586

21.2 独立于内核的外设CIP 591

21.3 片内智能模拟器件 599

21.4 CIP功能演示及分析 603

21.5 出色的节能技术 606

21.6 代码配置器MCC 609

附录 612

参考文献 621