第五章中断定时串口

上传人:人*** 文档编号:569237682 上传时间:2024-07-28 格式:PPT 页数:47 大小:923.50KB
返回 下载 相关 举报
第五章中断定时串口_第1页
第1页 / 共47页
第五章中断定时串口_第2页
第2页 / 共47页
第五章中断定时串口_第3页
第3页 / 共47页
第五章中断定时串口_第4页
第4页 / 共47页
第五章中断定时串口_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《第五章中断定时串口》由会员分享,可在线阅读,更多相关《第五章中断定时串口(47页珍藏版)》请在金锄头文库上搜索。

1、第第5章中断系统、章中断系统、 定时器定时器/计数器与串行口计数器与串行口5.1 MCS-51单片机中断系统单片机中断系统 中断中断是指计算机暂时停止原程序执行转而为外部设备是指计算机暂时停止原程序执行转而为外部设备服务服务(执行中断服务程序执行中断服务程序), 并在服务完后自动返回原程序并在服务完后自动返回原程序执行的过程。执行的过程。5.1.1 中断系统结构及中断控制中断系统结构及中断控制 89C51单片机有单片机有5个中断源个中断源(89C52有有6个),可实现个),可实现二级中断服务程序嵌套二级中断服务程序嵌套。旷忘它哉驭浅套器队惕沈卤静馅斟迈匈掌多况卯贫丁丸舍馁苹挂林刃芳炔第五章中断

2、定时串口第五章中断定时串口图5-1 中断系统结构示意图肉楷莎瓮峨晃嫉奥粒锥格家咳重掺坛呐商熔赐榨陵版沟坪舶寂足框偷副篮第五章中断定时串口第五章中断定时串口1. 中断源中断源中断源中断源中断标志中断标志中断入口地址中断入口地址外部中断/INT0(P3.2)IE00003H/INT1(P3.3)IE10013H定时中断T0TF0000BHT1TF1001BH串行中断发送中断TI0023H接受中断RI波嘱怯皖友及涝能峰彪颜迎荔崇吁虹杀眺尉散诺宏岔斤姜蓖钝裂佛匿漫筑第五章中断定时串口第五章中断定时串口2. 2. 中断控制中断控制定时器控制寄存器定时器控制寄存器TCON、 串行口控制寄存器串行口控制寄存

3、器SCON、 中中断允许寄存器断允许寄存器IE和中断优先级寄存器和中断优先级寄存器IP(1) 定时器控制寄存器定时器控制寄存器(TCON)TCON(88H)D7 D6 D5 D4 D3 D2 D1 D0 赫哦沿音础黑猾藏殴块与恰统枉婿朴汉判滑卒巩井绢辅削烦潜刺忠幂寅巢第五章中断定时串口第五章中断定时串口(2) 串行口控制寄存器(串行口控制寄存器(SCON)98HTITI串行口发送中断请求标志位。当发送完一帧串行数据后,串行口发送中断请求标志位。当发送完一帧串行数据后, 由由 硬件置硬件置1 1; 在转向中断服务程序后,在转向中断服务程序后, 用用软件清软件清0 0。RIRI串行口接收中断请求标

4、志位。当接收完一帧串行数据后,串行口接收中断请求标志位。当接收完一帧串行数据后, 由由硬件置硬件置; 在转向中断服务程序后,在转向中断服务程序后, 用用软件清软件清0 0。铃舰窃记狠沛浪慎诌掉湍诈锭喷陕约膊誊贸梅汝怔赡毙又什胁娄细倚罢析第五章中断定时串口第五章中断定时串口(3) 中断允许控制寄存器(中断允许控制寄存器(IE)0A8H透史廷灵鄂基窿灵堡咬算皿梯逊浸功埃钙天悟吊宾匝入溪曼蒜福戊莫恫帘第五章中断定时串口第五章中断定时串口(5) 中断优先级控制中断优先级控制 A. 中断优先级控制寄存器(中断优先级控制寄存器(IP)0B8H识杖膝捕骸贞酥殖宝炼墓揪胁撒晦他埋贯谴扮备锑问酱丫倡痛是臆蓉怜遮

5、第五章中断定时串口第五章中断定时串口B.中断查询顺序中断查询顺序 当同时接收到几个同一优先级的中断请求时,当同时接收到几个同一优先级的中断请求时, 响应响应哪个中断源则取决于内部硬件查询顺序。哪个中断源则取决于内部硬件查询顺序。 中断源中断源 同级自然优先级同级自然优先级 INT0 最高最高 T0 INT1 T1 串行口串行口 最低最低C. C. 中断嵌套(中断嵌套(2 2个中断优先级个中断优先级) 由由IP设定高、低两级优先级设定高、低两级优先级原则:原则:允许高中断低,禁止低中断高和同级中断允许高中断低,禁止低中断高和同级中断键硷交阮测泛柒琶讶滁亲腹割漾乔剪缉倦葱诱烁菠澳爷撤廷阐辨围尚锣馆

6、第五章中断定时串口第五章中断定时串口5.1.2 中断响应及中断处理过程中断响应及中断处理过程 89C51单片机中断过程分为单片机中断过程分为中断采样中断采样、 中断查询中断查询、 中中断响应断响应、 中断处理中断处理和和中断返回中断返回等几个阶段。等几个阶段。1.中断采样(外部中断采样)中断采样(外部中断采样) 在每个机器周期的在每个机器周期的S5P2时刻对芯片引脚时刻对芯片引脚INT0(P3.2)和和INT1(P3.3)进行采样。)进行采样。(1)电平触发方式)电平触发方式 中断标志直接反映外部中断引脚的状态,无记忆功能,中断标志直接反映外部中断引脚的状态,无记忆功能,低电平时间至少需保持一

7、个机器周期,低电平时间至少需保持一个机器周期, 才能保证中断请求才能保证中断请求能被采样到。能被采样到。(2)负跳变触发方式)负跳变触发方式 在两个相邻机器周期采样到的是在两个相邻机器周期采样到的是先高电平后低电平先高电平后低电平, 则中断请求有效,则中断请求有效, 由硬件将由硬件将IE0或或IE1置置1,具有记忆功能,具有记忆功能,负脉冲的宽度也应至少为一个机器周期。负脉冲的宽度也应至少为一个机器周期。拷滞界估乓焕挪诡诌伊示新槽宝幽储叭抒僚欣着略蒜钢徐抨恤支觅冷坛炉第五章中断定时串口第五章中断定时串口2.中断查询中断查询 由由CPU测试测试TCON和和SCON中各标志位的状态,中断查询在指令

8、中各标志位的状态,中断查询在指令执行的每个机器周期中不停地重复进行。执行的每个机器周期中不停地重复进行。3.中断响应中断响应(1)产生硬件调用,将断点地址压入堆栈。)产生硬件调用,将断点地址压入堆栈。(2)中断封锁)中断封锁 A、CPU正处在为一个同级或高级的中断服务中。正处在为一个同级或高级的中断服务中。因为当一个中因为当一个中断被响应时,断被响应时, 要把对应的优先级触发器置位,要把对应的优先级触发器置位, 封锁了低级和同级中封锁了低级和同级中断。断。 B、查询中断请求的机器周期不是当前指令的最后一个机器周期。查询中断请求的机器周期不是当前指令的最后一个机器周期。目的在于确保当前指令的完整

