《PIC单片机入门与实战》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:张明峰编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2004
  • ISBN:7810775081
  • 页数:429 页
图书介绍:本书系统阐述PIC单片机开发过程的最基本步骤;通过引入设计实例深入浅出地介绍单片机的各主要功能模块。

目录 1

第1章PIC单片机的结构和指令系统 1

1.1 Microchip单片机产品概述 1

9.2.5 SSPCON2同步接口控制寄存器 2

1.2 PIC中档单片机的基本特性 2

1.2.1 内核结构简述 3

1.2.3寄存器文档概念 6

1.2.2指令流水线概念 6

1.2.4单字指令概念 7

1.3 PIC中档系列单片机的指令集 9

1.3.1字节操作指令详述 9

1.3.2位操作指令详述 19

1.3.3立即数操作指令详述 21

1.3.4控制指令详述 24

1.4 PIC单片机数据寄存器的寻址 28

1.4.1数据寄存器直接寻址 28

1.4.2数据寄存器间接寻址 31

1.5 PIC单片机程序空间的寻址问题 33

1.5.1 PIC单片机程序空间的直接跳转 33

1.5.2 PIC单片机程序空间的间接跳转 36

1.6 PIC中档系列单片机的中断机制 39

1.6.1 中断响应时的入口地址(中断向量) 40

1.6.2中断优先级控制 40

1.6.3中断现场保护和恢复 41

1.6.4中断控制逻辑 44

第2章 PIC单片机的特色 47

2.1 PIC单片机的工作时钟模式 47

2.1.1 石英晶体或陶瓷谐振器振荡 47

2.1.2外部时钟 52

2.1.3外部RC振荡 53

2.1.4内部RC振荡 55

2.1.5振荡模式的确定 56

2.2 PIC单片机的复位过程 56

2.2.1 上电复位(POR) 56

2.2.2 低电压检测复位(BOR或BOD) 58

2.2.3外部复位 60

2.2.4看门狗复位 60

2.2.5判别复位情形 61

2.3 PIC单片机的低功耗休眠 62

2.4 PIC单片机在线串行编程 64

2.5 PIC单片机的芯片配置字 67

3.1.1 MPLAB-IDE综述 70

第3章PIC单片机的开发环境 70

3.1 MPLAB-IDE的功能组成 70

3.1.2 MPLAB-IDE的安装 71

3.1.3 MPLAB-IDE项目管理 72

3.1.4 MPLAB-IDE源程序编辑 76

3.2汇编编译器MPASMTM及其汇编程序编写的基本规则 77

3.2.1汇编编译器MPASM简介 77

3.2.2 MPASM的语法简要说明 78

3.2.3 MPASM的伪指令 79

3.2.4 MPASM内的直接运算符 86

3.2.5 MPASM的宏指令 88

3.2.6程序模板 95

3.2.7 IDE内MPASM编译环境的设定 97

4.1.1 软件模拟器的安装和启动 101

4.1软件模拟器MPLAB-SIM 101

第4章PIC单片机的开发工具 101

4.1.2软件模拟器的程序运行控制方式 102

4.1.3断点的设定和取消 104

4.1.4光标控制程序运行 105

4.1.5软件模拟器的跑表功能 105

4.1.6运行结果的观察窗口 107

4.1.7模拟器的信号激励功能 111

4.1.8软件模拟器的局限 117

4.2在线调试器MPLAB-ICD2 117

4.2.1 ICD2的基本功能及其优缺点 118

4.2.2 ICD2与计算机的连接方式 119

4.2.3 ICD2与目标板的连线方式 120

4.2.4 ICD2和目标板的供电问题 122

4.2.5 MPLAB-IDE环境下ICD2的启用 123

4.2.6用ICD2进行系统调试 126

4.2.7 ICD2的辅助信息 128

4.2.8用ICD2让芯片独立工作 130

4.3硬件仿真器MPLAB-ICE2000 130

4.3.1 ICE2000的基本功能 131

4.3.3 ICE2000与目标板的连接 132

4.3.2 ICE2000与计算机的连接 132

4.3.4启动ICE2000仿真器 133

4.3.5 ICE2000的基本调试功能 136

4.3.6 ICE2000对代码执行的跟踪功能 136

4.3.7 ICE2000高级触发功能 140

4.3.8 ICE2000触发输入/输出同步功能 148

4.3.9 ICE2000代码执行覆盖检查功能 149

4.3.10关于ICE2000的其他有用信息 151

4.4 芯片编程烧写工具PICSTART-Plus和PROMATE-Ⅱ 153

4.4.1 PICSTART-Plus 154

4.4.2 PROMATE-Ⅱ 157

4.5第三方开发工具 159

4.5.1第三方仿真工具 159

4.5.2第三方编程工具 159

第5章 PIC单片机的I/O口及其灵活应用5.1 PIC单片机I/O口的基本特性 160

