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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于51单片机交通灯程序设计0 ~$ F; w; L7 g% ]2 y1 F+ Q1 F0 L

- x1 z0 h- @! P& N, @2 b
3 a" P8 w! s' l* z0 u! I- I; s$ m
交通灯单片机程序:
/ m. Y$ Y/ }( w7 w& H2 P #include<reg52.h>/ G0 R0 e3 @( A
#include<bstv51.h>" m, \7 l& G4 M% U  J2 A
#define uchar unsigned char. o& \2 d6 I) u  k7 k9 I& |
#define uint  unsigned int5 f) k# h" x  X+ F
9 d4 M1 z0 \1 w- F& c* P$ Z; e1 O& y
sbit nbp1=P0^4;//南北方向数码管第一位;
3 d( t+ H0 s# k: e sbit nbp2=P0^5;//南北方向数码管第二位;
  O- B: Y& j  Y5 S3 \2 L sbit dxp1=P0^6;//东西方向数码管第一位;
4 s9 b7 o3 E% d0 C sbit dxp2=P0^7;//东西方向数码管第二位;
) d* V# y7 h% R1 F7 M9 Q/ C
. M, b" s0 o& {  N. s

8 f# q: c, `, ]& J sbit hdnb=P0^2;//南北方向红灯;& n( |) J9 n" ~
sbit hddx=P0^0;//东西方向红灯;) @. d% C2 o4 D# D' A; }
sbit ldnb=P0^3;//南北方向绿灯;* \" K; _5 M3 P
sbit lddx=P0^1;//东西方向绿灯;7 J  \; U6 m9 F! W+ W, B9 _8 G9 T
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,+ X$ y  a2 G) F2 J4 y8 z
                      0x6d,0x7d,0x07,0x7f,0x6f};        //0-9, r+ J- q  t+ ?4 S. F6 X# c
uchar num=30;num2,shi,ge;! P( A$ e9 v- Q5 p! D$ d1 z: C
- ?1 _: [* E5 U* }

* Q3 ~6 y$ e+ p' c
0 f; X, `( ~4 r

: S+ t, e& G6 j$ J; a$ `* y. @2 L4 F
+ C9 Z& }) d1 c6 u/ f) s9 L& q

