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

51单片机 交通灯修改版

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机 交通灯修改版( d6 M& B+ t" s

6 r" M$ h4 K0 n9 j5 z

! A& `) |  S9 `/ O9 J- k喜欢的 可以看一下
5 n: f  @. I  t1 g9 b5 ?" L

# q1 F' e. J/ ?3 t0 I  m- `0 _* j1 s: i# c) O" W

, k. A" T5 c" c9 a3 k1 N; b  #include<reg52.h>+ l$ I4 h$ F' d9 p$ h7 a  ~
& m. N) G4 b% U. X# A
- d# }* d! _  {$ m7 n# M2 A
#define uchar unsigned  char
1 [$ D- @% P* D6 T3 J0 q% v' y#define uint unsigned int
" `2 ?! N! v, K4 K7 Y% L#define led P0
# ^2 b. W6 d- d- Ouchar tab[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
7 b! }9 g% Y. n! k- b% y; d& H3 juchar count, count0;
/ ?) v4 `) |4 c% J, c5 v% p* _# J
% p5 G* e; D' V- B/ {& k
void delay(uint x);
" Z( b5 b/ K$ vvoid play();
5 [2 T2 K, O! H- f- D2 q" b, D+ V$ V+ o$ D% ~4 n
/ x* i% j' n6 {+ M
void main()
* y( E1 W& A! g{
' d5 \/ Z% d6 ^        TMOD = 0X01;//定时器0的工作方式为1;
9 q5 V; w/ ?) c) `7 l        TH0 = (65536 - 40000) / 256;* J; E. v4 w6 R% g3 H) d, b- C
        TL0 = (65536 - 40000) % 256;
% ]2 e9 @  T+ Q, q. W, T! h0 U        EA = 1;//开中断  z8 c7 f( p, ]( p0 @2 U+ N% I
        ET0 = 1;//开定时器0中断
$ g, F6 A3 \+ L        TR0 = 1;//启动定时器0' }5 L* u1 S6 c6 D

+ `+ a; L! g! c; A% h
4 Z* Y+ Z& S" R
        led = 0x0c;
. g" @* P2 ~2 I* i3 z3 h        while(1)/ C% W! x% i- }. @7 i
        {        
* x% m7 ]% J% `6 p) L' F0 n$ A" o                play();; a3 T: D+ _$ q$ m4 D2 E
        }
