第5章80C51的中断系统及定时计数器

上传人:我*** 文档编号:135360247 上传时间:2020-06-15 格式:PPT 页数:45 大小:1.46MB
返回 下载 相关 举报
第5章80C51的中断系统及定时计数器_第1页
第1页 / 共45页
第5章80C51的中断系统及定时计数器_第2页
第2页 / 共45页
第5章80C51的中断系统及定时计数器_第3页
第3页 / 共45页
第5章80C51的中断系统及定时计数器_第4页
第4页 / 共45页
第5章80C51的中断系统及定时计数器_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《第5章80C51的中断系统及定时计数器》由会员分享,可在线阅读,更多相关《第5章80C51的中断系统及定时计数器(45页珍藏版)》请在金锄头文库上搜索。

1、2020 6 15 1 第5章80C51的中断系统及定时 计数器 80C51单片机的中断系统 5 1 80C51单片机的中断处理过程 5 2 80C51单片机的定时 计数器 5 3 80C52的定时 计数器2 5 4 2020 6 15 2 5 180C51单片机的中断系统 5 1 180C51中断系统的结构 CPU进行工作A时发生了事件B 请求CPU马上处理CPU暂时中断当前工作A 转去处理事件B事件B处理完后 回到工作A被中断的地方继续处理A工作 中断的概念 中断源中断请求中断服务中断返回中断系统 中断的优点 CPU利用率高控制实时性强系统可靠性好 2020 6 15 3 80C51中断系

2、统的结构 5个中断源 2个优先级 2020 6 15 4 中断源 5 1 280C51的中断源 外部中断0 INT0 外部中断1 INT1 T0溢出中断 TF0 T1溢出中断 TF1 串行口中断 RI或TI 2020 6 15 5 触发方式设置及中断标志 电平方式 ITx 0 INTx引脚低电平时IEx 1 响应中断后IEx不自动清0 INTx引脚状态 边沿方式 ITx 1 INTx引脚负跳变时IEx 1 响应中断后IEx自动清0 外部中断标志IE1 IE0 用IEx表示 2020 6 15 6 两种触发方式比较 电平方式时 INTx低电平必须保持到响应时 否则就会漏掉 在中断服务结束前 IN

3、Tx低电平必须撤除 否则中断返回之后将再次产生中断 例 8255的中断请求线在接受读或写操作后即被复位 因此以其去请求电平触发方式的中断比较方便 边沿方式时 采样到有效下降沿后 在IEx中将锁存一个1 若CPU暂时不能响应 申请标志也不会丢失 直到响应时才清0 例 ADC0809的转换结束信号EOC为正脉冲 经反相后就可以作为80C51的INTx信号 2020 6 15 7 溢出中断标志TF1 TF0 用TFx表示 溢出中断请求标志TFx Tx启动后就开始由初值进行加1计数 直至最高位产生溢出使TFx 1向CPU请求中断 CPU响应中断后TFx自动清0 SCON的中断标志 RI 串口接收中断标

4、志 响应中断时不能自动清除TI 串口发送中断标志 响应中断时不能自动清除 2020 6 15 8 5 1 380C51中断的控制 中断允许控制 中断源的开放和屏蔽由IE控制 1 开放 0 禁止 EX0 外中断0允许ET0 T0中断允许EX1 外中断1允许 ET1 T1中断允许ES 串口中断允许EA CPU中断允许 2020 6 15 9 中断优先级控制 中断优先级由IP控制 1 高级 0 低级 PX0 外中断0优先级PT0 T0中断优先级PX1 外中断1优先级 PT1 T1中断优先级PS 串口中断优先级 同一优先级的自然顺序 自高至低 INT0 TO INT1 T1 串口 2020 6 15

5、10 中断优先级遵循的原则 几个中断同时申请 先响应高级的中断正进行的中断服务 同级或低级中断不能对其中断 但可以被高级中断所中断 为此 中断系统内设有对应高 低2个优先级状态触发器 用户不能寻址 状态触发器的复位由中断返回指令RETI控制 2020 6 15 11 5 280C51单片机中断处理过程 5 2 1中断响应条件和时间 中断响应条件 有中断请求相应的中断允许位为1CPU开中断 即EA 1 遇下面情况之一将不被响应 此间中断条件失效 中断丢失 正在处理同级或高级中断当前选择周期不是所执行指令的最后一个机器周期正在执行RETI或访问IE或IP的指令 2020 6 15 12 中断响应时

