项目三定时计数器和中断系统应用知识课件

上传人:yulij****0329 文档编号:141720679 上传时间:2020-08-11 格式:PPT 页数:95 大小:1.43MB
返回 下载 相关 举报
项目三定时计数器和中断系统应用知识课件_第1页
第1页 / 共95页
项目三定时计数器和中断系统应用知识课件_第2页
第2页 / 共95页
项目三定时计数器和中断系统应用知识课件_第3页
第3页 / 共95页
项目三定时计数器和中断系统应用知识课件_第4页
第4页 / 共95页
项目三定时计数器和中断系统应用知识课件_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《项目三定时计数器和中断系统应用知识课件》由会员分享,可在线阅读,更多相关《项目三定时计数器和中断系统应用知识课件(95页珍藏版)》请在金锄头文库上搜索。

1、项目三、定时计数器和中断系统应用,项目三、定时/计数器和中断系统应用- 任务1.秒脉冲发生器,能力目标 1.能正确运用定时/计数器产生秒信号 2.秒脉冲发生器程序的编写 3.学会中断控制系统的应用 4.秒脉冲发生器程序的仿真调试方法 学习内容 1.掌握定时/计数器的组成及功能 2.掌握单片机内部结构资源:TH0、TL0、TH1、TL1、TMOD、TCON 3.掌握中断控制系统的概念及定时功能 4.理解预置数的用法和溢出的概念,一一、任务要求 在项目二的任务2中曾经采用单纯的软件来实现延时或定时很耗费单片机的资源,采用可编程定时/计数器,可以解决上述问题。 用可编程定时/计数器设计一个秒脉冲发生

2、器,通过P1.0端口输出驱动二极管每隔1s亮一次来显示秒脉冲发生器效果。 定时1s用定时器中断来实现。 二、任务分析 首先得用可编程定时/计数器设计一个0.5s脉冲发生器,每隔0.5s将P1.0端口取反, 即可在P1.0端口输出1Hz方波,P1.0硬件接法可参考项目二中任务2的接法。,2、定时/计数器功能 (1)计数功能 对外部输入脉冲计数。 定时/计数器0计数信号由芯片的T0(P3.4)端引入。 定时/计数器1计数信号由芯片的T0(P3.5)端引入。 外部输入脉冲频率不能高于单片机晶体振荡频率的1/24,单片机机器周期变化的频率为单片机晶体振荡频率的1/12,因为单片机在相邻两个机器周期中采

3、样到端口上有负跳变时,才计作输入一个脉冲。,(2)定时功能 对内部机器周期脉冲计数。 定时时间=计数脉冲数机器周期时间 由于机器周期时间取决于单片机晶振,(二)中断概念与定时中断 1、中断定义,单片机主要用于实时控制,当对控制对象进行正常控制时,如果外部突然有特殊情况发 生,这个向CPU发出请求的过程叫中断请求,则CPU必须立即暂停原来正常的控制程序,并转向执行应急处理的服务程序,这个转去处理应急任务的过程叫中断响应,处理应急的过程叫中断服务,处理完毕,再恢复到原来正常控制程序的暂停处继续执行,这个返回过程叫中断返回,这样的过程称为中断系统。,表3-1日常生活中的中断与单片机中断比较,2、 中

4、断服务子程序返回指令 中断响应是单片机响应随机的突发要求,进行相应处理,等应急处理的服务程序完毕, 要进行中断返回,为区别子程序返回,中断服务子程序返回指令用“RETI” 3、 中断源 能够引发CPU中断的事件源称为中断源。MCS-51系列单片机有定时中断(定时/计数器 0和定时/计数器1)、外中断(外中断0和外中断1)和串行中断3类。,4、定时中断 当它们计数到预定的次数或预定的时间时,通过单片机内部硬件电路将定时中断源的中断请求标志置于“1”,向CPU提出中断请求,让CPU及时作出处理。 (三)定时/计数器控制 1、 工作方式控制寄存器TMOD(89H) 特殊功能寄存器TMOD用于控制T0

5、和T1的工作方式,低4位用于控制T0,高4位用于控制T1,,GATE 门控位。 GATE = 0 启动不受 /INT0或 /INT1的控制; GATE = 1 启动受 /INT0 或 /INT1 的控制。 C/T 外部计数器 / 定时器方式选择位 C/T = 0 定时方式; C /T = 1 计数方式。 M1M0 工作模式选择位(编程可决定四种工作方式)。,TMOD工作方式控制位:,2、定时控制寄存器TCON(88H) TCON的作用是控制定时器的启、停,标志定时器的溢出和中断情况,定时器控制字TCON格式,TR0 定时 / 计数器1运行控制位。软件置位。 TR1 定时 / 计数器1运行控制位

