久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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

本文引用地址:http://cqxgywz.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) interrupt 1
{
TH0=0x00; //重新賦值
TL0=0x00;
Led=~Led; //指示燈反相,可以看到閃爍。" ~ "按位取反運算符
}



評論


技術專區

關閉