网站大量收购独家精品文档,联系QQ:2885784924

80C51中断系统和定时器.pptx

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

本章学习目标:

了解中止概念,能正确描绘单片机中止响应过程

熟记80C51单片机5个中止源及其中止入口地址

能按要求正确设置特殊功效存放器IE、IP、TCON、SCON和TMOD

熟悉中止优先控制方法

能正确描绘定时/计数器4种工作方式,重点掌握方式1、方式2应用

学会定时/计数初值计算

能读懂教材中控制实例,学会编写同等难度中止、定时/计数程序;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.1中止系统;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;4.2定时器/计数器;定时/计数器初始化步骤

①向工作方式存放器TMOD写入工作方式控制字以确定:

(A)开启方式是TR0/TR1开启还是TR0/TR1和/配合一起开启;

(B)是定时方式还是计数方式;

(C)是工作方式0还是工作方式1、2或3。

②向计数器TH0、TL0(或TH1、TL1)装入初值;

③开启定时器/计数器(将运行控制位TR0/TR1置位);

④假如采取中止方式,还要将IE中中止允许控制位ET0(或ET1)、中止允许总控位EA置位。

;[例1]利用定时器T0方式0产生定时脉冲。

要求:每隔2ms产生宽度为一个机器周期正脉冲,由P1.0输出此定时序列脉冲信号(设时钟频率为6MHz)。

解: 首先要求出T0初值:

已知:时钟频率为6MHz,则可求得每个机器周期为 2μs(正脉冲宽度)。

定时时间公式为:

所以当定时时间为t=2ms时:;[解法一]:采取查询工作方式编程

ORG0000H;起始程序地址

AJMPMAIN;转到主程序地址去

ORG0100H;主程序起始地址

MAIN: CLRP1.0;将输出口P1第0位清0(输出脉冲起始值)

MOVTMOD,#00H;将T0设置为:由TR0开启、定时方式、工作方式0

MOVTH0,#0E0H;给定时器中计数器高8位送入初值

MOVTL0,#18H;给定时器中计数器低5位送入初值

SETBTR0;将TR0位置1,开启T0工作

LOOP: JNBTF0,LOOP;进行查询:若TF0为0,计数器未溢出,程序转到当前指令 地址若TF0为1,计数器溢出,发出中止请求,程序往下走

CLRTF0;溢出中止请求标志位清0(中止请求响应之前,对TF0进行清0)

SETBP1.0;将P1.0位置1,输出正脉冲

CLRP1.0;这是单机器周期指令,所以正脉冲宽度为2μs,正脉冲消失

MOVTH0,#0E0H;重新装载高8位初值

MOVTL0,#18H;重新装载低5位初值

SJMPLOOP;转到LOOP处继续查询定时2ms初始化程序。而且考虑中止

END;[解法二]:采取中止工作方式编程

ORG0000H;起始程序地址

AJMPMAIN;转到主程序地址去

ORG000BH;中止服务程序矢量地址(中止源是T0)

AJMPTOINT;转到中止服务程序入口地址TOINT

ORG0100H;主程序入口地址

MAIN: CLRP1.0;将P1口第0位清0(输出脉冲起始值)

MOVTMOD,#00H;将T0设置为:由TR0开启、定时方式、工作方式0

MOVTH0,#0E0H;给定时器中计数器高8位送入初值

MOVTL0,#18H;给定时器中计数器低5位送入初值

MOVIE,#82H;T0中止允许ET0=1,允许T0中止,并将总允许控制位EA置1

SETBTR0;将TR0位置1,开启T0工作

LOOP: SJMPLOOP;LOOP为指令当前地址(等候中止)

ORG0300H;中止服务程序入口地址

T0INT: SETBP1.0;将P1.0位置1,输出正脉冲

CLRP1.0;这是单机器周期指令,所以正脉冲宽度为2μs

文档评论(0)

知识改变命运 + 关注
实名认证
内容提供者

爱好打球

1亿VIP精品文档

相关文档