|
( Z: h p' g( R* `4 a. Q2 c
难道是程序出问题了?- ]3 I! Q+ X7 y) E
#include<reg51.h> 0 T ~7 _4 R5 }0 E* ~8 h
#define uchar unsigned char - c4 e5 L$ Y* w; C, L' a
#define uint unsigned int ) f% D! F9 D$ Q
sbit led0=P1^0; ! V& L/ W, L8 f8 [( E* o7 z6 I2 r$ N9 f
sbit led1=P1^1; 4 b+ D0 q7 U7 G
sbit led2=P1^2; - x9 ]+ \* |3 g
sbit led3=P1^3;
% y% r( ]1 o8 l* @8 k" a0 e7 ~* tsbit led4=P1^4;
y7 l5 b; \3 ~, O1 X* j# i: Q+ A, msbit led5=P1^5;
1 _/ h& f4 T# Q# k8 Isbit led6=P1^6;
6 D' f! O3 x# o( a( msbit led7=P1^7;
& D$ j. c+ S) b9 M; w
- \! q& m# m0 H( p: h lvoid delayms(uint ms)
6 }% c4 J2 u' s2 b% u6 E{
2 H; `4 T$ o$ J: G0 d0 M& Ruchar i;
( p) P) M6 S9 g& M% F8 Iwhile(ms--) for(i=0;i<120;i++);
1 Z# L7 ~& k9 L' D( e3 d}
5 V6 d" U2 y2 V" v& }$ q//主程序 3 j) _4 c, Z5 X/ j- [+ ]5 `
void main()
- E4 `) X0 |! A4 F{
4 U q. `2 R' M# T7 |SCON=0x50; //串口模式1,允许接收
; v) N/ r+ o- ~! S9 A: {TMOD=0x20; //T1 工作模式2 4 h2 g3 O7 g4 B7 Z- t, ?
PCON=0x00; //波特率不倍增 & }1 A* _" f% A
TH1=0xfe; //波特率9600
1 q; j9 a8 G6 C2 X' R# ^0 A& lTL1=0xfe; / _; T2 O) t, q+ y# a
RI=0; ) F, H8 H8 N8 R0 W* W
EA=1;
% @: m: A4 `" d4 H" VES=1;
- C2 c" E' g' y. a6 v+ KTR1=1; # \1 y! @; g# y- x2 s
P1=0xff;
+ G) A( W0 n% C k# H% owhile(1); 8 M' b' Z1 p% V1 \8 k
} ; i0 ]5 b: u. t7 F u, E
void Serial_Int(void) interrupt 4 * _, o/ J) l; J6 B& c2 ?
{
+ c7 G/ x+ O3 iuchar a;
$ c) Y6 ]) w* ?+ iif(RI) //如收到则LED 闪烁
* j0 W* u& e0 o1 n' v{ : Q n5 n. G1 G8 k
RI=0;
7 \3 L" K, a2 P* E0 ga=SBUF; ; _- O6 R3 Z: `4 z) ~) t
a=a&0x0f; . r% J7 o) g; F- D* l. _6 \& M
switch(a) 8 j' X0 R1 h, ?
{ / A5 ?7 |6 X8 ? f
case 0x00:
* ^1 f9 x; H. a* t0 B8 E, H if(led0==1) ( H/ r. p8 s# t+ Y
{
1 w- r, a" L' _! d) T delayms(10);
6 u0 Z0 O$ j/ y$ M$ v if(led0==1);
+ H; |2 J! \" N7 ]8 B; Y# ? led0=0;
, x7 ^% k8 I; ~# l6 N' l } : T' o; E' \ Q( i; A- g0 g. L
else led0=1;break; / K, ^4 B1 I# [' d. z3 F
case 0x01:
, I1 M0 K( r( Z& a3 c; O/ D if(led1==1) 2 G. h' R% y7 e) W, |
{ 9 D1 y+ Z: c. o: e
delayms(10);+ g1 u6 i, p4 l& \
if(led1==1);
9 f7 W) k' y' n5 E% t- T- M led1=0;
' u; Z' {- C. A/ C6 g" s* M } : D% n/ Z* _6 d. Z5 }: v
else led1=1;break;
' F/ P1 ]- I; k1 j" X case 0x02:
- ?# h3 d _ w0 {2 e7 ^/ _ if(led2==1)
) n: `5 p) O- Y. G4 Y9 ] {
1 M# J. l! L+ \: }1 ~ delayms(10);$ O9 i: q6 L; @+ |! X
if(led2==1); : \5 y0 T) N" I& \5 k3 A! {
led2=0;
# ^+ Z" T2 n8 n( P2 Z6 q% u! L( R } ' y4 c" m' R% q( a4 I6 a% i) @. n
else led2=1;break; 9 T. R& q; t% D4 {
case 0x03:
, P6 u7 W. w. B9 }4 S9 \3 g if(led3==1)
: V2 q% B/ N. e9 B { 1 l- v+ l9 `+ b
delayms(10);4 c* s) B+ o: d% z2 R
if(led3==1);
5 p( P; O0 U; y led3=0; 0 s+ X7 f" y% n# ?
} 7 _$ {( D& ]0 P9 P
else led3=1;break;
* F+ H8 a& K, D2 [ case 0x04: & `- B# z- q5 Y+ O
if(led4==1)
9 Z- r7 g: |6 }' f { 4 p+ f) j& k2 u f! I/ m1 r0 v( Z
delayms(10);
: \+ Q) {& X4 Q2 d if(led4==1);
, ?5 C% D, Z4 X" }# l led4=0; $ r4 N7 Q& D. R
} - V! n) o8 F0 `. ^
else led4=1;break; 0 |& t1 K2 D3 A- j; A- {- `$ y8 N
case 0x05: 3 ]$ i- H* z+ A7 x% o0 a8 |
if(led5==1)
+ \* t- c( v' |/ e' F1 e% H3 | {
! _1 c& j6 R0 J" U* G delayms(10);4 p6 t; y' l$ c/ Z: S# J. V
if(led5==1);
! D9 a. ^6 p; _% K( \& ~0 O) ` led5=0; ) A: c6 Q. D8 a1 x* A7 ~% T
} 5 n; T; M9 P2 Y3 o+ n
else led5=1;break;
. a- |1 T! ^) R9 z. p- V$ q6 Z case 0x06: 2 @) A, r/ c5 Q
if(led6==1)
! r' u- S- N' O {
9 d P" j% h& p2 d delayms(10);
: s, _2 W% }1 _$ b5 f2 T* w% T if(led6==1);
% A3 l. O( }4 p8 n led6=0; ) T: f8 _1 I9 y
} 3 ]% x8 U n& P4 q
else led6=1;break;
2 v3 O! @, }1 _" B5 P( c case 0x07:
! w+ z7 E+ I/ o+ e" W1 C0 X if(led7==1) W8 r' e* e8 l% w7 }
{ ' F0 E3 |# ~% f3 O
delayms(10);
3 L# u# `2 \3 j if(led7==1);
) A% I4 n" ~; p$ |. n* w0 n led7=0; . u! `& L) A% O( d* }. j
} 4 V3 G/ F( x% x
else led7=1;break;
8 p* N# r) s; m- L- C" r2 ` } ; s; D2 g" d3 j4 Z& [6 E' ?9 V
} 9 D. Y. p1 |# z. \ E
}8 w. m' U9 y6 S
这是程序
# P7 `0 \' }& A |
|