6、间 中断响应至少需要3个完整的机器周期 3 8个 受阻时要附加3 5个机器周期 无同级或高级中断正进行 排序周期不是指令的最后机器周期 如MUL 5个 排序周期恰逢RETI类指令 要再跟指令 若是MUL 8个 2020 6 15 13 5 2 2中断响应过程 CPU响应中断过程 将相应优先级状态触发器置1 阻断后来同级或低级中断 执行硬件LCALL指令 PC入栈 中断服务程序入口址送PC 执行中断服务程序 编写中断服务程序注意 中断服务程序入口存放指令LJMP或AJMP现场保护与现场恢复 2020 6 15 14 5 2 3中断返回 中断服务程序最后指令必须是RETI 其功能 将断点从堆栈弹送

7、PC CPU从原断点继续执行将相应优先级状态触发器清0 恢复原来工作状态 注意 不能用RET代替RETI中断服务程序中PUSH和POP必须成对使用 2020 6 15 15 5 2 4中断程序举例 例5 1 单外部中断源示例 voidEx0 interrupt0 Flag Flag while 1 if Flag 0 左移 ScanNum crol ScanNum 1 P0 ScanNum else 右移 ScanNum cror ScanNum 1 P0 ScanNum DelayMs 500 2020 6 15 16 例5 2 如图所示 编写程序实现 系统上电后 数码管显示 P 按下S0键

8、则数码管进行加计数 S1键则数码管进行减计数 计数值显示在数码管上 voidt0Isr interrupt1 if Flag0 0 Flag0 1 Flag1 0 voidEx1Isr interrupt2 if Flag1 0 Flag1 1 Flag0 0 2020 6 15 17 5 380C51单片机的定时 计数器 结构 基本型 T0 定时 计数 T1 定时 计数 串口波特率发生器 增强型 增加了T2 见5 3 4节 5 3 1定时 计数器的结构和工作原理 TH1 TL1TH0 TL0TCONTMOD 2020 6 15 18 工作原理 实质是16位加1计数器 定时器模式时 对内部机器

9、周期计数 定时时间 计数值 机器周期计数器模式时 是对外部脉冲计数 脉冲由T0 P3 4 或T1 P3 5 引脚输入 注意 若计数值为N 计数初值为X 溢出信号使TF0或TF1置1 并发出中断请求 16位时有 X 65536 N12MHz晶振时 计数频率低于0 5MHz 2020 6 15 19 5 3 2定时 计数器的控制 工作方式寄存器TMOD GATE 门控位 GATE 0时 只要TRx为1 就可启动计数器工作 GATA 1时 定时器的启动还要加上INTx引脚为高电平这一条件 C T 模式选择位 清0为定时模式 置1为计数方式 M1M0 工作方式设置位 可设置四种工作方式 见下页 202

10、0 6 15 20 注意 TMOD不能进行位寻址 2020 6 15 21 控制寄存器TCON TFx Tx溢出标志位 响应中断后TFx有硬件自动清0 用软件设置TFx可产生同硬件置1或清0同样的效果 TRx Tx运行控制位 置1时开始工作 清0时停止工作 TRx要由软件置1或清0 即启动与停止要由软件控制 2020 6 15 22 5 3 3定时 计数器的工作方式 T0有方式0 1 2 3 T1有方式0 1 2 以T0为例说明 方式0 13位方式 2020 6 15 23 C T 1时 则为计数模式 有 X 213 N 8192 NC T 0时 则为定时模式 有 X 213 N 8192 N

