找回密码
 注册
查看: 741|回复: 5
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于51单片机交通灯程序设计3 E. X2 J! a# }

9 P& G: x* a' |( U- g" O) j

  ~) X5 N- `4 l' p0 T交通灯单片机程序:
' K: T2 W% c+ G" | #include<reg52.h>" s) s1 L3 z6 q1 Q: _: K  K
#include<bstv51.h>
: E6 C4 Q' X5 @; u/ _ #define uchar unsigned char
$ A- ?' B3 Q9 g& o2 m+ o3 Q0 [# ] #define uint  unsigned int7 V+ o4 _+ l% n) o
' ?+ M. d" N, g3 ~$ D
sbit nbp1=P0^4;//南北方向数码管第一位;
. Z3 U" P; v( i+ h1 R sbit nbp2=P0^5;//南北方向数码管第二位;# r7 I) s) _0 R' L1 \
sbit dxp1=P0^6;//东西方向数码管第一位;
9 @6 F# h: u5 e* c sbit dxp2=P0^7;//东西方向数码管第二位;
3 ]4 J, ^; Q+ j5 y: u4 W' J/ @, O# c' ]  L

% S* p0 C; v7 x+ \ sbit hdnb=P0^2;//南北方向红灯;
. A/ |8 _# c; K/ S1 Y sbit hddx=P0^0;//东西方向红灯;
3 I" v# F  k8 q' p. G- @ sbit ldnb=P0^3;//南北方向绿灯;* G5 D, l* H! _; u
sbit lddx=P0^1;//东西方向绿灯;
- o% R6 F, j+ t/ O3 k! [ uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,! q! Q2 ]1 G9 s$ ~, u7 c, L
                      0x6d,0x7d,0x07,0x7f,0x6f};        //0-9$ b8 S! L& y5 d) [7 }
uchar num=30;num2,shi,ge;3 j4 F. Z% k& h5 H$ y1 ?

+ B3 I! ?+ n  c  H

( z; k: V3 Y- n% i0 W. Z6 P$ m7 c6 P5 n0 p/ n# L) `) \+ v) f
% x  c- u! _4 I: J
; k! n& u5 S. E0 J& d% @
2 }& Z# X5 I9 O3 |% J8 W2 L
void delayms(xms)           //延时函数x毫秒函数! L; |) t  G/ {* h/ A. p
{
. b4 [+ @1 g4 ?. g   uint i,j;
  n1 I* T% F! l   for(i=xms;i>0;i--)
9 k: g# e2 A$ a1 J1 P. R  T     for(j=110;j>0;j--);6 f' w, R! o! }4 L) H6 Y$ L
}
6 M+ ], U0 Z& F; S& W! f' f! E% ~
* P$ q& [6 L9 j4 `' F% Q
/ N6 _2 C; \0 O3 N
void display(uchar shi,uchar ge) //南北数码管显示函数  y+ p- i. g( W
{
/ i5 ]6 B; c- F3 o8 j( R , {" s6 @) r& U: z7 M" K: g

9 w  _; O7 B& ~  R. N) H; H
$ M$ N* W9 r. k( F

* Y( S+ C  w7 c* L P1=table[shi];6 t" X  v3 E' |8 b3 o  H
nbp1=0;                                                        //选中南北方向数码管第一位. X, X3 e7 x9 M
delayms(3);
+ s0 V; v* l. `* [9 ] nbp1=1;                                                //关闭南北方向数码管第一位7 K1 F# B- U! a) ?( u) e% L
P1=table[ge];
( t+ ]; B: C- y5 ~ nbp2=0;                                                //选中南北第二位
9 C1 K6 m3 l& ]. ?% p1 ^# g1 H delayms(3);
$ s& a& e  w7 g3 X, l6 u1 `/ a nbp2=1;                                                //关闭南北方向数码管第二位: k; z$ h  ]4 v# m3 K- [! P

! M& K  w5 u. e

3 V9 X2 m3 n0 c; c3 B) V$ w# I6 W8 C7 v6 @
. h) K0 J+ D; ~, Z. u0 q
P2=table[shi];
8 r6 O6 X6 `' T dxp1=0;                                                //选中南北方向数码管第一位, w& i& f" A5 p4 P. A  r
delayms(3);
9 t1 l# j# ?( ^& t/ e+ e' l, P7 W dxp1=1;                                                //关闭南北方向数码管第一位
" n7 M0 j! D+ S0 w3 W9 o P2=table[ge];$ U% g7 @5 c! H8 G6 u  n0 y
dxp2=0;                                                //选中南北第二位( M9 o; |" @4 R4 G) m# e3 j" J# s
delayms(3);
  Q9 A( a, ^3 E% s dxp2=1;               
- m% T+ u. x' D3 D. V5 g5 |) ~}; I. d( U7 m3 E! @& z& Z5 W

8 K5 |, a4 s8 g
& c* G1 t. _& F1 x9 s! J; t
void T1_time()interrupt 3                        //定时器1中断函数3 U+ o0 K2 z, U  C. C% e
{ - O# ?. |* \3 R% {" P
  TH1=(65536-45872)/256;
- V8 F/ J3 i+ n, P0 B( j6 Z  TL1=(65536-45872)%256;9 `1 q+ c; l' u1 t' H4 z* `
  num2++;      - l. |: @' G' c6 l, ?
  if(num2==20)7 g, `( X8 w: [; J8 I+ C- L% }
  {3 V9 f* {& D- p; P9 _
   num2=0;                                                   //说明计时够一秒( J( X4 g* ?) h. r; @
   num--;
8 Q7 z' B# O( X+ y$ V" @' Z' S   if(num==0)
& p( v2 r% T7 T7 D9 ~    {  : x( A( ~+ m! b( X. R: y2 \7 R
       lddx=~lddx;                                                / _) j! E+ l  E' a( ~# z9 h
       hdnb=~hdnb;                                            6 Z' \' i0 v* X
       ldnb=~ldnb;2 s+ X3 X7 X% |) f# A
       hddx=~hddx;
, Z  V; Y& c3 H1 C! v2 m( D           num=30;
+ G0 N2 s- V3 c     }' l- ^2 O, a. z. a

, b' D! ~3 d" d. Q+ b1 |- M! t
9 x" [0 Z. Z) k2 {
  }
: f" ?3 d! C: b* j8 a$ A        shi=num/10;' X" u, k: s$ |$ k4 |/ b
        ge=num%10;& V4 X/ M* Q* N4 b# J5 x* k3 O  t
}
3 L' v  t8 l3 O, x
; U+ Y) e. i% t& B! D% c1 e6 R

; f8 ^* ?2 d1 K7 l/ T1 p: N
- Y4 O# F/ a, ~+ U) a- M" [: G. n
% T6 L, Z) c" H. f- f; z
void main()                                           //主函数
/ ^/ K6 n0 `) E; v& Y; K) z' Q9 \ {4 [) `8 d4 s5 ^7 [* Z) T1 {
   TMOD=0x10;
9 p* y) K/ c2 v   TH1=(65536-45872)/256;
1 `/ b6 k5 Q  L4 n( O4 ?% k   TL1=(65536-45872)%256;
5 }$ x+ G7 H: g. |   EA=1;0 ^) b+ B) t0 \4 \1 x; ?
   ET1=1;2 h4 N- E: P1 Q6 F6 t/ v. k; f
   TR1=1;- h2 O8 B' d% m0 S9 V  ]
   lddx=0;                                                //东西方向绿灯亮6 \5 T. Y* ?' s( i" p# O  ]; b4 }
   hdnb=0;                                            //南北方向红灯亮
; M  C9 Y- o, ~3 D! }1 w   ldnb=1;1 ?4 P/ l) u( }) b' l0 @
   hddx=1;3 [+ V: ]5 S! D% g2 k+ D3 o/ }
( d/ v6 L' v* p' a2 U6 `5 K) `1 F

2 ~# z* g+ E/ \. Y# B P1=0x00;
# R+ c9 X. b1 x; Z: J7 ? P2=0x00;7 `7 Z1 T, N8 {1 `4 h6 ?. A& J
nbp1=1;- k9 c: H" m2 Y# N+ C
dxp1=1;
$ R+ r$ _% S7 L8 ~8 |! b+ t dxp2=1;9 ^" j& n5 c: i4 t, n( B# @( Z; J
nbp2=1;/ s, F) {: H' ^
$ [. J8 p: F0 R  F6 y( w5 _9 x

* i2 J7 v; y* K& N# o   while(1)/ N. ]7 [5 p4 ?% L! c
   {
* L! c, m) Q1 z# f; W, {   display(shi,ge);* N' _% o, e% U
    }
7 B( F; r! b& r1 y }; C% {6 Q. x. ]1 `3 t/ e; n* ]
5 R) @6 j6 |- _" z$ j
基于51单片机交通灯设计下载:3 p+ B4 l4 M; c+ z% O; U8 L0 t
游客,如果您要查看本帖隐藏内容请回复
5 h/ g; U9 y9 l; v. o, ]* H  r; O

1 j4 ~; b( ]2 n( a2 o

该用户从未签到

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-5-28 19:03 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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