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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于51单片机交通灯程序设计% E+ ?0 f1 j: l4 A: A
5 n/ E( I* c7 K, Q* h$ |+ b
: ?8 a- G' x* {' {! |, [
交通灯单片机程序:
( J3 j- C# q: k1 f7 ?! l #include<reg52.h>, G& j9 @* v! V( c+ z: |3 r  ^
#include<bstv51.h>- E; p5 S' @5 x: {: E
#define uchar unsigned char# n% G: z# \1 V/ b
#define uint  unsigned int/ U" o# `/ A. l2 }$ Y2 c3 P

+ {& F- e- a& _) I+ X sbit nbp1=P0^4;//南北方向数码管第一位;
4 E8 b" d( d$ D5 j0 w/ X. x sbit nbp2=P0^5;//南北方向数码管第二位;
9 w, p1 ~* r2 ?! p' Y0 U3 O- m# A sbit dxp1=P0^6;//东西方向数码管第一位;0 k* B1 ]; q, `  q( ~8 D; [
sbit dxp2=P0^7;//东西方向数码管第二位;" c7 k( P7 D2 p8 X; n7 Z
6 r! I- U- \+ V

+ `) ?& t2 V. | sbit hdnb=P0^2;//南北方向红灯;! r) X" R3 ^: K, D% f' `) b& u
sbit hddx=P0^0;//东西方向红灯;
1 ]  W( G- B) j# }5 z3 V# @! H sbit ldnb=P0^3;//南北方向绿灯;
* x/ _; F6 D. m: h sbit lddx=P0^1;//东西方向绿灯;/ N6 r: T2 ~9 g
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
; k6 x: n3 m% Q' r' ?( `" ^  H                      0x6d,0x7d,0x07,0x7f,0x6f};        //0-9( e$ U6 O1 M, a% y6 q! Q
uchar num=30;num2,shi,ge;; v6 Z& M' \9 t3 f
. G6 \) M7 ~- Q* f! C) @3 m
, _4 a$ S, A% C% a, h
7 ?$ _# @  N+ G! p- B; C

; \4 _# f5 e' k/ a; i& C# S9 U5 E* g  t& L# \

5 u7 K4 G/ M3 e) }7 s9 G void delayms(xms)           //延时函数x毫秒函数/ \" \) T+ T  @; ]  [
{
2 W' G5 N3 Y/ _) `" C) z" s! _* a   uint i,j;
3 l% }8 \% |! q5 m   for(i=xms;i>0;i--)
$ L. I) \1 z/ w+ m0 ?     for(j=110;j>0;j--);' Z, g9 ?* g4 y" y
}6 C$ W7 `6 @, C! h+ e. v; {
! Q# E- e" t- D0 w! M6 O( p
( Q3 w. V' x# `
void display(uchar shi,uchar ge) //南北数码管显示函数
, P1 w6 C7 y8 w4 q: o# z{ ' u4 s5 \! R' ?% h& E* y6 |6 m
# ^- i2 x% w$ Z  W" G9 b# G% w  _4 O
8 s8 {4 j6 j& L! C& L
6 J$ n( s# A, I% ^* Z
% l3 e: j/ X9 U- t, ]2 Y
P1=table[shi];( t+ ]5 s  J& s1 ~, {/ I
nbp1=0;                                                        //选中南北方向数码管第一位
& R: o$ i9 W3 O- {) W4 T1 U delayms(3);
2 Z2 }3 Q& i& Y* T& ~ nbp1=1;                                                //关闭南北方向数码管第一位
1 I6 G% U1 h% p8 U6 s P1=table[ge];# Y% M  o5 O. k' H. W# |' x& m
nbp2=0;                                                //选中南北第二位
  U* a) f# h# A& y3 L5 E, H) W delayms(3);
