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

51单片机 交通灯修改版

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机 交通灯修改版0 F# ^% w0 S1 p! f! p0 e
. x4 n: t  F) p0 D6 v
' Z4 x6 L2 k; u& @, o4 I/ e1 a
喜欢的 可以看一下
; S! }. a6 z5 A8 J

: H# l8 E2 x) S/ o0 g% M; ]: S0 G4 j! \5 r5 ?8 I! K

  W( W% N( t7 I! O) C% |  #include<reg52.h>8 q5 S4 q* S6 [6 x6 z- K

# W, b1 t1 m+ ]. A) e% M* t
- e/ u8 ]# ~7 U0 c4 t/ n( K/ h7 G5 [
#define uchar unsigned  char
. Z& u8 e1 n# ~: ]9 k* B( k- @" F1 @#define uint unsigned int
; @+ ?" J2 P# x3 T& Q#define led P0
! e3 l& H# |5 R( N& buchar tab[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
; n: P+ c4 @) l7 muchar count, count0;7 X% o& U5 x+ N" ]/ L, d
7 O+ Y0 l2 J, c, h9 Z

5 c( X. S9 }3 B: v" e2 o. bvoid delay(uint x);
( x/ u: ~. V1 f6 e6 ~0 p) r* v; Cvoid play();
- d7 ^  F; j2 C
2 v8 }2 W) ?& o4 M. S3 o- D' a

5 G1 ~# S7 }& |3 fvoid main()
- c$ o) g! L# x{
: o* h/ I" {9 M0 U& r' N) b3 Y5 Q        TMOD = 0X01;//定时器0的工作方式为1;
. h7 T3 I0 n6 f, u9 ]4 i! K& ]        TH0 = (65536 - 40000) / 256;
5 y% t& V! q2 j) O- e, ], O- S        TL0 = (65536 - 40000) % 256;
# E& \% Q: |4 h- d8 R+ Z3 F( F        EA = 1;//开中断! o9 v3 O5 D1 ?6 v8 O) n% l
        ET0 = 1;//开定时器0中断