6、。(用法与TR0类似),3、 定时器/计数器的4种工作方式 (1)方式0 计数寄存器TLi 低5位 + THi8位 (T1、T0的等效逻辑结构),(2)工作方式1,与方式0相似。与方式0的区别:计数位数不同。 计数 寄 存 器:THi(高8位)+ TLi(低8位),(3)方式2 与方式0、1的区别:1)计数位数不同; 2)初值自动重装。,(4)方式3 T0定时/计数,而T1停止计数,但可作波特率发生器。T0分成两独立定时/计数器TL0和TH0。 TL0使用C/T、GATE、TR0、/INT0、TF0定时/计数, TH0使用TR1、TF1 因此,只能用于定时,(a)TL0作8位定时/计数器,(b

7、)TH0作8位定时器,TR1,4、中断允许控制寄存器IE,表3-3 中断允许控制寄存器IE,(1) EA(IE.7):总允许控制位,若EA=0,禁止AT89C51所有中断源的中断请求;若EA=1,则总控制被开放,但每个中断源是允许还是被禁止CPU响应,还受控于中断源的各自中断允许控制位的状态。,(2) ET2(IE.5):定时器T2溢出中断允许控制位,位地址是ADH。 (3) ES(IE.4):串行口中断允许控制位,位地址是ACH。 (4) ET1(IE.3):定时器T1的溢出中断允许控制位,位地址为ABH。 (5)EX1(IE.2):外部中断 的中断请求允许控制位,位地址是AAH。 (6)

8、ET0(IE.1):定时器T0的溢出中断允许控制位,位地址是A9H。,(7)EX0(IE.0):外部中断 的中断请求允许控制位,位地址是A8H。 以上各位置为“1”时,允许中断;清为“0”时,禁止中断。 注意要设定某中断源允许中断时,除将对应的中断源允许控制位置成“1”外,还有将总控制位EA置成为“1”。,5、相关指令,(1)位指令的应用 SETB EA ;开启总中断允许 SETB ET0 ;开启定时器0中断允许 SETB TR0 ;启动定时/计数器0 CLR EA ;禁止总中断允许 CLR ET0 ;禁止定时器0中断允许 CLR TR0 ;禁止定时/计数器0,(2)位控制转移指令 JBC b

9、it,rel; 若(bit)=1时,则转移到标号对应的地址,并且同时bit0。 例如:JBC TF0,NEXT; 若定时器0数据溢出时,即TF0=1时,则转移到标号NEXT对应的地址,并且同时清定时溢出标志TF00,这样下次就可以重新定时/计数。,(3)比较转移指令 CJNE A,#data,rel; (A)data,PC+3+rel跳转到目标地址, (A)=data,PC+3顺序向下执行。 CJNE A,direct,rel; CJNE Rn,#data,rel; CJNE Ri,#data,rel;,CJNE系列指令可产生三分支程序:,(5)判CY转移指令 JC rel ;若(CY)=1,

10、(PC)(PC)+2+rel 若(CY)=0,(PC)(PC)+2顺序 JNC rel ;若(CY)=0,(PC)(PC)+2+rel 若(CY)=1,(PC)(PC)+2顺序 上述操作不影响操作位。,例:编程通过P1.0线连续输出256个宽度为5个机器周期长的方波。 解: MOV R0,#00H;置R0的值为256 LOOP:CLR P1.0 ; P1.0=0 CPL P1.0 ; P1.0=1 NOP NOP DJNZ R0, LOOP 例:用软件实现如图3-8所示P1.0P1.3间的逻辑运算。 解:MOV C,P1.1 ORL C,P1.2 ANL C,P1.0 MOV P1.3,C 图

11、3-8 逻辑运算图,(四)中断入口地址,表3-4 中断入口地址,(五)定时器/计数器的设计步骤 初始化的内容如下: 1、设置TMOD寄存器参数 2、计算计数初值 计算出计数初始值并写入TH0、TL0、TH1、TL1中。 计数器的初始值和实际计数值并不相同,两者的换算关系如下:设实际计数值为C,计数最大值为M,计数初始值为X,则X=M-C。其中计数最大值在不同工作方式下的值不同,具体如下:,(1)工作方式0:M=213=8192。 (2)工作方式1:M=216=65536。 (3)工作方式2:M=28=256。 (4)工作方式3:M=28=256。 计数初值都是X=M-C(十六进制数)。 定时器

