|
#include<reg51.h> // 包含51單片機(jī)寄存器定義的頭文件 sbit D1=P2^0; //將D1位定義為P2.0引腳 unsigned char Countor; //設(shè)置全局變量,儲(chǔ)存定時(shí)器T0中斷次數(shù) /************************************************************** 函數(shù)功能:主函數(shù) **************************************************************/ void main(void) { EA=1; //開總中斷 ET0=1; //定時(shí)器T0中斷允許 TMOD=0x01; //使用定時(shí)器T0的模式2 TH0=(65536-46083)/256; //定時(shí)器T0的高8位賦初值 TL0=(65536-46083)%256; //定時(shí)器T0的高8位賦初值 TR0=1; //啟動(dòng)定時(shí)器T0 Countor=0; //從0開始累計(jì)中斷次數(shù) while(1)//無限循環(huán)等待中斷 ; } /************************************************************** 函數(shù)功能:定時(shí)器T0的中斷服務(wù)程序 **************************************************************/ void Time0(void) interrupt 1 using 0 //“interrupt”聲明函數(shù)為中斷服務(wù)函數(shù) //其后的1為定時(shí)器T0的中斷編號(hào);0表示使用第0組工作寄存器 { Countor++; //中斷次數(shù)自加1 if(Countor==20) //若累計(jì)滿20次,即計(jì)時(shí)滿1s { D1=~D1; //按位取反操作,將P2.0引腳輸出電平取反 Countor=0; //將Countor清0,重新從0開始計(jì)數(shù) } TH0=(65536-46083)/256; //定時(shí)器T0的高8位重新賦初值 TL0=(65536-46083)%256; //定時(shí)器T0的高8位重新賦初值 } |
|