免费预览已结束,剩余35页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 定时 / 计数器与中断系统,内容提要:,5-1 mcs-51中断系统,5-2 定时 / 计数器,5-3 定时 / 计数器的应用,5-1 mcs-51中断系统,一、概述,与上对比,单片机中也有同样的问题。cpu正 在执行原程序,突然,被意外事情打断,转去执行 新程序。cpu执行新程序结束后,又回到原程序中 继续执行。这样的过程就叫 。,什么叫中断? 举例:某同学正在教室写作业,忽然被人叫出去,回来 后,继续写作业。这就是生活中中断的例子。,对突发事故,做出紧急处理。 根据现场随时变化的各种参数、信息,做出实时监控。 cpu与外部设备并行工作,以中断方式相联系,提高工作效率。 解决快速cpu与慢速外设之间的矛盾。 在多项外部设备同时提出中断请求情况下,cpu能根据轻重缓急响应外设的中断请求。,中断的作用:,对于mcs-51单片机中断系统的组成可以用一句话来讲, 叫做:“五源中断,两级管理”,五个中断源: 入口地址 外部中断0(/int0) 0003h t0溢出中断 000bh 外部中断1(/int1) 0013h t1溢出中断 001bh 串口中断 0023h,二、中断请求源(“五源中断”),中断源的中断请求,如何通知cpu?,利用中断请求标志位来通知!,以上6个中断请求标志位分别分布在tcon、scon两个寄存器中。,tcon,scon,在中断源与cpu之间有二级中断允许控制逻辑电路,类似开关,其中第一级为一个总开关,第二级为五个分开关,由ie控制。,三、中断控制(两级管理) 1、中断屏蔽(第一级管理),ie,若为“1”,开关接通,允许 例如 setb ea 若为“0”,开关断开,不允许 例如 clr ie.7,2、中断优先级(第二级管理),为什么要有中断优先级?,p s 串口的中断优先级别 pt1 定时 / 计数器t1的中断优先级别 px1 外部中断1 的中断优先级别 pt0 定时 / 计数器t0的中断优先级别 px0 外部中断0 的中断优先级别,该位是“1”时,为高级优先级 该位是“ 0”时,为低级优先级,同一级中的5个中断源的优先顺序是:,中断优先原则:(概括为四句话) 1、低级不打断高级 2、高级不睬低级 3、同级不能打断 4、同级、同时中断,事先约定。,事件1,事件2,子程序2,子程序1,中断嵌套的概念:,主程序,中断,中断,四、mcs-51中断的响应过程,响应过程:(假设已使某中断请求标志置1) (1)先使相应优先级状态触发器置1; (2)执行一个硬件子程序的调用, 1)硬件清零相应中断请求标志(ti、ri除外) 2)将当前pc内容压入堆栈保护断点; 3)将中断服务子程序入口地址送pc转移。,返回过程:(reti执行后) (1)使相应优先级状态触发器清0。 (2)从堆栈中弹出栈顶的两个字节内容送pc恢复断点。 (3)cpu接着中断处继续执行原程序。,注意:1)保护断点与保护现场以及恢复断点与恢复现场的区别。 2)外部中断响应时间在3 8个机器周期之间。 利用外部中断实现单步操作:,+5v,在主程序中: clr it0 setb ea setb px0 setb ex0 在中断服务子程序中: jnb p3.2 , $ jb p3.2 , $ reti,小结: 1、mcs-51单片机中断系统有几个中断源?分别是什么? 事先约定的优先顺序是怎样的? 2、如何进行中断允许控制?如何进行中断优先级控制? 3、中断优先的规则是什么?,5-2 定时 / 计数器,一、定时/ 计数器的结构,51子系列单片机内有两个十六位增一 定时 / 计数器,th0,计数值高八位,tl0,计数值低八位,th1,计数值高八位,tl1,计数值低八位,tmod,tcon,工作方式,定时 / 计数控制,1、工作方式控制寄存器 tmod,2、定时 / 计数器控制寄存器tcon,tcon,能否启动定时 / 计数器工作与gate有关,分两种情况: gate = 0 时,若tri = 1,开启ti计数工作;(i = 0或1) 若tri = 0,停止ti计数。 gate = 1 时,若tri = 1 且/inti = 1时开启ti计数; 若tri = 1 且/inti = 0时不能开启ti计数。 若tri = 0, 停止ti计数。,二、定时 / 计数器的四种工作模式,m1 m0 模式 说明 0 0 0 13位定时/计数器 高八位th(7 0)+ 低五位tl(4 0) 0 1 1 16位定时/计数器 th(7 0)+ tl(7 0) 1 0 2 8位计数初值自动重装 tl(7 0) th(7 0) 1 1 3 t0运行,而t1停止工作,8位定时/计数。,1、模式0 计数寄存器tli 低5位 + thi8位 (t1、t0的等效逻辑结构),tli (5位),thi (8位),tfi,中断,04 07,c/t = 0 定时; c/t = 1 对外计数。 定时:fosc / 12 = 1 /(12/fosc) = 1 / t,波形等间隔,次数已定,时间确定 即对机器周期进行计数。,左图定时时间为 n*t,n个方波,计数:脉冲不等间隔。,每个下降沿计数一次 确认一次负跳变需两个机器周期, 所以,计数频率最高为fosc / 24。,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)th0作8位定时器,模式3时,t1可定时为模式0、1、2的定时/计数,但不可中断,所以一般只作串口波特率发生器用。,(a) t0模式3时t1模式0,(b) t0模式3时t1模式1,(c) t0模式3时t1模式2,编程前确定参数: (1)定时/计数器 t0、t1选择其一, (2)工 作 方 式 c/t及gata, (3)计 数 初 值 加1计数、16位。,计数:x=mn;m=213=8192(模式0) m=216=65536(模式1) m=28=256 (模式2、 模式3) 定时: x=mn =m t/t(t为所要求的 定时时间,t为机器周期),(4)工 作 模 式 m1、m0,四、定时/计数器的应用,编制初始化程序: 1)写tmod; 2)确定ie、ip; 3)写计数初值; 4)启动计数(tri),例1、设计一个能产生t=1ms的周期信号发生器,试编程。 解:选t0; c/t=0,gate= 0,n = t / t = t /12(1/fosc)= 500 所以, x = m 500 , 模式0、模式1均可,取模式0,m=213=8192 x = 8192500 = 7692 = 1e0ch,= 0001 1110 000 0 1100b,,1e0ch,tl0,th0,f0h,0ch,先将低五位放入tl0中,再将剩余的数从右 向左数出八位放入th0中。,ljmp main org 000bh ljmp inse1 org 1000h main: mov sp,#60h mov tl0,#0ch mov th0,#0f0h mov tmod,#00h,setb tr0 setb et0 setb ea sjmp ,org 0000h,inse1: mov tl0,#0ch mov th0,#0f0h cpl p10 reti,小结:1、mcs-51单片机内有几个定时计数器? 如何计数? 2、t0、t1有几种工作方式? 3、编程应用前要事先确定的参数有几个?,布置作业:p141 9,5-3 定时 / 计数器的应用,tcon,复习:,例2、设fosc = 6mhz,利用单片机内定时/计数器及p10口线输出1000个脉冲,脉冲周期为2mas,试编程。,t = 121/fosc = 2us 选取t0定时;t1计数。,设t0采用中断方式产生周期为2ms方波,t1对该方波计数,当输出至第1000个脉冲时,使tf1置1。 在主程序中用查询方法,检测到tf1变1时,关掉t0,停止输出方波。,t0、t1参数的确定: t0模式0、定时:脉宽为脉冲周期的一半 所以,x = 2131ms / 2us = 0001 1110 0000 1100b th0 = 0f0h ; tl0 = 0ch t1模式1、计数:n = 1000 则 x = 655361000 = 64536 = 0fc18h (若选模式0也可以,此时x = 7192=1c18h),程序: org 0000h ljmp main org 000bh ljmp tos org 1000h,main: mov tmod,#50h;t0定时,模式0;t1计数,模式1 mov tl0,#0ch mov th0,#0f0h mov tl1,#18h mov th1,#0fch,setb tr1 setb tr0 setb et0 setb ea wait: jnb tf1,wait;查询1000个脉冲计够没有到? clr ea clr et0 anl tcon,#0fh ; 停t0、t1 sjmp tos: mov tl0,#0ch mov th0,#0f0h cpl p10 reti end,例3、脉冲参数测量gate功能的使用。 脉冲高电平(计数)长度值存于21h、20h中, 脉冲低电平长度存于23h、22h中。 电路连接如下图所示。,解: 复习gate的用法: gate = 0时,tri = 1,即可启动ti定时 / 计数 gate = 1时,tri = 1,且 =1,才启动定时 / 计数。,org 0000h ljmp main org 2000h main:mov tmod,#99h ;t0、t1均工作在定时, ;模式1,gate=1 mov a,#00h ;t0、t1赋计数初值00h, ; 定时最长时间为0000 65536 mov tl0,a,mov th0,a mov tl1,a mov th1,a,test0: jb p32,test0 ;检测是否到a点 setb tr0 ;到a点,tr0 = 1,做好取计时值准备。 test1: jnb p32,test1 ;检测是否到1点 setb tr1 ;到1点t0计时;tr1 = 1,做好t1计时准备。 test2:jb p32,test
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电信通讯技术试题及答案
- 特殊天气下施工现场安全应急响应方案
- 海上光伏接入电网技术方案
- 财务数据标准化方案
- 城市供水系统智能化改造方案
- 质量管理系统内审与检查方案
- (2025年)消化系统疾病病人的护理试题附答案
- 2025年新员工入职安全教育培训试题(审定)附答案
- (2025年)医学影像“三基”试题库及答案
- 2025年医生入职笔试题及答案
- 2025森蓝环保(上海)有限公司招聘2人考试笔试备考试题及答案解析
- 2025年科技部技术合同示范文本(技术支持服务)
- 山东省烟台市芝罘区2025-2026学年九年级上学期期中考试语文试题(无答案)
- 大数据平台项目实施规范实施方案
- 砥砺前行精准施策聚力提升-在高二年级期中考试质量分析会上的讲话
- 铝合金深槽阴角施工方案
- 水罐清洗施工方案
- 独“数”一帜:让劳动教育融入数学学科课程
- 2025政务服务效能提升主题演讲稿
- 金融赋能:为新质生产力注入动能
- 大学生职业生涯规划
评论
0/150
提交评论