|
void main(void)
{
s1=1;
TMOD=0x01; //使用定時器T0的模式1
TH0=(65536-46083)/256; //定時器T0的高8位設置初值
TL0=(65536-46083)%256; //定時器T0的低8位設置初值
函數功能:定時器T0的中斷服務函數
********************************************************/
void Time0(void ) interrupt 1 using 0 //定時器T0的中斷編號為1,使用第1組工作寄存器
{
count++; //每產生1次中斷,中斷累計次數加1
if(count==20) //如果中斷次數計滿20次
count=0; //中斷累計次數清0
s++; //秒加1
網絡上閱讀一段程序,定時器初值 46083 是怎么計算出來的? 一般我們如用 AT892051的話 定時50MS 就是 TH0=(65536-50000)/256;
猜想應該是使用的12M晶體 ,20次為1S.
|
|