当前位置:首页 > 工业技术
PIC18F452 单片机原理及编程实践
PIC18F452 单片机原理及编程实践

PIC18F452 单片机原理及编程实践PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:陈育斌主编;秦晓梅副主编
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2016
  • ISBN:9787115416353
  • 页数:398 页
图书介绍:本教程以单片机的应用编程为主,内容可以划分为两个阶段:第一阶段主要包括PIC单片机内部各个功能模块的实验。如I/O端口输入输出、定时器应用、中断系统的应用、SLEEP与WDT的应用、ADC模块基本应用、EEPROM、CCP模块。第二个阶段以及各种新型接口的外围器件编程实验为主。
《PIC18F452 单片机原理及编程实践》目录

第1章 单片机与嵌入式系统 1

1.1 单片机与嵌入式系统 1

1.1.1 什么是嵌入式系统 1

1.1.2 什么是“单片机” 2

1.2 单片机的结构及组成简介 2

单片机的特点和设计理念 2

1.3 单片机应用系统设计举例 4

1.3.1 自制的单片机最小系统实例 4

1.3.2 采用专用软件设计的单片机应用系统 5

1.4 如何学习单片机 7

1.4.1 编程训练是学习单片机的重要环节 7

1.4.2 运用基础知识构建单片机的应用系统 7

1.4.3 必要的工具 8

第2章 PIC18F系列单片机核心模块的组成结构 10

2.1 PIC18F系列单片机的组成结构及特点 10

2.1.1 PIC18F系列单片机的主要特点 10

2.1.2 PIC18F系列单片机的内部结构及组成 11

2.2 PIC18F系列单片机的哈弗总线结构 13

2.2.1 冯—诺依曼体系结构 13

2.2.2 哈弗总线体系结构 13

2.2.3 哈弗总线结构的特点之一——流水作业 13

2.2.4 哈弗总线结构的特点之二——指令的单字节化 14

2.3 PIC18F系列单片机ROM的结构 14

2.3.1 PIC18F系列单片机的ROM容量及存储单元的宽度 14

2.3.2 PIC18F系列单片机ROM的3个特定的单元 15

2.4 PIC18F系统单片机的程序计数器 16

2.4.1 PC在系统中的功能 16

2.4.2 PC的增量 16

2.4.3 PC的寻址范围 16

2.5 PIC18F系列单片机的堆栈 17

2.5.1 堆栈数据的操作特点 17

2.5.2 堆栈指针 17

2.5.3 子程序的调用与堆栈的功能 18

2.5.4 PIC18F系列单片机的堆栈结构及特点 18

2.6 PIC18F系列单片机RAM的结构 19

2.6.1 PIC18F系列单片机的RAM的组成结构 19

2.6.2 PIC18F系列单片机的RAM分区与区选择寄存器 20

2.6.3 PIC18F系列单片机的RAM的快速访问区 21

2.6.4 指令中参数a的设定与快速访问区的选择 21

2.6.5 PIC18F的工作寄存器 21

2.6.6 与RAM存储单元相关的指令参数d 22

2.6.7 特殊功能寄存器 22

2.6.8 状态寄存器 24

第3章 PIC18F452单片机内部外围功能模块的组成结构 26

3.1 PIC18F452单片机的输入/输出并行端口 26

3.1.1 PIC 18F452单片机的I/O端口配置 26

3.1.2 PIC 18F452单片机I/O端口的驱动能力 26

3.1.3 与I/O端口相关的SFR 27

3.1.4 端口的位结构与工作原理 28

3.1.5 PIC18F系列单片机端口的编程举例 31

3.1.6 PIC 18F452端口的复用功能定义 33

3.1.7 端口复用功能的“非易失性”问题 34

3.2 PIC 18F452单片机的定时计数器 35

3.2.1 定时计数器的核心电路——二进制计数器 35

3.2.2 定时计数器的简化模型 36

3.2.3 PIC18F452单片机定时计数器的配置 37

3.2.4 PIC18F452单片机定时计数器的分频器技术 38

3.2.5 定时计数器TMR0的结构及编程原理 38

3.2.6 定时计数器TMR1的结构及编程原理 46

