找回密码
 注册
关于网站域名变更的通知
查看: 750|回复: 5
打印 上一主题 下一主题

基于51单片机交通灯程序设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-11 05:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

该用户从未签到

3#
发表于 2020-5-24 12:06 | 只看该作者
学习学习

“来自电巢APP”

该用户从未签到

5#
发表于 2020-12-22 13:59 | 只看该作者
55555555555555555555555

该用户从未签到

6#
发表于 2022-12-2 13:17 | 只看该作者
感谢分享

“来自电巢APP”

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-7 18:29 , Processed in 0.093750 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表