前 言
《嵌入式C语言编程与Microchip PIC》一书的宗旨在于讲授C语言编程及其C语言编程在嵌入式微控制器中的应用,同时本书还讲述了一些Microchip公司的PIC RISC微控制器家族的应用实例。
读者对象
本书适用于以下两类读者对象:
● 电机和计算机工程、电子工程、电机工程技术和计算机工程技术专业的学生。本书非常适合下列两类情况的学生:
? 没有学习过C语言编程课程的初学者:本书可以作为两个学期或者四个季度的C语言编程课程的教材,该课程将教授学生C语言编程方法以及如何把C语言应用于嵌入式微控制器设计中。在此基础上,学生可以深入到更复杂的嵌入式应用中,这些应用程序都可以在嵌入式微控制器上运行,并且学生只需要很少的硬件知识。在第1章嵌入式C语言指南结束之后,本书就可以作为该课程的其他部分的编程参考书。
? 已经学习过C语言编程课程的学生可以将本书作为一个学期或者两个季度的嵌入式微控制器的课程。在这种情况下,学生只需要学习第1章中那些与嵌入式环境有关的部分,就可以尽快转向高级硬件概念。第1章的结构(本书其他部分的结构也一样)给其他课程所需的信息提供了一个有用的参考。
● 想熟练应用一种新的微控制器的实习工程师、工艺人员和技术人员:根据实际需要,第1章可以用于学习必需的概念,也可以用作参考资料(这取决于用户的编程经验)。第2章中讨论了Microchip PIC微控制器硬件,它可以引导用户逐步学习一种新的微控制器并能够作为以后项目的参考。
预备知识
需要一些数字系统、记数法和逻辑设计的知识。第1章嵌入式C语言指南的最初版本已经成功地用于一门基础微控制器课程(大学二年级、没有预先必要的编程经验),该课程是在两个学期的基本数字逻辑课程结束之后开设的。本书也是一本优秀的高级微控制器选修课程教材。在很多情况下,许多学生会选择保存本书,将它作为高级项目设计课程的参考书,并带到了实际工作中,作为有用的参考书。
本书结构
本书按照逻辑主题单元组织。教师可以按照本书的顺序,从C语言开始,逐渐到PIC硬件再到更加高级的主题,也可以选择自行安排主题的顺序来满足特定的要求。各主题都是独立的,非常便于选择。章节练习题和上机练习也是根据主题分开,使得读者可以很容易地选择适用于特定实例的内容。
章节内容概述
第1章 嵌入式C语言指南
本章逐步详尽地介绍了嵌入式微控制器的C语言编程方法。每个编程的概念都配有一个或多个示例程序来解释它的使用方法。学习完本章,学生将能够编写C语言程序解决问题。本章将CCS-PICC C编译器作为应用Microchip PIC的C编译的模型,上述基本概念也可以应用到其他PIC C编译器中。
第2章 PIC微控制器硬件
PIC RISC处理器部分讲述了从基本结构到微控制器包含的所有标准外设的使用方法。每个外设都有说明其常规用法的示例程序。学习完第1章、第2章之后,学生将能够应用PIC RISC处理器解决实际问题。
第3章 标准I/O和处理器指令
本章介绍了C语言中的内嵌函数及其用法。同样有示例程序介绍使用内嵌函数的方法。学习完第3章之后,学生在解决实际问题时通过应用内嵌函数就可以加快编程速度、提高效率。
第4章 CCS-PICC C编译器和IDE
本章可以作为CCS-PICC C编译器及其相应的集成开发环境(IDE)的使用手册。Microchip公司的MPLAB调试环境可以从Microchip公司的网站http://www.microchip.com获得。
第5章 项目开发
本章着重讲述了一个使用微控制器的项目的开发步骤。作者在本章描述了电动脚踏车的完整开发步骤以解释这个过程。学生可以学会如何高效地开发项目才能够获得最大的成功。
附录
附录A,库函数参考。 本附录对在本书出版时可用的内嵌库函数做了详尽介绍。
附录B,PIC微控制器的编程。 本附录是对PIC设备的FLASH存储区域进行的实际编程的指南,学生通过对它的学习可以加深对编程函数的理解。
附录C,CCS ICD-S串行系统内编程器/调试器。 本附录是对CCS ICD-S编程和调试工具的简介。
附录D,Microchip ICD-II串行系统内编程器/调试器。 本附录是对Microchip ICD-II编程和调试工具的介绍。
附录E,“FlashPIC-Dev”开发板。 本附录介绍了Progressive Resource LLC公司开发的“FlashPIC-Dev”开发板。
附录F,ASCII 表。
附录G,PIC16F877指令集概要。 本附录使用PIC16F877汇编代码编程示例来介绍汇编代码指令集概要。
附录H,PIC18F458指令集概要。 汇编代码指令集概述的参考材料。
附录I,精选问题的答案(按章节排序)。
基本原理
不断提高的微控制器技术为人们持续提供了大量令人惊叹的功能和极高的运行速度。这些改进推进了诸如C语言的高级语言的全面运用,包括以往都是由汇编语言程序完成的、对时间要求苛刻的任务。同时,微处理器变得越来越容易使用,并成为进行教学的完美工具。许多学校将微控制器设备作为课程的目标设备。微控制器开发板的价格下降到如此程度,使得许多学校指定学生购买此板作为“部件工具箱”的一部分,因此,所有的学生拥有自己的开发板。这样的课程要求C语言编程作为预备知识,另外一些课程则综合地讲述C语言编程以及嵌入式微控制器的应用。
本书是一本顺应时代需要的教科书,它可作为需要有C语言编程基础或者不需要该基础的课程的教材,也可以作为其他后续课程的有用的参考书。
使用的硬件
本书中的绝大多数应用程序都是使用“FlashPIC-Dev”评估板开发的,该评估板是由Progressive Resources,LLC公司提供的(详细信息参见附录E)。这种评估板非常适合教学使用,也是一个很好的通用目标开发板。然而,Microchip PIC微控制器很容易使用,只要将它们插入原型板,加上晶振,附加两个电容器,连接四条编程线,它就能很好地工作。学生对每种方法的应用都会很成功。
PIC16F877和 PIC18F458微控制器用来实现本书中的例子。PIC微控制器的一个主要优点是它们的体系结构以及对设备的编程方式均相似。这意味着本书所有的例子能够运行于任何实际的PIC微控制器,只要它包含了完成工作所需要的外设和其他资源,代码无需改动就可以用在PIC家族的其他成员上。总的来说,本书也适合于PIC家族的其他成员。
本书还介绍了更多的通用外设,代码可作为模板应用于PIC家族某些其他成员中的非常规外设。