|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“HELLO”。到此保持住。
6 |3 I+ U+ q' I5 | g9 l) A#include<reg52.h>7 [0 U& d; ~' P- D" s
#include<intrins.h>, d7 k, J1 V& `0 x
#define uint unsigned int
1 ~" N6 s5 H4 G8 X#define uchar unsigned char
" n/ N) D% @; A- M7 X+ X7 ^uint temp=0xfe,num=432,time; p% b' K) W# j1 f
sbit dula=P2^6;, b& `9 K0 P' H) _1 B
sbit wela=P2^7;" F; ], p- X2 s
uchar code table_du[]={
. q9 W0 `0 z0 b8 \/ T0x3f,0x06,0x5b,0x4f,
4 F* H4 i6 D( {9 B* b, V n0x66,0x6d,0x7d,0x07,3 c9 g$ e# m* t8 r/ E
0x7f,0x6f,0x77,0x7c,
0 W2 x5 g6 l7 P0x39,0x5e,0x79,0x71};- g! a' E1 y6 c& E2 Y
uchar code table_we[]={0 @% R' B" y. F* @1 D) J
0xfe,0xfd,0xfb,0xf7,0xef,0xdf};2 `3 T6 L9 Q; U# D4 i
void delay(uint z);: U6 Y* a$ }3 e5 C5 A9 ?( j0 y: Z
void disply();
+ M1 k3 p8 A; e: `void init();: ]. Y- l2 u) B" R) c4 h
void disply_hello();- m7 p) {( `5 H: L# Q
void main()/ s, p7 |" g+ E0 L
{
7 V! \2 P. h+ @2 U* v$ i int mark=0;: f8 I/ Y6 @# B4 h* U% z
init();
6 m6 h$ h! |; P0 v& J while(1)% K" [1 f. k& \; l+ c
{
c( Z/ ? a( n
q: e3 j( L9 W3 y# M" D; a; { if(num>398). R1 e* G& x) W B$ m; a+ h& |9 }6 x2 Z
{
6 m# t1 G7 r$ l9 | disply();
' s+ C! Y8 D. l- f+ y9 W6 p P1=temp;
; M3 K9 X$ x3 j }% o8 G3 H$ f! G3 q/ [$ Z
else if(num==398&&mark!=3)
. e9 U! V f, J4 @: N7 n7 u c {5 \! a5 x" I) t6 |: o1 U
mark++;
8 y. p5 c4 h/ { k while(time<20)
% Y2 r/ I& U/ W7 G$ H- b1 a {2 E" N' t* e- f4 g! x
disply();
& V7 Z/ }0 B0 {, Y P1=0x0;$ X" E2 G5 ^- ]/ \0 N7 k3 z, p
}. p2 F W/ @' v; [% _
while(time>=20&&time<=40)
5 }- v6 I& f# \& O* @2 f1 Q5 ` {
4 p8 S/ s8 |3 R- x( Z wela=1;7 Z% S; Z! I2 o
P0=0xff;
' r8 Y7 R2 M+ q4 ~9 Z2 O wela=0;; w& L# N, L6 e9 M3 J6 r
dula=1;
' o" A- H( S0 M' l E0 r. A; j% y+ n P0=0xff;7 D; F# \4 u {- V/ [+ X
dula=0;
$ u* k$ C" f% E& S3 [ P1=0xff;
1 o" x; [3 K d5 M, d3 ]9 h if(time==40)3 b% Q7 X' W! b% V7 ` v2 ]* T
time=0;7 `# u" ^1 a0 }2 H' k% G$ m0 s
}
" B. v0 ]4 N& h* _- w, R5 \# Q }
3 I, u% a& H0 f$ A6 o% t, i else if(mark==3)* ]6 M3 J4 N/ R, `; q' G% \( n
{/ t* x- L% W& }7 S0 u
while(1)
. ~3 d$ r9 R% m8 L) D disply_hello();7 g: v, [* o# w& P- d
}
]3 t" b9 [4 Z0 O }' o9 m' I6 S" |. X& ~
} R4 s2 u- p9 ^ U) }- X
void delay(uint z)2 ^5 T) ]$ I' F4 {
{$ |- Y' g' L% v1 r, U
uint x,y;
( P+ Q0 Y; g; f1 G. B" y' D for(x=z;x>0;x--)
1 u& I/ l. W+ }3 V* q7 y for(y=110;y>0;y--);# I5 O. e# @- [) r
}0 P+ m" l4 n& v) H8 T- u
void time0() interrupt 1
) F( \3 D$ ~ e4 @$ H2 k6 ~{
' b+ K/ A$ s `/ W# h2 m* c TH0=(65536-50000)/256;
; D( |7 f. n' ~/ l: I: w% t TL0=(65536-50000)%256;
" ?; h- M: p, Z% o2 F2 ], x% ?/ e; y& V time++;/ h$ s9 m$ [; A+ A( C
if(num>398): ?$ H+ h' W3 Q/ }( D$ F. z) q
if(time==4||time==8||time==12||time==16||time==20)
1 F' |! a# @) X6 o* s {
9 e, W1 Q7 o) y/ @$ x- k if(time==20)! \* F6 U, f9 W) S. {9 ?
{
& S4 F! g" o6 c/ A temp=_crol_(temp,1);" y) R; t% N& X! ~% C
time=0;
! _ G; P: r# v7 V* t0 ^ }
' \4 ^ c* u: S num--;+ q6 ]& }8 i; }3 J
if(num==398)/ E+ v+ Z. o7 R/ O, U+ f: u
time=0;8 L4 W) N2 I4 `( u5 f/ U) K6 p% r
}$ W/ J! E5 Q- H# N8 B
0 D2 m% T/ j4 D4 q) S% \0 ^# {
9 v% ]. m) K7 `# u5 x! r
}2 r( ~) K2 [$ m- M$ u
void init()
% y! P+ \6 v$ B, b. S7 A3 p9 i& v, p{
$ j: a4 U/ I* @9 F Q4 X& P num=432;
: s7 c. x7 |4 H8 d* k2 ] TMOD=1;
* h" h( M% w* W, G1 B: o TH0=(65536-50000)/256;& O; M+ R. R8 l# n! D1 n
TL0=(65536-50000)%256;5 o, w( _9 a2 u8 O0 U6 k/ x
EA=1;
% i! n- _1 k) G2 \ ET0=1;, t# ]) p# v" `/ E7 W0 E
TR0=1;
8 m7 i" F" {1 Q6 i: }2 H, D) p}( `& a3 z( e5 |4 X9 x2 P( m. V
void disply()4 ?! Q5 y$ H; w6 g: j! h6 j
{
2 K* s3 P( Y" d& L* @ uint a,b,c;2 K1 }) P0 f- b( X: M) n/ N
a=num/100;- n4 r9 ?: v* U. C8 J+ Y" T
b=num/10%10;
q4 D- R3 U. ]7 T$ X: d c=num%10; 9 M+ T1 @. B: e m0 z
P0=0x0;# {: D. |3 u! a( _0 T
wela=1;- A) H0 @: e; f/ f/ U t
P0=table_we[0];
4 f7 J3 L9 \% @4 P: n wela=0;
2 ?! o9 y4 Q/ ~ {* I% ]/ W* p P0=0x0;
' ^9 O2 u" @8 V8 e( E0 ` dula=1;3 |: V1 y9 T' V) N- S ?0 x) X; n
P0=table_du[7];% {; y! k8 e. z3 x( o* U
dula=0;
7 S/ Z; Y! a) b: n. b delay(1);
X& q F) L3 Z) U# R, f$ _( D Z P0=0x0;
; Y, H$ G5 d7 C8 J wela=1;
* c H6 g. y6 @ P0=table_we[1];
0 g. V/ F. }0 v, h) z8 \0 m: h2 I wela=0;2 P5 A$ X5 P! A, \$ C2 j
P0=0x0;' M, X# o& r9 G9 r6 `* H+ G
dula=1;
/ u* g u; h3 k& J4 T P0=table_du[6];% z! f% b* K4 z! z
dula=0;
. O0 T, R( s$ m delay(1);4 s4 v; H4 Y! T+ y, v1 j
P0=0x0;( j( J( ]7 j( `( v( _4 u
wela=1;
4 T" v6 y' S2 h; O- M4 n7 ^ P0=table_we[2];
1 k x* \/ b' t3 f2 ] wela=0;
; M1 x$ v6 I, }! b P0=0x0;
7 ] {! d6 n) e4 |& j dula=1;3 D; a. L) D4 r+ i# S
P0=table_du[5];, d# F9 G7 h2 C$ h% P
dula=0;9 I+ `0 g- ? D& d7 d" u4 U
delay(1);
% ^7 o8 T: K% p$ P$ G2 w P0=0x0;
% ] D. m) X1 j1 o; k; s; Q M; m wela=1;
" J1 y7 z t7 f P0=table_we[3];/ r6 `, ~+ ` a
wela=0;
$ e+ D8 Q$ N3 x# L P0=0x0;7 i) t- N4 A0 z2 P9 N
dula=1;
1 Y8 E; ~: r8 E P0=table_du[a];
. i2 N# n/ r( _% I' `8 a! e dula=0;: \: |% f3 D, G+ a! X7 x
delay(1);% ?* J4 D" L! _# r
P0=0x0;
2 T5 i, }4 y- G4 o/ L/ z7 M wela=1;+ j8 ^# I' `( j3 ]5 i' A& N% _0 t
P0=table_we[4];
7 |) L& d6 K) d& k$ i wela=0;
0 I h2 X9 a$ f# N- ` P0=0x0;& x8 t, T) k0 x' p! K
dula=1;6 W: Z% F( @, w m, y
P0=table_du;
: t, U, c" U; d1 ] R dula=0;; W& F1 P0 s# h
delay(1);
* Q$ n2 Q: R6 K( ^ P0=0x0;
" h' ?# w6 v$ X: h( J wela=1;
5 ], d. Z/ M: o( ~9 D P0=table_we[5];
* J9 U" ~! j$ l" |: l2 G! g0 a) C wela=0;
3 c6 _ v/ Q- U9 k; ]7 i P0=0x0;+ s2 z2 g3 M. ^, R+ R. b
dula=1;
9 c, d' T- }$ O P0=table_du[c];% h, n, t9 t. o: B/ ~; b
dula=0;
: L3 z% T; L( U1 G6 v delay(1);- R B) a+ a B
}
; a# j- g6 \8 X9 y$ s4 Hvoid disply_hello()
( O; G1 d" }% C0 s+ w/ }{2 f' S: f- S/ q- m
P0=0x0;9 r7 y$ f. v# w4 R/ H4 [) k
wela=1;% t/ ]- y8 P- i* ?/ d9 O& b. d1 I
P0=table_we[0];$ r0 a$ t' H$ M: p6 c9 O1 @
wela=0;
, ~! S6 U$ `" a! b. V P0=0x0;, e6 t% n' w8 V0 z( Y, T1 y
dula=1;
8 [7 v5 i- R( s# l, b P0=0x76;7 }( [% m k+ W3 Q, j5 r% G. v9 u/ Z
dula=0;
5 A$ d' S9 ]/ x8 z7 d4 G; n delay(1);( B0 h' V9 g. {
P0=0x0;) y" o, Q/ @! T# e$ s2 \% ~$ S: a
wela=1;
0 g$ B8 ], ~- W4 M6 _, ] P0=table_we[1];! a3 w3 H' J& v' N! _4 f$ X
wela=0;/ |: @/ J% J+ j- z
P0=0x0;" `7 k* @' Y. b$ p7 `! ]
dula=1;5 ], l, a3 A3 _1 y7 Z
P0=0x79;
3 n3 Q6 D! r2 m; P) C dula=0;; ^( u! {3 u4 j, O u
delay(1);
/ `; e6 H# E$ h0 u& h' Y P0=0x0;& }8 F* v z, X+ p4 `: P
wela=1;
* ~# x1 c* k$ o1 q2 N0 s2 a. j P0=table_we[2];
' e- `4 u2 ^; S" X5 y wela=0;1 _7 R @7 ?0 R6 h% [8 ]
P0=0x0;% u3 x: P+ t- ]3 I0 F( r) V
dula=1;
* f' H5 q& c* R P0=0x38;- W6 {; l( R- u/ Y$ Y/ y7 p
dula=0;' r8 k2 `4 ^, u5 @0 z6 h
delay(1);' U- q; Z! T: j# c& z1 h
P0=0x0;
1 m" [5 Z" E6 d/ U* E wela=1;' r, `" x4 x( O
P0=table_we[3];6 Y+ Q5 ?4 x" V% ?/ C8 J
wela=0;
- i9 X( f7 O( A9 ~ P0=0x0;
/ A2 q% G6 @2 Y+ M& U0 \. b dula=1;4 [* g8 \( E) v5 l
P0=0x38;
1 W, p, F$ u. c- Q dula=0;
' [) x. [3 v" S5 @4 w delay(1);! |- W. }5 Z% V% ~+ C9 V
P0=0x0;
8 R6 p% m* ~2 L t1 V wela=1;; p% R6 F. k% I
P0=table_we[4];
0 o3 O4 n% W7 v9 H2 | wela=0;
! Y. {# \/ ?8 a P0=0x0;! r9 J! {" V' @! }- x7 {1 I. V
dula=1;& P4 x! m! n. x% [
P0=0x3f;2 ~$ n8 w! T! B, u
dula=0; d- F2 f5 `* q
delay(1);- N# c6 T4 k% r- Y8 S
P0=0x0;
) l" J$ W" m3 j6 G wela=1; l0 }1 G: l, _( Y V$ E+ T* F5 ?
P0=table_we[5];
9 D" [/ N. r" w wela=0;" o: y1 J; t9 O9 r+ F- m( t+ H% L
P0=0x0;
' u& V/ M3 _( y0 S7 S o" x; I dula=1;8 m5 L) e# k6 Z2 ?% z
P0=0x0;
- Z( o! Z& b" j, I$ _ dula=0;: M# Y0 s a- o5 O
delay(1);
: `. m3 _. H! V0 w4 K} ! j7 g7 j0 T$ ^, D k
( i- [! Y H& ~7 N# S, j
- f/ S3 ]6 d q3 N, q |
|