3.2.7 定时计数器TMR2的结构及编程原理 51

3.2.8 定时计数器TMR3的结构及编程 原理 58

3.3 PIC 18F452单片机的中断系统 60

3.3.1 中断的概念与中断响应的过程 60

3.3.2 PIC 18F452的中断结构、特点及工作原理 61

3.3.3 PIC18F452中断响应后的GIE 64

3.3.4 与中断相关的SFR 65

3.3.5 外部中断INT0、 INT1和INT2的特点及编程原理 72

3.3.6 PORTB端口电平变化中断的特点及编程原理 75

3.3.7 PIC18F452单片机其他模块的中断编程 79

3.3.8 PIC18F452单片机的软件触发中断 80

3.4 PIC 18F452单片机的ADC模块 80

3.4.1 什么是ADC 80

3.4.2 模/数转换器的功能与应用 81

3.4.3 ADC的类型与特点 81

3.4.4 PIC18F452单片机ADC的配置及工作原理 82

3.4.5 PIC18F452的ADC编程实例 87

3.4.6 ADC模拟输入通道配置的非易失性问题 88

3.5 PIC18F452单片机的WDT模块 89

3.5.1 什么是WDT 89

3.5.2 PIC18F452单片机的WDT模块结构及工作原理 90

3.5.3 WDT编程举例 93

3.6 PIC 18F452单片机的SLEEP技术 94

3.6.1 单片机的SLEEP技术 94

3.6.2 “睡眠状态”的唤醒 95

3.6.3 SLEEP模式下的WDT运用 95

3.6.4 SLEEP模式下的WDT综合运用编程实例 96

3.7 PIC 18F452单片机的EEPROM模块 98

3.7.1 PIC18F452单片机的EEPROM的特性 98

3.7.2 PIC 18F452内部EEPROM模块的配置及编程原理 98

3.7.3 利用IDE观察EEPROM单元中的原始数据 100

3.7.4 从EEPROM单元中读出数据的操作 100

3.7.5 向EEPROM写入数据及过程 102

3.7.6 EEPROM的数据读与写操作及非易失性验证 104

3.8 PIC 18F452单片机的USART模块 105

3.8.1 串行通信的分类与特点 105

3.8.2 异步串行通信模式 105

3.8.3 异步串行通信的电平标准 106

3.8.4 同步串行通信模式 107

3.8.5 PIC 18F452的USART对单片机引脚的定义 108

3.8.6 PIC 18F452的异步发送模块的结构与工作原理 108

3.8.7 PIC18F452/458的异步接收模块的组成结构与工作原理 109

3.8.8 与USART模块相关的SFR 110

3.8.9 USART的波特率发生器BRG 112

3.8.10 SPBRG中的初值计算及波特率的设置 113

3.8.11 异步串行通信的编程举例 113

3.9 PIC 18F452主控串行端口MSSP的SPI模块结构与工作原理 114

3.9.1 SPI的内部结构及工作原理 114

3.9.2 PIC18F452单片机的SPI模块结构 117

3.9.3 与SPI模块相关的SFR 118

3.9.4 SPI模块的编程实例 120

3.10 PIC18F452主控串行端口MSSP的I2C接口模式 122

3.10.1 I2C总线的特点 122

3.10.2 I2C总线的“时钟同步”与“总线仲裁”功能原理 123

3.10.3 I2C总线的通信协议及过程 124

3.10.4 I2C通信的时序 125

3.10.5 PIC18F452的MSSP与I2C模式相关的SFR 126

3.10.6 MSSP的I2C模式 130

3.10.7 I2C的主模式的数据发送操作 132

3.10.8 一个主模式的多字节数据发送应用实例 135

3.10.9 I2C的主模式的数据接收操作 137

3.10.1 0一个主模式的多字节数据接收应用实例 140

3.10.1 1 I2C通信编程小结 142

3.11 PIC 18F452单片机的CCP模块 143

3.11.1 CCP模块的概念和功能 143

3.11.2 PIC18F452单片机CCP模块的基本结构 144

3.11.3 CCP模块的控制寄存器CCP1CON 144

3.11.4 CCP模块相关的T3CON寄存器 146

