i*w-Q=
51 U`_vF~el~
单片机中定时器的小程序 Vzm+Ew
_
D\*_ulc]
6="&K_Q7
今天我开始了对 +p<R'/
51 #LgoKiP!Y
中的定时器进行了学习,并写了一个小程序。 $<mL2$.L~
>:E-^t%
# /G+gk0FW
i nclude<reg51.h> W2Z]?l;vQQ
sbit P0_1=P0^1; // L;7mt
4H
定义位变量 Xb]?/7
X
n<&R"89
/********************************************************* ?yeC
j1X
* IqKXFORiNI
延时子程序 lG#&1
k0Yixa
* 16 bXL a~r4\
个循环为 i3j jPN!
1 E9-'!I !
秒 me^Gk/`Em
e-=PT1T`
* ulo7d1OVkJ
**********************************************************/ 31Mc<4zI8
void Delay(count) 6dp_R2zH~o
{ CoXL;\
int i; "0)G|pZI
while(--count != 0) SJ+-H83x
{ B4Oa7$M/U
for(i = 0; i < 125; i++); // ";" GFkte
表示空语句 'qS!n
,CPU Utp\}0GZY
空转。 S`@*zQ
Vs"Q-?
} // i
jhM|gV&
从 0EU4irMa
0 bkI A:2HX
加到 lf#six
125 f L?~1i =
,在 {z_pL^S'52
12M jzMGRN/67
晶体下 _>64XUZ<n
CPU wuQkeWxJ
大概耗时 Ve)
:I
1 ox#4|<qM
毫秒 )\G#[Pc7
=@l5He.]&
} LnX^*;P5t
/********************************************************* hJNA%
定时器中断子程序 f|5|n>*
x#j_}L!V;
************************************************************/ ')RK(I
void time0_server_(void) interrupt 2 3i~{x[Jc
{static time0_server_count; pl&GFf
o
time0_server_count++; +?tNly`
if(time0_server_count==16) MWf%Lh;R
{P0_1=~P0_1; TA7w:<
time0_server_count=0; `<G+N
} UU`qI}Ys8F
TF0=0; WLH2B1_):
Delay(20); ,fFJSY^
} Qz;"b!
$=R\3:j
main() o\[nGf C&
{ TH0=0x0B; IYN`q'%|
TL0=0xDC; SfT ]C~#$N
P0_1=0; rD?o97
EA=1; N@S;{uK
ET0=1; <h[^&CY{
TR0=1; ?zqXHv#x
while(1); GvY8O|a
} 8nM]G4H.f
'#?hm-Ga
该程序主要是用来了解定时器的运行规律,并对他进行必要的应用。 E)bP}:4V
uc8>B&B%
`h#JDcT;a
>EjBknl
通过对其进行实验,我大致的对其有了一些了解,其主要用途有定时,记数,中断。等等。