|
這個是程序#include<reg51.h> // 包含51單片機(jī)寄存器定義的頭文件 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位重新賦初值 } 佳 ~ 人 2017/7/31 11:27:36 #include<reg51.h> // 包含51單片機(jī)寄存器定義的頭文件 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位重新賦初值 } |
|