9、执行。目的在于确保当前指令的完整执行。 C、当前指令是返回指令(当前指令是返回指令(RET, RETI)或访问)或访问IE、 IP的指令。的指令。在执行完这些指令之后,在执行完这些指令之后, 还应再继续执行一条指令,还应再继续执行一条指令, 然后才能响应然后才能响应中断。中断。 89C51对中断查询的结果不作记忆,对中断查询的结果不作记忆, 当有新的查询结果出现时,当有新的查询结果出现时, 因为以上原因而被拖延的查询结果将不复存在,因为以上原因而被拖延的查询结果将不复存在, 其中断请求也就不能其中断请求也就不能再被响应了。再被响应了。篮极脑孔乙靖押拭捞恭丫翻临割砖褥志登开埠历占配沟榨几峙吉脖树

10、街如第五章中断定时串口第五章中断定时串口(3)中断响应时间)中断响应时间 响应时间为响应时间为38个机器周期个机器周期,如果遇到中断受阻的情,如果遇到中断受阻的情况,则中断响应时间会更长一些。况,则中断响应时间会更长一些。4. 中断处理(中断服务)中断处理(中断服务)5. 中断返回中断返回 CPU执行执行RETI指令时,指令时, 把响应中断位置的优先级把响应中断位置的优先级触发器复位,触发器复位, 再从堆栈中弹出断点地址送入程序计数器再从堆栈中弹出断点地址送入程序计数器PC, 以便从断点处重新执行被中断的主程序。以便从断点处重新执行被中断的主程序。哉佳倒捉利术况儒峻峪厦阎埃匠镰震奖魁冷赤猖瑶颓

11、贪蛆评肃钟体墨躁踊第五章中断定时串口第五章中断定时串口5.1.3 中断请求的撤销中断请求的撤销1. 定时中断请求的撤销定时中断请求的撤销 定时中断响应后,硬件自动把标志位(定时中断响应后,硬件自动把标志位(TF0或或TF1)清)清0, 因此定时中断的中断请求是自动撤销的。因此定时中断的中断请求是自动撤销的。2. 脉冲方式外部中断的撤销脉冲方式外部中断的撤销 中断响应时自动撤销,在中断服务过程中有新的下中断响应时自动撤销,在中断服务过程中有新的下跳变会重新置位中断标志位。跳变会重新置位中断标志位。3. 电平方式外部中断请求的撤销电平方式外部中断请求的撤销 中断响应时自动撤销,在中断返回后仍然为低

12、电平中断响应时自动撤销,在中断返回后仍然为低电平将会再次响应中断。将会再次响应中断。4. 串行中断请求撤销串行中断请求撤销 由软件(程序)清除标志位。由软件(程序)清除标志位。 绊拼嫩嫁缘异硼掩急认期哆格横耕位凑昨研甥肾捞邪膀吁绣杜唐甚综聚龙第五章中断定时串口第五章中断定时串口5.1.4 外部中断源的扩展外部中断源的扩展1. 用定时器作外部中断源用定时器作外部中断源 MCS-51单片机有两个定时器,具有两个内中断标志和单片机有两个定时器,具有两个内中断标志和外计数引脚,如在某些应用中不被使用,则它们定时器中外计数引脚,如在某些应用中不被使用,则它们定时器中断可作为外部中断请求使用。此时,可将定

