|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于51单片机交通灯程序设计% E+ ?0 f1 j: l4 A: A
5 n/ E( I* c7 K, Q* h$ |+ b
: ?8 a- G' x* {' {! |, [
交通灯单片机程序:
( J3 j- C# q: k1 f7 ?! l #include<reg52.h>, G& j9 @* v! V( c+ z: |3 r ^
#include<bstv51.h>- E; p5 S' @5 x: {: E
#define uchar unsigned char# n% G: z# \1 V/ b
#define uint unsigned int/ U" o# `/ A. l2 }$ Y2 c3 P
+ {& F- e- a& _) I+ X sbit nbp1=P0^4;//南北方向数码管第一位;
4 E8 b" d( d$ D5 j0 w/ X. x sbit nbp2=P0^5;//南北方向数码管第二位;
9 w, p1 ~* r2 ?! p' Y0 U3 O- m# A sbit dxp1=P0^6;//东西方向数码管第一位;0 k* B1 ]; q, ` q( ~8 D; [
sbit dxp2=P0^7;//东西方向数码管第二位;" c7 k( P7 D2 p8 X; n7 Z
6 r! I- U- \+ V
+ `) ?& t2 V. | sbit hdnb=P0^2;//南北方向红灯;! r) X" R3 ^: K, D% f' `) b& u
sbit hddx=P0^0;//东西方向红灯;
1 ] W( G- B) j# }5 z3 V# @! H sbit ldnb=P0^3;//南北方向绿灯;
* x/ _; F6 D. m: h sbit lddx=P0^1;//东西方向绿灯;/ N6 r: T2 ~9 g
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
; k6 x: n3 m% Q' r' ?( `" ^ H 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9( e$ U6 O1 M, a% y6 q! Q
uchar num=30;num2,shi,ge;; v6 Z& M' \9 t3 f
. G6 \) M7 ~- Q* f! C) @3 m
, _4 a$ S, A% C% a, h
7 ?$ _# @ N+ G! p- B; C
; \4 _# f5 e' k/ a; i& C# S9 U5 E* g t& L# \
5 u7 K4 G/ M3 e) }7 s9 G void delayms(xms) //延时函数x毫秒函数/ \" \) T+ T @; ] [
{
2 W' G5 N3 Y/ _) `" C) z" s! _* a uint i,j;
3 l% }8 \% |! q5 m for(i=xms;i>0;i--)
$ L. I) \1 z/ w+ m0 ? for(j=110;j>0;j--);' Z, g9 ?* g4 y" y
}6 C$ W7 `6 @, C! h+ e. v; {
! Q# E- e" t- D0 w! M6 O( p
( Q3 w. V' x# `
void display(uchar shi,uchar ge) //南北数码管显示函数
, P1 w6 C7 y8 w4 q: o# z{ ' u4 s5 \! R' ?% h& E* y6 |6 m
# ^- i2 x% w$ Z W" G9 b# G% w _4 O
8 s8 {4 j6 j& L! C& L
6 J$ n( s# A, I% ^* Z
% l3 e: j/ X9 U- t, ]2 Y
P1=table[shi];( t+ ]5 s J& s1 ~, {/ I
nbp1=0; //选中南北方向数码管第一位
& R: o$ i9 W3 O- {) W4 T1 U delayms(3);
2 Z2 }3 Q& i& Y* T& ~ nbp1=1; //关闭南北方向数码管第一位
1 I6 G% U1 h% p8 U6 s P1=table[ge];# Y% M o5 O. k' H. W# |' x& m
nbp2=0; //选中南北第二位
U* a) f# h# A& y3 L5 E, H) W delayms(3);
& X2 l8 d% c4 ?. V( D* ?0 g nbp2=1; //关闭南北方向数码管第二位
- ?1 P9 a i7 G7 l8 F% x
( U2 U, F3 f% C; z C
; `. X$ h b' L3 w! V+ i9 C" E
! Y4 |" T3 v$ H
9 q6 `/ ?3 r8 j1 i# r U P2=table[shi];+ P9 [( f2 n5 ]# Z
dxp1=0; //选中南北方向数码管第一位
5 o9 b3 x: k# i) o1 z! O% S delayms(3);' V, `/ Q2 y: O" Q
dxp1=1; //关闭南北方向数码管第一位7 p' q0 A- [" p( a: ^5 q
P2=table[ge];, u9 `6 D9 S2 G( g$ n
dxp2=0; //选中南北第二位2 V& `% J) S; F. `5 X3 g2 Q5 A+ U: @
delayms(3);
5 \ b, K) K; e& [$ D dxp2=1;
. T" ~- Q" T& p1 m7 j}
: [8 f+ _! k) x8 Z- m. c! F6 f1 ^6 D5 w' A
% i" c! \& b; i7 }
void T1_time()interrupt 3 //定时器1中断函数' l7 F" L# p7 [7 B
{ ) j; W9 R0 \2 y8 F
TH1=(65536-45872)/256;
' t, [# ^6 d5 S3 m' J TL1=(65536-45872)%256;! e" \1 O8 E" {
num2++;
. l2 w& g0 @( C9 F7 h& |; l% K/ S- H if(num2==20)' Y. A d! X9 \ u
{! r0 J& Z L4 J$ J
num2=0; //说明计时够一秒
. ^# h: ~) o6 Y% A, Y& E num--;
% ^/ ~: Z& ~; H if(num==0); X$ s1 f. q0 f y$ ?
{
! j1 ^9 B3 e# k q; }: p lddx=~lddx; ( }: [) v5 Y+ q8 o) l
hdnb=~hdnb; 3 j( N1 `' h" h0 b4 ^, D# h
ldnb=~ldnb;/ G" q2 A* x" k
hddx=~hddx;
" Y. c& F1 A8 n( w2 ~. X num=30;
; r8 W+ I3 v7 @) Q" A0 f/ b& F; ~$ m }
+ u+ R6 ^4 p1 @
( `4 @# c5 `+ z, w5 ]6 L5 G
6 q+ D( H ~/ n" g }
+ T& x: U" J7 J6 \ shi=num/10;
+ S' s% q! a+ B' \/ a ge=num%10;
3 h4 E! L, [) z3 ^& e% |6 y# T}
1 ?2 N) \3 H1 `8 _$ x. I1 S6 x( \, \! |5 C! c( w+ @- @/ d; J
Z0 P. @8 d P4 e
. |9 \8 m5 L E G$ F$ l& V% O( k! O2 R4 }
void main() //主函数
( j3 }( o+ |7 v( v: h9 o" U {
. J) @( ?9 U9 ^2 p) @. T; y TMOD=0x10;
% N6 }/ \9 ]( e, B T" B" O TH1=(65536-45872)/256;
0 y# `( ?, I: j/ e7 k TL1=(65536-45872)%256;* o# {4 E8 y7 X- P( l. ]9 V
EA=1;
( B6 e0 N3 p- H# |3 z ET1=1;5 B& U6 @0 R+ b1 i1 F
TR1=1;
0 J# J0 q) {3 L, Y* ~ lddx=0; //东西方向绿灯亮
$ R2 B+ e" g7 E) X+ z$ j2 T hdnb=0; //南北方向红灯亮8 s7 X/ v9 \: k5 V5 U+ L* S j+ U; \2 d6 Z
ldnb=1;0 r: X7 ], V1 P' m
hddx=1;; v+ Q& z; i ^2 Z" Z
4 R9 _& ^9 S! g
/ K3 F4 A$ Z3 a+ z
P1=0x00;
, ]$ S* a$ T' h5 S$ ^ P2=0x00;
5 N0 \% Z) Y( r3 c# B9 Z nbp1=1;
3 {: I, S. o* E; }9 Z0 t% U dxp1=1;) H6 R) r% p5 I3 Z1 P. f
dxp2=1;7 F ~( Y6 M6 P; B y7 _. F0 r7 Z
nbp2=1;* q+ y$ N$ o, J& K+ H+ s* L
8 E3 f( K3 d: F$ s& y: X7 R _( D% E- s
while(1)
0 C5 B" }: o: e' n* {% G k' Y {
3 u+ i2 y+ \ [ display(shi,ge);
7 |* G$ S! v4 a1 ?; ]2 b( D4 _ }
1 B( q) ^3 z3 h' _% f* Q: v }
) |7 h5 Z2 ?/ m1 O! t, O j* f
8 f1 |+ f: U, T, G基于51单片机交通灯设计下载:
( i5 Z3 ^- S, S! n
4 r% t7 Z6 S2 B
, [7 m4 q+ X9 L+ G2 T |
|