中断与定时器(P3口)(2)_第1页
中断与定时器(P3口)(2)_第2页
中断与定时器(P3口)(2)_第3页
中断与定时器(P3口)(2)_第4页
中断与定时器(P3口)(2)_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机的中断系统中断源中断源 中断申请中断申请开放中断开放中断保护现场保护现场中断服务中断服务恢复现场恢复现场中断返回中断返回中断涉及的几个环节手机手机铃声响了 提醒你去接你准备去接电话一开始你正在看我的视频教程在电脑上暂停我的这个视频教程你开始接电话挂断电话 回来继续看我的视频教程AT89S52单片机的中断源及TCON S52 S52系列有系列有6 6个个中断源中断源(比(比S51S51多一个多一个T2T2) 2 2个外部中断请求:个外部中断请求:INT0INT0,INT1INT1 3 3个片内定时器个片内定时器/ /计数器计数器T0T0和和T1T1中断请求:中断请求: TF0TF0,TF1

2、TF1,(TF2TF2) 1 1个串行口中断请求:个串行口中断请求:TI/RITI/RI定时器控制寄存器TCON (88H)TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT1 IE0IE0 IT0IT0TCONTCONTF0/TF1TF0/TF1:定时器定时器0/0/定时器定时器1 1溢出中断申请标志位:溢出中断申请标志位: =0=0:定时器未溢出;:定时器未溢出; =1=1:定时器溢出申请中断,进中断后自动清零。定时器溢出申请中断,进中断后自动清零。TR0/TR1TR0/TR1:定时器运行启停控制位:定时器运行启停控制位: =0=0:定时器停止运行;:定时器停

3、止运行; =1=1:定时器启动运行。定时器启动运行。TCONTCON:TimerTimer控制寄存器控制寄存器,是管理定时器工作的,是管理定时器工作的SFRSFR(其中低(其中低4 4位管外部中断)位管外部中断)定时器控制寄存器TCON (88H)TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT1 IE0IE0 IT0IT0TCONTCONIE0/IE1IE0/IE1:外部中断申请标志位:外部中断申请标志位: =0=0:没有外部中断申请;:没有外部中断申请; =1=1:有外部中断申请。有外部中断申请。IT0/IT1IT0/IT1:外部中断请求的触发方式选择位:外

4、部中断请求的触发方式选择位: =0=0:在:在INT0/INT1INT0/INT1端申请中断的信号端申请中断的信号低电平低电平触发触发; ; =1 =1:在在INT0/INT1INT0/INT1端申请中断的信号端申请中断的信号负跳变负跳变触发触发. .TCONTCON:TimerTimer控制寄存器控制寄存器,低低4 4位管理外部中断位管理外部中断在在CPUCPU已经开放了外部中断允许的前提下:已经开放了外部中断允许的前提下:在在INT0INT0/ /INT1INT1引脚输入一个引脚输入一个负脉冲负脉冲或或低电平低电平, TCONTCON寄存器中的寄存器中的IE0/IE1IE0/IE1标志位自

5、动变标志位自动变“1”1”,检测到检测到IE0/IE1IE0/IE1变变“1”1”后后, ,将产生指令:将产生指令:执行中断服务程序执行中断服务程序, ,并将并将IE0/IE1IE0/IE1标志位自动清标志位自动清“0”,0”,以备下次申请以备下次申请。外部中断(INT0,INT1)申请过程TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT1 IE0 IE0 IT0IT0TCONTCON EAEA ET2 ES ET1 EX1 ET0 EX0 ET2 ES ET1 EX1 ET0 EX0IEIE中断允许寄存器中断允许寄存器IE IE (0A8H)(0A8H) EX

6、0/EX1/ET1/ET0/ES EX0/EX1/ET1/ET0/ES 位位: 分别是分别是INT0/1INT0/1,Timer0/1Timer0/1,串行口,串行口的中断允的中断允 许控制位许控制位: : =0 =0 时禁止中断;时禁止中断; =1=1 时时允许允许中断。中断。ET2ET2:T2T2中断允许控制位(仅中断允许控制位(仅5252系列系列有)有) =0 =0 时禁止中断;时禁止中断; =1=1 时时允许允许中断。中断。EAEA:总的中断允许控制位(总开关):总的中断允许控制位(总开关): =0 =0 时禁止全部中断;时禁止全部中断;=1=1 时时允许允许中断。中断。中断系统硬件结

7、构注注: :各中断允许控制位各中断允许控制位=0,=0,开关断开开关断开; =1,=1,开关接通开关接通IE0IE0EX0EX0TF0TF0IE1IE1TF1TF1TITIESESET1ET1EX1EX1ET0ET0外部中断外部中断 请求请求0 0外部中断外部中断 请求请求1 1内部内部 定时器定时器0 0内部内部 定时器定时器1 1内部内部 串行口串行口T TR RRIRIIEIE寄存器寄存器 EA EA位位IPIP寄存器寄存器各单路开关各单路开关 总开关总开关中断源标志中断源标志位查询机构位查询机构高中断级高中断级中断请求中断请求低中断级低中断级中断请求中断请求中断入口中断入口中断源中断源

8、标志位标志位INT0INT0INT1INT1中断入口中断入口中断源中断源标志位标志位 PT2 PS PT1PT2 PS PT1 PX1 PX1 PT0 PX0PT0 PX0IPIPPX0/PX1PX0/PX1:INTINT0/10/1优先级控制位:优先级控制位: =0=0 时属时属低低优先级;优先级; =1=1 时属时属高高优先级。优先级。PT0/PT1/PT2PT0/PT1/PT2:T0/1/2T0/1/2中断优先级控制位:中断优先级控制位: =0=0 时属低优先级;时属低优先级; =1=1 时属时属高高优先级。优先级。PS1PS1:串行口中断优先级控制位:串行口中断优先级控制位: =0=0

9、 时属时属低低优先级;优先级; =1=1 时属时属高高优先级。优先级。中断优先级控制寄存器中断优先级控制寄存器IP IP (0B8H)(0B8H)【例】PX1=1;外中断INT1被设置成高优先级PT0=0;定时器T0被设置成低优先级总线方式IP=0 x04;/IP=0000 0100 将PX1设为1 PT0设为0;对对同时发生同时发生多个中断申请时:多个中断申请时:不同优先级的中断同时申请不同优先级的中断同时申请( (很难遇到很难遇到) ) 先高后低先高后低相同优先级的中断同时申请相同优先级的中断同时申请( (很难遇到很难遇到) ) 按序执行按序执行正处理低优先级中断又接到高级别中断正处理低优

10、先级中断又接到高级别中断 高打断低高打断低正处理高优先级中断又接到低级别中断正处理高优先级中断又接到低级别中断 高不理低高不理低中断优先级处理原则单片机的中断矢量与优先级中断矢量中断矢量: 单片机的单片机的 6 6 个中断源分别对应有各个中断源分别对应有各自的自的中断服务程序入口地址中断服务程序入口地址中断矢量中断矢量000BH000BHTF0TF0定时定时/ /计数器计数器0(T0)0(T0)002BH002BHTF2TF2定时定时/ /计数器计数器2(T2)2(T2)0023H0023HRI/TIRI/TI串行口接收串行口接收/ /发送发送001BH001BHTF1TF1定时定时/ /计数

11、器计数器1(T1)1(T1)0013H0013HIE1IE1外部中断外部中断1( INT1)1( INT1)0003H0003HIE0IE0外部中断外部中断0( INT0)0( INT0)中断优先级中断优先级中断矢量中断矢量申请标志申请标志中中 断断 源源最高优先级最高优先级最低优先级最低优先级5interrupt m 修饰符修饰符 interrupt m C51中断函数必须通过它进行修饰。在中断函数必须通过它进行修饰。在C51程序设计中,当函数定义时用了程序设计中,当函数定义时用了interrupt m修饰符,修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头系统编译时把对应函数转化

12、为中断函数,自动加上程序头段和尾段,并按段和尾段,并按51系统中断的处理方式自动把它安排在程系统中断的处理方式自动把它安排在程序存储器中的相应位置。序存储器中的相应位置。 在该修饰符中,在该修饰符中,m的取值为的取值为031,对应的中断情况如下:,对应的中断情况如下:0外部中断外部中断01定时定时/计数器计数器T02外部中断外部中断13定时定时/计数器计数器T14串行口中断串行口中断5定时定时/计数器计数器T2其它值预留。其它值预留。C51编译器从绝对地址编译器从绝对地址8m+3处产生一个中断向量,其中处产生一个中断向量,其中m为中断号,也即为中断号,也即interrupt后面的数字。该向量包

13、含一后面的数字。该向量包含一个到中断函数入口地址的绝对跳转。个到中断函数入口地址的绝对跳转。【例】编写一个用于统计外中断【例】编写一个用于统计外中断0的中断次数的中的中断次数的中断服务程序断服务程序int x;void int0() interrupt 0 using 1 x+;using n修饰符修饰符 修饰符修饰符using n用于指定本函数内部使用的工作寄存用于指定本函数内部使用的工作寄存器组,其中器组,其中n的取值为的取值为03,表示寄存器组号。,表示寄存器组号。可以省略可以省略 省略后系统自动选择省略后系统自动选择中断函数注意如下:中断函数注意如下:(1)中断函数不能进行参数传递,如

14、果中断函数中包中断函数不能进行参数传递,如果中断函数中包含任何参数声明都将导致编译出错。含任何参数声明都将导致编译出错。(2)中断函数没有返回值,如果企图定义一个返回值中断函数没有返回值,如果企图定义一个返回值将得不到正确的结果,建议在定义中断函数时将其定义将得不到正确的结果,建议在定义中断函数时将其定义为为void类型,以明确说明没有返回值。类型,以明确说明没有返回值。单片机的定时/计数器这是逻辑图,可以看到这是逻辑图,可以看到T1是一个单刀双掷开关,说明定一个定时是一个单刀双掷开关,说明定一个定时/计数器计数器同一时刻要么作定时用,要么作计数用,不能同时用;同一时刻要么作定时用,要么作计数

15、用,不能同时用;接通接通T1引脚时作为外部计数用。(引脚时作为外部计数用。(T0的引脚是的引脚是P3.4,T1的引脚是的引脚是P3.5)。)。溢出的概念和设置任意定时计数的方法溢出的概念和设置任意定时计数的方法3 3个个1616位位定时器定时器/ /计数器计数器 ( (5151系列有系列有2 2个个1616位位TimerTimer少一个少一个T2)T2)定时器定时器: :对片内机器时钟对片内机器时钟( (周期方波周期方波) )进行计数进行计数计数器计数器: :对对TxTx引脚输入的负脉冲进行计数引脚输入的负脉冲进行计数与与TimerTimer工作有关的工作有关的特殊功能寄存器:特殊功能寄存器:

16、 TCON TCON 和和 TMODTMODAT89S52单片机的定时器单片机的定时器/计数器计数器定时器的2个特殊功能寄存器(TCON)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0定时器定时器控制控制寄存器寄存器TCON TCON (88H)(88H)TF0/TF1TF0/TF1: : 定时器定时器0/10/1计数溢出标志位。计数溢出标志位。 =1 =1 计数溢出;计数溢出; =0 =0 计数未满计数未满 TF0/TF1TF0/TF1标志位标志位可用于可用于申请中断申请中断或或供供CPUCPU查询查询。 在进入中断服务程序时会自动清零;但在在进入中断服务程序时会自动清零;但

17、在 查询方式时必须软件清零。查询方式时必须软件清零。TR0/TR1TR0/TR1: : 定时器定时器0/10/1运行控制位。运行控制位。 =1 =1 启动计数;启动计数; =0 =0 停止计数停止计数TR0/TR1TR0/TR1:定时器:定时器0/10/1运行控制位运行控制位: TR0/TR1 =0 TR0/TR1 =0 时,时,Timer0/1Timer0/1停止计数停止计数 TR0/TR1 =1 TR0/TR1 =1 时,时,Timer0/1Timer0/1启动计数启动计数定时器T0/T1 中断申请过程 在已经开放在已经开放T0/T1T0/T1中断允许且已被启动的前提下:中断允许且已被启动

18、的前提下: T0/T1T0/T1加满溢出加满溢出时时 TF0/TF1TF0/TF1标志位自动置标志位自动置“1”1” 检测到检测到TCONTCON中中TF0/TF1TF0/TF1变变“1”1”后后, ,将产生指令:将产生指令: 执行中断服务程序执行中断服务程序, , TF0/TF1TF0/TF1标志位会自动清标志位会自动清“0”,0”,以备下次中断申请。以备下次中断申请。 定时定时/ /计数器可按片内计数器可按片内机器周期机器周期定时,也可对由定时,也可对由T0/T1T0/T1引脚输入一个引脚输入一个负脉冲负脉冲进行加法计数进行加法计数TF1 TF1 TR1TR1 TF0 TF0 TR0TR0

19、 IE1 IT1 IE0 IT0IE1 IT1 IE0 IT0TCON TCON (88H)(88H)GATE C / T M1 M0 GATE C / T M1 M0定时器定时器方式方式寄存器寄存器TMOD TMOD (89H)(89H)T1T1T0T0M1,M0M1,M0:工作方式定义位工作方式定义位 ( ( 定义定义4 4 种方式种方式 ):):C/T C/T :计数器计数器/ /定时器选择位定时器选择位 = 1 = 1 外部事件外部事件计数器计数器。对。对T0/T1T0/T1引脚的引脚的负脉冲负脉冲计数;计数; = 0 = 0 片内时钟片内时钟定时器定时器。对。对机器周期脉冲机器周期脉

20、冲计数定时计数定时0 00 0:1313位位 定时器定时器几乎不用几乎不用0 10 1:1616位位 定时器定时器经常用到经常用到1 01 0:可自动重装的:可自动重装的 8 8位位 定时器定时器经常用到经常用到1 11 1:T0 T0 分为分为2 2个个8 8位位 TimerTimer;T1 T1 此时不工作此时不工作 几乎不用几乎不用GATE C / T M1 M0 GATE C / T M1 M0T1T0GATEGATE门控位门控位: : TimerTimer可由软件与硬件两者控制可由软件与硬件两者控制 GATE = 0 GATE = 0 普通用法普通用法 TimerTimer的的启启/

21、 /停停由由软件软件对对TRxTRx位写位写“1”/“0”1”/“0”控制控制定时器定时器方式方式寄存器寄存器TMODTMOD(89H)(89H) GATE = 1 GATE = 1 门控用法门控用法 TimerTimer的的启启/ /停停由由软件软件对对TR0/TR1TR0/TR1位写位写“1”/“0”1”/“0” 和和在在INT0/INT1INT0/INT1引脚引脚上出现的信号的上出现的信号的高高/ /低低共共同控制同控制振荡器振荡器 12TLx THx (8位位) (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &

22、;C/T=0C/T=1控制控制 开开关关或门或门与门与门非门非门定时器结构与工作方式工作方式工作方式1 1:1616位的定时位的定时/ /计数器计数器振荡器振荡器 12 TLx THx (8位位) (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1开开关接通关接通或门或门与门与门在工作方式1下,计数器的计数值范围是: 165536(216) 当为定时工作方式1时,定时时间的计算公式为: (216计数初值)晶振周期12或 (216计数初值)机器周期 其时间单位与晶振周期或机器周期相同。

23、THx/TLxTHx/TLx赋初值赋初值:THxTHx赋高赋高8 8位,位,TLxTLx赋低赋低8 8位位工作方式工作方式1 1 的编程要点的编程要点: TMODTMOD选方式选方式: 写写“M1,M0”=01M1,M0”=01 选方式选方式1 1 若不用门控位若不用门控位, ,直接用软件写直接用软件写TRxTRx控制启控制启/ /停停 若使用门控位,先置位若使用门控位,先置位TRxTRx,然后由,然后由INTxINTx端端 的的高高/ /低电平低电平来控制其启来控制其启/ /停停 若要允许若要允许中断中断,还须先置位,还须先置位ETxETx、EAEA等中断等中断 允许控制位,并编写允许控制位

24、,并编写中断服务中断服务程序程序 若不用中断,可若不用中断,可查询查询“计数溢出标志计数溢出标志TFxTFx” 的方式工作,但溢出标志的方式工作,但溢出标志TFxTFx须软件清须软件清0 0工作方式工作方式2 2:8 8 位自动重装的定时位自动重装的定时/ /计数器计数器振荡器振荡器 12TLx (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门THx (8位位)溢溢出出位位门开门开 THx/TLxTHx/TLx赋相同初值赋相同初值 在在TLxTLx计数

25、达到计数达到0FF0FFH H 再加再加“1”1”时,时,TL0TL0 将溢出将溢出, ,进位位进位位直接进入直接进入“TFxTFx”去申请去申请 中断中断, ,同时同时打开三态门打开三态门,使,使THxTHx中的值中的值 自动自动重装重装(Copy)(Copy)进进TLxTLx工作方式工作方式 2 2 的编程:的编程: TMODTMOD寄存器选方式:寄存器选方式: 写写“M1M1,M0” = M0” = 1010选中方式选中方式2 2 其他用法与各种方式其他用法与各种方式1 1完全相同完全相同T0T0: 组织成组织成TL0TL0和和TH0TH0两个两个8 8位定时位定时/ /计数器计数器Ti

26、merTimer工作方式工作方式 3 3 几乎无用几乎无用T1T1: 不再是不再是定时定时/ /计数器了计数器了 T1T1 的的TR1TR1和和TF1TF1出借给出借给TH0TH0当控制位使用当控制位使用, , 剩下的剩下的TH1/TL1TH1/TL1寄存器只能当作普通寄存寄存器只能当作普通寄存 器用。器用。振荡器振荡器 12TL0 (8位位)TF0申请申请中断中断T0T0端端TR0TR0位位GATEGATE位位INT0INT0端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门TH0 (8位位)TF1申请申请中断中断TR1TR1位位控制控制 =1T

27、imerTimer工作方式工作方式 3 3 结构:结构:T0T0成为双成为双 8 8位位Timer Timer T1T1不再有不再有TimerTimer功能功能 TF1TF1,TR1TR1出借给出借给TH0TH0 定时器小结:定时器小结: (2 2个个1616位加法计数器)位加法计数器)运行运行/ /停止停止由由TRxTRx位控制,位控制,( (当当GATE=1GATE=1时:时: 由由TRxTRx位和位和TxTx引脚上的信号共同控制引脚上的信号共同控制) )工作方式工作方式由由TMODTMOD决定决定; ; 计数计数/ /定时定时由由C/TC/T位决定位决定 工作方式工作方式0 0(1313

28、位)位) 永远不用永远不用 工作方式工作方式3 3(T0T0拆为双拆为双8 8位)位) 几乎无用几乎无用 工作方式工作方式1 1(1616位)位) 经常用到经常用到 工作方式工作方式2 2(8 8位自动重装)位自动重装) 经常用到经常用到从初值按机器周期或外部脉冲递加,溢出位从初值按机器周期或外部脉冲递加,溢出位 TFxTFx申请中断申请中断;中断允许中断允许由由ETxETx位和位和EAEA位控制,位控制,串行口与串行通信串行通信的基本特征是串行通信的基本特征是数据数据逐位顺序逐位顺序进行传送进行传送串行通信的格式及约定(如:同步方式、通讯速串行通信的格式及约定(如:同步方式、通讯速率、数据块

29、格式、信号电平率、数据块格式、信号电平等)不同,形成等)不同,形成了多种串行通信的协议与接口标准。了多种串行通信的协议与接口标准。常见的有:常见的有:通用异步收发器通用异步收发器(UART)(UART)本课程介绍的串口本课程介绍的串口通用串行总线(通用串行总线(USBUSB)I2CI2C总线总线CANCAN总线总线SPISPI总线总线RS-232CRS-232C, RS-485, RS422ARS422A标准标准等等等等全双工串行接口全双工串行接口(UART)(UART)数据通信的数据通信的几个术语:几个术语: 并行并行:数据各位:数据各位同时同时进行传送进行传送 串行串行:数据:数据逐位顺序

30、逐位顺序进行传送进行传送全双工全双工:(:(串行通信串行通信) )收收/ /发发可同时可同时进行进行 半双工半双工:(:(串行通信串行通信) )收收/ /发发不可不可同时进行同时进行异步串行通信异步串行通信: :以以字符字符为单位进行传送为单位进行传送 同步串行通信同步串行通信: :以以数据块数据块为单位进行传送为单位进行传送 波特率波特率(bps.)(bps.): :单位时间传送的位数单位时间传送的位数51单片机的串行接口SBUF(发)(发)SBUF(收)(收)发送控制器发送控制器 TI接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率发发生生器器T1 1A累累加加器器(门门)移位寄

31、存器移位寄存器RxDTxD去申请中断去申请中断引脚引脚引脚引脚CPU内部内部 SM0 SM1 SM2 REN TB8 RB8 TI RISCONSCON SM0SM0,SM1SM1:串行口串行口4 4种工作方式的选择位。种工作方式的选择位。 0 0 0 0 方式方式0 0:8 8位移位寄存器位移位寄存器I/O,I/O,波特率波特率固定固定为为 f foscosc/12/12 0 1 0 1 方式方式1 1:8 8位位UARTUART(1 1+8+8+1 1位)位), 波特率波特率可变可变, ,按公式计算按公式计算 1 0 1 0 方式方式2 2:9 9位位UARTUART(1 1+8+1+8+

32、1+1 1位)位), 波特率波特率固定固定= =f fosc osc x1/32x1/32或或1/641/64 1 1 1 1 方式方式3 3:9 9位位UARTUART(1 1+8+1+8+1+1 1位)位), 波特率波特率可变可变,按公式计算,按公式计算 SM2SM2:串行口串行口多机通信多机通信控制位控制位 (作为方式(作为方式2 2、方式、方式3 3的的附加控制位附加控制位)串行口控制寄存器SCON(98H) RI,TIRI,TI:串行口收串行口收/ /发数据申请中断标志位发数据申请中断标志位 1 1 申请中断;申请中断; 0 0 不申请中断不申请中断 TB8TB8:方式方式2 2、3

33、 3中,是要发送的第中,是要发送的第9 9位数据。位数据。 多机通信中多机通信中,TB8=0 ,TB8=0 表示发送的是数据;表示发送的是数据; TB8=1 TB8=1 表示发送的是地址。(奇偶校验)表示发送的是地址。(奇偶校验) RB8RB8:在方式在方式2 2、3 3中,是收到的第中,是收到的第9 9位数据。位数据。 在多机通信中在多机通信中, ,用作区别地址帧用作区别地址帧/ /数据帧的数据帧的 标志。(奇偶校验)标志。(奇偶校验) SM0 SM1 SM2 REN TB8 RB8 TI R1 RENREN:串行口接收允许控制位串行口接收允许控制位 = 1 = 1 表示允许接收;表示允许接

34、收; = 0 = 0 禁止接收。禁止接收。SCONSCONSMOD GF1 GF0 PD 1DL电源控制寄存器 PCONPCON(97H97H)特殊功能寄存器特殊功能寄存器PCONPCON不能按位寻址不能按位寻址 SMODSMOD:在串行口工作方式在串行口工作方式 1 1、2 2、3 3 中,中, 是是波特率加倍位波特率加倍位 =1 =1 时,波特率加倍时,波特率加倍 =0 =0 时,波特率不加倍。时,波特率不加倍。 ( (在在PCONPCON中只有这一个位与串口有关中只有这一个位与串口有关) ) PCONPCON串行口工作方式 0工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI

35、/O方式方式发送:发送:SBUFSBUF中的串行中的串行数据数据由由RxDRxD逐位移出;逐位移出; TxDTxD输出输出移位时钟移位时钟,频率,频率=fosc1/12=fosc1/12; 每送出每送出8 8位数据位数据 TITI就自动置就自动置1 1; 需要用需要用软件清零软件清零 TITI。 接收:串行接收:串行数据数据由由RxDRxD逐位移入逐位移入SBUFSBUF中;中; TxDTxD输出输出移位时钟移位时钟,频率,频率=fosc1/12=fosc1/12; 每接收每接收 8 8位数据位数据RIRI就自动置就自动置1 1; 需要用需要用软件清零软件清零 RIRI。经常配合经常配合“串入

36、并出串入并出”“”“并入串出并入串出”移位移位 寄存器一起使用扩展接口寄存器一起使用扩展接口 74HC164 74HC16574HC164 74HC165等等我们开发板不涉及这方面我们开发板不涉及这方面 所以不做讲解所以不做讲解工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI/O方式方式常用于串行通讯。除发常用于串行通讯。除发/ /收收8 8位数据外,还位数据外,还 在在D0D0位前有一个位前有一个起始位起始位“0”0”; 在在D7D7位后有一个位后有一个停止位停止位“1”1”。方式方式1 1工作时:工作时: 发送端发送端自动添加自动添加一个起始位和一个停止位;一个起始位和一个停

37、止位; 接收端接收端自动去掉自动去掉一个起始位和一个停止位。一个起始位和一个停止位。工作方式工作方式1 1: :8 8位位UARTUART( (1 1+8+8+1 1位位) )波特率波特率可变可变 波特率可变波特率可变 用定时器用定时器T1T1作波特率发生器:作波特率发生器: 公式:公式:波特率波特率 = =(2 2SMODSMOD/32/32) T1T1的溢出率的溢出率波特率波特率= =(2(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的频繁程度溢出的频繁程度 即:即:T1T1溢出一次所需时间的倒数。溢出一次所需时间的倒数。 初值初值 X = 2

38、 2n n - - 2 2SMODSMOD fosc fosc3232 波特率波特率 1212 波特率波特率 = =2 2SMODSMOD fosc fosc3232 12(2 12(2n n - - X X) )其中:其中:X X 是定时器初值是定时器初值 初值初值 X = 2 2n n - - 2 2SMODSMOD fosc fosc32 32 波特率波特率 1212 用用T1T1工作于工作于方式方式2 2来产生波特率来产生波特率12001200, 已知晶振频率已知晶振频率= =6MHz6MHz。要求出。要求出T1T1的的初值初值:初值初值 X = 2 28 8 - - 2 20 0 6

39、 6 10106 63232 1200 1200 1212= 256 - - = 256 - - 13.026 6 10106 6460800460800 243 = 0F3H 结果后面要用到结果后面要用到 常用波特率和常用波特率和T1T1初值查表初值查表RxDRxD引脚为引脚为接收端接收端,TxDTxD引脚为引脚为发送发送端端, ,由波特率由波特率 发生器发生器T1T1控制发送速度控制发送速度, ,不同于方式不同于方式0 0:收:收/ /发都发都 需要由需要由TxDTxD送出移位时钟送出移位时钟。 T1T1作波特率发生器时作波特率发生器时初始化包括初始化包括: : 选选定时器定时器工作方式工

40、作方式2 2(TMOD(TMOD选选8 8位自动重装位自动重装);); 将计算出的将计算出的初值初值X X赋给赋给TH1,TL1TH1,TL1; ; 启动启动T1T1 ( (TR1=1TR1=1);); 注意!注意!对对T1T1不要开中断不要开中断 !工作方式工作方式1 1的接收的接收/ /发送发送串行口的初始化包括串行口的初始化包括: : 对对SCONSCON选工作方式选工作方式 对对PCONPCON设波特率加倍位设波特率加倍位“SMODSMOD”(”(缺省值缺省值=0)=0) 如果是接收数据如果是接收数据, ,仍要先置仍要先置“1”1”RENREN位位 SM0 SM1 SM2 REN TB

41、8 RB8 TI R1SCONSCON SM0SM0,SM1SM1:串行口工作方式选择位。串行口工作方式选择位。 0 1 0 1 :方式:方式1 1,8 8位位UARTUART(1 1+8+8+1 1位)位) RENREN:串行口串行口接收允许接收允许位。位。 REN=1 REN=1 允许接收允许接收串行口控制寄存器串行口控制寄存器SCONSCON 0 1 0 1 0 0 0 0 TB8TB8,RB8RB8,TITI,RIRI等位由运行中间的情况等位由运行中间的情况 决定,可先写成决定,可先写成 “ “0”0” SM2SM2:串行口串行口多机通信多机通信控制位控制位, ,作为方式作为方式2 2

42、、3 3 的的附加控制位附加控制位,此处不用,可写成,此处不用,可写成“0”0”由于波特率固定由于波特率固定, ,常用于常用于单片机间单片机间通讯。通讯。 数据由数据由8+8+1 1位组成,通常附加的一位位组成,通常附加的一位 (TB8/RB8)(TB8/RB8)用于用于“奇偶校验奇偶校验”。 工作方式工作方式2 2: : 9 9位位UARTUART( (1 1+8+1+8+1+1 1位位) )两种两种波特率波特率 方式方式2 2的波特率的波特率 = fosc = fosc 2 2SMODSMOD/64/64 即即: : f fosc osc 1/32 1/32 或或 f fosc osc 1/64 1/64 两种两种奇偶校验奇偶校验是检验串行通信双方传输的数据正确是检验串行通信双方传输的数据正确与否的与否的一个措施一个措施,并不能保证通信数据的传输一并不能保证通信数据的传输一定正确定正确。 换言之:

温馨提示

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

评论

0/150

提交评论