|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计' q$ b- M8 A: K j" W% o
+ W' z E- t. t& @6 x
* ]0 l! A2 h% E& l( D* i1 N交通灯单片机程序:
) H0 }; g0 x( Y8 }. e #include<reg52.h>* Y+ c( E5 Y) z9 T+ {
#include<bstv51.h>
! i# F# {7 N+ p; q- M #define uchar unsigned char* }3 F+ c, Z0 N/ o1 p
#define uint unsigned int
$ Y( `% j2 q0 b- {- a* a 1 S. E4 h! j5 V6 g( g# G' a3 p
sbit nbp1=P0^4;//南北方向数码管第一位;
" n+ Y; B; Q+ ]7 V d8 a N/ t sbit nbp2=P0^5;//南北方向数码管第二位;8 B/ k9 ^8 N$ Y4 C9 J8 B9 J
sbit dxp1=P0^6;//东西方向数码管第一位;
8 f8 I- t# y. X3 r* @* h9 t sbit dxp2=P0^7;//东西方向数码管第二位;% E$ N6 d) u; M# _1 D$ i5 ~
& s' w J) q, |; C
1 D* ?, x" x- V8 B- F( c" f sbit hdnb=P0^2;//南北方向红灯;2 i% }& R& ~' M: q8 n+ a
sbit hddx=P0^0;//东西方向红灯;
" F5 K, {+ ?0 Z0 N% i sbit ldnb=P0^3;//南北方向绿灯;
) J" S6 b8 i6 \$ P$ b! c% x- z sbit lddx=P0^1;//东西方向绿灯; H6 h$ }8 B/ E. i7 m- A
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,6 R2 h# ?# A+ M" o+ r7 A. y, I7 ~
0x6d,0x7d,0x07,0x7f,0x6f}; //0-9
: _: q0 M D; T1 o- D* x uchar num=30;num2,shi,ge;6 M, R5 m! z- k; R- f8 Z- R. a
. i2 D8 N8 f1 g5 K7 f2 i$ F: _& ^3 v
& y' M( h7 g# H( t) E, O! i5 ~( l2 Z3 B6 a
4 j: l1 C6 Q; T9 s8 g3 T2 A# D8 {
$ t* ]6 u, \/ [# h
void delayms(xms) //延时函数x毫秒函数4 R* p; U% _2 z: }2 l p
{; h; ^, b r7 j; N
uint i,j;
4 _, K3 z4 k+ g' } G: k for(i=xms;i>0;i--)
& k! p6 s% Y7 r% D- W M for(j=110;j>0;j--);$ D# V3 ] m% [: t; f- R
}
/ Z) V9 H) q. \ R- ~
; e# R! Q! K6 e n8 v* z6 [- ~2 _9 z/ I& n4 \
void display(uchar shi,uchar ge) //南北数码管显示函数9 d% ?7 H$ S5 |/ _( Z1 w" K0 H
{ 8 r& q7 q) R8 `5 A
4 O4 K7 x M% Y% z% u( R! O. M
7 o* M! [1 Z/ L: [3 D" }4 k0 L7 O. Z4 p9 v2 j, l, d ~9 r) S$ x8 ^ Z
$ C$ K& h6 p: C4 x l% i6 A3 I1 \
P1=table[shi];) U/ w: c; X: ~. N6 L7 {- C. C5 g
nbp1=0; //选中南北方向数码管第一位
4 H) I7 T/ M' n% ]) z7 V& Z. q8 w delayms(3);
0 w2 y/ r0 k$ m* I6 n3 X; ` U nbp1=1; //关闭南北方向数码管第一位5 O% d. Z+ `6 \5 u! q, a
P1=table[ge];. J$ H8 |. e9 t$ Q+ E9 W# i
nbp2=0; //选中南北第二位
* a) P% o4 d+ J9 b0 X: k. ^( J delayms(3);4 @% h# H! N. Y! T* H
nbp2=1; //关闭南北方向数码管第二位+ J5 k0 ?5 K; c- q" @
% {* P# V- U/ b1 r
3 Q( _% [, ^( J' X1 N) E, N& @& r& o: _) Q5 @) i
# v! p9 g; a" G. [: A
P2=table[shi];( w* H8 Z6 z- O
dxp1=0; //选中南北方向数码管第一位( N7 E, j( b0 t+ P
delayms(3);6 s& Z6 h' F# J+ T
dxp1=1; //关闭南北方向数码管第一位
( b! b$ a- [8 o3 C6 G P2=table[ge];6 O; i5 ^, q0 A- ]2 O
dxp2=0; //选中南北第二位
+ Y+ j- K$ I$ D7 g delayms(3);: \: `- T0 W/ g1 e) {3 n" y/ \
dxp2=1;
! m: N* ~ O% X" N0 h& b0 U( `}5 }+ T8 V* \1 \9 Q, a9 R! W
8 S+ L+ Q! A" v: w
1 @$ Q; U/ f4 U: t4 _void T1_time()interrupt 3 //定时器1中断函数$ r8 M, a+ g$ i; L/ M6 H
{
4 s5 N6 v2 \& Y% @, m! | ] TH1=(65536-45872)/256;# @( n# N* Y+ K$ Z! n7 N: d+ d
TL1=(65536-45872)%256;8 i. S. @% d5 w3 e9 H6 T9 c2 Y
num2++;
+ N" ?1 U) G, p3 P8 ^- g4 W" T! L2 Y if(num2==20)- g/ w3 N' f/ p6 x0 P- K2 |/ _
{
9 z1 y; D1 ~' w num2=0; //说明计时够一秒
! |# P& n- p7 o4 Q1 T2 A( o num--;
6 {; F2 T2 f; c$ I; \ A3 g G0 h7 F if(num==0)
* U. t3 `- m/ r7 Y9 {% L; V% T {
- }, j( C7 R$ y) I6 [ lddx=~lddx; % j- K* x8 h. k6 Z: D8 h4 B- D
hdnb=~hdnb; . _% {" K/ y2 n" c& C
ldnb=~ldnb;5 f0 y+ y. q+ _+ U `6 }4 k5 H
hddx=~hddx;
1 m) I7 [ [! B& J num=30;
5 H7 G4 b B+ C, B( M }
7 ~( a: V% K; Q! l6 [( r- O: i2 @: s
! O; |, T! G' L" D0 I
}( r" q. \. \5 o/ P9 A
shi=num/10;. y3 c6 m; @ K4 D3 Y
ge=num%10;6 |& ^* E, R! \2 g3 H+ [; @
}1 Y8 C3 L6 a# }
! t$ W6 W f# b H# H; _% |3 z
. K( H- }: q7 m! a9 `4 f
# C g4 P9 N9 U
* j+ U' Y8 x- m
void main() //主函数
. ^% k4 e- K8 D4 u0 b3 | {+ x) _" j/ Q- r- u. G
TMOD=0x10; j" x% @: c7 m' O
TH1=(65536-45872)/256;) f% P* r- v; P( y* j- P, A; E
TL1=(65536-45872)%256;
9 q6 V/ ]' J6 F EA=1;5 k6 W4 ?, d, m% h$ V i2 A+ m
ET1=1;! @) C" N" B& e- E
TR1=1;
: O% r" Y6 @6 v' S. S+ ^. o lddx=0; //东西方向绿灯亮- g1 e1 E+ r4 R$ t
hdnb=0; //南北方向红灯亮6 x, {' e. f( `2 C9 K' {/ E+ P+ H U
ldnb=1;
$ r" y% Z( K* M hddx=1;
* @5 G. {5 s/ t& n- s! _8 F- {1 `
8 `* M- ?) G r: _" ^
- ^; Y( u. t* ~) o P1=0x00;+ D I6 ?( r: R2 s
P2=0x00;6 y0 I6 I1 X3 r+ L3 m
nbp1=1;; |0 q4 q* |( m
dxp1=1;
" y0 w: f; l3 M! z+ R" [$ H3 k: f dxp2=1;: H* a! J7 h. R2 H8 ^0 U
nbp2=1;! ?- c1 }' q7 g/ ]
, ?+ S: t; \, \' W p, K' Y" ^( E2 b# \- o( _9 }
while(1)5 Q9 b4 {" P2 \4 L$ U$ P! F
{
+ ~2 a" J" o1 w7 T$ z display(shi,ge);+ u. b* L% C) _; O. W# o
}, e% s0 W2 ^* C, Y# W
}
% \ \! @1 e3 J7 S7 {5 W- l4 D
基于51单片机交通灯设计下载:
1 w7 F$ K. d# w; r7 R3 I- W: w+ f& r1 c7 w4 E
& ^# l3 F+ T" G
|
|