|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
全自动相位触发电风扇源程序
: B; [2 N# D: N( L2 @$ S& t5 u/ f4 f. i/ _. j5 D j
8 p: N# K7 E7 f0 |//主程序
- i! J2 V9 p7 k7 P( c; [#include <reg52.h> J, m9 ?: l: n8 ^
sbit LIGHT=P1^6; /* 风扇触发端 */! c2 T( D0 ]' D5 |4 D
void Initialize(void); /* 初始化单片机。 */
/ ~9 | q3 V7 f1 bvoid wdcl(void);! q4 F6 r4 T/ ^# S$ ~& U5 n3 M
void main(void)
9 h4 o7 l- Y1 p- T" Q0 c" N8 z{
6 Q% Z N8 F1 Q1 h9 R# W. [" z Initialize(); Q% D: m6 F4 d7 Q$ u8 Q
do
& x" }' v* j" h# y# k k& H j8 d, P {8 @0 L2 e1 |5 q2 |/ H% T
wdcl();% B j1 N# ^2 S' {
// Check();; Z! \9 ^) p: J
}
0 s+ ?% j4 y2 [( D while(1);
6 |. D5 Q, F) E! e; y}: k+ y3 L% C# |7 ], B" ~5 |
void ServiceTimer2() interrupt 5 using 1( ^0 y7 t$ S; G4 O9 ?
{: t( h( _8 U- {" l) k+ |
LIGHT=0; /* 触发电风扇晶闸管。*/& i' ]8 Z$ q9 O; _% b7 e
TR2=0;
~' p& a! \3 d. O! Q TF2=0;: c: i1 O4 B+ ~; R3 _$ `
} ?- o( q" h; z/ F% t
ServiceINT1() interrupt 2 using 1
Z D! L4 l& G{
8 Q/ T$ K* s" t TR2=0;; m; J8 k' [5 m6 F5 W
TH2=(65536-10000)/256;
5 j/ }9 X" |1 F. d' W TL2=(65536-10000)*256; //晶振为12M,若晶振为11.0592时为TL0=(65536-9216)。。。。。" m4 O- K5 @" h0 I5 r7 A
TR2=1;
- f( D# ~5 E' F6 a* l3 @}
\8 R T3 |# b* ?9 qvoid Initialize(void)1 r0 [$ @; E6 q5 |9 x4 G
{0 Q( Z# X9 y2 o. z/ J
T2CON=0x00; /* TIMER2.用于电风扇的驱动。 */9 M# U+ p* b8 C5 q8 ~% b
PT0=1;( }4 }% B& o0 G4 Y' f" p
IT1=1;$ O; A* ]+ N7 L9 N- \* f
TR0=0;
; j, {, a4 P* y. T TR2=0;
5 k" l. |. \# Z+ W/ O/ N ET0=1;
# O- r! y$ ^$ z' s0 h ET2=1;) \' ~% P% u7 a2 \5 k
EX1=1;
$ S/ R. P6 Q+ o3 ^6 \0 t, m+ @7 r EA=1;
, B' O# M! e* Z; b, I8 M EX0=1;
5 Y" q6 ], @/ B+ f9 d; @5 ^3 e}
0 _7 J7 ^9 Z: o: w; y1 u. Z/ e# N( C; E' `1 K1 P4 I. V
w+ K' m+ e* J/ o
5 s; f* W4 ~+ M0 B) i7 q+ a5 l8 X. l1 _) `; |
|
|