|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计- x4 P$ k1 j: v
% j0 k, I( z! R. L6 l2 G( a* N: Z9 |2 D
交通灯单片机程序: ?4 ^9 a+ j4 Y8 j9 v2 R, B
#include<reg52.h>
+ V) ?% s; u8 r/ e! v5 E7 _+ p3 n2 B #include<bstv51.h>
, n( G, [% C/ U, d #define uchar unsigned char
9 @* ?7 p5 p- h& i #define uint unsigned int" Q: A. d: {3 |# }3 F; Y
. I2 P4 B& [5 o" r# a: v
sbit nbp1=P0^4;//南北方向数码管第一位;
2 _7 t4 O) m2 I5 e$ o2 ~# B# [ sbit nbp2=P0^5;//南北方向数码管第二位;
0 j! k: F- F/ n. @. |! R2 ^ [8 m: a sbit dxp1=P0^6;//东西方向数码管第一位;7 q% |8 r8 ?3 [4 d5 m* X7 I
sbit dxp2=P0^7;//东西方向数码管第二位;
6 h# o6 Y& Z' ~4 f l" M; b
+ Y0 w8 q: h4 _; _' I
6 I0 ]8 G* w# @4 A p5 R sbit hdnb=P0^2;//南北方向红灯;! r2 j; U6 Z1 ~$ P0 b6 \( Z. e/ H
sbit hddx=P0^0;//东西方向红灯;
- ^9 O7 `2 A4 M, |* @6 m sbit ldnb=P0^3;//南北方向绿灯;
& `0 r6 d" [) G- w3 |* j sbit lddx=P0^1;//东西方向绿灯;5 J. r9 [# N; k& j, G; C
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
3 I1 [( ]) c" I! @& n) Y 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9
/ b& i- ?' W5 A3 F) H: ?3 q uchar num=30;num2,shi,ge;& |$ y9 ]+ }* c7 Z; q" D6 N: f/ O
9 Q5 _! `$ Q. O4 U j) r( t
+ l1 B% o* j, q- {) q S1 c% G" ]4 R# f$ F+ o: P
8 Q; V, W% e/ z5 ^
6 o! J. Y3 y* y+ v, v
0 r; z$ k1 _9 x% }" p6 h
void delayms(xms) //延时函数x毫秒函数
& n: P+ {, i" P0 G( F- g {: H1 n4 u& n6 W: m8 @
uint i,j;; z. P7 S$ v. T2 @; m/ L
for(i=xms;i>0;i--)
a( N- }/ |2 { for(j=110;j>0;j--);7 V* _, F7 K- J7 v
}- I$ d0 N# Y: `/ l' e
* K; c) n6 r" S
, Y: Y' F9 I, ^# P: }void display(uchar shi,uchar ge) //南北数码管显示函数4 ~7 u+ V2 K2 {# Q
{
6 w. ]2 H& _) R. a4 P3 Q
$ T. B& u& F' }; U; V$ ^- E
8 |0 z Z0 s d; y1 G/ F
) u) i y p- o6 `
! `3 x) z6 p3 J$ m% x P1=table[shi];
4 S) \3 Z3 R! c0 [" t nbp1=0; //选中南北方向数码管第一位, o1 w |+ D5 F7 X- l
delayms(3);! F+ K7 w1 F/ h/ l9 f8 k
nbp1=1; //关闭南北方向数码管第一位
5 p. Q* w2 y- J) I P1=table[ge];
( k4 K2 X- N$ ?/ R1 T; Z. @ nbp2=0; //选中南北第二位; c4 k7 J# g0 l5 S) ?
delayms(3);: K* |# `- n4 m5 N
nbp2=1; //关闭南北方向数码管第二位
+ \( S" k7 E, t, B5 H5 D4 g
: K. ^& w6 d2 T1 S5 r
% q( q% V; T& p6 I! D/ Q9 y: L6 R
) ~5 z) h; K. ?
) W% X" V+ }8 X# l1 |* X% T9 \+ A* E P2=table[shi];
) `! a( Y; L4 G( T# g dxp1=0; //选中南北方向数码管第一位3 r5 X3 r9 @2 d' p1 B. o
delayms(3);% W' ~# G+ W/ K! R! |% w5 M
dxp1=1; //关闭南北方向数码管第一位, S- }5 t0 j. g: {2 r% x6 L! S
P2=table[ge];. u7 r) P5 s* k( B* {, b; L
dxp2=0; //选中南北第二位. ?. v2 R8 l! I7 i7 k$ L+ C$ z/ v R
delayms(3);
# P, `. z$ L1 F$ R% W& Y i dxp2=1; ( G1 @ }9 I4 g. d$ U; v
}; B! e5 J6 {' ^5 E+ T' V7 A$ l! \
: F0 z j! j, {5 d) E+ U* U, F2 ]: e! M- Y
+ D1 r* H6 u. I3 d: w$ jvoid T1_time()interrupt 3 //定时器1中断函数+ B4 H- g% s2 c
{ 8 b8 @; j& S8 }+ b6 y
TH1=(65536-45872)/256;
! g" A( f$ @2 r' k/ f' ` h. V TL1=(65536-45872)%256;) J! D( [% Z1 n( u" [
num2++; % ^8 e8 x, W+ c
if(num2==20)/ X$ K8 l. t' @( v: x+ u
{
" \ h' n( w& }) K- m; w num2=0; //说明计时够一秒
/ L" K5 A5 k7 L) U( E num--;
2 @( e, D. [$ g" @1 @9 q: R if(num==0)' `# k3 O8 {( ~% ^
{ 2 E. S3 Y8 w! [ N2 j# \3 j( L5 ]
lddx=~lddx; G5 u$ B, @* q4 \7 E' E- l
hdnb=~hdnb; # g# u, e6 G3 O+ q* L( L! P% d6 c6 A
ldnb=~ldnb;
* F1 P- @- u8 Y4 D( e/ d hddx=~hddx;
6 G: F+ s& O. Y num=30;8 N2 V! ~9 W! W# R
}
( n/ c& ?3 B" ?8 _# E, e j1 |0 f1 u+ \
( H3 Q# j: ?/ f$ f; ?1 I- ^ }
) c: R! T& X/ O {/ I' c: X7 ?1 O shi=num/10;
3 X1 c- {* K) N. U, }% v& Z ge=num%10;$ m: v5 J; o4 M0 Z5 O8 i" {* K
}( u5 O, e* F; ?9 _$ O
) B) s* g& {! P9 _8 v J7 d4 K1 }
/ N, N! ~ R( Z- H1 Q; O- ^0 ^! f" V8 s5 j& f
( |/ N4 g2 b) ~! \void main() //主函数
5 x$ R+ J+ g) r, Y- m- R$ K: m/ Q {
( o& a" j6 P9 T& _ TMOD=0x10;( w$ i- o, f7 l9 o' |
TH1=(65536-45872)/256;
+ v" j0 G2 L- I TL1=(65536-45872)%256;
, s# J5 V& F W9 }8 i& I" b3 u/ l EA=1;% f. |7 [6 O7 f8 r! c$ D6 R/ L, ^
ET1=1;0 B( e1 G2 f0 C
TR1=1;$ m4 K. i) V/ p( ]1 Q
lddx=0; //东西方向绿灯亮8 `3 y# f" |$ u
hdnb=0; //南北方向红灯亮
3 U4 X4 v% B) C% m' V, T ldnb=1;
9 n* D" X9 |! Q \5 P0 y' P* `. U hddx=1;4 Z* f2 K1 z; T3 w- f h' J& O' z
7 K3 p7 A0 S) S B! C8 j; H2 H! u
2 A4 D L" v) p# p P1=0x00;
5 _5 N3 g" ~ m- p( z, ]# E" h4 j4 Z P2=0x00;8 `/ o" T0 U/ C/ z: M6 V2 e0 h
nbp1=1;# {$ x; R' x+ y V
dxp1=1;5 p/ y) S) t# O( U* `
dxp2=1;
. E4 V8 k& Y; T* L5 I nbp2=1;
6 w: i; z5 O. K( |) h( X8 {* j
4 w5 x7 _6 K! e6 P6 `, Q! C: t/ @5 V
while(1)
5 L8 G5 a3 X% l9 | {8 O! S( u# h. l
display(shi,ge);
, B! Q8 c* y- O }
. _) _( I. n' p M. }: z* h+ D7 z }
W/ T$ @$ g* s! d7 r. b$ p; T+ z. L
U9 X/ g" k% Y# L) O8 s7 `基于51单片机交通灯设计下载:- z/ F1 E3 _% z# q# c
9 {- k E" P& |! E. g% I" G" x& D1 v( }6 {$ G
|
|