3.11.5 CCP模块的输入捕捉模式 146

3.11.6 CCP模块的输出比较模式 150

3.11.7 CCP模块的脉宽调制模式 153

3.11.8 PIC 18F452单片机CCP1模块相关的SFR 160

第4章 PIC18F系列单片机的汇编语言及指令系统 161

4.1 PIC18F系列单片机的指令格式及执行周期 161

4.2 PIC18F452单片机指令系统的寻址方式 162

4.2.1 立即数寻址 162

4.2.2 直接寻址 164

4.2.3 长地址寻址 167

4.2.4 间接寻址 168

4.3 PIC18F452单片机指令系统的类型与分类 170

4.3.1 面向字节操作的指令 170

4.3.2 面向位数据的操作指令 173

4.3.3 面向立即数K的操作指令 174

4.3.4 控制操作类指令 175

4.3.5 写表、查表操作类指令 179

4.4 PIC18F系列单片机的伪指令 182

4.4.1 ORG伪指令 183

4.4.2 EQU伪指令 185

4.4.3 DB,DW伪指令 187

4.4.4 END伪指令 188

4.4.5 SET伪指令 189

4.4.6 LIST伪指令 190

4.4.7 #include伪指令 190

4.4.8 _config伪指令 191

4.4.9 radix伪指令 191

4.5 PIC18F汇编语言的数据格式 191

4.5.1 十六进制数据格式 192

4.5.2 二进制数据格式 192

4.5.3 十进制数据格式 192

4.5.4 ASCII码字符格式 193

4.6 PIC18F汇编语言源程序的格式 193

4.6.1 标号 194

4.6.2 指令的助记符 194

4.6.3 注释段 194

4.6.4 运用举例 194

第5章 PIC18F系列单片机的C语言编程 196

5.1 C18的数据类型 196

5.1.1 C18语言的数据类型 196

5.1.2 C18语言的无符号数据 197

5.1.3 C18语言的有符号数据 198

5.1.4 C18语言的无符号整型数据 199

5.1.5 C18语言的有符号整型数据 199

5.1.6 C18语言的长整型数据 199

5.1.7 C18语言的其他类型数据 199

5.2 C18的软件延时 200

5.2.1 示波器测量法调试延时时间 200

5.2.2 调用库函数设计延时时间 201

5.3 C18的位操作 202

5.3.1 C18对I/O端口PORTx的位表达方式 202

5.3.2 C18对I/O端口方向控制寄存器TRISx的位表达方式 202

5.3.3 C18对SFR的位表达方式 203

5.3.4 C18的位逻辑操作 203

5.3.5 C18的位移位操作 204

5.4 C18对程序存储器的配置 204

5.4.1 C18为常数数据分配ROM空间 205

5.4.2 C18为常数数据分配ROM空间的限定词near和far 205

5.4.3 C 18的#pragma对程序或数据的限定 207

5.5 C18对数据存储器的配置 208

5.5.1 C18对数据存储器RAM的使用方法 209

5.5.2 用于数据存储器RAM的限定词near和far 209

5.5.3 指定RAM地址的数据存放 210

5.6 C18对中断编程的定义 211

5.6.1 C18对中断向量单元的定义与中断服务子函数的表达方式 211

5.6.2 C 18对中断服务程序ISR的定义与表达方式 213

第6章 PIC单片机的调试工具MPLAB IDE和MPLAB ICD 215

6.1 PIC18F452单片机开发系统的软、硬件设备简介 215

6.1.1 MPLAB IDE集成调试软件 215

6.1.2 MPLAB ICD2硬件调试器 216

6.1.3 PIC单片机调试系统的连接及通电操作 219

6.2 MPLAB IDE的3种运行方式及特点 220

6.2.1 MPLAB IDE的模拟仿真模式(MPLAB SIM) 222

6.2.2 MPLAB IDE的在线调试模式 234

6.2.3 MPLAB IDE的脱机模式 240

6.3 MPLAB-ICD2与IDE的连接问题 241

6.4 使用C语言编程时3个相关文件的路径设定 241

6.5 MPLAB IDE在线调试模式时的快速指南 243

第7章 PIC18F452单片机编程实践 245

