|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include<reg51.h>
. l8 `3 e* n5 a5 e4 o/ f#define uchar unsigned char5 `# q! ]" @1 K+ k7 A' F- _
#define uint unsigned int6 T% Z; b6 N9 {# }
sbit CLK=P2^4;
& c) ^9 K8 W, N$ k" rsbit ST=P2^5;
D. w, i0 h, V, psbit EOC=P2^6;% R l7 A2 Q: C* \8 [. h
sbit OE=P2^7;
' a8 \6 C' T' O/ d8 ^sbit PWM=P3^0;) X7 M( b% N1 W. w
8 ~8 ]$ f& ^- z3 e2 G! C& u7 svoid DelayMS(uint ms)
$ {( O9 A# X6 D/ u+ N& m{( n2 Q6 D$ H6 m3 \5 J4 v6 W
uchar i;0 Q J% \8 J: W* l% c
while(ms--) for(i=0;i<40;i++);1 }' d7 n& ?! ~% D, y7 ]
}
' ^/ W) P5 l7 p7 _$ g3 P& ]7 e! _# @+ I( O* S
void main()+ j* w8 [5 `0 e/ t u; X
{3 C( O: [$ Y8 {4 M1 \9 i2 i3 Q
uchar Va1;0 d k8 W$ K( K, k( m$ J d# m
TMOD=0x02;! k* ~& x7 R8 n1 l4 i4 [
TH0=0x14; h( M/ u) S% b6 T H" ^
TL0=0x00;
) w+ _+ G3 ?: A9 l$ E1 {IE=0x82;
) S K# n" B ^7 Q' P# v6 U ZTR0=1;4 J+ T, c' \7 H* m
while(1)
) q, [: v1 c% `- w1 t( \7 i3 e{
1 U( ?2 Z4 A U _0 eST=0;ST=1;ST=0;% `" p! b) j6 Q$ R
while(!EOC);/ [+ V+ I& E' X% M+ @7 o6 h. p
OE=1;$ ]- f# H% t# e1 k5 ?# @( ~/ K
Va1=p1;
+ G1 B: P; b. n8 `/ iOE=0;
* e" m. y' a+ g% n N3 [( yif(Va1==0)8 Q4 u+ b7 Q1 C
{
) x: ?! ~0 d. PPWM=0;, G) E& V9 T9 l+ K. @ r& L
if(Va1==0xff);
# M0 P9 O6 g8 fcontinue;* [% C* t, m& l$ F
}
$ V* b. i& e/ y" v( h: xif(Va1==0xff)6 I/ Q# Q @) y$ h
{
8 E, X( C" w% }PWM=1;
5 m& F$ p. e& L/ L$ ]: bDelayMS(0xfff);: a: _. x- B3 y. k- M9 N
continue;9 v1 i, P8 K; j$ h; ^
}) y8 d l4 z1 u8 P7 m3 F
PWM=1;1 R$ }5 l; B/ c* t+ M
DelayMS(Va1);) u, b* X8 P7 Z/ E# j: _
PWM=0;9 j2 f; r: ]( n, B2 Y, y
DelayMS(0xff-Val);
3 |+ ?7 q8 b8 F3 i- e}
4 j4 _& \$ u% j. V- D, |; b}8 t, s$ d; u" W6 }7 N
7 p( K8 y2 M8 Z& y* J4 V
void Timer0_INT() interrupt 1
8 L- I: x; G% V0 Q{
9 ^! F* W& @! p1 D) Y( t8 ~2 }CLK=~CLK;
- B! q: s" w& k) F+ [, h+ d R$ ]}+ ?. Z& X9 m- }
|
|