12、模式下对应的定时时间为: T=CT机=(M-X)T机 式中,T机为单片机的机器周期(T机为晶振时钟周期的12倍)。 将计数所得的X值转换成相应的16进制数,分别放入相应的TH0、TL0或TH1、TL1中。,3、定时中断选择 给定时器控制寄存器TCON送命令字,控制定时/计数器的启动和停止。 (1)应用定时中断编程时,需要开启相应的定时中断控制位,否则将其设为禁止。 (2)若定时/计数器仅使用一次,则要在服务程序中把工作启动/停止控制位TR清为“0”,关闭定时/计数器,若连续使用时,则不要改变TR位。,(3)当不使用定时中断时,即用查询溢出标志编程, 无论定时/计数仅用一次还是连续使用,每次都要

13、用指令将对应的溢出标志位清“0”。而采用中断编程时,一旦中断响应,由硬件自动将对应的溢出标志撤销。,例:产生周期为1ms的定时方波 选择T1方式0用于定时,在P1.1输出周期为1ms的方波,晶振fosc=6MHZ。根据题意,只要使P1.1每隔500us取反一次即可得到1ms方波,因而T1的定时时间为500us,因定时时间不长,取方式0即可,则M1M0=00;因是定时器方式,所以C/ =0;在此用软件启动T1,所以GATE=0.T0不用,方式字可任意设置,只要不使其进入方式3即可,一般取0,故TMOD=00H。系统复位后TMOD为0,可不对TMOD重新清“0”。,下面计算500us定时T1初始值

14、: 机器周期T=12/fosc=12/6MHZ=2us 设初始值为X,则(213-X)210-6s=50010-6s X=7942=111110000110B=1F06H 因为在作13位计数器同时,TL1的高3位未用,应填写0,TH1占高8位,所以X的实际填写值应为X=11111000000110B=F806H,结果TH1=F8H,TL1=06H。,四、任务实施 1、硬件设计 硬件设计可采用项目一中任务2的硬件原理图。2、软件设计 (1)要二极管产生每一秒亮一次,则P1.0得每0.5s取反一次,所以定时器的定时时间为0.5s。 (2)设定工作方式寄存器TMOD。 表3-5 工作方式寄存器TMO

15、D设置,(3)计算计数初值。 选用晶振为6MHZ,则机器周期T=12/fosc=12/6MHZ=2us,设初始值为X,则定时时间为(216-X)210-6s, 当X=0,在晶振为6MHZ的情况下,采用定时/计数器1工作方式1下 ,最长的定时时间为216210-6s=131ms,而125 ms4=500 ms=0.5s,可选定时0.5s的流程图如图3-9所示,对定时器125 ms中断4次,就是0.5s。(216-X)210-6s=125 ms ,X=3036=(BDC)16,所以TH1=0BH,TL1=0DCH,图3-9 定时0.5s示意图,图3-10 主程序流程图,图3-11 定时中断服务程序

16、流程图,(5)程序设计,3、软件调试与仿真 用PROTEUS进行仿真调试 当来一个外中断,指示灯发生变化。,五、总结与提高 1、中断优点和功能: 2、程序的结构: 3、定时器/计数器的运用:,项目三、定时/计数器和中断系统应用- 任务2.脉冲计数测量,能力目标 1.正确运用定时/计数器进行计数 2.把握主程序、子程序、中断程序之间的关系,各入口和出口参数的协调 3.硬件资源、软件资源的合理分配 4.脉冲计数测量电路仿真调试 学习内容 1.定时/计数器计数功能的运用 2.单片机脉冲计数测量控制系统的组成 3.相关指令的学习 4.掌握外部中断系统的应用,一、任务要求 由MCS-51单片机组成最小应用系统,对外部脉冲信号进行计数测量,通过8个发光二极管(LED)显示外部脉冲的个数。 二、任务分析 1构建一个单片机的最小系统。 2采用MCS-51单片机外部中断0来实现对外部中断的测量,即每输入一个外部脉冲,引起外部中断一次。 3单片机将测量的脉

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

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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