|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计3 h# ?2 x& R! u3 z& q
9 z; B" f9 z) y+ q0 a. w1 \ J9 l0 D: ^5 ?* R4 v- E: l2 Y9 v
交通灯单片机程序:+ W# m; ~) E& ] h, r. w2 I; k
#include<reg52.h>
) }; v9 j- r+ i# @9 W1 X1 u7 S6 U #include<bstv51.h>
4 ~, b1 G# \ i7 v #define uchar unsigned char
" }$ z- M; V* C #define uint unsigned int1 E& h7 U2 W# }! \: S* R. C; T
. j- H6 z& M! W$ x2 H* w) i
sbit nbp1=P0^4;//南北方向数码管第一位;& z1 r+ C9 y4 s) f( Z
sbit nbp2=P0^5;//南北方向数码管第二位;4 z! _8 V' S6 z8 ]) k
sbit dxp1=P0^6;//东西方向数码管第一位;' v5 A5 s% k7 x. T* Q: X
sbit dxp2=P0^7;//东西方向数码管第二位;
6 x( R$ k" ?& N, }: ^. w3 w, k4 C6 n3 o7 S. _
, P- D2 n4 S3 F e sbit hdnb=P0^2;//南北方向红灯;
% B+ B0 z$ u7 H; ^. Q sbit hddx=P0^0;//东西方向红灯;1 j; G1 O+ p) F$ }( |2 I0 }0 |
sbit ldnb=P0^3;//南北方向绿灯;
% A* ~% s( \8 ^7 s sbit lddx=P0^1;//东西方向绿灯;
# ~0 o; B( L( e5 J uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
5 u0 I* v$ t" B" |4 N 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9
5 ?; L9 V3 L7 L% U ?' J uchar num=30;num2,shi,ge;
' w+ O7 z1 H9 R* \) i, C
6 J/ G; Z$ q2 [* t7 |- f6 b! `- Z( Y. _- {
! W. S% Q- Q$ P, S. O
5 v4 W( e( ]1 Q" q
9 p5 T% d6 H: L- O) k$ x, o- Q: ~
& \% }% k1 Q$ t void delayms(xms) //延时函数x毫秒函数
7 u6 ~; C' o& h) f9 S) D {
. g$ T/ Y+ t' L& d2 v uint i,j;
( |- a/ Y: b8 ? for(i=xms;i>0;i--) } p$ L, w# p* l- O5 h9 l, s
for(j=110;j>0;j--);
]2 i9 V- c- T2 E/ _ } s) B1 W. e5 }
( Y% B% z9 }9 z) G2 O& l
7 g8 g' H, y: I7 c3 Yvoid display(uchar shi,uchar ge) //南北数码管显示函数( ?( B/ |" E& \; V/ \
{ 8 n: }5 c( o1 N1 {$ }2 i2 r
% C( I: W& g/ v7 e * h6 e9 @1 K4 r8 p8 ^% B
. N4 d) T3 j8 M& V. y1 i; r6 w7 J, @# a `
P1=table[shi];. @! Q* E$ A# m0 ?
nbp1=0; //选中南北方向数码管第一位
, m) r0 X! S2 h( v8 I" n1 h) W delayms(3);5 z8 X% I( B7 a7 J
nbp1=1; //关闭南北方向数码管第一位
2 P: \' e5 v" a, f h P1=table[ge];: c! e! f, U9 `- c1 e2 @
nbp2=0; //选中南北第二位' y- x" [% v, h0 S/ m. s
delayms(3);
8 k( W1 _9 W9 N1 r& e& S nbp2=1; //关闭南北方向数码管第二位$ Z$ k7 W5 l6 J+ }/ d* G3 W; T
; e% j) Z9 w7 S6 S% Q
* {& Z3 l7 E; k) t. d" O- E; A
1 n. x1 U# k% I5 v% C/ R' b8 q' W( W Q0 c+ M0 [
P2=table[shi];
3 d: t, O) S. r' | dxp1=0; //选中南北方向数码管第一位8 X& }+ C! z/ g, G: ^: ^2 R
delayms(3);
8 x' x% ?! X: Y dxp1=1; //关闭南北方向数码管第一位
3 A& p3 E8 \. N) B8 i0 r P2=table[ge];
" C5 I* A; ~1 O% E9 X: J% z dxp2=0; //选中南北第二位( p; J: w( p& j0 \: B' i. {
delayms(3);& L4 a. ~( O k# ]
dxp2=1;
9 O. P* S$ F1 l6 ^) ~ e' p}' N* {' E' J; U& h! O
3 p" V$ e: ?( c. r8 T" ?: v1 x% q& d* y/ M9 @+ j1 O
void T1_time()interrupt 3 //定时器1中断函数. z1 k/ N5 P8 ^5 S4 t
{
: \ [+ e# N6 e. L4 ]( b9 G, Z! t TH1=(65536-45872)/256;
7 A2 h: b0 f9 Y0 M3 y. I TL1=(65536-45872)%256;! W6 w! G2 s0 b0 E; N3 E
num2++; $ a9 K" f) X* _! V+ w4 {. u8 p
if(num2==20)( S0 Z* U: S2 N! q8 O
{$ T: X) s( e) _) U7 K& r% x4 f
num2=0; //说明计时够一秒
$ [2 o3 z# H4 A9 F num--;2 }* ?! I$ A9 a4 g2 D5 n7 T. r
if(num==0)6 D/ Z; Y; h# ]) ?) @
{ : ]1 i4 I( V5 P1 O. b: b. }
lddx=~lddx;
: x5 ~, @5 W8 v( E$ o6 \, O0 \ o- E hdnb=~hdnb; # L+ w4 G6 |) f& Z
ldnb=~ldnb;
( ?' Q: T$ G+ z0 x( f* N! v6 l hddx=~hddx;
( y& }5 N( [7 e G; Z) L num=30;" ^ ^' K4 P% Q5 K
}
( j# g8 \& G% L4 @7 v& ~/ e! ?# i8 m( o" G+ \# P0 P) V2 ]
: t% j/ j5 U8 K+ c$ C }
1 x& v4 h3 n3 O3 w/ p) S shi=num/10;! `; @! Y5 q6 d. N
ge=num%10;5 K6 X8 @4 d* i+ S) T' ?: |( c
}
' k2 s2 x( X: `- N9 C
$ C: V4 j4 i1 B9 p* E' I8 a! R7 n2 `3 W' G: d$ T' ?
% P+ y( N9 r0 L& j5 I
' U0 M3 D6 t( ovoid main() //主函数. U+ y6 R7 O) K# @
{
8 I- u' N$ N) H3 Z% N! K7 M TMOD=0x10;* D4 J5 L' q( m: t) u4 f
TH1=(65536-45872)/256;3 V- g( @; U* {3 l& S3 \- u9 h$ e
TL1=(65536-45872)%256;
8 n2 l+ h1 M- J/ N8 D) I+ g EA=1;2 c J* ^, D: v2 F! i5 ^% Q- N$ n/ e
ET1=1;& w1 o0 p( s. ^: B \/ m3 _
TR1=1;
, S2 h# x8 p7 C. S* y v lddx=0; //东西方向绿灯亮
+ r: i( h6 v. H% Q% F2 m hdnb=0; //南北方向红灯亮3 _- @8 b/ g: ^
ldnb=1;; h8 _! M5 x4 A
hddx=1;
( S! @* q f- e2 K7 ]0 u5 @
% d0 j1 }5 y9 z6 u
1 I3 G T4 p' S7 `0 H" v) C2 e P1=0x00;1 k" F' G* c) D0 S$ Q
P2=0x00;3 B2 K. m! }5 g; q2 [
nbp1=1;; m6 A4 t2 _- d6 E0 f0 S
dxp1=1;
; ~& E8 E" y7 b q dxp2=1;" L2 _9 y" B9 _, k
nbp2=1;& C |0 V7 _4 Y- I9 X0 {
/ ]" ^, w6 Q# X+ p# \) C# ]# }: ]; c- `8 K* Z3 ~
while(1)
6 t, ^- C3 C2 G& K/ u/ s# \ {7 s8 x2 ]4 o' ~( b
display(shi,ge);( v2 j& j9 p* n; j' [+ F
}
0 {1 ?" C2 c' t: b* A5 |% S }+ d0 m! H# Q0 J- Z9 M
" i$ a1 C% X$ n- G! S- P/ q% G
基于51单片机交通灯设计下载:. N, i! p3 M- w; _' l6 [
h2 }+ S A. S% ]
1 ]% r% _; S9 n' e! \: [ |
|