交通灯设计实验报告(硬件原理图,程序)
来源:建筑师 发布时间:2020-09-11 点击:
交通灯信号灯自动控制系统
交通灯原理图 一、 系统得基本功能要求 (1)
以秒为计时单位,两位数码管以十进制递减计数形式作定时显示,在递减计数回零瞬间完成换灯操作。
(2)
通过键盘红黄绿三色信号灯所亮时间在0~99 秒内任意设定。
(3)
十字路口得通行起始状态可人工设定,运行中可通过人工干预使十字路口通行状态固定于任何一种工作模式。
二、 设计思路及总体框图,方案比较
硬件设计
1 1 、 系统总体框图
2 、电路设计 ( (1 )
显示模块 倒计时 与 时钟 STC 89 C52
单 单 片 片 机 机 锁存器( 位选端) 倒计时显示数键盘 锁存器( 段选端) 时间显示数码LED 红绿灯 复位电路 时钟电路 P2 P1 P1
说明:
⑴共阴极两位数码管用于倒计时 ;
段选端由锁存器控制,位选端用 P3_0 与 P3_1 控制
⑵两个四位共阴极数码组成八位数码管 用于时钟显示 段位选分别由两个锁存器控制 (2)
)
红绿灯模块
说明:
⑴ 图为两方向得红绿黄灯 ,分别接在 P0口上,由 P0 口控制 ⑵
51 系列单片机得 P0口内部没有集成上拉电阻,加上拉就就是提高 驱动能力,必须要通过上拉电阻接 VCC。上拉电阻一般接 1K 得。
( (3)
)
键盘模块
说明 ⑴ P2 键控制功能说明:
P2^6
key0 绿灯位选择
P2^5
key1黄灯位选择 P2^4
key2 加 1 操作
P2^3
key3 减 1 操作
P2^2
key4 信号灯状态固定 P2^1
key5 信号灯状态切换 P2^0
key6 时钟时分秒设置键 ⑵
键盘加上拉电阻为了提高驱动能力
3、复位电路 :
4 、时钟电路:
说明 :用 12M 晶振时 电容要选择 30p 软件部分 1、
主程序流程图
2、 、 时钟初值控制子程序 开始 时钟初值设置子程序 绿灯初值设置子程 序 序 黄灯初值设置子程序 钟 开时钟 2 钟 开时钟 1, 倒计时 时 状态固定 状态选择
3、 绿灯, 黄灯初值设置子程序 Y 就是否有键盘按Y 就是否按下时钟时钟键盘扫描 扫描加一, 减一键盘 各个位得加一, 减一 N
N N
4、 时钟控制与倒计时控制
ﻩ 时钟,倒计时初值通过键盘输入 。
倒计时使用 2 52 单片机
内部定时器 1 1 实现计数,时钟控制部分就是使用定时、计数器2
实现计时, , 以秒为基本单位在数码管中显示。时钟部分: : 当秒得
个位计时到了 10 ,则秒个位清 0 0 ,同时十位进一, , 以此类推;倒
计时部分显示就是则递减显示。此过程通过判断语句实现 。
5 5、 、 、灯状态控制
定闭关,时下按键定固态状。制控描扫盘键过通态状得灯ﻩﻩ 灯得状态通过键盘扫描控制。状态固定键按下时,关闭定
时器 1 1 ;再次按下此键时,打开定时器。状态选择键按下时,程
序跳至下一个状态 得程序控制部分,从而实现状态改变。
N N Y Y 扫描绿灯键盘控制就是否键盘按扫描加一, 减一键 键盘就是否按相应位加一或
三、 实现功能说明 基本功能: :
(1)A B干道分别有两组红黄绿灯,各自得亮灯时间与状态由键盘
控制。
(2) ) 两位数码管用于倒计时, , 记录各个灯得亮灯时间, , 定时时间由
键盘设定。
(3) ) 十字路口通行状态可由键盘切换。
发挥部分功能: :
(1 )
由八位数码管显示,初试时间可由键盘设定,且在 05:
00 ~2 2 30 :00 黄灯闪烁显示。
(2) 绿灯倒计时最后三秒与黄灯显示时闪烁显示(频率 1HZ) 。
(3 3 )人行道得红绿灯配合车辆得红绿灯同时工作。
四、 所用器件与功能
( ( 1) )
共阴数码管 0 10 个:8 8 个显示时间,2 2 个显示倒计时时间
(2 ) 红黄绿发光二极管个 4 4 个: : 模拟十字路口信号灯 。令各
加1个人行道上得红灯与绿灯
(3 3 )
7 7 43 HC573 锁存器 2 2 个:段码与位选锁存各一个
( 4) ST C单片机一块
按键 8 8 个
12M M 晶振一个
排线
排针
电阻
电容若干
五、 故障及问题分析 (1 1 )问题:
每次通电后都要在十八、十 十九口触发一下才能正
常工作。
分析:晶振电路与单片机距离过远,输入噪声很大
解决:
把晶振 电路 改在紧挨单片机 位置 就 可排除 干扰。
(2 2 )
共阳数码管需要接三极管放大驱动电流, , 为节约成 本选用
共阴数码管。
(3)
键盘扫描程序中加了按键前沿消抖延时, , 但按键不够灵敏
加了后延消抖后使得按键足够灵敏. .
(4 )
在段锁存器给各个数码管送段码时相互之间有影响, , 在显
示函数中加消影程序解决相互之间得影响. .
( 5)
在第一次焊接时一次性焊接完,调试时无法检查错误,而
在第二次焊接时采用边调试边焊接得方法, , 加快速度, , 提
高了准确度。
(6 6)
)线邦杜ﻩ 杜邦线
数码管、锁存器等接线比较多,用单根导线焊接
容易相互连接且不易检查错误,用杜邦线便于检查与模块
化调试。
六、 心得体会 本次设计, , 我们花了不少时间 与精力, , 但收获很大:
(1 )
这次设计时间很长,期间,我们自学了单片机教程, ,
k eil 2 、p p r ot e us 、 pro te e l
99 9 se e 等软件,自学能力达
到很大得提高
(2) ) 本次设计过程中, , 我们充分体会到了团体合作得重要
性。通过我们三个人得合理分工,设计过程完成得比
较成功
( 3)
通过本次设计,我们学到了对复杂程序模块化得编程
方法与对其进行检查与修改方法。
(4 4 )本次设计过程中,我们得动手能力得到很大得提高, ,
例如说焊接技术、对电路板得总体规划,等等. .
七、
参考资料 < < 〈单片机原理与应用及C1 51 程序设计> > >
清华大学大学出版社
附:软件C程序
// / *** *** ***** ** ** * ** *** 实验板上完整程序
#i i n clude” r eg 52 2 、h h "
#de fine u in t uns i gned
int
# # d ef in n e
uc h ar uns s i gn ed d
char
u cha r
aa ,b b,cc , dd,ee,ff ,a1, a3,co n 32 , con31;
u u c har tem p, ye,shi1 ,ge1,s s h i2 , ge2,shi , ge,fla; g;
int b,c= 0 ,d =0 ,m=1,t;
u u in n t
n n 1, n2 ;
sbi i t
p p 0_3 = P0 ^3 3 ;
/ / /A A 干道黄灯
sbi t
p0 _2 2 =P P 0 ^2 ;
A //A 干道红灯
sb i t
p 0_4= P0^ ^; 4;/
Aﻩ //A 干道绿灯
sbit
p p 0 _6=P0^6;
B //B 干道黄灯
sbit
p0 _ 7=P0 ^7; ;/ ﻩ Bﻩ //B 干道红灯
s bit
p 0_5= P 0^5 ;
B //B 干道绿灯
ﻩs bit we la=P 3^ ^ 0;
sbit du l a=P 3 ^1 ;
s s b it p 3 _2=P 3^2;
sbi t
p p 3 _3= P3 ^3 ;
u u ch h a r
d ata ti me e d ate1[3] = {0 x0 0 0 ,0x00 ,0 0 x0 0 0} } ; //显示缓冲区两位数字
ucha r
d ata time d at e 2[3 ]= = {0 0 x 00,0x 0 0, 0x 00} ;/ //显示缓冲区两位数字
uc h ar
d d a ta
timedat e3 3 [7= ]= { 0x00, 0 x0 0,0 x00, , 0x00 ,0x00,0x 00 0 , 0x 0 0} ;// / 显示缓冲区两位数字
c c ha r c ode
we i[ 8] = {0 xfe, 0xfd,0 x fb,0x f7 7 ,0xef,0xdf,0xbf,0 x 7f }; // 位扫描
sbi t
ke y0= P2^ 6;
/ﻩﻩ // 绿灯控制 键
s s b it
k k ey1 1 =P P 2^ 5;
// 黄灯控制键
sb b it
key2=P 2^4;
// /键一加ﻩ /加一键
sbi t
key 3 =P 2 ^3;
// 减一键
sbit k ey 4=P2^2 ;
/
ﻩ // / 保存状态
sbi t
key 5=P 2^1; ;/
ﻩﻩ // 状态改变
sb i t k e y6=P2^0;
/
ﻩ // 时钟控制键
u u c har
da a ta
c c on n 3 =0x0 0; ;
u u c har
dat a
co n=0x00;
uc ha r co d e ta b le [] ] ={
0x3f, 0 x06 , 0x5b , 0x4 f, ,
0x6 6 6, 0x6 d, 0x7d , 0x 07,
0 0 x 7f ,0 0 x6f f , 0x4 0}; ;
vo o i d di s play( uc c h ar
shi , ucha r
ge) ) ;
vo id d
dis pla y3(uc h ar aa ,u ch a r bb,u ch ar
cc,uchar dd, uc c h ar
ee ,uc har f f) ;
vo i d dela y(uint z );
vo i d in n i t() ;
key s can1( )
; ;
ke y sc an n 2 () ;
ke ys s c an3 ( ) ;
voi d
mai n() )
{ {
ﻩtiniﻩ init () ) ;/ / /初始化子程序
ihwﻩ whi le e (1 1 )
{ﻩ {
//* ******* * ** * ** * **** * ** * ** * ** * ** * *键盘扫描控制程序
i f(c o n== 0& & & ye= =0 0 )
syekﻩ keys c an3() ;
alpsidﻩ displa y 3(a a, bb,c c, , dd, , ee e ,ff); ;
3noc(fiﻩ if(con3 == = 0& &ye==0)
)/ﻩ // 调用键盘扫描程序
{keyscan 1 (); s h i1 = n1 /10; ge1= n 1%10;dis s p lay( s hi1 ,g g e 1); }
fi iﻩﻩ f( ( c on== 0&& co n 3== 0) )
{
kﻩ {k ey y s ca n 2();s hi i 2=n2 2 / 10;ge2 =n2 2 % 10 ;displ ay(shi 2 ,ge2) ;} }
if(( ( con n 〉 =3& &y y e= = =0 0 )| |( ye e >=3& &c on==0 ))
d d i splay(0,0) ;
0Pﻩ P0 = 0xf f ;de lay (1 ); ;
//
* ** * ***** * ** * **** **** * * *** ** * 保存当前状态
fiﻩ if ( key4 == = 0) )
ﻩ
{
(yaledﻩﻩ delay( 12); ;
ﻩ ihw wﻩ hi le(k e y4==0 )
; ;
ﻩﻩledﻩ del ay(1 2) ;
;+dﻩ d++;
ﻩ iﻩ i f(d%2 )
TR0= 0;// / 关闭计数器,下面ef lse if 语句不执行, , 直接到 delay () ) 显示语句
ﻩ
leﻩ el s e T R0=1 ;
} }
ﻩ// / ** * *** * ******** * ** * **** ** ** ***** 状态改变,进入下一个状态
if( k ey5= =0 0 )
{ {
ﻩ
edﻩﻩ de lay ( 12);
hw wﻩ hi i l e( k ey5 = =0 )
;
dﻩ d el ay (1 2) ) ;
;+m mﻩ ++; c++ ;
ﻩ if( c% 2 ) t e mp = n2;
ﻩﻩleﻩ el s e temp=n 1;
}
// ***** * *** ** * ** * ** *** * ** ** * *** *状态选择
fiﻩ if ( t<5 || t> = 23)
{ {
iﻩ i f(a1 /10==0 )
{p0_3=0 ; p0 _ 6=0;}
ﻩ el l s e { p 0_3=1 ; p0_6=1 ;} }
1(yaledﻩ delay(1 );
} }
sle eﻩ lse e
{ {ﻩﻩ
ﻩ if (m m % 4= =1 1 )
ﻩ
{ﻩﻩﻩﻩ { p0_ 6 =1;p0 _2 =1;
ﻩ pmet(fiﻩﻩ if(temp〉 〉3 3)
)p p 0 _4 =0 0 ;el se
{ if(a 1 /1 0 ==0)p0_4 4 =0 0 ; else p0_4=1; }
/A /A 绿灯
ﻩﻩﻩﻩ p p 0 _7=0;
// B红灯
ﻩ ﻩ led dﻩ el ay (1);} }
eﻩ e lse
if f ( m% 4 ==2 )
ﻩ
{ { ﻩ
ﻩ
pﻩ p 0_4 = 1;
ﻩ fiﻩﻩ if ( a1 /1 1 0 ==0)p0 _3 3 =0 0 ;
e e ls s e
p0 _ 3=1 ; //A黄灯
ﻩ
;0=7_0pﻩ p0_7=0;
/ / /B B 红灯
ﻩﻩﻩﻩ d d e lay (1);}
esleﻩ else if f (m m %4 4 = =3 )
ﻩ {
ﻩ { p0_3=1;p0_ 7= = 1;
ﻩﻩ
ﻩ pﻩ p0 0 _2 2 = 0;
A //A 红灯
ﻩ
if( ( t emp>3)p0 _ 5=0; ;
elsf e{if ( a1/ 10 0== = 0 )p0_ 5 =0 ; el se e
p0_ 5= = 1; }
B //B 绿灯
ﻩﻩedﻩﻩ de l ay ( 1) ;}
sleﻩ els e
if(m% 4 == 0) )
{ {ﻩﻩpﻩﻩ p 0_ 5=1; ;
ﻩﻩ
0p pﻩ 0 _2= 0;
A //A 红灯
ﻩ (fiﻩﻩ if( a1 1 / 10==0 )p 0_6=0; else p 0_6= 1;
//B B 黄灯
ﻩ aledﻩﻩ dela y(1 1 );} }
}
ﻩ }
**/ﻩ //*** *** * **** ** * ** * **** * ** * ** * ** * ** ** **** **** * ** * ** * *倒计时
iﻩ if f ( con >=3& & &ye e 〉 =3)
{ {
ﻩ
ﻩ
ﻩ RTﻩ TR 0=1 1 ;
ﻩ
fiﻩ if (b b != = 0)
temp=n1;
/ / /只有当扫描到有输入时 p temp 才等于 n, 否则为自减后得值
ﻩ
sﻩ s hi= tem m p/10;
ﻩﻩ
ﻩﻩ
g e=temp% 10 0 ;
ﻩ
if (a1 1 = =2 0)
ﻩﻩ{ {
ﻩ
ﻩ =1a aﻩ 1= 0;
ﻩﻩﻩ
t em p- — ;
ﻩﻩﻩ iﻩﻩ if f (t emp == =- - 1) )
ﻩ
{
ﻩﻩ {
c++ ;
// 进入下一个状态, , 赋倒计时起始值
ﻩﻩ ﻩ
m++ ;
// / 进入下一个状态, , 赋灯得状态
ﻩﻩ
ﻩ iﻩ i f(c%2 )
te m p=n2;
ﻩ esleﻩ else
temp=n1 ;
} }ﻩﻩﻩﻩ
ﻩﻩ
ﻩ
ﻩ ﻩ
}
ﻩ
dﻩ di i spl ay ( shi ,g g e) ) ;
}
ﻩ ﻩ }
b=0;
}
}
vo i d delay (u u i nt z)
{
u int x,y;
ofﻩ fo r( x=z ; x>0;x- - — )
ofﻩ fo r (y= 1 10;y 〉0 0 ;y — - );
}
v oid display(uchar shi,uc ha a r
ge)
{ {Pﻩﻩ P 1=0 x 00;
wela= 0; ;
p3_2=1;
dula=1;
ﻩ
P1=t a bl e[ sh i];
;0=aludﻩ dula=0;
ﻩ
p3_3=0 ;
ﻩ
delay(1 ); ;
3pﻩ p3 _ 3=1 ;
du la =1 ;
at=1Pﻩ P1=ta b le [ ge ];
dula =0 0 ;
p p 3 _2 =0 0 ;
dﻩ d el ay y (1);
p3_ _ 2= = 1; ;
} }
vo i d dis pla y3(ucha r
a a a ,uchar bb,u c ha r
cc,uc ha r d d d ,u c har e e ,uc h ar ff f )
{ {
3p pﻩ 3 _2= 1; p3_ 3 =1;
x0=1Pﻩﻩ P1=0x ff f ;
wel a=1 1 ;
ﻩ
P P 1=w w ei[7]; ;
;0=alewﻩ wela=0;
1P Pﻩﻩ 1 =0x0 0;
udﻩ du la a =1 1 ;
t=1Pﻩﻩ P1=t a ble [a a];
ludﻩ dul a =0;
d elay(1 );
ud dﻩ ul l a= 1;
1P Pﻩﻩ 1 =ta b le[ bb b ];
0=aludﻩ dula=0 ;
1Pﻩ P1 =
0xf f f; ;
1=alewﻩ wela=1 ;
P1= wei i [6]; ;
;0=alewﻩ wela=0;
d d el l ay y (1 1 );
ud dﻩﻩ u la=1 ;
ﻩ
P P 1 =table [ 10 ];
aludﻩ dula =0 0 ;
=1Pﻩﻩ P1= 0 xff ;
1=alewﻩ wela=1 ;
=1Pﻩ P1= w ei [5 5 ];
wel l a =0 ;
ﻩ
delay(1 ); ;
dula= 1;
P1=tabl e[ cc ]; ;
dula=0;
Pﻩﻩ P 1=0x f f;
ewﻩ we la a =1;
P1= we e i [4];
0=alewﻩ wela=0 ;
ﻩ
d ela y(1 1 );
dﻩﻩ d ula= 1;
=1Pﻩ P1= tab b l e[d d] ] ;
0=aludﻩﻩ dula=0 ;
P1=
0xf f; ;
lewﻩ wel a= 1;
w=1Pﻩ P1=w e i[3 ];
ewﻩ we la =0 ;
edﻩ de l ay ( 1) ;
dﻩ du u la =1;
P1= ta ble[1 0 ];
0=aludﻩﻩ dula=0 ;
1Pﻩﻩ P1 =0xff ;
w w el a= 1;
P1 =
w w ei i [ 2] ;
we e l a=0;
ﻩ
de l ay (1) ) ;
ludﻩ dul a =1 ;
P1 = tab l e[ee ]; ;
udﻩ du l a=0;
1Pﻩ P1 = 0xf f; ;
wela= 1; ;
1P Pﻩ 1 = w ei i [ 1] ;
we la =0;
d elay( 1) ) ;
dﻩ d ula=1;
=1Pﻩ P1= ta a ble e [ ff ];
dﻩ d ul a= 0;
=1Pﻩ P1=
0 0 x ff ;
1=alewﻩ wela=1 ;
1P Pﻩ 1 =w e i[ 0 ];
0=alewﻩ wela=0 ;
edﻩ de la y( 1) ;
}
voi d
in it () )
{
wel a=0;
du la =0 ;
T H1 =( ( 6 55 36 6 -5 5 00 00)/256;
1LTﻩ TL1 =(65536- -5 5 0 00 0) ) % 25 6;
Tﻩ T MOD = 0x 11 1; ;AE Eﻩ A =1 ;
ET1=1;TR 1 =0 ;
TH0= ( 655 36-5 5 00 0 00 0 )/ 256 ;
(=0LTﻩ TL0=( 6553 3 6-50000) ) % 256;
0TEﻩ ET0 = 1;TR0=0;
} }
// *** * *** * * *** *** * *** * **** * ** ** 绿灯键盘扫描程序
k ey s can1( )
{
if (k ey0== 0)
{ {ﻩ/ﻩﻩbﻩ //b =0;
d d e la y(1 1 2 );
wﻩﻩ w hile (ke e y 0= = 0)
;
ﻩﻩed dﻩ e lay (12 2 ); ;
ﻩ
con++ ;
/ /b ++;
}
fi iﻩ f( ( con n !
=0)
/ /con=1| |2 2 时得加一运算
fiﻩ if ( ke y2= =0 )
{ {
ed dﻩ el l a y(12 );
2yek(elihwﻩﻩ while(key2 == 0) ;
ﻩ
del ay y ( 12) ;
ﻩ itﻩ ti me e d ate 1[c on]+ +;
ﻩﻩ
(fi iﻩ f( ti m edate1 [ con] 〉9 9 )
time d ate 1 [con ]= = 0; ;
ﻩ
s s h i1=timedate1[ 1 ];
ﻩﻩﻩ
g g e1= = t imed a te1 [2 2 ]; ;
ﻩﻩ
ﻩﻩ
idﻩ dis s play y (s hi1 , ge 1);
n 1= 1 0*s h i1+ g e1;
ﻩ
} }
i i f( con! =0 0 )
/ /con=1 || | 2时得减一运算
k(fiﻩ if(k e y3 ==0) )
{ﻩﻩ {
ﻩ dﻩ d el ay( 12 );
ﻩﻩhw wﻩ h ile(key 3= = =0 0 )
; ;
ﻩ 1(yaledﻩ delay(1 2 );
ﻩ mitﻩﻩ tim ed d a te 1 [con ]-- -; ;
ﻩﻩ
fiﻩ if (timedate1 [ con] ==25 5 5) ) ti i m edate 1 [con ] =9;
ﻩﻩﻩemit=1ihsﻩ shi1=time d ate1 [1] ] ;
ﻩﻩ
egﻩ ge1 1 = time d ate1[2 ]; ;
ﻩ
yalpsidﻩ display (sh h i1,g e1);
ﻩ
ihs*01=1nﻩﻩ n1=10*shi 1+ + ge1 1 ;
} }ﻩ} }
// ****** * *** * **** * ***** * * ** 黄灯控制键扫描
key s can2 ()
{
if f (key1 1 = =0)
{ﻩ {
ﻩﻩﻩ=b bﻩ =0 0 ;
delay ( 12);
ihwﻩ whil l e( ( key 1==0 )
; ;
aledﻩ dela y( 12 );
+eyﻩ ye+ +; ;
b ++ ;
} }
i f(ye !
=0)
//c o n=1 ||2 2 时得加一运算
(fiﻩﻩ if( key2= = 0)
{
ﻩ {
ﻩ
delay ( 12);
ﻩ
while ( key2= = 0) ;
de lay( 12); ;
ﻩ 2etademitﻩﻩ timedate2 [ye e ]+ + +;
ﻩ iﻩ if f (t t im m e da t e2[ye ]> 9) t imedat e 2[ y e]= 0;
ﻩﻩ
shi2= t imedate 2[ [ 1] ] ;
mit=2egﻩ ge2=tim ed d at t e 2[ 2] ]; ;
ﻩﻩ
idﻩ di s play (sh h i2, ge2)
;
ﻩﻩ2nﻩﻩ n2 =1 0*shi2+ ge2; ;
} }
ﻩﻩ
if(y e!=0)
//con=1 ||2 2 时得减一运算
fiﻩﻩ if ( key3= =0) )
{ { ﻩ ﻩ
yaledﻩﻩ delay ( 12 ); ;
ﻩﻩhw wﻩﻩ h il e( key3= =0)
; ;
ﻩﻩ
aledﻩ dela y(12 2 );
ﻩ itﻩﻩ ti m edate2[ye] - — ;
ﻩ fiﻩ if ( ti m eda t e2[ ye]==255) ti i me e d ate2[ y e] = 9;
ﻩ
ihs sﻩ hi 2=t i med a te2[1];
ﻩ
t=2egﻩﻩ ge2=t i medate2[2]; ;
ﻩ
d d i splay(shi 2, ge 2); ;
ﻩﻩ
n n 2 =1 0* shi 2 +ge 2; ;
} }ﻩ}
void tim e r0 ()
i i nte rr u pt 1
{
HT Tﻩ H 0= ( 65 536 — 5000 0 )/ 25 5 6; ;
LT Tﻩ L 0= ( 65 5 36- - 500 0 0)%2 56; ;
a a 1+ + +; ;
ﻩ}
// ***** * ** * * ** ** * ** ** **时钟控制键扫描程序
k k eys s c an 3() )
{
i i f( key6 == = 0)
{ﻩ {
de lay (12); ;
ﻩﻩhw wﻩ hi i le e (k k e y6==0) ;
ﻩ
de lay ( 12 );
ﻩ
con3++;
ﻩ ﻩ
TR1 = 0;
ﻩ (fi iﻩ f( con3==5){TR0=1 ; con3 = 0; }
} }
if (c c on n 3!
=0 )
/ / /c on=1 ||2 2 时得加一运算
fiﻩ if (key y 2 ==0)
ﻩ {
ﻩ dﻩﻩ d ela y(12);
ﻩ hwﻩ wh ile (ke e y2 ==0 )
;
ﻩﻩdﻩ de e lay y ( 12 );
demitﻩ timed a te3 [c c o n3 ]+ +;
i i f( con3 == 1) c on31=2;
ﻩﻩeﻩ e ls e
if(c c o n3==2 )c on31= 9;
i esleﻩﻩ else i f( ( co o n3 3 = =3)con31=5 ;
ﻩ
el se
if ( con3== 4 )c o n3 1=9 9 ;
ﻩﻩ
fiﻩ if ( ti m edate3[ c on3 ]〉c c o n3 1)ti i m ed a te3 [co o n3]=0 ;
ﻩ (fiﻩ if( ti m eda t3 e3 [1] == 2& &ti m eda t3 e3 [2 2 ]= = =4 4)
)
ﻩﻩ { timed at e3 [ 2]=0 ;ti med a te3[1 ]= 0;}
}
ﻩﻩ }
i i f (co n3!
=0 )
if (ke y3==0)
{
dﻩ d el ay(12) ) ;
w hil e(ke e y3= =0 )
; ;
del a y( 12 2 );
tﻩ ti i m edate3 [c c o n3 ] — -; ;
} }
ﻩ
fiﻩ if ( con3==1) c on32=2;
ﻩ eﻩ e lse if f ( con3==2) c o n3 2 =9 ;
leﻩ el s e if ( con3==3)
c on32=5 ;
ﻩ
esleﻩﻩ else i f( c on3= =4 4 )
c c o n32=9 ;
fi iﻩ f (t ime d ate3[ co o n3 3 ] ==25 5)t t i medate3[ con3]=c on n 32 2 ;
if f (tim m ed3 ate3 [1 1] ]= = =2 2 & &t im m e3 date3 [ 2]==9) )
ﻩ
ﻩ demitﻩ timed ate3 3 [2 2 ] =3;
aﻩ aa =t t i med a te3 [1 1 ]; ;
// / 小时得十就是位
bb= t ime d ate3[2 ];
3etademit=cﻩ cc=timedate3 [3 3 ]; ;
t=dﻩ dd=t i med at t e3 3 [ 4];
ee= ti i m eda t e3 [ 5] ;
f f f= timeda t e3[ 6 ];
t= = 1 0*aa+b b;
}
vo i d ti me_i ntt3 (v oid )
in t err u pt 3
{
HTﻩ TH 0=(6 6 5 536- -5 5 0000)/2 56 ;
TL0= ( 65536 —5 5 0 00 0)%2 2 56; ;
a3+ +; ;
i i f (a 3 ==20)
{
a3 =0 ;t t im eda te e 3[6 6 ] ++ ;
iﻩ i f(timedate3[6]==10)
{
tﻩ {t im m e date3[6 ]= = 0; ti m ed a te3 [ 5]++;}
fiﻩﻩ if ( timed a te3[5 ] ==6 )
{ time d ate3[5 ] =0;tim e da te e 3 [4] ++;}
i i f(ti i me date 3[4 4 ]== 10 )
{ {
tﻩﻩ t imedat e3 3 [ 4]=0;time d ate 3[3] ] ++ + ;} }
(fiﻩ if( timed at t e3 3 [3] == 6) )
{ti m edate3 [3] =0 ; tim ed d a te3[2]++ ;} }
tademit(fiﻩﻩ if(timedat e 3[2 ] == 1 0)
{ {ﻩﻩitﻩ ti medate 3 [2 ]=0 0 ; tim e date3[1] ++; ; }
fi iﻩ f (tim ed ate3 [ 1]==2& & tim ed ate3[ 2 ]= = 4)
{ ﻩ ﻩ { timedate3 [1 1 ]=0 0 ; tim e date3[ 2 ]=0 ;}
aa=time d ate3 [ 1] ;
bb=tim ed d a te 3 [2];
=cc cﻩ c= time dat e3 [3 ];
dd dﻩ d =ti me dat e 3[ 4] ] ;
ee=ti medate3[5];
ff=ti m edat e3 3 [ 6];
=tﻩ t= 10* aa +b b; ;
}ﻩ }
} }
推荐访问:交通灯 原理图 实验