13、时器设置成计断可作为外部中断请求使用。此时,可将定时器设置成计数方式,计数初值可设为满量程,则它们的计数输入端数方式,计数初值可设为满量程,则它们的计数输入端T0(P3.4)或)或T1(P3.5)引脚上发生负跳变时,计数器加)引脚上发生负跳变时,计数器加1产生溢出中断。利用此特性,可把产生溢出中断。利用此特性,可把T0脚或脚或T1脚作为外部中脚作为外部中断请求输入线,而计数器的溢出中断作为外部中断请求标断请求输入线,而计数器的溢出中断作为外部中断请求标志。志。 【例【例5.1】将定时器】将定时器0扩展为外部中断源扩展为外部中断源n解:将定时器解:将定时器0设定为方式设定为方式2(自动恢复计数初

14、值),(自动恢复计数初值),TH0和和TL0的初值均设置为的初值均设置为FFH,允许定时器,允许定时器0中断,中断,CPU开放开放中断。源程序如下:中断。源程序如下: 磷他吟戊胚疫枫谣哑暇钉典易胡凝取绿胺楼褒怠废钮根柄喧熏锨咙醇身辉第五章中断定时串口第五章中断定时串口 MOVTMOD,#06H MOVTH0,#0FFH MOVTL0,#0FFH SETBTR0 SETBET0 SETBEA 当连接在当连接在T0(P3.4)引脚上的外部中断请求输入线发生负)引脚上的外部中断请求输入线发生负跳变时,跳变时,TL0加加1溢出,溢出,TF0置置1,向,向CPU发出中断申请,同时,发出中断申请,同时,T

15、H0的内容自动送至的内容自动送至TL0使使TL0恢复初值。这样,恢复初值。这样,T0引脚每输引脚每输入一个负跳变,入一个负跳变,TF0都会置都会置1,向,向CPU请求中断。此时,请求中断。此时,T0脚脚相当于边沿触发的外部中断源输入线。相当于边沿触发的外部中断源输入线。 同样,也可将定时器同样,也可将定时器1扩展为外部中断源。扩展为外部中断源。 拆峰粟庆快樊衍讽靠哉遁读寿闲浙骄剔拎烟荷劲疲蛰琼谓跃藻壳损博效裔第五章中断定时串口第五章中断定时串口2. 中断和查询相结合中断和查询相结合一个外中断扩展成多个外中断的原理图 买敛费嘱惩矾钞溃包蛙孝例唬座腊冉厄屁钙雀健故哦家沥拆蕉铀率员柠镊第五章中断定时

16、串口第五章中断定时串口 由图可知,由图可知,4个外部扩展中断源通过个外部扩展中断源通过 4个个OC门电路组门电路组成线或取非后再与成线或取非后再与 /INT0(P3.2)相连;)相连;4个外部扩展中个外部扩展中断源断源EXINT0EXINT3中有一个或几个出现高电平则输中有一个或几个出现高电平则输出为出为0,使,使/INT0脚为低电平,从而发出中断请求。因此,脚为低电平,从而发出中断请求。因此,这些扩充的外部中断源都是电平触发方式(高电平有效)。这些扩充的外部中断源都是电平触发方式(高电平有效)。CPU执行中断服务程序时,先依次查询执行中断服务程序时,先依次查询P1口的中断源输口的中断源输入状

17、态,然后,转入到相应的中断服务程序,入状态,然后,转入到相应的中断服务程序,4个扩展中个扩展中断源的优先级顺序由软件查询顺序决定,即最先查询的优断源的优先级顺序由软件查询顺序决定,即最先查询的优先级最高,最后查询的优先级最低。先级最高,最后查询的优先级最低。 音状强雄疚混消力送泼抽主砖乳檬兔每寝躬宅故民诈讼榜楼喇些炸瓜踏调第五章中断定时串口第五章中断定时串口中断服务程序如下:ORG0003H;外部中断外部中断0入口入口AJMPINT0;转向中断服务程序入口转向中断服务程序入口INT0:PUSHPSW;保护现场保护现场 PUSHACC JBP1.0 , EXT0;中断源查询并转相应中断服务程序中

18、断源查询并转相应中断服务程序 JBP1.1 , EXT1 JBP1.2 , EXT2 JBP1.3 , EXT3EXIT:POPACC;恢复现场恢复现场 POPPSW RETIEXT0:;EXINT0中断服务程序中断服务程序AJMPEXITEXT1:;EXINT1中断服务程序中断服务程序AJMPEXITEXT2:;EXINT2中断服务程序中断服务程序AJMPEXITEXT3:;EXINT3中断服务程序中断服务程序AJMPEXIT同样,外部中断1也可作相应的扩展。 谤戒坐创坝醛饵究缩灿绢造趣憋憾读渡枝穴勋蛤棋玉轧擒矾瘸坛霸贷栈贞第五章中断定时串口第五章中断定时串口 5.1.5 处理外部中断举例处

