




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 第第5章中断系统、章中断系统、 定时器定时器/计数器与串行口计数器与串行口 5.1 MCS-51单片机中断系统单片机中断系统 中断中断是指计算机暂时停止原程序执行转而为外部设备是指计算机暂时停止原程序执行转而为外部设备 服务服务(执行中断服务程序执行中断服务程序), 并在服务完后自动返回原程序并在服务完后自动返回原程序 执行的过程。执行的过程。 5.1.1 中断系统结构及中断控制中断系统结构及中断控制 89C51单片机有单片机有5个中断源个中断源(89C52有有6个),可实现个),可实现 二级中断服务程序嵌套二级中断服务程序嵌套。 2 图5-1 中断系统结构示意图 3 1. 中断源中断源
2、中断源中断源中断标志中断标志中断入口地址中断入口地址 外部中断 /INT0(P3.2)IE00003H /INT1(P3.3)IE10013H 定时中断 T0TF0000BH T1TF1001BH 串行中断 发送中断TI 0023H 接受中断RI 4 2. 2. 中断控制中断控制 定时器控制寄存器定时器控制寄存器TCON、 串行口控制寄存器串行口控制寄存器SCON、 中中 断允许寄存器断允许寄存器IE和中断优先级寄存器和中断优先级寄存器IP (1) 定时器控制寄存器定时器控制寄存器(TCON) TCON(88H) D7 D6 D5 D4 D3 D2 D1 D0 5 (2) 串行口控制寄存器(串
3、行口控制寄存器(SCON)98H TITI串行口发送中断请求标志位。当发送完一帧串行数据后,串行口发送中断请求标志位。当发送完一帧串行数据后, 由由 硬件置硬件置1 1; 在转向中断服务程序后,在转向中断服务程序后, 用用软件清软件清0 0。 RIRI串行口接收中断请求标志位。当接收完一帧串行数据后,串行口接收中断请求标志位。当接收完一帧串行数据后, 由由 硬件置硬件置; 在转向中断服务程序后,在转向中断服务程序后, 用用软件清软件清0 0。 6 (3) 中断允许控制寄存器(中断允许控制寄存器(IE)0A8H 7 (5) 中断优先级控制中断优先级控制 A. 中断优先级控制寄存器(中断优先级控制
4、寄存器(IP)0B8H 8 B.中断查询顺序中断查询顺序 当同时接收到几个同一优先级的中断请求时,当同时接收到几个同一优先级的中断请求时, 响应响应 哪个中断源则取决于内部硬件查询顺序。哪个中断源则取决于内部硬件查询顺序。 中断源中断源 同级自然优先级同级自然优先级 INT0 最高最高 T0 INT1 T1 串行口串行口 最低最低 C. C. 中断嵌套(中断嵌套(2 2个中断优先级)个中断优先级) 由由IP设定高、低两级优先级设定高、低两级优先级 原则:原则:允许高中断低,禁止低中断高和同级中断允许高中断低,禁止低中断高和同级中断 9 5.1.2 中断响应及中断处理过程中断响应及中断处理过程
5、89C51单片机中断过程分为单片机中断过程分为中断采样中断采样、 中断查询中断查询、 中中 断响应断响应、 中断处理中断处理和和中断返回中断返回等几个阶段。等几个阶段。 1.中断采样(外部中断采样)中断采样(外部中断采样) 在每个机器周期的在每个机器周期的S5P2时刻对芯片引脚时刻对芯片引脚INT0(P3.2) 和和INT1(P3.3)进行采样。)进行采样。 (1)电平触发方式)电平触发方式 中断标志直接反映外部中断引脚的状态,无记忆功能,中断标志直接反映外部中断引脚的状态,无记忆功能, 低电平时间至少需保持一个机器周期,低电平时间至少需保持一个机器周期, 才能保证中断请才能保证中断请 求能被
6、采样到。求能被采样到。 (2)负跳变触发方式)负跳变触发方式 在两个相邻机器周期采样到的是在两个相邻机器周期采样到的是先高电平后低电平先高电平后低电平, 则中断请求有效,则中断请求有效, 由硬件将由硬件将IE0或或IE1置置1,具有记忆功能,具有记忆功能, 负脉冲的宽度也应至少为一个机器周期。负脉冲的宽度也应至少为一个机器周期。 10 2.中断查询中断查询 由由CPU测试测试TCON和和SCON中各标志位的状态,中断查询在指令中各标志位的状态,中断查询在指令 执行的每个机器周期中不停地重复进行。执行的每个机器周期中不停地重复进行。 3.中断响应中断响应 (1)产生硬件调用,将断点地址压入堆栈。
7、)产生硬件调用,将断点地址压入堆栈。 (2)中断封锁)中断封锁 A、CPU正处在为一个同级或高级的中断服务中。正处在为一个同级或高级的中断服务中。因为当一个中因为当一个中 断被响应时,断被响应时, 要把对应的优先级触发器置位,要把对应的优先级触发器置位, 封锁了低级和同级中封锁了低级和同级中 断。断。 B、查询中断请求的机器周期不是当前指令的最后一个机器周期。查询中断请求的机器周期不是当前指令的最后一个机器周期。 目的在于确保当前指令的完整执行。目的在于确保当前指令的完整执行。 C、当前指令是返回指令(当前指令是返回指令(RET, RETI)或访问)或访问IE、 IP的指令。的指令。 在执行完
8、这些指令之后,在执行完这些指令之后, 还应再继续执行一条指令,还应再继续执行一条指令, 然后才能响应然后才能响应 中断。中断。 89C51对中断查询的结果不作记忆,对中断查询的结果不作记忆, 当有新的查询结果出现时,当有新的查询结果出现时, 因为以上原因而被拖延的查询结果将不复存在,因为以上原因而被拖延的查询结果将不复存在, 其中断请求也就不其中断请求也就不 能再被响应了。能再被响应了。 11 (3)中断响应时间)中断响应时间 响应时间为响应时间为38个机器周期个机器周期,如果遇到中断受阻的情,如果遇到中断受阻的情 况,则中断响应时间会更长一些。况,则中断响应时间会更长一些。 4. 中断处理(
9、中断服务)中断处理(中断服务) 5. 中断返回中断返回 CPU执行执行RETI指令时,指令时, 把响应中断位置的优先级把响应中断位置的优先级 触发器复位,触发器复位, 再从堆栈中弹出断点地址送入程序计数器再从堆栈中弹出断点地址送入程序计数器 PC, 以便从断点处重新执行被中断的主程序。以便从断点处重新执行被中断的主程序。 12 5.1.3 中断请求的撤销中断请求的撤销 1. 定时中断请求的撤销定时中断请求的撤销 定时中断响应后,硬件自动把标志位(定时中断响应后,硬件自动把标志位(TF0或或TF1)清)清0, 因此定时中断的中断请求是自动撤销的。因此定时中断的中断请求是自动撤销的。 2. 脉冲方
10、式外部中断的撤销脉冲方式外部中断的撤销 中断响应时自动撤销,在中断服务过程中有新的下中断响应时自动撤销,在中断服务过程中有新的下 跳变会重新置位中断标志位。跳变会重新置位中断标志位。 3. 电平方式外部中断请求的撤销电平方式外部中断请求的撤销 中断响应时自动撤销,在中断返回后仍然为低电平中断响应时自动撤销,在中断返回后仍然为低电平 将会再次响应中断。将会再次响应中断。 4. 串行中断请求撤销串行中断请求撤销 由软件(程序)清除标志位。由软件(程序)清除标志位。 13 5.1.4 外部中断源的扩展外部中断源的扩展 1. 用定时器作外部中断源用定时器作外部中断源 MCS-51单片机有两个定时器,具
11、有两个内中断标志和单片机有两个定时器,具有两个内中断标志和 外计数引脚,如在某些应用中不被使用,则它们定时器中外计数引脚,如在某些应用中不被使用,则它们定时器中 断可作为外部中断请求使用。此时,可将定时器设置成计断可作为外部中断请求使用。此时,可将定时器设置成计 数方式,计数初值可设为满量程,则它们的计数输入端数方式,计数初值可设为满量程,则它们的计数输入端T0 (P3.4)或)或T1(P3.5)引脚上发生负跳变时,计数器加)引脚上发生负跳变时,计数器加1产产 生溢出中断。利用此特性,可把生溢出中断。利用此特性,可把T0脚或脚或T1脚作为外部中断脚作为外部中断 请求输入线,而计数器的溢出中断作
12、为外部中断请求标志。请求输入线,而计数器的溢出中断作为外部中断请求标志。 【例【例5.1】将定时器】将定时器0扩展为外部中断源扩展为外部中断源n 解:将定时器解:将定时器0设定为方式设定为方式2(自动恢复计数初值),(自动恢复计数初值),TH0 和和TL0的初值均设置为的初值均设置为FFH,允许定时器,允许定时器0中断,中断,CPU开放开放 中断。源程序如下:中断。源程序如下: 14 MOVTMOD,#06H MOVTH0,#0FFH MOVTL0,#0FFH SETBTR0 SETBET0 SETBEA 当连接在当连接在T0(P3.4)引脚上的外部中断请求输入线发生负)引脚上的外部中断请求输
13、入线发生负 跳变时,跳变时,TL0加加1溢出,溢出,TF0置置1,向,向CPU发出中断申请,同时,发出中断申请,同时, TH0的内容自动送至的内容自动送至TL0使使TL0恢复初值。这样,恢复初值。这样,T0引脚每输引脚每输 入一个负跳变,入一个负跳变,TF0都会置都会置1,向,向CPU请求中断。此时,请求中断。此时,T0脚脚 相当于边沿触发的外部中断源输入线。相当于边沿触发的外部中断源输入线。 同样,也可将定时器同样,也可将定时器1扩展为外部中断源。扩展为外部中断源。 15 2. 中断和查询相结合中断和查询相结合 一个外中断扩展成多个外中断的原理图 16 由图可知,由图可知,4个外部扩展中断源
14、通过个外部扩展中断源通过 4个个OC门电路组门电路组 成线或取非后再与成线或取非后再与 /INT0(P3.2)相连;)相连;4个外部扩展中个外部扩展中 断源断源EXINT0EXINT3中有一个或几个出现高电平则输中有一个或几个出现高电平则输 出为出为0,使,使/INT0脚为低电平,从而发出中断请求。因此,脚为低电平,从而发出中断请求。因此, 这些扩充的外部中断源都是电平触发方式(高电平有效)。这些扩充的外部中断源都是电平触发方式(高电平有效)。 CPU执行中断服务程序时,先依次查询执行中断服务程序时,先依次查询P1口的中断源输口的中断源输 入状态,然后,转入到相应的中断服务程序,入状态,然后,
15、转入到相应的中断服务程序,4个扩展中个扩展中 断源的优先级顺序由软件查询顺序决定,即最先查询的优断源的优先级顺序由软件查询顺序决定,即最先查询的优 先级最高,最后查询的优先级最低。先级最高,最后查询的优先级最低。 中断服务程序如下: ORG0003H;外部中断外部中断0入口入口 AJMPINT0;转向中断服务程序入口转向中断服务程序入口 INT0:PUSHPSW;保护现场保护现场 PUSHACC JBP1.0 , EXT0;中断源查询并转相应中断服务程序中断源查询并转相应中断服务程序 JBP1.1 , EXT1 JBP1.2 , EXT2 JBP1.3 , EXT3 EXIT:POPACC;恢
16、复现场恢复现场 POPPSW RETI EXT0:;EXINT0中断服务程序中断服务程序 AJMPEXIT EXT1:;EXINT1中断服务程序中断服务程序 AJMPEXIT EXT2:;EXINT2中断服务程序中断服务程序 AJMPEXIT EXT3:;EXINT3中断服务程序中断服务程序 AJMPEXIT 同样,外部中断1也可作相应的扩展。 5.1.5 处理外部中断举例处理外部中断举例 要求每次按动按键,使外接发光二极管要求每次按动按键,使外接发光二极管LEDLED改变一次亮灭状态。改变一次亮灭状态。 解:解:INT0INT0输入按键信号,输入按键信号,P P1.0 1.0输出改变 输出改
17、变LEDLED状态。状态。 1跳变触发:跳变触发:每次跳变引起一次中断请求。每次跳变引起一次中断请求。 ORG 0000H;复位入口;复位入口 AJMP MAIN ORG0003H ;中断入口;中断入口 AJMP PINT0 ORG0100H ;主程序;主程序 MAIN:MOV SP,#40H;设栈底;设栈底 SETB IT0;开总允许开关;开总允许开关 SETB EX0;开;开INT0中断中断 SETB EA;负跳变触发中断;负跳变触发中断 H:SJMP H ;执行其它任务;执行其它任务 ORG0200H ;中断服务程序;中断服务程序 PINT0:CPL P1.0;改变;改变LED RETI
18、;返回主程序;返回主程序 单片机单片机 INT0 P1.0 1 +5V 1 1软件等待按键释放。软件等待按键释放。 2 2硬件清除中断信号。硬件清除中断信号。 2. 电平触发电平触发:避免一次按键引起多次中断响应。避免一次按键引起多次中断响应。 单片机单片机 INT0 P1.0 1 +5V ORG 0000H;复位入口;复位入口 AJMP MAIN ORG0003H ;中断入口;中断入口 AJMP PINT0 ORG0100H ;主程序;主程序 MAIN:MOV SP,#40H;设栈底;设栈底 CLRIT0;低电平触发中断;低电平触发中断 SETB EX0;开;开INT0中断中断 SETB E
19、A;开总允许开关;开总允许开关 H:SJMP H ;执行其它任务;执行其它任务 ORG0200H ;中断服务程序;中断服务程序 PINT0:CPL P1.0;改变;改变LED WAIT:JNBP3.2,WAIT;等按键释放;等按键释放 RETI;返回主程序;返回主程序 20 5.2 定时定时/计数器计数器 5.2.1 定时器定时器/计数器的组成计数器的组成 21 5.2.2 定时定时/计数器的定时和计数功能计数器的定时和计数功能 1. 计数功能计数功能 所谓计数是指对外部事件进行计数。外部事件以脉所谓计数是指对外部事件进行计数。外部事件以脉 冲的形式通过引脚冲的形式通过引脚T0(P3.4)和)
20、和T1(P3.5)输入到定时)输入到定时 /计数器。下降沿时,计数器。下降沿时, 计数器的值加计数器的值加1。 89C51在每个机器周期的在每个机器周期的S5P2期间采样期间采样T0和和T1引脚引脚 的输入电平,计数脉冲的频率不能高于振荡脉冲频率的的输入电平,计数脉冲的频率不能高于振荡脉冲频率的 1/24 。 2. 定时功能定时功能 定时功能也是通过计数器的计数功能来实现的,计定时功能也是通过计数器的计数功能来实现的,计 数脉冲来自单片机的内部,数脉冲来自单片机的内部, 每个机器周期产生一个计数每个机器周期产生一个计数 脉冲,计数器加脉冲,计数器加1。根据定时时间的要求计算出计数器。根据定时时
21、间的要求计算出计数器 的预置值(定时常数)。的预置值(定时常数)。 22 5.2.3 定时器定时器/计数器的控制寄存器计数器的控制寄存器 1.定时器控制寄存器(定时器控制寄存器(TCON) 23 2. 工作方式控制寄存器(工作方式控制寄存器(TMOD) 24 5.2.4 定时定时/计数器工作方式计数器工作方式 1. 方式方式0 (13位定时位定时/计数器方式计数器方式) 最大计数值:最大计数值:213 = 8192 25 定时时间定时时间(T)=(213-计数初值)计数初值)机器周期机器周期 例例: :设单片机晶振频率为设单片机晶振频率为12MHz, 使用定时器使用定时器1以方式以方式0产生周
22、期为产生周期为 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(TCON中的中的TR1位控制定时的启动和停止位控制定时的启动和停止) 26 MOV TMOD, #00H; 设置设置T1为工作方式为工作方式0 MOV TH1, # 0F
23、8H; 设置计数初值设置计数初值 MOV TL1, #06H MOV IE, #00H; 禁止中断禁止中断 LOOP: SETB TR1; 启动定时启动定时 LOOP1:JBC TF1, LOOP2; 查询计数溢出查询计数溢出 AJMP LOOP1 LOOP2: MOV TH1, #0F8H; 重新设计数初值重新设计数初值 MOV TL1, #06H CLR TF1; 计数溢出标志位清计数溢出标志位清“0” CPL P1.0; 输出取反输出取反 AJMP LOOP; 重复循环重复循环 27 2. 方式方式1 (16位定时位定时/计数器方式计数器方式) 8 最大计数值:最大计数值:216 = 6
24、5536 28 3. 方式方式2 (8位自动重装定时位自动重装定时/计数器方式计数器方式) 最大计数值:最大计数值:28 = 256 29 3. 方式方式 (3定时定时/计数器方式计数器方式) (1) 工作方式工作方式3下的定时计数器下的定时计数器T0 TL0:8位定时位定时/计数器计数器 TH0:8位定时器位定时器 30 (2) 工作方式工作方式3下的定时器计数器下的定时器计数器1 T1设置为方式设置为方式3, 停止工作。如果停止工作。如果T0已工作已工作 在方式在方式3, 则则T1只能工作在方式只能工作在方式0方式方式1或方式或方式2下,下, 通常工作于方式通常工作于方式2为串行口提供波特
25、率时钟,只需为串行口提供波特率时钟,只需 设置好工作方式和计数初值,设置好工作方式和计数初值, 便可自动运行。便可自动运行。 31 应用举例:应用举例:设设89C51单片机的时钟频率为单片机的时钟频率为6MHz, 试编写利用试编写利用T0产生产生1s 定时的定时的 程序。程序。 ORG 0000H LJMP MAIN ; 上电,上电, 转向主程序转向主程序 ORG 000BH ; T0的中断入口地址的中断入口地址 AJMP SERVE ; 转向中断服务程序转向中断服务程序 ORG 0030H ; 主程序主程序 MAIN:MOV SP , #60H ; 设堆栈指针设堆栈指针 MOV B, #0A
26、H ; 设循环次数设循环次数 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; 重新赋计数值重新赋计数值 DJNZ B, LOOP CLR TR0 ; 1s定时到,定时到, 停止停止T0工作
27、工作 LOOP: RETI ; 中断返回中断返回 END 32 5.3 串行接口串行接口 5.3.1 串行接口的功能与结构串行接口的功能与结构 1. 串行接口的功能串行接口的功能 89C51单片机中的串行接口是一个全双工串行通信接口,单片机中的串行接口是一个全双工串行通信接口, 能同时发送、能同时发送、 接收数据,接收数据, 也能用作同步移位寄存器。也能用作同步移位寄存器。 SM0SM1 工作方式工作方式功功 能能波特率波特率 00方式方式 0 8位同步移位寄存器方式位同步移位寄存器方式fOSC/12 01方式方式 1 8位通用异步接收器位通用异步接收器/发送器发送器可变可变 10方式方式 2
28、 9位通用异步接收器位通用异步接收器/发送器发送器fOSC/32或或fOSC/64 11方式方式 3 9位通用异步接收器位通用异步接收器/发送器发送器可变可变 33 34 2. 串行接口结构串行接口结构 35 5.3.2 串行接口控制串行接口控制 1.数据缓冲器数据缓冲器SBUF 发送发送SBUFSBUF和接收和接收SBUFSBUF共用一个地址共用一个地址99H99H。 1 1)发送)发送SBUFSBUF存放待发送的存放待发送的8 8位数据,写入位数据,写入SBUFSBUF将同时启动发送。将同时启动发送。 发送指令:发送指令:MOV SBUF,A 2 2)接收)接收SBUFSBUF存放已接收成
29、功的存放已接收成功的8 8位数据,供位数据,供CPUCPU读取。读取。 读取串行口接收数据指令:读取串行口接收数据指令: MOV A,SBUF 36 3.节电控制寄存器节电控制寄存器PCON(87H) SMOD(PCON.7):波特率加倍控制位。:波特率加倍控制位。 SMOD=1,波特率加倍,波特率加倍, SMOD=0,则不加倍,则不加倍。 2.串行口控制串行口控制/状态寄存器状态寄存器SCON(98H) SM0SM0,SM1SM1:选择串行口选择串行口4 4种工作方式。种工作方式。 SM2SM2:多机控制位,用于多机通讯。多机控制位,用于多机通讯。 RENREN:允许接收控制位,允许接收控制
30、位,REN=1REN=1,允许接收;,允许接收;REN=0REN=0,禁止接收。,禁止接收。 TB8TB8:发送的第发送的第9 9位数据位,可用作校验位和地址位数据位,可用作校验位和地址/ /数据标识位数据标识位 RB8RB8:接收的第接收的第9 9位数据位或停止位位数据位或停止位 TITI:发送中断标志,发送一帧结束,发送中断标志,发送一帧结束,TI=1TI=1,必须软件清零,必须软件清零 RIRI:接收中断标志,接收一帧结束,接收中断标志,接收一帧结束,RI=1RI=1,必须软件清零,必须软件清零 37 5.3.3 串行接口的工作方式串行接口的工作方式 1. 方式方式0:同步移位寄存器方式
31、。用于扩展并行同步移位寄存器方式。用于扩展并行I/I/O接口。接口。 A.A.一帧一帧8 8位,无起始位和停止位。位,无起始位和停止位。 B.B.RXDRXD:数据输入:数据输入/ /输出端。输出端。 TXDTXD:同步脉冲输出端,每个脉冲对应一个数据位。:同步脉冲输出端,每个脉冲对应一个数据位。 C.C.波特率波特率Baud = fosc/12Baud = fosc/12 如:如: fosc=12MHzfosc=12MHz, Baud=1MHzBaud=1MHz,每位数据占,每位数据占1 1 s s。 D.D.发送过程:写入发送过程:写入SBUFSBUF,启动发送,一帧发送结束,启动发送,一
32、帧发送结束,TI=1TI=1。 接收过程:接收过程:REN=1REN=1且且RI=0RI=0,启动接收,一帧接收完毕,启动接收,一帧接收完毕,RI=1RI=1 发送时序 发送时序 写入写入 SBUF RXD输出输出 TXD TI D0D1D2D3D4D5D6D7 写写REN=1 RI=0 RXD输入输入 RI 接收时序 接收时序 (a) (b) 38 例:使用例:使用74HC164的并行输出端接的并行输出端接8支发光二极管,支发光二极管, 利用它利用它 的串入并出功能,的串入并出功能, 将发光二极管从左向右依次点亮。将发光二极管从左向右依次点亮。 MOV SCON, # 00H ; 串行口方式
33、串行口方式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位数据位,位数
34、据位,1个起始位个起始位(0),1个停止位个停止位(1)。 B.RXD:接收数据端。:接收数据端。 TXD:发送数据端。:发送数据端。 C.波特率:用波特率:用T1作为波特率发生器,作为波特率发生器,Baud=(2SMOD/32)T1溢出溢出 率。率。 D.发送:写入发送:写入SBUF,同时启动发送,一帧发送结束,同时启动发送,一帧发送结束,TI=1。 接收:接收:REN=1,允许接收。接收完一帧,若,允许接收。接收完一帧,若RI=0且停止位为且停止位为1 (或或SM2=0),将接收数据装入,将接收数据装入SBUF,停止位装入,停止位装入RB8,并使,并使RI=1; 否则丢弃接收数据,不置位否
35、则丢弃接收数据,不置位RI。 当当REN=1,CPU开始采样开始采样RXD引脚负跳变信号,若出现负跳变,引脚负跳变信号,若出现负跳变, 才进入数据接收状态,先检测起始位,若第一位为才进入数据接收状态,先检测起始位,若第一位为0,继续接收其,继续接收其 余位;否则,停止接收,重新采样负跳变。余位;否则,停止接收,重新采样负跳变。 数据采样速率为波特率数据采样速率为波特率16倍频,在数据位中间,用第倍频,在数据位中间,用第7、8、9个个 脉冲采样脉冲采样3次数据位,并次数据位,并3中取中取2保留采样值。保留采样值。 40 41 3. 方式方式2和方式和方式3:9位数据异步通讯方式位数据异步通讯方式
36、 A.一帧为一帧为11位:位:9位数据位,位数据位,1个起始位个起始位(0),1个停止位个停止位(1)。 第第9位数据位在位数据位在TB8/RB8中,常用作校验位和多机通讯标识位。中,常用作校验位和多机通讯标识位。 B.RXD:接收数据端,:接收数据端,TXD:发送数据端。:发送数据端。 C.波特率:波特率: 方式方式2:Baud=(2SMOD/64)fosc 。 方式方式3:Baud=(2SMOD/32)T1溢出率溢出率 。 D.发送:先装入发送:先装入TB8,写入,写入SBUF并启动发送,发送结束,并启动发送,发送结束,TI=1 接收:接收:REN=1,允许接收。接收完一帧,若,允许接收。
37、接收完一帧,若RI=0且第且第9位为位为1 (或或SM2=0),将接收数据装入接收,将接收数据装入接收SBUF,第,第9位装入位装入RB8,使,使RI=1; 否则丢弃接收数据,不置位否则丢弃接收数据,不置位RI。 42 43 4.计算波特率计算波特率 方式方式0为固定波特率:为固定波特率:Baud=fosc/12 方式方式2可选两种波特率:可选两种波特率: Baud=(2SMOD /64)fosc 方式方式1、3为可变波特率,用为可变波特率,用T1作波特率发生器。作波特率发生器。 Baud=(2SMOD/32)T1溢出率溢出率 T1为方式为方式2的时间常数:的时间常数: X = 28 - t/
38、T 溢出时间:溢出时间: t= (28 -X)T = (28 -X)12/ fosc T1溢出率溢出率=1/t= fosc /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重装时间常数时间。重装时间常数时间。 44 5.3.4 串行口的应用串行口的应用 串行口初始化编程格式:串行口初始化编程格式
39、: SIO:MOV SCON,#控制状态字;写方式字且控制状态字;写方式字且TI=RI=0 (MOV PCON,#80H) ;波特率加倍;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率发生器作波特率发生器 ( MOV TH1,#X ) ;选定波特率;选定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;开串行口中断;开串行口中断 ( SETB ES) 45 发送程序:先发送一个字符,等待发送程序:先发送一个字符,等待TI=1TI=1后再发送下一个字符。后再发送下一个字符。 1.1.查询方式:查询方式: TRAM:MOV A,R0 ;取数据;取数据 MOV SBUF,A ;发送一个字符;发送一个字符 WAIT:JBCTI,NEXT ;等待发送结束;等待发送结束 SJMP WAIT NEXT:INCR0 ;准备下一次发送;准备下一次发送 SJMP TRAM 2.中断方式:中断方式: ORG 0023H ;串行口中断入口;串行口中断入口 AJMP SINT MAIN: ;初始化编程;初始化编程 TRAM: MOV A,R0 ;取数据;取数据 MOV SBUF,A ;发送第一个字符;发送第一个字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数学等比数列试题及答案
- 2025年数字出版与电子信息知识考试测试题及答案
- 拍卖基础知识试题及答案
- 西方国家的文化政策对政治的影响试题及答案
- 西方网络政治与公民参与试题及答案
- 今日头条java校招面试题及答案
- 招聘护士试题及答案
- 南瑞集团java面试题及答案
- 2025年建筑材料与结构力学考试题及答案
- 软件设计师考试2025年专业技巧试题及答案
- 复杂应用的C语言设计考题及答案
- 中华护理学会团体标准|2024 针刺伤预防与处理课件
- 国家开放大学国开电大《健康管理实务》形考及期末终考题库
- 2025安全生产月全员安全主题宣讲课件二十六(41ye)
- 浙江省杭州市保俶塔中学2025届八下数学期末经典试题含解析
- 2025水利工程总承包合同
- 2025入团积极分子发展对象考试题库及答案详解(必刷)
- 2025河南省农业信贷担保有限责任公司招聘32人笔试参考题库附带答案详解
- 2025 年发展对象培训考试题及答案
- 《高效吸引目标客户》课件
- 江苏镇江历年中考作文题与审题指导(2003-2020)
评论
0/150
提交评论