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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于51单片机交通灯程序设计- x4 P$ k1 j: v

% j0 k, I( z! R. L6 l
2 G( a* N: Z9 |2 D
交通灯单片机程序:  ?4 ^9 a+ j4 Y8 j9 v2 R, B
#include<reg52.h>
+ V) ?% s; u8 r/ e! v5 E7 _+ p3 n2 B #include<bstv51.h>
, n( G, [% C/ U, d #define uchar unsigned char
9 @* ?7 p5 p- h& i #define uint  unsigned int" Q: A. d: {3 |# }3 F; Y
. I2 P4 B& [5 o" r# a: v
sbit nbp1=P0^4;//南北方向数码管第一位;
2 _7 t4 O) m2 I5 e$ o2 ~# B# [ sbit nbp2=P0^5;//南北方向数码管第二位;
0 j! k: F- F/ n. @. |! R2 ^  [8 m: a sbit dxp1=P0^6;//东西方向数码管第一位;7 q% |8 r8 ?3 [4 d5 m* X7 I
sbit dxp2=P0^7;//东西方向数码管第二位;
6 h# o6 Y& Z' ~4 f  l" M; b
+ Y0 w8 q: h4 _; _' I

6 I0 ]8 G* w# @4 A  p5 R sbit hdnb=P0^2;//南北方向红灯;! r2 j; U6 Z1 ~$ P0 b6 \( Z. e/ H
sbit hddx=P0^0;//东西方向红灯;
- ^9 O7 `2 A4 M, |* @6 m sbit ldnb=P0^3;//南北方向绿灯;
& `0 r6 d" [) G- w3 |* j sbit lddx=P0^1;//东西方向绿灯;5 J. r9 [# N; k& j, G; C
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
3 I1 [( ]) c" I! @& n) Y                      0x6d,0x7d,0x07,0x7f,0x6f};        //0-9
/ b& i- ?' W5 A3 F) H: ?3 q uchar num=30;num2,shi,ge;& |$ y9 ]+ }* c7 Z; q" D6 N: f/ O
9 Q5 _! `$ Q. O4 U  j) r( t

+ l1 B% o* j, q- {) q  S1 c% G" ]4 R# f$ F+ o: P
8 Q; V, W% e/ z5 ^
6 o! J. Y3 y* y+ v, v
0 r; z$ k1 _9 x% }" p6 h
void delayms(xms)           //延时函数x毫秒函数
& n: P+ {, i" P0 G( F- g {: H1 n4 u& n6 W: m8 @
   uint i,j;; z. P7 S$ v. T2 @; m/ L
   for(i=xms;i>0;i--)
  a( N- }/ |2 {     for(j=110;j>0;j--);7 V* _, F7 K- J7 v
}- I$ d0 N# Y: `/ l' e

* K; c) n6 r" S

, Y: Y' F9 I, ^# P: }void display(uchar shi,uchar ge) //南北数码管显示函数4 ~7 u+ V2 K2 {# Q
{
6 w. ]2 H& _) R. a4 P3 Q
$ T. B& u& F' }; U; V$ ^- E
8 |0 z  Z0 s  d; y1 G/ F
) u) i  y  p- o6 `

! `3 x) z6 p3 J$ m% x P1=table[shi];
4 S) \3 Z3 R! c0 [" t nbp1=0;                                                        //选中南北方向数码管第一位, o1 w  |+ D5 F7 X- l
delayms(3);! F+ K7 w1 F/ h/ l9 f8 k
nbp1=1;                                                //关闭南北方向数码管第一位
5 p. Q* w2 y- J) I P1=table[ge];
( k4 K2 X- N$ ?/ R1 T; Z. @ nbp2=0;                                                //选中南北第二位; c4 k7 J# g0 l5 S) ?
delayms(3);: K* |# `- n4 m5 N
nbp2=1;                                                //关闭南北方向数码管第二位
+ \( S" k7 E, t, B5 H5 D4 g
: K. ^& w6 d2 T1 S5 r

% q( q% V; T& p6 I! D/ Q9 y: L6 R
) ~5 z) h; K. ?

) W% X" V+ }8 X# l1 |* X% T9 \+ A* E P2=table[shi];
) `! a( Y; L4 G( T# g dxp1=0;                                                //选中南北方向数码管第一位3 r5 X3 r9 @2 d' p1 B. o
delayms(3);% W' ~# G+ W/ K! R! |% w5 M
dxp1=1;                                                //关闭南北方向数码管第一位, S- }5 t0 j. g: {2 r% x6 L! S
P2=table[ge];. u7 r) P5 s* k( B* {, b; L
dxp2=0;                                                //选中南北第二位. ?. v2 R8 l! I7 i7 k$ L+ C$ z/ v  R
delayms(3);
# P, `. z$ L1 F$ R% W& Y  i dxp2=1;                ( G1 @  }9 I4 g. d$ U; v
}; B! e5 J6 {' ^5 E+ T' V7 A$ l! \

: F0 z  j! j, {5 d) E+ U* U, F2 ]: e! M- Y

