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

 51单片机十字路口交通灯Proteus仿真图和源码

[复制链接]
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2018-10-19 13:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    7 I# W3 C* K5 W- q8 U( M3 B2 ^
    51单片机十字路口交通灯Proteus仿真图和源码. b9 x: @3 l* J; |

    ( t8 E' X, ]1 ^proteus仿真原理图:
    1 X1 H. {# w) T: w* Z7 P! J
    4 W6 c+ D4 f5 p# J& W0 {4 v9 ~$ n% u6 T* X% q
    单片机源码:
    #include<reg51.h>) e" k) H+ v/ y! C3 M4 E
    #include<absacc.h>
    2 \8 E0 r( |$ O+ |, S1 c% z  \9 l: d6 Z! e6 X7 ~9 t4 Y
    #define uchar unsigned char0 Q% H/ Q) V& |8 r# Z
    #define uint unsigned int ! S! m" c- ?3 j: z
    #define PA 0xf8ff" g5 ?. @$ X4 j" P. N6 P6 t: E; G
    #define PB 0xf9ff# E% U. e" w$ |$ q, C% u
    #define PC 0xfaff
    3 z6 d( W5 B$ b! R9 M3 V; p) o#define CTRL XBYTE[0xfbff]
    $ p* P$ _& h. F, Z' ^' Z, ~, V
    ( L: s3 @% N2 T& Y3 Y, A( o. @sbit KEY1 = P3^0;
    # b* K$ U- ~9 ^3 F! ~2 X3 xsbit KEY2 = P3^1;
    * O7 m) I! U, L6 j; t
    : \0 o" f4 Q' _; H3 P( Duint i=0, cnt = 0;/ H0 o! C7 ]4 r" H
    uchar table[]={! m3 {' q) [* o( Q% J0 v' T$ J
    0x3f,0x06,0x5b,0x4f,
      q" N# M( h) J. t4 j' _) ` 0x66,0x6d,0x7d,0x07,
    & h3 q" y: y* U% V( ]( l 0x7f,0x6f,0x77,0x7c,
    4 m* O8 I5 Y4 l& F( V 0x39,0x5e,0x79,0x71
    8 \# J) B/ o6 v0 }};
    " Z  y0 U. K$ @: z( O+ e- Z9 g( d( i7 h% |3 H- ]! o
    void IntConfiguration();, p: e' i4 O- }2 R9 m+ p
    void TimeConfig();
    - t/ L9 e1 k" V' ?/ w( i3 ^void display(int, int, uint, uint, uint, uint);8 C: [; i* C6 w" S( R+ I5 V
    void delay(int);9 y  r- u% h. v
    - Y% Q; G, y5 L! [
    void main(), j/ T( a* g# ?) b- Q: x
    {' J: T$ W! G7 ]3 M9 E
        CTRL = 0x80;/ Y, H* \% f. U3 |1 z2 A
            IP = 0x05;- ^% G, ]* _4 Z6 n6 |
            IntConfiguration();8 A# N' ]1 m- ]: K8 A
            TimeConfig();7 t8 w" A: z) w1 }% n1 |, J+ c- w
            while(1)
    * M) \! F' }% D        {
    ! L4 L" Z% V( m5 w) O4 U                if(cnt < 55)
    0 Q& t# C: `' _                {
    & s1 W9 F' Y2 g! z9 a; ~( H                          XBYTE[PA] = 0x33;! k/ T# g+ n! N+ d3 W
                            display(PB, PC, (54-cnt)/10,(54-cnt)%10, (59-cnt)/10,(59-cnt)%10);
    # D  W. w4 o. t. H                }
    ! e6 k4 z9 F$ L' N8 k: p8 K                  else if(cnt >= 55 && cnt < 60). {$ p, A% e. G0 s" G# n7 [' t& B. Y% q
                      {
    & N, k& _  f" P# c: ^! n6 ?$ s                        XBYTE[PA] = 0x35;
    3 V7 }9 ~1 G; F# {+ _' @$ j4 l                        display(PB, PC, (59-cnt)/10,(59-cnt)%10, (59-cnt)/10,(59-cnt)%10);+ w; D( k% K  q/ W" x* s
                      }1 ~% C% }. U, x) B3 L( o( D
                    else if(cnt >= 60 && cnt < 85), L9 }0 x9 c( m9 x
                      {
    ) ^: W! ~* T- T5 g5 ~/ }7 ~( h5 r                        XBYTE[PA] = 0x1e;2 ~9 ?( P) \& V  [- e. p6 l" b
                display(PB, PC, (89-cnt)/10,(89-cnt)%10, (84-cnt)/10,(84-cnt)%10);
    - _, W, W( r' h8 b4 ^  G) |                  }  B+ t. ^) d' i& M# {9 ?
                    else if(cnt >= 85 && cnt < 90)
    " N4 p* ]8 B7 X2 {' _, B            {
    7 W3 b: m6 Z0 P! k* o                        XBYTE[PA] = 0x2e;
    * Z) z; U3 @. w/ m$ a! R' D/ H, g            display(PB, PC, (89-cnt)/10,(89-cnt)%10, (89-cnt)/10,(89-cnt)%10);0 p- f  I! {, @( \
                    }  z* V$ f! [6 {% l4 k6 p7 B& O

    + P8 G$ F5 F3 }; l8 w- V        }
    : [/ ^1 X; Q  O# o& m. H}9 {  c+ S; m- K' `7 Q6 }. Y
    + ]3 A2 {3 r. |, g: m
    void display(int x, int y, uint a,uint b, uint c, uint d)! k3 G; K( G4 a8 q( R
    {' p- H8 t/ `' U- p' d: O- |
        P1 = 0x0e;
    1 t7 m) D, w! `9 `2 N  p) y# m        XBYTE[x] = table[a];1 S  ^8 l8 k& t% h3 @
            delay(1);
    & g" }! a- [8 R" [
    % ^. P! W* X3 W; D$ r% M' F0 b    P1 = 0x0d;
    6 t* y( s) [& I        XBYTE[x] = table;2 j& _3 K+ P" i
            delay(1);
    9 y, `0 ~3 u1 t/ h
    7 L: k' @2 [3 e/ c" C, Q. H7 _& L% B
            P1 = 0x0b;) [2 R( w" K& @& \4 A: g
            XBYTE[y] = table[c];3 Q% F8 _9 _! S
            delay(1);
    * N* k  z+ I7 Q9 n2 B5 U7 i  z* C) t5 G6 Y1 Z1 U* f
        P1 = 0x07;. w  e; |6 H) z) D. a% V: u1 A
            XBYTE[y] = table[d];
    5 ?' B7 H. K+ u( l; P( U, \        delay(1);
    % E( F8 T3 R1 y6 a, i8 |, f        P1 = 0x0f;
    1 d* }: [9 X5 W; |! V  z1 O}7 J% f% Q$ D' \
    ; o/ _! G/ f) H: o* N
    void delay(int z). e, _0 m. N" Q. N
    {
    % b, e6 s: ?- a. ]6 i6 U. duint x,y;
    1 l$ v# \0 ~; q1 F, Jfor(x=z;x>0;x--)  |) r9 z! c& Y  t% _
    for(y=110;y>0;y--);2 H9 `9 s$ b9 e" |" a; o
    }
    ) r+ s. Z5 \5 ]& X0 ~2 b
    6 o, u0 j1 I( R% e5 qvoid IntConfiguration()
    7 v  M9 e/ I3 @6 w& o{
    ) J8 K/ f, K, ?$ B: I        IT0=0;8 A. z$ w7 Z& B6 I! z
            EX0=1;
    ' G6 Z9 m$ |( }$ _3 R$ ~# B8 C        IT1=0;
    * O3 V: @5 [1 }) ]        EX1=1;
    6 @& P2 l+ r9 Y' l        EA=1;        
    ( e# T" c6 v* k. R}. H% J3 @  ?1 L' V' O& T* A
    ) g9 X* M  `( c  q
    void TimeConfig()
    5 L# H. O. a5 s! R3 a, |: C{
    ' f9 z7 O) c( e8 R  TMOD = 0x01;0 n5 {) g5 X2 z$ |
      TH0 = (65536-10000)/256;! Z( W# r1 J+ h) ]8 B1 s: l
      TL0 = (65536-10000)%256;
    9 b- P! @9 K) n" U$ L3 ]) T. \. X  EA = 1;
    2 N5 L6 X; C% {$ t& A( q" O: o5 }* ]9 D  ET0 = 1;& R! Q! y2 c! t' u7 G
      TR0 = 1;        8 b3 m0 M6 S4 k* z8 Z0 B, ]# p
    }
    # h6 x2 |1 D/ `- i) n" z) Q5 P7 a2 C! Y$ A1 s, @
    void Int0() interrupt 0                 
    % r3 z( I" _- A6 T  }! X) W{8 A5 Z, \8 S7 Z0 w4 v8 L) m* d
      XBYTE[PA] =0x36;' O& n( {4 b1 \5 K3 Z; w/ D8 `
      display(PB, PC, 0, 0, 0, 0);
    1 z1 p/ z5 t1 @' p}
      {6 ~6 I" W, m( \/ {7 M$ c& p* E* j+ L( w- H. V
    void Int1() interrupt 2                 : K9 [2 g+ Y, W# q/ Z" w
    {
    : {) g6 b1 |4 Q5 C: e/ }
    3 ]' e6 v' M. q  if(KEY1 == 0)
    $ j0 S( B& B1 D4 b% p/ T    XBYTE[PA] = 0x33;
    $ n( ^8 e& B2 q8 S4 h  if(KEY2 == 0)
    , R" H/ @6 L* @$ ?' i6 G/ d    XBYTE[PA] = 0x1e;
    9 s# q5 U) X" E" p4 l  display(PB, PC, 0, 0, 0, 0);
    + U3 G4 ^5 d1 A( c* y' S2 u0 F( j}
    : o7 r" W; l; Q: `6 }& `
    & l- v- q, [* F# a1 c0 ^void mytimer() interrupt 1
    ! b: m. t% `* e) ~& C5 @{
    ! |$ |, ]0 p; ~: j+ B. A% I; O  uint flag = 0;
    " }/ ^( |) G4 K3 H, c  TH0 = (65536-10000)/256;
    2 \3 N8 x/ V3 B/ m" i/ n  TL0 = (65536-10000)%256;
    . w8 w  i, V# o: [# E: r
      y1 B& g/ K6 _* m. E; c  i++;
    3 D: w4 v. w- X  if(i >= 100)
    ; ?6 T# N; c( h% @  {
    3 k1 L7 ]# p3 m: ]- B          i = 0;( H$ {" l1 O1 C' i
            flag = 1;
    ( F6 k, m( Z( d. l3 l% }  }
    ( c3 K4 y: ^" [1 m; j  if(flag == 1)
    # U! @/ n1 h+ C" i" c/ o5 S  i* Z
    + ]+ A$ N5 s) S( p3 H
    : D& F% ^) }* ]  p6 H7 X; x…………限于本文篇幅 余下代码请从论坛下载附件…………& D: o  }3 j; y: a- Y4 D' l
    游客,如果您要查看本帖隐藏内容请回复
    3 q. y/ L  s3 n& ?, o- q) h) S, v

    3 d* c8 Z) H; v$ S5 u
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-22 02:15 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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