相关图书 |
|
 |
|
|
在线试读 |
|
 |
|
|
|
出版日期:2004年8月 |
版别版次:2004年8月第一版第一次印刷 |
|
字数 :691千字 印张:27 |
印数 :5000 页数:415 |
附带物 :
|
|
|
PIC 18Fxxx单片机原理及接口程序设计前言
|
美国微芯公司(Microchip Technology Inc.)作为世界上8位单片机的第一大生产商,推出了CMOS 8位PIC系列单片机,采用精简指令集(RISC)、哈佛总线结构、流水线取指令方式,具有实用、低价、指令集小、简单易学、低功耗、高速度、体积小、功能强及抗干扰能力强等特点。大量用于汽车电气控制、低功耗的应用的表计和测量仪表等,在国内正在拥有大量的用户,深受广大用户的欢迎,微芯公司的单片机已经成为世界单片机的主流产品。 本书以介绍微芯公司采用16位RISC指令集的高级...
美国微芯公司(Microchip Technology Inc.)作为世界上8位单片机的第一大生产商,推出了CMOS 8位PIC系列单片机,采用精简指令集(RISC)、哈佛总线结构、流水线取指令方式,具有实用、低价、指令集小、简单易学、低功耗、高速度、体积小、功能强及抗干扰能力强等特点。大量用于汽车电气控制、低功耗的应用的表计和测量仪表等,在国内正在拥有大量的用户,深受广大用户的欢迎,微芯公司的单片机已经成为世界单片机的主流产品。 本书以介绍微芯公司采用16位RISC指令集的高级产品PIC18Fxxx系列为主,由于芯片内含有A/D、内部EEPROM存储器、比较输出、捕捉输入、PWM输出、I2C和SPI接口、CAN接口、异步串行通信(USART)接口、FLASH程序存储器读/写等强大的功能,而具有很好的应用前景。但是,目前由于其参考资料很少,对初学者来说学习掌握有一定的难度,更何况还没有介绍相应的接口电路应用实例及相应的汇编语言和C语言编程实例的书和教材,这给广大感兴趣的读者带来困难。为此我们编著了这本书,希望对读者有一些帮助。 本书以美国微芯公司PIC18Fxx8带CAN总线的增强型FLASH单片机的数据手册为主要参考书,介绍了PIC18Fxxx的结构、原理,几乎包含了PIC18Fxxx系列的所有内容,并增添了涉及PIC18Fxxx单片机的各个功能模块的汇编语言和C语言编程应用,以单片机的各种功能模块为线索,结合重庆大学—美国微芯公司PIC单片机实验室设计制作的实验板,给出相应的外围扩展硬件电路图及汇编语言和C语言编程清单。所有程序均在实验板上调试通过。 为了让读者更好地使用本书中的程序,我们给出的每个程序均将所有有关的程序列出,包括程序中所有使用到的子程序等。这样对任选章节阅读的读者也可以完整地了解程序,并可以将程序直接复制后编译即可运行,使用方法见本书所附光盘。 本书是单片机开发者和初学者的一本很好的参考书,也可作为高等院校有关单片机原理及应用课程的教材和相关课程的实验指导书。 在本书的成书过程中,得到了重庆大学电气工程学院电力电子与电力传动系研究生李纯、张明丹、陈柬、邱文兵、周有为、杨利辉、李茂华、徐育军、刘钊、高苏州、刘子亚、王春燕、常猛、彭岩等同学的大力协助,他们做了许多文稿资料整理工作,在此表示衷心的感谢。 在本书的成书过程中还得到了电力电子与电力传动系江渝、邓力等老师的大力帮助和支持,在此也表示感谢。 本书的出版还得到微芯公司的大力支持。 限于编者的水平,书中难免存在错误和不当之处,恳请读者提出宝贵意见。
作者 重庆大学电气工程学院 2004年2月
<<
显示前言详情
|
|
PIC 18Fxxx单片机原理及接口程序设计内容简介
|
本书介绍美国微芯公司主推的PIC18Fxxx系列单片机的结构、原理,主要参考该系列有代表性的带CAN总线的增强型FLASH单片机数据手册,增添了涉及PIC18Fxxx单片机的各个功能模块的汇编语言和C语言编程应用,并给出了相应的应用原理电路图以及相应的汇编语言和C语言程序清单。所有程序均在重庆大学—美国微芯公司PIC单片机实验室设计制作的实验板上调试通过,使用方法见本书所附光盘。 本书为使用单片机的项目开发者和初学者提供了一本很好的参考资料,也可作为高等院校有关单片机原理及应用课程...
本书介绍美国微芯公司主推的PIC18Fxxx系列单片机的结构、原理,主要参考该系列有代表性的带CAN总线的增强型FLASH单片机数据手册,增添了涉及PIC18Fxxx单片机的各个功能模块的汇编语言和C语言编程应用,并给出了相应的应用原理电路图以及相应的汇编语言和C语言程序清单。所有程序均在重庆大学—美国微芯公司PIC单片机实验室设计制作的实验板上调试通过,使用方法见本书所附光盘。 本书为使用单片机的项目开发者和初学者提供了一本很好的参考资料,也可作为高等院校有关单片机原理及应用课程的教材和相关课程的实验指导书。
<<
显示内容简介详情
|
|
PIC 18Fxxx单片机原理及接口程序设计目录
|
第1章 PIC18Fxxx单片机概述
第2章 振荡器结构
2.1 振荡器类型 2.2 晶体/陶瓷振荡器方式 2.3 RC振荡器 2.4 外部时钟输入 2.5 HS4(PLL)方式 2.6 振荡器转换特性 2.6.1 系统时钟的转换 2.6.2 振荡器的转换 2.7 片内振荡器休眠模式的影响 2.8 上电延时
第3章 复位
3.1 上电复位 3.2 MCLR 3.3 上电延时定时器 3.4 起振定时器 · · · · · ·
第1章 PIC18Fxxx单片机概述
第2章 振荡器结构
2.1 振荡器类型 2.2 晶体/陶瓷振荡器方式 2.3 RC振荡器 2.4 外部时钟输入 2.5 HS4(PLL)方式 2.6 振荡器转换特性 2.6.1 系统时钟的转换 2.6.2 振荡器的转换 2.7 片内振荡器休眠模式的影响 2.8 上电延时
第3章 复位
3.1 上电复位 3.2 MCLR 3.3 上电延时定时器 3.4 起振定时器 3.5 PLL锁相延时 3.6 掉电锁定复位 3.7 上电复位延时时序图
第4章 存储器结构
4.1 程序存储器结构 4.2 返回地址堆栈 4.2.1 堆栈顶层的访问 4.2.2 堆栈指针的返回 4.2.3 压栈和弹栈指令 4.2.4 堆栈满/下溢出复位 4.3 快速寄存器堆栈 4.4 PCL,PCLATH和PCLATU 4.5 时钟划分/指令周期 4.6 指令流程/流水线 4.7 程序存储器中的指令 4.8 查询表 4.8.1 计算后执行GOTO指令 4.8.2 读表和写表 4.9 数据存储器结构 4.9.1 通用寄存器 4.9.2 特殊功能寄存器 4.10 全局存储区 4.11 存储区选择寄存器 4.12 间接寻址、INDF和FSR寄存器 4.13 状态寄存器STATUS 4.14 复位控制寄存器RCON
第5章 数据存储器EEPROM
5.1 EEADR寄存器 5.2 EECON1和EECON2寄存器 5.3 读数据存储器EEPROM 5.4 写数据存储器EEPROM 5.5 写校验 5.6 误写操作保护 5.7 代码保护情况下的操作 5.8 数据存储器EEPROM的使用
第6章 程序存储器FLASH
6.1 读表和写表操作 6.2 控制寄存器 6.2.1 EECON1和EECON2寄存器 6.2.2 表锁存寄存器TABLAT 6.2.3 表指针寄存器TBLPTR 6.2.4 表指针边界 6.3 读程序存储器FLASH 6.4 擦除程序存储器FLASH 6.5 写程序存储器FLASH 6.5.1 程序存储器写序列 6.5.2 写校验 6.5.3 不可预料的写操作意外中止 6.5.4 误写操作保护 6.6 代码保护情况下的程序存储器操作
第7章 8×8硬件乘法器
7.1 引言 7.2 操作
第8章 中断
8.1 中断控制寄存器INTCON 8.2 PIR寄存器组 8.3 PIE寄存器组 8.4 IPR寄存器组 8.5 RCON寄存器 8.6 INT中断 8.7 TMR0中断 8.8 PORTB端口电平变化中断 8.9 中断现场保护 8.10 用PORTB端口电平变化中断构成的键盘接口硬件电路 8.11 用PORTB端口电平变化中断构成键盘的汇编语言编程 8.12 PORTB端口电平变化中断构成的键盘C语言编程
第9章 I/O端口
9.1 PORTA,TRISA和LATA寄存器 9.2 PORTB,TRISB和LATB寄存器 9.3 PORTC,TRISC和LATC寄存器 9.4 PORTD,TRISD和LATD寄存器 9.5 PORTE,TRISE和LATE寄存器 9.6 开关量输入/输出汇编语言编程 9.7 开关量输入/输出C语言编程 9.8 PORTD端口输出开关量汇编语言编程 9.9 PORTD端口输出开关量C语言编程
第10章 并行从动端口
第11章 定时器/计数器TMR0模块
11.1 TMR0操作 11.2 前分频器 11.3 TMR0中断 11.4 16位方式的定时器读/写 11.5 用定时器TMR0构成秒表的汇编语言编程 11.6 用定时器TMR0构成秒表的C语言编程
第12章 定时器/计数器TMR1模块
12.1 TMR1操作 12.2 TMR1振荡器 12.3 TMR1中断 12.4 用CCP触发输出来复位TMR1 12.5 TMR1 16位读/写方式
第13章 定时器/计数器TMR2模块
13.1 TMR2操作 13.2 TMR2中断 13.3 TMR2的输出
第14章 定时器/计数器TMR3模块
14.1 TMR3操作 14.2 TMR1振荡器 14.3 TMR3中断 14.4 用CCP触发输出来复位TMR1
第15章 捕捉/比较/PWM(CCP)模块
15.1 CCP1模块 15.2 捕捉工作方式 15.2.1 CCP引脚设定 15.2.2 TMR1/TMR3工作方式选择 15.2.3 软件中断 15.2.4 CCP1前分频器 15.2.5 CAN通信信息的时间标记 15.3 比较工作方式 15.3.1 CCP1引脚设定 15.3.2 TMR1/TMR3工作方式选择 15.3.3 软件中断方式 15.3.4 特殊事件触发方式 15.4 PWM工作方式 15.4.1 PWM周期 15.4.2 PWM工作循环周期 15.4.3 PWM操作配置 15.5 PWM(CCP)模块接口硬件电路 15.6 PWM(CCP)模块汇编语言编程 15.7 PWM(CCP)模块C语言编程
第16章 增强型捕捉/比较/PWM(ECCP)模块
16.1 ECCP1模块 16.2 捕捉工作方式 16.3 比较工作方式 16.4 标准PWM工作方式 16.5 增强型PWM工作方式 16.5.1 PWM输出操作配置 16.5.2 半桥输出方式 16.5.3 全桥输出方式 16.5.4 可编程死区延时 16.5.5 系统执行 16.5.6 PWM启动条件 16.5.7 输出极性配置 16.5.8 PWM操作的配置 16.6 增强型CCP的自动关闭功能
第17章 主同步串行端口
17.1 主同步串行模块概述 17.2 控制寄存器组 17.3 SPI方式 17.3.1 寄存器组 17.3.2 运行 17.3.3 使能SPI 17.3.4 典型连接 17.3.5 主控方式 17.3.6 从动方式 17.3.7 同步从动方式选择 17.3.8 休眠方式 17.3.9 复位的影响 17.3.10 总线工作方式的兼容性 17.4 I2C模式 17.4.1 I2C的寄存器组 17.4.2 操作方式 17.4.3 从动方式 17.4.4 时钟延伸 17.4.5 支持通用地址寻址 17.4.6 主控方式 17.4.7 波特率发生器 17.4.8 I2C主控工作方式时的启动状态时序图 17.4.9 I2C主控方式时的重启动状态时序图 17.4.10 I2C主控发送方式 17.4.11 I2C主控接收方式 17.4.12 应答信号位时序图 17.4.13 停止状态位时序图 17.4.14 休眠工作方式 17.4.15 复位影响 17.4.16 多主机方式 17.4.17 多主机通信、总线冲突和总线仲裁 17.5 SPI总线应用的开关量输入接口硬件电路 17.6 SPI总线应用开关量输入汇编语言编程 17.7 SPI总线应用开关量输入C语言编程 17.8 SPI总线应用的开关量输出接口硬件电路 17.9 SPI总线应用开关量输出汇编语言编程 17.10 SPI总线应用的开关量输出C语言编程
第18章 可寻址的通用同步/异步收发器
18.1 USART波特率发生器 18.2 USART的异步工作方式 18.2.1 USART异步发送器 18.2.2 USART异步接收器 18.2.3 带地址检测的9位异步接收方式 18.3 USART同步主控方式 18.3.1 USART同步主控发送 18.3.2 USART同步主控接收 18.4 USART同步从动方式 18.4.1 USART同步从动发送 18.4.2 USART同步从动接收 18.5 USART接口硬件电路 18.6 USART汇编语言编程 18.7 USART C语言编程
第19章 CAN控制器模块
19.1 概述 19.1.1 CAN模块概述 19.1.2 发送/接收缓冲器 19.2 CAN控制寄存器 19.2.1 CAN控制与状态寄存器 19.2.2 CAN发送缓冲寄存器 19.2.3 CAN接收缓冲寄存器 19.2.4 CAN波特率寄存器 19.2.5 CAN模块输入/输出控制寄存器 19.2.6 CAN中断寄存器 19.3 CAN工作方式 19.3.1 配置方式 19.3.2 关闭方式 19.3.3 正常工作方式 19.3.4 监听方式 19.3.5 自检方式 19.3.6 错误识别方式 19.4 CAN信息发送 19.4.1 发送缓冲器 19.4.2 发送优先级 19.4.3 启动发送 19.4.4 中止发送 19.5 信息接收 19.5.1 信息接收缓冲器 19.5.2 接收缓冲器 19.5.3 接收优先级 19.5.4 时间标记 19.6 信息接收过滤器与屏蔽器 19.7 波特率设定 19.7.1 时间当量 19.7.2 同步时间段 19.7.3 传输时间段 19.7.4 相位缓冲时间段 19.7.5 采样点 19.7.6 信息处理时间 19.8 同步 19.8.1 硬同步 19.8.2 重同步 19.8.3 同步规则 19.9 时间段编程 19.10 振荡器误差 19.11 位时间配置寄存器 19.11.1 BRGCON1 19.11.2 BRGCON2 19.11.3 BRGCON3 19.12 错误检 19.12.1 CRC错误 19.12.2 应答错误 19.12.3 格式错误 19.12.4 位错误 19.12.5 填充位错误 19.12.6 错误状4 19.12.7 错误方式和错误计数器 19.13 CAN中断 19.13.1 中断编码位 19.13.2 发送中断 19.13.3 接收中断 19.13.4 信息错误中断 19.13.5 总线活动唤醒中断 19.13.6 错误中断 19.13.7 中断应答 19.14 CAN总线应用接口硬件电路 19.15 CAN总线应用汇编语言编程 19.16 CAN总线应用C语言编程
第20章 10位A/D转换器模块
20.1 对A/D数据采集的要求 20.2 A/D转换时钟的选择 20.3 模拟通道输入引脚的配置 20.4 A/D转换 20.5 ECCP触发器的使用 20.6 A/D转换器应用接口硬件电路 20.7 A/D转换器应用的汇编语言编程 20.8 A/D转换器应用的C语言编程
第21章 比较模块
21.1 比较器的配置 21.2 比较器的工作 21.3 比较器的参考 21.3.1 外部参考信号 21.3.2 内部参考信号 21.4 比较器的响应时间 21.5 比较器的输出 21.6 比较器的中断 21.7 休眠期间比较器的运行 21.8 复位的影响 21.9 模拟输入接入的注意事项
第22章 比较器参考电压源
22.1 比较器参考电压源的配置 22.2 参考电压源的准确度和误差 22.3 休眠期间的运行 22.4 复位的影响 22.5 引脚对外连接的注意事项
第23章 低电压检测
23.1 控制寄存器 23.2 工作 23.2.1 参考电压设置点 23.2.2 电流消耗 23.3 休眠期间的工作 23.4 复位的影响
第24章 CPU的特殊功能
24.1 配置位 24.2 监视定时器(WDT) 24.2.1 WDTCON控制寄存器 24.2.2 WDT后分频器 24.3 休眠方式 24.3.1 从休眠状态到唤醒状态 24.3.2 中断唤醒应用 24.4 程序校验和代码保护 24.4.1 程序存储器代码保护 24.4.2 数据存储器EEPROM的代码保护 24.4.3 系统配置寄存器的保护 24.5 标识码存储单元 24.6 在线串行编程 24.7 在线调试器 24.8 低电压ICSP编程 24.9 程序监视定时器汇编语言编程 24.10 程序监视定时器C语言编程 24.11 休眠唤醒功能汇编语言编程 24.12 休眠唤醒功能C语言编程
第25章 指令系统概述
25.1 读—修改—写操作 25.2 指令说明
第26章 PIC18Fxx8单片机实验板介绍
26.1 模板功能介绍 26.1.1 A/D转换功能 26.1.2 键盘 26.1.3 LED显示 26.1.4 液晶显示器(LCD)显示 26.1.5 8路开关量输入和8路开关量输出 26.1.6 D/A输出 26.1.7 串行通信接口SCI 26.1.8 主/从单片机多机并行通信 26.1.9 捕捉方式和PWM方式 26.1.10 多种复位方式 26.1.11 时钟信号 26.1.12 其他功能 26.2 实验板的硬件布局 26.3 测试点及主要器件介绍
第27章 液晶显示器应用编程
27.1 PIC18Fxx8与MCG12864A83的硬件接口电路 27.1.1 MCG12864A83的结构特点 27.1.2 MCG12864A83模块的引脚说明 27.1.3 PIC18F458与MGLS12864模块的接口电路 27.2 液晶显示程序清单 27.2.1 液晶显示器汇编语言接口程序 27.2.2 液晶显示器C语言接口程
附录
<<
显示目录详情
|
|
|