《PIC单片机介绍.pptx》由会员分享,可在线阅读,更多相关《PIC单片机介绍.pptx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机的主要性能1.仅有35条单字节指令2.8K*14个FLASH程序存储器3.368*8个数据存储器和256*8EEPROM数据存储器字节4.宽范围工作电压范围,2V5V5.3个带有分频功能的定时器6。2个捕捉器比较器和PWM模块7.10位多通道模数转换器8.带有SPI(主模式)和IIC(主从)模式的SSP5.单片机的主要性能介绍1.仅有35条单字节指令,汇编指令。2.8K*14个FLASH程序存储器3.368*8个数据存储器和256*8EEPROM数据存储器字节4.宽范围工作电压范围,2V5V5.3个带有分频功能的定时器6。2个捕捉器比较器和PWM模块7.10位多通道模数转换器8.带有SP
2、I(主模式)和IIC(主从)模式的SSPPIC16F877内部结构框图PIC16F877的核心模块区域1、程序存储器 程序存储器是用于存放是系统工作的应用程序及一些不需改变的数据常数的,程序写入程序存储器后,单片机系统只能读取程序指令使系统运行,而不能再进行改写,且系统掉电后,程序不会丢失。因此,程序存储器是ROM(Read Only Memory),即只读存储器。2、数据存储器 数据存储器是用于存放程序运行的中间处理数据的,可随程序运行而随时写入或读出数据存储器的内容,当系统掉电时,数据全部会丢失。因此,数据存储器是RAM(Random Accese Memory),即可随机读写的存储器。3
3、、堆栈 保存程序的断点地址。当调用子程序或发生中断时,将断点地址自动压入堆栈。4、指令寄存器 暂存从程序存储器中取出的指令,将指令的操作码和数据进行分离,分别送到不同的逻辑电路。5、指令译码器和控制器 将指令寄存器送来的操作码进行译码,产生一系列的微操作,控制功能电路协调工作,完成指令的功能。6、算数逻辑单元ALU 实现算数和逻辑运算操作。7、工作寄存器 存放要参加运算的数据和暂存运算结果。8、状态寄存器 反应运算结果的状态,如进位、借位以及结果是否为零9、数据存储器RAM 存放运算的中间结果。整体分为体0、体1、体2、和体3四个体,由状态寄存器STATUS的RP0和RP1控制选择。10、时基
4、发生器 产生内部各功能电路工作时所需的时钟信号。11、上电复位电路、上电延时电路和起振延时电路 上电延时电路保证CPU在电源电压达到正常值再工作;起振延时电路保证振荡器有足够时间产生稳定时钟信号。12、看门狗定时器WDT 用来监测程序的运行状态。如果程序进行由于某种原因进行死循环而不受控时,使程序重新开始执行。13、欠压复位电路 当芯片的电源电压低于某值时,CPU将不能正确的执行指令。为防止这类情况的发生,PIC内部设置了电源监控电路,一旦电源电压低于某一值,系统自动产生复位,电源恢复正常后,延时恢复运行状态。14、在线调试电路 可以实现对焊接在电路板上的单片机进行在线调试。15、低电压编程电
5、路 芯片内部有“电源泵”电路,将供电的5V生成高压,完成编程。16、数据总线 内部数据通道,也是连接各外围模块的通道。17、程序通道 实现从程序存储器到指令寄存器的指令传递。PIC16F87X的外围模块1、IO端口模块 (1)RA端口:具有6条引脚的双向I/O口。在基本的I/O功能基础上复用了A/D转换的模拟输入功能、A/D转换所需的外接参考电压输入以及TMR0的外部时钟输入信号等功能。(2)RB端口:具有8条引脚的双向I/O口。除基本功能外,每条引脚内部增加了可统一编程的弱上拉电路,另外还复合了编程引脚以及终端引脚。(3)RC端口:具有8条引脚的双向I/O口。C口的复合功能较为复杂,包括输出
6、比较功能和TMR1外接时钟信号等。(4)RD口和RE口:只有40或44引脚封装的型号才有这两个端口。管脚分布图 (5)输入输出端口相关的两个寄存器 每个端口都具有两个基本的专用寄存器:数据寄存器PORTX和方向寄存器TRISX。通过设置TRISX的相应位即可设置PORTX的输入输出方向。例如设置TRISA0=1,则PORTA0为输入。(6)基本输入输出端口的工作原理 每个改写I/O端口的操作都是经过读取、修改、写入三步完成。先由CPU读取I/O上的逻辑电平,然后经内部工作寄存器修改,最后写回到端口的数据寄存器中。寄存器寄存器名称名称寄存器符寄存器符号号寄存器内容寄存器内容bit7bi6bi5b
7、it4bit3bit2bit1bit0端口寄存器PORTXRX7RX6RX5RX4RX3RX2RRX1RX0方向寄存器TRISXTRISX7TRISX6TRISX5TRISX4TRISX3TRISX2TRISX1TRISX02、定时器和计数器模块PIC16F87X单片机共有三个定时器模块。他们的核心部分都是一个由时钟信号触发的按递增规律 工作的循环计数器;都是从预先设定的某一初始值开始计数,在累计到超过最大值或预先设定的某一终止值时产生溢出,同时建立一个相应的溢出标志,也就是中断标志。(1)TMR0模块 TMR0为8位宽,有一个可选的预分频器,用于通用目的,具有定时器和计数器两种工作模式。工作
8、在定时器模式时,触发信号源来内芯片内部的指令周期信号,而不是时钟周期信号。一个指令周期等于晶振产生的主时钟信周期的4倍。工作在计数器模式时,触发信号取自芯片外部引脚RA4/T0CKI上的输入信号,且输入信号的触发边沿可以通过寄存器进行设定。(2)TMR1模块 TMR1:16位宽,带有一个2位宽的可编程的预分频器,还带有一个可选的低功耗时基振荡器,可以配合实现输入捕捉和输出比较功能;工作在计数器模式时,TMR1的时钟信号或触发信号有3种,分别是取自指令周期信号、从RC0或RC1引脚获取以及自带的振荡器产生。工作在定时器模式时,TMR1内部的16位计数器在每个指令周期到来时增量。(3)TMR2模块
9、 TMR2:8位宽,带有一个4位宽的可编程的预分频器和一个4位宽的后分频器和一个可编程的8位周期寄存器。TMR2的时钟源只能取自内部系统时钟,只能工作在定时器模式。除可用作普通定时器外,还可以用作周期可调的时基发生器、延时可调的周期性定时器 3、EEPROM模块:电擦/写的存储器,掉电时数据不丢失。4、A/D转换模块 PIC16F87X单片机内部的ADC模块是10位的,28引脚封装的具有5个模拟通道,40引脚封装的具有8个模拟通道。A/D转换就是将模拟信号转换为数字信号的过程。(1)工作原理:在A/D转换中,因为输入的模拟信号在时间上是连续的,而输出的数字信号是离散量,所以进行转换时只能按一定
10、的时间间隔对输入的模拟信号进行采样,然后再把采样值转换为输出的数字量。通常A/D转换需要经过采样、保持量化、编码四个步骤。也可将采样、保持合为一步,量化、编码合为一步,共两大步来完成。(1)采样和保持:采样,就是对连续变化的模拟信号进行定时测量,抽取其样值。采样结束后,再将此取样信号保持一段时间,使A/D转换器有充分的时间进行A/D转换。采样保持电路就是完成该任务的。其中,采样脉冲的频率越高,采样越密,采样值就越多,其采样保持电路的输出信号就越接近于输入信号的波形。因此,对采样频率就有一定的要求,必须满足采样定理即:fs2fImax 其中fImax 是输入模拟信号频谱中的最高频率(2)量化和编
11、码 如果要把变化范围在 O7V 间的模拟电压转换为 3 位二进制代码的数字信号,由于 3 位二进制代码只有 23 即 8 个数值,因此必须将模拟电压按变化范围分成 8 个等级。每个等级规定一 个基准值,例如 O0.5V 为一个等级,基准值为 OV,二进制代码为 000,6.57V 也是一个等 级,基准值为 7V,二进制代码为 111,其他各等级分别为该级的中间值为基准值。凡属于某一等级范围内的模拟电压值,都取整用该级的基准值表示。例如 3.3V,它在2.53.5V 之间,就用该级的基准值 3V 来表示,代码是 011。显然,相邻两级间的差值就是=1V,而各级基准值是 的整数倍。模拟信号经过以上
12、处理,就转换成以为单位的数字量了。上述过程可用上页图形表示。所谓量化,就是把采样电压转换为以某个最小单位电压(可以理解为分辨率电压)的整数倍的过程。分成的等级称为量化级,A 称为量化单位。所谓编码,就是用二进制代码来表示量化后的量化电平。采样后得到的采样值不可能刚好是某个量化基准值,总会有一定的误差,这个误差称为量化误差。显然,量化级越细,量化误差就越小,但是,所用的二进制代码的位数就越多,电路也将越 复杂。量化方法除了上面所述方法外,还有舍尾取整法,这里不再赘述。4、A/D转换模块:逐次逼近型ADC结构框图STARTCLOCKEOCOE控制与定时控制与定时逐次逼近寄存器逐次逼近寄存器D/A转
13、换器转换器输输出出缓缓冲冲器器比较器比较器VREF.D7D0输入的输入的模拟量模拟量 逐次逼近型原理:工作原理是这样的,ADC内部有DAC器件。AD转换开始先转换一个小数据,然后经过内部的DAC转换成模拟量和原信号进行比较如果小继续增加AD转换后的数据大小。一步步直到转化后的比原信号大就输出上次转化的数据。整个过程是一步步逐次的进行的。以PIC16F877A为例,采样基准电压设置为4.096V,因为单片机的AD是10位的,也就是说数字量的1024对应模拟量的4.096V,模拟采样的电压不能大于基准,否则将出错。此时假设外部采集的模拟电压为U1,则U1转换得到的数字量为(U1/4.096)*1024捕捉/比较/脉宽调制 模块 两个几乎一样CCP模块,CCP1和CCP2,与TMR1和TMR2配合使用时可以实现输入捕捉、输出比较和脉宽调制PWM输出功能。(1)输入捕捉:用于测量信号的周期、脉宽和频率等;(2)输出比较:用于产生宽度不同的正负方波信号,用于驱动可控硅、继电器等;(3)脉宽调制输出:用于产生周期固定、脉宽可调的周期性方波信号,以驱动可控硅、步进电机等。串行端口模块通用同步异步接收器AD转换器模块
限制150内