书籍详情

嵌入式C语言编程与Microchip PIC

嵌入式C语言编程与Microchip PIC

作者:(美)Richard Barnett等著;薛晓东,秦新建译;薛晓东译

出版社:清华大学出版社

出版时间:2005-07-01

ISBN:9787302100218

定价:¥49.00

购买这本书可以去
内容简介
  嵌入式微控制器就是一台微型计算机,它将其大部分的外设和所需要的存储器连同CPU一起包含在一个单独的集成电路中。它是真正意义上的“集成在一块芯片上的微型计算机”。嵌入式微控制器的应用时间已经超过30年之久。Intel公司的8051系列微控制器是最早将存储器、I/O设备、算术逻辑单元(ALU)、程序只读存储器(ROM)以及一些其他的外设统统集成在一个非常小的封装中的微控制器之一。直到现在这些处理器仍然用来设计新的产品。其他在Intel的引领下进入嵌入式微控制器领域的公司有Generallnstruments公司、NationalSemiconductor公司、Motorola公司、Philips/Signetics公司、Zilog公司、AMD公司、Hitachi公司、Toshiba公司、MicrochipTechnology公司、以及Atmel等公司。在过去10年中,MicrochipTechnology公司在精简指令集计算(RISC)的核心架构的研发上成为业界的领导者,这种架构可以提供成本非常低却非常优秀的解决方案。PIC处理器家族是基于EEPROM存储器的,直到最近才开始转为基于FLASH存储器技术。FLASH技术是永久性且可以重复编程的存储器技术,被广泛地应用于数码照相机、便携式音响设备和个人电脑主板等产品上面。这项存储技术使得Microchip公司可以通过提供一套在系统内可编程的解决方案来推动微控制器工业的发展。在这个高科技发展过程中接下来的重要一步就是,实现专用于这些新的微处理器的高级语言编译器。这些编译器的代码生成和代码优化的功能是强大的。C语言具有灵活的编程风格和可以自定义结构等优点,由于它既能够适用于某个特定目标系统,同时其代码仍然能够被移植到其他系统中,因此C语言被引入单片机编程领域。这类语言的关键优势是,它建立了一些知识库,这些库文件可以被反复应用。在此基础上,各项后续项目的开发周期就被缩短了,从而开发成本也就降低了。迄今为止专门为Microchip公司的PIC微处理器家族设计的最好的C语言工具之一是PIC-C语言。它由CustomComputerServices公司开发研制,这个完整的集成开发环境口DE)使得文本编辑、编译、部分编程和调试都可以由一个PCWindows应用程序完成。作者编写本书的动力在于PIC和其他RISC微控制器的应用日益普及、集成度不断提高(芯片内功能的高度集成以及电路板上的芯片数的不断减少)和利用这种技术开发产品的时候对“兼容性思想”的需要。尽管您可能有为PC编写C程序或者为一个微控制器编写汇编语言程序的经验,但是当为嵌入式微控制器编写C程序的时候,必须调整思路来获得理想的最终结果:精简、有效、可靠、可重用代码。本书对初学者来说是一本很好的基础教科书,同时也是对有经验的嵌入式微控制器设计人员有帮助的一本参考工具书。
