《手把手教你学PIC单片机C程序设计》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:周兴华,吕超亚,李玉丽,岑巍编著;周兴华单片机培训中心策划
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2013
  • ISBN:9787512410824
  • 页数:358 页
图书介绍:本书以作者在《电子制作》杂志上连载的《PIC单片机入门及C语言高效设计实践》讲座为母本,以实践(实验)为主线,以生动短小的实例为灵魂,穿插介绍C语言语法及新型高性价比PIC单片机的结构、特性及编程,使理论与实践完美结合,牵引着读者逐步推进,牢牢把握住循序渐进的节奏。每学习一段理论,必有与之对应的短小精悍程序供其实践,这样读者学得进、记得牢,不会产生畏难情绪,直至彻底掌握PIC单片机的C语言高效编程。本书的学习风格类似于《手把手教你学单片机》的风格。读者对象:大、中专学生,各行各业的技术人员,新产品开发人员,广大电子爱好者。本书也可作为高职、高校学生的实习用教材。

第1章 概述 1

1.1 快速高效地学会PIC单片机应用编程的办法是采用C语言编程 1

1.2 C语言具有的突出优点 2

1.3 PIC单片机简介 4

第2章 学习PIC单片机设计所用的软件及实验器材 5

2.1 MPLAB IDE集成开发环境 5

2.2 PICCC语言编译器 5

2.3 PICDEMO单片机综合试验板 6

2.4 ICD2在线调试器/程序下载器 9

2.5 USB程序下载器 9

2.6 5V高稳定专用稳压电源 10

第3章 开发软件的安装及第一个入门实验程序 12

3.1 MPLAB IDE集成开发环境的安装 12

3.2 PICC C语言编译器软件的安装 14

3.3 第一个入门实验程序 17

3.3.1 建立一个工程项目,选择器件并确定选项 18

3.3.2 建立汇编源文件或C源文件 21

3.3.3 将源文件添加到项目中(添加节点)并编译项目 23

3.3.4 编译通过后进行软件模拟仿真 23

3.3.5 编译通过后进行硬件在线仿真 28

3.3.6 编程操作 32

3.3.7 应用 36

第4章 PIC单片机的主要特点及基本结构 37

4.1 PIC单片机的主要特点 37

4.2 PIC单片机的基本组成结构 39

4.3 PIC16F877A单片机的基本功能模块 39

4.3.1 程序存储器和堆栈 39

4.3.2 数据存储器 41

4.3.3 EEPROM数据存储器 46

4.3.4 算术逻辑区域 48

4.3.5 输入/输出端口模块 48

4.3.6 定时器模块 48

4.3.7 复位功能模块 49

4.4 PIC16F877A单片机的专用功能模块 49

4.4.1 通用同步/异步串行收发器USART模块 50

4.4.2 并行从动端口 PSP模块 50

4.4.3 主同步串行端 MSSP 50

4.4.4 捕捉/比较/脉宽调制模块 50

4.4.5 模/数转换器(ADC)模块 50

4.5 PIC16F877A单片机的引脚配置 50

4.5.1 系统配置引脚 51

4.5.2 输入/输出引脚的其他功能 51

第5章 C语言基础知识 53

5.1 C语言的标识符与关键字 53

5.2 数据类型 55

5.3 常量、变量及存储方式 56

5.4 PICC中变量的绝对地址定位 57

5.5 数组 57

5.5.1 一维数组的定义 58

5.5.2 二维及多维数组的定义 58

5.5.3 字符数组 59

5.5.4 数组元素赋初值 59

5.5.5 数组作为函数的参数 60

5.6 C语言的运算 60

5.6.1 算术运算符 61

5.6.2 关系运算符 61

5.6.3 逻辑运算符 62

5.6.4 赋值运算符 62

5.6.5 自增和自减运算符 63

5.6.6 逗号运算符 63

5.6.7 条件运算符 63

5.6.8 位运算符 63

5.6.9 sizeof运算符 68

5.7 流程控制 68

5.7.1 条件语句与控制结构 69

5.7.2 循环语句 70

5.8 函数 72

5.8.1 函数定义的一般形式 73

