实验五 8051单片机时中断实验实验五 8051单片机定时中断实验.doc

实验五 8051单片机时中断实验实验五 8051单片机定时中断实验.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验五 8051单片机定时中断实验 一 实验目的: 了解8051系列单片机的定时中断基本工作原理。掌握8051系列单片机定时中断的用法。 二 实验原理: 在上一个实验里我们介绍了8051单片机的外中断应用,本实验要介绍的是定时器中断的应用。 8051系列单片机至少有两个16位的内部定时器/计数器,既可以编程为定时器使用,也可以作为计数器使用。如果是计数内部晶振驱动时钟,它是定时器,如果是计数8051的输入管脚的信号,就是计数器。 MCS-51单片机内部的定时/计数器的结构如图5-1所示,定时器T0特性功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特性功能寄存器TL1(低8位)和TH1(高8位)构成。特殊功能寄存器TMOD控制定时寄存器的工作方式,TCON则用于控制定时器T0和T1的启动和停止计数,同时管理定时器T0和T1的溢出标志等。程序开始时需对TL0、TH0、TL1和TH1进行初始化编程,以定义它们的工作方式和控制T0和T1的计数。 图5-1 TMOD特殊功能寄存器的格式参见下表(表5-1): D7 D6 D5 D4 D3 D2 D1 D0 GATE C/ M1 M0 GATE C/ M1 M0 表5-1 高4位为定时器/计数器1的控制字,低4位为定时器/计数器0的控制字。其中GATE为门控信号,C/为定时器或计数器的选择,而M1,M0是工作方式选择位。 当M1M0=00时,T/C工作在方式0。方式0为13位的T/C,其计数器由TH的8位和TL的5位构成,计数器的计数值范围是:?1—8192(213),但是启动前可以预置计数初值。当C/为0时,T/C为定时器,计数脉冲为振荡源12分频的信号;当C/为1时,T/C为计数器,对输入端T0或T1输入的脉冲进行计数。计数脉冲加到计数器上与否决定于启动信号。当GATE=0时,TR=1时T/C便启动,当GATE=1时,启动受到TR与的双重控制,即二者同时为高时才启动。当计数满时,TH向高位进位,这时中断溢出标志TF置1,即产生中断请求。而当CPU转向中断服务程序时,TF自动清零。 当M1M0=01时,T/C工作在方式1。方式1和方式0的区别仅在于方式0的计数器位数为13位,而方式1的为16位。 当M1M0=10时,T/C工作在方式2。区别于前面的两种工作方式的是,方式2具有自动重装载的功能。TH和TL作为两个8位的计数器,TH中的8位初值始终保持不变,由TL进行8位计数。在计数溢出时不但会产生中断请求,而且自动将TH中的值加载至TL中,即自动重装载。 当M1M0=11时,T/C工作在方式3。但是这种工作方式只存在于T/C0中,这时TH0与TL0成为两个独立的计数器。只有在T/C1作为串行口的波特率发生器使用,而造成定时器不够用时,T/C0才能工作在方式3。 下面是定时器时间常数计算公式,这个公式在方式 1,即 16 位定时或计数模式可用。 THX=(65536-定时时长[μS]/(机器周期数/时钟频率[MHz])/256; TLX=(65536-定时时长[μS]/(机器周期数/时钟频率[MHz])%256; 在定时器重装载过程中因为TL1=0可以不写。 三 实验内容: 利用中断方式在LED上输出10HZ方波,系统晶体频率11.059MHz。 四 实验电路图: 图5-2 五 实验方法: 根据如上电路图连接好实验电路。实验板中只要将P1.3与LED1相连。 按照实验要求编写实验程序,建立新工程,保存为TINT。 调试程序。 将keilC51产生的tint.hex文件通过在线下载ISP或商用编程器。 六 参考程序: 1.汇编源程序 ORG 0000H LJMP MAIN ORG 001Bh ;定时1中断服务入口地址 LJMP TMR1_INT_SRV MAIN: LCALL INIT_TMR1 LCALL INIT_TMR1INT AGAIN: SJMP AGAIN TMR1_INT_SRV: MOV TH1,#0x4C ;中断服务子程序 CPL P1.3 RETI INIT_TMR1INT: SETB ET1 ;定时中断初始化 SETB EA ;开中断 RET INIT_TMR1: MOV TMOD,#0x11 ;初始化定时器 MOV TH1,#0x4C CLR A MOV TL1,A SETB TR1 RET END 2.C语言源程序 /**************************************

文档评论(0)

skewguj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档