#define th0 0x3c
#define tl0 0xb0 //50ms at 12MHz Fosc
#define T1sAt50msCount 20 //1s計數值
sbit WaveOut1=P2^0; //定義 方波1輸出 端口
void Timer0() interrupt 1 //定時器T0 中斷 函數
{
static uchar t50ms=0;
TL0=tl0;
TH0=th0;
if(++t50ms>=T1sAt50msCount)
{
t50ms-=T1sAt50msCount;
WaveOut1=~WaveOut1; //方波1輸出 端口 電平翻轉
}
}
void TimerInit() //定時器初始化 函數
{
TMOD=0x01; //T0 16位定時器
EA=1; //允許系統中斷
ET0=1; //允許T0中斷
TH0=th0;
TL0=tl0; //50ms 初值
TR0=1; //T0開始計時
}
void main() //主函數
{
TimerInit(); //調用 定時器初始化 函數
while(1); //循環系統
}
直接打字的,未編譯