#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1= P0^0;
uchar num;
void main()
{
TMOD=0x01; //定時器0 工作方式1
TH0=(65536-45872)/256; //裝載初值為11.0592M晶振定時50ms 數為 45872
TL0=(65536-45872)%256;
EA=1; //打開總中斷
ET0=1; //開定時器0中斷
TR0=1; //啟動定時器0
while(1);//程序在此等待中斷的到來
}
void T0_time() interrupt 1
{
TH0=(65536-45872)/256; //重裝初值
TL0=(65536-45872)%256;
num++; //num每加1次判斷壹次是否到20次
if(num==20) //如果到了20次,說明1秒時間到
{
num=0; //num重新置數為0
led1=~led1; //讓發光管狀態取反
}
}
妳調節 num的值 就可以實現 不同的時間了
num變壹次就是 50ms過去了,計算下就可以了
if(num==20) //如果到了20次,說明1秒時間到
用算好的值 替代20 就行了。