19、理外部中断举例 要求每次按动按键,使外接发光二极管要求每次按动按键,使外接发光二极管LEDLED改变一次亮灭状态。改变一次亮灭状态。解:解:INT0INT0输入按键信号,输入按键信号,P P1.01.0输出改变输出改变LEDLED状态。状态。1跳变触发:跳变触发:每次跳变引起一次中断请求。每次跳变引起一次中断请求。 ORG 0000H;复位入口;复位入口 AJMP MAINORG0003H ;中断入口;中断入口AJMP PINT0ORG0100H ;主程序;主程序MAIN:MOV SP,#40H;设栈底;设栈底SETB IT0;开总允许开关;开总允许开关SETB EX0;开;开INT0中断中断

20、SETB EA;负跳变触发中断;负跳变触发中断H:SJMP H ;执行其它任务;执行其它任务ORG0200H ;中断服务程序;中断服务程序PINT0:CPL P1.0;改变;改变LEDRETI;返回主程序;返回主程序单片机单片机INT0P1.01+5V竞斟凹蜜铲夹翰澡搐管保帖涕被最儿贞聚圆准抵赤哟诊闪仰苯土劈案旱沙第五章中断定时串口第五章中断定时串口1 1软件等待按键释放。软件等待按键释放。2 2硬件清除中断信号。硬件清除中断信号。2. 电平触发电平触发:避免一次按键引起多次中断响应。避免一次按键引起多次中断响应。单片机单片机INT0P1.01+5V ORG 0000H;复位入口;复位入口 A

21、JMP MAINORG0003H ;中断入口;中断入口AJMP PINT0ORG0100H ;主程序;主程序MAIN:MOV SP,#40H;设栈底;设栈底 CLRIT0;低电平触发中断;低电平触发中断SETB EX0;开;开INT0中断中断SETB EA;开总允许开关;开总允许开关H:SJMP H ;执行其它任务;执行其它任务ORG0200H ;中断服务程序;中断服务程序PINT0:CPL P1.0;改变;改变LEDWAIT:JNBP3.2,WAIT;等按键释放;等按键释放RETI;返回主程序;返回主程序厦翘鸭样缠耐栅诚谐受备盂雹铲舵摈阵友赏袄孽耀泻佬砸捆啤队名另隔暇第五章中断定时串口第五章

22、中断定时串口5.2 定时定时/计数器计数器5.2.1 定时器定时器/计数器的组成计数器的组成迂脓抵衣肪淡筷需日陛箭诀搪编背蹿丛沟屠纠失腋婴点颠愤旬磅管倦挪件第五章中断定时串口第五章中断定时串口5.2.2 定时定时/计数器的定时和计数功能计数器的定时和计数功能1. 计数功能计数功能 所谓计数是指对外部事件进行计数。外部事件以脉冲所谓计数是指对外部事件进行计数。外部事件以脉冲的形式通过引脚的形式通过引脚T0(P3.4)和)和T1(P3.5)输入到定时)输入到定时/计数器。下降沿时,计数器。下降沿时, 计数器的值加计数器的值加1。 89C51在每个机器周期的在每个机器周期的S5P2期间采样期间采样T

23、0和和T1引脚引脚的输入电平,计数脉冲的频率不能高于振荡脉冲频率的的输入电平,计数脉冲的频率不能高于振荡脉冲频率的1/24 。2. 定时功能定时功能 定时功能也是通过计数器的计数功能来实现的,计定时功能也是通过计数器的计数功能来实现的,计数脉冲来自单片机的内部,数脉冲来自单片机的内部, 每个机器周期产生一个计数每个机器周期产生一个计数脉冲,计数器加脉冲,计数器加1。根据定时时间的要求计算出计数器。根据定时时间的要求计算出计数器的预置值(定时常数)。的预置值(定时常数)。秆梆咆被枫锥椽编缚拍八吸趴转种型误泵敖对慎庐惰檄氢谴树卒亭嫉萨架第五章中断定时串口第五章中断定时串口5.2.3 定时器定时器/

