//////////////////////////////////////////////////////////////////////////
实现功能:
配置定时器0的相关寄存器,使其实现定时器中断功能,然后通过发光
二极管的闪烁展现出中断的进行
实验板型号:BS-XYD-C52
实验名称: 定时器0的中断实验
编写人: 谢应东
编写日期:
2012-4-26
//////////////////////////////////////////////////////////////////////////
#include<reg52.h>
#define uchar unsigned char //定义unsigned char 为
uchar
#define uint unsigned
int //定义unsigned int 为 uint
sbit
Led=P1^0;
//将P1^0口定义为led,方便程序编写
//////////////////////////////////////////////////////////////////////////
函数名称:Init_time0
函数功能:配置定时器0,配置的模式是定时器0采用16位计数器模式,同时允许定时器0
中断,并打开总中断
参数介绍:无
返回值: 无
注意事项:无
//////////////////////////////////////////////////////////////////////////
void Init_time0(void)
{
TMOD |= 0x01;
TH0=0x00;
TL0=0x00;
//定时器0的,写入数值寄存器的低8位
EA=1;
//总中断打开
ET0=1;
//定时器T0允许中断
TR0=1;
//定时器T0开始工作
}
//////////////////////////////////////////////////////////////////////////
函数名称:main
函数功能:实现定时器0中断,且通过名为D1的发光二级管展现出来
参数介绍:无
返回值: 无
注意事项:无
//////////////////////////////////////////////////////////////////////////
void main()
{
Init_time0();
//初始化定时器0
while(1);
}
//////////////////////////////////////////////////////////////////////////
函数名称:Interrupt_handler_time0
函数功能:重新给寄存器TH0和TL0赋值,并且让开发板上的名为D1的发光二级管,每次
取相反的值,使其不断地闪烁,也达到测试定时器0中断的效果
参数介绍:无
返回值: 无
注意事项:无
//////////////////////////////////////////////////////////////////////////
void Interrupt_handler_time0(void) interrupt 1
{
TH0=0x00;
//重新赋值
TL0=0x00;
Led=~Led;
//指示灯反相,可以看到闪烁。" ~ "按位取反运算符
}
加载中,请稍候......