5.8.2 函数的参数和函数返回值 73

5.8.3 函数调用的三种方式 74

5.9 指针 75

5.9.1 指针与地址 76

5.9.2 指针变量的定义 76

5.9.3 指针变量的引用 77

5.9.4 数组指针与指向数组的指针变量 77

5.9.5 指针变量的运算 78

5.9.6 指向多维数组的指针和指针变量 78

5.9.7 指向RAM的指针 79

5.9.8 指向ROM常数的指针 79

5.9.9 指向函数的指针 80

5.10 结构体 80

5.10.1 结构体的概念 80

5.10.2 结构体类型变量的定义 80

5.10.3 关于结构体类型需要注意的地方 82

5.10.4 结构体变量的引用 82

5.10.5 结构体变量的初始化 83

5.10.6 结构体数组 83

5.10.7 指向结构体类型数据的指针 83

5.10.8 用指向结构体变量的指针引用结构体成员 84

5.10.9 指向结构体数组的指针 84

5.10.10 将结构体变量和指向结构体的指针作函数参数 84

5.11 共用体 85

5.11.1 共用体类型变量的定义 85

5.11.2 共用体变量的引用 86

5.12 中断函数 87

5.12.1 什么是中断 87

5.12.2 编写PIC单片机中断函数时应严格遵循的规则 88

第6章 I/O端口及使用 89

6.1 PIC单片机的I/O端口 89

6.2 端口的输入/输出 91

6.3 I/O端口的输出实验 92

6.3.1 实验要求 92

6.3.2 源程序文件及分析 92

6.4 I/O端口驱动数码管的实验 98

6.4.1 实验要求 98

6.4.2 源程序文件及分析 98

6.5 I/O端口的输入实验 101

6.5.1 实验要求 101

6.5.2 源程序文件及分析 102

6.6 行列式按键的输入实验 105

6.6.1 实验要求 105

6.6.2 源程序文件及分析 106

第7章 驱动16×2点阵字符液晶模块的实验 109

7.1 16×2点阵字符液晶显示器概述 109

7.2 液晶显示器的突出优点 110

7.3 16×2字符型液晶显示模块(LCM)特性 110

7.4 16×2字符型液晶显示模块(LCM)引脚及功能 110

7.5 16×2字符型液晶显示模块(LCM)的内部结构 111

7.6 液晶显示控制驱动集成电路HD44780特点 111

7.7 HD44780工作原理 113

7.8 LCD控制器的指令 116

7.9 LCM工作时序 119

7.10 PIC单片机驱动16×2点阵字符液晶模块的子函数 120

7.11 驱动16×2LCM的实验程序1 122

7.11.1 实验要求 122

7.11.2 源程序文件及分析 123

7.12 驱动16×2LCM的实验程序2 125

7.12.1 实验要求 125

7.12.2 源程序文件及分析 126

第8章 驱动128×64点阵图形液晶模块的实验 137

8.1 128×64点阵图形液晶模块特性 138

8.2 128×64点阵图形液晶模块引脚及功能 138

8.3 128×64点阵图形液晶模块的内部结构 139

8.4 HD61203特点 141

8.5 HD61202特点 142

8.6 HD61202工作原理 143

8.7 HD61202的工作过程 147

8.8 点阵图形液晶模块的控制器指令 148

8.9 HD61202的操作时序图 149

8.10 PIC单片机驱动128×64点阵图形液晶模块的子函数 151

8.11 驱动128×64点阵图形液晶的实验程序1 154

8.11.1 实验要求 154

8.11.2 源程序文件及分析 155

8.11.3 怎样制作汉字点阵码表 161

8.12 驱动128×64点阵图形液晶的实验程序2 163

8.12.1 实验要求 163

8.12.2 源程序文件及分析 164

8.13 驱动128×64点阵图形液晶的实验程序3 165

8.13.1 实验要求 165

8.13.2 源程序文件及分析 165

8.13.3 怎样制作图片的点阵码表 172

第9章 中断系统及使用 175

9.1 PIC16F877A的中断系统 176

9.2 中断源的分类 176

9.3 相关的中断控制寄存器 178

9.4 外部按键触发中断实验 182

