内容简介
第1章 单片机与嵌入式系统
1.1 单片机与嵌入式系统
1.1.1 什么是嵌入式系统
1.1.2 什么是“单片机”
1.2 单片机的结构及组成简介
单片机的特点和设计理念
1.3 单片机应用系统设计举例
1.3.1 自制的单片机最小系统实例
1.3.2 采用专用软件设计的单片机应用系统
1.4 如何学习单片机
1.4.1 编程训练是学习单片机的重要环节
1.4.2 运用基础知识构建单片机的应用系统
1.4.3 必要的工具
第2章 PIC18F系列单片机核心模块的组成结构
2.1 PIC18F系列单片机的组成结构及特点
2.1.1 PIC18F系列单片机的主要特点
2.1.2 PIC18F系列单片机的内部结构及组成
2.2 PIC18F系列单片机的哈弗总线结构
2.2.1 冯—诺依曼体系结构
2.2.2 哈弗总线体系结构
2.2.3 哈弗总线结构的特点之一——流水作业
2.2.4 哈弗总线结构的特点之二——指令的单字节化
2.3 PIC18F系列单片机ROM的结构
2.3.1 PIC18F系列单片机的ROM容量及存储单元的宽度
2.3.2 PIC18F系列单片机ROM的3个特定的单元
2.4 PIC18F系统单片机的程序计数器
2.4.1 PC在系统中的功能
2.4.2 PC的增量
2.4.3 PC的寻址范围
2.5 PIC18F系列单片机的堆栈
2.5.1 堆栈数据的操作特点
2.5.2 堆栈指针
2.5.3 子程序的调用与堆栈的功能
2.5.4 PIC18F系列单片机的堆栈结构及特点
2.6 PIC18F系列单片机RAM的结构
2.6.1 PIC18F系列单片机的RAM的组成结构
2.6.2 PIC18F系列单片机的RAM分区与区选择寄存器
2.6.3 PIC18F系列单片机的RAM的快速访问区
2.6.4 指令中参数a的设定与快速访问区的选择
2.6.5 PIC18F的工作寄存器
2.6.6 与RAM存储单元相关的指令参数d
2.6.7 特殊功能寄存器
2.6.8 状态寄存器
第3章 PIC18F452单片机内部外围功能模块的组成结构
3.1 PIC18F452单片机的输入/输出并行端口
3.1.1 PIC 18F452单片机的I/O端口配置
3.1.2 PIC 18F452单片机I/O端口的驱动能力
3.1.3 与I/O端口相关的SFR
3.1.4 端口的位结构与工作原理
3.1.5 PIC18F系列单片机端口的编程举例
3.1.6 PIC 18F452端口的复用功能定义
3.1.7 端口复用功能的“非易失性”问题
3.2 PIC 18F452单片机的定时计数器
3.2.1 定时计数器的核心电路——二进制计数器
3.2.2 定时计数器的简化模型
3.2.3 PIC18F452单片机定时计数器的配置
3.2.4 PIC18F452单片机定时计数器的分频器技术
3.2.5 定时计数器TMR0的结构及编程原理
3.2.6 定时计数器TMR1的结构及编程原理
3.2.7 定时计数器TMR2的结构及编程原理
3.2.8 定时计数器TMR3的结构及编程 原理
3.3 PIC 18F452单片机的中断系统
3.3.1 中断的概念与中断响应的过程
3.3.2 PIC 18F452的中断结构、特点及工作原理
3.3.3 PIC18F452中断响应后的GIE
3.3.4 与中断相关的SFR
3.3.5 外部中断INT0、 INT1和INT2的特点及编程原理
3.3.6 PORTB端口电平变化中断的特点及编程原理
3.3.7 PIC18F452单片机其他模块的中断编程
3.3.8 PIC18F452单片机的软件触发中断
3.4 PIC 18F452单片机的ADC模块
3.4.1 什么是ADC
3.4.2 模/数转换器的功能与应用
3.4.3 ADC的类型与特点
3.4.4 PIC18F452单片机ADC的配置及工作原理
3.4.5 PIC18F452的ADC编程实例
3.4.6 ADC模拟输入通道配置的非易失性问题
3.5 PIC18F452单片机的WDT模块
3.5.1 什么是WDT
3.5.2 PIC18F452单片机的WDT模块结构及工作原理
3.5.3 WDT编程举例
3.6 PIC 18F452单片机的SLEEP技术
3.6.1 单片机的SLEEP技术
3.6.2 “睡眠状态”的唤醒
3.6.3 SLEEP模式下的WDT运用
3.6.4 SLEEP模式下的WDT综合运用编程实例
3.7 PIC 18F452单片机的EEPROM模块
3.7.1 PIC18F452单片机的EEPROM的特性
3.7.2 PIC 18F452内部EEPROM模块的配置及编程原理
3.7.3 利用IDE观察EEPROM单元中的原始数据
3.7.4 从EEPROM单元中读出数据的操作
3.7.5 向EEPROM写入数据及过程
3.7.6 EEPROM的数据读与写操作及非易失性验证
3.8 PIC 18F452单片机的USART模块
3.8.1 串行通信的分类与特点
3.8.2 异步串行通信模式
3.8.3 异步串行通信的电平标准
3.8.4 同步串行通信模式
3.8.5 PIC 18F452的USART对单片机引脚的定义
3.8.6 PIC 18F452的异步发送模块的结构与工作原理
3.8.7 PIC18F452/458的异步接收模块的组成结构与工作原理
3.8.8 与USART模块相关的SFR
3.8.9 USART的波特率发生器BRG
3.8.10 SPBRG中的初值计算及波特率的设置
3.8.11 异步串行通信的编程举例
3.9 PIC 18F452主控串行端口MSSP的SPI模块结构与工作原理
3.9.1 SPI的内部结构及工作原理
3.9.2 PIC18F452单片机的SPI模块结构
3.9.3 与SPI模块相关的SFR
3.9.4 SPI模块的编程实例
3.10 PIC18F452主控串行端口MSSP的I2C接口模式
3.10.1 I2C总线的特点
3.10.2 I2C总线的“时钟同步”与“总线仲裁”功能原理
3.10.3 I2C总线的通信协议及过程
3.10.4 I2C通信的时序
3.10.5 PIC18F452的MSSP与I2C模式相关的SFR
3.10.6 MSSP的I2C模式
3.10.7 I2C的主模式的数据发送操作
3.10.8 一个主模式的多字节数据发送应用实例
3.10.9 I2C的主模式的数据接收操作
3.10.1 0一个主模式的多字节数据接收应用实例
3.10.1 1 I2C通信编程小结
3.11 PIC 18F452单片机的CCP模块
3.11.1 CCP模块的概念和功能
3.11.2 PIC18F452单片机CCP模块的基本结构
3.11.3 CCP模块的控制寄存器CCP1CON
3.11.4 CCP模块相关的T3CON寄存器
3.11.5 CCP模块的输入捕捉模式
3.11.6 CCP模块的输出比较模式
3.11.7 CCP模块的脉宽调制模式
3.11.8 PIC 18F452单片机CCP1模块相关的SFR
第4章 PIC18F系列单片机的汇编语言及指令系统
4.1 PIC18F系列单片机的指令格式及执行周期
4.2 PIC18F452单片机指令系统的寻址方式
4.2.1 立即数寻址
4.2.2 直接寻址
4.2.3 长地址寻址
4.2.4 间接寻址
4.3 PIC18F452单片机指令系统的类型与分类
4.3.1 面向字节操作的指令
4.3.2 面向位数据的操作指令
4.3.3 面向立即数K的操作指令
4.3.4 控制操作类指令
4.3.5 写表、查表操作类指令
4.4 PIC18F系列单片机的伪指令
4.4.1 ORG伪指令
4.4.2 EQU伪指令
4.4.3 DB,DW伪指令
4.4.4 END伪指令
4.4.5 SET伪指令
4.4.6 LIST伪指令
4.4.7 #include伪指令
4.4.8 _config伪指令
4.4.9 radix伪指令
4.5 PIC18F汇编语言的数据格式
4.5.1 十六进制数据格式
4.5.2 二进制数据格式
4.5.3 十进制数据格式
4.5.4 ASCII码字符格式
4.6 PIC18F汇编语言源程序的格式
4.6.1 标号
4.6.2 指令的助记符
4.6.3 注释段
4.6.4 运用举例
第5章 PIC18F系列单片机的C语言编程
5.1 C18的数据类型
5.1.1 C18语言的数据类型
5.1.2 C18语言的无符号数据
5.1.3 C18语言的有符号数据
5.1.4 C18语言的无符号整型数据
5.1.5 C18语言的有符号整型数据
5.1.6 C18语言的长整型数据
5.1.7 C18语言的其他类型数据
5.2 C18的软件延时
5.2.1 示波器测量法调试延时时间
5.2.2 调用库函数设计延时时间
5.3 C18的位操作
5.3.1 C18对I/O端口PORTx的位表达方式
5.3.2 C18对I/O端口方向控制寄存器TRISx的位表达方式
5.3.3 C18对SFR的位表达方式
5.3.4 C18的位逻辑操作
5.3.5 C18的位移位操作
5.4 C18对程序存储器的配置
5.4.1 C18为常数数据分配ROM空间
5.4.2 C18为常数数据分配ROM空间的限定词near和far
5.4.3 C 18的#pragma对程序或数据的限定
5.5 C18对数据存储器的配置
5.5.1 C18对数据存储器RAM的使用方法
5.5.2 用于数据存储器RAM的限定词near和far
5.5.3 指定RAM地址的数据存放
5.6 C18对中断编程的定义
5.6.1 C18对中断向量单元的定义与中断服务子函数的表达方式
5.6.2 C 18对中断服务程序ISR的定义与表达方式
第6章 PIC单片机的调试工具MPLAB IDE和MPLAB ICD
6.1 PIC18F452单片机开发系统的软、硬件设备简介
6.1.1 MPLAB IDE集成调试软件
6.1.2 MPLAB ICD2硬件调试器
6.1.3 PIC单片机调试系统的连接及通电操作
6.2 MPLAB IDE的3种运行方式及特点
6.2.1 MPLAB IDE的模拟仿真模式(MPLAB SIM)
6.2.2 MPLAB IDE的在线调试模式
6.2.3 MPLAB IDE的脱机模式
6.3 MPLAB-ICD2与IDE的连接问题
6.4 使用C语言编程时3个相关文件的路径设定
6.5 MPLAB IDE在线调试模式时的快速指南
第7章 PIC18F452单片机编程实践
7.1 PIC单片机的输入/输出端口编程实践
7.1.1 利用PORTD端口做输出的编程实践
7.1.2 利用PORTD实现流水灯显示的编程实践
7.1.3 利用PORTD端口实现按键计数的编程实践
7.1.4 利用输入/输出端口模拟交通灯控制的编程实践
7.1.5 步进电机驱动编程实践
7.1.6 直流电机驱动编程实践
7.2 PIC 18F452单片机的定时计数器结构及编程实践
7.2.1 利用TMR0定时器实现秒定时的编程实践
7.2.2 利用TMR0定时器驱动蜂鸣器的编程实践
7.2.3 利用TMR0定时器实现单键切换方波频率的编程实践
7.2.4 利用TMR0定时器模拟车辆行驶里程计数的编程实践
7.2.5 利用TMR 1定时器自带低功耗振荡器做秒脉冲发生器的编程实践
7.2.6 利用TMR2定时器做路标指向灯的编程实践
7.2.7 利用TMR2定时器做8kHz对称方波发生器的编程实践
7.3 PIC 18F452单片机的中断系统编程实践
7.3.1 TMR0的中断法实现流水灯的编程实践
7.3.2 外部中断——RB0 (INT0)触发LED灯翻转编程实践
7.3.3 具有I/O功能的双通道方波发生器编程实践
7.3.4 利用——INT0外部中断模拟断电检测及电源切换的编程实践
7.3.5 利用——INT0外中断实现唤醒CPU的SLEEP状态的编程实践
7.4 PIC 18F452的WDT模块编程及实践
7.4.1 WDT模块对CPU复位的验证性编程实践
7.4.2 SLEEP模式下调用 WDT功能的编程实践
7.5 PIC18F452的ADC模块编程及实践
7.5.1 ADC模块的查询法和中断法编程实践
7.5.2 ADC模块实现模拟键盘的编程实践
7.6 PIC 18F452的EEPROM模块及编程实践
非易失性汽车里程数据显示存储编程实践
7.7 PIC18F452的CCP模块的编程实践
7.7.1 CCP模块的输入捕捉模式编程实践
7.7.2 CCP模块的输出比较模式编程实践
7.7.3 CCP模块的PWM模式编程实践(一)脉宽固定的PWM编程
7.7.4 CCP模块的PWM模式编程实践(二)脉宽可变的PWM编程
7.8 PIC18F452的USART模块结构与编程实践
7.8.1 USART模块的编程实践(一)全双工异步通信的自发自收编程实践
7.8.2 USART模块的编程实践(二)点对点的异步串行通信编程实践
7.9 PIC18F452的MSSP模块的SPI模式编程实践
7.9.1 SPI接口ADC转换芯片TCL549数据采集编程实践
7.9.2 SPI接口DAC芯片TCL5620函数发生器编程实践
7.10 PIC18F452的MSSP模块的I2C模式编程实践
7.10.1 I2C接口的ZLG7290芯片的LED数码管显示编程实践
7.10.2 I2C接口的ZLG7290芯片的键盘扫描编程实践
7.10.3 I2C接口的PCF8563的电子时钟编程实践
7.11 12864LCD点阵显示模块的特点及编程实践
7.11.1 ST7920液晶模块的内部结构、系统结构与编程原理
7.11.2 ST7920液晶模块的基本指令集
7.11.3 128*64LCD液晶屏编程实践(一)字符显示编程实践
7.11.4 128*64LCD液晶屏编程实践(二)变量显示编程实践
7.12 DS 18B20单总线智能温度传感器的编程实践
7.12.1 DS 18B20的功能及特点
7.12.2 DS18B20单总线的通信协议
7.12.3 DS18B20单总线温度传感器的编程实践
附录1 PIC 18F系列单片机指令系统简表
附录2PIC18F452/458的I2C通信子程序库(汇编语言)
参考文献