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

51单片机 交通灯修改版

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机 交通灯修改版; `: t/ Z! i8 Y

7 c+ [2 ^8 ]0 u: A; u

4 @# F" u9 s0 P0 |& Y喜欢的 可以看一下% j4 L, v0 T+ Q5 J( A
% e3 m$ ~7 G/ C, n7 T0 l
$ l1 m* }, `  p- Z
6 a) G& o* C: }  K
  #include<reg52.h>- Y& W0 i9 ?' }3 X5 j. n8 e+ g3 u( m
# U3 }$ w; ?. T

, Y* X4 ^) b2 _9 ^. J#define uchar unsigned  char' M! a4 @- a; {% Z( a( H  U5 U+ p: l
#define uint unsigned int6 r6 b) z9 C; f2 l* t$ l
#define led P0
5 v) B+ Z/ c( K6 \7 vuchar tab[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};" u) d# p0 g4 G1 e5 z/ y4 R
uchar count, count0;
/ \% x% A& ?# @+ H% c, L4 L4 G0 X' A" J5 Q

) B7 ?9 R! }) C' @+ Mvoid delay(uint x);
  D  C5 w% s' P% Ivoid play();. i- P# S/ w; A1 C, p  i& A  s

; `  g+ z9 o& s* n/ e8 T

5 h* {4 A8 J* V! A3 Hvoid main()+ F/ E. m/ B2 p6 t* u0 N/ A9 X5 r0 S: j
{; s4 p9 M: O! a& B3 b) X/ d0 b
        TMOD = 0X01;//定时器0的工作方式为1;
8 K, e. i3 v7 p& s        TH0 = (65536 - 40000) / 256;; I2 v$ C0 M# B% I4 |8 R
        TL0 = (65536 - 40000) % 256;
* s, K2 t3 T3 k; C1 b; Q        EA = 1;//开中断# R1 k8 y0 x0 F3 H
        ET0 = 1;//开定时器0中断( n6 y  G: K1 I2 p
        TR0 = 1;//启动定时器0. ^; i- R  W& t* P3 x1 K

+ [+ i8 b& T4 {( i

. P, f6 S- h7 C5 I; T# o        led = 0x0c;  {) X) T5 J) \9 e# |
        while(1)/ Q$ m3 z& D( ~0 x; d& x
        {        ) z" a/ B) p( d& O: I4 u
                play();
9 i0 y4 f9 G0 Q7 P( T        }( s) p0 i0 q$ V4 p% b3 Z& z$ N
}) g1 \* G  p& B: V! j

5 i/ X! t+ g% z! C: M$ p7 u
, i% X6 a( G5 Z9 g# o
void timer0() interrupt 1//定时器0中断服务程序
3 d. N5 }% d# L" F& k8 A{
+ m3 r/ t& N( L: E. y% ~/ Z# j        TH0 = (65536 - 40000) / 256;2 p( T0 k/ q. C/ o: J) ~% N# R! A
        TL0 = (65536 - 40000) % 256; 2 B' b3 z  T! E. ]0 Z
9 L6 i" Z) n/ [
" r- K' r% t  N* V7 X: l+ X
3 S' Y) l* D( v
$ K$ F) y2 t! b* f' o; w" J
        count++;//中断次数累加8 O; e; C+ _: Y, K
        if(count == 50)
, M0 X. X( Y! `. {" ^, d        {                                                                   / n( r8 ^. r( S6 G( @$ L  F
                count = 0;//30次的50毫秒为1秒
  D, m9 m' a! d( R0 A& f4 C" T9 |; z" S! Q( O/ l9 t

7 w: ]. k8 S: N9 U9 c5 r5 b: F3 V+ O8 C                count0++;
* Q/ c- g/ @4 k: a' E( x% e                if((count0>=5)&&(count0<=8))/ k6 G7 G7 @- q4 P2 h
                {2 h% Y8 a5 i! K5 Z
                        P2=~tab[8-count0];
  Z0 X! T9 K' Z: P6 o                }3 U- t- w. H+ O: c' f+ W3 s
                else 9 o! q4 A" {$ t) \7 [! Z  |
                P2=0xff;
. s; w3 N, Q1 X& q                if((count0>=13)&&(count0<=16))1 J! U2 t9 M% z& `) m6 \
                {
0 p5 w6 O, ^9 r                        P3=~tab[16-count0];) R! p5 o) D7 e$ Q
                }7 i! p4 F- X- @' E: a( ~% L. I
                else0 |: V0 C$ Y) t' K
                P3=0xff;8 j% a& Z' t5 _' N. p2 K1 b" u

& a! U& b- V! Z# c, K

  i- a1 P  d( E                if(count0 == 16)
8 O- s# @- H% v/ o$ a                {
6 F. {3 u, G4 c- a- G: a                        count0 = 0;1 u  j$ O4 g( |
                }
- u1 C4 W" }, r5 H! E
% w9 _2 _7 Y$ ?7 g

0 u! e0 X' I) \! c! K1 Y7 Z$ k        }9 q% F% H* @- _# w6 ~# Y
                ) E3 \' x2 y9 V: A) c) l& h
}                   + W' X6 ]" X1 i, L! `6 T! p7 c) r
1 n- E: W: v+ i, e# \6 t
, ^; q) {9 V7 f( {2 y/ C' Y
void play()$ J! V7 H5 o* W! P+ V/ `
{( t) u' h* r# E# B  C3 q0 H
        if(count0 == 5)  //5s后南北黄,东西红# w% s2 B! A8 r  N
        {7 J. t& R% ?( F+ B" K& B1 R) ~; l
                led = 0x0a;  j+ R1 ^  G) _. L7 ]8 T
                delay(100);" @* o. W0 z; o$ w+ d; U
                led = 0x08;; n8 h& f9 p0 Q1 q: t8 m. y
                delay(100);
/ B( b2 @) ~- }* t& C5 [; I                led = 0x0a;
" C7 n( }% D* t, p. L                delay(100);/ G1 v8 _: w0 F: l) |) k
                led = 0x08;
' ]8 k+ `. B/ ]/ C- \0 Z5 r/ H! s/ K$ V                delay(100);' g( @5 A3 U# u7 h& \
                led = 0x0a;7 n4 E- A# n5 L" i! `% M+ f* I
               
' `* |: m6 Q2 Z' B$ ~$ `        }
; \& L, K4 u# v6 C* Y7 `1 z9 o        else if(count0 == 8)        //8s后南北红,东西绿
" b; |0 `  x2 i/ P4 f" H        {8 B4 a$ j  G* ?' K( d
                led = 0x21;
7 v' h% l2 W+ [% z8 Q* P: f        }3 K/ ^- C- W% S2 e
        else if(count0 == 13)         //13s南北红,东西黄3 a9 m8 Z  y. s9 q0 l7 ~) J
        {
: e4 u. A  ~( r: Y3 z+ N! J                led = 0x11;- A/ y1 [7 V( H/ V" v
                delay(100);5 C( F" O6 R" N1 r5 }2 Z
                led = 0x01;
0 |2 j: R" e2 C# W' N0 p1 @                delay(100);, r$ C$ z1 c( F3 ^
                led = 0x11;
! W% E  l: t7 ^                delay(100);3 R! u. |: B7 e( h% t
                led = 0x01;
' j: b# e3 q* ]- X) y. h+ N                delay(100);
$ u, Q3 }+ _2 |+ p8 p                led = 0x11;1 b1 j  j1 C( g
9 k* ^# F& t  M4 X/ N) |9 D4 j  p

" y5 _9 r) ^3 f5 C8 w        }
9 {4 r% ?* l, i% O( \: {/ \        else if(count0 == 0)          //16s后南北绿,东西红9 e& ~: Y% D# L. q
        {' X! h' u% k1 D4 c$ p* ^
                led = 0x0c;: g/ ?' C  f5 ]3 m
        }
3 D) f. d  ?/ S8 z7 Y5 W}
) h& Y0 ~% N: @/ d0 |& F; K
0 H) f' [! U. Z2 d* J9 C+ c: A3 S

9 {% |! b3 J& Q, Zvoid delay(uint x)
2 D- U. C* x- ~; r/ N! J! I7 r{
$ I3 U, [- `- R        uint a, b;9 L2 e8 K4 o& J) f; e
        for(a = x; a > 0; a--)6 H1 a' }# j" M  z5 ^8 `1 }9 O# _2 O
                for(b = 1000; b > 0; b--);
  u8 i4 F* P! \% o9 n}4 A6 ?. c. g; d$ O" a$ N( _
" B! }4 x4 h. R/ s% i
下载:8 s: o2 [5 v+ I
游客,如果您要查看本帖隐藏内容请回复
  a6 r/ V6 c5 t8 N. x, |
/ H8 }, G  y. N* G5 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-22 03:39 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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