欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
關于單片機中斷函數的地方有些不懂 如果不給定時器重新賦初值的話,定時器還有用嗎
[打印本頁]
作者:
MUC
時間:
2017-5-18 20:12
標題:
關于單片機中斷函數的地方有些不懂 如果不給定時器重新賦初值的話,定時器還有用嗎
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D1=P0^7;
uchar sr;
uchar jf;
uchar code table[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,46,47,48,49};
void light(uchar num);
void delay(uint z);
void main()
{
//設置計數器
//選取計數方式1
TMOD = 0x11;
//給計數器寫初值
TH0 = 0;
TL0 = 0;
////////////////////
//操作單片機
//開啟CPU中斷
EA = 1;
///////////////////
//開啟定時器T0位中斷
ET0 = 1;
//開啟計數器
TR0 = 1;
//操作二極管
P1=0;
while(1)
{
if(sr<50)
light(sr);
else sr=0;
}
}
//子函數
void light(uchar num)
{
uchar tme;
D1 = 0;
tme = table[num];
delay(tme);
D1 = 1;
delay(49-tme);
}
//中斷函數
void time () interrupt 1
{
//自變量自加
if (jf<2)
{
jf++;
TH0 =0;
TL0 = 0;
}
if (jf==2)
{
//寫初值
jf=0;
TH0 = 254;
TL0 = 254;
sr++;
}
}
void delay(uint z)
{
uint x,y;
for(x=10;x>0;x--)
for(y=z;y>0;y--);
}
復制代碼
程序中的
if (jf<2)
{
jf++;
TH0 =0;
TL0 = 0;
}不是很明白,如果不給定時器重新賦初值的話,定時器還有用嗎
作者:
yzwzfyz
時間:
2017-5-18 20:53
其實不管你賦不賦值,TH0、TL0都會有一個值。
樓主提出這個問題,說明未認真研讀T0定時器的工作原理,需要先補課。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1