作者简介
暂缺《嵌入式C语言编程与Microchip PIC》作者简介
目录
第1章 嵌入式C语言指南 1
1.1 目标 1
1.2 介绍 1
1.3 基础概念 1
1.4 变量和常量 3
1.4.1 变量类型 3
1.4.2 变量使用范围 5
1.4.3 常量 5
1.4.4 枚举和定义 7
1.4.5 存储分类 8
1.4.6 类型转换 8
1.5 I/O(输入输出)操作 9
1.6 运算符和表达式 10
1.6.1 赋值和算术运算符 10
1.6.2 逻辑和关系运算符 13
1.6.3 增量、减量和复合赋值运算 14
1.6.4 条件表达式 15
1.6.5 运算符的优先级 16
1.7 控制语句 17
1.7.1 while循环 17
1.7.2 do/while循环 19
1.7.3 for循环 20
1.7.4 if/else 21
1.7.5 switch/case 24
1.7.6 break、continue和goto 26
1.8 函数 30
1.8.1 原型和函数组织 31
1.8.2 有返回值的函数 33
1.8.3 递归 34
1.9 指针和数组 37
1.9.1 指针 38
1.9.2 数组 41
1.9.3 多维数组 43
1.9.4 函数的指针 45
1.10 结构体和共用体 50
1.10.1 结构体 50
1.10.2 结构体数组 52
1.10.3 结构体的指针 52
1.10.4 共用体 54
1.10.5 typedef操作符 56
1.10.6 位和位段 56
1.10.7 sizeof操作符 58
1.11 存储器类型 59
1.11.1 常量和变量 59
1.11.2 寄存器变量 62
1.12 实时方法 65
1.12.1 使用中断 65
1.12.2 状态机 68
1.13 本章小结 73
1.14 练习题 74
1.15 上机练习 75
第2章 PIC微控制器的硬件 77
2.1 目标 77
2.2 简介 77
2.3 体系结构总览 77
2.4 存储器的组织方式 79
2.4.1 数据存储器 79
2.4.2 FLASH存储器 80
2.4.3 返回地址堆栈 80
2.5 中断和重置 81
2.6 I/O端口 84
2.7 定时器 89
2.7.1 一般功能概要 89
2.7.2 定时器0 93
2.7.3 定时器1 95
2.7.4 定时器2 103
2.7.5 看门狗定时器 108
2.8 串行I/O 109
2.8.1 异步串行端口 109
2.8.2 CAN总线模块 116
2.8.3 同步串行端口 119
2.9 模拟到数字转换的I/O 125
2.9.1 模拟到数字转换的背景 125
2.9.2 模拟到数字转换的模块 126
2.10 断电(睡眠)模式 131
2.11 汇编语言 132
2.12 本章小结 134
2.13 练习题 137
2.14 上机练习 138
第3章 标准I/O和处理器指令 140
3.1 目标 140
3.2 简介 140
3.3 字符输入/输出函数——getchar()和putchar() 140
3.4 标准输出函数 145
3.4.1 输出字符串puts()和“文件”输出字符串fputs() 145
3.4.2 格式化输出printf()和格式化文件输出fprintf() 146
3.5 标准输入函数 149
3.5.1 输入字符串函数——gets()和fgets()函数 149
3.5.2 输入字符串函数——get_string() 150
3.6 标准预处理器指令 151
3.6.1 #include指令 151
3.6.2 #define指令 152
3.6.3 #ifdef、#ifndef、#else和#endif指令 154
3.6.4 #error指令 159
3.6.5 #pragma指令 159
3.7 CCS-PICC函数限定指令 160
3.7.1 #inline和#separate指令 160
3.7.2 #int_default、#int_global和#int_xxx指令 160
3.8 CCS-PICC预定义标识符 162
3.9 CCS-PICC设备相关的特定指令 162
3.9.1 #device指令 162
3.9.2 #fuse指令 163
3.9.3 #id指令 164
3.10 CCS-PICC内部库预处理器指令 165
3.10.1 #use delay指令 165
3.10.2 #use fast_io、#use fixed_io和#use standard_io指令 165
3.10.3 #use i2c指令 167
3.10.4 #use rs232指令 167
3.11 CCS-PICC存储控制预处理器指令 169
3.11.1 #type指令 169
3.11.2 #bit指令 169
3.11.3 #byte指令 170
3.11.4 #locate指令 170
3.11.5 #reserve指令 170
3.11.6 #zero_ram指令 171
3.11.7 #rom指令 171
3.11.8 #org指令 171
3.11.9 #asm和#endasm指令 172
3.12 CCS-PICC编译器控制预处理器指令 173
3.12.1 #case指令 173
3.12.2 #OPT指令 174
3.12.3 #priority指令 174
3.13 本章小结 174
3.14 练习题 175
3.15 上机练习 176
第4章 CCS-PICC C编译器和IDE 177
4.1 目标 177
4.2 简介 177
4.3 集成开发环境 177
4.4 项目 178
4.4.1 打开已有的项目 178
4.4.2 创建新的项目 179
4.4.3 为一个项目设定包含目录 180
4.4.4 编译项目 180
4.4.5 关闭项目 181
4.5 PIC Wizard代码生成器 181
4.5.1 General选项卡 183
4.5.2 通信选项卡 183
4.5.3 “SPI and LCD”选项卡 184
4.5.4 Timers选项卡 184
4.5.5 Analog选项卡 185
4.5.6 Interrupts选项卡 185
4.5.7 Drivers选项卡 186
4.5.8 I/O Pins选项卡 187
4.5.9 已生成的项目 187
4.6 源文件 188
4.6.1 打开一个现存的源文件 188
4.6.2 生成一个新的源文件 188
4.6.3 改变项目的主源文件 189
4.7 编辑器操作 189
4.7.1 书签 189
4.7.2 缩进和Tab键 189
4.7.3 括号匹配 190
4.7.4 语法高亮显示 190
4.7.5 其他编辑器选项 190
4.8 View菜单 191
4.8.1 C/ASM List选项 191
4.8.2 Symbol Map选项 191
4.8.3 Call Tree选项 192
4.8.4 Statistics选项 193
4.8.5 Compiler Messages选项 193
4.8.6 Data Sheet选项 193
4.8.7 Valid Fuses选项 193
4.8.8 Valid Interrupts选项 193
4.8.9 Binary File选项 194
4.8.10 COD Debug File选项 194
4.9 目标设备编程 194
4.10 Tool菜单 195
4.10.1 Device Editor选项 195
4.10.2 Device Selector选项 195
4.10.3 File Compare选项 195
4.10.4 Numeric Converter选项 196
4.10.5 Serial Port Monitor选项 196
4.11 Microchip MPLAB 197
4.11.1 从CCS-PICC启动MPLAB 198
4.11.2 MPLAB工作空间和项目 198
4.11.3 模拟器开发模式 199
4.11.4 在MPLAB中进行编译 199
4.11.5 源文件和程序存储器窗口 199
4.11.6 执行速度 199
4.11.7 调试命令 200
4.11.8 设置和取消断点 200
4.11.9 Run to Cursor 201
4.11.10 Watch 201
4.11.11 File Registers(RAM)窗口 201
4.11.12 修改存储器 202
4.11.13 查看和修改状态机 202
4.12 本章小结 203
4.13 练习题 203
4.14 上机练习 204
第5章 项目开发 205
5.1 目标 205
5.2 绪论 205
5.3 构思开发阶段 205
5.4 项目开发过程步骤 205
5.4.1 定义阶段 205
5.4.2 设计阶段 207
5.4.3 测试定义阶段 208
5.4.4 构造和测试硬件原型的阶段 208
5.4.5 系统整合和软件开发阶段 209
5.4.6 系统测试阶段 209
5.4.7 庆功阶段 209
5.5 项目开发过程总结 209
5.6 示例项目:电动脚踏车 210
5.6.1 概念阶段 210
5.6.2 定义阶段 210
5.6.3 设计的系统考虑 214
5.6.4 硬件设计-驱动单元 222
5.6.5 软件设计-驱动单元 226
5.6.6 硬件设计-显示单元 229
5.6.7 软件设计-显示单元 232
5.6.8 测试定义阶段 234
5.6.9 构造和测试硬件原型阶段 234
5.6.10 系统整合和软件开发阶段-- 驱动单元 239
5.6.11 系统整合和软件开发阶段-- 显示单元 263
5.6.12 系统测试阶段 271
5.7 改进 275
5.8 本章小结 275
5.9 练习题 275
5.10 上机练习 276
附录A 库函数参考 277
附录B PIC微控制器编程 363
B.1 同步端口编程 363
B.2 商用编程器 364
B.3 Boot Loader编程 365
附录C CCS ICD-S串行系统内编程器/调试器 366
附录D Microchip ICD 2串行系统内编程器/调试器 367
D.1 用于PIC FLASH产品的调试器解决方案 367
D.2 MPLAB ICD 2电路内调试器设置 367
D.3 支持的PIC FLASH产品 368
附录E “FlashPIC-DEV“开发板 370
E.1 规格 371
E.2 应用笔记 371
E.2.1 电源 371
E.2.2 串行连接 372
E.2.3 SPI连接 373
E.2.4 并行端口 373
E.2.5 系统时钟 373
E.2.6 CAN接口 373
附录F ASCII表 374
附录G PIC16F877指令集摘要 378
附录H PIC18F458指令集摘要 390
H.1 指令集摘要 390
H.2 READ-MODIFY-WRITE操作 391
附录I 精选问题的答案(按章排列) 396
猜您喜欢

读书导航