7.1 PIC单片机的输入/输出端口编程实践 245

7.1.1 利用PORTD端口做输出的编程实践 245

7.1.2 利用PORTD实现流水灯显示的编程实践 246

7.1.3 利用PORTD端口实现按键计数的编程实践 250

7.1.4 利用输入/输出端口模拟交通灯控制的编程实践 253

7.1.5 步进电机驱动编程实践 255

7.1.6 直流电机驱动编程实践 261

7.2 PIC 18F452单片机的定时计数器结构及编程实践 263

7.2.1 利用TMR0定时器实现秒定时的编程实践 263

7.2.2 利用TMR0定时器驱动蜂鸣器的编程实践 265

7.2.3 利用TMR0定时器实现单键切换方波频率的编程实践 267

7.2.4 利用TMR0定时器模拟车辆行驶里程计数的编程实践 270

7.2.5 利用TMR 1定时器自带低功耗振荡器做秒脉冲发生器的编程实践 273

7.2.6 利用TMR2定时器做路标指向灯的编程实践 278

7.2.7 利用TMR2定时器做8kHz对称方波发生器的编程实践 281

7.3 PIC 18F452单片机的中断系统编程实践 284

7.3.1 TMR0的中断法实现流水灯的编程实践 284

7.3.2 外部中断——RB0 (INT0)触发LED灯翻转编程实践 287

7.3.3 具有I/O功能的双通道方波发生器编程实践 293

7.3.4 利用——INT0外部中断模拟断电检测及电源切换的编程实践 294

7.3.5 利用——INT0外中断实现唤醒CPU的SLEEP状态的编程实践 299

7.4 PIC 18F452的WDT模块编程及实践 304

7.4.1 WDT模块对CPU复位的验证性编程实践 304

7.4.2 SLEEP模式下调用 WDT功能的编程实践 306

7.5 PIC18F452的ADC模块编程及实践 309

7.5.1 ADC模块的查询法和中断法编程实践 309

7.5.2 ADC模块实现模拟键盘的编程实践 313

7.6 PIC 18F452的EEPROM模块及编程实践 317

非易失性汽车里程数据显示存储编程实践 318

7.7 PIC18F452的CCP模块的编程实践 321

7.7.1 CCP模块的输入捕捉模式编程实践 321

7.7.2 CCP模块的输出比较模式编程实践 323

7.7.3 CCP模块的PWM模式编程实践(一)脉宽固定的PWM编程 326

7.7.4 CCP模块的PWM模式编程实践(二)脉宽可变的PWM编程 329

7.8 PIC18F452的USART模块结构与编程实践 333

7.8.1 USART模块的编程实践(一)全双工异步通信的自发自收编程实践 333

7.8.2 USART模块的编程实践(二)点对点的异步串行通信编程实践 336

7.9 PIC18F452的MSSP模块的SPI模式编程实践 342

7.9.1 SPI接口ADC转换芯片TCL549数据采集编程实践 342

7.9.2 SPI接口DAC芯片TCL5620函数发生器编程实践 346

7.10 PIC18F452的MSSP模块的I2C模式编程实践 353

7.10.1 I2C接口的ZLG7290芯片的LED数码管显示编程实践 353

7.10.2 I2C接口的ZLG7290芯片的键盘扫描编程实践 359

7.10.3 I2C接口的PCF8563的电子时钟编程实践 363

7.11 12864LCD点阵显示模块的特点及编程实践 368

7.11.1 ST7920液晶模块的内部结构、系统结构与编程原理 369

7.11.2 ST7920液晶模块的基本指令集 369

7.11.3 128*64LCD液晶屏编程实践(一)字符显示编程实践 371

7.11.4 128*64LCD液晶屏编程实践(二)变量显示编程实践 376

7.12 DS 18B20单总线智能温度传感器的编程实践 381

7.12.1 DS 18B20的功能及特点 381

7.12.2 DS18B20单总线的通信协议 383

7.12.3 DS18B20单总线温度传感器的编程实践 385

附录1 PIC 18F系列单片机指令系统简表 390

附录2PIC18F452/458的I2C通信子程序库(汇编语言) 394

参考文献 398

返回顶部