|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“HELLO”。到此保持住。& i6 N1 p8 t8 V4 s5 m
#include<reg52.h>
% ^7 j! d2 R. u% |* b9 @#include<intrins.h>9 V5 i; `# p/ O
#define uint unsigned int
( C0 N. b' Z4 y7 r. ^1 D$ @#define uchar unsigned char
* z% } j0 ~9 y( ruint temp=0xfe,num=432,time;5 _) L* \9 k/ Y3 ^: t& l
sbit dula=P2^6;
2 N2 T+ W$ T& E0 Usbit wela=P2^7;
6 r% u/ U& |$ ?) _- {% c c3 ?uchar code table_du[]={" o9 c3 B' G* k5 f7 y' r+ \, c
0x3f,0x06,0x5b,0x4f,
0 P0 ]. n" g) W3 A$ ], W! O0x66,0x6d,0x7d,0x07,
; C7 `* _! k$ k8 k+ m* x0x7f,0x6f,0x77,0x7c,
4 W. \4 |, {% K+ P1 E0x39,0x5e,0x79,0x71};
+ y* I+ Y: g. y1 o% D3 d) |uchar code table_we[]={
8 H" e6 C1 x" N7 X! O: K( ]/ V$ a0xfe,0xfd,0xfb,0xf7,0xef,0xdf};- W9 ^) ^1 c' n4 m7 \
void delay(uint z);$ c; \9 ]! e. S4 R; K
void disply();* {8 o- ?0 O+ V/ i
void init();
9 }9 Z) p2 {9 X" I& H' h- pvoid disply_hello();
i4 B$ G: O% Z. g6 {% e: Pvoid main(); u" y' i4 q: c3 p3 i4 Q, q! }6 K
{
- l) I) j7 r% S" g+ ` int mark=0;4 g% q4 c- T8 C, }/ A
init();
2 S2 y4 y/ L" Y( d5 Y: [9 k) R( Z while(1)- C! ]; s, F7 r* u" @, p
{% ^% q2 W* _7 i; S4 ]
& _/ @. ]& j U, M
if(num>398)/ b& W- n$ t5 V$ b" z T5 j
{
' j$ i6 V7 H9 {; a1 V6 o. T disply();8 [1 `. W( v3 H3 K' X1 ]5 ]" ^6 q
P1=temp;
1 e0 Z+ o, e$ l) G- _8 \) W/ | }( d6 ^. n* x6 c
else if(num==398&&mark!=3)! \7 T3 g8 ^6 S+ m/ G0 V
{7 s9 W8 ]* \. q K3 F$ `7 z6 V
mark++;
9 h8 v7 m0 j: K& X3 O3 ~, x* y: q while(time<20)* K2 I2 R8 }# q/ c
{8 k( d- @* X, d
disply();* {- ]; g, Q+ _
P1=0x0;1 q; m h$ L% P
}7 @) r4 N3 [9 z% e
while(time>=20&&time<=40)6 s2 N- L& p$ H0 \6 R: M! {1 Z
{2 R& C7 j. ^3 I; k. Z
wela=1;
( R1 E( C" |; O8 C7 f- A+ t P0=0xff;
! @; \* B4 s Z0 H0 B E/ f1 Y wela=0;" M$ ?; P) d! {. \7 Q6 H
dula=1;
4 h/ s; V" Z$ ?" c# K: A; O; R2 D+ D P0=0xff;/ j! q$ l& X, S: O! q5 a
dula=0;4 P: W; c5 @4 b
P1=0xff;
1 `- a: g2 Y4 N: u) H4 | if(time==40)
5 h& W w4 B8 U2 O$ @. M) q time=0;
% ]$ n1 t7 u4 m( c1 I! s+ b }% F5 M1 H) E, }( g
}& i. U8 e+ {6 `& A: T9 s2 Q
else if(mark==3)+ [; o7 v" A) @$ M/ t. g; u
{
3 ]: \: F2 C# b+ l while(1)9 R6 q" p d/ O! \( k, g% P7 P1 S
disply_hello();
% }4 C; ^, d: j6 E! c% d$ v: J }' A) i2 n4 C' Z# ~8 { W$ X7 c
}( L/ M; E4 [9 e7 F8 o. S
}. _8 [! {0 N: s: i: J- m0 O
void delay(uint z)4 e/ @, @1 _8 E( {
{, d( \; A* K- ~3 K8 F. z* f
uint x,y;- `' [2 `% Z" l S% a& M r
for(x=z;x>0;x--)
6 G8 o+ k( ^1 M1 A for(y=110;y>0;y--);
t) }5 }- G/ @- s% a}8 t1 c" Z; F6 a
void time0() interrupt 14 m4 N* _7 j! N# Q# ~# m8 X
{; H: H* V! ~! @
TH0=(65536-50000)/256;$ H; p& S: q$ Z' G) S% O
TL0=(65536-50000)%256;
& g+ } l9 u$ F" C: \8 s5 C; A) P4 [ time++;/ p, [7 h+ b* K; {
if(num>398)- S$ `9 _) I) X1 L* `
if(time==4||time==8||time==12||time==16||time==20)7 L) [( Y" S3 E: p/ j# n+ G
{) A1 v8 U) O7 ?4 J8 x
if(time==20)7 a( X# r( T" r; @6 {
{2 {) T) a% l0 k4 w% p
temp=_crol_(temp,1);( Y E+ ^4 a1 X7 S
time=0;. m/ S' _* D: R7 }
}
, w, }' @8 `4 |. ]. m2 V5 U num--;
1 E: I$ a( {! i* j if(num==398), s; {* `% R# u2 t8 R M
time=0;
\9 E2 @. \1 N$ X }
% N* ?: Y: {& \% y& ? # T. a: X+ n/ A/ P: U) z
6 ]( {+ G* s2 J3 D
}: O9 M* ]' J4 R' U
void init()9 J* D! T! a9 m
{
1 c- u2 L5 a; O5 E num=432;
- i9 |+ } Y3 j& j/ H TMOD=1;! S8 A. Z) ? l4 F/ e3 A3 U
TH0=(65536-50000)/256;
$ _/ Q3 S) D0 W% v9 F/ @! s. f TL0=(65536-50000)%256;
2 f: y# b9 w; f& o' g* W EA=1;
4 {5 G5 O# l/ L; H ET0=1;# _# P' _( p3 Q0 |
TR0=1; W+ [+ {9 ^* I
}
3 ?1 {1 e8 B9 v( |" Q$ |) ivoid disply()
; K, P8 l# W' g. p{+ P# [4 D: v$ Z4 w
uint a,b,c;
" F1 l1 N. e v a=num/100;5 k. o6 g9 e" C8 h( \% _6 \! H
b=num/10%10;8 `; j. w! ~4 q2 M4 x; f& ?9 Y o
c=num%10;
. ^+ y/ j4 Q) ]# [1 p( f& W P0=0x0;: q& s: {3 Z( g
wela=1;
+ S h9 m# Y5 b' k- J: f P0=table_we[0];
- [9 U6 [- }' t( @* r6 u( Y% G# z wela=0;
1 G1 C i/ \) l0 A, O P0=0x0;
4 q( F$ F7 B* |- s% o2 w) B dula=1;
- b& o/ S% f: I% l" r+ R7 F+ b P0=table_du[7];
: z8 j* i8 W0 ? dula=0;
2 `/ z R, h# c+ ~1 ` delay(1);
2 @4 L1 G J. m' d' \8 } P0=0x0;
' p, g' U/ Y# H) [4 a wela=1;
5 M$ ?, S ^. k* J9 I. {. h1 n P0=table_we[1];9 w" l- }$ @/ ~1 i
wela=0;5 p1 G" z2 b( B W/ Z7 `* {
P0=0x0;
# H0 Y* D, p! U* ~ dula=1;
; |6 B ~2 h6 J& T P0=table_du[6];3 [, L5 g q7 j5 Q& O
dula=0;7 `5 T$ v( n% t8 u
delay(1);
8 i- K: _/ P( ]( P! b! `0 a P0=0x0;
5 M: N2 B# {. a, S5 w( ] wela=1;
3 p5 v* e r8 n2 V* c. b4 w! S1 ~ P0=table_we[2];
3 d7 P0 `( ?, P) ]6 C! ~/ Z wela=0;
$ M; f, e* ]: ]/ C- T* j" m5 C0 y8 c P0=0x0;
' b& d$ H9 i% P( t8 G5 H. k dula=1; h% e+ N& a V R) d7 ^
P0=table_du[5];
2 \" R6 h5 b( O, L6 s dula=0;3 D3 l1 v2 E. T" }( {4 q' N9 g/ S
delay(1);
: L0 x; \1 l7 H* X+ g! ?% N6 g1 k P0=0x0;9 g* j: N K3 @' T* k) N
wela=1;
) l$ m$ e0 q4 P3 Y7 H, M0 `5 D P0=table_we[3];! R$ ~5 g2 _0 T& T& |3 C
wela=0;
0 \/ a3 _' Q) J+ X P0=0x0;
& N5 K& j: q1 \ S, o' R dula=1;
! R$ S5 G; M$ K" R0 p P0=table_du[a];
: q4 u' F) e6 Y% G5 J- ~' | H" Y dula=0;
$ `; M! ?: ^6 k) g- A8 a" V7 x9 R delay(1);7 @. D* b7 k: V" s; Z+ b
P0=0x0;1 r$ X7 W$ g Z1 M9 Y5 v
wela=1;0 R( m% @$ \' g1 @9 [8 ~; m
P0=table_we[4];6 y9 K: M- ^% Z$ }0 ?
wela=0;6 _! U% ^$ u! x h, v% S( Z
P0=0x0;
- a% G6 e3 E, t# }$ b6 p# W dula=1;1 o2 |* p$ x! M% g4 v7 N- B% `1 Y" K5 M# C
P0=table_du;
* Q" v7 h2 u& H" X dula=0;6 m, f; o* j5 R# s
delay(1);
/ D5 n+ A4 d+ J P0=0x0;
. V, x4 L( s1 [+ Q, }2 e wela=1;
- z' A* c- u$ L) \ P0=table_we[5];+ o0 p; f2 o9 W
wela=0;2 Q3 n' Y9 B- ^ G9 ]5 a% g% F
P0=0x0;, U- i' c# i# k
dula=1;
5 Y2 V% Q6 Z9 ^) l& [* F$ R P0=table_du[c];( \ |+ `1 M3 ~% j9 q
dula=0;' z3 E; q* q7 |3 T. j, e9 l
delay(1);/ D' t) u2 I1 ^9 L
}
' `& b5 o3 ~- w+ F8 P2 ]6 R& o% i' Svoid disply_hello()* m6 m6 \' u, N* b6 Y: o
{6 P/ U7 f! }8 J/ Z& ]
P0=0x0;- I' |- i5 a0 C/ w/ _
wela=1;
8 D9 T- W% `& F7 F P0=table_we[0];. S0 R2 S. H+ J: J
wela=0;& z) P& P7 k9 C. u, C6 D. x5 m
P0=0x0;; R! K& O9 \& i6 t. Z' S+ O
dula=1;7 v4 t _7 u$ C/ W5 H
P0=0x76;
! a: h! I1 d5 k9 f# y dula=0;1 W) V1 U& F6 f0 f
delay(1);1 ?7 f9 J D2 c9 \. d3 M6 R" o; C
P0=0x0;
9 @/ C# s0 A5 | wela=1;
. G4 P5 f/ @# w& [ P0=table_we[1];
" s3 N" E( m2 o wela=0;
6 u' v% {+ e+ }5 y O3 t0 [# v/ j9 r P0=0x0;8 B6 G5 E% w0 ~7 C- o
dula=1;7 W- ]! G. L8 I( l# n; ^
P0=0x79;
) G* i' x; t8 i8 w7 D7 X dula=0;9 E7 d: v: u( y% p! v: O
delay(1);
, M7 g( D" \' `2 V0 c% k P0=0x0;
# y$ N# s2 c& w' A0 x wela=1;
- l, b- k# e& U, D P0=table_we[2];
1 u8 T# d9 p5 M( u/ I$ N wela=0;0 p* J' z" L* x+ g
P0=0x0;
- Z: `- Y9 t/ h! R" t2 g dula=1;
" S7 U/ H1 k- _. F P0=0x38;
: D6 J* d- B+ v dula=0;4 D4 c V2 T% n2 D' R
delay(1);& c3 a5 g' ]( r5 G2 y7 A+ B
P0=0x0;
0 b5 O. C; y+ S" ^! x: T4 _ wela=1;
- s9 E: a* |' x7 O/ J' T P0=table_we[3];1 J" T* Q, H- F) g
wela=0;# P6 w7 E9 \, o+ N7 v6 Q
P0=0x0;; o9 H" O7 N6 w; W
dula=1;
7 i7 S$ m: f3 Z3 Q7 M* V/ s! N6 f P0=0x38;
0 x% J9 l3 z/ f dula=0;
" b7 ]8 L; Q0 w# Y* l delay(1);0 ^; p8 ?( |/ M' K& Y0 j j
P0=0x0;9 i( H- ?- m# Q7 u. E
wela=1;, l( s0 M& C4 G* \
P0=table_we[4];) r( z3 i, h1 \' B3 h. D0 w
wela=0;# i7 F3 } { A0 {- V) F
P0=0x0;
; k w) H, n& p- R* Q dula=1;
1 {. E3 r( u& l% y1 t5 b P0=0x3f;
* Q& L1 B& N# C4 N9 Z+ O G2 j dula=0;! \! T$ p, I- T2 \+ U) Q
delay(1);
- D& l; j1 e( L. p1 | P0=0x0;" Y7 B, i5 ^- A4 K& E5 m! E
wela=1; G/ _" K: s' d/ i
P0=table_we[5];
# M( B) k+ P6 v: |0 d1 K/ @ wela=0;
0 e6 f- [+ O9 Q2 ^) d6 L" u P0=0x0;
. k1 I5 V3 C- z; b* p dula=1;
/ O7 O5 L- ^# r7 ] P0=0x0;5 Z# [, U4 g1 g1 C `
dula=0;
" U& O. i. _$ W1 F delay(1);, ] q9 C- h9 m2 a2 O
}
# A$ P$ s: ` S* n0 U
( K# K% ?8 t, s( u, D; S/ ]
1 T! F& K( }: p& a/ p# c' F |
|