pic单片机原理及应用(第三版)(下)_第1页
pic单片机原理及应用(第三版)(下)_第2页
pic单片机原理及应用(第三版)(下)_第3页
pic单片机原理及应用(第三版)(下)_第4页
pic单片机原理及应用(第三版)(下)_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,PIC单片机原理及应用(第三版)下,主编: 李荣正,2,第0章 键盘和显示,键盘和显示是单片机控制系统非常重要的人机交互界面。,3,0.1 八段数码显示,1、八段数码显示器的编码,2、编码查表程序,4,3、多位数字动态显示,多位数字动态显示涉及数据的传送和显示位的控制。位控制显示数据(编码)停留时间(确保视觉需要),5,4、多位数字静态显示,多位数字静态显示涉及数据显示位数据的锁存控制,一般采用两种方案实现。多位74LS164移位寄存器采用74LS224和74LS373数据锁存,6,0.2 独立键盘和矩阵键盘,1、独立键盘,7,2、矩阵键盘,8,第9章 串行通信模块,串行扩展通信接口是单片机与其它计算机之间进行数据交换的重要渠道,F877单片机主要配置有2种形式的串行通信模块: 主控同步串行通信MSSP (Master Synchronous Serial Port) 通用同步/异步收发器USART (Universal Synchronous/Asynchronous Receiver Transmitter )。,9,MSSP模块主要应用于系统内部近距离的串行通信扩展,如SPI、I2C模式。USART模块主要应用于系统之间的远距离串行通信,在外围接口电路及计算机通信中应用相当广泛。,10,9.1 SPI串行通信模块,SPI(Serial Peripheral Interface)是一种单片机外设芯片同步串行扩展接口,由摩托罗拉公司推出。采用SPI接口外围器件的特点是引脚性价比高等优点,因而在市场上得到了广泛的应用。,11,9.1.1 SPI模式下相关寄存器,在SPI模式下,有关的寄存器共有10个,其中无编址的只有一个SSPSR。这10个寄存器中有6个寄存器是与其它模块共用的。另外有4个寄存器与MSSP模块相关,它们是与I2C模式共用的。,12,1SSPBUF(收/发数据缓冲器),13,2SSPSTAT(同步串口状态寄存器),14,Bit0/BF:缓冲器满标志位,被动参数。 仅仅用于SPI接收状态下: 0:缓冲器空; 1:缓冲器满。Bit6/CKE:SPI时钟沿选择和I2C总线输入电平选择位。 在CKP = 0,静态电平为低时: 0:SCK的下降沿发送数据; 1:SCK的上升沿发送数据。 在CKP = 1, 静态电平为高时: 0:SCK的上升沿发送数据; 1:SCK的下降沿发送数据。,15,Bit7/SMP:SPI采样控制位兼I2C总线转换率控制位。 在SPI主控方式下: 0:在输出数据的中间采样输入数据; 1:在输出数据的末尾采样输入数据。 注意:在SPI从动方式下,SMP位必须置位。,16,3SSPCON(同步串口控制寄存器),17,同步串行口MSSP方式选择位,18,Bit4/CPK:时钟极性选择位。 0:表示空闲时时钟停留在低电平; 1:表示空闲时时钟停留在高电平。Bit5/SSPEN:同步串口MSSP使能位。 在SPI模式下时,有关引脚必须正确的设定为输入或输出状态。 0:关闭串行端口功能,且设定SCK、SOD、SDI和SS为普通数字I/O脚; 1:允许串行端口工作,且设定SCK、SOD、SDI和SS为SPI接口专用。,19,Bit6/SSPOV:接收溢出标志位,被动参数。 0:未发生接收溢出; 1:发生接收溢出。 注意:所指的接收溢出是缓冲器SSPBUF中数据还未取出时,移位寄存器SSPSR中又收到新的数据,原SSPSR中的数据丢失。,20,Bit7/WCOL:写操作冲突检测位,被动参数。 在SPI从动方式下: 0:未发生冲突; 1:发生冲突。 注意:当WCOL=1, 正在发送前一个数据时,又有新数据写入SSPBUF,必须用软件予以清零。,21,4SSPSR移位寄存器,直接从端口引脚接收或发送数据,将已经成功接收到的数据送到缓冲器SSPBUF中,或者从缓冲器SSPBUF读取将发送的数据。,22,9.1.2 SPI模式工作原理,要发送的数据通过数据总线送入发送缓冲器,然后自动传送到移位寄存器中;移位寄存器接收到数据自动传送到接收缓冲器,然后由程序读取收到的数据;移位寄存器有移入和移出两个端口,分别与收和发两条通信线路连接,负责收发数据。,23,SPI模式电路的基本结构,24,SPI工作原理示意图,25,【例题】如图9-5为8位数码显示和16个键盘电路,利用F877的SPI同步串行功能实现数码管数据串行传送,并通过8个74LS164组成的移位电路,达到数码数据的静态显示。而16个键盘组成矩阵电路,采用RD口高低四复合选通。 请编写相应的应用程序,要求:在系统复位后8位数码管全暗,接着1、2、37分别从数码管的最高位到最低位依次点亮,最后直接进入系统的监控状态,以在最高位出现“-”为标志。,26,【例题】在电路原理图9-5基础上,对其电路结构稍作调整,以便外扩展一个静态128KEPROM数据存储器。利用RC3、RC4、RC5引脚组成一个SPI同步串行方式,通过164移位产生17位寻址功能,实现对HM628128的并行数据传送(RD端口)。 编程要求:首先将256个数据00H-FFH存入EPROM单元0000H-00FFH中,然后再将这些单元中的数据逐个取出,送往数码显示区的最后两位显示数据内容,每个数显示停留1秒种。,27,第7章 定时器计数器,定时器/计数器模块是大部分单片机都内置的一项重要功能,定时器/计数器的正常工作一般表现为计数累计功能,通常是由时钟脉冲来驱动。 定时器/计数器模块一般适用于以下3种不同的应用场合:,28,从单片机I/O引脚上向外部电路输出一系列符合一定时序规范的方波信号。从单片机I/O引脚上,检测外部电路输入的一系列方波信号的脉宽、周期或频率,以便单片机接收外部电路的输入信号或通信信号。单片机对其端口引脚上输入的由外部事件产生的触发信号进行准确地计数,依据计数结果来控制完成相应的动作。,29,单片机配置3个定时器/计数器模块:,CCP:输入捕捉、输出比较和PWM脉冲宽度调制功能 低频时基振荡器 :32768Hz,30,三者的共同点:,它们的核心部分都是一个由时钟信号触发,按递增方式累加工作的循环计数器;从预先设定的某一初始值开始累计,在累计到计数器产生溢出,并且同时会建立一个相应的溢出中断标志。,31,7.2 定时器计数器TMR1,定时器计数器TMR1是一个16位的计数寄存器,带有一个3位的可编程预分频器和一个内置的低功耗低频时基振荡器。,32,TMR1的用途:,TMR1可作通用的定时器和计数器;利用内置的低频时基振荡器,可实现实时 时钟RTC功能TMR1与CCP模块配合使用,可实现输入捕 捉和输出比较功能。,33,定时器/计数器TMR1的特性:,一个16位的由时钟信号上升沿触发的累加计数寄器对TMR1L:TMR1H; TMR1L和TMR1H是在RAM中统一编址的寄存器对,地址为0EH和0FH,可用软件方式读写TMR1寄存器对的内容; 一个可选用的3位可编程预分频器; 累加计数的信号源可选择内部系统时钟、外部触发信号或自带时基振荡器信号;,34,定时器/计数器TMR1的特性:,既可工作于定时器模式又可工作于计数器模式,还可用作实时时钟RTC; 在计数器溢出时,相应的溢出中断标志自动置位,并可产生溢出中断。,35,TMR1模块相关的寄存器,中断控制寄存器 INTCONTMR1控制寄存器T1CON第一外设中断屏蔽寄存器 PIE1 高字节低字节TMR1H:TMR1L,36,TMR1控制寄存器T1CON,37,Bit0TMR1ON:TMR1使能控制位(而TMR0不能被关闭的),主动参数。 0: 关闭TMR1,使TMR1退出活动状态,以节省能耗; 1: 启用TMR1,使TMR1进入活动状态。Bit1TMR1CS:时钟源选择位,主动参数。 0: 选择内部时钟源(fosc/4Tcyc指令周期); 1: 选择外部时钟源,即时钟信号来源于外部引脚或者自带振荡器。,38,Bit2T1SYNC:TMR1外部输入时钟与系统时钟同步控制位,主动参数。 当TMR1工作于计数器方式(TMR1CS1时): 0: TMR1外部输入时钟与系统时钟保持同步; 1: TMR1外部输入时钟与系统时钟不保持同步; 当TMR1工作于定时器方式(TMR1CS0时):该位不起作用。Bit3T1OSCEN:TMR1自带振荡器使能位,主动参数。 0: 禁上TMR1振荡器起振,使非门的输出端呈高阻态; 1: 允许TMR1振荡器起振。,39,分频器的分频比选择位,主动参数。,40,定时器计数器TMR1模块的电路结构,41,TMR1与系统时钟的协调关系,42,7.3 定时器TMR2,TMR2是一个8位定时器,带一个可编程预分频器和一个可编程后分频器,一个可编程8位周期寄存器PR2。,43,主要用途,TMR2是存放计数值的寄存器,只能工作于定时器模式;可以为主同步串行端口MSSP模块(SPI模式),提供波特率时钟;TMR2还可以与CCP模块配合使用,提供脉宽调制PWM功能的时基信号。,44,定时器TMR2的特性,TMR2在RAM空间内统一编址,地址为011H;可用软件方式直接读写TMR2的内容;可编程的2位预分频器,有1:1、1:4、1:16,3种分频比;可编程的4位后分频器,有16种分频比;带有一个8位周期寄存器PR2,这个寄存器的值由用户填入;,45,定时器TMR2的特性,只能由内部系统时钟来触发定时器的增量,因此只工作于定时器模式;具有溢出次数经过分频的溢出中断功能;不管哪种复位,都会将TMR2清零。注意,TMR0和TMR1寄存器的内容不受复位的影响;可以被软件关闭。,46,定时器TMR2模块相关的寄存器,中断控制寄存器 INTCON 第一外设中断屏蔽寄存器 PIE1 第一外设中断标志寄存器 PIR1 TMR2工作寄存器 TMR2 TMR2控制寄存器 T2COM TMR2周期寄存器 PR2,47,控制寄存器T2CON,48,预分频器分频比选择位,主动参数,Bit2TMR20N:TMR2使能控制位,主动参数。 0: 关闭TMR2,可以降低功耗; 1: 启用TMR2。,49,TMR2后分频器分频比选择位,主参,50,定时器TMR2模块的电路结构,51,第10章 CCP捕捉/比较/脉宽调制,配置了2个捕捉比较脉宽调制模块CCP1、CCP2(Capture/Compare/PWM)。它们各自都有独立的16位寄存器CCPR1和CCPR2,两个模块结构、功能、操作方法基本一样,它们的区别仅在于各自有独立的外部引脚,以及各自的特殊事件触发器。它们的功能实现,往往与定时器TMR1、TMR2复合使用。,52,10.1 CCP模块功能介绍,CCP模块可工作在3种模式下: 捕捉方式、比较方式和脉宽调制方式。CCP模块的捕捉功能: 可捕捉外部输入脉冲的上升沿或下降沿,产生相应的中断,适用于测量引脚输入的周期性方波信号的周期、频率、占空比等,也适用于测量引脚输入的非周期性矩形脉冲信号的宽度、到达时刻或消失时刻等参数;,53,比较功能: 用于从引脚上输出不同宽度的矩形正脉冲、负脉冲、延时启动信号等;脉宽调制功能: 适合于从引脚上输出脉冲宽度随时可调的PWM信号来实现直流电机的调速、D/A转换、步进电机的步进控制等。,54,CCP模块与定时器模块的搭配,55,CCP模块寄存器介绍 (CCP1为例),CCP1控制寄存器 :CCP1CON CCP1模块寄存器 :CCPR1H:CCPR1L PIR1、PIE1、TRISC 、 TMR1H :TMR1L,56,CCP1控制寄存器 :CCP1CON,57,Bit3-Bit0/CCP1M3-CCP1M0: CCP1工作方式选择位,主动参数。 00xx:关闭捕捉比较脉宽调制模块 (即CCP1复位); 01xx:捕捉工作方式; 10xx:比较工作方式; 11xx:脉宽调制PWM工作方式。,58,Bit5-Bit4/CCP1X-CCP1Y: PWM工作循环周期的最低2位,数据参数。作为其输出信号脉宽的低2位,高8位在CCPR1L中。 捕捉方式:未用。 比较方式:未用。,59,10.2 捕捉功能,PIC单片机的输入捕捉功能,就是对外部从引脚CCP上输入的脉冲上升沿或下降沿进行捕捉检测。,60,10.2.1 捕捉方式工作原理,61,10.2.2 捕捉方式相关的寄存器,CCP控制寄存器 CCP1CON 专用CCP寄存器 CCP1H:CCP1L外设中断标志寄存器:PIR1 (CCP1IF )外设中断允许寄存器:PIE1 (CCP1IE )TMR1计数寄存器高低字节 TMR1H:TMR1L专用CCP端口定义:TRISC (Bit2 ),62,CCP控制寄存器CCP1CON,Bit3-Bit0/CCP1M3-CCP1M0: 01xx:捕捉工作方式设置,主动参数。 0100:捕捉每个脉冲下降沿; 0101:捕捉每个脉冲上升沿; 0110:捕捉每4个脉冲上降沿; 0111:捕捉每16个脉冲上降沿。,63,10.2.3 CCP1模块捕捉方式的设定,CCP1模块构成输入信号的捕捉功能,需要对相应的控制位进行设置,即所谓CCP1模块捕捉方式的初始化。,64,CCP1引脚的设定,CCP1和RC2合用一个引脚RC2CCP1,在CCP1的捕捉方式下,RC2引脚必须由TRISC的Bit2设定为输入方式。但如该引脚设置为输出方式时,则每次对该端口的写操作都会被作为一次捕捉事件处理。,65,TMR1工作方式的设定,当CCP1工作于捕捉模式时,必须和TMR1搭配。同时TMR1必须设定为定时器工作方式或者同步计数器方式。计数初值一般以开始。 但如TMR1设置为异步计数器方式时,则CCP1不能工作在捕捉模式下。,66,预分频器设定,必须通过CCP1CON的CCP1M3-CCP1M0的设置,选择一种触发事件。 而利用TMR1的预分频比例进行设置。 1:1、1:4、1:16、1:16共三种。,67,中断及响应,每当CCP1捕捉到一事件发生时,将CCP1IF置位,产生一次中断。 在改变CCP捕捉方式时,可能产生一次错误的捕捉中断,所以,在改变捕捉方式之前,必须清除中断使能位CCP1IE来屏蔽CCP1中断请求,并且在捕捉模式改变之后,将中断标志位CCP1IF清零,以防止引起CPU的错误响应。,68,应用实例,检测脉冲的宽度简单频率计的设计,69,10.3比较功能,CCP模块第2个功能是比较方式输出,用于从引脚上输出不同宽度的矩形脉冲信号、不同的周期频率脉冲以及非周期频率信号等,70,10.3.1比较方式工作原理,71,10.3.2 比较方式相关寄存器,CCP控制寄存器 CCP1CON 专用CCP寄存器 CCP1H:CCP1L外设中断标志寄存器:PIR1 (CCP1IF )外设中断允许寄存器:PIE1 (CCP1IE )TMR1计数寄存器高低字节 TMR1H:TMR1L专用CCP端口定义:TRISC (Bit2 ),72,CCP控制寄存器CCP1CON,Bit3-Bit0/CCP1M3-CCP1M0:比较方式下的功能定义。 1000:如果CCPR1与TMR1相等,RC2CCP引脚为高电 平,同时CCP1IF置位; 1001:如果CCPR1与TMR1相等,RC2CCP引脚为低电 平,同时CCP1IF置位; 1010:如果CCPR1与TMR1相等,产生软中断 (CCP1IF置位,CCP1引脚不受影响); 1011:特殊事件触发 (CCP1IF置位,CCP1将TMR1复位,CCP2将TMR1 复位,并且启动A/D模数转换电路)。,73,10.3.3 CCP1比较方式设定,CCP1模块构成输出比较功能,需要对相应的控制位进行设置,即所谓CCP1模块比较工作方式的初始化。,74,CCP引脚设定,在比较工作方式下,用户必须通过把TRISC的bit2位清零,把RC2CCP1引脚设置成输出状态。如果对CCP1CON寄存器清零,将迫使RC2CCP1引脚输出低电平。,75,TMR1方式设定,当CCP1工作在比较方式时,TMR1必须设置在定时方式或同步计数方式下,TMR1初值一般为。而当TMR1工作在异步计数方式下时,CCP1无法工作在比较工作方式。,76,软件中断方式,当选择软件中断方式,即CCP1CON的CCP1M3-CCP1M0为1010时,CCP1引脚上的电平不受影响,只把CCP1IF置位,产生CCP中断(当该中断使能时)。,77,特殊事件触发方式,在特殊事件触发方式下,即CCP1CON的CCP1M3-CCP1M0为1011时,将产生一个内部硬件触发信号,它可以用于启动一个特殊操作。 CCP1的特殊事件触发输出将对TMR1寄存器进行复位,使得CCPR1寄存器可以作为TMR1的16位可编程周期寄存器。 CCP2的特殊事件触发输出也将对TMR1寄存器进行复位,并且启动AD数模转换。CCP1、CCP2模块的特殊事件触发输出不会将中断标志位TMR1IF置位。,78,应用实例,输出脉冲信号改变信号频率,79,10.4 脉宽调制功能,CCP模块第3个功能PWM脉宽调制,它的应用非常广泛,可以从CCP引脚上输出不同占空比宽度的矩形脉冲信号,并可有效改变信号的输出频率。PWM脉宽调制信号,一般用于特殊器件的启动触发脉冲。,80,10.4.1脉宽调制方式工作原理,当CCP1工作在脉宽调制PWM(Pulse Width Modulation)方式下,RC2CCP1引脚上可能输出分辨率高达10位,脉冲宽度随时可调的脉宽调制波形。必须将RC2CCP1引脚设置为输出状态。对CCP1CON寄存器清0将迫使PWM输出引脚RC2CCP1输出低电平,这并非是正常的PWM输出的数据。,81,脉宽调制方式原理图,82,脉宽调制方式原理图,83,PWM输出信号周期,PWM输出信号周期可通过向TMR2的周期寄存器PR2写入来设定,计算公式如下:PWM周期Tosc(PR2)(TMR2预分频值) 其中,Tosc为系统时钟周期;Tosc为指令 周期;TMR2预分频值可以为、4或16。 PWM信号的频率定义为PWM周期的倒数。,84,PWM输出时序图,85,PWM输出信号的脉宽,通过写入脉宽寄存器,即CCPR1L寄存器及CCP1CON控制寄存器的bit5bit4位可以得到PWM的高电平时间设定值,分辨率可达10位。其中,由位的CPPR1L的值作为10位中的高位,由控制寄存器CCP1CON中的Bit5-Bit4两位作为10位中的低位组成。因此,计算PWM高电平(脉宽)的公式如下: PWM高电平(脉宽)CCPR1L:CCP1CON(Bit5-Bit4)Tosc(TMR2预分频值) CCPR1L:CCP1CON(Bit5-Bit4)为10位脉宽寄存器、TMR2预分频值,可取1、4或16。,86,10.4.2 脉宽调制方式相关寄存器,CCP控制寄存器 CCP1CON 专用CCP寄存器 CCP1H:CCP1L外设中断标志寄存器:PIR1 (CCP1IF )外设中断允许寄存器:PIE1 (CCP1IE )计时寄存器:TMR2专用CCP端口定义:TRISC (Bit2 )定时周期寄存器 :PR2TMR2控制寄存器:T2CON,87,CCP控制寄存器CCP1CON,Bit3-Bit0/CCP1M3-CCP1M0:脉宽调制功能设置,主动参数。 11XX:脉宽调制方式,低位不起作用。Bit5-Bit4/CCP1X-CCP1Y:CCP1脉宽寄存器的低位,高位在CCPR1L中,数据参数。,88,PWM操作设置,定PWM周期,向PR2寄存器写入PWM周期值;定PWM高电平(脉宽)值,向CCPR1L和控制寄存器CCP1CON中 的Bit5-Bit4两位写入PWM高电平(脉宽)值;定CCP1引脚为输出状态,通过对TRISC的bit2位清零;设置TMR2的预分频值,并通过向T2CON写入以使TMR2使能;设定CCP模块为PWM操作,向CCP1CON低4位写入设定值。,89,9.3 USART串行通信模块,PIC系列芯片中,片内除了含有同步串行口SSP(SPI,I2C)外,还有一个串行通信接口SCI。这是一个通用同步异步收发器,简称USART,它是计算机最常用的通信接口之一。 USART可工作于如下三种方式:全双工异步方式;半双工同步主控方式;半双工同步从动方式。,90,9.3.1 与USART模块相关的寄存器,1发送状态兼控制寄存器:TXSTA 2接收状态兼控制寄存器:RCSTA 3USART发送缓冲寄存器: TXREG4USART接收缓冲寄存器 :RCREG5PIE寄存器 6PIR寄存器,91,1发送状态兼控制寄存器TXSTA,92,Bit0/TX9D:发送数据的第9位(9位数据帧结构)。 0:不发送9位数据; 1:发送9位数据帧。Bit1/TRMT:发送移位寄存器(TSR)“空”标志位。 0:发送移位寄存器满; 1:发送移位寄存器空。,93,Bit2/BRGH:高波特率选择位。 异步模式下: 0:低速; 1:高速。 同步方式下,未用。 Bit4/SYNC:USART同步/异步模式选择位。 0:选择异步模式(USAT); 1:选择同步模式(USRT)。,94,Bit5/TXEN:发送使能位。 0:关闭发送功能; 1:使能发送功能。Bit6/TX9:发送数据长度选择位。8位数据加1位校验或标识位。 0:8位数据位发送; 1:9位数据发送。,95,Bit7/CSRC:时钟源选择位。 同步模式下: 0:选择被控(从属)模式(时钟来自外部输入 信号); 1:选择主控模式(时钟来自内部波特率发生 器)。 异步模式下,未用。,96,2. 接收状态兼控制寄存器RCSTA,97,Bit0/RX9D:所接收数据的第9位,可作校验 位或标识位等。Bit1/OERR:溢出标志位。 0:未发生溢出错误; 1:发生了溢出错误。Bit2/FERR:帧格式错误标志位,被动参数。 0:无帧格式错误; 1:有帧格式错误。,98,Bit3/ADDEN:地址匹配检测使能位; 接收数据选择9位时,该位才起作用。 0:取消地址匹配检测功能; 1:启用地址匹配检测功能。Bit4/CREN:连续接收使能位。 异步模式下: 0:禁止连续接收功能; 1:使能连续接收功能。 同步模式下: 0:关闭连续接收; 1:使能连续接收,直到该未被清0为止。优于SREN位。,99,Bit5/SREN:单字节接收使能位。 同步方式下: 0:禁止单字节接收功能; 1:使能单字节接收功能。 异步方式下未用,并且在同步从属接收方式下该位也无用。接收完成后该位即被清零。Bit6/RX9:接收数据长度选择位。 0:选择接收8位数据; 1:选择接收9位数据。Bit7/SPEN:串行端口使能位。 0:禁止串行端口工作; 1:允许串行端口工作。此时,RC7和RC6作为USART的接收发送引脚。,100,3TXREG,USART发送缓冲寄存器,每次发送的数据都是通过写入该缓冲器来实现的。,101,4RCREG,USART接收缓冲寄存器,每次接收到的数据都可从该缓冲器读取出来的。,102,5SPBRG波特率寄存器,SPBRG寄存器的设定值(0-255)与波特率成反比关系。在同步方式下,波特率仅由该寄存器来决定;而在异步方式下,则由BRGH位(TXSTA寄存器的bit2)和该寄存器共同确定。,103,9.3.2 USART波特率发生器,USART模块带有一个波特率发生器BRG(baud rate generator),用以产生串行传送所需的时钟,它支持USART的同步方式和异步方式。在异步方式下,BRGH位用来控制波特率。在同步方式下, BRGH位不起作用。,104,波特率发生器的逻辑结构如图9-24。其核心实际是一个递减的位二进制计数器,其计数初始值是由寄存器SPBRG装入,在每次递减计数器到达00H之后的下一个计数脉冲到来时进行装入。系统时钟经过位分频器后作为传递计数器的计数脉冲,其分频比可以由BRGH位和SYNC位设定为:、:16、或:。,105,波特率时钟发生器示意图,106,其波特率计算方式如下:,1同步方式波特率fosc/4(N+1)Nfosc/(4波特率)-注意,N为SPBRG寄存器的初始值;BRGH必须设置为0,BRGH为1无用。 2异步方式 BRGH=0时: 波特率fosc/64(N+1) Nfosc/(64波特率)-BRGH=1时: 波特率fosc/16(N+1) Nfosc/(16波特率)-,107,【例题】在某应用系统中,采用4800波特进行异步通信。假设单片机时钟频率为fosc20MHZ,低速方式(BRGH=0)。,108,9.3.3 USART的异步模式,USART在异步模式下采用的数据格式为l位起始位、8位或9位数据位和1位停止位,无奇偶校验码位(硬件不支持),常用的数据为8位。片内提供的8位波特率发生器BRG,可以利用系统时钟信号产生标准的波特率频率。,109,1、USART异步发送模式,USART发送器主要是由发送移位寄存器(TSR)、发送缓冲器TXREG构成。USART异步发送过程如下:要发送的数据送入TXREG中,寄存器TXREG中的数据就被装入TSR。一旦把TXREG中的数据送入TSR,就将中断标志位TXIF置位。TXIF置位后,不能用软件清除,只有在下一个要发送的数据送入TXREG后TXIF才能复位。,110,USART异步发送其结构示意图,111,2、USART异步接收模式,主要是由接收移位寄存器RSR和接收寄存器RCREG构成,串行信号从RC7RXDT引脚接收,送入移位寄存器RSR。一旦收到停止位,RSR就将收到的8位数据装载到RCREG中。同时,RCIF置1,表示收到一个数据,当RCREG被读出时RCIF被清零。,112,特别注意以下几点:,如RSR将数据装载到RCREG时,RCREG内已有1个数据,则产生数据传送溢出错误。OERR置位。RSR中数据将不能装入RCREG; OERR置位后,RSR不会接收新的数据。只有将OERR清0后才能接收新数据。OERR清零的方法是将CREN清零再置位; 如收到停止位为0,则FERR置位;,113,3、带地址检测的9位异步接收方式,主要由RSR移位寄存器,RCREG寄存器即波特率发生器BRG组成。工作过程如下:从RC7/RX31引脚输入数据,在波特率时钟作用下,一位一位移入RSR寄存器,一旦收到停止位,就将收到的第9位数据分别装入RCREG和RX9D中,并置RCIF=1。再读取RCREG中的数据时,自动将RCIF清零。,114,USART带地址检测位异步接收结构图,115,9.3.4 USART同步模式,USART的同步模式是指进行通信双方之间,除了有数据传输线以外,还有一条时钟专用线。起着同步发送/接收的作用。在同步方式下,数据格式可以使用8位或9位。由于有专用的时钟线同步,所以在串行字符中不再需要起始位和停止位。在同步方式下只能工作在半双工方式下。,116,1、USART同步主控发送模式,USART同步主控发送方式与异步发送方式基本相同,USART发送器的结构示意图如图9-27。发送器的核心是串行发送移位寄存器(TSR)和发送寄存器TXREG。用户将要发送的数据装入TXREG,一旦TSR中空就会从TXREG中读出要发送数据装入TSR。同时,TXIF被置位。一旦TXIF置位后只有当有新的数据写入TXREG后,才能使TXIF清零。当TSR为空时TRMT置位,所以通过TRMT可查询TSR是否为空。,117,2、USART同步主控接收模式,要使用RSART工作在同步主控接收模式时,首先选择同步方式,然后把SREN位或CREN位置位,即可进入同步主控接收状态,DT数据线上的信号在时钟的下降沿被采样。如果SREN1,仅接收一个字节。如果CREN1,则可连续地接收数据,直到CREN被清零为止。如果SREN和CREN都被置位,则CREN状态优先于SREN状态,进行连续接收。,118,3、USART同步从动发送模式,USART的同步从动方式和同步主控方式的区别就是其时钟信号CK由外部提供,也就是由对方提供,因此就是本机在睡眠状态下仍可进行通信。,119,4、USART同步从动接收模式,同步从动接收和同步主控接收的操作基本上是一样的,只是当CPU处于休眠方式下有所区别。另外,在从动接收方式下,没有用到SREN位。,120,第11章 A/D转换器,一般单片机在自动控制、自动测量、自动监控系统与各种被控制、测量对象发生关系时,需设置模拟接口模块。模拟接口的作用是将连续不断的模拟量转换为一系列不连续的、离散的数字量。 这种模拟接口称之为模拟/数字转换器,简称为A/D转换器(ADC)。主要讨论F877单片机内嵌的10位A/D转换器。,121,11.1 A/D转换原理,ADC的种类繁多,工作原理各异,但逐次逼近型ADC是应用较多的类型之一,主要原因为转换速度快、精度高。在F877单片机中集成的就是这种ADC。 逐次逼近型ADC是由采样保持电路、电压比较器、逐次逼近寄存器、数/模转换器DAC和锁存器等部分组成。,122,逐次逼近型ADC结构图,123,逐次逼近寄存器的最高位D7置“1”,如果ua ui,说明逼近寄存器所生成的数字量太大,应将逼近寄存器里的最高位去掉,改置次高位D6为“1”;如果ua ui,说明所生成的数字量还不够大,应保留该位为“1”,此外还需把下一次高位D5置 “1”,依此方法逐位比较下去,直至确定最低位D0是“0”还是“1”。,124,11.2 A/D转换器主要技术指标,A/D转换器有三个主要的技术指标:转换时间(转换速率)、分辨率和转换精度。,125,1转换时间和转换速率,转换时间是A/D完成一次转换所需要的时间,转换时间的倒数即为转换速率。,2分辨率,3转换精度,A/D转换器的转换精度定义为一个实际A/D转换器在量化值上的差值。可用绝对误差或相对误差表示。,A/D转换器的量化精度称为分辨率,习惯上用输出二进制位数或BCD码表示。例如AD574模数转换器,可输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论