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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
基于51单片机交通灯程序设计$ o4 [9 e" Q+ Z

" ^$ l5 ^8 N% n
) B7 B3 Y* J  p* D. Y7 t: J
交通灯单片机程序:  y( [. g/ C2 q+ I( o; l5 n3 x
#include<reg52.h>
/ `& Z, a4 z( p9 l #include<bstv51.h>
7 S5 r  }( ^1 \  ?# H+ U  B/ q #define uchar unsigned char
- Q: o5 d  R3 z' n: u2 N #define uint  unsigned int
" E! B+ w8 o3 t% K2 T3 B: s; {4 w . V* a' ?6 F: u
sbit nbp1=P0^4;//南北方向数码管第一位;
0 g" b- S  N5 N7 f3 z+ @# W9 m sbit nbp2=P0^5;//南北方向数码管第二位;
/ W9 N9 k9 r7 U* G4 e sbit dxp1=P0^6;//东西方向数码管第一位;
: H- q6 {9 R& w6 k3 ` sbit dxp2=P0^7;//东西方向数码管第二位;
9 J/ s0 i" C7 Y! p3 s9 P3 }) t4 ?8 w) ?. `, j5 l

& p$ d; \1 |; F( i* f* x7 T sbit hdnb=P0^2;//南北方向红灯;& R4 S; l% q7 |' X/ l
sbit hddx=P0^0;//东西方向红灯;( ?, a: h+ j7 ^* D
sbit ldnb=P0^3;//南北方向绿灯;
" B  J, [. o6 V3 r; f* ~: Z, D sbit lddx=P0^1;//东西方向绿灯;
0 X9 p+ [: x2 V( @6 J uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,1 ^  w% |4 E, N
                      0x6d,0x7d,0x07,0x7f,0x6f};        //0-9. z, P2 `6 e8 f+ z( B+ d8 Y
uchar num=30;num2,shi,ge;$ `8 ~; N# o7 S/ y

" |9 T5 O& l) `' i' w

9 e: d* O5 Y- |2 w# P" W
" e) d1 F! w0 w3 h0 Y$ W# g
- y" [+ j+ K7 j. q* ~' k, D& r7 m
" n9 K5 @. ^, r
5 w! k  E5 o9 H
void delayms(xms)           //延时函数x毫秒函数
' q1 L( @+ W) {8 u9 ^5 |6 }& q {' k1 T, w) f6 o
   uint i,j;
8 f3 Z1 z" T: s4 u" I   for(i=xms;i>0;i--)
2 k9 f9 h  W, q3 p0 V6 X- z, Z     for(j=110;j>0;j--);
0 U+ n' J8 |2 F+ [ }; l, _' [8 e" p7 _0 K2 v

+ _( n. A9 F. R+ _! K4 n8 }) ^* t

) B/ i6 D. K* o4 ?* }void display(uchar shi,uchar ge) //南北数码管显示函数6 m1 Z$ T1 ]6 n! S; q+ _
{
6 ~1 |7 l) l" C: g+ v/ Q2 l , D: c/ k" r+ Y2 f$ R( f
0 X. Q( S6 A. v+ w# D

  u4 Q/ r9 D0 D  m, ]
1 U' S: Z1 I. ?: _/ R
P1=table[shi];
  q* X& r( ^, m* U( F2 `" i7 | nbp1=0;                                                        //选中南北方向数码管第一位6 z7 S3 g7 z9 t. o; Q5 Q
delayms(3);1 _; G% t- {, d6 A
nbp1=1;                                                //关闭南北方向数码管第一位
3 B( D6 z! V7 k0 m& o P1=table[ge];2 s0 A8 d6 a; A+ ?! Z+ q
nbp2=0;                                                //选中南北第二位
* s4 O- X. J- i) e delayms(3);: e. x6 b8 ~/ Y% Y+ l3 v/ x1 v  L
nbp2=1;                                                //关闭南北方向数码管第二位
  z& V9 p  A. k- j$ b# O
, W, [1 N4 X! d. n( k

  A; ], @- y, q$ p- M- @* |' [; r* r

0 O, s1 q! z2 \ P2=table[shi];
' ^- y1 s3 ], c$ M0 W) { dxp1=0;                                                //选中南北方向数码管第一位
( v1 |- B8 I, E; w delayms(3);9 A' Y: S! R9 c! A5 K
dxp1=1;                                                //关闭南北方向数码管第一位
- s2 C4 r4 L! Q& \. b9 }/ V5 b P2=table[ge];7 E* x3 Y) x. C
dxp2=0;                                                //选中南北第二位7 t9 y+ @$ V& Q$ F3 j
delayms(3);$ P, z1 [( Y1 M7 J0 M1 F
dxp2=1;                # V% Y8 R+ B+ A# {( y* j( I
}
' o/ M1 I$ t, k- ^; n6 d, b1 I& l! F
% E' d  f  s. b
void T1_time()interrupt 3                        //定时器1中断函数% }0 K: B. U$ }5 [* I! x* F
{
7 p1 k/ k7 R$ h. l1 Q6 X7 e  TH1=(65536-45872)/256;
* X0 v8 \, M& @" k" v+ w1 }' G  TL1=(65536-45872)%256;
' ~; P. ?# u; z' h" {& r, k  num2++;      ) Q3 p; s, y$ z0 s
  if(num2==20)0 V& D5 I0 I: q: H, a
  {: G4 `* H' R. h1 s1 N: f
   num2=0;                                                   //说明计时够一秒* h* b: j  m* E" r. f2 S
   num--;7 ~& ^( l9 r2 K% u* k2 [$ ?, N& g& f
   if(num==0)
& a2 A5 O  C% G3 W* n- N    {  8 ?/ N& U3 e# K/ N
       lddx=~lddx;                                                
& o4 P- s/ \3 N* T) m) n. l       hdnb=~hdnb;                                            
" B" r( d$ e6 @$ u' V- ^! F       ldnb=~ldnb;
: p4 A" b5 q; H& T4 Y& ~4 b, ~       hddx=~hddx;4 ~* k3 L$ j1 L# i
           num=30;3 N! ^1 y+ n! O4 M, e: u8 u) r) o
     }& H/ S2 C: _+ ~9 L3 L+ ~/ e
# i! y+ v0 g) I. `# Y

+ f9 Q. E: o4 |% M2 r5 n# Y  }
$ `. W1 r, G# U- M  `8 l        shi=num/10;4 H! `# p( v' e/ g& a
        ge=num%10;
. U* U/ S% W; o- \( e4 C}
! ?% [9 Q  z, T" `" L8 q# r3 p2 ^5 [6 P8 w
7 J* K% V3 A/ c! w4 B* A7 K9 w
/ \1 k- \, F7 L$ P+ |1 F( S' B

8 R' P( w) A/ ]; L8 e7 A9 evoid main()                                           //主函数
  g) L" F2 A) K2 V; m2 ^" E! g. @7 X {5 M4 B! f0 n0 x8 Z, j
   TMOD=0x10;$ Q; S! |+ Q( i- v
   TH1=(65536-45872)/256;- Y! T# R2 V4 _2 W% l
   TL1=(65536-45872)%256;
" O$ I" C9 b) m) @9 O: F# U6 P   EA=1;8 z' z) K$ ]1 |8 O5 o0 A
   ET1=1;& i8 d. f3 s& H6 j+ z4 ^. @
   TR1=1;
, _! b6 s, Z* ^: d$ w9 _   lddx=0;                                                //东西方向绿灯亮
. U1 @/ ~1 M) ]; w( @   hdnb=0;                                            //南北方向红灯亮) a5 `  M2 ~# C& R# D9 g
   ldnb=1;
, \6 @1 {. R' x: `   hddx=1;% |) b! e/ @4 ?' x, x
4 v3 G( B9 V; {% _2 c
  u* i) |) I, y, n- L$ \* n
P1=0x00;) r5 @* R! A0 M+ W
P2=0x00;5 ~5 m% l* i' x/ P& P5 \. q. a0 g) J
nbp1=1;
1 Z0 U" J( O- `0 ]; @ dxp1=1;! n7 r* x) e4 ~/ d+ E
dxp2=1;/ L8 ^8 E2 d' G2 U% h; ~
nbp2=1;; z- `9 h% p9 ~  W$ O
' Y7 C+ e! P! I! m, C9 y' T, K7 G- A9 k

. S/ \' ^5 W- p, k   while(1)0 u4 d4 j4 S1 K
   {/ L3 E7 H' D8 R' \- M0 q
   display(shi,ge);6 L0 H" G$ q- d. U6 b0 H
    }6 ~* L! t! l& Z! C1 }7 h3 l, d
}2 L0 C4 n& k. ^8 e8 ^+ Y7 P" Q
7 ~# }- t. P; l1 ~
基于51单片机交通灯设计下载:
% ~3 ?) S& t* s. h  P
游客,如果您要查看本帖隐藏内容请回复
) n; ?4 B1 Y: Y* c/ x

9 E: m. {# p' h& g$ K+ v

该用户从未签到

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-10-6 03:23 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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