11、 N t Tcy 例5 3 若计数个数N为2 求计数初值 公式法计算 X 8192 2 8190 1FFEH求补法计算 对0000000000010B取反加1为 1111111111110B 1FFEH 初值计算 公式法 求补法 X 对N求补 2020 6 15 24 门控位作用 当GATE 0时仅由TR0控制与门的开启 与门输出1时 控制开关接通 计数开始 当GATE 1时与门的开启由INT0和TR0共同控制 这种方式可以用来测量INT0引脚上正脉冲的宽度 注意 方式0的计数初值高8位和低5位确定麻烦 实际应用中常由16位的方式1取代 2020 6 15 25 方式1 16位方式 X 216

12、 N 65536 N计数范围 1 65536计数初值要分成2个字节分别送入TH0 TL0 2020 6 15 26 例5 4 若要求定时器T0工作于方式1 定时时间为1ms 当晶振为6MHz时 求送入TH0和TL0的计数初值各为多少 应怎样送入TH0和TL0 由于晶振为6MHz 所以机器周期Tcy为2 S 因此 N t Tcy 1 10 3 2 10 6 500X 216 N 65536 500 65036 FE0CH 也可以利用以下2条语句完成 TH0 65536 500 256 商为计数初值的高字节TL0 65536 500 256 余数为计数初值的低字节 分别将FEH送入TH0中 0CH

13、送入TL0中即可 2020 6 15 27 方式2 8位自动重装方式 X 28 N 256 N计数范围 1 256特别适合与脉冲信号发生器 2020 6 15 28 方式3 仅T0有此方式 T1的方式3将停止计数 TL0进行8位定时 计数TH0进行8位定时 T1方式2时 可出借TR1 TF1 2020 6 15 29 5 3 4定时 计数器应用举例 初始化程序应完成 对TMOD赋值 以确定T0和T1的工作方式 求初值 并写入TH0 TL0或TH1 TL1 中断方式时 要对IE赋值 开放中断 使TR0或TR1置位 启动定时 计数器工作 2020 6 15 30 计数应用 例5 3 有一包装流水线

14、 产品每计数24瓶时发出一个包装控制信号 试编写程序完成这一计数任务 用T0完成计数 用P1 0发出控制信号 确定方式字 T0在计数的方式2时 M1M0 10 GATE 0 C T 1方式控制字为06H 求计数初值X N 24X 256 24 232 E8H应将E8H送入TH0和TL0中 2020 6 15 31 while 1 if Flag 1 Flag 0 P37 0 P0 SegCode Counter DelayMs 20 P37 1 主程序 部分 中断服务程序 voidC0Isr interrupt1 Flag 1 Counter if Counter 13 Counter 0 2

15、020 6 15 32 定时应用 定时时间较小时 小于70ms 晶振为11 0592MHz时 Tcy为1 085 S 可直接采用方式1完成定时任务 例5 4 利用定时 计数器T0的方式1 产生10ms的定时 并使P2 7引脚上输出周期为20ms的方波 采用中断方式 设系统的晶振频率为11 0592MHz 确定方式字 T0在定时的方式1时 M1M0 01 GATE 0 C T 0方式控制字为01H 求计数初值X Tcy为1 085 SN 10ms 1 085 S 9216X 65536 9216 DC00H应将DC送TH0 00H送TL0 2020 6 15 33 voidmain void T

16、MOD 0 x01 TL0 0 xDC TH0 0 x00 IE 0 x82 TR0 1 while 1 主程序 中断服务程序 voidT0Isr interrupt1 P27 P27 TL0 0 xDC TH0 0 x00 2020 6 15 34 定时时间较大时 大于70ms 实现方法 一是采用1个定时器定时一定的间隔 如20ms 然后用软件进行计数 二是采用2个定时器级联 其中一个定时器用来产生周期信号 如20ms为周期 然后将该信号送入另一个计数器的外部脉冲输入端进行脉冲计数 例5 5 编写程序 实现用定时 计数器T0定时 使P2 7引脚输出周期为1s的方波 设系统的晶振频率为11 0592MHz 确定方式字 T0在定时的方式1时 M1M0 01 GATE 0 C T 0方式控制字为01H 求计数初值X Tcy为1 SN 20ms 12 11 0592 18432X 65536 18432 B800H应将B8送TH0 00H送TL0 采用定时20ms 然后再计数25次的方法实现 2020 6 15 35 voidmain void TMOD 0 x01 TL0 0 x00 TH

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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