|
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" e7 ^" 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
|
|