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