实验五定时器中断方式实验
- 格式:ppt
- 大小:755.50 KB
- 文档页数:24


一、实验目的
1. 理解单片机定时器的原理及工作方式。
2. 掌握单片机定时器的编程方法,实现定时功能。
3. 学习使用定时器中断,处理定时器事件。
二、实验环境
1. 硬件设备:MCS-51单片机实验板、示波器、电源等。
2. 软件环境:Keil C51、Proteus仿真软件。
三、实验原理
1. 定时器概述
定时器是单片机的一个重要组成部分,用于产生定时信号或测量时间。MCS-51单片机内部有两个定时器,即定时器0和定时器1。
2. 定时器工作原理
定时器通过内部计数器进行计数,当计数达到设定值时,产生一个定时中断,执行中断服务程序。定时器的工作方式分为四种:方式0、方式1、方式2和方式3。
3. 定时器编程
定时器编程主要包括以下几个步骤:
(1)设置定时器工作模式:通过向定时器模式寄存器(TMOD)写入相应的值来设置定时器工作模式。
(2)设置定时器初值:通过向定时器寄存器(THx、TLx)写入相应的值来设置定时器初值。
(3)启动定时器:通过设置定时器控制寄存器(TCON)的相应位来启动定时器。
(4)编写定时器中断服务程序:当定时器溢出时,执行中断服务程序,实现相应的功能。
四、实验内容
1. 实验一:定时器0定时50ms (1)硬件连接:将P1.0口连接到蜂鸣器。
(2)软件设计:
- 设置定时器0工作在方式1,定时50ms。
- 开启定时器0中断。
- 编写定时器0中断服务程序,使蜂鸣器响50ms。
2. 实验二:定时器1计数脉冲
(1)硬件连接:将P3.4口连接到信号发生器。
(2)软件设计:
- 设置定时器1工作在方式2,计数P3.4口的脉冲信号。
- 开启定时器1中断。
- 编写定时器1中断服务程序,记录计数器计数值,并通过数码管显示。
3. 实验三:定时器0定时1s
(1)硬件连接:将P1.0口连接到蜂鸣器。
(2)软件设计:
- 设置定时器0工作在方式1,定时1s。
实验四 定时中断实验
一、实验目的
1. 掌握51单片机定时中断的应用。
2. 掌握定时器初值的计算方法。
3. 掌握定时中断和延时函数的区别。
二、实验内容
1. 用定时器T0的方式1实现定时。
2. 用定时器T1的方式2控制两个LED以不同周期闪烁。
三、电路图
四、实验步骤说明
1. 用定时器T0的方式1实现定时。
使用定时器T0的方式1来控制P0.0引脚的LED的闪烁,要求闪烁周期2s,即亮1s,灭1s。
2. 用定时器T1的方式2控制两个LED以不同周期闪烁。
使用定时器T1的方式2来控制P0.0、P0.1引脚的两个LED分别以1s和2s的周期闪烁。
实验报告格式
实验四 定时中断实验
学院: 专业: 年级: 实验时间:
姓名: 学号: 指导教师:
一、实验目的
1. 掌握51单片机定时中断的应用。
2. 掌握定时器初值的计算方法。
3. 掌握定时中断和延时函数的区别。
二、实验内容
1. 用定时器T0的方式1实现定时。
2. 用定时器T1的方式2控制两个LED以不同周期闪烁。
三、电路图(贴Proteus仿真图)
四、程序与注释
1)程序1(调试下列程序,在错误行后面注明错误及改正方法)
#include ;
#define uchar unsigned char
//sbit P0_0=P0^0;
unchar a;
void main()
{
EA=1;
TMOD=0x10;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a=0;
while(1)
}
void t0() interrupt 0
{
a++;
实验五_定时/计数器实验
1.实验目的:学习定时/记数器编程和调试方法。
2.实验内容:
P1中接有八个发光二极管,编程使八个管同时点亮,又同时熄灭,时间1S, 设晶振为12MHz。 机器周期为1us.分析:利用T1完成50ms的定时,采用定时方式1,先计算T1初值50ms(3CB0H),50*20=1000MS=1S。用KEILC51编写源程序,并编译产生HEX代码。用Proteus绘制原理图,电脑设联调仿真。
3.实验器材:电脑,单片机开发板DOFLY( LY-51S),Proteus仿真软件,keil C51软件,连线等。
4.实验原理及电路图:
MCS-51单片机有两个16位的定时计数器T0和T1,它们都有定时和对外部事件进行计数的功能,可用于定时控制、对外部事件检测和计数等场合。计数和定时实质上都是对脉冲信号进行计数,只不过脉冲源不同而已。当工作在定时方式时,计数脉冲来自单片机的内部,即振荡器信号12分频后作计数脉冲,每个机器周期的时间使计数器加1,由于计数脉冲的频率是固定的(即每个脉冲为1个机器周期的时间),故可通过设定计数值来实现定时功能;当工作在计数方式时,计数脉冲来自单片机的引脚,每当引脚上出现一个脉冲时,计数器加1,从而实现计数功能。可以通过编程来指定定时/计数器的功能,以及它的工作方式。
本实验中用定时/记数器T1用作定时,工作方式1,其定时时间50毫秒,中断控制P1连接的8个发光二极管同时点亮,同时熄灭。
5.实验程序:
/* P1中接有八个发光二极管,编程使八个管同时点亮,又同时熄灭,时间1S
,设晶振为12MHz。 (计数时钟周期1us)
分析:利用T1完成50ms的定时,采用定时方式1,先计算计数初值:*/
#include int delay=0;
Timer1( )interrupt 3 using 1 /*T1中断服务程序*/
{ if(delay>=20)
实验三:中断及定时器实验
一、 实验目的:
1、 弄清中断的概念、基本原理,掌握中断技术的应用
2、 了解中断初始化的方法,中断向量安装和中断服务子程序的设计方法。
3、 了解定时/计数器的工作原理及MCS51单片机的定时器内部结构
4、 掌握时间常数计算方法
5、 掌握定时器初始化方法和定时中断程序设计方法
二、 实验内容:定时器实验
1、 这个是一个电子钟走时程序,利用定时器T0产生50ms中断,中断计数器中断20次为1秒,利用秒信号进行电子钟计时。先读懂下面程序段,然后编辑、编译程序,并在伟福仿真器上模拟调试该程序。
程序清单如下:
COUNT EQU 7FH
COUNT1 EQU 7EH
S_MEM EQU 73H
M_MEM EQU 72H
H_MEM EQU 71H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT_T0 ;“*1”
MAIN: MOV SP,#2FH
MOV TMOD,#00000001B
MOV TH0,#03CH ;50毫秒中断时间常数
MOV TL0,#0BH
MOV IE,#10000010B ;开放T0
MOV IP,#0
MOV S_MEM,#0 MOV M_MEM,#0
MOV H_MEM,#0
MOV COUNT,#20
SETB TR0
;______________________________________________________