书籍详情

活学活用PIC单片机C语言编程

活学活用PIC单片机C语言编程

作者:中尾真治(日) 著

出版社:科学出版社

出版时间:2012-05-01

ISBN:9787030339621

定价:¥39.00

购买这本书可以去
内容简介
  《活学活用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?1C语言的基本知识1
1?1?1程序的组成要素1
1?1?2源文件3
1?1?3头文件3
1?1?4预处理程序3
1?1?5main函数4
1?1?6汇编程序4
1?2常量、数据类型和变量5
1?2?1转义字符6
1?2?2枚举常数8
1?2?3数据类型8
1?2?4变量声明10
1?2?5Const10
1?2?6Volatile10
1?3数组和指针11
1?3?1数组11
1?3?2数组与字符串12
1?3?3指针13
1?3?4指针和字符串常数14
1?3?5指针和数组15
1?4结构体和共用体16
1?4?1结构体16
1?4?2共用体18
1?5运算20
1?5?1简单赋值运算20
1?5?2算术运算21
1?5?3自增和自减22
1?5?4关系运算22
1?5?5位操作运算24
1?5?6复合赋值运算24
1?5?7取地址运算26
1?5?8代入不同的数据类型变量中26
1?5?9不同数据型变量的一同计算26
1?5?10运算的优先级和结合规则27
1?6分支语句与循环语句29
1?6?1基于关系真假的分支语句29
1?6?2基于计算结果的多分支语句30
1?6?3边计算边循环31
1?6?4如果关系为真则进行循环33
1?6?5无限循环35
1?7函数36
1?7?1函数的结构36
1?7?2函数返回值数据类型36
1?7?3函数的参数37
1?7?4函数的原型声明37
1?7?5使用函数38
1?7?6实际参数与形式参数38
1?7?7main函数和中断函数42
1?7?8函数的嵌套42
1?7?9不使用递推调用44
1?7?10库函数44
1?8作用域48
1?8?1局部变量和自动变量48
1?8?2全局变量49
1?8?3static50
1?8?4作用域51
1?8?5persistent51
1?8?6在汇编程序中使用变量522章PIC单片机的基本知识2?1PIC单片机的基本知识53
2?1?18位PIC单片机53
2?1?2引脚位置53
2?1?3工作电压范围56
2?1?44个时钟脉冲对应1个周期56
2?1?5PIC12F683的引脚配置56
2?2配置位57
2?2?1执行程序前的设定57
2?2?2配置位57
2?2?3代码保护与校验59
2?2?4代码保护的解除60
2?2?5代码未被保护的领域60
2?2?6配置位的书写方法60
2?2?7LD存储单元的书写方法 61
2?2?8编程器的操作顺序62
2?3振荡电路62
2?3?1构建系统时钟62
2?3?2振荡电路的种类62
2?3?3使用内部振荡器62
2?3?4使用外部加装的振子65
2?3?5使用外部加装的振荡器66
2?3?6用外部加装的R和C制作66
2?3?7振荡电路的转换66
2?3?82速启动模式67
2?3?9使用故障保险时钟监视器67
2?4复位68
2?4?1复位后的状态68
2?4?2不使用外部复位的场合68
2?4?3接通电源时的复位工作情况69
2?4?4加电复位69
2?4?5加电定时器70
2?4?6振荡器启动定时器70
2?4?7电压过低复位70
2?4?8监视定时器复位71
2?4?9MCLR复位71
2?4?10复位状态位71
2?5存储器73
2?5?1存储器的类型73
2?5?2程序存储器73
2?5?3能写入程序存储器中的次数73
2?5?4程序存储器中内容的读出73
2?5?5数据存储器73
2?5?6PIC12F683的情况73
2?6中断74
2?6?1在中断中执行74
2?6?2选择中断事件74
2?6?3GIE位78
2?6?4中断允许位78
2?6?5PEIE位78
2?6?6中断标志位78
2?6?7使用中断设定79
2?6?8中断函数80
2?6?9暂时不进行中断处理的场合80
2?6?10PIC12F683的场合82
2?7监视定时器84
2?7?1超时和复位84
2?7?2使用31kHz的内部振荡器84
2?7?3监视定时器的寄存器85
2?7?416位预换算器86
2?7?5与定时器0共用的预换算器86
2?7?6监视定时器的超时时间87
2?7?7使用监视定时器的设定87
2?7?8把监视定时器的内容设置成088
2?7?9超时时的动作89
2?7?10TO位89
2?7?11PIC12F683的场合90
2?8休眠方式91
2?8?1什么也不做时节省电力91
2?8?2使PIC单片机进入休眠方式91
2?8?3即使休眠方式中也不能停止的功能91
2?8?4从休眠方式中苏醒的功能91
2?8?5利用中断从休眠方式中苏醒的情况92
2?8?6在实施进入休眠方式之前设置092
2?8?7在从休眠方式苏醒之后执行程序地址92
2?8?8从休眠方式中苏醒时花费的时间92
2?8?9使用中断从休眠方式中苏醒的例子93
2?8?10复位状态位93
3章PIC单片机的外围功能3?1I/O端口97
3.1.1输入输出数字数据97
3.1.2I/O端口的寄存器97
3.1.3I/O引脚的输入电压范围100
3.1.4输入缓冲器的种类100
3.1.5VIL和VIH101
3.1.6输出电路102
3.1.7灌电流和拉电流102
3.1.8I/O引脚的输入输出设定102
3.1.9模拟输入模式和数字I/O模式102
3.1.10构成数字I/O模式的方法103
3.1.11I/O引脚的输入输出设定举例103
3.1.12从外部电路输入数据104
3.1.13从外部电路输入数据举例104
3.1.14把数据输出到外部电路105
3.1.15把数据输出到外部电路举例105
3.1.16I/O引脚的输入输出设定和输出数据的覆盖108
3.1.17进入休眠方式后怎样变化?108
3.1.18空闲引脚的处理108
3.1.19使用I/O端口举例108
3.1.20PIC12F683的场合111
3?2弱上拉电路113
3.2.1上拉输入信号113
3.2.2弱上拉电路的寄存器113
3.2.3设定使用弱上拉电路114
3.2.4使用弱上拉电路设定举例114
3.2.5外附加电阻的方法是一种好方案115
3.2.6进入休眠方式时有什么变化吗?115
3.2.7使用弱上拉电路举例115
3.2.8PIC12F683的场合118
3?3I/O端口输入电平变化检测功能119
3.3.1能判明输入数据是否发生了变化119
3.3.2I/O端口输入电平变化检测功能的寄存器119
3.3.3怎样做才能检测出变化?120
3.3.4能检测出变化的最小脉冲幅度121
3.3.5使用I/O端口输入电平变化检测功能的设定121
3.3.6把RAIF位的内容设置成0121
3.3.7设定使用I/O端口输入电平变化检测
功能举例122
3.3.8不能检测变化的定时122
3.3.9I/O端口输入电平变化中断123
3.3.10当进入休眠方式时会怎样变化?124
3.3.11超低功率唤醒电路124
3.3.12使用I/O端口输入电平变化检测功能举例126
3.3.13PIC12F683的场合129
3?4INT引脚输入边沿检测功能130
3.4.1可以检测出输入信号的边沿130
3.4.2INT引脚输入边沿检测功能的寄存器130
3.4.3使用INT引脚输入边沿检测功能设定130
3.4.4把INTF位的内容设置成0130
3.4.5使用INT引脚输入边沿检测功能设定举例130
3.4.6INT引脚输入边沿中断131
3.4.7当进入休眠方式时怎样变化?132
3.4.8使用INT引脚输入边沿检测功能举例133
3?5定时器0135
3.5.1附有预换算器的8位定时器135
3.5.2定时器0的寄存器136
3.5.3选择输入时钟136
3.5.4把外部时钟设置成输入时钟的场合136
3.5.5定时器0的预换算器136
3.5.6对TOIF位和TMRO寄存器的内容进
行初始化137
3.5.7使用定时器0设定举例137
3.5.8读出定时器0的内容137
3.5.9把数据写入定时器0中138
3.5.10在定时器中使用预换算器场合中的注意事项138
3.5.11定时器0溢出中断138
3.5.12当进入休眠方式时,会如何变化?139
3.5.13当进行复位时,会如何变化?139
3.5.14使用定时器0举例140
3?6定时器1142
3.6.1附带有预换算器的16位定时器142
3.6.2定时器1的寄存器142
3.6.3选择输入时钟143
3.6.4设置外部时钟为输入时钟的场合144
3.6.5使外部时钟与系统时钟同步的场合144
3.6.6使外部时钟与系统时钟不同步的场合144
3.6.7最初是从外部时钟信号下降后开始递增过程144
3.6.8定时器1的预换算器145
3.6.9使定时器1工作145
3.6.10利用外部信号终止定时器1的工作145
3.6.11对TMR1IF位或TMR1H寄存器和TMR1L
寄存器的内容进行初始化145
3.6.12使用定时器1设定举例145
3.6.13读取定时器1的内容147
3.6.14把数据写进定时器1中147
3.6.15定时器1溢出中断147
3.6.16若进入休眠方式会如何变化?148
3.6.17当实施复位时,会如何变化?149
3.6.18使用定时器1举例149
3?7比较器152
3.7.1比较两个模拟信号152
3.7.2比较器的寄存器152
3.7.3模拟输入信号的源阻抗154
3.7.4共模输入电压范围154
3.7.5选择比较器的输入输出构成方案154
3.7.6比较器的模拟输入引脚设定154
3.7.7比较器的运行154
3.7.8输入偏移电压156
3.7.9响应时间157
3.7.10读出比较器的输出157
3.7.11把比较器的输出从引脚输出157
3.7.12使用比较器设定举例157
3.7.13检测比较器的输出变化158
3.7.14把C1IF位或C2IF位的内容设置成0158
3.7.15不能检测变化的定时158
3.7.16比较器输出变化中断160
3.7.17使比较器的输出变化与定时器1的输入
时钟同步161
3.7.18利用比较器的输出终止定时器1工作161
3.7.19若进入休眠方式会怎样变化?161
3.7.20若进行复位时会怎样变化?161
3.7.21使用比较器举例161
3.7.22PIC12F682的场合165
3?8比较器参考值167
3.8.1构建比较器用的参考电压167
3.8.2比较器参考值的寄存器167
3.8.3比较器参考电压的运作168
3.8.4比较器参考电压的输出电压168
3.8.5输出电压的整定时间169
3.8.6输出电压的精度169
3.8.7使用比较器参考值设定举例169
3.8.8若进入休眠方式会怎样变化?170
3.8.9当进行复位时,会如何变化?170
3.8.10使用比较器参考值举例170
3?9EEPROM存储器174
3.9.1即使断开电源也能保存数据174
3.9.2EEPROM存储器的寄存器175
3.9.3EEPROM存储器或程序存储器的地址176
3.9.4EEPROM存储器或程序存储器的初值176
3.9.5读出EEPROM存储器或程序存储器的内容177
3.9.6把数据写入EEPROM存储器178
3.9.7未发生中断期间179
3.9.8写入中需要花费的时间179
3.9.9在写入过程中可以进行EEPROM存储器以外
的操作179
3.9.10在EEPROM存储器中能进行写入的次数180
3.9.11写入错误181
3.9.12EEPROM存储器写入结束中断181
3.9.13把EEIF位的内容设置成0182
3.9.14即使在休眠方式中,也能写入182
3.9.15使用EEPROM存储器举例182
3.9.16PIC12F683的场合185
3?10EUSART186
3.10.1串行通信186
3.10.2EUSART的寄存器186
3.10.3传送格式190
3.10.4数据位长度191
3.10.5奇偶性191
3.10.6停止位192
3.10.7数据流控制192
3.10.8传送速度192
3.10.9发送接收引脚194
3.10.10发送194
3.10.11接收197
3.10.12成帧误差200
3.10.13超限误差201
3.10.14EUSART发送中断202
3.10.15EUSART接收中断204
3.10.16使用EUSART举例205
3?11A/D转换器210
3.11.1用数字数据表示模拟输入电压210
3.11.2A/D转换器的寄存器210
3.11.3模拟输入信号的源阻抗213
3.11.4模拟输入电压范围213
3.11.5A/D转换器的模拟输入引脚设定213
3.11.6选择进行A/D变换的模拟输入引脚214
3.11.7参考电压214
3.11.8A/D变换时钟214
3.11.9把FRC设置成A/D变换时钟的场合214
3.11.10把FRC以外的时钟设置成A/D变换时钟
的场合215
3.11.11A/D变换结果数据的右对齐和左对齐215
3.11.12向保持电容器充电215
3.11.13开始执行A/D变换216
3.11.14A/D变换结束216
3.11.15读取A/D变换结果数据216
3.11.16A/D变换的误差216
3.11.17进行A/D变换花费的时间216
3.11.18把ADIF位的内容设置成0217
3.11.19A/D转换器使用举例217
3.11.20A/D变换结束中断218
3.11.21即使在休眠方式中,也能进行A/D变换220
3.11.22A/D转换器使用举例221
3.11.23PIC12F683的场合225
4章开发工具4?1在个人计算机中安装227
4?1?1开发工具软件227
4?1?2获取方法227
4?1?3安装方法229
4?1?4MPLAB IDE的画面构成230
4?2编写程序230
4?2?1头文件230
4?2?2源文件230
4?2?3编辑器230
4?2?4制作新文件等230
4?2?5编辑器选项231
4?3制定项目232
4?3?1制作新项目232
4?3?2表示使用中的文件234
4?3?3项目的编辑和保存等235
4?3?4工作区235
4?4建立项目236
4?4?1建立项目236
4?4?2出现错误的场合236
4?5用模拟器调试237
4?5?1模拟器的启动237
4?5?2寄存器的表示238
4?5?3通过选择变量或寄存器的表示238
4?5?4EEPROM存储器的表示239
4?5?5寄存器、变量、EEPROM存储器的内容变更240
4?5?6程序的执行240
4?5?7断点241
4?5?8停表(秒表)242
4?5?9外部数据的输入243
4?6用编程器写入244
4?6?1编程器244
4?6?2配置位和ID位置的表示246
4?6?3PICkit 3的启动246
4?6?4程序的写入247
5章PIC单片机的应用电路5?1USB251
5.1.1与个人计算机的USB端口进行通信251
5.1.2电源252
5.1.3引脚252
5.1.4转移设定252
5.1.5VCP驱动器253
5.1.6串行通信应用253
5.1.7向个人计算机发送信息253
5?2LCD256
5.2.1表示字符256
5.2.2电源256
5.2.3引脚256
5.2.4字符的表示位置257
5.2.5能表示的字符 258
5.2.6把信息表示于LCD中259
5?3温度265
5.3.1测量温度265
5.3.2形成表示温度的模拟电压265
5.3.3把室温传送到个人计算机265
5?4时间270
5.4.1时钟用晶体振子270
5.4.2用由晶体振子作成的系统时钟进行工作271
5.4.3计量时间271
5?5声音278
5.5.1把电信号变成声音278
5.5.2哆来咪的频率278
5.5.3用PIC单片机形成声音279参考文献285
猜您喜欢

读书导航