跟我学51单片机_二_单片机内部定时_计数器和中断系统
跟我学51单片机
●●●
作者/赵亮
跟我学51单片机(二) ——单片机内部定时/计数器和中断系统
上讲通过讲述用单片机控制一个外部的LED
T2的工作方式稍有区别,这里不做介绍,实验套件光盘中有实际应用程序。同时,单片机中的定时器和计数器是复用的,计数器是记录外部脉冲的个数,而定时器则是由单片机内部时钟提供的一个非常稳定的计数源。本讲中,以T0、T1作为定时器来进行实例介绍使用。
了解了单片机内的定时器资源后,接下来我们来对定时器寄存器进行详细介绍。TMOD(见表1)、TCON(见表3)与定时器T0、定时器T1间通过
首先让我们举闹钟为例,将它定时在一分钟后
内部总线及逻辑电路连接,TMOD用于设置定时器的工作方式,TCON用于控制定时器的启动、停止,标志定时器的溢出和中断情况。当设置了定时器的工作方式并启动定时器工作后,定时器就按被设定的工作方式独立工作,不再占用CPU的操作时间,只有在计数器计满溢出时才可能中断CPU当前的操作。
表1 TMOD寄存器
GATE
闪烁实验来向读者介绍了单片机的工作原理与开发流程。这一讲将介绍单片机内部非常重要的两个资源——定时/计数器和中断系统。通过该讲,读者可以掌握定时器的工作原理和单片机的中断系统。从而设计定时器计数程序和中断服务程序。
一、原理简介
闹铃,这就需要秒针走一圈(60次)。即一分钟时间转化为秒针走的次数,也就是计数的次数,计数到了60次然后闹铃,而每一次计数的时间是1秒。单片机内部的定时/计数器跟闹钟类似,可以通过编程来设定要定时的时间、定时时间到了进行相应的操作。那么在单片机内部计数一次的时间是多少呢,51单片机输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也可看作是对计算机机器周期的计数器。因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号。故其频率为晶振频率的1/12。如果晶振频率为12MHz,则定时器每接收一个输入脉冲的时间刚好为1μs。在本实验套件中采用的是11.0592M的晶振,故每接收一个输入脉冲的时间约为1.085μs。实现精确定时在实际项目应用中非常重要,因为往往需要用到精确定时一段时间,然后定时时间到的时刻做相应的任务。
那如何编程实现定时时间呢?首先先简单介绍下本实验板上单片机(STC89C52)内的定时器资源。STC89C52内有三个定时/计数器,分别为T0、T1和T2。其中T0、T1工作方式一样,一并介绍。
C/T
M1M0GATA
C/T
M1M0
用于设置T1用于设置T0
表中各位(从左至右为从高位到低位)含义如下。
TMOD的低4位为定时器0的方式字段,高4位为定时器1的方式字段,它们的含义完全相同。
M1和M0:工作方式控制位,其定义如表2所示(其中i=0,1)。
表2 定时器工作方式控制位
M10011
M00101
工作
方式方式0方式1方式2方式3
功 能
TLi的低5位与THi的8位构成13位计数器
TLi和THi构成16位计数器自动重装8位计数器,TLi溢出,
THi内容自动送入TLi定时器T0分成两个8位计数器,
T1停止工作
2011. 02
67
跟我学51单片机
C/T:功能选择位。C/T=0时,设置为定时
器工作方式;C/T=1时,设置为计数器工作方式。
GATE:门控位。当GATE=0时,软件控制位TR0或TR1置1即可启动定时器。
TR0或TR1置0即可停止定时器工作;当GATE=1时,软件控制位TR0或TR1需置1,同时还需INT0(P3.2)或INT1(P3.3)为高电平方可启动定时器,即允许外部中断INT0、INT1启动定时器。
值得注意的是TMOD寄存器不能位寻址,只能用字节指令设置高4位定义定时器1上的工作方式或低4位定义定时器0的工作方式。而且在复位时,TMOD所有位均置0。
表3 TCON寄存器
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
在上文中提到定时器溢出和中断,什么是定时器溢出呢?我们可以这样理解:往一个盆中滴水,水滴持续落下,盆中的水持续变满,最终会有一滴水使得盆中的水满了(这相当于计数到最大值)。这个时候如果再有一滴水落下,这时水就会漫出来,这就是“溢出”。当然,水溢出是流到地上,而定时器溢出后将使得TF0变为“1”。一旦TF0由0变成1,就会产生中断。中断就是由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理该事件的一个程序。该程序执行完成后,CPU接着执行被暂停的程序的这样一个过程。这正如我们本来在做某事,有人过来请求帮忙,我们停下手中的活去帮忙,完事之后回来接着做原来的事情。根据中断引发的不同,或者CPU响应中断的不同条件,也可以把中断划分为可屏蔽中断(也就是说我们可以拒绝帮别人忙,继续做自己的事情)和不可屏蔽中断(事情做累了,必须休息)两种。
了解了中断原理之后,我们来看中断允许控制寄存器IE(见表4)和中断优先寄存器IP(见表5)。
表4 IE寄存器
EA
--ET2
ES
ET1
EX1
ET0
EX0
表中各位(从左至右为从高位到低位)含义如下。
(1) TFl:定时器1溢出标志位。当定时器1计满数产生溢出时,由硬件自动置TF1=1,向CPU发出定时器1的中断请求,在中断允许时响应。进入中断服务程序后,由硬件自动清0。在中断屏蔽时,TF1可作查询测试用,此时只能由软件清0。
(2) TR1:定时器1运行控制位。由软件置1或清0来启动或关闭定时器1。
当GATE=l,且为高电平时,TRI置1启
动定时器l;当GATE=0时,TR1置1即可启动定时器1。
(3) TF0:定时器0溢出标志位。其功能及操作情况同TF1。
(4) TR0:定时器0运行控制位。其功能及操作情况同TR1。
(5) IE1:外部中断1(INT1)请求标志位。(6) IT1:外部中断1触发方式选择位。(7) IE0:外部中断0(INT0)请求标志位。(8) IT0:外部中断0触发方式选择位。值得注意的是TCON中的低4位用于控制外部中断,与定时器/计数器无关,在以后的讲座中会提及。当系统复位时,TCON的所有位也均清0。
EA:中断允许总控制位。EA=0,禁止所有中断;EA=1,开放所有中断,但是否允许各中断源的中断请求,还要取决于各中断源的中断允许控制位的状态。这点要注意,初学者往往容易忘了开放所有中断,从而导致没法进入中断源。
ET2:时器/计数器T2的中断允许位。ES:串行口的中断允许位。
ET1:定时器/计数器T1的中断允许位。EX1:外部中断1(INT1)的中断允许位。ET0:定时器/计数器T0的中断允许位。EX0:外部中断0(INT0)的中断允许位。以上7个中断允许控制位为0时,禁止中断,为1时允许中断。
表5 IP寄存器
----PT2
PS
PT1
PX1
PT0
PX0
PT2:定时器/计数器T1中断优先级控制位。
68
2011. http://www.77cn.com.cn
跟我学51单片机
PS:串行口中断优先级控制位。
PT1:定时器/计数器T1中断优先级控制位。PX1:外部中断1优先级控制位。PT0:定时器/计数器T0中断控制位。PX0:外部中断0中断优先级控制位。
以上6个中断优先级控制位分别为“0”时为低级中断,为“1”时为高级中断。如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部顺序查询逻辑电路,按自然优先级顺序确定该 …… 此处隐藏:3242字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [文秘资料]班长职务辞职报告
- [文秘资料]完美的辞职报告
- [文秘资料]经典的员工辞职报告
- [文秘资料]医院口腔医生辞职报告
- [文秘资料]总经理辞职报告范文四篇
- [文秘资料]超市职员个人辞职报告
- [文秘资料]村妇联主任的辞职报告
- [文秘资料]辞职报告书格式
- [文秘资料]酒店辞职报告简单范文
- [文秘资料]联通的辞职报告
- [文秘资料]2017最新私企员工辞职报告范文
- [文秘资料]2019年度医院基层党组织书记抓党建述职
- [文秘资料]工作时间长辞职报告
- [文秘资料]辞职报告怎么写出来
- [文秘资料]个人能力原因辞职报告
- [文秘资料]网络工程师辞职报告
- [文秘资料]项目部辞职报告
- [文秘资料]缝纫工辞职报告怎么写
- [文秘资料]XXX州委书记述职报告
- [文秘资料]抓基层党建工作述职报告
- (王虎应老师讲课记录)六爻理象思维
- 八个常见投影机故障排除法
- 质量专业综合知识(中级)第一章质量管理
- 煤矿班组建设实施意见
- 我国快餐业与肯德基经营模式的比较与分
- 汽车保险杠模具标准化模架技术工艺研究
- 汽车二级维护作业团体赛比赛规程
- 装卸搬运工安全操作规程
- 高效的工作方法-刘铁
- 依据《生产安全事故报告和调查处理条例
- 2015专业PS夜景亮化效果图制作教程
- 企业劳动定额定员浅析
- 中枢神经系统医学影像学本科五年制第五
- 长城汽车参观探营第三站:研发试验中心
- 小升初语文专项训练
- 建筑工程质量检测资质分类与等级标准
- 周燕珉-我国养老社区的发展现状与规划
- 《生命里最后的读书会》读后感
- 实验室管理评审报告
- CCNA思科网院教程精华之网络基础知识




