单片机中断程序实例_单片机定时器中断实现长时间定时程序
單片機定時器中斷實現(xiàn)長時間定時程序
#include // 包含51單片機寄存器定義的頭文件
sbit D1=P2^0; //將D1位定義為P2.0引腳
unsigned char Countor; //設(shè)置全局變量,儲存定時器T0中斷次數(shù)
/**************************************************************
函數(shù)功能:主函數(shù)
**************************************************************/
void main(void)
{
EA=1; //開總中斷
ET0=1; //定時器T0中斷允許
TMOD=0x01; //使用定時器T0的模式2
TH0=(65536-46083)/256; //定時器T0的高8位賦初值
TL0=(65536-46083)%256; //定時器T0的高8位賦初值
TR0=1; //啟動定時器T0
Countor=0; //從0開始累計中斷次數(shù)
while(1) //無限循環(huán)等待中斷
;
}
/**************************************************************
函數(shù)功能:定時器T0的中斷服務(wù)程序
**************************************************************/
void Time0(void) interrupt 1 using 0 //“interrupt”聲明函數(shù)為中斷服務(wù)函數(shù),其后的1為定時器T0的中斷編號;0表示使用第0組工作寄存器
{
Countor++; //中斷次數(shù)自加1
if(Countor==20) //若累計滿20次,即計時滿1s
{
D1=~D1; //按位取反操作,將P2.0引腳輸出電平取反
Countor=0; //將Countor清0,重新從0開始計數(shù)
}
TH0=(65536-46083)/256; //定時器T0的高8位重新賦初值
TL0=(65536-46083)%256; //定時器T0的高8位重新賦初值
}
為了方便大家更好的學(xué)習(xí),暢學(xué)電子網(wǎng)特別增加了針對單片機和EDA的公眾號,每天推送相關(guān)知識,希望能對你的學(xué)習(xí)有所幫助!
總結(jié)
以上是生活随笔為你收集整理的单片机中断程序实例_单片机定时器中断实现长时间定时程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刺激战场信誉积分为0怎么办
- 下一篇: 创造与魔法新版辣椒在哪里