单片机,又称微控制器,是现代智能化产品设计中必不可少的核心元件,其应用领域也已经渗透到各行各业。世界上制造单片机的半导体厂家也从最初的以Intel公司和Motorola公司为主的几家逐渐发展到现在的几百家。
在激烈的单片机市场竞争中,Microchip公司生产的PIC系列8位单片机以其优越的性能逐渐从以Intel公司51系列和Motorola公司68K系列占绝对主导地位的8位单片机市场中脱颖而出。从2003年起至今,其8位单片机的年出货量稳居全球排名榜首。这样的业绩是与PIC单片机自身的优良性能密不可分的。
PIC单片机具有可靠性高、指令系统简洁、功耗低、驱动能力强、产品系列丰富等优点,能满足各种用户的需要,因此受到广大用户欢迎,市场占用率也一直领先,同时也是一款非常易于学习、掌握的单片机。
本书以PIC单片机中档型号PIC16F877为例全面地讲解单片机的基本原理、软硬件设计方法和单片机各种接口的使用方法。
为了降低读者的入门成本,本书以免费的MPLAB和HI-TECH PICC Lite作为软件开发平台,以Proteus作为硬件电路开发平台,为学习者搭建了一个完美的单片机开发环境。本书还配有关键操作过程的全程视频,使读者可以轻松搭建开发环境、迅速入门。在学习完本书之后,相信读者能够全面地掌握单片机原理及其应用设计,并可以使用PIC单片机进行实际项目的开发。
本书特点
本书主要有以下特点。
1.循序渐进,由浅入深
为了方便读者学习,本书站在开发者的角度组织章节顺序。首先讲解开发流程、开发环境建立、最小系统硬件电路搭建;然后讲解汇编语言、C语言和各种接口的使用;最后给出了几个实际项目的核心部分例子,使读者按认知顺序完成从入门到精通的过程。
2.技术全面,内容充实
本书所讲的内容在保证实用的前提下,详细介绍了PIC单片机每种接口的原理、软硬件设计方法,并都采用标准的模块化源代码给出可以实际运行的例子,使读者学完之后可以直接应用到项目实践中。
3.C语言为主,汇编语言为辅
当前的实际开发中,大多数项目都是用C语言完成。所以本书的绝大部分代码都是用C语言编写。考虑到有很多读者有汇编语言基础但没有学习过C语言,所以本书前面章节仍然详细介绍了PIC的汇编语言及其程序设计。从第9章开始讲解C语言在单片机中的应用,便于无C语言基础的读者学习、掌握。
4.硬件设计,软件模拟
本书以Proteus ISIS软件为硬件模拟平台,为读者提供了一个完整的硬件电路设计、电路板制作和硬件电路模拟平台。使初学者在无任何单片机硬件调试或烧写设备的条件下,可完成单片机硬件电路的学习和设计。书中所有实例均有对应的Proteus ISIS用硬件电路图,均调试完毕,能正常运行。
5.视频精短,重点突出
常见的视频讲解往往是从头到尾的课堂讲解,使最终的视频录像达到几张DVD光盘之多。不便于随身携带、随时学习。本书的视频内容仅把关键的步骤和初学者容易出错的步骤进行高质量录制并配合清晰的语音讲解。
6.代码规范,实用性强
书中的每个知识点都有相应的实例代码和电路图,并在书中明确地标出了在光盘中的路径。对绝大部分代码进行了注释说明。每段代码的后面都有详细的运行结果,读者可以参照运行结果阅读源程序,以便于加深理解。在代码结构上采用了标准的C语言项目开发规范进行组织,并把标准接口功能进行了模块化封装,可以直接应用于实际项目。
7.功能分开,讲解清晰
. 本书在讲解每个知识点(功能模块)时,并不是按照数据手册的顺序来罗列的,而是采用单一功能模块介绍的方法(例如,把USART通信就分为两节:发送器和接收器),每一模块仅介绍相关的原理、寄存器、硬件电路连接和编程实例。这样能让读者明确知道使用某个模块该涉及哪些寄存器和硬件电路。每个功能模块的讲解都配合一个或几个简单的实例和硬件模拟用电路图,可以使读者在看完之后就能知道哪些功能应该应用在哪些场合。
主要内容
本书分为4篇,共21章。各章的主要内容如下。
第一篇开发基础
第1章:主要讲解了单片机的由来和发展现状。介绍了什么是单片机系统、单片机的应用领域、常用单片机厂家,并以PIC系列单片机为例讲解了单片机的特点、单片机的型号选择和基本功能。
第2章:按照单片机项目开发的一般流程,以PIC单片机开发为例,通过大量的图示细致地讲解了软件开发环境MPLAB的建立和基本使用方法、HI-TECH PICC编译器的安装和使用方法、在MPLAB中使用Proteus ISIS调试的一般流程、硬件调试器MPLAB ICD2的安装和使用方法。
第二篇结构与编程
第3章:介绍了单片机系统及其组成,并详细地讲解了PIC单片机最小系统的组成,包括电源电路的设计、时钟电路、复位电路和调试接口的设计。
第4章:先从PIC单片机的基本结构入手来分析PIC单片机的优点,包括其中央处理器结构和存储器结构。然后又依次剖析了其专用功能模块的特点。
第5章:以PIC的8位系列单片机中档产品PIC16F877的汇编指令集为例,主要讲解PIC指令集的特点、分类,并通过简单的例子给出各个指令的使用方法。
第6章:重点讲解MPASM的汇编语言格式、常用汇编伪指令用法,并通过简单的例子给出各个伪指令的使用方法。然后讲解PIC16F877的寻址方式和编程案例。通过列举判断分支、循环、延时等常用子程序讲解子程序的设计方法。最后给出了一个中文版的PIC系列单片机汇编语言模板。
第7章:讲解了PIC16F877的GPIO用作输出时的控制原理和编程方法。并通过对延时子程序、查表子程序的使用来加深读者对汇编程序的理解。
第8章:主要讲解开关量信号的读取,介绍了PIC16F877的输入、输出端口用作输入方式的原理、使用方法、注意事项。并通过对单按键判断、多按键判断、4×4矩阵键盘扫描等实际编程例子的讲解逐步加深读者对输入端口的理解。
第9章:主要讲解C语言开发环境的建立,C语言的常量、变量、运算符、控制语句、数组、函数、预处理和C语言编程规范等内容。
第10章:深入地讲解了PIC16F877的I/O口的扩展方法,包括输出扩展和输入扩展,以及I/O复用。通过编程实例讲解了它们的使用方法。
第三篇模块功能
第11章:宏观介绍了PIC单片机中断系统,并通过处理一个简单的硬件电平中断的过程来讲解中断系统的功能和使用方法。
第12章:系统地讲解了PIC16F877的内置定时/计数器0的用途特点、结构、软硬件设计,通过实例编程讲解了它们的使用方法。
第13章:讲解了PIC16F877内置模数转换器(ADC)的系统结构、使用方法和编程步骤,并讲解了多通道A/D转换、软件滤波和A/D转换中的几个细节问题。
第14章:讲解PIC16F877的内置USART的用途特点、系统结构、硬件连接方法和软件编程,并通过双机互联、与PC互联等多个实例讲解了每种具体功能的编程方法。
第15章:通过分解式的方法讲解了PIC16F877的SPI接口模块的用途特点、系统结构和软硬件设计,通过双机通信、外置EEPROM读写等实例分别讲解了SPI模块主从模式数据收发的编程方法。
第16章:介绍了I2C总线的概念、特点和协议,并通过PIC16F877内置的I2C模块讲解了I2C协议的使用方法。通过双机通信、外置EEPROM的读写讲解了其协议的实现方法。
第17章:讲解了PIC16F877中的捕捉/比较/PWM模块的三个功能模式的系统结构、工作流程、硬件连接和软件编程,并通过实际例子给出在工程项目中的一般应用场合及其编程方法。
第四篇综合实例
第18章:首先讲解了最简单的8×8LED点阵显示屏控制方法。然后介绍了采用74LS138和74HC595来简化系统设计的方法。最后给出多块8×8LED显示屏组成16×16LED显示屏的硬件原理和软件控制方法。本章还讲解了LED显示屏的滚屏效果实现。
第19章:分别介绍了笔段式液晶、字符式液晶和图形点阵式液晶这三类液晶显示屏的特点、结构、控制时序和编程方法,并给出在Proteus ISIS软件中的控制电路图和编程实例。
第20章:讲解了温度传感器DS18B20的控制原理、硬件连接、命令用法和软件编程。先讲解单DS18B20的使用方法,然后讲解一线总线上挂接多DS18B20的识别方法和控制方法。最后给出了一个实际项目的简化版本,其中给出了ROM搜索算法和快速CRC计算的实现。
第21章:简单介绍步进电机的控制原理。通过一个具体的实例着重介绍如何使用单片机控制L298和L297来驱动步进电机。
读者对象
PIC单片机初学者
单片机工程师、嵌入式工程师、硬件电路工程师
高等院校电子信息工程、自动化、电气工程等相关专业师生
本书光盘
书中全部实例文件
开发过程录像文件
常用芯片及元器件
常用学习交流网址
本书主要由赵化启、闫广明、孙小君、张波和李国晶编著。其中第1~8章由赵化启编著,第9~11章由闫广明编著,第12章、第13章由李国晶编著,第14~17章由孙小君编著,第18~21章由张波编著,全书由赵化启统稿。其他参与编著和资料整理的人员有宋一兵、管殿柱、赵景波、付本国、张轩、赵景伟、赵秋玲、张忠林、王献红、王臣业、张洪信、初航、程联军、刘海波、陈立伟等,在此对他们的辛勤工作表示感谢!
衷心希望本书的出版能够为广大的单片机开发人员提供参考,能够为广大的电子爱好者学习PIC单片机技术提供帮助。
感谢您选择了本书,希望我们的努力对您的工作和学习有所帮助。限于编者的水平有限,书中难免会存在错误,恳请读者批评指正。也希望您把对本书的意见和建议告诉我们。
作者联系方式:gdz_zero@126.com
编辑联系方式:sdl@hzbook.com
作者
2010年6月