5.1.2端口输入/输出设定 161

5.1.3端口的读和写 161

5.1.1完全双向的I/O引脚 161

5.1.4端口的输出驱动能力 162

5.1.5端口的“读—修改—写”问题 163

5.1.6引脚端口的ESD保护 165

5.2 PIC单片机I/O口的设定方法 166

5.3 PIC单片机PORTA端口 167

5.3.1 PORTA的特点 167

5.3.2 RA4的特殊性 168

5.4 PIC单片机PORTB端口 169

5.4.1 PORTB综述 169

5.4.2 RB0/INT引脚的中断功能 170

5.4.3 PORTB的RB7~RB4引脚状态变化中断 170

5.5PIC单片机PORTC端口 176

5.6 PIC单片机PORTD和PORTE端口 177

5.7 PIC单片机I/O引脚的应用技巧 178

5.7.1输入输出分时复用 179

5.7.2普通I/O引脚测电压值 180

5.7.3普通I/O引脚测电阻值 184

5.7.4普通I/O引脚进行超限电压检测 190

第6章pIC单片机的定时器资源及其应用 192

6.1.1 TMR0综述 192

6.1定时器TMR0 192

6.1.2与TMR0相关的控制寄存器 193

6.1.3 TMR0的运作 194

6.1.4 TMR0中断 195

6.1.5 TMR0用于外部脉冲计数 197

6.1.6 TMR0的预分频器 198

6.1.7 TMR0应用注意事项 199

6.2定时器TMR1 205

6.2.1 TMR1综述 205

6.2.2与TMR1相关的控制寄存器 206

6.2.3 TMR1作为定时器 207

6.2.4 TMR1作为同步计数器 207

6.2.7 TMR1与CCP模块配合 208

6.2.6 TMR1的内部振荡器 208

6.2.5 TMR1作为异步计数器 208

6.2.8 TMR1的具体应用 209

6.3.1 TMR2综述 216

6.3.2与TMR2相关的控制寄存器 216

6.3定时器TMR2 216

6.3.3 TMR2的工作方式 218

6.3.4TMR2的应用 218

第7章PIC单片机的模/数转换模块及其 221

7.1 PIC单片机片上ADC模块综述 221

使用 221

7.2 ADC相关控制寄存器介绍 222

7.2.1 ADCON0控制寄存器 222

7.2.2 ADCON1控制寄存器 223

7.2.3 ADRES结果寄存器 224

7.2.4 A/D转换中断相关的寄存器 224

7.3设定模拟信号输入引脚 225

7.4 A/D转换过程说明 226

7.5.1 输入电压信号的幅度 228

7.5被测输入信号的参数要求 228

7.5.2输入电压信号的内阻 229

7.5.3输入信号的抗混叠滤波 230

7.6输入信号的采样过程 232

7.7AD转换时钟的选择 234

7.8参考电压的选取 235

7.9休眠时进行A/D转换 236

7.10特殊事件触发进行A/D转换 238

7.11 10/12位分辨率的ADC模块 241

7.11.1 10/12位分辨率A/D模块的工作原理 241

7.11.2 ADCON1寄存器的内容扩充 242

7.11.3 A/D转换结果的格式问题 243

7.11.4参考电压的考虑 244

7.11.5采样时间的考虑 245

7.12 8/14引脚单片机上的A/D模块 245

7.12.1 8/14引脚单片机A/D模块综述 246

7.12.2 ADCON0寄存器的变化 246

7.12.3 ADCON1寄存器的变化 247

7.12.4 ANSEL寄存器的引入 248

7.13.1 模拟/数字引脚分配时的问题 249

7.12.5其他注意事项 249

7.13A/D模块的应用技巧 249

7.13.2合理实现采样时间 252

7.13.3转换结果的软件数字滤波方法 253

8.2 USART模块关键寄存器介绍 258

8.2.1 TXSTA数据发送控制及状态寄存器 258

8.1 USART简介 258

其使用 258

第8章PIC单片机的USART通信模块及 258

8.2.2 RCSTA数据接收控制及状态寄存器 259

8.2.3 SPBRG波特率控制寄存器 261

8.2.4相关的中断控制寄存器 261

8.2.5 TXREG和RCREG寄存器 261

8.3 USART波特率设定 262

8.3.1 异步通信时的波特率设定 262

8.4.1异步通信数据格式 267

8.4 USART模块的异步通信 267

8.3.2 同步通信时的波特率设定 267

8.3.3 SPBRG寄存器的写效应 267

8.4.2异步通信数据发送过程 268

8.4.3异步通信数据接收过程 273

8.4.4常用的异步通信的协议 279

8.5 USART模块同步通信主模式 283

8.5.1 同步通信主模式发送 283

8.5.2同步通信主模式接收 284

8.6 USART模块同步通信从模式 285

