《PIC单片机快速入门》是以目前流行的PIC系列单片机为主体,使用C语言来进行描述。全书分为单片机基础知识、C程序设计知识、单片机入门基础实例、单片机高级应用实例和配套学习套件使用说明五大部分,采用理论与实践相结合的方式进行讲解。实例丰富,图文并茂,并带视频演示。《PIC单片机快速入门》的配套光盘中包含所有实验的源程序代码、实验过程照片、实验演示视频录像以及一些常用资料。
《PIC单片机快速入门》可作为单片机爱好者自学PIC单片机的参考用书,也可作为中等职业学校、高等职业学校、电视大学等的教学用书。
《PIC单片机快速入门》是以目前流行的PIC系列单片机为主体,使用C语言来进行描述、全书分为单片机基础知识、C程序设计知识、单片机入门基础实例、单片机高级应用实例和配套学习套件使用说明五大部分,采用理论与实践相结合的方式来进行讲解。实例丰富。图文并茂,并带视频演示。 《PIC单片机快速入门》配套的PIC单片机开发套件是综合多年教学经验开发出来的PIC单片机学习与研发平台,包括ICD2仿真烧写器、增强型PIC实验板以及相关实验附件..实验板集成了常用的单片机外围硬件电路,系统附带了丰富的汇编/C语言源程序实例,可以让您在最短的时间内,全面地了解掌握单片机编程技术,特别适合于PIC单片机初学者、大中专院校学生、单片机工程师和实验室选用。 《PIC单片机快速入门》配套增强型PIC实验板 硬件资源丰富,操作便捷,满足深入学习的需要8路LED发光管、6位数码管、16X2字符液晶接口、128X64点阵液晶接口、6路直控按键、实时时钟、蜂鸣器、继电器、IC总线、SPI总线、A/D转换、串口通信、红外线遥控、无线电遥控、温度采样、步进电机控制等, 《PIC单片机快速入门》的配套光盘中已含所有实验的源程序代码,同时。大量实验过程照片和视频录像记录了实验的全过程及发生的现象。更加激发了读者朋友对单片机的兴趣爱好,读者朋友也可以在我们的网站进行单片机知识的学习与交流.
当今世界科学技术飞速发展,以前需要花费大量时间和精力来搭建一个需要大量兀器件的模拟电路;而现在只需要一块小小的单片机芯片,再写入相应功能的程序,便可以代替以前分立元件组成的电路了。相信读者掌握了单片机技术后,无论在今后开发或是工作上,都会带来意想不到的惊喜。
本书作者着眼于“陕递入门”、“通俗易懂”、“趣味学习”、“学以致用”的指导思想,以理论与实践相结合为主线,能够使读者轻松地掌握单片机基础知识,并使读者朋友具有初步开发、设计单片机产品的能力。本书讲解风格通俗易懂,条理清晰,实例丰富,图文并茂,同时配套光盘包含各程序实例的视频演示录像,使读者的学习更为方便,查看演示效果更为直观。即使读者是一位单片机的门外汉,相信看了本书以后,也能运用单片机知识来解决一些实际问题,将知识转为生产力。
全书总共分为五大部分:单片机基础知识、C程序设计知识、单片机入门基础实例、单片机高级应用实例和配套学习套件使用说明。
(1)单片机基础知识(第1~3章):首先,介绍单片机的发展历史,揭开它的神秘之处。相信初学者朋友最关心的一个实际问题是:单片机到底能够做哪些事?这也是我们要学习单片机技术的理由。当明确了学习目标后,肯定需要做好学习实践平台的准备,在此,我们会一一进行讲解,并给出学习单片机的有效方法与途径。其次,讲解单片机的内部结构、引脚定义、存储器、寄存器、定时器/计数器、中断系统和串行通信等相关知识,让读者对单片机有一个实质性的了解。
(2)C程序设计知识(第4~8章):经常会有人问,单片机应用开发用C语言好,还是用汇编语言好,其实这两种语言都有各自的特点。汇编语言的优点是比较灵活,但程序不易理解,对产品的升级、维护不太有利;而C语言有非常丰富的库函数供用户所使用,因为它是高级语言,程序代码的编写也非常人性化,易于阅读、理解,C语言已经成为在整个计算机界普遍应用的语言。因此,本书也是以C语言来进行描述的,介绍C语言的数据类型、运算符与表达式、分支与循环控制语句、编译预处理与位运算、数组与函数、指针、结构体与共用体等知识,使大家具有C语言程序设计的能力。
(3)单片机入门基础实例(第10章):前面几章讲的都是理论知识内容,由于单片机是一门实践性非常强的学科,即使有再多的理论基础,也必须通过较多的实践操作才能真正学好这门技术。因此,在第10章中,先引入一系列具有趣味性且简单易懂的基础实例,如点亮一个发光管,流水灯控制,按键、蜂鸣器、数码管、继电器的操作和使用,串行通信等。在此,暂时不求技术深,只求让读者明白单片机到底如何来实现我们所需要的特定功能,又如何通过软件程序最终从硬件功能上反映出来。
第1章 什么是PIC单片机1
1.1 PIC单片机的概念及其特点1
1.1.1什么是PIC单片机1
1.1.2 PIC单片机有什么优势2
1.2 单片机能够做哪些具体应用3
1.3 PIC单片机学习的软、硬件实验设备7
1.3.1 增强型PIC实验板7
1.3.2 PIC Pro编程器9
1.3.3 ICD2 PIC仿真烧写器10
1.3.4 PIC实验附件10
1.4 单片机学习的有效方法与途径12
第2章 PIC系列单片机系统的结构和工作原理13
2.1 PIC单片机概述13
2.2 PIC16F877硬件系统概况13
2.2.1内部结构15
2.2.2指令系统18
2.3 I/O端口的结构及工作原理21
2.3.1 I/O端口基本特征21
2.3.2 PORTA端口的特点22
2.3.3 PORTB端口的特点25
2.3.4 PORTC端口的特点27
2.3.5 PORTD端口的特点28
2.3.6 PORTE端口的特点29
2.3.7 PSP并行从动端口31
2.4 中断系统33
2.4.1 中断概述33
2.4.2 PIC16F877中断源33
2.4.3 中断寄存器34
2.4.4 中断处理38
2.5 定时器/计数器38
2.5.1 TMR0主要特征38
2.5.2 TMR1主要特征39
2.5.3 TMR2主要特征42
2.6 输入捕捉/输出比较/脉宽调制CCP45
2.6.1 输入捕捉模式45
2.6.2 输出比较工作模式48
2.6.3 脉宽调制输出工作模式50
2.7 片内EEPROM数据存储器53
2.7.1 片内EEPROM数据存储器概述53
2.7.2 片内EEPROM数据存储器寄存器54
2.7.3 片内EEPROM数据存储器结构和操作原理56
2.8 片内模/数转换器58
2.8.1 PIC16F877的片内ADC模块58
2.8.2 片内ADC模块相关寄存器58
2.8.3 片内ADC模块结构和操作原理61
2.8.4 片内ADC模块的转换过程62
2.8.5 片内ADC模块时钟与参考电压的选择62
2.9 USART通信模块及其使用63
2.9.1 USART通信模块简介64
2.9.2 USART通信模块寄存器65
2.9.3 USART波特率设定68
2.9.4 USART模块的异步通信69
2.9.5 USART模块的同步通信73
2.10 主控同步串口端口MSSP及其应用75
2.10.1 同步串行接口简介75
2.10.2 同步串行端口的SPI模式76
2.10.3 同步串行端口的I2C模式82
第3章 软件集成开发环境MPLABIDE88
3.1 MPLABIDE的组成88
3.2 MPLABIDE软件的获取89
3.3 MPLABIDE软件的安装与卸载89
3.4 PICC编译器的安装与使用方法93
3.5 初次使用PICC的设置96
第4章 C语言概论、数据类型、运算符与表达式98
4.1 C语言概论98
4.1.1 C语言的发展过程98
4.1.2 C语言的特点98
4.1.3 C源程序的结构特点98
4.1.4 C语言的字符集100
4.1.5 C语言词汇100
4.2 数据类型、运算符与表达式101
4.2.1 C语言的数据类型101
4.2.2 算术运算符和算术表达式110
4.2.3 关系运算符和表达式113
4.2.4 逻辑运算符和表达式115
第5章 分支与循环控制118
5.1 if语句118
5.1.1程序的三种基本结构118
5.1.2 if语句的三种形式119
5.1.3 if语句的嵌套123
5.2 条件运算符和条件表达式125
5.3 switch语句126
5.4 循环控制129
5.4.1概述129
5.4.2 goto语句和if语句构成循环129
5.4.3 while语句130
5.4.4 dowhile语句131
5.4.5 for语句133
5.4.6 循环的嵌套135
5.4.7 break和continue语句136
第6章 编译预处理与位运算预处理命令139
6.1 概述139
6.2 宏定义139
6.2.1 不带参数的宏定义139
6.2.2 带参数的宏定义141
6.3 文件包含143
6.4 条件编译143
6.5 位操作运算符145
第7章 数组与函数148
7.1 一维数组的定义和引用148
7.1.1 一维数组的定义148
7.1.2 一维数组元素的引用150
7.1.3 一维数组的初始化151
7.1.4 一维数组程序举例152
7.2 二维数组的定义和引用153
7.2.1 二维数组的定义153
7.2.2 二维数组元素的引用153
7.2.3 二维数组的初始化155
7.3 字符数组155
7.3.1 字符数组的定义155
7.3.2 字符数组的初始化156
7.3.3 字符数组的引用156
7.3.4 字符串和字符串结束标志157
7.4 函数概述157
7.4.1 函数定义的一般形式157
7.4.2 函数的参数和函数的值158
7.4.3 函数的返回值159
7.4.4 函数的调用160
7.4.5 被调用函数的声明和函数原型160
7.4.6 函数的嵌套调用161
7.4.7 函数的递归调用162
7.4.8 数组作为函数参数163
7.5 局部变量和全局变量165
7.5.1 局部变量166
7.5.2 全局变量167
第8章 指针、结构体与共用体169
8.1 指针和地址169
8.2 指针变量和指针运算符169
8.3 指针与函数参数173
8.4 指针、数组和字符串指针175
8.5 指针数组178
8.6 多级指针179
8.7 返回指针的函数181
8.8 函数指针181
8.9 结构与联合182
8.9.1 结构的定义182
8.9.2 结构数组184
8.9.3 结构与函数185
8.9.4 结构的初始化187
8.9.5 联合187
第9章 PIC开发套件快速入门189
9.1 PIC开发套件入门说明189
9.1.1 增强型PIC实验板189
9.1.2 增强型PIC实验板各模块说明192
9.1.3 PIC Pro编程器203
9.1.4 ICD2 PIC仿真烧写器207
9.2 如何建立第一个工程项目208
9.2.1 开发环境和烧写软件的安装208
9.2.2 实验电路原理分析208
9.2.3 程序代码编写与工程创建209
9.2.4 烧写芯片与程序验证211
9.3 如何使用ICD2测试程序212
9.3.1 通过ICD2仿真程序方式执行程序212
9.3.2 通过ICD2烧写程序方式执行程序216
9.4 PIC开发套件常见问题解答219
第10章 单片机基础实例223
10.1发光二极管闪动实验223
10.1.1 实例功能223
10.1.2 器件和原理223
10.1.3 硬件电路224
10.1.4 程序设计225
10.2 流水灯实验226
10.2.1 实例功能226
10.2.2 器件和原理227
10.2.3 硬件电路228
10.2.4 程序设计229
10.3 按键实验229
10.3.1 实例功能229
10.3.2 器件和原理230
10.3.3 硬件电路231
10.3.4 程序设计231
10.4 蜂鸣器实验232
10.4.1 实例功能232
10.4.2 器件和原理233
10.4.3 硬件电路233
10.4.4 程序设计234
10.5 继电器实验234
10.5.1 实例功能234
10.5.2 器件和原理235
10.5.3 硬件电路236
10.5.4 程序设计237
10.6 数码管实验237
10.6.1 实例功能238
10.6.2 器件和原理238
10.6.3 硬件电路240
10.6.4 程序设计240
10.7 串行口实验242
10.7.1 实例功能242
10.7.2 器件和原理244
10.7.3 硬件电路246
10.7.4 程序设计246
第11章 单片机高级应用实例248
11.1 步进电机应用实例248
11.1.1 步进电机简介248
11.1.2 步进电机的控制256
11.1.3 步进电机的软、硬件设计258
11.2 单总线数字温度传感器DS18B20应用实例260
11.2.1 单总线技术简介260
11.2.2 单总线温度传感器DS18B20简介261
11.3 24CXX系列存储器应用实例276
11.3.1 I2C总线简介276
11.3.2 I2C总线器件工作原理及时序278
11.3.3 AT24C系列存储器的软、硬件设计282
11.4 93CXX系列存储器应用实例290
11.4.1 SPI总线简介291
11.4.2 93C46存储器的软、硬件设计293
11.5 DS1302时钟芯片应用实例304
11.5.1 实时时钟简介304
11.5.2 DS1302时钟芯片简介305
11.5.3 DS1302的软、硬件设计308
11.6 A/D转换应用实例314
11.7 1602字符型LCD应用实例319
11.7.1 液晶显示简介320
11.7.2 1602字符型LCD简介321
11.7.3 1602字符型LCD的软、硬件设计326
11.8 12864点阵型LCD应用实例331
11.8.1 点阵LCD的显示原理331
11.8.2 12864点阵型LCD简介332
11.8.3 12864点阵型LCD软、硬件设计338
11.9 红外遥控软件解码应用实例348
11.9.1 红外遥控概述348
11.9.2 6121红外接收的软件解码应用实例354
11.10 无线通信模块应用363
11.10.1 无线通信概述363
11.10.2 PT2262/2272无线模块简介364
11.10.3 无线模块的软、硬件设计369
参考文献374
1-1-1 什么是PIc单片机
PIC单片机(Pei·ipher-aIInterfaceController)是一种用来开发控制外围设备的集成电路(IC),一种具有分散作用(多任务)的CPU。与人类相比,CPU就是大脑,PIC共享的部分相当于人的神经系统。
PIC单片机有计算功能和记忆内存,像CPU并由软件控制执行。然而,它的处理能力和存储器容量却很有限,这主要取决于PIC的类型。此系列单片机最高工作频率都在20MHz左右,用做写程序的存储器容量约为1~4KB。
时钟频率与扫描程序的时间和执行程序指令的时间有关系,但不能仅以时钟频率来判断程序处理能力,它还会随处理装置的体系结构而改变。当体系结构相同时,时钟频率较高的处理能力会较强。
这里用字来解释程序容量,用一个指令表示一个字。通常用字节来表示存储器容量。一个字节有8位,每位由1或0组成。PICl6F84A单片机的指令由14位构成。1K字转换成位:1x1024×14=14336位,再转换为字节:14336/(8×1024)=1.7 5KB。在计算存储器的容量时,规定:1GB=1024MB,1MB=1024KB,1。KB=1024B。它们不是以1000为倍数,因为这是用二进制计算。
据统计,我国的单片机年产量已达1~3亿片,且每年以16%左右的速度增长,然而相对于世界市场我国的占有率还不到1%。这从一个侧面也说明单片机应用在我国才刚刚起步,有着非常广阔的前景,培养单片机应用人才,在工程技术人员中普及单片机知识有着重要的现实意义。
当今单片机厂商琳琅满目,产品性能各异。针对具体情况,应选何种型号呢?首先,需要弄清两个概念:集中指令集(2ISC)和精简指令集(RISC)。采用CISC结构的单片机数据线和指令线分时复用,即冯·诺伊曼结构。