|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计0 ~$ F; w; L7 g% ]2 y1 F+ Q1 F0 L
- x1 z0 h- @! P& N, @2 b3 a" P8 w! s' l* z0 u! I- I; s$ m
交通灯单片机程序:
/ m. Y$ Y/ }( w7 w& H2 P #include<reg52.h>/ G0 R0 e3 @( A
#include<bstv51.h>" m, \7 l& G4 M% U J2 A
#define uchar unsigned char. o& \2 d6 I) u k7 k9 I& |
#define uint unsigned int5 f) k# h" x X+ F
9 d4 M1 z0 \1 w- F& c* P$ Z; e1 O& y
sbit nbp1=P0^4;//南北方向数码管第一位;
3 d( t+ H0 s# k: e sbit nbp2=P0^5;//南北方向数码管第二位;
O- B: Y& j Y5 S3 \2 L sbit dxp1=P0^6;//东西方向数码管第一位;
4 s9 b7 o3 E% d0 C sbit dxp2=P0^7;//东西方向数码管第二位;
) d* V# y7 h% R1 F7 M9 Q/ C
. M, b" s0 o& { N. s
8 f# q: c, `, ]& J sbit hdnb=P0^2;//南北方向红灯;& n( |) J9 n" ~
sbit hddx=P0^0;//东西方向红灯;) @. d% C2 o4 D# D' A; }
sbit ldnb=P0^3;//南北方向绿灯;* \" K; _5 M3 P
sbit lddx=P0^1;//东西方向绿灯;7 J \; U6 m9 F! W+ W, B9 _8 G9 T
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,+ X$ y a2 G) F2 J4 y8 z
0x6d,0x7d,0x07,0x7f,0x6f}; //0-9, r+ J- q t+ ?4 S. F6 X# c
uchar num=30;num2,shi,ge;! P( A$ e9 v- Q5 p! D$ d1 z: C
- ?1 _: [* E5 U* }
* Q3 ~6 y$ e+ p' c
0 f; X, `( ~4 r
: S+ t, e& G6 j$ J; a$ `* y. @2 L4 F
+ C9 Z& }) d1 c6 u/ f) s9 L& q
# O. f; Q1 c$ L void delayms(xms) //延时函数x毫秒函数6 h E n2 R1 N, [: j4 ^
{
& w1 b9 @9 d( \4 r" {! H" B uint i,j;
0 G0 r5 w' K9 w9 U! G, v for(i=xms;i>0;i--)3 v+ t2 Y2 l& J3 v2 n- c/ w
for(j=110;j>0;j--);5 A( J& L+ O1 E1 G+ B8 D4 q+ j
}2 B& |$ m: k) ~( T* M
" H+ A& Z, \9 Y7 \3 S4 K
( j6 Z( Y/ d- _ `7 e
void display(uchar shi,uchar ge) //南北数码管显示函数
2 t& v* w( G3 D( g% r{ 6 y0 b. `( }. A! P+ p+ ^- |4 k
% s# ?( A) S! i- ` 9 C. |" h8 S+ z8 X$ b8 y$ m8 `' I
h, I$ X7 c8 I1 l
8 t+ L+ A6 X. |3 J! a% e P1=table[shi];
3 T) C) \( |6 j: d) {* x nbp1=0; //选中南北方向数码管第一位
8 P( p) h' D6 I! F7 `3 u1 d$ I delayms(3);
- G" L) W ^0 y1 u; Y nbp1=1; //关闭南北方向数码管第一位
, Y3 [& o. |0 T1 Y: Y P1=table[ge];' B0 b: Q! X+ K. y8 ?% r% g
nbp2=0; //选中南北第二位
; a5 [" D* P" Y2 |) n delayms(3);
7 n" N' w6 W: f$ m- { nbp2=1; //关闭南北方向数码管第二位
0 w9 ^4 ?6 }9 s+ p( R+ P, `+ Z6 L
1 |8 M4 t9 b' J6 {) R6 D" u. g0 g0 c. s( i: a2 t: F* S
2 ~8 U' z6 L6 N6 d( N! l9 d
P2=table[shi];
2 q2 ~2 E! a5 L4 r7 Z dxp1=0; //选中南北方向数码管第一位
7 L0 ~. m, c$ Z: Y- y9 K# I! `" i/ ^2 { delayms(3);1 X, f7 K# V8 \
dxp1=1; //关闭南北方向数码管第一位( D9 @) H N1 V
P2=table[ge];
% q1 D( W9 O3 j7 F. Y2 a dxp2=0; //选中南北第二位
8 j+ Q9 W* h: u; v" H, ~% i" S# Q" z" y6 W delayms(3);
# x! y" z! b8 n& ]+ V* g: p% w6 z dxp2=1; 7 n9 G7 Y$ [7 P. v
}5 A6 A9 T. d/ |- Q. X
% K" p' Q5 |' M- e4 s& k" [+ J2 p
9 M `' M) }" zvoid T1_time()interrupt 3 //定时器1中断函数7 e% w2 r$ z+ q
{
! V$ _, G1 ^8 C! l' O TH1=(65536-45872)/256;
& a. O @ S0 t0 N/ R TL1=(65536-45872)%256;% I8 u* X6 C1 k+ s- Y. Z% x) L6 j
num2++;
3 n& a P( O( D- O. H) f if(num2==20)% F! x. x9 S& y& S O0 l& ? C
{3 b( M2 G$ O( _0 X( J/ Y
num2=0; //说明计时够一秒, j' s" h* `; x/ h" G
num--;
. a1 M/ v* z( M( F3 l& q$ K if(num==0)
$ j+ {9 |$ @! [0 F% ~$ g7 u {
8 [2 t/ R6 C# | lddx=~lddx;
+ r9 O1 ~! r/ v3 S4 k6 b3 d hdnb=~hdnb;
6 T0 R- l$ P9 A( b) U( S0 P0 G ldnb=~ldnb;
: F3 N+ S/ Y8 d* n' E& _ hddx=~hddx;
: U5 `- \, Z6 _' q: ? num=30;
9 Z1 n+ J! ^8 Q }
- C: \& Q& k2 I# ~$ W0 C; v$ l6 n8 J, d' u+ C
( K1 v1 I, ]7 |, _: P }0 N( Z- X9 `* U0 _
shi=num/10;, S! G# _- z5 N ?; B) f+ s
ge=num%10;
& k7 z [' h/ S4 p}- }' `2 Z- S; u( Y' t% l" M9 |1 h/ |
; V( A- n* b5 \, `/ ~7 j' f
# d* i4 S* N; R( q" i/ @& t* l1 Y: j
; U2 h) V& b8 D: L& G# @; n
void main() //主函数 L0 x1 ~, f$ m: V9 ]9 i
{
, O# R* A- v' r* d TMOD=0x10;: P j8 c& X- v2 e& r: C9 G
TH1=(65536-45872)/256;
4 @5 N. r O4 w TL1=(65536-45872)%256;
3 Y) H1 y: ^2 t9 Y7 b; T EA=1;+ Y( ~6 G* x. s$ U
ET1=1;
$ F. b4 S( G; M* b$ J+ v. ]4 H TR1=1;
+ {) D @. e* ]+ H' ~8 @ lddx=0; //东西方向绿灯亮! L/ E4 G% j' ]. e9 _$ b
hdnb=0; //南北方向红灯亮
. ~7 L! i7 Y9 Q/ _ ldnb=1;. j4 l# g6 d: g$ O+ h- T
hddx=1;
0 j$ k& _: l6 p8 M" k' i- i4 ? F& q
! A6 ?6 D+ _9 y: i0 T" r P1=0x00;2 u1 v6 k- ? {: r+ k8 X
P2=0x00;
" @: y/ v$ R1 `9 @) z, C6 i# | nbp1=1;/ ^8 K; [" L) [, l
dxp1=1;$ U I: V9 w1 I- d/ k! w
dxp2=1;% U4 c5 D4 y9 W3 U3 P4 x$ ]
nbp2=1;
) [, a1 c' G" U6 {+ ]0 H2 N* o
: Y3 R2 E' m' s; h" f6 X c; X; Y% y+ E, _5 F* v8 m
while(1)) `9 {3 b, U8 \: P
{
+ D( ^6 ~. ~ I" g' h+ |& ^ display(shi,ge);0 B+ U- B& _* C2 s
}, h% B5 ^. g* X' n! h0 U$ Q" T
}4 X; k9 J# U* e: i, R; {6 h
+ X# t3 ?4 R0 n; t: F# M X* f
基于51单片机交通灯设计下载:
5 f6 m2 f( B/ x$ ]0 P
4 \9 ^5 N9 ?5 t& @2 \* J8 y
* [- p: O2 d) m8 F( s: W4 [7 L |
|