|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计7 z, E+ ~, R- U
8 m8 {* h/ U n5 U% L
) r9 d2 N* T; Z+ y b$ D: M0 P交通灯单片机程序:- b. v/ \/ I) x. u! D, v
#include<reg52.h>
2 K P; H* p# F& S' B4 D2 Z #include<bstv51.h>
" i3 g' @# z1 G3 g5 G1 @! S" f #define uchar unsigned char/ B2 q7 b5 K. a
#define uint unsigned int
9 m1 U0 c; y$ t6 O! G/ d: ], ]1 @ % F$ _& ]% H z6 M C- |: Q
sbit nbp1=P0^4;//南北方向数码管第一位;
, I: P. E2 R& ?1 n+ L- y/ M sbit nbp2=P0^5;//南北方向数码管第二位;
4 _1 J- P q7 V0 \1 Z1 m. ^. A sbit dxp1=P0^6;//东西方向数码管第一位;
, _1 P3 L! i9 b0 p& s7 A$ w# l sbit dxp2=P0^7;//东西方向数码管第二位;
# }3 J6 S' A# j7 b u
$ s) V; J+ `% ^5 u+ G& l9 @ d$ Y- j2 z# M5 P L3 T9 U
sbit hdnb=P0^2;//南北方向红灯;
9 }$ P( V* ?/ ~# e, y; i0 A sbit hddx=P0^0;//东西方向红灯;
) Y$ Z6 P# u& _8 w7 @ sbit ldnb=P0^3;//南北方向绿灯;
' {+ k+ V8 i5 U! m sbit lddx=P0^1;//东西方向绿灯;' r2 I9 s" y' }! j
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
. n: |& O, N" B1 B 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9
# n. j2 E/ a; `8 Q% T" k' B6 G9 y uchar num=30;num2,shi,ge;7 j0 q" o( T" h1 Q* w
8 { ]. K5 [+ y! d7 b, @
6 y& ]( [7 ?: ~; n* c( B
9 W- R7 {8 i$ P6 d8 G% N" C4 H8 j f7 {. z8 N6 ^! u2 v2 @0 e
7 E+ Q N) l: a
9 f; o u5 F0 `4 I3 r
void delayms(xms) //延时函数x毫秒函数
* p# S L1 X$ ] {, P6 r4 |7 Y0 q' z- n5 N* h
uint i,j;& U; H7 w1 _9 i& b, p% z5 ^, A, c" C
for(i=xms;i>0;i--)2 T( T) x/ Q; _& F1 q
for(j=110;j>0;j--);
7 o Z2 O( J7 V7 o* [) K }
+ p& J* ^- N# ~5 ?7 w# e0 b
( P5 l2 ]' w1 q1 n7 ~; F
, R4 n/ B6 W( S0 @void display(uchar shi,uchar ge) //南北数码管显示函数
. ?/ q; j3 ~* |/ Y, }5 A) G{
9 X' p g/ H- l0 e& P! R1 n$ ^
! p F$ E+ D* u: W/ N : p6 P5 f" v1 F3 H( U4 q" U1 T
8 H" [4 P# P3 V$ E4 ]4 W' L; s
" ~, ~$ W( J% b5 m! t P1=table[shi];# ?5 Y) p; D9 {
nbp1=0; //选中南北方向数码管第一位
1 t- v9 Z0 E4 b- l7 _1 L delayms(3);) V% T/ `( u# T `+ a' i
nbp1=1; //关闭南北方向数码管第一位
' a& J7 D" V! I h P1=table[ge];
, t$ U* A, G4 n nbp2=0; //选中南北第二位$ [. [% w) g# x t
delayms(3);
8 V, N: e$ _* v5 N% Q* L% M nbp2=1; //关闭南北方向数码管第二位
+ A' H9 H/ ~6 `0 H- X
' k {( y3 E) A8 ^. m. Y7 Z
' F" f8 @+ l% m/ y& \$ v7 w1 r4 R! h8 c3 k. I0 z8 {& {
- t- l7 F( Y8 \4 p, H; F P2=table[shi];! Y u8 c) X7 V( y5 F6 I, M
dxp1=0; //选中南北方向数码管第一位5 ]9 r1 I* P5 f
delayms(3);
: d' c. R" y4 b" u' A- p dxp1=1; //关闭南北方向数码管第一位
W% U _8 I% i m! x' l8 r P2=table[ge];: s6 M: V. j! M7 o) J
dxp2=0; //选中南北第二位
3 I. L' ?6 C2 a; s% I, x delayms(3);
; G) {5 i7 R! D& }6 P dxp2=1; % a) y" e2 t0 k" g$ u! o
}* x2 ?( n' v) p3 H6 I# K& {4 J, F
8 ^6 N; @" t' }3 c4 ^7 z0 g4 V- J% x& Q1 I
void T1_time()interrupt 3 //定时器1中断函数6 q+ ]" y" m; h; ?, ^" w
{ 0 g h" u$ V7 @9 \
TH1=(65536-45872)/256;
2 N. [2 F* h& B/ L TL1=(65536-45872)%256;" n# o0 @6 q, t! g
num2++; & E% F/ U! \. [
if(num2==20)* h. v7 A ^9 N/ d! _0 J5 P
{+ F1 z6 X! W6 v( z N' \
num2=0; //说明计时够一秒0 C: I4 B4 Y* P# ?
num--; E- |2 }5 M: D1 a# N$ C3 N
if(num==0). l6 ^1 R; o: n, |6 c; {6 u/ v9 ?6 K
{ 0 R0 u; c7 w+ e& ~+ ~$ J( e4 n
lddx=~lddx; : i1 {; K% i, \
hdnb=~hdnb; 3 S" }& W7 U; f$ S* o. G. |
ldnb=~ldnb;: c) G( B# d8 b. ?, z
hddx=~hddx;
. V D x# D; Q. u( ~* @ num=30;
0 e, y! Z( B0 N1 v }; ]' X7 r& ?4 T& [0 T/ k7 c
, L# p( p& N7 L# ^/ {
, d+ S$ V# p' z* J h8 L; M
}* l6 `1 Y8 a7 v6 _1 H% s
shi=num/10;
. M* I0 \ f. _% C8 o2 s5 G ge=num%10;
# j- f7 N+ h$ g8 q5 r* j}$ C5 r! C; y/ r: e6 q
1 S6 B% e" J# d$ \- q3 I1 Z# H* g( A7 S$ A# N, |. J. m
. Y, Y% F8 p0 M" ~( f) h
9 C/ K+ R" B! m/ Gvoid main() //主函数% ^' }& b _2 K7 ^5 S
{
. Q& l- p% C- r2 E6 E TMOD=0x10;
. T2 r2 `4 L+ g, W9 o% W; z/ r/ D" n TH1=(65536-45872)/256;
' Z3 |* Y; Z5 N- z X j TL1=(65536-45872)%256;
: C$ n. z( q- v5 ~- p9 h' |, W9 Y# F l EA=1;) v1 Z; k" K! H8 s, z' W
ET1=1;
$ c9 H$ i1 L& w. t B" ^: Q9 }6 Z TR1=1;6 i6 n* |0 ^' s! H
lddx=0; //东西方向绿灯亮2 q4 S6 r! v) }2 f. q: R
hdnb=0; //南北方向红灯亮
9 @5 [( @& {0 P" s+ W. D% X ldnb=1;$ P' B6 y7 S' P2 _) q2 w
hddx=1;' E1 T4 C: S4 J; l7 E
0 `) U) m3 X* F, p2 g2 R9 |! n, M6 a! c
0 x6 _1 F5 K. t& Y% s' d4 R P1=0x00;3 o9 X, L- @6 b9 r4 m) A
P2=0x00;* g0 L& ~+ z! k3 o: c+ j
nbp1=1;9 ?% ]3 I* [8 N, W
dxp1=1;
7 w9 A- a: I/ B" e2 u dxp2=1;9 k) u8 g2 K3 @' O
nbp2=1;
8 O& [7 F# |* R7 A8 I) V5 u, _; p# e2 ^3 J+ o+ ~1 ?
7 E# U0 \2 Z1 m8 U7 j; V( D# x0 |
while(1)$ h4 W/ |+ n# w: k8 O# A
{% x; i$ @9 W, u9 b. |
display(shi,ge);: }" U2 q* u! L
}
( x+ n0 F+ J$ h }& i1 i0 `: z* U0 N/ u" @( v! X
6 M* c3 l4 @$ D1 |
基于51单片机交通灯设计下载:
( Y& N2 n3 M2 x: z; G
# D0 @3 ]6 r$ J( ]8 Z
* c8 ~: P3 S, a4 ]0 W |
|