|
( h/ g8 _( t8 ]1 l5 f( p& r" e
难道是程序出问题了?
# C; Q: z8 I; O7 Q#include<reg51.h> ; i s. B m0 z' m- x% y. @0 i+ l
#define uchar unsigned char
$ T4 r, n4 G( ^6 Q3 S9 s#define uint unsigned int
7 V, N; L6 D" O! B8 L8 N7 Bsbit led0=P1^0;
! n* [2 `" m: y2 j/ d/ M! |sbit led1=P1^1;
q& ]" Z2 V6 rsbit led2=P1^2; % O! u" B" P* y
sbit led3=P1^3; , e: Z( O6 N, P+ Z% R9 g
sbit led4=P1^4;
. H' A$ ]& z2 h2 C9 p; ~0 Qsbit led5=P1^5; $ Q$ R$ E h, @0 p
sbit led6=P1^6; 1 U' [! L/ Z6 y6 m9 E3 z# z/ t
sbit led7=P1^7;
% X6 `6 R3 M S( w& G% A" Y) j( Q4 n+ z4 Y8 w
void delayms(uint ms) 4 T e* j7 o% t& |+ v
{ 6 }; q9 f! M% z
uchar i; ! C& Q8 F- u+ \" b/ L8 X
while(ms--) for(i=0;i<120;i++); # C5 k4 ^1 `4 \) A/ O7 d
} 9 e1 `9 C( M, k( j: Y! L, o
//主程序 ! u$ ~. X1 S3 J8 r
void main()
! n1 L9 M" T$ }' e2 v+ _{ ( s" ~3 `9 l) b6 y- `
SCON=0x50; //串口模式1,允许接收 ' z* Q* r z* K! H+ @ q9 [3 Z
TMOD=0x20; //T1 工作模式2
7 H: o# a; F1 [- ^* `2 XPCON=0x00; //波特率不倍增 : H j& [& @( l: ~4 J, R& P
TH1=0xfe; //波特率9600 : ^* E2 K% G m2 Z
TL1=0xfe;
' T- \# s M3 w5 k+ L1 g6 bRI=0; 3 m7 \& q% z. w
EA=1;
( v, h/ d0 I3 U. V, D3 @/ C3 { @ES=1;
; t6 b/ B) O. R5 u1 |# U6 fTR1=1;
6 U1 X; f/ W# p8 Z* CP1=0xff;
5 ]; A6 ? c9 W# Y5 ^+ {) e2 jwhile(1); 9 i r5 N _, M
}
* F& J8 ?2 t0 ]3 bvoid Serial_Int(void) interrupt 4 % J9 y1 z% T" Z+ o4 c% F* f
{
) ^1 I' r* E* huchar a; 7 F" r- t# M' g
if(RI) //如收到则LED 闪烁
- i" _: R6 R8 M# {{
9 U& }! B& B' y/ s& ^' g7 oRI=0;
6 ]: E8 I: E; [% va=SBUF; * O, p+ p o' ` R2 W
a=a&0x0f; 5 P8 g- t' O* {( d V4 j
switch(a) 0 h1 I/ Z2 O, m& `2 w
{
" j" c ^1 i$ n# H0 A6 Z7 }8 N& P case 0x00:
' \5 B6 Z+ W0 F/ m! p2 e if(led0==1)
/ D1 _3 C; `" R6 a" ` { % H. |) K" P# Q
delayms(10);( D; c" X ^. O$ H- Y
if(led0==1); : ]* Y3 i N8 w
led0=0;3 _2 T/ A/ [6 U# }! Q0 e+ r
} * i! M! c$ x( A9 b2 m. _
else led0=1;break; 2 X9 \8 i T" _
case 0x01:
3 P# ?. e! t2 Y) N5 P3 ` if(led1==1)
9 r( O9 W8 T( U: | {
# E; `9 x% Y4 @) [ delayms(10);8 E3 q- f# Q' ]- b2 d
if(led1==1);
8 Q4 @' K* }% l! f0 } led1=0; 5 H4 {! }; b0 h2 Z9 [% s N" t1 ^9 R
}
+ ~' f( B" c8 O7 N* S else led1=1;break; " [( _' H$ ?2 w6 o" ^
case 0x02:
; P0 x K1 z# _5 b1 f+ U" g, B if(led2==1)
, T4 g9 E- P4 X/ l { ' V- J D. A, N4 d* S7 z) q/ j
delayms(10);# q3 {1 H1 N) |# a$ x- _
if(led2==1); " a$ J5 P, o# t' Y
led2=0;
: r: F9 E" ~1 w( d2 q, h } " L! F: g, I, @, o7 B8 d
else led2=1;break; / R3 q4 M$ o+ h# g. [( A% u
case 0x03: 7 |3 k/ ~- n8 I: v
if(led3==1)
" w0 M& X5 N: T! \ { 6 i3 e* M1 Z1 k( R: _3 m* j9 `
delayms(10);
, p3 k- |. G6 P( F7 T& U if(led3==1);( o8 Z1 A7 U ^( E; u
led3=0; ) L6 \/ j! L* r( ]/ ?5 S
}
' W6 U1 u9 w, A1 S! [0 Y& v1 _ else led3=1;break; # i3 e& y; v: c1 N* s% k
case 0x04:
. D; Y/ e3 d+ } if(led4==1) 9 a" j& e7 v1 j/ u \. M7 A; V1 S
{ 2 I" m* K( o$ |% ~6 B- o
delayms(10);7 E2 {$ ?" U+ z3 v/ p; ]
if(led4==1);! c: J$ j' d" ^5 V
led4=0; l. _+ b" b% E
} ' N8 t# n* v' _* l. [+ Z0 ~
else led4=1;break; - C9 K/ D7 {4 b
case 0x05:
2 t9 E) j2 w* O* |7 u if(led5==1) / r4 E9 o0 m# p a
{ + g8 d! y$ t. K6 ^9 g
delayms(10);
6 M2 a4 Q) M% y# t0 o, T" _7 F if(led5==1);, ?% |# t) _; b
led5=0;
9 J W$ F2 `+ y }
" f$ [5 [. \0 \1 @6 f" f! A else led5=1;break; + m2 W5 f3 C7 E5 o
case 0x06:
, H- h' Z4 L: j4 [) Q if(led6==1)
$ f; t. ~' N9 d( F {
2 P! u! n+ g$ j# K delayms(10);
+ `$ |, o( p' {% Q' k) C+ C/ { if(led6==1);
+ M( c$ i; C1 ]; ]! T3 @ led6=0; $ D: v, `, ~0 y8 w, y1 S( d4 y
} 7 U2 b+ c- g/ x! |9 \. r0 D
else led6=1;break;
3 y r; `: q3 K8 Q( W$ I* Z+ ? case 0x07: & L; D& C3 j' Y6 h1 V
if(led7==1) " F& a9 T; j5 ~5 w0 P+ u- |
{
0 b! [3 J- ]$ G1 W% n2 g delayms(10);
" m; t; Y% P. L* Q( C& {3 x if(led7==1);) K& n6 Y+ N/ Z% s
led7=0; 0 o; h3 n3 ~8 ^' B2 @1 I
} 9 e2 g1 V3 r* I7 v2 n4 E9 s7 q6 }
else led7=1;break;
- P) |$ }+ B7 R1 _. c* O7 M3 J. E }
& [7 k. \ S: p } 7 ]! ?' e0 h3 f/ x
}
1 A2 Q! X) ]* _2 P' W这是程序
1 l7 J: {. @. ^/ N5 C; s5 \; F |
|