当前位置:文档之家› 定时器中断程序设计实验

定时器中断程序设计实验

实验一定时器/中断程序设计实验
一、实验目的
1、掌握定时器/中断的工作原理。

2、学习单片机定时器/中断的应用设计和调试
二、实验仪器和设备
1、普中科技单片机开发板;
2、Keil uVision4 程序开发平台;
3、PZ-ISP 普中自动下载软件。

三、实验原理
805l 单片机内部有两个 16 位可编程定时/计数器,记为 T0 和 Tl。

8052 单片机内除了 T0 和 T1 之外,还有第三个 16 位的定时器/计数器,记为 T2。

它们的工作方式可以由指令编程来设定,或作定时器用,或作外部脉冲计数器用。

定时器 T0 由特殊功能寄存器 TL0 和 TH0 组成,定时器 Tl 由特殊功能寄存器 TLl 和 TH1 组成。

定时器的工作方式由特殊功能寄存器 TMOD 编程决定,定时器的运行控制由特殊功能寄存器 TCON 编程控制。

T0、T1 在作为定时器时,规定的定时时间到达,即产生一个定时器中断,CPU 转向中断处理程序,从而完成某种定时控制功能。

T0、T1 用作计数器使用时也可以申请中断。

作定时器使用时,时钟由单片机内部系统时钟提供;作计数器使用时,外部计数脉冲由 P3 口的 P3.4(或 P3.5)即 T0(或 T1)引脚输入。

方式控制寄存器 TMOD 的控制字格式如下:
低 4 位为 T0 的控制字,高 4 位为 T1 的控制字。

GATE 为门控位,对定时器/计数器的启动起辅助控制作用。

GATE=l 时,定时器/计数器的计数受外部引脚输入电平的控制。

由由运行控制位 TRX (X=0,1)=1 和外中断引脚(0INT 或 1INT)上的高电平共同来启动定时器/计数器运行;GATE=0时。

定时器/计数器的运行不受外部输入引脚的控制,仅由 TRX(X=0,1)=1 来启动定时器/计数器运行。

C/-T 为方式选择位。

C/-T=0 为定时器方式,采用单片机内部振荡脉冲的 12 分频信号作为时钟计时脉冲,若采用 12MHz 的振荡器,则定时器的计数频率为 1MHZ,从定时器的计数值便可求得定时的时间。

C/-T=1 为计数器方式。

采用外部引脚(T0 为 P3.4,Tl 为 P3.5)的输入脉冲作为计数脉冲,当 T0(或 T1)输入信号发生从高到低的负跳变时,计数器加 1。

最高计数频率为单片机时钟频率的 1/24。

M1、M0 二位的状态确定了定时器的工作方式,详见表。

方式 1 与方式 2 的差别是计数器的位数,前者 13 位,后者 16 位。

定时器内部结构逻辑图如图所示。

要测量低频信号可以首先产生一个标准时间 T 闸门信号,然后在该时间内计算进入计数器的脉冲个数。

这个时间有时太短,需结合软件定时。

如果要求比较高,则需要进行智能地调整 T。

例如对于 500HZ 信号,使用 65ms 闸门时间,则计数器值就非常少。

计数器的值超过 10000 个,才能保证精度不少于%。

如果在 3 秒内还是发现计数器的值少于精度需要,则自动切换到周期测量模式,通过周期计算频率具有较高的精度。

如果要求 3 秒内给出结果,则周期超过 3 秒的信号就无法得到准确的频率或周期。

四、实验步骤
1.实验接线如下图所示,连接口与D11小灯,使用单片机内部定时器T0或者T1中断,实现准确延时,使得 D11 小灯循环点亮 1 秒,熄灭 1 秒。

2.按照实验要求编写程序流程图,然后编写程序。

编译成 HEX 文件,连接好编程器,用 PZ-ISP 普中下载软件程序,对编写的程序进行调试,直至测试成功。

五、实验报告
1、画出电路原理图。

2、给出程序流程图和程序清单、并给予适当注释。

3、描述实验现象和结果,要求对实验现象和结果进行分析
图1 点亮一个LED灯原理图 #include<>
sbit temp=P1^1;
unsigned char num;
void main()
{
temp=0;
num=0;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
while(1)
{
if(TF0)
{
TF0=0;
TH0=0x3c;
TL0=0xb0;
num++;
if(num==20)
{
temp=~temp;
num=0;
}
}
}
}
实验现象:实验板上第一盏led灯一亮一暗;间隔为一秒钟。

相关主题