|
* O9 U; f* i1 @% t' U; R
难道是程序出问题了?
3 C3 N; e* `2 p" S- W, g#include<reg51.h>
" u+ F+ Y% i, J6 l1 v- n#define uchar unsigned char ( U1 ?2 c; b0 _2 I
#define uint unsigned int
6 [$ w& p% N9 l; vsbit led0=P1^0; ( J1 t; i& n) p! R0 B
sbit led1=P1^1; m' d3 M: D5 B
sbit led2=P1^2;
! V3 R& ]* i0 ?5 `2 \0 l# hsbit led3=P1^3;
- S1 h+ G: p5 `( p hsbit led4=P1^4;
1 n& A0 _$ F0 Dsbit led5=P1^5; ( ]7 T- \2 K( O* \- ~
sbit led6=P1^6; # N: \9 z1 Q0 w
sbit led7=P1^7; ' Q- \+ E* \- t+ ~6 }+ ?. a o, T
" ]# |5 C; S, Y+ h; H! Pvoid delayms(uint ms)
1 M+ l4 }& b( u, U6 U{ : q! d( }3 q( C
uchar i; - R6 L8 a. ?4 f$ U9 v
while(ms--) for(i=0;i<120;i++); 8 e: p6 c7 H6 l3 r& H8 w Z0 @
}
+ m4 t; z- O, ]- b4 k3 l7 u//主程序
' m# \' S' ]3 E5 y1 Svoid main() , A. G2 g$ P, k9 E! Q- _! r
{ 3 I& T: }( Q! i+ X. W3 s& V( h
SCON=0x50; //串口模式1,允许接收
. B' l4 L1 {8 P" x* n. YTMOD=0x20; //T1 工作模式2 & [% a: C2 X5 M" W9 g
PCON=0x00; //波特率不倍增 ( k% \) E5 h2 x% b# K
TH1=0xfe; //波特率9600 ' e8 O+ ]2 b3 F+ X! e
TL1=0xfe;
+ r- n: b9 B7 Y. ?RI=0;
4 }% o# O. L& @; fEA=1; + s0 Z5 \1 [+ ?* g V1 o
ES=1;
) ?9 t4 x5 t* B, \" Q+ D/ a2 JTR1=1; / A" a! @% e5 z* A4 f
P1=0xff;
' U2 B4 C( @2 V; Swhile(1);
: `& c) {# h" Y2 ]6 ^}
) w0 I6 k4 p% {3 }void Serial_Int(void) interrupt 4 # l3 o" y. y: A% c$ k2 G7 J$ b$ d& U
{ & d) z, |6 E. v4 f) _
uchar a;
# {7 v0 Y* E5 Jif(RI) //如收到则LED 闪烁
+ |) X$ o7 ?6 Y' t4 x{
' g, h" ^; r) |: }% {5 W+ X3 ERI=0;
% q0 X, O- c5 Z5 h' w1 |a=SBUF; + i b @$ V% T) |1 _
a=a&0x0f;
) s" L0 d3 K8 z6 V8 l( e1 gswitch(a) 2 J( a8 s, L+ y& s
{ 9 |8 `) Q' l! K0 h. H. ^9 R
case 0x00:
8 b5 f) ?7 i, q% k if(led0==1)
7 G6 V' G6 `3 w3 J {
( ?1 Q7 h' y" f, a' x6 Z) P delayms(10);
, i% H- b5 i1 V# K/ s/ g9 C if(led0==1); + m. o" k/ T+ U$ p2 I
led0=0;
: d1 M( `7 u* _8 Y; E u) G- X } # _. `) t( o- o8 v9 H
else led0=1;break; 7 ^2 m# g9 K* R+ c" q
case 0x01:
! C! ^# ?! y, i if(led1==1)
0 l8 `8 J7 y6 f/ f { . k+ V+ }3 X" t2 m1 ?
delayms(10);
9 T+ v) m8 H. E+ ~' |! C: a if(led1==1);% F9 |0 M# X1 E7 o* e0 g
led1=0; ; j7 }- f$ C5 t7 u- w
}
8 x7 i* |* F- M/ ?3 T; J" f# r% J else led1=1;break;
+ d, P9 w8 o* D Q7 ^' \5 E) I case 0x02:
/ `+ t$ t, N4 A0 ^3 u& a1 T if(led2==1)
4 M# b2 l6 B8 {3 ~5 }6 k& T {
3 m2 F+ v- q9 H8 i8 V, { delayms(10);
# ]0 ~9 c1 E) _. I# d7 C if(led2==1);
* F/ [) ?; A' z: }$ j7 U led2=0;
3 |* |# G$ ~; D J& i8 q w }
P! O/ a& V; [0 Y7 B7 f4 \1 @ else led2=1;break; ) W7 ^* t; \# w$ S9 b$ ^
case 0x03:
. j @* x3 q4 `* p& n: D% ^. h- s# b if(led3==1) 7 R4 z0 {- T5 J1 D( k Q8 \* c4 o
{ $ H$ `/ ?' ]& d# K3 ]
delayms(10);6 b2 D# X; [+ N# g0 M. p1 U/ |& j. Q
if(led3==1);; N1 @) t4 ~; ] W: c
led3=0; 4 X( u9 T5 ~5 |3 a8 R, J4 b
}
3 D7 g& z2 z9 O7 o; z( P- g else led3=1;break; + E, ~( U& Z% j* n9 d$ H
case 0x04:
6 F% w% e4 C' w. m3 A if(led4==1) . J( T) \; d: o& x) K2 j5 U" t
{ " f: B5 u& X! R/ S/ _
delayms(10);
/ X9 y7 D5 w; i% n A$ p# Y if(led4==1);
3 u0 a. i$ f7 E$ i9 B) R led4=0; / H6 ^' V: [/ G5 s. u3 j0 B" Y
}
: F# z$ X6 B# A$ ^: T else led4=1;break;
0 O3 F4 C- b5 \6 O case 0x05:
( j: v U% T$ u; e) e if(led5==1)
% a( x8 V4 A: t0 L9 c5 L { 6 I! ^5 ?2 Q0 c
delayms(10);% P4 M- s& f$ A- H5 O
if(led5==1);6 ~9 G3 c5 i4 |0 W* T
led5=0; 2 Q& L7 G1 a8 g+ z! E0 X; _) \# X, K
}
. C. C i) T0 J! a else led5=1;break;
8 n: v/ r7 B# S case 0x06:
* H2 S8 A' b$ Z2 l2 Y1 q$ Q5 B) B if(led6==1)
" ^$ w7 c7 x( B( Y" E/ u { ' G7 L+ c' H# f; T" X0 b5 b
delayms(10);( a2 U+ p T( @
if(led6==1);
T) |9 y- _1 l6 W# F k led6=0; ! } j. D) W8 I z! E# E2 `
} ! B9 ?9 _7 s1 v8 C1 O+ h
else led6=1;break; 9 \2 }6 d" L, X# b5 q4 {1 w6 q1 ]
case 0x07: : ?5 A2 G, v* |
if(led7==1) 3 L6 n% h" J$ x+ D2 w1 w' o3 @
{ E2 a) v6 \( ]1 Z
delayms(10);) g4 K$ f' P$ K% d
if(led7==1);
1 Y8 e$ D1 z& ^ led7=0;
+ o% F7 C, x2 U' a6 @6 j T' W }
! F+ t' Z' p, ]! ]+ ` else led7=1;break; ! q% \6 Q; X+ I6 J
} 3 u5 p5 v; J$ [- L, K: @/ }1 n
}
n/ }6 d- ~- v& m! d5 j}! J/ B. G: |" W% j
这是程序3 i6 o2 j9 m' A6 Q a" v3 Y, a* C
|
|