//////////////////////////////////////////////////////////////////////////實現(xiàn)功能: 配置定時器0的相關(guān)寄存器,使其實現(xiàn)定時器中斷功能,然后通過發(fā)光
二極管的閃爍展現(xiàn)出中斷的進行
實驗板型號:BS-XYD-C52
實驗名稱: 定時器0的中斷實驗
編寫人: 謝應(yīng)東
編寫日期: 2012-4-26
//////////////////////////////////////////////////////////////////////////
#include
#define uchar unsigned char //定義unsigned char 為 uchar
#define uint unsigned int//定義unsigned int 為 uint
本文引用地址:http://m.butianyuan.cn/article/201611/319234.htmsbit Led=P1^0; //將P1^0口定義為led,方便程序編寫
//////////////////////////////////////////////////////////////////////////
函數(shù)名稱:Init_time0
函數(shù)功能:配置定時器0,配置的模式是定時器0采用16位計數(shù)器模式,同時允許定時器0
中斷,并打開總中斷
參數(shù)介紹:無
返回值: 無
注意事項:無
//////////////////////////////////////////////////////////////////////////
void Init_time0(void)
{
TMOD |= 0x01;
TH0=0x00;
TL0=0x00; //定時器0的,寫入數(shù)值寄存器的低8位
EA=1; //總中斷打開
ET0=1; //定時器T0允許中斷
TR0=1; //定時器T0開始工作
}
//////////////////////////////////////////////////////////////////////////
函數(shù)名稱:main
函數(shù)功能:實現(xiàn)定時器0中斷,且通過名為D1的發(fā)光二級管展現(xiàn)出來
參數(shù)介紹:無
返回值: 無
注意事項:無
//////////////////////////////////////////////////////////////////////////
void main()
{
Init_time0(); //初始化定時器0
while(1);
}
//////////////////////////////////////////////////////////////////////////
函數(shù)名稱:Interrupt_handler_time0
函數(shù)功能:重新給寄存器TH0和TL0賦值,并且讓開發(fā)板上的名為D1的發(fā)光二級管,每次
取相反的值,使其不斷地閃爍,也達到測試定時器0中斷的效果
參數(shù)介紹:無
返回值: 無
注意事項:無
//////////////////////////////////////////////////////////////////////////
void Interrupt_handler_time0(void) interrupt 1
{
TH0=0x00; //重新賦值
TL0=0x00;
Led=~Led; //指示燈反相,可以看到閃爍。" ~ "按位取反運算符
}
評論