+ D1 r* H6 u. I3 d: w$ jvoid T1_time()interrupt 3                        //定时器1中断函数+ B4 H- g% s2 c
{ 8 b8 @; j& S8 }+ b6 y
  TH1=(65536-45872)/256;
! g" A( f$ @2 r' k/ f' `  h. V  TL1=(65536-45872)%256;) J! D( [% Z1 n( u" [
  num2++;      % ^8 e8 x, W+ c
  if(num2==20)/ X$ K8 l. t' @( v: x+ u
  {
" \  h' n( w& }) K- m; w   num2=0;                                                   //说明计时够一秒
/ L" K5 A5 k7 L) U( E   num--;
2 @( e, D. [$ g" @1 @9 q: R   if(num==0)' `# k3 O8 {( ~% ^
    {  2 E. S3 Y8 w! [  N2 j# \3 j( L5 ]
       lddx=~lddx;                                                  G5 u$ B, @* q4 \7 E' E- l
       hdnb=~hdnb;                                            # g# u, e6 G3 O+ q* L( L! P% d6 c6 A
       ldnb=~ldnb;
* F1 P- @- u8 Y4 D( e/ d       hddx=~hddx;
6 G: F+ s& O. Y           num=30;8 N2 V! ~9 W! W# R
     }
( n/ c& ?3 B" ?8 _# E, e  j1 |0 f1 u+ \

( H3 Q# j: ?/ f$ f; ?1 I- ^  }
) c: R! T& X/ O  {/ I' c: X7 ?1 O        shi=num/10;
3 X1 c- {* K) N. U, }% v& Z        ge=num%10;$ m: v5 J; o4 M0 Z5 O8 i" {* K
}( u5 O, e* F; ?9 _$ O
) B) s* g& {! P9 _8 v  J7 d4 K1 }

/ N, N! ~  R( Z- H1 Q; O- ^0 ^! f" V8 s5 j& f

( |/ N4 g2 b) ~! \void main()                                           //主函数
5 x$ R+ J+ g) r, Y- m- R$ K: m/ Q {
( o& a" j6 P9 T& _   TMOD=0x10;( w$ i- o, f7 l9 o' |
   TH1=(65536-45872)/256;
+ v" j0 G2 L- I   TL1=(65536-45872)%256;
, s# J5 V& F  W9 }8 i& I" b3 u/ l   EA=1;% f. |7 [6 O7 f8 r! c$ D6 R/ L, ^
   ET1=1;0 B( e1 G2 f0 C
   TR1=1;$ m4 K. i) V/ p( ]1 Q
   lddx=0;                                                //东西方向绿灯亮8 `3 y# f" |$ u
   hdnb=0;                                            //南北方向红灯亮
3 U4 X4 v% B) C% m' V, T   ldnb=1;
9 n* D" X9 |! Q  \5 P0 y' P* `. U   hddx=1;4 Z* f2 K1 z; T3 w- f  h' J& O' z
7 K3 p7 A0 S) S  B! C8 j; H2 H! u

2 A4 D  L" v) p# p P1=0x00;
5 _5 N3 g" ~  m- p( z, ]# E" h4 j4 Z P2=0x00;8 `/ o" T0 U/ C/ z: M6 V2 e0 h
nbp1=1;# {$ x; R' x+ y  V
dxp1=1;5 p/ y) S) t# O( U* `
dxp2=1;
. E4 V8 k& Y; T* L5 I nbp2=1;
6 w: i; z5 O. K( |) h( X8 {* j
4 w5 x7 _6 K! e
6 P6 `, Q! C: t/ @5 V
   while(1)
5 L8 G5 a3 X% l9 |   {8 O! S( u# h. l
   display(shi,ge);
, B! Q8 c* y- O    }
. _) _( I. n' p  M. }: z* h+ D7 z }
  W/ T$ @$ g* s! d7 r. b$ p; T+ z. L
  U9 X/ g" k% Y# L) O8 s7 `基于51单片机交通灯设计下载:- z/ F1 E3 _% z# q# c
游客,如果您要查看本帖隐藏内容请回复

9 {- k  E" P& |! E. g% I
" G" x& D1 v( }6 {$ G

该用户从未签到

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-7-12 02:47 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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