|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计
' y2 O" T5 {8 }5 g8 e- ?: [9 u; i" [7 I
) H, v& h- a' C
交通灯单片机程序:
g+ U( c( d& E# z& U" e #include<reg52.h>1 }/ i) z, q! @0 e! Z7 H5 x! ?
#include<bstv51.h>
# e& p5 j5 \7 S; \ #define uchar unsigned char2 `( f3 J" u5 A& i0 q5 P( ?4 n6 r2 {5 F
#define uint unsigned int
9 z4 s3 i& {7 ^$ v& v! u . R+ ^. P0 _+ U, {# D
sbit nbp1=P0^4;//南北方向数码管第一位;
% p4 |( K: u) c! {4 C# Y sbit nbp2=P0^5;//南北方向数码管第二位;
( R! y+ {7 \( a4 y sbit dxp1=P0^6;//东西方向数码管第一位;5 z1 R _" i9 Y+ H; w8 f1 W
sbit dxp2=P0^7;//东西方向数码管第二位;& l. [- T0 Y0 N/ }
8 \. ?; g9 b w! p+ D
' G# [* f* F+ m8 L sbit hdnb=P0^2;//南北方向红灯;
8 J3 Y% G) {7 C( y sbit hddx=P0^0;//东西方向红灯;- ^. i0 x3 k7 X! ^, b
sbit ldnb=P0^3;//南北方向绿灯;
5 A: m2 M7 L% S9 R v2 v9 f1 T sbit lddx=P0^1;//东西方向绿灯;
5 E1 ~: [0 w+ x' C R1 C" n# ? uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,1 s' m: X7 l, X$ ]9 V3 Z7 t
0x6d,0x7d,0x07,0x7f,0x6f}; //0-97 T B* o+ e1 ^
uchar num=30;num2,shi,ge;& ]. ], A- A$ r9 w
: g" C% g+ ] ]1 w
, k# G- e+ }# }3 l! t
. Z! J3 T8 Y& G. m$ x6 r: y1 q+ z0 b' }6 z5 m" j( M9 p+ }: y
' Q" v* p! E9 f: _
9 [. u9 B v- e0 F) T& l
void delayms(xms) //延时函数x毫秒函数
% l& p# w3 j7 w; [ {
p; C2 u, t2 c- ~7 k: G' A D uint i,j;
! a3 A# R% Q; i* R% W, v for(i=xms;i>0;i--)* p* e, P" S+ ~2 p+ R) h
for(j=110;j>0;j--);
; a4 T/ {( v2 I- |( J }2 ]: r% [% W5 G/ z7 |9 k
8 ^& i. }, l( Z; u: }
! c; r; W4 y$ f# F2 Xvoid display(uchar shi,uchar ge) //南北数码管显示函数
7 L1 I1 h2 k; D5 h5 R$ k{
9 }6 J* M5 w0 n1 a, g
6 k7 T+ l3 g* @6 W) R; D# P/ z
1 w" r/ C* {' g! ~! x& ^- j, K; ~8 v( v7 x$ U* e/ M. S; e4 i
1 V6 s9 j0 z) e" H2 c
P1=table[shi];
* e* s% G, [+ V3 ? nbp1=0; //选中南北方向数码管第一位
7 j# |5 d8 `% Y; n: O% ?9 P- n3 ~4 Z delayms(3);! B7 C+ B% h1 _, a, \- ] o
nbp1=1; //关闭南北方向数码管第一位
( N9 y2 T: `8 |( c# {. c6 } P1=table[ge]; r8 v9 A5 S6 k
nbp2=0; //选中南北第二位
: o' q+ y+ g$ V" r* w0 I delayms(3);; b3 U5 l3 M1 N8 L% B( e
nbp2=1; //关闭南北方向数码管第二位1 b, D3 Q+ @& R1 u0 h- Z( q5 ?
- O& j6 S2 R! r8 w9 u
! {/ Q6 A' B$ f! j/ u2 ` p- i. @
2 F) O! k C% o4 v& `) w, w+ P. U1 o# w
5 {# Y1 S# K, v1 C' u P2=table[shi];
) A% o& _3 Y) g$ B dxp1=0; //选中南北方向数码管第一位9 I j2 L7 c- J
delayms(3);
' k5 t# [$ V6 y/ }; @" ? dxp1=1; //关闭南北方向数码管第一位
; e7 b! t& l" k& o# o5 Z. P P2=table[ge];; \$ ~. J& q- L( Q4 p8 U
dxp2=0; //选中南北第二位
. E- N+ S+ P: p" {" f9 t delayms(3);
1 k" P3 ~/ f8 v! g$ {) o dxp2=1;
2 c1 b4 H3 z6 ^$ B! X}" ~# B/ o! O% M; t; k
- K) E0 V, X$ T3 C9 W( `
; ]% S u7 | L5 z4 y) u: u& N. X2 X
void T1_time()interrupt 3 //定时器1中断函数+ }4 u* ]4 I9 _
{ + \, K( I8 X& }1 Q/ m9 W" p
TH1=(65536-45872)/256;
! X1 ~8 M' p1 i3 k! Z- A: ]. z) O ? TL1=(65536-45872)%256;, F4 t; m1 Y' c' T( a
num2++; % {: J4 s u$ @- D# ?
if(num2==20)
* `( f6 b6 Z* B# p& @9 | {
$ _* a) v7 b% O- ^7 P num2=0; //说明计时够一秒
3 C* C V5 r. }) X5 c/ Q num--;+ `( e8 V9 i- Y( _
if(num==0)
9 l/ q" M! v% [( p4 v {
, v7 g! f! ~" a, u+ K) S7 l, k lddx=~lddx; ( }7 n% A2 V; o% C G1 k( ?
hdnb=~hdnb;
+ y5 S: Z$ g% H& ~ ldnb=~ldnb;
; c& R& G, Y+ g0 f hddx=~hddx;# h. {6 d( ~) ^5 I i( J. A
num=30;
; V& \8 x3 P9 R# @. G6 f; F8 m }
$ ] ]: h- u* V9 N9 ~) y$ ]$ ?
5 r2 v% ?6 T& L6 ]
2 k4 [) H# s6 \' M9 d }
1 N- B# ?- l- q- K; E6 h. x shi=num/10;* L$ ~$ r3 v h i
ge=num%10;
; q& _9 t. x6 f8 m/ N& k" o/ u}
3 f' I7 A9 Q4 t1 H9 `4 C4 |: f3 D& m b/ v. m# X
4 F0 U! Y* P2 H8 b1 \' M
8 I, |- z6 D8 i9 P2 x" p4 f6 [4 k0 X q0 ~7 |: d4 O
void main() //主函数
. I" z$ D0 \; y8 g1 j2 L+ H) a- e {' G1 {: I& a: S
TMOD=0x10;: _9 I) N; F1 g! J/ i
TH1=(65536-45872)/256;
& v, V! u. t; [' P TL1=(65536-45872)%256;
! i& ]) M3 u& x* ? EA=1;6 E& n3 a3 q, r# P5 P2 Z
ET1=1;$ K+ B) W2 Z, b& v# \$ Z2 M6 a
TR1=1;
1 h7 P& [. ?' K0 i0 z( ~. R lddx=0; //东西方向绿灯亮/ ?2 |. ^$ J" [" n* ?
hdnb=0; //南北方向红灯亮/ u- j5 f9 H( t1 o# Q: k9 }
ldnb=1;) d5 _; L* C& D% Y! ]/ c- u4 {4 ?( g
hddx=1;; y; @/ h7 b* ^0 h, ^7 R+ q' T
, {3 I( Y; {, b5 _9 D7 Q$ W+ s- x+ K3 i. e3 U, h2 o, a% O: X
P1=0x00;
: W G0 v: e# U P2=0x00;# V7 h5 y% \" C" g
nbp1=1;1 t" ?) [" \% \2 a
dxp1=1;
; Z/ w& P' A: s dxp2=1;3 d; x5 f( ~4 R/ ^0 n3 F, q; O
nbp2=1;8 }8 k- i; e6 K! T0 B% j6 `9 E- B% a
$ P) F) w- W- B5 U r
/ h, w5 L/ d6 }& o3 C while(1)$ a" x9 r$ k" D% I6 V4 c3 h
{2 t: k5 g. A) c, Q
display(shi,ge);
" X$ x1 Y/ t( a. I }# m. H% R! {. k, J0 `
}
& s' Z" q* g4 W# {
6 l2 {7 h0 ]( l1 I" \- Y3 u$ }5 U基于51单片机交通灯设计下载:% u3 Y/ i' T7 E U* @6 W) Y
9 h4 e1 w1 x/ {! T
! l7 J8 i1 ]# J d4 g: S |
|