编辑推荐
《活学活用PIC单片机C语言编程》可供PIC单片机C语言开发应用的技术人员参考,也可供工科院校相关专业师生阅读。
内容简介
《活学活用PIC单片机C语言编程》以小型PIC单片机——PIC16F688为例,详细介绍C语言的基础知识、PIC单片机的基本构成和工作原理、PIC单片机的主要外围设备和功能,以及PIC单片机的开发工具使用方法。最后,作为PIC单片机的应用实例,具体介绍了PIC单片机在USB、LCD、温度、时间和声音等开发方面的具体应用。
作者简介
中尾真治,1964年出生于东京,国立工业专科学校毕业。曾在富士通程序研究部门、京销售公司和摩托罗拉公司工作。其后在日本微芯技术公司(Microchip Technology Japan)从事PIC单片机的FAE工作达7年。
主要著作:
《C言語ではじめるPICマイコン》(OHM社)、《おもしろいPICマイコン》(OHM社)、《はじめてのPICマイコン》(OHM社)、《PICマイコン活用ハンドブック》(CQ出版社,合著)新编电子技术讲座活学活用PIC单片机C语言编程。
目录
第1章 C语言入门1.1 C语言的基本知识
1.1.1 程序的组成要素
1.1.2 源文件
1.1.3 头文件
1.1.4 预处理程序
1.1.5 main函数
1.1.6 汇编程序
1.2 常量、数据类型和变量
1.2.1 转义字符
1.2.2 枚举常数
1.2.3 数据类型
1.2.4 变量声明
1.2.5 Const
1.2.6 Volatile
1.3 数组和指针
1.3.1 数组
1.3.2 数组与字符串
1.3.3 指针
1.3.4 指针和字符串常数
1.3.5 指针和数组
1.4 结构体和共用体
1.4.1 结构体
1.4.2 共用体
1.5 运算
1.5.1 简单赋值运算
1.5.2 算术运算
1.5.3 自增和自减
1.5.4 关系运算
1.5.5 位操作运算
1.5.6 复合赋值运算
1.5.7 取地址运算
1.5.8 代入不同的数据类型变量中
1.5.9 不同数据型变量的一同计算
1.5.1 0运算的优先级和结合规则
1.6 分支语句与循环语句
1.6.1 基于关系真假的分支语句
1.6.2 基于计算结果的多分支语句
1.6.3 边计算边循环
1.6.4 如果关系为真则进行循环
1.6.5 无限循环
1.7 函数
1.7.1 函数的结构
1.7.2 函数返回值数据类型
1.7.3 函数的参数
1.7.4 函数的原型声明
1.7.5 使用函数
1.7.6 实际参数与形式参数
1.7.7 main函数和中断函数
1.7.8 函数的嵌套
1.7.9 不使用递推调用
1.7.1 0库函数
1.8 作用域
1.8.1 局部变量和自动变量
1.8.2 全局变量
1.8.3 static
1.8.4 作用域
1.8.5 persistent
1.8.6 在汇编程序中使用变量
第2章 PIC单片机的基本知识2.1 PIC单片机的基本知识
2.1.1 8位PIC单片机
2.1.2 引脚位置
2.1.3 工作电压范围
2.1.4 4个时钟脉冲对应1个周期
2.1.5 PIC12F683的引脚配置
2.2 配置位
2.2.1 执行程序前的设定
2.2.2 配置位
2.2.3 代码保护与校验
2.2.4 代码保护的解除
2.2.5 代码未被保护的领域
2.2.6 配置位的书写方法
2.2.7 LD存储单元的书写方法
2.2.8 编程器的操作顺序
2.3 振荡电路
2.3.1 构建系统时钟
2.3.2 振荡电路的种类
2.3.3 使用内部振荡器
2.3.4 使用外部加装的振子
2.3.5 使用外部加装的振荡器
2.3.6 用外部加装的R和C制作
2.3.7 振荡电路的转换
2.3.8 2速启动模式
2.3.9 使用故障保险时钟监视器
2.4 复位
2.4.1 复位后的状态
2.4.2 不使用外部复位的场合
2.4.3 接通电源时的复位工作情况
2.4.4 加电复位
2.4.5 加电定时器
2.4.6 振荡器启动定时器
2.4.7 电压过低复位
2.4.8 监视定时器复位
2.4.9 MCLR复位
2.4.1 0复位状态位
2.5 存储器
2.5.1 存储器的类型
2.5.2 程序存储器
2.5.3 能写入程序存储器中的次数
2.5.4 程序存储器中内容的读出
2.5.5 数据存储器
2.5.6 PIC12F683的情况
2.6 中断
2.6.1 在中断中执行
2.6.2 选择中断事件
2.6.3 GIE位
2.6.4 中断允许位
2.6.5 PEIE位
2.6.6 中断标志位
2.6.7 使用中断设定
2.6.8 中断函数
2.6.9 暂时不进行中断处理的场合
2.6.1 0PIC12F683的场合
2.7 监视定时器
2.7.1 超时和复位
2.7.2 使用31kHz的内部振荡器
2.7.3 监视定时器的寄存器
2.7.4 16位预换算器
2.7.5 与定时器0共用的预换算器
2.7.6 监视定时器的超时时间
2.7.7 使用监视定时器的设定
2.7.8 把监视定时器的内容设置成
2.7.9 超时时的动作
2.7.1 0TO位
2.7.1 1PIC12F683的场合
2.8 休眠方式
2.8.1 什么也不做时节省电力
2.8.2 使PIC单片机进入休眠方式
2.8.3 即使休眠方式中也不能停止的功能
2.8.4 从休眠方式中苏醒的功能
2.8.5 利用中断从休眠方式中苏醒的情况
2.8.6 在实施进入休眠方式之前设置
2.8.7 在从休眠方式苏醒之后执行程序地址
2.8.8 从休眠方式中苏醒时花费的时间
2.8.9 使用中断从休眠方式中苏醒的例子
2.8.1 0复位状态位
第3章 PIC单片机的外围功能3.1 I/O端口
3.1.1 输入输出数字数据
3.1.2 I/O端口的寄存器
3.1.3 I/O引脚的输入电压范围
3.1.4 输入缓冲器的种类
3.1.5 VIL和VIH
3.1.6 输出电路
3.1.7 灌电流和拉电流
3.1.8 I/O引脚的输入输出设定
3.1.9 模拟输入模式和数字I/O模式
3.1.1 0构成数字I/O模式的方法
3.1.1 1I/O引脚的输入输出设定举例
3.1.1 2从外部电路输入数据
3.1.1 3从外部电路输入数据举例
3.1.1 4把数据输出到外部电路
3.1.1 5把数据输出到外部电路举例
3.1.1 6I/O引脚的输入输出设定和输出数据的覆盖
3.1.1 7进入休眠方式后怎样变化?
3.1.1 8空闲引脚的处理
3.1.1 9使用I/O端口举例
3.1.2 0PIC12F683的场合
3.2 弱上拉电路
3.2.1 上拉输入信号
3.2.2 弱上拉电路的寄存器
3.2.3 设定使用弱上拉电路
3.2.4 使用弱上拉电路设定举例
3.2.5 外附加电阻的方法是一种好方案
3.2.6 进入休眠方式时有什么变化吗?
3.2.7 使用弱上拉电路举例
3.2.8 PIC12F683的场合
3.3 I/O端口输入电平变化检测功能
3.3.1 能判明输入数据是否发生了变化
3.3.2 I/O端口输入电平变化检测功能的寄存器
3.3.3 怎样做才能检测出变化?
3.3.4 能检测出变化的最小脉冲幅度
3.3.5 使用I/O端口输入电平变化检测功能的设定
3.3.6 把RAIF位的内容设置成
3.3.7 设定使用I/O端口输入电平变化检测功能举例
3.3.8 不能检测变化的定时
3.3.9 I/O端口输入电平变化中断
3.3.1 0当进入休眠方式时会怎样变化?
3.3.1 1超低功率唤醒电路
3.3.1 2使用I/O端口输入电平变化检测功能举例
3.3.1 3PIC12F683的场合
3.4 INT引脚输入边沿检测功能
3.4.1 可以检测出输入信号的边沿
3.4.2 INT引脚输入边沿检测功能的寄存器
3.4.3 使用INT引脚输入边沿检测功能设定
3.4.4 把INTF位的内容设置成
3.4.5 使用INT引脚输入边沿检测功能设定举例
3.4.6 INT引脚输入边沿中断
3.4.7 当进入休眠方式时怎样变化?
3.4.8 使用INT引脚输入边沿检测功能举例
3.5 定时器
3.5.1 附有预换算器的8位定时器
3.5.2 定时器0的寄存器
3.5.3 选择输入时钟
3.5.4 把外部时钟设置成输入时钟的场合
3.5.5 定时器0的预换算器
3.5.6 对TOIF位和TMRO寄存器的内容进行初始化
3.5.7 使用定时器0设定举例
3.5.8 读出定时器0的内容
3.5.9 把数据写入定时器0中
3.5.1 0在定时器中使用预换算器场合中的注意事项
3.5.1 1定时器0溢出中断
3.5.1 2当进入休眠方式时,会如何变化?
3.5.1 3当进行复位时,会如何变化?
3.5.1 4使用定时器0举例
3.6 定时器
3.6.1 附带有预换算器的16位定时器
3.6.2 定时器1的寄存器
3.6.3 选择输入时钟
3.6.4 设置外部时钟为输入时钟的场合
3.6.5 使外部时钟与系统时钟同步的场合
3.6.6 使外部时钟与系统时钟不同步的场合
3.6.7 最初是从外部时钟信号下降后开始递增过程
3.6.8 定时器1的预换算器
3.6.9 使定时器1工作
3.6.1 0利用外部信号终止定时器1的工作
3.6.1 1对TMR1IF位或TMR1H寄存器和TMR1L寄存器的内容进行初始化
3.6.1 2使用定时器1设定举例
3.6.1 3读取定时器1的内容
3.6.1 4把数据写进定时器1中
3.6.1 5定时器1溢出中断
3.6.1 6若进入休眠方式会如何变化?
3.6.1 7当实施复位时,会如何变化?
3.6.1 8使用定时器1举例
3.7 比较器
3.7.1 比较两个模拟信号
3.7.2 比较器的寄存器
3.7.3 模拟输入信号的源阻抗
3.7.4 共模输入电压范围
3.7.5 选择比较器的输入输出构成方案
3.7.6 比较器的模拟输入引脚设定
3.7.7 比较器的运行
3.7.8 输入偏移电压
3.7.9 响应时间
3.7.1 0读出比较器的输出
3.7.1 1把比较器的输出从引脚输出
3.7.1 2使用比较器设定举例
3.7.1 3检测比较器的输出变化
3.7.1 4把C1IF位或C2IF位的内容设置成
3.7.1 5不能检测变化的定时
3.7.1 6比较器输出变化中断
3.7.1 7使比较器的输出变化与定时器1的输入时钟同步
3.7.1 8利用比较器的输出终止定时器1工作
3.7.1 9若进入休眠方式会怎样变化?
3.7.2 0若进行复位时会怎样变化?
3.7.2 1使用比较器举例
3.7.2 2PIC12F682的场合
3.8 比较器参考值
3.8.1 构建比较器用的参考电压
3.8.2 比较器参考值的寄存器
3.8.3 比较器参考电压的运作
3.8.4 比较器参考电压的输出电压
3.8.5 输出电压的整定时间
3.8.6 输出电压的精度
3.8.7 使用比较器参考值设定举例
3.8.8 若进入休眠方式会怎样变化?
3.8.9 当进行复位时,会如何变化?
3.8.1 0使用比较器参考值举例
3.9 EEPROM存储器
3.9.1 即使断开电源也能保存数据
3.9.2 EEPROM存储器的寄存器
3.9.3 EEPROM存储器或程序存储器的地址
3.9.4 EEPROM存储器或程序存储器的初值
3.9.5 读出EEPROM存储器或程序存储器的内容
3.9.6 把数据写入EEPROM存储器
3.9.7 未发生中断期间
3.9.8 写入中需要花费的时间
3.9.9 在写入过程中可以进行EEPROM存储器以外的操作
3.9.1 0在EEPROM存储器中能进行写入的次数
3.9.1 1写入错误
3.9.1 2EEPROM存储器写入结束中断
3.9.1 3把EEIF位的内容设置成
3.9.1 4即使在休眠方式中,也能写入
3.9.1 5使用EEPROM存储器举例
3.9.1 6PIC12F683的场合
3.1 0EUSART
3.1 0.1 串行通信
3.1 0.2 EUSART的寄存器
3.1 0.3 传送格式
3.1 0.4 数据位长度
3.1 0.5 奇偶性
3.1 0.6 停止位
3.1 0.7 数据流控制
3.1 0.8 传送速度
3.1 0.9 发送接收引脚
3.1 0.1 0发送
3.1 0.1 1接收
3.1 0.1 2成帧误差
3.1 0.1 3超限误差
3.1 0.1 4EUSART发送中断
3.1 0.1 5EUSART接收中断
3.1 0.1 6使用EUSART举例
3.1 1A/D转换器
3.1 1.1 用数字数据表示模拟输入电压
3.1 1.2 A/D转换器的寄存器
3.1 1.3 模拟输入信号的源阻抗
3.1 1.4 模拟输入电压范围
3.1 1.5 A/D转换器的模拟输入引脚设定
3.1 1.6 选择进行A/D变换的模拟输入引脚
3.1 1.7 参考电压
3.1 1.8 A/D变换时钟
3.1 1.9 把FRC设置成A/D变换时钟的场合
3.1 1.1 0把FRC以外的时钟设置成A/D变换时钟的场合
3.1 1.1 1A/D变换结果数据的右对齐和左对齐
3.1 1.1 2向保持电容器充电
3.1 1.1 3开始执行A/D变换
3.1 1.1 4A/D变换结束
3.1 1.1 5读取A/D变换结果数据
3.1 1.1 6A/D变换的误差
3.1 1.1 7进行A/D变换花费的时间
3.1 1.1 8把ADIF位的内容设置成
3.1 1.1 9A/D转换器使用举例
3.1 1.2 0A/D变换结束中断
3.1 1.2 1即使在休眠方式中,也能进行A/D变换
3.1 1.2 2A/D转换器使用举例
3.1 1.2 3PIC12F683的场合
第4章 开发工具4.1 在个人计算机中安装
4.1.1 开发工具软件
4.1.2 获取方法
4.1.3 安装方法
4.1.4 MPLABIDE的画面构成
4.2 编写程序
4.2.1 头文件
4.2.2 源文件
4.2.3 编辑器
4.2.4 制作新文件等
4.2.5 编辑器选项
4.3 制定项目
4.3.1 制作新项目
4.3.2 表示使用中的文件
4.3.3 项目的编辑和保存等
4.3.4 工作区
4.4 建立项目
4.4.1 建立项目
4.4.2 出现错误的场合
4.5 用模拟器调试
4.5.1 模拟器的启动
4.5.2 寄存器的表示
4.5.3 通过选择变量或寄存器的表示
4.5.4 EEPROM存储器的表示
4.5.5 寄存器、变量、EEPROM存储器的内容变更
4.5.6 程序的执行
4.5.7 断点
4.5.8 停表(秒表)
4.5.9 外部数据的输入
4.6 用编程器写入
4.6.1 编程器
4.6.2 配置位和ID位置的表示
4.6.3 PICkit3的启动
4.6.4 程序的写入
第5章 PIC单片机的应用电路5.1 USB
5.1.1 与个人计算机的USB端口进行通信
5.1.2 电源
5.1.3 引脚
5.1.4 转移设定
5.1.5 VCP驱动器
5.1.6 串行通信应用
5.1.7 向个人计算机发送信息
5.2 LCD
5.2.1 表示字符
5.2.2 电源
5.2.3 引脚
5.2.4 字符的表示位置
5.2.5 能表示的字符
5.2.6 把信息表示于LCD中
5.3 温度
5.3.1 测量温度
5.3.2 形成表示温度的模拟电压
5.3.3 把室温传送到个人计算机
5.4 时间
5.4.1 时钟用晶体振子
5.4.2 用由晶体振子作成的系统时钟进行工作
5.4.3 计量时间
5.5 声音
5.5.1 把电信号变成声音
5.5.2 哆来咪的频率
5.5.3 用PIC单片机形成声音
参考文献
前言/序言
活学活用PIC单片机C语言编程 下载 mobi epub pdf txt 电子书 格式