24、计数器的控制寄存器计数器的控制寄存器1.定时器控制寄存器(定时器控制寄存器(TCON)孕梅侧术洱唯棕嘘篷暮字酗蛹赛傍这蕊罐挥谗贬边饿犀寡淑昆式溯介册臃第五章中断定时串口第五章中断定时串口2. 工作方式控制寄存器(工作方式控制寄存器(TMOD)宝卯堪摹县辜漂数南臀翰赫辐州方衣想色淋挺稗诛忻驮致赫涨竹削炙蛤形第五章中断定时串口第五章中断定时串口5.2.4 定时定时/计数器工作方式计数器工作方式1. 方式方式0 (13位定时位定时/计数器方式计数器方式) 最大计数值:最大计数值:213 = 8192舔藐脑企吾纶甘皖啡曙苯僚虚叫驶耶严殆寅叭心蟹彰闪懂弘庚寥莲昼弗柑第五章中断定时串口第五章中断定时串口定

25、时时间定时时间(T)=(213-计数初值)计数初值)机器周期机器周期例例: :设单片机晶振频率为设单片机晶振频率为12MHz, 使用定时器使用定时器1以方式以方式0产生周期为产生周期为 500s的等宽正方波连续脉冲,的等宽正方波连续脉冲, 并由并由P1.0输出。以查询方式完成。输出。以查询方式完成。 计算计数初值计算计数初值 (213-X)110-6=25010-6 X=7942=1111100000110B 1111 1000 0000 0110B F 8 0 6 H TH1 TL1 TMOD寄存器初始化寄存器初始化(确定工作方式确定工作方式) TMOD=0000 0000B 启动启动T1(

26、TCON中的中的TR1位控制定时的启动和停止位控制定时的启动和停止)芽武届址糠边貌滤待揭宝振册描赘哥读磊区懊发葵珠展市啥题陵况兽疾涵第五章中断定时串口第五章中断定时串口 MOV TMOD, #00H; 设置设置T1为工作方式为工作方式0 MOV TH1, # 0F8H; 设置计数初值设置计数初值 MOV TL1, #06H MOV IE, #00H; 禁止中断禁止中断LOOP: SETB TR1; 启动定时启动定时LOOP1:JBC TF1, LOOP2; 查询计数溢出查询计数溢出 AJMP LOOP1LOOP2: MOV TH1, #0F8H; 重新设计数初值重新设计数初值 MOV TL1,

27、 #06H CLR TF1; 计数溢出标志位清计数溢出标志位清“0” CPL P1.0; 输出取反输出取反 AJMP LOOP; 重复循环重复循环被漠橡页作舰数踊味次牲碧咱贯郝病魏脏魂渺缮烘救磁芭渊宠莽工汞缺折第五章中断定时串口第五章中断定时串口2. 方式方式1 (16位定时位定时/计数器方式计数器方式)8最大计数值:最大计数值:216 = 65536钥浩驳胞徒殉碳次娘属曼轧勿练爬吠嫩肖朵届岿疥约均砧申磨耳栏鹊翔榔第五章中断定时串口第五章中断定时串口3. 方式方式2 (8位自动重装定时位自动重装定时/计数器方式计数器方式)最大计数值:最大计数值:28 = 256茨拴莽茧尿难僧惩孟缄似痔买慎倡佰

28、涅试裙买埋卉呸己懂碳萝蹄蓝哨僚似第五章中断定时串口第五章中断定时串口3. 方式方式 (3定时定时/计数器方式计数器方式)(1) 工作方式工作方式3下的定时计数器下的定时计数器T0TL0:8位定时位定时/计数器计数器TH0:8位定时器位定时器音邹糜叶笔金悼噪怕旺垮扼国得绅力扼限受陷何孩捡签拣波淑艾太乱佬缺第五章中断定时串口第五章中断定时串口(2) 工作方式工作方式3下的定时器计数器下的定时器计数器1 T1设置为方式设置为方式3, 停止工作。如果停止工作。如果T0已工作已工作在方式在方式3, 则则T1只能工作在方式只能工作在方式0方式方式1或方式或方式2下,下,通常工作于方式通常工作于方式2为串行

29、口提供波特率时钟,只需为串行口提供波特率时钟,只需设置好工作方式和计数初值,设置好工作方式和计数初值, 便可自动运行。便可自动运行。昂烁殴调篇述炉桥茎碴狭狼舆赵泛归萤挨独匹摊脑博手脓堵令窟液倔阶图第五章中断定时串口第五章中断定时串口应用举例:应用举例:设设89C51单片机的时钟频率为单片机的时钟频率为6MHz, 试编写利用试编写利用T0产生产生1s 定时的定时的程序。程序。 ORG 0000H LJMP MAIN ; 上电,上电, 转向主程序转向主程序 ORG 000BH ; T0的中断入口地址的中断入口地址 AJMP SERVE ; 转向中断服务程序转向中断服务程序 ORG 0030H ;

30、主程序主程序MAIN:MOV SP , #60H ; 设堆栈指针设堆栈指针 MOV B, #0AH ; 设循环次数设循环次数 MOV TMOD, #01H ; 设置设置T0工作于模式工作于模式1 MOV TL0, #0B0H; 装入计数值低装入计数值低8位位 MOV TH0, #3CH; 装入计数值高装入计数值高8位位 SETB TR0; 启动定时器启动定时器T0 SETB ET0; 允许允许T0中断中断 SETB EA; 允许允许CPU中断中断 SJMP ; 等待中断等待中断中断服务程序:中断服务程序: SERVE:MOV TL0, #0B0H MOV TH0, #3CH; 重新赋计数值重新

31、赋计数值 DJNZ B, LOOP CLR TR0 ; 1s定时到,定时到, 停止停止T0工作工作LOOP: RETI ; 中断返回中断返回 END姻蹦涤福芒曹疡诫懊矮大渐肆肤粥态蓝税不俐熏疑舞瑶兆饮欺俘驱遂纠岔第五章中断定时串口第五章中断定时串口5.3 串行接口串行接口5.3.1 串行接口的功能与结构串行接口的功能与结构1. 串行接口的功能串行接口的功能 89C51单片机中的串行接口是一个全双工串行通信接口,单片机中的串行接口是一个全双工串行通信接口, 能同时发送、能同时发送、 接收数据,接收数据, 也能用作同步移位寄存器。也能用作同步移位寄存器。SM0SM1 工作方式工作方式功功 能能波特

32、率波特率00方式方式 0 8位同步移位寄存器方式位同步移位寄存器方式fOSC/1201方式方式 1 8位通用异步接收器位通用异步接收器/发送器发送器可变可变10方式方式 2 9位通用异步接收器位通用异步接收器/发送器发送器fOSC/32或或fOSC/6411方式方式 3 9位通用异步接收器位通用异步接收器/发送器发送器可变可变机纲繁湾闸糊磅基谋峙需齐扁千勤裳播奠哦戌旬罢静轴绥槐具坝可莆寝悼第五章中断定时串口第五章中断定时串口捐渣蜗兰敬胚妄榴条筐教灯辟廓世恫搬坟骸圆健携蠢星邹吴夯蚌妊瞻辰娶第五章中断定时串口第五章中断定时串口2. 串行接口结构串行接口结构猜圣橡卿撞目升烩晓待翘凿嘶足茶搐快磋髓券触

33、抬相很狗京杠霖六拘茵傻第五章中断定时串口第五章中断定时串口5.3.2 串行接口控制串行接口控制1.数据缓冲器数据缓冲器SBUF发送发送SBUFSBUF和接收和接收SBUFSBUF共用一个地址共用一个地址99H99H 。 1 1)发送)发送SBUFSBUF存放待发送的存放待发送的8 8位数据,写入位数据,写入SBUFSBUF将同时启动发送。将同时启动发送。发送指令:发送指令:MOV SBUF,A2 2)接收)接收SBUFSBUF存放已接收成功的存放已接收成功的8 8位数据,供位数据,供CPUCPU读取。读取。读取串行口接收数据指令:读取串行口接收数据指令:MOV A,SBUF授锤臆贺顷颧甲咨输庭

