|
给个参考程序:4 v7 V2 ~3 S+ a
#include' P* ^& o6 j% S! r% U
#if(1)8 W# t/ p: J9 G
# V% k+ ? |+ j. l4 L9 e
int count = 0;1 u/ M- ^" h7 Y7 u$ p7 N% y
5 w; Q" Y$ C0 M& g# p***it output = P1^0;
; c, [$ a; ?, o: G7 m" R/ }2 l* @) ^; h' G
0 t3 m6 O8 ~% Tvoid initialize()6 d( K9 ?, k4 ~5 o- ~" H& g2 Q K% u
{9 t+ Y, [7 @, T
TMOD|=0X02;
) O1 r' }# a' w- W. J% W' y# r3 @& E TH0=0x9c;( ^$ S! A# w0 ^ ~# k0 v
TL0=0x9c;
9 K* `. z* H* G1 ]! ^ TR0=1;//也可以到用时才启动
9 p3 h+ Y, h5 ^% `2 O( M+ n ET0=1;
* G( k% P% l. [, r
8 Q+ l( Y0 h1 w7 |0 I; G: T/ o( a; z EA = 1;8 W% ?0 V* c1 d- ?& @3 g
. U- e/ D$ c" K$ T
/*ET0 = 1;//定时器中断打开; I) ]) V( v2 V6 y/ m1 B
TMOD = 0x01;//定时器工作方式 01-16位1 e$ K W9 j4 D+ K
TR0 = 1;//启动定时器0
3 a' R7 q" @& B8 d1 b TH0 = 0xFF;//0xFF;//
& n! s: D6 P: F) [* V3 y9 x; v TL0 = 0xff;//0x9C 0xAA;//定时器初值(100us)*/# o) x1 i, k% X. `% d% b- E# V1 C% Q
}
' c1 u0 @% e7 u
# t6 R/ q: |- E7 D0 V4 o, b( V: c: D! C
int main (void)
/ V7 S3 c3 |: M0 t0 I o{4 [7 }0 A% Z* }9 T- T
initialize();# J9 Y! w2 F9 L0 t/ W
7 ^8 Z/ Y2 k& B- `& x while(1)3 ~9 r& K* Y' r% d2 q
{
- z- D1 |, h6 [, E# x; J& a8 h if(count <= 100)
) j8 e, \5 B8 {6 o { B i6 q$ U' N* k; z2 v: J1 e
if(count <= 50)$ Z |9 O8 a# q% S+ H2 t4 n9 H
output = 1;8 j% w. q* d) r# m% c! O% w2 W& p" ?
else output = 0;( q: V/ L, X& h. y
}$ L6 C2 ^# t" ^7 @/ u
else count = 0;: P5 n' r% |) o+ Y0 e* X! D
1 h$ @( Z5 L( Y: O1 r% K
}
: ~. }# O- D9 {. C: Z; S7 D}
+ u' V# {' o5 e- r- r+ Z: l6 E3 G2 A% w
void timer0() interrupt 18 ?- _2 o8 u j% ]% R, i1 i' }
{$ {; O& k H+ O7 h( V
count++;//计数
; |5 X. _( G9 Y! P) F //TH0 = 0xFF;//0xFF;//
( O; H& V w% t) K5 `# c9 G- Z" j //TL0 = 0x9C;//0xAA;//重置定时器初值(100us)
$ F" _# O5 T) }8 M& e6 ~1 |) ]}
+ M2 x" `( v2 w# d0 U#endif |
|