# O. f; Q1 c$ L void delayms(xms)           //延时函数x毫秒函数6 h  E  n2 R1 N, [: j4 ^
{
& w1 b9 @9 d( \4 r" {! H" B   uint i,j;
0 G0 r5 w' K9 w9 U! G, v   for(i=xms;i>0;i--)3 v+ t2 Y2 l& J3 v2 n- c/ w
     for(j=110;j>0;j--);5 A( J& L+ O1 E1 G+ B8 D4 q+ j
}2 B& |$ m: k) ~( T* M
" H+ A& Z, \9 Y7 \3 S4 K
( j6 Z( Y/ d- _  `7 e
void display(uchar shi,uchar ge) //南北数码管显示函数
2 t& v* w( G3 D( g% r{ 6 y0 b. `( }. A! P+ p+ ^- |4 k

% s# ?( A) S! i- ` 9 C. |" h8 S+ z8 X$ b8 y$ m8 `' I

  h, I$ X7 c8 I1 l

8 t+ L+ A6 X. |3 J! a% e P1=table[shi];
3 T) C) \( |6 j: d) {* x nbp1=0;                                                        //选中南北方向数码管第一位
8 P( p) h' D6 I! F7 `3 u1 d$ I delayms(3);
- G" L) W  ^0 y1 u; Y nbp1=1;                                                //关闭南北方向数码管第一位
, Y3 [& o. |0 T1 Y: Y P1=table[ge];' B0 b: Q! X+ K. y8 ?% r% g
nbp2=0;                                                //选中南北第二位
; a5 [" D* P" Y2 |) n delayms(3);
7 n" N' w6 W: f$ m- { nbp2=1;                                                //关闭南北方向数码管第二位
0 w9 ^4 ?6 }9 s+ p( R+ P, `+ Z6 L

1 |8 M4 t9 b' J6 {) R6 D" u. g0 g0 c. s( i: a2 t: F* S
2 ~8 U' z6 L6 N6 d( N! l9 d
P2=table[shi];
2 q2 ~2 E! a5 L4 r7 Z dxp1=0;                                                //选中南北方向数码管第一位
7 L0 ~. m, c$ Z: Y- y9 K# I! `" i/ ^2 { delayms(3);1 X, f7 K# V8 \
dxp1=1;                                                //关闭南北方向数码管第一位( D9 @) H  N1 V
P2=table[ge];
% q1 D( W9 O3 j7 F. Y2 a dxp2=0;                                                //选中南北第二位
8 j+ Q9 W* h: u; v" H, ~% i" S# Q" z" y6 W delayms(3);
# x! y" z! b8 n& ]+ V* g: p% w6 z dxp2=1;                7 n9 G7 Y$ [7 P. v
}5 A6 A9 T. d/ |- Q. X
% K" p' Q5 |' M- e4 s& k" [+ J2 p

9 M  `' M) }" zvoid T1_time()interrupt 3                        //定时器1中断函数7 e% w2 r$ z+ q
{
! V$ _, G1 ^8 C! l' O  TH1=(65536-45872)/256;
& a. O  @  S0 t0 N/ R  TL1=(65536-45872)%256;% I8 u* X6 C1 k+ s- Y. Z% x) L6 j
  num2++;      
3 n& a  P( O( D- O. H) f  if(num2==20)% F! x. x9 S& y& S  O0 l& ?  C
  {3 b( M2 G$ O( _0 X( J/ Y
   num2=0;                                                   //说明计时够一秒, j' s" h* `; x/ h" G
   num--;
. a1 M/ v* z( M( F3 l& q$ K   if(num==0)
$ j+ {9 |$ @! [0 F% ~$ g7 u    {  
8 [2 t/ R6 C# |       lddx=~lddx;                                                
+ r9 O1 ~! r/ v3 S4 k6 b3 d       hdnb=~hdnb;                                            
6 T0 R- l$ P9 A( b) U( S0 P0 G       ldnb=~ldnb;
: F3 N+ S/ Y8 d* n' E& _       hddx=~hddx;
: U5 `- \, Z6 _' q: ?           num=30;
9 Z1 n+ J! ^8 Q     }
- C: \& Q& k2 I# ~$ W0 C; v$ l6 n8 J, d' u+ C

( K1 v1 I, ]7 |, _: P  }0 N( Z- X9 `* U0 _
        shi=num/10;, S! G# _- z5 N  ?; B) f+ s
        ge=num%10;
& k7 z  [' h/ S4 p}- }' `2 Z- S; u( Y' t% l" M9 |1 h/ |
; V( A- n* b5 \, `/ ~7 j' f

# d* i4 S* N; R( q" i/ @& t* l1 Y: j
; U2 h) V& b8 D: L& G# @; n
void main()                                           //主函数  L0 x1 ~, f$ m: V9 ]9 i
{
, O# R* A- v' r* d   TMOD=0x10;: P  j8 c& X- v2 e& r: C9 G
   TH1=(65536-45872)/256;
4 @5 N. r  O4 w   TL1=(65536-45872)%256;
3 Y) H1 y: ^2 t9 Y7 b; T   EA=1;+ Y( ~6 G* x. s$ U
   ET1=1;
$ F. b4 S( G; M* b$ J+ v. ]4 H   TR1=1;
+ {) D  @. e* ]+ H' ~8 @   lddx=0;                                                //东西方向绿灯亮! L/ E4 G% j' ]. e9 _$ b
   hdnb=0;                                            //南北方向红灯亮
. ~7 L! i7 Y9 Q/ _   ldnb=1;. j4 l# g6 d: g$ O+ h- T
   hddx=1;
0 j$ k& _: l6 p8 M" k' i- i4 ?  F& q

! A6 ?6 D+ _9 y: i0 T" r P1=0x00;2 u1 v6 k- ?  {: r+ k8 X
P2=0x00;
" @: y/ v$ R1 `9 @) z, C6 i# | nbp1=1;/ ^8 K; [" L) [, l
dxp1=1;$ U  I: V9 w1 I- d/ k! w
dxp2=1;% U4 c5 D4 y9 W3 U3 P4 x$ ]
nbp2=1;
) [, a1 c' G" U6 {+ ]0 H2 N* o
: Y3 R2 E' m' s; h" f6 X  c
; X; Y% y+ E, _5 F* v8 m
   while(1)) `9 {3 b, U8 \: P
   {
+ D( ^6 ~. ~  I" g' h+ |& ^   display(shi,ge);0 B+ U- B& _* C2 s
    }, h% B5 ^. g* X' n! h0 U$ Q" T
}4 X; k9 J# U* e: i, R; {6 h
+ X# t3 ?4 R0 n; t: F# M  X* f
基于51单片机交通灯设计下载:
5 f6 m2 f( B/ x$ ]0 P
游客,如果您要查看本帖隐藏内容请回复

4 \9 ^5 N9 ?5 t& @2 \* J8 y

* [- p: O2 d) m8 F( s: W4 [7 L

该用户从未签到

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-11-26 12:53 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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