0 K# V  J  Q6 D3 C6 L2 k        TR0 = 1;//启动定时器0
. [  f/ C4 J/ ]+ ^: B) C
4 s( p2 ]2 h3 w1 F) H+ S" b* m
2 C. @; U9 i: G! b4 ~4 X- ~5 u
        led = 0x0c;2 Z- a5 q; D; I- T* @0 s9 [
        while(1)
" h/ F8 m3 b* |1 \0 ?        {        8 p0 L7 o- Q7 F5 J- N# R5 a( x
                play();, b0 o2 {/ v! e5 v  ]/ i( _
        }
9 z/ v1 G5 ?. S. w}: n9 a+ j9 Z; a( j% E+ U6 B& f

- S1 H6 O* v- s8 m, \* @0 c

, x9 f) C% L& bvoid timer0() interrupt 1//定时器0中断服务程序7 v* S8 Q$ L8 z: S' D+ x8 a
{
$ I$ }9 x: [" f  y        TH0 = (65536 - 40000) / 256;
2 q' {# F0 K/ \+ q        TL0 = (65536 - 40000) % 256;
2 q& E/ e( v' z6 d3 m! c' \4 N% ~; U8 }1 L1 z; j/ c6 {7 C  P
/ q6 v1 m* V* v* `/ |

, R  O( F3 I! C# C6 q& l

0 _9 z1 l, V+ \8 b        count++;//中断次数累加
! n: Q* T2 p' ]+ U        if(count == 50)
$ t* [) Z  H7 p$ Q1 N( z        {                                                                   ; b5 @8 [2 p; C$ e% l! R7 E
                count = 0;//30次的50毫秒为1秒& [& G& J! H$ E& Q

# m  G8 j6 d! W+ U. T) ?

3 Z2 ~0 |( K: Q* ]1 h1 ?, }$ _                count0++;" {; \6 u. ~. L' F$ e+ C7 t% Q
                if((count0>=5)&&(count0<=8))
3 T3 w. i" k; i# u- t0 m                {
3 f1 y, C0 t6 ^) d                        P2=~tab[8-count0];
" n# @/ b4 I  R                }; s; q! x: G' d( S2 K( i
                else
8 N6 c$ q. G3 \2 H                P2=0xff;
" q! q" u( x( u# S' T8 B                if((count0>=13)&&(count0<=16)): J' y; _9 E+ S: y* B; N: i2 x
                {9 M; _6 @7 c0 e4 K
                        P3=~tab[16-count0];9 z. _% A; B+ ]  u' U$ ?, A
                }
9 [$ K( k3 S. S                else1 Y# E% L) [+ j3 F& U8 I
                P3=0xff;( I% Q1 c6 ^% j( G% k
! a% n* v2 Q3 R, o

+ i5 B/ B% S- Q# B; p                if(count0 == 16)& @3 ]$ ~- b  g3 s2 X
                {
0 @! ~3 r$ K+ p# t8 w                        count0 = 0;8 q. E: v5 |0 ]' [1 e/ k" \
                }+ k3 X  }/ f4 j5 m' F" l
+ d1 o: Y. Z1 Y3 ~0 u7 N& f
7 h1 x5 q* X* V: @3 j
        }
. V) c- i. Y. T4 H+ u8 W$ p                3 T' w6 a2 Z4 `; o' q7 v
}                  
  F2 [: l/ K1 y3 @( V! u, ~+ U& o% C! t3 L  x5 ]

( ~$ X  [4 y/ X8 F+ S1 Evoid play()
8 ~- n7 g, R* W8 @$ m$ D& B* e- k$ q7 x{
' }( s7 n0 R  ^        if(count0 == 5)  //5s后南北黄,东西红0 n& C6 b6 Y: Q) e( a! V' W
        {
4 o4 w, E( [0 k% |: X9 C. G                led = 0x0a;
3 j- ^  J: T" A                delay(100);
, {! Y/ \$ N6 q- I; r; p                led = 0x08;: H5 d+ H+ W3 j
                delay(100);
4 }; f- Y+ Q0 r3 a                led = 0x0a;9 B, t" t4 q7 {
                delay(100);- r# C: G9 D* k# n5 J2 T2 f0 Q& C, d
                led = 0x08;
( B& [" \6 v: I, H$ ?                delay(100);& _  U7 Q: ]- R7 u
                led = 0x0a;
/ }' U9 b6 k2 [+ A1 `& j                6 D' b, s/ u" C+ v% s6 t' D0 n8 p
        }
3 g  @, G* `! Z6 P$ [& _: X, S$ ?        else if(count0 == 8)        //8s后南北红,东西绿) l, i1 z. [" n9 w7 U! y$ J
        {: ~) s9 N  Q" y3 U+ _, Z. N6 E* i
                led = 0x21;; o" Z. x4 y2 C
        }
5 D" \" k3 X, g        else if(count0 == 13)         //13s南北红,东西黄
) R, p/ ~9 o0 T  S$ M5 ?        {
" z# G4 U2 u. ~- C" m                led = 0x11;6 x) w1 m6 U/ K5 D1 K; O$ Z' E8 c
                delay(100);
  w, L9 P/ ?& _% F                led = 0x01;. c9 r4 \, y: L1 }  U
                delay(100);
9 S0 u# w4 Y% e9 s3 L                led = 0x11;
  C9 X$ X7 F7 V4 s# S                delay(100);
4 @- z& D+ ]0 ~/ W. v+ u# e                led = 0x01;. B4 R% U% x  M$ K
                delay(100);
1 g/ v! j; Z) |) S                led = 0x11;
* }3 r8 X" X! L4 I1 w* U5 p6 d" ?% q0 v9 l2 m! Q

! ]  g/ v8 G; v6 l        }
* o0 {7 |" T  S7 q! ?        else if(count0 == 0)          //16s后南北绿,东西红
5 h  j% j# b+ k5 z3 L        {
% x4 X5 c& Z' g# M                led = 0x0c;
0 |! }! |2 ^! M8 w5 {' P        }2 D3 Z( `8 Z/ S+ P! _
}! H( p" {# B3 s" j8 r

, _1 e/ W# x0 ?, l& e
! I% N2 V. J3 F  R' `) G
void delay(uint x)
( Q3 f  O, _( J2 l# q7 ]  U{0 |5 S" s3 ]3 m* |& Q( u
        uint a, b;
0 B- E; _, s3 i        for(a = x; a > 0; a--)* ]% g! l0 T" I; \% ], V7 P
                for(b = 1000; b > 0; b--);7 ?2 g0 D4 t. N& @
}5 W2 z7 d. p3 ]" y9 L
( h  L( `1 t# Q) B% F4 D
下载:
1 _* n8 {0 I9 q0 G/ g
游客,如果您要查看本帖隐藏内容请回复
! y) V* @& y* n+ v4 @

4 B8 s# k( J: `/ h& R* @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-19 22:17 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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