|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计
: R) z4 j2 w$ J9 |- ?. U) K5 O% d7 m& g. _
& U8 M+ l* k. w, a5 ]( ~& R3 [2 d, f
交通灯单片机程序:+ i! W! V7 ]6 r) r0 ]/ X
#include<reg52.h># ]. @# z8 b( @; ?4 H; S' l
#include<bstv51.h>. f6 k* ^7 j( s+ B' [
#define uchar unsigned char
. M8 u: ?0 Z9 u; e- d #define uint unsigned int
; E9 l+ W' \2 N6 O4 P
0 O5 B% @8 i- T0 ? sbit nbp1=P0^4;//南北方向数码管第一位;
. {! f, q9 l0 g' g2 G9 C+ T sbit nbp2=P0^5;//南北方向数码管第二位;- c! { x( F+ q: K5 S& B
sbit dxp1=P0^6;//东西方向数码管第一位;
" L% M3 ]7 Y' U/ @ sbit dxp2=P0^7;//东西方向数码管第二位;# W: f- [% Y7 ~( \# A9 |
: V2 K& U# {) @/ x# J4 x
# T0 U/ U* G- m. l
sbit hdnb=P0^2;//南北方向红灯;0 _5 _. {0 a8 y% O( m( \' t
sbit hddx=P0^0;//东西方向红灯;0 n4 U: h7 H, L4 |
sbit ldnb=P0^3;//南北方向绿灯;* W. O7 {9 d" S* V
sbit lddx=P0^1;//东西方向绿灯;
/ p: k W' i/ s* |+ X7 F4 U, A4 ]& g uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
' v. P D4 X z3 D 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9
8 b* ~) g$ k# `+ A8 |' f# ~ uchar num=30;num2,shi,ge;
; d0 @1 x0 t( p: s* E! l2 ?0 i: p$ m
% @' v8 l" x6 ~8 p+ r
% {0 A g+ c1 a4 p7 R
4 k4 s4 c: l& z6 C8 \8 C
5 M, W3 y) m6 [, x. S Y. {# |" E/ B: {/ r# d
void delayms(xms) //延时函数x毫秒函数
1 _7 j( G4 ]' `8 A3 r) c {
# O3 S5 D2 l& o uint i,j;
& s5 X& p' ?6 | for(i=xms;i>0;i--)
7 ?+ G, U" J- C/ Q/ X1 {, Y* R, h2 t for(j=110;j>0;j--);& B# I: {" M, x9 q" U9 C m% U
}0 e, U7 u& @' U3 V! P
8 w! z& c+ x0 `' B" X N' M i7 K( I- h( G& i2 A- w
void display(uchar shi,uchar ge) //南北数码管显示函数: e! `3 C$ J, |& y7 s8 X: |
{
2 A; w! g& H* } 4 \) ~: Y, q! M% U) k0 b4 P E
/ f' Q: F }' p1 f
/ k8 o: \5 ]5 }" n: U3 T. j2 U+ S4 v4 _2 \
P1=table[shi];2 p7 |+ I \, s D
nbp1=0; //选中南北方向数码管第一位
! Z* o" o3 t/ S% U4 l1 ?* l delayms(3);$ l+ Z) } F1 z3 e& U3 t- U
nbp1=1; //关闭南北方向数码管第一位 h- N [9 u- x4 P) |$ |; k2 Q# A
P1=table[ge];- N3 G9 g }' K2 n( @6 ~; O
nbp2=0; //选中南北第二位/ ~; U8 l, L9 d+ G! u0 }! Y
delayms(3);
9 S- `9 ]* D# F nbp2=1; //关闭南北方向数码管第二位, }& D0 u/ ]" u" I3 H# [# E
: i- B; r( n* S7 @. i0 @
) Z! g. L5 b% T& n+ K9 K5 @* X
) o0 j9 ?: s. [/ O1 a7 ^. T/ f8 v
P2=table[shi];" w9 d. _/ J u( Y* N$ f
dxp1=0; //选中南北方向数码管第一位
# R. A' g7 x, p" { delayms(3);9 N- `# d; F/ J$ z- B
dxp1=1; //关闭南北方向数码管第一位
. y9 y/ a: d+ _: g* R P2=table[ge];8 E5 X* b# l9 y3 `; Y
dxp2=0; //选中南北第二位8 d: m# F; n6 J6 _9 d
delayms(3);
2 Q+ o/ ^; g1 r H/ G dxp2=1;
9 v5 R O0 s6 O+ Y}
1 J9 P) n% Y4 C* T' p9 b' b( u: r! K/ s
2 L6 k2 S8 S$ l$ dvoid T1_time()interrupt 3 //定时器1中断函数# P9 ]5 Y. }, l; j- Q% \2 a! }
{ $ w9 U. U) m$ E& B1 R- f! m
TH1=(65536-45872)/256;
X6 i q; k, v1 a TL1=(65536-45872)%256;
4 b' ^* s) K% F$ ^0 u9 V5 S- y num2++; + R( B$ H; e" a, U5 ~
if(num2==20)# [3 C6 H1 C# \; G
{
5 c* `% F' w' \7 J, L9 w4 f/ g3 T num2=0; //说明计时够一秒
7 L" M( a# u% W& v! N num--;
! q" o9 z+ R/ y% M( h+ g* _( m if(num==0)
/ {7 i! V4 X, b1 l; @8 Q% { {
. Z$ C3 u8 M4 S- d lddx=~lddx;
, `9 Z: ~) _, d% p2 X hdnb=~hdnb; O5 i7 f' d0 V. `# D1 Y B/ P, S
ldnb=~ldnb;
" v4 p4 L4 s) v( g0 G3 ^: ], h7 z hddx=~hddx;
2 D& S; O; B; F* x# L9 w; g( L! r num=30;9 F3 n: [2 v, `
}, p' f9 O) @- j; O
- a" r( E$ }2 w6 ? h4 b1 d
% E$ o$ ]3 b! }/ a2 G; _% B" | }
6 a9 c! l* W4 X8 ^( i* O* E7 b shi=num/10;
5 |5 m. d& K+ t/ P$ Q ge=num%10;
% I& g0 s, k! k, y9 `. D}1 x% f: w+ G: z" {2 W! r
" b( S7 @, W% Z( c- k
* S1 V+ a5 h# ^% \ m1 q. t) I" B
1 X" P- K7 i0 [+ V3 i
void main() //主函数" y( m: ~4 X4 J1 B8 z4 {+ U
{' f. y7 ^4 q4 v2 j3 N, M1 q
TMOD=0x10;
- g: l4 E1 j- j5 A TH1=(65536-45872)/256;
! X2 M0 o3 v& }2 e0 ] TL1=(65536-45872)%256;
, ~: J0 w/ u# e7 S: \ EA=1;
& n. X5 d6 `. G- b ET1=1;7 P& x0 m) X. b
TR1=1;: ^& H5 A* }9 R* Z
lddx=0; //东西方向绿灯亮8 e& ^& }: @" w g: R% Q
hdnb=0; //南北方向红灯亮' `* ?1 y5 D6 Z4 N& ~2 \
ldnb=1;0 t b, L# ^; o3 {
hddx=1;
9 h5 C6 d8 Q9 X9 I+ W- c7 b/ m0 h( z" U1 G; X5 f
2 ~2 r3 l$ o4 ] P1=0x00;( k5 X1 ~1 r# j3 \- \: ]
P2=0x00;
5 _! v3 S' B% _- [% b nbp1=1;* ^+ y8 T$ d1 M; M; K
dxp1=1;1 P2 @. ^0 b2 b5 z* @
dxp2=1;
1 n0 W# R c f; X* R nbp2=1;
) }* a c& M+ H: h- D& [
$ U/ q9 ]# d) u. J
$ S0 @* t; J+ G. F1 L( b while(1)- X# A8 B3 x" I5 l1 R) e1 C7 m
{
: |( e2 ?0 D( \- T Y8 C8 S display(shi,ge);
1 N/ {; b' H: u; R }: z+ s- y1 T- |+ c4 }
}8 N% V# P$ X* t# j$ Z+ W
8 d: o/ E/ T4 B
基于51单片机交通灯设计下载:3 y8 p+ l1 @* `0 E c _
9 g6 n2 A' ~+ Z& ^( g3 n9 }4 L. a$ u5 l5 _0 z! j8 M
|
|