|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计
3 j$ r' y5 w" r' O7 ^% n3 ~9 s* `2 n- b# a7 l; N
! ~) n/ M9 d: E8 e- N2 ]交通灯单片机程序:
% g9 ~ u& {- y! V2 g' l* X7 H #include<reg52.h>
% ?5 d! N% A$ x0 e! o% Y8 } {' o" p #include<bstv51.h>: P V! l- U) S+ L, q2 T
#define uchar unsigned char3 h% u# {$ J6 _$ G. k; Y
#define uint unsigned int# j. }. N; m. S4 r+ ?3 Q9 T
4 r, `+ L# f3 Q
sbit nbp1=P0^4;//南北方向数码管第一位;
( y. D7 g: E" L5 ?5 Q: H. @/ [ sbit nbp2=P0^5;//南北方向数码管第二位;# w* d1 ?1 l) K& ]
sbit dxp1=P0^6;//东西方向数码管第一位;( K6 h5 s8 k1 M, K$ c" y3 j
sbit dxp2=P0^7;//东西方向数码管第二位;: j7 g: h( B: ]% O7 n
: h h$ j" W7 |6 ]- ?2 w: w2 ^4 B/ r7 F( t4 m3 n4 e# X% ]
sbit hdnb=P0^2;//南北方向红灯;
, Z1 S5 S. _0 `0 ~# l6 j; _ sbit hddx=P0^0;//东西方向红灯;
+ l3 p6 E& T, {: x sbit ldnb=P0^3;//南北方向绿灯;# G- O5 [. ~1 P* [! `
sbit lddx=P0^1;//东西方向绿灯;, g7 q3 I0 h" m# P: r) d6 B
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,/ Z7 g9 t# W! v4 F1 v' k0 K
0x6d,0x7d,0x07,0x7f,0x6f}; //0-9
7 n( ]: Q. E$ q1 [ uchar num=30;num2,shi,ge;" P9 I3 B0 D y7 z7 N
, f* [, |* `6 g" }
5 t8 z( Y8 t0 G5 p) C
3 v0 _+ c Z, m d; s$ x
6 t* r7 C0 |. B5 N( z$ J! K$ [
8 s. S/ p) X+ N7 E2 T4 P
6 O7 C+ A3 H* v; h. g2 y void delayms(xms) //延时函数x毫秒函数% x$ \0 c& Y8 ^4 D' G; e
{
* h/ d$ B8 b9 j3 d2 r, e uint i,j;
$ B0 @6 S, K b, W for(i=xms;i>0;i--)
' ?" l* n$ M2 m+ C for(j=110;j>0;j--);: ?0 Y+ c: ?$ [" p( d1 {5 J) g
}2 Y7 Q, g/ E9 i- ]! k
" `) f* H5 p& x# D G! p( c
. e4 w2 p5 [' u& l" s1 xvoid display(uchar shi,uchar ge) //南北数码管显示函数
: i. i. }9 ? n! {9 a- A. C{ % P+ n2 T7 L9 [/ Z; D
5 P9 i$ B: z! D8 i 3 C! v/ }* q& U: B1 C
- A2 y% b' n& B+ M7 A! U3 B
, w- N/ ~5 \% V, n/ U: q+ u
P1=table[shi];6 h* T4 v5 U; \% |) {) S/ {/ ^7 p: {
nbp1=0; //选中南北方向数码管第一位5 {/ t6 } b2 R- T' a
delayms(3);! E( m c, E% v
nbp1=1; //关闭南北方向数码管第一位
# |+ B2 h' F. I P1=table[ge];
* ~& I. A ^7 Z6 _1 B: ~ nbp2=0; //选中南北第二位. D/ Y2 P2 G0 [' O9 }
delayms(3);; g6 b1 m8 i3 A
nbp2=1; //关闭南北方向数码管第二位
0 @! `$ g/ D$ B4 g# u0 h+ U8 ]$ q' Y. E& V# l2 O: c5 l
* f: R8 J9 c* s$ ?! C$ z
- R, V- L" z! w$ I+ _1 i: d' D/ B
7 Y+ [' i' D# }) g( \% V$ c P2=table[shi];, U3 T1 y- C |) {; m5 {
dxp1=0; //选中南北方向数码管第一位$ v" M( a4 t# z0 W! a
delayms(3);1 U: r5 `" _- U0 Y' A. O2 J- f
dxp1=1; //关闭南北方向数码管第一位
, o7 o5 s3 A* _& B C P2=table[ge];
, J, l! }% X U- }! E dxp2=0; //选中南北第二位5 c$ X% |( Y6 w) |8 v+ z
delayms(3);" y( a+ \, w6 w& f! G
dxp2=1; 8 t4 o/ g5 \9 t, t9 F1 i: C
}
; }2 [+ r$ g7 b' ]6 i: q8 o' h) A( A1 i& J9 b7 ]
# V3 v( w& a- R ]* K6 o
void T1_time()interrupt 3 //定时器1中断函数
$ k5 b6 Y) D D7 N0 L/ X9 g{ 8 c3 A1 q! |, r% J7 d& Q, {1 U
TH1=(65536-45872)/256;& Q2 h0 F; B3 v" o" n
TL1=(65536-45872)%256;
/ ^# q3 d0 n4 e, { num2++; - Y x, n4 T4 J) J* }. @! V5 D; p+ [, z
if(num2==20). V$ a S8 r4 F( W
{+ ]# r$ I e6 [8 Z4 d0 o; M
num2=0; //说明计时够一秒! W4 `/ W9 ?8 X! k. B9 F
num--;$ E t; K! g( Q, ~: _
if(num==0)
7 \! n! e+ }% v0 ^3 F- ~- k7 | { * D9 `! s* j8 h x2 H% i* m
lddx=~lddx;
* e7 y6 l2 ]% m hdnb=~hdnb;
) v# z' F1 n0 e9 `( \9 i ldnb=~ldnb;1 B. a" V- ?, B5 \9 x6 q
hddx=~hddx;
/ k6 M3 M- D- r- o0 i- f0 Q& r+ g num=30;
$ r8 x( j! F# a8 g7 C- G( X; Y }
6 J' x7 I! ?4 I- h+ s# M7 ?, z
# d1 v9 { \6 c+ O: y# h# ]
0 H. B1 p R% m/ J- _3 ` }$ Z7 }# ~) m7 S, z; m, J& h
shi=num/10;
2 w: q- `% v+ n6 c* d9 p ge=num%10;* T1 t3 [ o( O5 T
}
8 ? \) l' l. T* B* S& G7 L9 h' U: G
3 ?* N) ?+ x4 z$ ? _$ t2 e d3 P
6 Q: H4 h# `3 G0 a
9 @* N" _' N6 h; D7 Y' f
void main() //主函数
& x7 k/ o: ?+ N5 o$ @6 v7 z9 _, C {* R1 T: R6 ~4 l j. ^ a
TMOD=0x10;) O4 x* T0 ? l2 j
TH1=(65536-45872)/256;- o+ o) B2 h4 L7 }* W3 E) u
TL1=(65536-45872)%256;
2 G$ r! U7 Q3 R7 `0 ?; w6 F( Y4 e EA=1;
4 |# i" g P5 t ET1=1;
% X+ Q5 e S: y6 Y TR1=1;
/ `, S# h8 y4 |/ d* U5 |- k/ _1 R: o lddx=0; //东西方向绿灯亮% }: s) R1 Z3 v' @
hdnb=0; //南北方向红灯亮; h- [# L! w. v' |
ldnb=1;
& C' [7 x, Q0 T0 ?7 W" t hddx=1;! b. s' {% U: [, H
6 ~; k" h- a- `- `7 `0 w% p
0 }- ~7 ]; T3 v0 a! q P1=0x00;
9 U! h' g! \. _8 z P2=0x00;% O; t) N! b9 K$ ]! W
nbp1=1;7 F& J! r$ y- E! N5 {4 J5 Y
dxp1=1;4 G, m9 A, o! O6 ?" H
dxp2=1;
7 \! ]7 m! e- _8 Z" E nbp2=1;/ b9 v$ u @1 _# Z1 ~& O
+ ]- m e. B& b4 M
. ]+ p: }) D$ k9 Q while(1)
: D' o* }. L3 r! m, s {3 @7 x% g! e" R" F0 ?: ?
display(shi,ge);9 @6 u( p. Z& L- ]; Z/ K# \
}7 I# [& j* X" v8 r$ a4 a! v& M
}2 B- e! o2 p4 s i% w8 [( Z
$ f4 K7 ^7 Y0 [. V; B2 C
基于51单片机交通灯设计下载:. B8 \! _$ M4 x- M& Q
' a' h8 w' V, V4 ]5 V6 c
% t; m. d5 d/ S% I) J& B- _) A/ f! f) K |
|