9.4.1 实验要求 182

9.4.2 源程序文件及分析 182

9.5 利用RB口的电平变化中断读取行列式按键的键值 184

9.5.1 实验要求 184

9.5.2 源程序文件及分析 184

9.6 多个中断的实验1 188

9.6.1 实验要求 188

9.6.2 源程序文件及分析 188

9.7 单片机休眠状态的中断实验 190

9.7.1 实验要求 190

9.7.2 源程序文件及分析 190

第10章 定时/计数器 193

10.1 定时/计数器TMR0 193

10.1.1 定时/计数器TMR0特性 195

10.1.2 选项寄存器OPTION_REG 195

10.1.3 中断控制寄存器INTCON 196

10.1.4 方向寄存器TRISA 196

10.2 定时/计数器TMR1 196

10.2.1 定时/计数器TMR1特性 198

10.2.2 TMR1控制寄存器T1CON 198

10.2.3 中断控制寄存器INTCON 199

10.2.4 第一外围中断使能寄存器PIE1 199

10.2.5 第一外围中断标志寄存器PIR1 199

10.3 定时器TMR2 199

10.3.1 定时器TMR2特性 201

10.3.2 TMR2控制寄存器T2CON 201

10.3.3 中断控制寄存器INTCON 201

10.3.4 第一外围中断使能寄存器PIE1 202

10.3.5 第一外围中断标志寄存器PIR1 202

10.3.6 TMR2周期寄存器PR2 202

10.4 蜂鸣器发出1 kHz音频的实验 202

10.4.1 实验要求 202

10.4.2 源程序文件及分析 202

10.5 时间精确的闪烁灯实验 204

10.5.1 实验要求 204

10.5.2 源程序文件及分析 204

10.6 中断扫描方式驱动8位数码管实验 206

10.6.1 实验要求 206

10.6.2 源程序文件及分析 206

10.7 计数器实验 208

10.7.1 实验要求 208

10.7.2 源程序文件及分析 209

10.8 4位跑表实验 211

10.8.1 实现方法 211

10.8.2 源程序文件及分析 211

第11章 捕捉/比较/脉宽调制(CCP)模块 218

11.1 CCP模块控制寄存器CCP1CON和CCP2CON 219

11.2 CCP模块寄存器CCPRx 220

11.3 CCP模块的捕捉模式 220

11.4 捕捉模式相关的寄存器 220

11.5 捕捉模式的应用设置 222

11.6 CCP模块的比较模式 222

11.7 比较模式相关的寄存器 223

11.8 比较模式的应用设置 223

11.9 CCP模块的PWM模式 223

11.9.1 PWM信号周期 224

11.9.2 PWM信号脉宽 224

11.10 PWM模式相关的寄存器 225

11.11 PWM模式的应用设置 226

11.12 CCP模块的捕捉实验 227

11.12.1 实验要求 227

11.12.2 源程序文件及分析 227

11.13 CCP模块的比较实验1 230

11.13.1 实验要求 230

11.13.2 源程序文件及分析 230

11.14 CCP模块的比较实验2 231

11.14.1 实验要求 231

11.14.2 源程序文件及分析 231

11.15 CCP模块的PWM实验 233

11.15.1 实验要求 233

11.15.2 源程序文件及分析 233

11.16 连续改变CCP模块PWM的实验 235

11.16.1 实验要求 235

11.16.2 源程序文件及分析 235

第12章 USART通信模块 237

12.1 USART模块的寄存器 237

12.2 USART通信模块相关的寄存器 240

12.3 USART波特率设置 241

12.4 USART异步数据发送原理 242

12.5 USART异步数据接收原理 242

12.6 单片机与PC通信实验1 243

12.6.1 实验要求 243

12.6.2 源程序文件及分析 243

12.7 单片机与PC通信实验2 247

12.7.1 实验要求 247

12.7.2 源程序文件及分析 247

12.8 单片机与PC通信实验3 249

12.8.1 实验要求 249

12.8.2 源程序文件及分析 249

第13章 I2C通信模块 252

13.1 I2C总线通信模式 252

13.2 I2C模块的寄存器 253

