|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计5 N( E5 h! D# q) T: K/ m) j0 H# ^
7 w" ^: C: P. y
. `1 x2 `, l- b3 {. R4 L3 g; `. ]+ h交通灯单片机程序:
) r: r; h* H9 R" i- e9 T #include<reg52.h>
( Z: L" Q4 g2 K$ q3 l #include<bstv51.h>1 n5 |2 F- Z6 U% b8 N- F
#define uchar unsigned char2 r" B2 }. n/ i7 i, r
#define uint unsigned int
5 U0 u1 |& @9 p! B6 S0 U 2 J+ x# L& y( h& @. Y2 S' t) Y
sbit nbp1=P0^4;//南北方向数码管第一位;6 a9 B* f( F8 S& S; F5 X) ]- J
sbit nbp2=P0^5;//南北方向数码管第二位;! Q, u# {0 T2 C5 t' p
sbit dxp1=P0^6;//东西方向数码管第一位;3 w+ Y$ l# ?/ i- Y ?+ m9 r& _
sbit dxp2=P0^7;//东西方向数码管第二位;
0 F/ a# }* j6 |* t- H6 F
& H& x6 K9 x% H+ M6 v- S
* V+ a* }; [. B) y: y( O sbit hdnb=P0^2;//南北方向红灯;
. {0 m1 r. ]/ b6 e- Z& I) a sbit hddx=P0^0;//东西方向红灯;
6 e! |7 |& f* C: c8 y, m; w* j sbit ldnb=P0^3;//南北方向绿灯;
$ s3 C4 f: h" f. [ sbit lddx=P0^1;//东西方向绿灯;
6 y: ]8 v7 r5 h1 z. p uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,( G# W# W3 ^! K5 v3 C8 S' A
0x6d,0x7d,0x07,0x7f,0x6f}; //0-9# j4 b! \& d& g0 ?2 q
uchar num=30;num2,shi,ge;+ V# u6 ^: ^7 A& c$ v; F0 y8 p7 m
5 r+ C" Z+ s" M
2 U( \# Q& @. v: K l7 @: ^8 d
" q2 M( d% o+ H! F7 o3 q2 G
9 o; d: l8 ?! E; I5 D! l- |3 z. l1 F6 D" @. Z- v {- L/ j7 B* N
& J ^0 `+ k$ y/ ]" a8 [ b) |+ }: w
void delayms(xms) //延时函数x毫秒函数& p7 [/ p8 Q* N8 D' S+ D3 `
{; e. L7 a' r3 d7 t, s' q) j
uint i,j;
* h" ^4 u9 Q; y6 [+ }, X for(i=xms;i>0;i--)
/ Q1 V0 n% ?- e; Q for(j=110;j>0;j--);
' Z; b6 i$ O5 B9 S }( w0 h. R7 |! Q
- [5 f$ |3 G. l6 F; i" B, T4 I( Y9 U( w
+ w6 d4 q3 f1 b* S- D; g% k
void display(uchar shi,uchar ge) //南北数码管显示函数
. Q& a5 Y5 d3 Z3 @9 M- d{
9 Z% d, b+ z6 l1 m) |% X9 W
" g6 ?" E' B1 j
8 Q( b% H/ N4 p% T t6 X
, _" Z2 j. Y3 H1 z
$ ^( F" k0 f6 p P1=table[shi];
' u. G" t6 p! Q nbp1=0; //选中南北方向数码管第一位. s/ I5 e1 F. t7 `1 }
delayms(3);+ F+ d H+ \) `, X7 S- X# F8 q
nbp1=1; //关闭南北方向数码管第一位; Q7 s4 T2 E2 M0 I- v% }. ?
P1=table[ge];) u9 i1 v1 {% U3 ^
nbp2=0; //选中南北第二位
% l! p1 u3 `% C delayms(3);& ]/ |& V- s2 X
nbp2=1; //关闭南北方向数码管第二位* `' y9 }! k; n! X
9 {: l- |7 i# Q3 R
+ y( }3 w: `( `8 a' D
, L, J( v ~, ] e1 r3 [$ c7 K0 W, {7 _/ B3 G2 e# R
P2=table[shi];
4 S- Y7 S* x1 j, |4 n dxp1=0; //选中南北方向数码管第一位; K: W7 O6 j5 J2 G* z
delayms(3);2 P6 W% y8 A0 d1 R
dxp1=1; //关闭南北方向数码管第一位
, N. O: @3 T! D P2=table[ge];
5 m+ j. g: P5 H6 Z1 F dxp2=0; //选中南北第二位3 R0 l R" e7 J4 x; i D; W
delayms(3);' H- ?) W# }1 g. ]
dxp2=1;
5 ^, v/ ?2 M6 t) V}3 {9 k/ o5 |& U, k0 X( N/ T7 ]
- h4 g, u1 h8 k
! C& Z1 F+ O5 j0 ^" M( E2 H; r: p
void T1_time()interrupt 3 //定时器1中断函数
" `/ R0 W ?/ a$ f{
) P& j7 Q* ]0 f+ _7 G9 C9 h/ C TH1=(65536-45872)/256;
$ l/ m" V/ Z* Z TL1=(65536-45872)%256;) S( k/ Q: G! P1 m7 I$ B
num2++;
1 y( t8 f' @+ ~! F/ ` if(num2==20)
% ^$ v+ Z3 Y! c. A: s @ {
' {. B1 G& W3 ~. z. ` num2=0; //说明计时够一秒
" J" P9 S" z: o num--;
$ j& S4 D2 v$ L if(num==0); T5 w' l6 H v6 [% k
{
K; Z9 W0 {3 {9 C lddx=~lddx; 9 G) j$ `$ G. y( R0 X2 f V* ?
hdnb=~hdnb;
, \* V z, L2 W; W ldnb=~ldnb;
, |5 B) b0 q, {. A5 R. D hddx=~hddx;3 Q O z0 G$ Q( f
num=30;, K5 q ^: G1 D7 f3 z( o
}
8 @1 W; u" J: ?% i
; c" _% S1 o v; H4 _
1 q" [8 O7 t4 m; }) O% d }1 P. F S; V- u5 n5 v! m
shi=num/10;
7 f- O, N+ a) ?1 { ge=num%10;) A, P1 D9 }6 ]7 e$ N9 }
}
/ A* u } p& q5 F7 k' Z& U0 D7 O7 W; S7 w
& Q7 t; E0 F/ J6 _/ C2 s! h5 v
2 q- U- R; S: a5 o4 a, p+ P4 V& S9 J8 r
void main() //主函数
; o, G$ R" W: q {
O; M$ Y% u& D7 p4 O6 N TMOD=0x10;2 }$ D# I* m6 X+ g, m$ Q% N) r
TH1=(65536-45872)/256;
, r0 ?1 N5 f, \ TL1=(65536-45872)%256;
+ |" E: S: H$ D9 C EA=1;
4 e1 K3 \8 z/ l# C( U# ~' O2 ~& y ET1=1;4 B$ s- T% m# X9 Y
TR1=1;. F# V( H" |! a* S. a! L
lddx=0; //东西方向绿灯亮, d& K# m$ T6 P" A. }
hdnb=0; //南北方向红灯亮
; j, ?. n3 {% q# m ldnb=1;
I5 t4 _' u! F- C+ R hddx=1;
- a' f W& c5 g+ u2 j+ k
( Q1 ~/ x- k' S" ^/ S! v) @( w$ V# g+ M, |& b6 o
P1=0x00;1 t. g5 P. n' ]4 b8 s
P2=0x00;
! ?$ r+ N* Y0 T0 N nbp1=1;3 X7 C+ i; d! W! o% M4 m# Y
dxp1=1;
& ?6 T% G9 m, [$ C dxp2=1;) ?; y( R |9 ^; t2 e$ N
nbp2=1;
7 i" D1 {, b& y$ w: x0 H$ o1 I2 d7 t' b" r; X
5 W' C# _6 |- e& c6 u' u3 X while(1)2 T/ i4 F$ m2 s P1 N
{& @! t# R& R9 o3 i3 }1 T. s
display(shi,ge);. P* s3 ^4 b) c& z* c' Y6 g
}
4 I! i1 J1 ~+ e2 T' {7 Y% ~. R# } }
5 R- F4 L5 d& k- l. N1 ~* |$ p& F3 f7 a
基于51单片机交通灯设计下载:
$ r) C5 E& n2 G
& \: Z0 a& |, t* s
( c. G8 O- A% |+ s# ^7 b |
|