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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于51单片机交通灯程序设计7 z, E+ ~, R- U

8 m8 {* h/ U  n5 U% L

) r9 d2 N* T; Z+ y  b$ D: M0 P交通灯单片机程序:- b. v/ \/ I) x. u! D, v
#include<reg52.h>
2 K  P; H* p# F& S' B4 D2 Z #include<bstv51.h>
" i3 g' @# z1 G3 g5 G1 @! S" f #define uchar unsigned char/ B2 q7 b5 K. a
#define uint  unsigned int
9 m1 U0 c; y$ t6 O! G/ d: ], ]1 @ % F$ _& ]% H  z6 M  C- |: Q
sbit nbp1=P0^4;//南北方向数码管第一位;
, I: P. E2 R& ?1 n+ L- y/ M sbit nbp2=P0^5;//南北方向数码管第二位;
4 _1 J- P  q7 V0 \1 Z1 m. ^. A sbit dxp1=P0^6;//东西方向数码管第一位;
, _1 P3 L! i9 b0 p& s7 A$ w# l sbit dxp2=P0^7;//东西方向数码管第二位;
# }3 J6 S' A# j7 b  u
$ s) V; J+ `% ^5 u+ G& l
9 @  d$ Y- j2 z# M5 P  L3 T9 U
sbit hdnb=P0^2;//南北方向红灯;
9 }$ P( V* ?/ ~# e, y; i0 A sbit hddx=P0^0;//东西方向红灯;
) Y$ Z6 P# u& _8 w7 @ sbit ldnb=P0^3;//南北方向绿灯;
' {+ k+ V8 i5 U! m sbit lddx=P0^1;//东西方向绿灯;' r2 I9 s" y' }! j
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
. n: |& O, N" B1 B                      0x6d,0x7d,0x07,0x7f,0x6f};        //0-9
# n. j2 E/ a; `8 Q% T" k' B6 G9 y uchar num=30;num2,shi,ge;7 j0 q" o( T" h1 Q* w
8 {  ]. K5 [+ y! d7 b, @
6 y& ]( [7 ?: ~; n* c( B

9 W- R7 {8 i$ P6 d8 G% N" C4 H8 j
  f7 {. z8 N6 ^! u2 v2 @0 e
7 E+ Q  N) l: a
9 f; o  u5 F0 `4 I3 r
void delayms(xms)           //延时函数x毫秒函数
* p# S  L1 X$ ] {, P6 r4 |7 Y0 q' z- n5 N* h
   uint i,j;& U; H7 w1 _9 i& b, p% z5 ^, A, c" C
   for(i=xms;i>0;i--)2 T( T) x/ Q; _& F1 q
     for(j=110;j>0;j--);
7 o  Z2 O( J7 V7 o* [) K }
+ p& J* ^- N# ~5 ?7 w# e0 b
( P5 l2 ]' w1 q1 n7 ~; F

, R4 n/ B6 W( S0 @void display(uchar shi,uchar ge) //南北数码管显示函数
. ?/ q; j3 ~* |/ Y, }5 A) G{
9 X' p  g/ H- l0 e& P! R1 n$ ^
! p  F$ E+ D* u: W/ N : p6 P5 f" v1 F3 H( U4 q" U1 T

8 H" [4 P# P3 V$ E4 ]4 W' L; s

" ~, ~$ W( J% b5 m! t P1=table[shi];# ?5 Y) p; D9 {
nbp1=0;                                                        //选中南北方向数码管第一位
1 t- v9 Z0 E4 b- l7 _1 L delayms(3);) V% T/ `( u# T  `+ a' i
nbp1=1;                                                //关闭南北方向数码管第一位
' a& J7 D" V! I  h P1=table[ge];
, t$ U* A, G4 n nbp2=0;                                                //选中南北第二位$ [. [% w) g# x  t
delayms(3);
8 V, N: e$ _* v5 N% Q* L% M nbp2=1;                                                //关闭南北方向数码管第二位
+ A' H9 H/ ~6 `0 H- X
' k  {( y3 E) A8 ^. m. Y7 Z

' F" f8 @+ l% m/ y& \$ v7 w1 r4 R! h8 c3 k. I0 z8 {& {

- t- l7 F( Y8 \4 p, H; F P2=table[shi];! Y  u8 c) X7 V( y5 F6 I, M
dxp1=0;                                                //选中南北方向数码管第一位5 ]9 r1 I* P5 f
delayms(3);
: d' c. R" y4 b" u' A- p dxp1=1;                                                //关闭南北方向数码管第一位
  W% U  _8 I% i  m! x' l8 r P2=table[ge];: s6 M: V. j! M7 o) J
dxp2=0;                                                //选中南北第二位
3 I. L' ?6 C2 a; s% I, x delayms(3);
; G) {5 i7 R! D& }6 P dxp2=1;                % a) y" e2 t0 k" g$ u! o
}* x2 ?( n' v) p3 H6 I# K& {4 J, F

8 ^6 N; @" t' }3 c4 ^7 z0 g
4 V- J% x& Q1 I
void T1_time()interrupt 3                        //定时器1中断函数6 q+ ]" y" m; h; ?, ^" w
{ 0 g  h" u$ V7 @9 \
  TH1=(65536-45872)/256;
2 N. [2 F* h& B/ L  TL1=(65536-45872)%256;" n# o0 @6 q, t! g
  num2++;      & E% F/ U! \. [
  if(num2==20)* h. v7 A  ^9 N/ d! _0 J5 P
  {+ F1 z6 X! W6 v( z  N' \
   num2=0;                                                   //说明计时够一秒0 C: I4 B4 Y* P# ?
   num--;  E- |2 }5 M: D1 a# N$ C3 N
   if(num==0). l6 ^1 R; o: n, |6 c; {6 u/ v9 ?6 K
    {  0 R0 u; c7 w+ e& ~+ ~$ J( e4 n
       lddx=~lddx;                                                : i1 {; K% i, \
       hdnb=~hdnb;                                            3 S" }& W7 U; f$ S* o. G. |
       ldnb=~ldnb;: c) G( B# d8 b. ?, z
       hddx=~hddx;
. V  D  x# D; Q. u( ~* @           num=30;
0 e, y! Z( B0 N1 v     }; ]' X7 r& ?4 T& [0 T/ k7 c
, L# p( p& N7 L# ^/ {
, d+ S$ V# p' z* J  h8 L; M
  }* l6 `1 Y8 a7 v6 _1 H% s
        shi=num/10;
. M* I0 \  f. _% C8 o2 s5 G        ge=num%10;
# j- f7 N+ h$ g8 q5 r* j}$ C5 r! C; y/ r: e6 q

1 S6 B% e" J# d$ \- q3 I1 Z# H
* g( A7 S$ A# N, |. J. m
. Y, Y% F8 p0 M" ~( f) h

9 C/ K+ R" B! m/ Gvoid main()                                           //主函数% ^' }& b  _2 K7 ^5 S
{
. Q& l- p% C- r2 E6 E   TMOD=0x10;
. T2 r2 `4 L+ g, W9 o% W; z/ r/ D" n   TH1=(65536-45872)/256;
' Z3 |* Y; Z5 N- z  X  j   TL1=(65536-45872)%256;
: C$ n. z( q- v5 ~- p9 h' |, W9 Y# F  l   EA=1;) v1 Z; k" K! H8 s, z' W
   ET1=1;
$ c9 H$ i1 L& w. t  B" ^: Q9 }6 Z   TR1=1;6 i6 n* |0 ^' s! H
   lddx=0;                                                //东西方向绿灯亮2 q4 S6 r! v) }2 f. q: R
   hdnb=0;                                            //南北方向红灯亮
9 @5 [( @& {0 P" s+ W. D% X   ldnb=1;$ P' B6 y7 S' P2 _) q2 w
   hddx=1;' E1 T4 C: S4 J; l7 E

0 `) U) m3 X* F, p2 g2 R9 |! n, M6 a! c

0 x6 _1 F5 K. t& Y% s' d4 R P1=0x00;3 o9 X, L- @6 b9 r4 m) A
P2=0x00;* g0 L& ~+ z! k3 o: c+ j
nbp1=1;9 ?% ]3 I* [8 N, W
dxp1=1;
7 w9 A- a: I/ B" e2 u dxp2=1;9 k) u8 g2 K3 @' O
nbp2=1;
8 O& [7 F# |* R7 A8 I) V5 u, _; p# e2 ^3 J+ o+ ~1 ?
7 E# U0 \2 Z1 m8 U7 j; V( D# x0 |
   while(1)$ h4 W/ |+ n# w: k8 O# A
   {% x; i$ @9 W, u9 b. |
   display(shi,ge);: }" U2 q* u! L
    }
( x+ n0 F+ J$ h }& i1 i0 `: z* U0 N/ u" @( v! X
6 M* c3 l4 @$ D1 |
基于51单片机交通灯设计下载:
( Y& N2 n3 M2 x: z; G
游客,如果您要查看本帖隐藏内容请回复

# D0 @3 ]6 r$ J( ]8 Z

* c8 ~: P3 S, a4 ]0 W

该用户从未签到

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-7-12 11:13 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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