定时计数器实验-单片机.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定时计数器实验-单片机

单 片 机 实 验 报 告 实验五 定时/计数器实验 实验目的 学习8051内部定时/计数器的工作原理及编程方法; 掌握定时/计数器外扩中断的方法。 实验原理 8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。 T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。 定时/计数器的结构: 定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。 计数器初值的计算: 设计数器的最大计数值为M(根据不同工作方式,M可以是213、216或28),则计算初值X的公式如下: X=M-要求的计数值(十六进制数) 定时器初值的计算: 在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。因此,定时器定时初值计算公式: X=M-(要求的定时值)/(12/fosc) 80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。 工作方式寄存器TMOD: 工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四 位用于T0,高四位用于T1。其格式如下: GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了或引脚为高电平这一条件。 M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。 控制寄存器TCON TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下: TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。 TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。 TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。 TR0(TCON.4):T0运行控制位,其功能与TR1类同。 实验电路图 三部分电路图: 第二部分电路图(加入一个脉冲计数的开关): 实验设备 微型计算机、单片机仿真器、实验仪、示波器(各一台); 实验连线(若干)。 实验内容 *由于汇编语言程序中已经做了相应的注释,C语言的编程原理与之相同不再做重复注释,请见谅。 实验例程 使8个发光二极管点亮,点亮时间间隔一秒,要求用定时器中断方 式产生延时。 汇编语言代码: ORG 0000H AJMP START ORG 000BH AJMP T0INT ;定时器T0中断入口 ORG 0030H START: MOV SP,#60H MOV TMOD,#01H MOV TL0,#0B0H ;晶振为12兆赫资时,50ms溢出一次 MOV TH0,#3CH SETB ET0 SETB EA SETB TR0 ;启动定时器 MOV A,#0FEH MOV R1,#20 ;定时器溢出20次为1秒 MOV P1,A LOOP: CJNE R1,#0,LOOP MOV R1,#20 DEC A MOV P1,A ;发光二极管低电平点亮,因此为记数加显示 AJMP LOOP T0INT: MOV TH0,#3CH ;定时器重新初始化 MOV TL0,#0B0H DEC R1 RETI ;中断返回 END C语言程序代码: #includereg51.h #define

文档评论(0)

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

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

1亿VIP精品文档

相关文档