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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于51单片机交通灯程序设计
) j( s* z9 b! V- ~& y  \8 n
* S: R/ b. ^8 T- n+ t  [6 p

& ]; s( t% Q! |0 p! @! [# V5 r1 {交通灯单片机程序:, Q" h8 L, y0 Y
#include<reg52.h>
3 F& Q$ K9 d1 Q: ]0 a# E9 \* ^+ M+ v #include<bstv51.h>& @0 Z1 ?7 l2 C4 @0 C
#define uchar unsigned char3 e$ V5 T! I. x0 u6 `$ Q
#define uint  unsigned int
2 [' T  J) l) g2 m3 {7 M. j4 i& [: [ 9 y) c! c: b4 X6 q/ H: a' D
sbit nbp1=P0^4;//南北方向数码管第一位;
8 C4 @) ~* L/ a- m4 a% N0 t sbit nbp2=P0^5;//南北方向数码管第二位;
- m1 {8 [% w( z" b1 H sbit dxp1=P0^6;//东西方向数码管第一位;
# I0 D- C# Z  |& T8 I sbit dxp2=P0^7;//东西方向数码管第二位;) X& ?% R: |8 U# U* F
0 D( h) v; @: A: n( Z) h

/ q# e( p1 r: p( C* s1 W2 h sbit hdnb=P0^2;//南北方向红灯;
' f2 P8 B9 c7 v$ Y+ F sbit hddx=P0^0;//东西方向红灯;; G$ E! {. p2 c/ s
sbit ldnb=P0^3;//南北方向绿灯;2 g4 `/ T8 L# p$ r) R. U/ B( x
sbit lddx=P0^1;//东西方向绿灯;
" e2 q! k  Q2 F; Z' I uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
3 m! M( L% B5 F( [9 Q0 ^: M                      0x6d,0x7d,0x07,0x7f,0x6f};        //0-9& R/ e6 D7 h7 m: b
uchar num=30;num2,shi,ge;
- x+ n/ {6 W# I' k# v( |* H& Y  b% T" E, a

0 X7 F, f3 f3 s9 }/ K3 p7 P; S2 `% N: q0 ^) G( F. a$ E1 X$ O% Y
/ r2 x" N7 H( K# S
' m* ]7 z, _2 G

' A" f; ~  L" U0 U7 w* e+ |3 Y void delayms(xms)           //延时函数x毫秒函数9 W+ o0 a* W, N+ m
{' Z$ [: ]+ r% Y
   uint i,j;0 {' d% Q& B9 @9 D+ s
   for(i=xms;i>0;i--)
6 w8 v- C6 K' S9 W& e. I1 F     for(j=110;j>0;j--);& K% M) b# I' n! d, N3 X& `# f
}. g) ^0 g- U& M& p4 x! f1 S

, D& F6 s  m( z$ m+ c' Q( _

& `; b& Z/ I2 ?1 G8 Lvoid display(uchar shi,uchar ge) //南北数码管显示函数8 |' U1 Y' S' s/ g: }6 i( n
{ 5 T  S/ }3 Q: L
# t3 ^2 [7 G! V. d' O6 r0 P

( s5 N+ `* C) _. o; u$ A  k( N; W1 v! ~  ^+ p" |  l
6 ]3 q! B  l4 ^
P1=table[shi];. X+ C! _5 O2 |4 ^; Z1 {; E7 c  L
nbp1=0;                                                        //选中南北方向数码管第一位4 e4 z  ~/ k" {- h/ f% i; \5 u
delayms(3);# @; G2 |! S. m9 N2 G3 K7 [
nbp1=1;                                                //关闭南北方向数码管第一位* w9 L$ F  a/ O1 l% M7 X) I
P1=table[ge];
2 \0 {0 A7 ~8 k6 Q; ^. e( V- a nbp2=0;                                                //选中南北第二位3 m/ U9 V+ j' U% B& A) P  z* t- L
delayms(3);7 }, B) L9 G" R& Z' c
nbp2=1;                                                //关闭南北方向数码管第二位
& Q% s. V4 U$ J7 W2 J5 @% y8 o' u- _& m( ~+ o# K" W; M7 d
' ]" t3 F+ w% ?+ N5 }% E7 f

# L5 a5 h, V: s: A; [: ]

5 }# N6 {' l; l! H  A) u0 _ P2=table[shi];
- O5 [9 q; V- O* l' W% u& ? dxp1=0;                                                //选中南北方向数码管第一位
' Y* a; n& \! h2 R. h  _ delayms(3);
, x7 I9 u8 _7 z7 T- q dxp1=1;                                                //关闭南北方向数码管第一位  U7 r9 w' B& V/ Z8 q, D8 ^  I: r
P2=table[ge];8 h$ y  @0 {% D* f. e" f# d
dxp2=0;                                                //选中南北第二位
8 [) V" r1 M8 e! Y% j) b% S6 f' X delayms(3);/ j1 V& S$ g$ ]5 I
dxp2=1;               
6 R+ h7 j5 w( |" T: b}
9 e% f7 A9 \0 y
$ ]8 J( @, y3 q
/ {4 e9 v7 ^( x0 P% [, x. T
void T1_time()interrupt 3                        //定时器1中断函数
* i# ?' O) K  R  g6 Z) t{ 1 {+ z& Y2 s7 h5 I& W+ ^
  TH1=(65536-45872)/256;
2 ^! s) Z7 L1 U+ V% U  TL1=(65536-45872)%256;
8 z6 v/ Z! @# s  h  num2++;      / ~1 Y7 T, Z) q# o3 F7 T
  if(num2==20)
' u0 I" u4 R9 ?1 n1 D  {
: X, v$ S9 X( c/ S8 V   num2=0;                                                   //说明计时够一秒
( X$ W3 g& r2 d% u   num--;6 H( K) r5 c5 X! r+ ?
   if(num==0)
- v, F* [. ?0 v1 e: ?6 D2 Y    {  4 N# T7 V1 a' T9 w+ h
       lddx=~lddx;                                                / ]! q, {- v! q7 s) n. d$ u1 N9 s
       hdnb=~hdnb;                                            * a" b$ j2 X  e) L* u1 _) V9 ]6 I
       ldnb=~ldnb;
% C' S! x4 s2 H3 @       hddx=~hddx;
# O+ G) J% V6 P- m           num=30;
7 T* P( X+ G" |- V$ `5 F     }
7 V/ H( T) }2 g4 Y0 I3 E. h2 f) E0 k. F' ?

# a- t' D+ h0 w! I# F0 h* F  }$ ?' i  \' ?3 n! P
        shi=num/10;
+ _5 j( K* i* F1 }+ K8 ~        ge=num%10;! k+ O0 j# b; w/ A8 ~
}* u' D7 e& D( j7 @9 y3 h5 B
  t5 q8 `, L, n+ F

( P( ]& B* n; Z" ]
  h( C9 R8 Y: }; U

0 g- ^: p. r3 N. ]. Bvoid main()                                           //主函数7 d" C& \2 {6 K$ D2 K
{, t$ P/ R7 j) ]
   TMOD=0x10;! \6 g" F9 ]2 a
   TH1=(65536-45872)/256;
. S  {% X& \8 Q   TL1=(65536-45872)%256;
" c. L" Z+ T3 }- j3 v0 v2 H   EA=1;
4 \0 p& k& W2 r' ]* d   ET1=1;
( i3 i2 f3 D; H: x3 D: h   TR1=1;
9 \4 N- i2 U% h, Z) v% X   lddx=0;                                                //东西方向绿灯亮  a  _' l4 j7 E; a
   hdnb=0;                                            //南北方向红灯亮
+ [+ K8 d4 U) e! _; W+ H; j; ?1 L; @   ldnb=1;
7 p+ T  _" {* q! ~" y) X   hddx=1;$ B2 @) x3 A# S/ `: F

5 ?6 D5 n! _8 v. k" n* N* w" e
7 ^" S) G, n' F$ S) V
P1=0x00;
/ V7 H. U# \* @ P2=0x00;* y% A! {9 s4 ~6 v- @  Q  c
nbp1=1;! m+ z8 F$ ?+ W
dxp1=1;5 R/ N5 k' L. e
dxp2=1;' J; E  M0 S- t- ^
nbp2=1;
: {- t3 R; u: \. e, x, h' y/ s1 \* p' \: D' Y! i

$ }& Q& n( L$ X) |   while(1)
! F9 b1 R- T- N! T& d3 e1 p3 N   {
5 V+ v2 Y5 B+ l4 \0 G3 E; {6 q   display(shi,ge);
. X9 M& k2 b& T6 E# n; L+ ~5 g! F    }
$ x) D0 W- F/ D- u$ E& k) Q4 w4 g8 \ }
: K2 K# p+ J4 _5 M
; e7 G. m9 R6 I+ Z基于51单片机交通灯设计下载:
. J9 q' _* J' s' Z7 J
游客,如果您要查看本帖隐藏内容请回复

7 o  x8 @5 e/ H' w
+ k3 X& b$ j" s3 ~( T4 c7 k

该用户从未签到

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-11 17:34 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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