新闻中心

EEPW首页>嵌入式系统>设计应用> STC89C52单片机定时器0的中断实验

STC89C52单片机定时器0的中断实验

作者: 时间:2016-11-21 来源:网络 收藏
//////////////////////////////////////////////////////////////////////////

实现功能:配置定时器0的相关寄存器,使其实现定时器中断功能,然后通过发光
二极管的闪烁展现出中断的进行
实验板型号:BS-XYD-C52
实验名称:定时器0的中断实验
编写人:谢应东
编写日期:2012-4-26
//////////////////////////////////////////////////////////////////////////
#include
#define uchar unsigned char //定义unsigned char 为 uchar
#define uint unsigned int //定义unsigned int 为 uint

本文引用地址://m.amcfsurvey.com/article/201611/319234.htm

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)interrupt1
{
TH0=0x00;//重新赋值
TL0=0x00;
Led=~Led;//指示灯反相,可以看到闪烁。" ~ "按位取反运算符
}



评论


技术专区

关闭