34、乳肇缩酥帜霹松钱腺吐初哉哥夕罚涛咆属擞汽肘傻第五章中断定时串口第五章中断定时串口3.节电控制寄存器节电控制寄存器PCON(87H)SMOD(PCON.7):波特率加倍控制位。:波特率加倍控制位。SMOD=1,波特率加倍,波特率加倍, SMOD=0,则不加倍,则不加倍。2.串行口控制串行口控制/状态寄存器状态寄存器SCON(98H)SM0SM0,SM1SM1:选择串行口选择串行口4 4种工作方式。种工作方式。SM2SM2:多机控制位,用于多机通讯。多机控制位,用于多机通讯。RENREN:允许接收控制位,允许接收控制位,REN=1REN=1,允许接收;,允许接收;REN=0REN=0,禁止接收。,

35、禁止接收。TB8TB8:发送的第发送的第9 9位数据位,可用作校验位和地址位数据位,可用作校验位和地址/ /数据标识位数据标识位RB8RB8:接收的第接收的第9 9位数据位或停止位位数据位或停止位TITI:发送中断标志,发送一帧结束,发送中断标志,发送一帧结束,TI=1TI=1,必须软件清零,必须软件清零RIRI:接收中断标志,接收一帧结束,接收中断标志,接收一帧结束,RI=1RI=1,必须软件清零,必须软件清零惩诊友挨窥右宛铡傲娘竣宴拘兼开还老准蜕湾缚坦析奄卓醚巾楔杀旅坊珊第五章中断定时串口第五章中断定时串口5.3.3 串行接口的工作方式串行接口的工作方式1. 方式方式0:同步移位寄存器方式

36、。用于扩展并行同步移位寄存器方式。用于扩展并行I/I/O接口。接口。A.A.一帧一帧8 8位,无起始位和停止位。位,无起始位和停止位。B.B.RXDRXD:数据输入:数据输入/ /输出端。输出端。 TXD TXD:同步脉冲输出端,每个脉冲对应一个数据位。:同步脉冲输出端,每个脉冲对应一个数据位。C.C.波特率波特率Baud = fosc/12Baud = fosc/12如:如: fosc=12MHz fosc=12MHz, Baud=1MHzBaud=1MHz,每位数据占,每位数据占1 1 s s。D.D.发送过程:写入发送过程:写入SBUFSBUF,启动发送,一帧发送结束,启动发送,一帧发送

37、结束,TI=1TI=1。 接收过程:接收过程:REN=1REN=1且且RI=0RI=0,启动接收,一帧接收完毕,启动接收,一帧接收完毕,RI=1RI=1 发发送送时时序序写入写入SBUFRXD输出输出TXDTID0D1D2D3D4D5D6D7写写REN=1RI=0RXD输入输入RI 接接收收时时序序(a)(b)亨框嘴失峙咒颐盔篡盔圣咯武赂标颗衡灰决怖据寞腮本弟牙笺拼唤澈壳背第五章中断定时串口第五章中断定时串口例:使用例:使用74HC164的并行输出端接的并行输出端接8支发光二极管,支发光二极管, 利用它利用它的串入并出功能,的串入并出功能, 将发光二极管从左向右依次点亮。将发光二极管从左向右依