& X2 l8 d% c4 ?. V( D* ?0 g nbp2=1;                                                //关闭南北方向数码管第二位
- ?1 P9 a  i7 G7 l8 F% x
( U2 U, F3 f% C; z  C

; `. X$ h  b' L3 w! V+ i9 C" E
! Y4 |" T3 v$ H

9 q6 `/ ?3 r8 j1 i# r  U P2=table[shi];+ P9 [( f2 n5 ]# Z
dxp1=0;                                                //选中南北方向数码管第一位
5 o9 b3 x: k# i) o1 z! O% S delayms(3);' V, `/ Q2 y: O" Q
dxp1=1;                                                //关闭南北方向数码管第一位7 p' q0 A- [" p( a: ^5 q
P2=table[ge];, u9 `6 D9 S2 G( g$ n
dxp2=0;                                                //选中南北第二位2 V& `% J) S; F. `5 X3 g2 Q5 A+ U: @
delayms(3);
5 \  b, K) K; e& [$ D dxp2=1;               
. T" ~- Q" T& p1 m7 j}
: [8 f+ _! k) x8 Z- m. c! F6 f1 ^6 D5 w' A
% i" c! \& b; i7 }
void T1_time()interrupt 3                        //定时器1中断函数' l7 F" L# p7 [7 B
{ ) j; W9 R0 \2 y8 F
  TH1=(65536-45872)/256;
' t, [# ^6 d5 S3 m' J  TL1=(65536-45872)%256;! e" \1 O8 E" {
  num2++;      
. l2 w& g0 @( C9 F7 h& |; l% K/ S- H  if(num2==20)' Y. A  d! X9 \  u
  {! r0 J& Z  L4 J$ J
   num2=0;                                                   //说明计时够一秒
. ^# h: ~) o6 Y% A, Y& E   num--;
% ^/ ~: Z& ~; H   if(num==0); X$ s1 f. q0 f  y$ ?
    {  
! j1 ^9 B3 e# k  q; }: p       lddx=~lddx;                                                ( }: [) v5 Y+ q8 o) l
       hdnb=~hdnb;                                            3 j( N1 `' h" h0 b4 ^, D# h
       ldnb=~ldnb;/ G" q2 A* x" k
       hddx=~hddx;
" Y. c& F1 A8 n( w2 ~. X           num=30;
; r8 W+ I3 v7 @) Q" A0 f/ b& F; ~$ m     }
+ u+ R6 ^4 p1 @
( `4 @# c5 `+ z, w5 ]6 L5 G

6 q+ D( H  ~/ n" g  }
+ T& x: U" J7 J6 \        shi=num/10;
+ S' s% q! a+ B' \/ a        ge=num%10;
3 h4 E! L, [) z3 ^& e% |6 y# T}
1 ?2 N) \3 H1 `8 _$ x. I1 S6 x( \, \! |5 C! c( w+ @- @/ d; J

  Z0 P. @8 d  P4 e
. |9 \8 m5 L  E  G
$ F$ l& V% O( k! O2 R4 }
void main()                                           //主函数
( j3 }( o+ |7 v( v: h9 o" U {
. J) @( ?9 U9 ^2 p) @. T; y   TMOD=0x10;
% N6 }/ \9 ]( e, B  T" B" O   TH1=(65536-45872)/256;
0 y# `( ?, I: j/ e7 k   TL1=(65536-45872)%256;* o# {4 E8 y7 X- P( l. ]9 V
   EA=1;
( B6 e0 N3 p- H# |3 z   ET1=1;5 B& U6 @0 R+ b1 i1 F
   TR1=1;
0 J# J0 q) {3 L, Y* ~   lddx=0;                                                //东西方向绿灯亮
$ R2 B+ e" g7 E) X+ z$ j2 T   hdnb=0;                                            //南北方向红灯亮8 s7 X/ v9 \: k5 V5 U+ L* S  j+ U; \2 d6 Z
   ldnb=1;0 r: X7 ], V1 P' m
   hddx=1;; v+ Q& z; i  ^2 Z" Z
4 R9 _& ^9 S! g
/ K3 F4 A$ Z3 a+ z
P1=0x00;
, ]$ S* a$ T' h5 S$ ^ P2=0x00;
5 N0 \% Z) Y( r3 c# B9 Z nbp1=1;
3 {: I, S. o* E; }9 Z0 t% U dxp1=1;) H6 R) r% p5 I3 Z1 P. f
dxp2=1;7 F  ~( Y6 M6 P; B  y7 _. F0 r7 Z
nbp2=1;* q+ y$ N$ o, J& K+ H+ s* L

8 E3 f( K3 d: F$ s
& y: X7 R  _( D% E- s
   while(1)
0 C5 B" }: o: e' n* {% G  k' Y   {
3 u+ i2 y+ \  [   display(shi,ge);
7 |* G$ S! v4 a1 ?; ]2 b( D4 _    }
1 B( q) ^3 z3 h' _% f* Q: v }
) |7 h5 Z2 ?/ m1 O! t, O  j* f
8 f1 |+ f: U, T, G基于51单片机交通灯设计下载:
( i5 Z3 ^- S, S! n
游客,如果您要查看本帖隐藏内容请回复

4 r% t7 Z6 S2 B

, [7 m4 q+ X9 L+ G2 T

该用户从未签到

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-16 22:31 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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