|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计3 E. X2 J! a# }
9 P& G: x* a' |( U- g" O) j
~) X5 N- `4 l' p0 T交通灯单片机程序:
' K: T2 W% c+ G" | #include<reg52.h>" s) s1 L3 z6 q1 Q: _: K K
#include<bstv51.h>
: E6 C4 Q' X5 @; u/ _ #define uchar unsigned char
$ A- ?' B3 Q9 g& o2 m+ o3 Q0 [# ] #define uint unsigned int7 V+ o4 _+ l% n) o
' ?+ M. d" N, g3 ~$ D
sbit nbp1=P0^4;//南北方向数码管第一位;
. Z3 U" P; v( i+ h1 R sbit nbp2=P0^5;//南北方向数码管第二位;# r7 I) s) _0 R' L1 \
sbit dxp1=P0^6;//东西方向数码管第一位;
9 @6 F# h: u5 e* c sbit dxp2=P0^7;//东西方向数码管第二位;
3 ]4 J, ^; Q+ j5 y: u4 W' J/ @, O# c' ] L
% S* p0 C; v7 x+ \ sbit hdnb=P0^2;//南北方向红灯;
. A/ |8 _# c; K/ S1 Y sbit hddx=P0^0;//东西方向红灯;
3 I" v# F k8 q' p. G- @ sbit ldnb=P0^3;//南北方向绿灯;* G5 D, l* H! _; u
sbit lddx=P0^1;//东西方向绿灯;
- o% R6 F, j+ t/ O3 k! [ uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,! q! Q2 ]1 G9 s$ ~, u7 c, L
0x6d,0x7d,0x07,0x7f,0x6f}; //0-9$ b8 S! L& y5 d) [7 }
uchar num=30;num2,shi,ge;3 j4 F. Z% k& h5 H$ y1 ?
+ B3 I! ?+ n c H
( z; k: V3 Y- n% i0 W. Z6 P$ m7 c6 P5 n0 p/ n# L) `) \+ v) f
% x c- u! _4 I: J
; k! n& u5 S. E0 J& d% @
2 }& Z# X5 I9 O3 |% J8 W2 L
void delayms(xms) //延时函数x毫秒函数! L; |) t G/ {* h/ A. p
{
. b4 [+ @1 g4 ?. g uint i,j;
n1 I* T% F! l for(i=xms;i>0;i--)
9 k: g# e2 A$ a1 J1 P. R T for(j=110;j>0;j--);6 f' w, R! o! }4 L) H6 Y$ L
}
6 M+ ], U0 Z& F; S& W! f' f! E% ~
* P$ q& [6 L9 j4 `' F% Q/ N6 _2 C; \0 O3 N
void display(uchar shi,uchar ge) //南北数码管显示函数 y+ p- i. g( W
{
/ i5 ]6 B; c- F3 o8 j( R , {" s6 @) r& U: z7 M" K: g
9 w _; O7 B& ~ R. N) H; H
$ M$ N* W9 r. k( F
* Y( S+ C w7 c* L P1=table[shi];6 t" X v3 E' |8 b3 o H
nbp1=0; //选中南北方向数码管第一位. X, X3 e7 x9 M
delayms(3);
+ s0 V; v* l. `* [9 ] nbp1=1; //关闭南北方向数码管第一位7 K1 F# B- U! a) ?( u) e% L
P1=table[ge];
( t+ ]; B: C- y5 ~ nbp2=0; //选中南北第二位
9 C1 K6 m3 l& ]. ?% p1 ^# g1 H delayms(3);
$ s& a& e w7 g3 X, l6 u1 `/ a nbp2=1; //关闭南北方向数码管第二位: k; z$ h ]4 v# m3 K- [! P
! M& K w5 u. e
3 V9 X2 m3 n0 c; c3 B) V$ w# I6 W8 C7 v6 @
. h) K0 J+ D; ~, Z. u0 q
P2=table[shi];
8 r6 O6 X6 `' T dxp1=0; //选中南北方向数码管第一位, w& i& f" A5 p4 P. A r
delayms(3);
9 t1 l# j# ?( ^& t/ e+ e' l, P7 W dxp1=1; //关闭南北方向数码管第一位
" n7 M0 j! D+ S0 w3 W9 o P2=table[ge];$ U% g7 @5 c! H8 G6 u n0 y
dxp2=0; //选中南北第二位( M9 o; |" @4 R4 G) m# e3 j" J# s
delayms(3);
Q9 A( a, ^3 E% s dxp2=1;
- m% T+ u. x' D3 D. V5 g5 |) ~}; I. d( U7 m3 E! @& z& Z5 W
8 K5 |, a4 s8 g& c* G1 t. _& F1 x9 s! J; t
void T1_time()interrupt 3 //定时器1中断函数3 U+ o0 K2 z, U C. C% e
{ - O# ?. |* \3 R% {" P
TH1=(65536-45872)/256;
- V8 F/ J3 i+ n, P0 B( j6 Z TL1=(65536-45872)%256;9 `1 q+ c; l' u1 t' H4 z* `
num2++; - l. |: @' G' c6 l, ?
if(num2==20)7 g, `( X8 w: [; J8 I+ C- L% }
{3 V9 f* {& D- p; P9 _
num2=0; //说明计时够一秒( J( X4 g* ?) h. r; @
num--;
8 Q7 z' B# O( X+ y$ V" @' Z' S if(num==0)
& p( v2 r% T7 T7 D9 ~ { : x( A( ~+ m! b( X. R: y2 \7 R
lddx=~lddx; / _) j! E+ l E' a( ~# z9 h
hdnb=~hdnb; 6 Z' \' i0 v* X
ldnb=~ldnb;2 s+ X3 X7 X% |) f# A
hddx=~hddx;
, Z V; Y& c3 H1 C! v2 m( D num=30;
+ G0 N2 s- V3 c }' l- ^2 O, a. z. a
, b' D! ~3 d" d. Q+ b1 |- M! t9 x" [0 Z. Z) k2 {
}
: f" ?3 d! C: b* j8 a$ A shi=num/10;' X" u, k: s$ |$ k4 |/ b
ge=num%10;& V4 X/ M* Q* N4 b# J5 x* k3 O t
}
3 L' v t8 l3 O, x
; U+ Y) e. i% t& B! D% c1 e6 R
; f8 ^* ?2 d1 K7 l/ T1 p: N
- Y4 O# F/ a, ~+ U) a- M" [: G. n% T6 L, Z) c" H. f- f; z
void main() //主函数
/ ^/ K6 n0 `) E; v& Y; K) z' Q9 \ {4 [) `8 d4 s5 ^7 [* Z) T1 {
TMOD=0x10;
9 p* y) K/ c2 v TH1=(65536-45872)/256;
1 `/ b6 k5 Q L4 n( O4 ?% k TL1=(65536-45872)%256;
5 }$ x+ G7 H: g. | EA=1;0 ^) b+ B) t0 \4 \1 x; ?
ET1=1;2 h4 N- E: P1 Q6 F6 t/ v. k; f
TR1=1;- h2 O8 B' d% m0 S9 V ]
lddx=0; //东西方向绿灯亮6 \5 T. Y* ?' s( i" p# O ]; b4 }
hdnb=0; //南北方向红灯亮
; M C9 Y- o, ~3 D! }1 w ldnb=1;1 ?4 P/ l) u( }) b' l0 @
hddx=1;3 [+ V: ]5 S! D% g2 k+ D3 o/ }
( d/ v6 L' v* p' a2 U6 `5 K) `1 F
2 ~# z* g+ E/ \. Y# B P1=0x00;
# R+ c9 X. b1 x; Z: J7 ? P2=0x00;7 `7 Z1 T, N8 {1 `4 h6 ?. A& J
nbp1=1;- k9 c: H" m2 Y# N+ C
dxp1=1;
$ R+ r$ _% S7 L8 ~8 |! b+ t dxp2=1;9 ^" j& n5 c: i4 t, n( B# @( Z; J
nbp2=1;/ s, F) {: H' ^
$ [. J8 p: F0 R F6 y( w5 _9 x
* i2 J7 v; y* K& N# o while(1)/ N. ]7 [5 p4 ?% L! c
{
* L! c, m) Q1 z# f; W, { display(shi,ge);* N' _% o, e% U
}
7 B( F; r! b& r1 y }; C% {6 Q. x. ]1 `3 t/ e; n* ]
5 R) @6 j6 |- _" z$ j
基于51单片机交通灯设计下载:3 p+ B4 l4 M; c+ z% O; U8 L0 t
5 h/ g; U9 y9 l; v. o, ]* H r; O
1 j4 ~; b( ]2 n( a2 o |
|