PIC 单片机基础教程.docx
- 文档编号:30349603
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:40
- 大小:46.81KB
PIC 单片机基础教程.docx
《PIC 单片机基础教程.docx》由会员分享,可在线阅读,更多相关《PIC 单片机基础教程.docx(40页珍藏版)》请在冰豆网上搜索。
PIC单片机基础教程
PIC单片机基础教程
第1章PIC系列单片机结构原理
目前在全世界,利用单片机设计的嵌入式系统带来的工业年产值已超过几万亿美元。
在美国,但是使用嵌入式电脑的全数字电视产品预计每年将产生超过1500亿美元的于世界市场,我国的占有率好不到1%。
这说明单片机应用早我国才刚刚起步,有着广阔的前景。
因此,培养单片机应用人才,特别是在大学和中等专业学校相关专业中普及单片机知识,有着重要现实意义。
1.1单片机概述
微型计算机是一种以电子器件为基础,可以介入输入信息,并能够对各种输入的数字化信息进行算术和逻辑运算,最后产生输出的电子设备。
微型计算机机油快速运算能力,又有极强的逻辑判断能力和的容量存储功能,是20世纪人类最卓越的发明之一,而单片微型计算机就是将CPU、RAM、ROM、定时器/计数器和多种接口都集成到一块集成电路芯片上的尖端武器和日常生活中最广泛使用的计算机。
近年来,单片机得到突飞猛进的发展,已经完全深入到了人们的生活和工作的各个方面。
单片机的发展过程和性能的日益完善,实际上是对传统控制技术的一场革命,开创了为控制技术的新天地,现代控制系统的核心内涵就是嵌入式计算机应用系统(MCU),而单片机就是最典型、最广泛和最普及的嵌入式计算机应用系统。
可以毫不夸张地说,在现代化的设备中,单片机无处不在,如电信、家用电器、工业控制、仪器仪表、汽车和玩具等;单片机也比比皆是,如自动调台收音机、VCD、遥控空调、微波炉、智能玩具、人体秤和心电监护仪等。
随着科技的发展,单片机必将在更多的方面发挥作用。
目前,全世界各大公司的单片机品种已经形成多个系列,同一系列的单片机在软件和硬件方面有很大的相同之处。
例如,PIC16F87X系列单片机有着相同的内核、相同和兼容的指令系统。
各种单片机在其内部所处理的对象都是用二进制数表示的信息,因此在学习单片机原理之前,首先要了解二进制数和二进制编码。
1、1、1二进制数和编码
1计算机中的二进制
数字的表示,有二进制、十进制和十六进制等。
而各种数据在计算机内部都是以二进制编码形式来表示的。
这些数据由1和0组成,按“逢二进一”的进位计数方式进行计数。
不同的数码在不同的数位上的值不相同的,例如:
二进制的0001代表1,0010代表2,0100代表4,1000代表8,那么二进制究竟有何优点呢?
二进制的优点:
简单、可行
由于二进制只有0和1两个数字,用计算机内部的电子元件开关状态来表示,不仅容易实现,而且稳定、可靠.。
以我们的习惯使用的十进制为例,十进制有0,1,2,3,4,5,6,7,8,9,共10个数字,对应10种状态,用开关的状态来区分很困难;而二进制的0和1对应的电器开关的开或关,却十分方便。
运算规则简单
二进制的运算规则非常简单,主要发则有:
0+0=01+0=10+1=11+1=10
0×0=01×0=00×1=01×1=1
适合逻辑运算
二进制的两个只用于表示逻辑的“真”于“假”,比较方便。
(1)二进制转换成十进制
在讲解之前,我们先将一个十进制写成
(123)10=1×102+2×101+3×100
一个十进制数是以10的位权关系来转化的;同理,一个二进制数是以2的位权关系来转化的。
下面看一道例题。
【例1—1】二进制数(1010)2=1×23+0×22+1×21+0×20=8+0+2+0=﹙10﹚10
(2)十进制转化成二进制
通常,我们采取除以2取余数地方法。
【例1—2】将十进制数(26)10转化成二进制。
解:
226……余0(最低位)
213……余1取
值
26……余0顺
序
23……余1
21……余1(最高位)
0因此,
(26)=(11010)2
(3)十六进制
计算机程序出了使用二进制表示数字之外、也经常用到十六进制。
在这种进制中,逢16进1,16个数字字符表示为0~9、A、B\、C、D、E和F,字母A、B、C、D、E、和F表示10~15.
例如,十六进制的E是十进制的14,二十六进制的2A是十进制的42(2×16+10)。
十六进制数字使用前缀“0x”,如十六进制的2A或2AH。
(4)二进制转换成十六进制
【例1—3】将二进制数(0110111011010101)2转化成十六进制数。
解:
按4位进行分组,每组对应的一个十六进制数:
(0110111011010101)2=(6ED5)16
6ED5
【例1—4】将十六进制(ABF1)16转化成二进制数。
解:
每位十六进制数对应一组4为二进制数:
(ABF1)16=(1010101111110001)2
1010101111110001
2计算机中的字符编码
信息编码是对输入计算机中的各种非数值型数据用二进制编码的方式。
常用的编码方式有以下两种:
(1)二—十进制编码
二—十制编码也称为BCD码。
这是一种用4为二进制数来表示1为十进制数的编码方式。
它貌似二进制,实为十进制。
这种编码形式比较便于识别和转换,可以简化人机联系,通常采用与0~9各个数字对应的二进制数作为代码。
最常用的方法8421码,即4为二进制数的最高位到最低的一位分别对应表示8/4/2/和1(23,22,21,20)。
[【例1—5】求十进制(7985)10的BCD码。
因为
7985
0111100110000101
则
(7985)10=(0111100110000101)BCD
(2)ASCII码
计算机最常用的字符编码是ASCII码。
ASCII码用7位二进制代码来表示,共有128个字符,其中34个为控制符,94个为可见字符。
本书中ASVII码附表中只给出了常用的后80个字符(见表8—2),包括10个数字,英文字母大、小写标点符号和运算符号等。
ASCII码的最高位用作奇/偶校验位用来校验代码在传输过程中是否出现错误;ASCII码的两个次高位主要用来表示控制符。
1.1.2 单片机工作原理简述
单片微型计算机系数的组成与通用计算机的组成基本相同,都是由硬件系统和软件系统构成。
硬件(Hardware)【ha:
dwεə】是构成单片机的所有实体部件。
它分为5大功能部件,即运算器、控制器、存储器(Memory)[meməri】、输入(input)设备和输出(output)单片机的硬件结构如图1—1所示。
运算器ALU是指算术逻辑单元,主要完成算术逻辑运算。
在单片机里,ALU的主要作用是进行算术运算、逻辑运算、位操作(位置位和复位)、增量减量、左移位、右移位、半字节交换等。
指运算器输入输出
程令ALU数据存储器数据设备
序寄RAMIO
计存
数程序存储器器控制器
器EPROMIRID
控制器是计算机的大脑,自动地执行指令。
它由程序计数器PC、程序地址寄存器、指令寄存器IR和指令译码控制器ID等组成。
其作用是:
控制指令读出、译码和执行,对指令执行过程进行控制,并根据执行结果决定程序的顺序执行或转移。
在单片微型计算机里,存储器可分为数据存储器(RAM)和程序存储器(ROM或EPROM)两种。
它是单片机的记忆装置,通过存储程序和数据,是单片机具有记忆能力。
输入设备是向单片机提供传感器信号、用户设置信号等输入信号的设备。
单片机根据输入信号的不同,执行不同的程序段。
输出设备是执行单片机控制信息的执行机构,如显示器、继电器和扬声器。
软件(Softwate)【sɔftwεə】是单片机工作的程序及数据。
单片机系统设计人员需事先将设计好的程序通过编程器烧写到单片机程序存储器中,供单片机工作时取出。
单片机的工作过程实质上是执行程序的过程,单片机系统通电后,在程序计数器的控制下,按一定顺序从程序存储器ROM或EPROM中取出指令,经控制器分析后送相应的部件去执行。
也就是说,单片机的工作过程是周而复始地取指令、分析指令和执行指令的过程。
1.1.3PIC单片机的主要特点
PIC(Periphery【pərifəri:
】“外围”interface【intəfeis】“接口”Chip【tʃip】“碎片”)单片机是美国Microchip【maikrə。
tʃip】“微晶片”公司生产的系列单片机。
Micro-chip公司是一家专门致力于单片机开发/、研制和生产的制造商,其产品设计起点高,技术领先,性能优越。
PIC系列单片机的硬件系统设计简洁,指令系统设计精炼。
在所有的单片机品种中,PIC具有性能完善、功能强大、学习容易、开发应用方便、人机界面友好等突出的优点。
PIC系列单片机不是在一般微型计算机CPU的基础上加以改造的,而是独树一帜,采用全新的流水线结构、单字节指令体系、嵌入闪存以及10位A/D转换器,是指具有卓越的性能,代表着单片机发展的新方向。
PIC系列单片机具有高、中、低3个档次,可以满足不同用户开发的需要,适合在各个领域中应用。
PIC系列单片机采用哈佛总线结构,在芯片内部,数据总线和指令总线分离,容许采用不同字节宽度。
这样,就实现了在执行一条指令的同时,可对下一条指令进行取指令操作,也为实现全部指令的单字节化和单周期化创造了条件,从而大大提高了CPU执行指令的速度和工作效率。
由于PIC系列单片机采用CMOS(互补金属氧化物半导体)结构,其功率消耗极低,是目前世界上最低功耗的单片机品种之一。
其中有些型号在4MHz时钟下工作时,耗电不超过2mA;而在睡眠模式下,耗电可低至1µA¾以下。
因此,PIC系列单片机尤其适用于野外移动仪表的控制以及户外免维护的控制系统。
PIC系列单片机I/O端口驱动负载的能力较强,每个输出引脚可以驱动高达20~25mA的负载,既能够高电平直接驱动发光二极管LED、光电耦合器和小型继电器等,也可以低电平直接驱动,这样可大大简化控制电路。
不过,请读者注意,每个引脚的驱动能力并不表示端口引脚同时都具有这样的功效。
一般端口驱动能力为60~70mA,而所有输入/输出驱动低于200mA,详细数据可参考有关数据手册。
1.2PIC单片机基本结构及信号引脚
1.2.1PIC单片机内部基本结构
PIC系列单片机种类很多按指令的位数分为3类:
基本级产品、中级产品和高级产品,每种产品又包含多种型号(见附录A).
所有产品均提供OTP(OneTimeProgrammable【prəugræməbl】)一次性可编程或FLASH(【flæʃ】发出闪光)编程,采用多种封装形式等。
在众多单片机型号中,PIC16F87X系列单片机是最适合初学者学习的一种,是具有FLASH程序存储器的8位COMS单片机,可以在线编程。
1.PIC16F87X系列单片机的分类
PIC16F87X系列单片机是PIC大家庭中的一个分支。
包括16F870、16F871、16F872、16F873、16F874、16F876和16F877。
其中,1998年推出的是16F873、16
4、16F876和16F877;1999年推出的是16F870、16F871和16F872。
PIC16F87X系列单片机的程序是通用或兼容的,因此很适合于初级单片机爱好者学习。
只要学会16F877,掌握其他型号的PIC单片机就容易了,股本数再不他别致命的情况下,均以PIC16F87X为蓝本进行介绍。
2.PIC16F87X系列单片机的概述
PIC16F87X系列单片机是一种具有FLASH程序存储器的8位COMS单片机,品种具有28引脚采用双列直插和表面封装的16F870、16F872、16F873和16F876四种型号及40引脚采用双列直插和表面封装等3种形式的16F871、16F874和16F877。
它们属于PIC单片机系列的中档产品,可以满足不同的应用要求。
PIC16F87X系列单片机采用高性能的哈佛双总线结构CPU和RISC指令集CPU可以同时访问数据存储器和程序存储器。
这个系列的单片机指令采用14位字宽,使所有的指令操作码都为单字节指令,而且除了程序的分支指令执行是需要两个周期外,其余指令都为单周期指令。
这种单片机共有指令35条。
PIC16F87X系列单片机的具体配置如表1-1所列。
PIC16F87X系列单片机除了表1-1中所列的配置外,共有的功能配置还有看门狗WDT,上电延时复位和在线串行编程。
功能
型号
16F870
16F871
16F872
16F873
16F874
16F876
16F877
工作频率
DC-20
DC-20
DC-20
DC-20
DC-20
DC-20
DC-20
FLASH存储器/B
2K×14
2K×14
2K×14
4K×14
4K×14×
8K×14
8K×14
RAM/B
128
128
128
192
192
368
368
EFPROM/B
64
64
64
128
128
256
256
中断/个
10
11
10
13
14
13
14
I/O端口
A、B、C
A、B、C、D、E
A、B、C
A、B、C
A、B、C、D、E
A、B、C、D、E
定时器/个
3
3
3
3
3
3
3
A/D转换通道/个
5
8
5
5
8
5
5
CCP模块/个
1
1
1
2
2
2
2
串行通信模块
USART
USART
无
USART
USART
USART
USART
表1-1PIC16F87X系列单片机功能配置
3.PIC16F87X系列单片机的内部结构
PIC16F87X系列单片机是一种高速、低功耗及功能齐全的微处理芯片,内部含有FLASH、ROM、RAM、EFPROM、A/D转换器、捕捉器/比较器/PWM、串行通信端口、定时器/计数器、中断控制器和中央处理器,以及数据总线、数据存储总线和程序存储总线。
其中,数据总线和数据存储总线是8位宽,程序存储器总线是14位宽。
集成于片内的数据存储器通过片内的8位总线与算术逻辑单元ALU连接,可以直接通过内部总线传送信息,以寄存器方式工作和寻址。
PIC16F87X系列单片机的内部结构如图1-2所示。
从图1-2可知,该系列芯片集成了FLASH程序存储器、算术逻辑单元ALU、13位指令计数器PC、14位指令寄存器2R、指令译码器ID、8级13位的堆栈、文件寄存器RAM、特殊功能寄存器SFR、程序状态寄存STATUS、多通道10位A/D转换器、数据EFPROM、定时器/计数器、多功能可编程输入/输出端口、串行/并行通信端口、捕捉器/比较器/PWM、上电和掉电复位电路、看门狗WDT和振荡器和时序发生器等部件,按功能可以分成两大组件,即内部CPU核心模块和外围功能模块。
下面分别介绍模块的结构和作用。
(1)内部CPU核心模块的结构和作用
运算器的结构和作用
算术逻辑单元ALU:
实现算术运算和逻辑运算。
工作寄存器W:
主要放一些中间变量或操作地址,是数据流通和传送的桥梁,也是使用最频繁的寄存器。
堆栈
OPTIONREGTMR0
程序计数器PC
TICONTMR1
T2CONTMR2
RA
方向控制端口A
TRISAPORTA
程序存储器RB
方向控制端口B
TRISBPORTB
RC
方向控制端口C
TRISCPORTC
控制寄存器A/D转换器
ADCONADRES
串口串口
指令存储器控制寄存器
888
指令译码器
控制器
W
控制信号寄存器
状
态
寄
存ALU上电复位WDT欠压复位时基
器内部电器发生器
NCLRVDDVSSOSC1OSC2
图1-2PIC单片机内部基本结构
程序状态寄存器STATUS;反应运算结果的状态,例如是否进位、借位和全零等。
控制器的结构和作用
时钟电路:
产生芯片内部所需的脉冲信号
复位电路:
该电路是单片机在必要时能够复位。
指令寄存器;暂存程序其中的指令,并把指令分成操作数和操作码,送到不同的目的地。
程序计数器PC:
记下当前程序的地址,初始状态是零,程序每执行一条,PC的内容就加1。
存储器的结构和作用
数据存储器:
用来存储单片机工作时的中间运算数据。
它由随机存储器RAM和可掉电保护数据存储器EFPROM构成。
随机存储器RAM存储参与运算的数据和中间结果,单片机断电后,RAM的数据会丢失。
数据存储器EFPROM用来存储需要长期保存的运算数据和结果,单片机断电后,EFPROM中的数据可长期保存。
程序存储器:
由FLASH存储器构成,用来存储用户程序和常数。
(2)主要外围功能模块的结构和作用
输入/输出端口的结构和作用
端口电路有3个端口A、B、C或A、B、C、D、E五个端口模块构成,完成外部电路与CPU的信息交换。
每个端口都可通过编程来实现输入、输出等不同功能。
其中RA口是6条可编程I/O口RB、RC、RD口是8条可编程I/O口,RE口是3条可编程I/O口。
每个端口都有相应的方向寄存器与之对应。
A、B和C端口的方向寄存器分别为TRISA、TRISB、TRISC。
定时器模块
它由定时器TMR0、TMR1、TMR2构成。
其中,TMR0、TMR1既可作定时器,也可做计数器;TMR2只能做定时器使用。
TMR0是8位宽的可编程定时器./计数器,TMR1是16位宽的可编程定时器/计数器,TMR2是8位宽的可编程定时器,TMR1、TMR2还有捕捉/比较/脉宽调制CCP模块配合实现捕捉、比较和脉宽调制功能。
每个定时器都有相应的控制寄存器与之对应。
TMR0、TMR1和TNR2的控制寄存器分别为OPTION-REG、TICON和T2CON。
A/D转换器模块
由5或8个通道,10位分辨率的数/模转换器构成。
用于将外部的各种模拟信号转换为数字信号供单片机处理。
1.2.2PIC单片机基本信号引脚
PIC16F87X系列单片机的引脚分为两种:
一种为40脚(包括871、874和877),如图1-3所示;;另一种为28脚(包括870、872/873和876),如图1-4所示,下面介绍它们的功能。
根据芯片引脚的功能不同将引脚分成以下4类:
(1)电源和地线引脚
PIC单片机一般采用+5V供电,电源正极为VDD,地线为VSS,如图1-3所示的第11、12、31和32脚。
为防止电源噪声的干扰和影响,一般将电源线引脚和地线引脚放置芯片中间。
(2)时钟振荡器输入/输出引脚
因为PIC单片机可以采用不同的振荡器,所以设置两根不同的引脚将外部振荡元件和内部电路相连,一根是振荡器输入引脚OSC1/CLKIN,一根是振荡器输出引脚OSC2/CLKOUT。
如图1-3所示的第13、14脚。
对不同的振荡器类型。
两根引脚功能也不同,相见1.4节有关PIC单片机索赔界的振荡器内容
(3)复位信号和编程输入引脚
外部电路产生的复位信号输入端MCLK,低电平有效,可是单片机复位。
当对CPU编程时,这个引脚作为编程电压的输入端VPP.如图1-4所示的第1脚。
(4)输入/输出端口和第2、第3功能引脚
PIC16F87X系列单片机有多个端口,而且大部分端口都是第2、第3功能复用口。
端口A、B、C、D和E都是双向I/O口、通过编程可以设置成输入或输出口。
第2、第3功能复用口指的是用于A/D转换的模拟电压输入端和参考电压输入端。
用于定时器的时钟输入端和振荡器输出端,以及用于串口和并口的信号输入/输出端等。
PIC16F87X单片机的具体引脚功能如附录B所示。
MCLR/VPP140RB7/PGD
RA0/AN0239RB6/PGC
RA1/AN1338RB5
RA2/AN2/VREF-437RB4
RA3.AN3.VREF+536RB3.PGM
RA4/T0CK1635RB2
RA5/AN4/SS734RB1
RE0/RD/AN5/833RB0/RNT
RE1/WR/AN6932VDD
RE2/CS/AN71031VSS
VDD1130RD7/PSP7
VSS1229RD6/PSP6
OSC1/CLKIN1328RD5/PSP5
OSC2/CLKOUT1427RD4/PSP4
RC0/T1OS0/T1CK11526RC7/RX/DT
RC1/T1OS1/CCP21625RC6/TX/CK
RC2/CCP11724RC5/SDO
RC3/SCK/SCL1823RC4/SDI/SDA
Rd0/PSP0.1922RC3./PSP3
RD1/PSP12021RC2.PSP2
图1-3PIC16F877(874、871)单片机基本信号引脚
MCLR/VPP128RB7/PGD
RA0/AN0227RB6/PGC
RA1/AN1326RB5
RA2/AN2/VREF-425RB4
RA3/AN3/VREF+524RB3/PGM
RA4/.TOCK1623RB2
RA5/AN4/SS7PIC16F87322RB1
VSS821RB0/RNT
OSC1CLKIN920VDD
OSC2/CLKOUT1019VSS
RC0T1OS0/T1CK11118RD7/RX/DT
RC1T1OS1/CCP21217RD6TX/CK
RC2/CCP11316RD5/SD0
RC3/SCK/SCL1415RD4/SDI/SDA
图1-4PIC16F873(870、872和876)单片机基本信号引脚1.3常用存储器
存储器是单片机中一个非常重要的部件,专门用于存放指令,数据运算结果。
存储器从使用功能上分,可分为随机存储器RAM(Random【rændəm】《任意的,无计划的》Access【ækses】《通道,入口》Memory【meməri】《记忆力,记性》)和只读存储器ROM(Read【ri:
d】《读;看懂,理解》Onlymemmory)l两类。
分析PIC16F877单片机存储器结构吗,可以从其配置的3大模块着手进行,它们是:
·8K×14位FLASH程序存储器
·512×8为数据存储器RAM:
·256×8位可掉电保护数据的EEPROM存储器模块。
1.3.1数据寄存器
PIC16F87X用于存储数据的RAM单元比一般单片机RAM的功能要强大得多,它除了具备普通RAM的功能之外,每一个单元都能实现移位、置位、复位和位测试等通常由寄存器才能完成的功能操作。
另外,microchip【maikrə,tʃip】《微晶片》公司还给他们的RAM起了个专用名字叫“文件寄存器”。
RAM数据存储器和FLASH程序存储器一样,在空间构架上进行类似地分区。
按横向排列,分4个区(BANK【
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PIC 单片机基础教程 单片机 基础教程
![提示](https://static.bdocx.com/images/bang_tan.gif)