( j4 o9 s/ k. B% q}
- _8 @5 j' F7 P& B+ u1 k( }$ o/ F6 M8 _' k# Q
+ r; O! n  i5 |( H# z6 `
void timer0() interrupt 1//定时器0中断服务程序4 b$ [% W; k8 e5 ?( \# s" F$ j0 t5 y
{
9 R/ G7 X7 {# y  x$ s        TH0 = (65536 - 40000) / 256;8 O0 k! e+ u7 B  j' D6 A1 l
        TL0 = (65536 - 40000) % 256; 9 Y) ^; R. x, n( c3 v
2 d0 L- y4 R3 u& {) W
4 {- Y1 C7 Q3 ]2 u* j& t5 j

  l  e, \. a8 g

  A+ q4 r! B) n1 K' b+ O' l; _        count++;//中断次数累加
8 R% D3 c* g: U# J, R% G        if(count == 50)
  I" o0 o: J4 N$ |7 s5 @( b        {                                                                  
# |; X; m7 {, c; j8 P5 ^                count = 0;//30次的50毫秒为1秒
2 F2 g% O5 ]* N3 T4 F
8 d' W( C, T- ^8 V) w" H

$ U8 N# U$ d$ }1 ~7 i1 p0 W7 a                count0++;
; S: J3 C! v, }- O0 D% L$ T1 w) P                if((count0>=5)&&(count0<=8))  p( f& l3 b. U7 a3 e- d! Y% ]
                {
$ V  p- |  W6 Y8 L) Y. P                        P2=~tab[8-count0];
+ V4 x/ R6 M) \: f. m. W1 ~3 K7 ~5 b                }
  x  o, N6 z: z, v, z% |& R* C3 v; z                else ! w. y3 I& t5 N0 j; \+ y. `  |
                P2=0xff;
% ?* }4 x0 q6 Z3 P2 [, j                if((count0>=13)&&(count0<=16))
( I% C/ c$ f# j                {7 ^' f! j( P# y8 y/ ~. z) {
                        P3=~tab[16-count0];
* r; t$ P* y) T, ?# V                }
4 c1 W+ ~& d0 F. L. o# H* Y, B# d                else" L) I& R: e: s6 q  o
                P3=0xff;! T# {8 H8 K) ?0 ^; i

! m9 H! u( \0 Y3 p! w4 u+ n! x; p
% i  j! {" i% q) C) N
                if(count0 == 16); f  ?' S5 P5 i7 c- U/ {
                {
) V4 D# s1 Z- T1 m! w/ W+ z' p( u( @& E- p                        count0 = 0;
" N5 ~. I, U9 k5 j) U                }# n0 R3 O8 u1 X* b  F

3 p! p) N1 J3 a2 U
5 n+ a% t' q9 _5 b
        }( L$ K- }* e, a+ L3 P2 b* d
               
8 W7 _6 d: S* B}                   9 e4 L7 a$ s. d* B4 D1 I

- B) h6 L9 T$ Q

0 {: K+ `3 N; v) n. D' E; Zvoid play()
( c4 ?& k( m% R" D5 V{
+ w2 T5 n2 B3 I0 t% `# k# D9 [        if(count0 == 5)  //5s后南北黄,东西红" S8 l2 s" c/ z  {( V) B0 ~
        {. H4 e  b. k9 u
                led = 0x0a;* }; x" C' ~* m: e9 \& b
                delay(100);
! m! l' Z& f: r                led = 0x08;$ Q$ a2 h! g/ w$ [4 N
                delay(100);8 ?% @% s- x0 P3 F* N0 e, Q( w. K( y
                led = 0x0a;) ]+ R2 K. Z9 s: v  w
                delay(100);2 a1 Y5 O( p! m, [, r) z: a4 Y: D6 W
                led = 0x08;
+ B; I+ n; e7 ]$ m' a- b                delay(100);
9 U0 l) I( ]0 ?                led = 0x0a;
9 I0 [* ]' ]/ O. }7 w                % N, a' D/ L5 s. V# U6 N& f5 K
        }+ V! o) b& M7 G# J- A3 a8 b* J. t
        else if(count0 == 8)        //8s后南北红,东西绿7 C. d# \3 c3 G# d  c
        {8 B+ o5 l0 h! B, M" B
                led = 0x21;- F; w0 t" s4 P9 ?: s7 x9 z1 C4 x2 x
        }' _( k: ]. R6 E7 k8 y' m
        else if(count0 == 13)         //13s南北红,东西黄' v+ r4 F. X) i  T* {
        {
' K3 p$ h' d6 G% m& x* H; A                led = 0x11;
) l: z% V5 A2 j  W* Z: J! Z                delay(100);- `4 c, |/ R7 n
                led = 0x01;
: b2 {; a9 e' i; y/ w' m                delay(100);/ |- @! b& U6 j+ w6 S! Y
                led = 0x11;
# e0 R% {& v* S. ^2 f. z* d$ t                delay(100);
* g" H! l/ |6 z, [6 S# c6 D                led = 0x01;' A2 c/ w+ h' w& M
                delay(100);  A$ w6 ^! Y' ?9 e
                led = 0x11;3 g7 {7 t: A6 h7 v. I% i
/ }  h& B4 m8 X$ X' v, Z1 i( f' |# a9 E
. h9 t* O/ {/ @# [
        }
# k" {- C; j7 w: u9 r( ?        else if(count0 == 0)          //16s后南北绿,东西红
/ P$ G7 b# I- R( N! W; Y9 Z        {, k7 E# g: ?/ c3 G- J% l* V0 v6 ]: N
                led = 0x0c;8 e4 D- W2 g$ p: w9 b
        }
% P8 T% @: o1 b}) N3 s0 w: Y, f# H. v- m

" g7 l0 t* v3 G. s. u- z
" w4 m" h" q8 B, o4 E3 R7 B
void delay(uint x)# I0 ~  F9 p' a% V2 I
{" z1 e) X1 b8 y3 x5 e
        uint a, b;4 p) Z: k) \7 \0 B, s
        for(a = x; a > 0; a--)& U/ A- r: W+ j  @7 j
                for(b = 1000; b > 0; b--);
" f# O& x# q9 E$ c: k}
  Z& }+ x# R$ H$ k$ M5 e( G
3 u/ f: G; H3 q) x1 V5 w+ x下载:
# b, J1 U) s( y) E1 `; r
游客,如果您要查看本帖隐藏内容请回复

, \& k7 Y9 P3 S' G$ _9 V3 X4 X+ v  ~1 s6 h) _
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-18 06:34 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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