其實所有的定時器都是用計數(shù)器做的,PLC也是由單片機構(gòu)成的。看看單片機的定時程序就明白了
4 ~) N) @) W. s) M5 w2 Q# M' M /****************************中斷子程序_定時***************************************/9 v( p# T$ i4 N8 S9 ]6 R: v3 ^: Z
void Timer0() interrupt 1% N' ]1 c0 Z6 C: x' {( e
{
8 ?9 ~# \2 P c \: k static Count1=0,Count2=0; //靜態(tài)變量計數(shù)器1$ k, F# {/ K4 n3 y4 z2 S
Count1++; //每次中斷計數(shù)器加1. ?5 y1 N5 W# W5 ^- n
Count2++; //每次中斷計數(shù)器加1
4 c4 O% V" Q9 Q if(Count1>=12) //如果計數(shù)器1超過12$ C1 y h3 }. g! [2 ~
{
0 M- I& e% t; [1 y7 E time_led_sansuo=!time_led_sansuo;( Z$ R) s! f. Y; S9 ?! M* r
Count1=0;
) o3 f- F2 \0 u6 q$ ~' d$ U5 ^/ ` }
7 q/ a8 ~+ ^* X# Z( Z$ @8 B8 a5 D if(time_led_sansuo)
, f7 s# r2 @% w7 D4 [! C8 c led_dis &= 0xbf;
4 ^* @% E6 b+ ]; c9 y, n else( i; y0 |& V0 A/ ]4 `2 G. l
led_dis |= 0x40; " k" X$ A7 g" s+ N
if(Count2>=100) //如果計數(shù)器2超過100
; K1 f, T, U( q4 E3 g4 `7 { {
3 T& n; Q+ @# W4 k time_run--;
+ B4 t3 I7 y4 K! B, L6 C) P3 i" j if(time_run==0)
1 I9 l' X& M, e& E) r% ? {+ n) _3 w; c) N' }
ET0=0; //關(guān)定時器05 A" r$ ]# K* |5 W7 x/ C% X) P0 @
Time_on=2;
. K3 o+ L& t! S4 n! M- f) P/ t; Q EX0=1; //開外部0中斷;: Q3 v: c6 w9 O# L: S
}
3 x: G; Y Y; F( J3 D Count2=0; //計數(shù)器清零' v) ~! M2 k4 t k+ _
}! T2 T4 s' Z) ^8 ?3 {4 e, s# r0 s
5 w# Z+ B5 I. S4 F! G9 l$ A. U
TH0=0x28; //重置定時初值
+ ^) \' j5 A+ {3 ^7 y TL0=0x4b;
* D3 L8 `% i' ^+ N } |