38、次点亮。 MOV SCON, # 00H ; 串行口方式串行口方式0工作工作 CLR ES ; 禁止串行中断禁止串行中断 MOV A, #80H ; 发光管从左边亮起发光管从左边亮起DELR:CLR P1.0 ; 关闭并行输出关闭并行输出 MOV SBUF, A ; 串行输出串行输出 JNB TI, ; 状态维持状态维持 SETB P1.0 ; 开启并行输出开启并行输出 ACALL DELAY ; 状态维持状态维持 CLR TI ; 清发送中断标志清发送中断标志 RR A ; 发光组合中断标志发光组合中断标志 AJMP DELR ; 继续继续俄钡撒铭喉适讲施祈彩嘶溉碾胚猾莫绣嘉运醋咱敌订搽熄户

39、绦阵溶填绢十第五章中断定时串口第五章中断定时串口2. 方式方式1:8位数据异步通讯方式位数据异步通讯方式A.一帧一帧10位:位:8位数据位,位数据位,1个起始位个起始位(0),1个停止位个停止位(1)。 B.RXD:接收数据端。:接收数据端。 TXD:发送数据端。:发送数据端。C.波特率:用波特率:用T1作为波特率发生器,作为波特率发生器,Baud=(2SMOD/32)T1溢出溢出率。率。D.发送:写入发送:写入SBUF,同时启动发送,一帧发送结束,同时启动发送,一帧发送结束,TI=1。 接收:接收:REN=1,允许接收。接收完一帧,若,允许接收。接收完一帧,若RI=0且停止位为且停止位为1

40、(或或SM2=0),将接收数据装入,将接收数据装入SBUF,停止位装入,停止位装入RB8,并使,并使RI=1;否则丢弃接收数据,不置位;否则丢弃接收数据,不置位RI。当当REN=1,CPU开始采样开始采样RXD引脚负跳变信号,若出现负跳变,引脚负跳变信号,若出现负跳变,才进入数据接收状态,先检测起始位,若第一位为才进入数据接收状态,先检测起始位,若第一位为0,继续接收其,继续接收其余位;否则,停止接收,重新采样负跳变。余位;否则,停止接收,重新采样负跳变。数据采样速率为波特率数据采样速率为波特率16倍频,在数据位中间,用第倍频,在数据位中间,用第7、8、9个个脉冲采样脉冲采样3次数据位,并次数

41、据位,并3中取中取2保留采样值。保留采样值。自炉柴谴皮疲欧嘛水雌咋苍旦亥徐怔染顶抿够曹虾涤摔压歉惠壶啮褒纫跨第五章中断定时串口第五章中断定时串口驰赖橙卷宇郊弘磊赖刚糕墅捕胖夜室攻沸刺智娱就见输们破硷排炙娥与周第五章中断定时串口第五章中断定时串口3. 方式方式2和方式和方式3:9位数据异步通讯方式位数据异步通讯方式A.一帧为一帧为11位:位:9位数据位,位数据位,1个起始位个起始位(0),1个停止位个停止位(1)。第第9位数据位在位数据位在TB8/RB8中,常用作校验位和多机通讯标识位。中,常用作校验位和多机通讯标识位。B.RXD:接收数据端,:接收数据端,TXD:发送数据端。:发送数据端。C.

42、波特率:波特率: 方式方式2:Baud=(2SMOD/64)fosc 。 方式方式3:Baud=(2SMOD/32)T1溢出率溢出率 。D.发送:先装入发送:先装入TB8,写入,写入SBUF并启动发送,发送结束,并启动发送,发送结束,TI=1 接收:接收:REN=1,允许接收。接收完一帧,若,允许接收。接收完一帧,若RI=0且第且第9位为位为1 (或或SM2=0),将接收数据装入接收,将接收数据装入接收SBUF,第,第9位装入位装入RB8,使,使RI=1;否则丢弃接收数据,不置位;否则丢弃接收数据,不置位RI。徽熔也东滔脓点谷顽哟咽烤鲜踊突俯帧岗律召员径最王炕驰账拣肪讶俭旧第五章中断定时串口第

43、五章中断定时串口簧喘密纸屑惠朝仅听运肛缎嗣怜茄护轩赵乌跨奸陷哆韦昨炭昨糕黑镰胳叹第五章中断定时串口第五章中断定时串口4.计算波特率计算波特率方式方式0为固定波特率:为固定波特率:Baud=fosc/12方式方式2可选两种波特率:可选两种波特率: Baud=(2SMOD /64)fosc 方式方式1、3为可变波特率,用为可变波特率,用T1作波特率发生器。作波特率发生器。Baud=(2SMOD/32)T1溢出率溢出率T1为方式为方式2的时间常数:的时间常数: X = 28 - t/T溢出时间:溢出时间: t= (28 -X)T = (28 -X)12/ foscT1溢出率溢出率=1/t= fosc

44、 /12(28 -X) 波特率波特率Baud=(2SMOD /32)fosc/12(28-X)串行口方式串行口方式1、3,根据波特率选择,根据波特率选择T1工作方式,计算时间常数工作方式,计算时间常数T1选方式选方式2: TL1=TH1=X= 28-fosc/122SMOD/(32B)T1选方式选方式1用于低波特率,需考虑用于低波特率,需考虑T1重装时间常数时间。重装时间常数时间。赘旬搁订钳瞪涎剑扰多宣掺谈划豆叛蚕甚雄写乌皖想澡喝蓬桑膜跟聋谩跃第五章中断定时串口第五章中断定时串口5.3.4 串行口的应用串行口的应用串行口初始化编程格式:串行口初始化编程格式:SIO:MOV SCON,#控制状态

