资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
1电子信息工程学系实验报告课程名称:单片机原理 实验项目名称:51 定时器实验 实验时间:2012-11-27 班级:测控 081 姓名: 学号:810707132 实实 验验 目目 的的: 熟悉 keil 仿真软件、伟福仿真器的使用和 C51 定时程序的编写。了解 51 单片机中定时、计数的概念,熟悉 51 单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在 C51 中的设置与程序的书写格式以及使用方法。实实 验验 原原 理理:定时分类及原理定时分类及原理1.软件定时:即让机器执行一个程序段,这段程序本身没有具体的执行目的,只是为了磨时间。执行这段程序所需要的时间就是延时时间。这种程序前面已设计过。这种方法定时占用 CPU 执行时间,降低了 CPU 利用率。此次实验使用的是MCS-51 系列单片机。2.数字电路硬件定时:采用小规模集成电路器件如 555,外接定时部件(电阻和电容)构成。这样的定时电路简单,但要改变定时范围,必须改变电阻和电容,这种定时电路在硬件连接好以后,修改不方便。3.可编程定时/计数器:是为方便微型计算机系统的设计和应用而研制的,它是硬件定时,又很容易地通过软件来确定和改变它的定时值,通过初始化编程,能够满足各种不同的定时和计数要求,因而在嵌入式系统的设计和应用中得到广泛的应用。8051 型单片机有两个十六位定时/计数器 T0、T1,有四种工作方式,跟定时/计数器相关的特殊功能寄存器有这样几个:方式控制寄存器方式控制寄存器 TMODTMODD7D6D5D4D3D2D1D0GATEGATEC/TC/T M1M1 M0M0GATEGATEC/TC/TM1M1M0M0M1、M0 的状态决定定时器的工作方式,定时和外部事件计数方式选择位 C/T,GATE 与 TR0、TR1 配合决定定时/计数器的启停。加法计数寄存器 TH0、TH1 (高八位)TL0、TL1(低八位) ;定时/计数到标志 TF0、TF1(中断控制寄存器 TCON) ;定时/计数器启停控制位 TR0、TR1(TCON) ;定时/计数器中断允许位 ET0、ET1(中断允许寄存 IE) ;定时/计数器中断优先级控制位 PT0、PT1(中断优 IP) 。定时定时/ /计数器的工作方式计数器的工作方式MCS51 的定时器有方式 0、方式 1、方式 2 和方式 2 这 3 种工作方式。1.方式 0成 绩:指导教师(签名):2当 M1M0=00 时,定时器工作于方式 0。方式 0 为 13 位的计数器,由 TL0 的低 5 位和 TH0 的 8 位组成,TL0 低 5 位计数溢出时向 TH0 进位,TH0 计数溢出时置位溢出标志 TF0。若 T0 工作于定时方式,设计数初值为 a,晶振频率为 12MHz,则 T0 从初值开始计数到溢出的定时时间为 t(213a)1S。2. 方式 1当 M1M0=01 时,定时器工作于方式 1。T1 工作于方式 1 时,由 TH1 作为高 8 位,TL1 作为低 8 位,构成一个十六位的计数器。若 T1 工作于定时方式 1,计数初值为 a,晶振频率为 12MHz,则 T1 从计数初值计数到溢出的定时时间为 t =(216a)S。3. 方式 2M1M0=10 时,定时器计数器工作于方式 2,方式 2 为自动恢复初值的 8 位计数器。TL1 作为 8 位计数器,TH1作为计数初值寄存器。 t =(28a)S。 单片机内部的定时计数模块,在定时时,对工作频率的 12 分频进行计数,先记入 TL 后记入 TH,直到溢出为止,根据TL、TH 内的初值不同可以定出不同的时间;在计数工作方式时,对 T0(T1)引脚的输入脉冲进行计数,将计数值记入TL、TH。当定时/计数溢出时,会引起中断。设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式 0、方式 1 和方式 2 时的最大计数间隔取决于使用的晶振频率 fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。 3计数初值与定时时间的关系为:T = 12(T_all a)/fosc 定时间隔为 T,计数初值为 a。所以有计数初值 a =Tfosc/12,THx = a / 256,TLx = a % 256。定时器均有一个最大定时时间,对于长时间的定时需要,可以将定时间隔为固定的较小时间,通过另设一全局变量 ah1 用于计数,累加固定的较小定时时间来进行。确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断:ET0 = 1; EA = 1;还需要编写中断服务函数:void T0_srv(void) interrupt 1 using 1TL0 = a % 256;TH0 = a / 256;中断服务程序段 4启动定时器:TR0(TR1)= 1。实实 验验 设设 备备 与与 器器 件件硬件:微机、WAVE 单片机仿真器、单片机实验板、跳帽若干软件:KEIL C51 单片机仿真调试软件,伟福 V 系列仿真调试软件实实 验验 内内 容容: 利用实验板上的一位 LED 数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为 1S。刚开始 LED 数码管显示 0,每过 1S 数码管的显示值增加 1,当显示到 59 时返回 0,依此反复。实验的程序代码如下:#includevoid mDelay (unsigned int Delay)unsigned int b;for(;Delay0;Delay-)for(b=0;b0;Delay-) for(i=0;i124;i+);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号