8.6.1 同步从模式数据发送 285

8.6.2同步从模式数据接收 286

8.7通信时的数据缓冲技巧 286

8.7.1 接收环形FIFO缓冲队列 286

8.7.2发送缓冲队列 287

8.8通信数据的校验方法 288

8.8.1奇偶位校验 288

8.8.2累加和校验 289

8.8.3循环冗余校验(CRC) 290

8.9报文通信时的简单协议 293

8.10异步串行通信的波特率自适应技术探讨 298

8.10.1标准波特率穷举法 298

8.10.2码元宽度实时检测法 301

8.11 多机通信的寻址方式 304

8.11.1 9位数据传输 305

8.11.2数据包传输 305

8.12软件实现异步串行通信 305

8.12.1三倍速采样法 306

8.1 2.2起始位中断捕捉定时采样法 313

9.2.1 SSPSTAT同步接口状态和控制寄存器 315

9.1 同步串行接口简介 315

9.2 SSP接口模块控制寄存器 315

第9章PIC单片机同步串行接口及其应用 315

9.2.2 SSPCON同步接口控制寄存器 317

9.2.3 SSPBUF数据寄存器 319

9.2.4 SSPADD地址寄存器 319

9.2.6与SSP相关的中断控制寄存器 320

9.3.1使用SPI通信接口 321

9.3 SSP模块的SPI通信方式 321

9.3.2 SPI通信引脚设置 323

9.3.3 SPI通信时的连接方式 323

9.3.4 SPI主模式通信 324

9.3.5 SPI从模式通信 325

9.3.6 SPI从模式选择控制通信 326

9.3.7 SPI应用实例介绍 327

9.4 SSP和MSSP模块的12C模式 337

9.4.1 I2C从模式 339

9.4.2 MSSP模块的I2C主模式 342

9.4.3 I2C通信程序范例 344

9.4.4 I2C总线硬件处理 357

9.5软件实现同步串行通信 358

9.5.1软件实现SPI主模式通信 359

9.5.2软件实现I2C主模式通信 361

第10章PIC单片机的CCP模块及其应用 367

10.1 CCP模块简介 367

10.2与CCP模块相关的控制寄存器 368

10.3 CCP模块的输入捕捉模式 370

10.3.1 CCPx引脚配置 371

10.3.2改变不同的捕捉模式 371

10.3.3脉冲沿捕捉时的预分频 371

10.3.4休眠时进行捕捉 371

10.3.5复位时的情形 372

10.3.6捕捉模式应用实例介绍 372

10.4.1 比较模式下的CCPx引脚 374

10.4 CCP模块的比较输出模式 374

10.4.2软件中断模式 375

10.4.3特殊事件触发 375

10.4.4休眠时的比较输出状态 375

10.4.5 比较输出模式应用实例 375

10.5 CCP模块的PWM模式 381

10.5.1 PWM周期 382

10.5.2 PWM占空比(高电平持续宽度) 382

10.5.3 占空比调整的绝对分辨率 383

10.5.5 PWM应用实例 384

10.5.4 PWM工作模式设定 384

第11章 PIC单片机的C语言编程 394

11.1 PIC单片机C语言编程简介 394

11.2 Hitech-PICC编译器 395

11.3 MPLAB-IDE内挂接PICC 395

11.4 PIC单片机的C语言源程序基本框架 397

11.5 PICC中的变量定义 398

11.5.1 PICC中的基本变量类型 398

11.5.2 PICC中的高级变量 399

11.5.3 PICC对数据寄存器bank的管理 400

11.5.4 PICC中的局部变量 400

11.5.5 PICC中的位变量 401

11.5.6 PICC中的浮点数 402

11.5.7 PICC中变量的绝对定位 403

11.5.8 PICC的其他变量修饰关键词 403

11.5.9 PICC中的指针 405

11.6.1 函数的代码长度限制 408

11.6.2调用层次的控制 408

11.6 PICC中的子程序和函数 408

11.6.3 函数类型声明 409

11.6.4 中断函数的实现 409

11.6.5标准库函数 411

11.7 PICC定义特殊区域值 411

11.7.1 定义工作配置字 411

11.7.2定义芯片标记单元 412

11.8.1选择单片机型号 413

11.8.2 PICC普通编译选项(General)设定 413

11.8 MPLAB-IDE中实现PICC的编译选项设置 413

11.8.3 PICC全局选项设定(PICC Global) 414

11.8.4 C编译器选项设定(PICC Conpiler) 415

11.8.5 连接器选项设定(PICC Linker) 417

11.8.6 汇编器选项设定(PICC Assembler) 419

11.9 C和汇编混合编程 420

11.9.1 嵌入行内汇编的方法 420

11.9.2 汇编指令寻址C语言定义的全局变量 421

11.9.3 汇编指令寻址C函数的局部变量 422

11.9.4混合编程的一些经验 425