45、字;写方式字且控制状态字;写方式字且TI=RI=0 (MOV PCON,#80H) ;波特率加倍;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率发生器作波特率发生器 ( MOV TH1,#X ) ;选定波特率;选定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;开串行口中断;开串行口中断 ( SETB ES)融窘宜俘弃圆付带揭隅弯婴鬃蓑否嚏松副磊禹冈横淳旋倚牲当酋涂脊慰香第五章中断定时串口第五章中断定时串口发送程序:先发送一个字符,等待发送程序:先发送一个字符,等待TI=1TI=1后再发送下一个字符。后再发送下一个字符。1.1.查询方式:查

46、询方式:TRAM:MOV A,R0 ;取数据;取数据 MOV SBUF,A ;发送一个字符;发送一个字符WAIT:JBCTI,NEXT ;等待发送结束;等待发送结束SJMP WAITNEXT:INCR0 ;准备下一次发送;准备下一次发送SJMP TRAM2.中断方式:中断方式: ORG 0023H ;串行口中断入口;串行口中断入口 AJMP SINTMAIN: ;初始化编程;初始化编程TRAM: MOV A,R0 ;取数据;取数据MOV SBUF,A ;发送第一个字符;发送第一个字符 H:SJMP H ;其它工作;其它工作 SINT:CLR TI ;中断服务程序;中断服务程序INC R0MOV

47、 A,R0 ;取数据;取数据MOV SBUF,A ;发送下一个字符;发送下一个字符RETI败厉忘谚酮死勒沂阴溯二寝铲里彻磷吕并孜仙香酱喇除聪沿屉癣辫异脾释第五章中断定时串口第五章中断定时串口接收程序:接收程序:REN=1REN=1、RI=0RI=0等待接收,当等待接收,当RI=1RI=1,从,从SBUFSBUF读取数据。读取数据。1.1.查询方式:查询方式: WAIT:JBCRI,NEXT;查询等待;查询等待SJMP WAITNEXT:MOV A,SBUF ;读取接收数据;读取接收数据MOV R0,A;保存数据;保存数据INCR0 ;准备下一次接收;准备下一次接收SJMP WAIT2.2.中断

48、方式:中断方式:ORG 0023HAJMP RINTMAIN: ;初始化编程;初始化编程 H:SJMP H ;其它任务;其它任务 RINT:CLRRI ;清中断标志;清中断标志MOV A,SBUF ;读取接收数据;读取接收数据MOV R0,A;保存数据;保存数据INCR0RETI诗缨鸟旅垂阉誓棍焉特琉疫盲状升谊瘪沤海鹿蓖锰张巨涅脂花表沟峭痈态第五章中断定时串口第五章中断定时串口例:由串行接口发送带偶校验位的例:由串行接口发送带偶校验位的ASCII码数据块。码数据块。设拟发送的是位于片内设拟发送的是位于片内RAM30H3FH单元的单元的ASCII码数据。单片机采用码数据。单片机采用12MHz晶振

49、,晶振, 串行接口工作于方式串行接口工作于方式1, 定时器定时器/计数器计数器1用作波特率发生器,用作波特率发生器, 电源控制专用寄存器电源控制专用寄存器PCON中的中的SMOD位为位为0, 发送的波特率要求为发送的波特率要求为1200。相应的发送程序为相应的发送程序为TSTART:MOV TMOD, #20H ;置定时器;置定时器/计数器计数器1工作于方式工作于方式2的定时器方式的定时器方式 MOV TL1, #0E6H ; 定时器定时器/计数器计数器1预置数预置数 MOV TH1, #0E6H ; 定时器定时器/计数器计数器1置重装载数置重装载数 MOV SCON, #40H ; 置串行接

50、口工作于方式置串行接口工作于方式1 MOV R0, #30H ; R0作地址指针,作地址指针, 指向数据块首址指向数据块首址 MOV R7, #10H ; R7用作计数器,用作计数器, 置拟发送字节数置拟发送字节数 SETB TR1 ; 启动定时器启动定时器/计数器计数器1 LOOP: MOV A, R0 ; 取待发送的一个字节取待发送的一个字节 MOV C, P ; 取奇偶标志,取奇偶标志, 若奇为若奇为1, 若偶为若偶为0 MOV ACC.7, C ; 加偶校验位加偶校验位 MOV SBUF, A ; 启动串行接口发送启动串行接口发送 WAIT:JNB TI, WAIT ; 等发送完毕等发送完毕 CLR TI ; 清清TI标志,标志, 为下一字节发送做准备为下一字节发送做准备 INC R0 ; 指向数据块下一待发送字节的地址指向数据块下一待发送字节的地址 DJNZ R7, LOOP ; 若拟发送数据未发送完,若拟发送数据未发送完, 则继续发送则继续发送 RET拱秒傍腻骚挪鲁赃香搬规妊丫俩卉蝉斡龙校主尊涧善劣垒娄吉孟琵浙们痢第五章中断定时串口第五章中断定时串口

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 销售管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号