项目三定时计数器和中断系统应用.ppt
《项目三定时计数器和中断系统应用.ppt》由会员分享,可在线阅读,更多相关《项目三定时计数器和中断系统应用.ppt(95页珍藏版)》请在三一办公上搜索。
1、项目三、定时计数器和中断系统应用,项目三、定时/计数器和中断系统应用-任务1.秒脉冲发生器,能力目标1.能正确运用定时/计数器产生秒信号2.秒脉冲发生器程序的编写3.学会中断控制系统的应用4.秒脉冲发生器程序的仿真调试方法学习内容1.掌握定时/计数器的组成及功能2.掌握单片机内部结构资源:TH0、TL0、TH1、TL1、TMOD、TCON3.掌握中断控制系统的概念及定时功能4.理解预置数的用法和溢出的概念,一一、任务要求在项目二的任务2中曾经采用单纯的软件来实现延时或定时很耗费单片机的资源,采用可编程定时/计数器,可以解决上述问题。用可编程定时/计数器设计一个秒脉冲发生器,通过P1.0端口输出
2、驱动二极管每隔1s亮一次来显示秒脉冲发生器效果。定时1s用定时器中断来实现。二、任务分析首先得用可编程定时/计数器设计一个0.5s脉冲发生器,每隔0.5s将P1.0端口取反,即可在P1.0端口输出1Hz方波,P1.0硬件接法可参考项目二中任务2的接法。,三、学习知识(一)定时/计数器的结构 1、定时/计数器的结构(1)定时/计数器的结构51子系列单片机内有两个十六位加1定时/计数器 T0 T1,2、定时/计数器功能(1)计数功能 对外部输入脉冲计数。定时/计数器0计数信号由芯片的T0(P3.4)端引入。定时/计数器1计数信号由芯片的T0(P3.5)端引入。外部输入脉冲频率不能高于单片机晶体振荡
3、频率的1/24,单片机机器周期变化的频率为单片机晶体振荡频率的1/12,因为单片机在相邻两个机器周期中采样到端口上有负跳变时,才计作输入一个脉冲。,(2)定时功能对内部机器周期脉冲计数。定时时间=计数脉冲数机器周期时间由于机器周期时间取决于单片机晶振,(二)中断概念与定时中断 1、中断定义,单片机主要用于实时控制,当对控制对象进行正常控制时,如果外部突然有特殊情况发生,这个向CPU发出请求的过程叫中断请求,则CPU必须立即暂停原来正常的控制程序,并转向执行应急处理的服务程序,这个转去处理应急任务的过程叫中断响应,处理应急的过程叫中断服务,处理完毕,再恢复到原来正常控制程序的暂停处继续执行,这个
4、返回过程叫中断返回,这样的过程称为中断系统。,表3-1日常生活中的中断与单片机中断比较,2、中断服务子程序返回指令中断响应是单片机响应随机的突发要求,进行相应处理,等应急处理的服务程序完毕,要进行中断返回,为区别子程序返回,中断服务子程序返回指令用“RETI”3、中断源能够引发CPU中断的事件源称为中断源。MCS-51系列单片机有定时中断(定时/计数器0和定时/计数器1)、外中断(外中断0和外中断1)和串行中断3类。,4、定时中断 当它们计数到预定的次数或预定的时间时,通过单片机内部硬件电路将定时中断源的中断请求标志置于“1”,向CPU提出中断请求,让CPU及时作出处理。(三)定时/计数器控制
5、 1、工作方式控制寄存器TMOD(89H)特殊功能寄存器TMOD用于控制T0和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
6、定时/计数器1运行控制位。(用法与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)方式3T0定时/计数,而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)ET0(IE.1):
8、定时器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 bit,rel;若(bit)=1时,则
9、转移到标号对应的地址,并且同时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,(PC)(PC)+2+rel 若(CY)=0,(PC)(P
10、C)+2顺序JNC rel;若(CY)=0,(PC)(PC)+2+rel 若(CY)=1,(PC)(PC)+2顺序上述操作不影响操作位。,例:编程通过P1.0线连续输出256个宽度为5个机器周期长的方波。解:MOV R0,#00H;置R0的值为256LOOP: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 图3-8 逻辑运算图,(四)中断入口地址,表3-4 中断入口地址,(五)定时器/计数器
11、的设计步骤 初始化的内容如下: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(十六进制数)。定时器模式下对应的定时时间为:T=CT机=(M-X)T机式中,T机为单片机的机器周期(T机为晶振时钟周期的
12、12倍)。将计数所得的X值转换成相应的16进制数,分别放入相应的TH0、TL0或TH1、TL1中。,3、定时中断选择给定时器控制寄存器TCON送命令字,控制定时/计数器的启动和停止。(1)应用定时中断编程时,需要开启相应的定时中断控制位,否则将其设为禁止。(2)若定时/计数器仅使用一次,则要在服务程序中把工作启动/停止控制位TR清为“0”,关闭定时/计数器,若连续使用时,则不要改变TR位。,(3)当不使用定时中断时,即用查询溢出标志编程,无论定时/计数仅用一次还是连续使用,每次都要用指令将对应的溢出标志位清“0”。而采用中断编程时,一旦中断响应,由硬件自动将对应的溢出标志撤销。,例:产生周期为
13、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初始值:机器周期T=12/fosc=12/6MHZ=2us设初始值为X,则(213-X)210-6s=50010-6s因为在
14、作13位计数器同时,TL1的高3位未用,应填写0,TH1占高8位,所以X的实际填写值应为结果TH1=F8H,TL1=06H。,四、任务实施 1、硬件设计硬件设计可采用项目一中任务2的硬件原理图。2、软件设计(1)要二极管产生每一秒亮一次,则P1.0得每0.5s取反一次,所以定时器的定时时间为0.5s。(2)设定工作方式寄存器TMOD。表3-5 工作方式寄存器TMOD设置,(3)计算计数初值。选用晶振为6MHZ,则机器周期T=12/fosc=12/6MHZ=2us,设初始值为X,则定时时间为(216-X)210-6s,当X=0,在晶振为6MHZ的情况下,采用定时/计数器1工作方式1下,最长的定时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 定时 计数器 中断 系统 应用
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5889108.html