13.3 I2C模块相关的寄存器 257

13.4 I2C主控方式 258

13.5 I2C从动方式 259

13.6 利用硬件方式读写PIC16F877A内部EEPROM的实验 260

13.6.1 实验要求 260

13.6.2 源程序文件及分析 260

13.7 利用库函数读写PIC16F877A内部EEPROM的实验 262

13.7.1 实验要求 262

13.7.2 源程序文件及分析 262

13.8 利用硬件接口读写外部24C01的实验 263

13.8.1 实验要求 263

13.8.2 源程序文件及分析 264

13.9 利用软件模拟时序实现读写外部24C01的实验 269

13.9.1 实验要求 269

13.9.2 源程序文件及分析 269

第14章 SPI通信模块 274

14.1 SPI通信模式 274

14.2 SPI模块的寄存器 275

14.3 SPI模式相关的寄存器 278

14.4 同步串行EEPROM AT93CXX的性能特点 279

14.5 AT93CXX引脚定义 280

14.6 AT93CXX系列存储器特点 280

14.7 AT93CXX系列EEPROM的内部结构 281

14.8 AT93CXX系列EEPROM的指令集 281

14.9 器件操作 282

14.10 软件模拟SPI时序读写外部93C46的实验 287

14.10.1 实验要求 287

14.10.2 源程序文件及分析 287

14.11 利用硬件接口读写外部93C46的实验 292

14.11.1 实验要求 292

14.11.2 源程序文件及分析 292

第15章 A/D转换器模块 298

15.1 A/D转换器结构及原理 298

15.2 A/D转换器的寄存器 299

15.3 A/D转换器模块相关的寄存器 302

15.4 中断方式读取A/D转换器值的实验 303

15.4.1 实验要求 303

15.4.2 源程序文件及分析 303

15.5 查询方式读取A/D转换器值的实验 306

15.5.1 实验要求 306

15.5.2 源程序文件及分析 306

第16章 PIC单片机看门狗及芯片的配置、复位等 310

16.1 PIC单片机看门狗定时器WDT 310

16.2 PIC单片机的芯片配置寄存器CONFIG 310

16.3 PIC单片机的复位 312

16.4 PIC单片机的工作时钟 313

16.4.1 石英晶体/陶瓷谐振器 313

16.4.2 外部时钟 314

16.4.3 外部RC振荡器 314

16.4.4 内部RC振荡器 314

16.5 PIC单片机的低功耗休眠 314

16.6 PIC单片机在线串行编程 315

16.7 PIC单片机看门狗实验1 315

16.7.1 实验要求 315

16.7.2 源程序文件及分析 316

16.8 PIC单片机看门狗实验2 318

16.8.1 实验要求 318

16.8.2 源程序文件及分析 318

第17章 设计具有测温及液晶显示的简易万年历 320

17.1 实验目的 320

17.2 实验要求 320

17.3 单线数字温度传感器DS18B20 323

17.3.1 DS18B20内部结构与原理 324

17.3.2 DS18B20特点 326

17.3.3 l-wire总线操作 326

17.3.4 DS18B20初始化流程 329

17.3.5 DS18B20温度转换及读取流程 329

17.4 程序设计 330

第18章 PIC单片机驱动步进电动机的实验 342

18.1 步进电动机简介 342

18.1.1 步进电动机的种类 343

18.1.2 步进电动机的一些基本参数 343

18.1.3 步进电动机的动态指标及术语 344

18.2 四相步进电动机的工作方式 345

18.3 步进电动机单四拍运行的实验 346

18.3.1 实验要求 346

18.3.2 源程序文件及分析 347

18.4 步进电动机双四拍运行的实验 348

18.4.1 实验要求 348

18.4.2 源程序文件及分析 348

18.5 步进电动机八拍运行的实验 349

18.5.1 实验要求 349

18.5.2 源程序文件及分析 349

18.6 使用中断方式控制步进电动机运行的实验 351

18.6.1 实验要求 351

18.6.2 源程序文件及分析 351

18.7 步进电动机模拟指针仪表的实验 354

18.7.1 实验要求 354

18.7.2 源程序文件及分析 354

参考文献 358