运用51单片机设计一个交通灯系统,急求!运用定时器,数码管LED和8255A设计一个交通灯控制系统!

2025-12-14 17:42:17
推荐回答(1个)
回答1:

/*************************************
程序名称:红绿灯学习
功能描述:简易十字路口信号控制
作都名称:CYB
创建时间:2009/07/26
*************************************/
#include

#define FX_Time 4 //放行时间
#define JG_Time 1 //警告时间
unsigned char DispX[4]= {0x9a,0x9c,0xa9,0xc9}; //控制码

void FangXiang (unsigned char *PTR )
void JingGao (unsigned char *PTR )
/****************************************
函数名称:Delay
功能描述:延时
作都名称:CYB
创建时间:2009/07/26
***********************************/
void Delay ( void )
{
unsigned char i,j,k;
for (i=20;i>0;i--)
for (j=20;j>0;j--)
for (k=250;k>0;k--);
}

/******************************************
函数名称:放行
功能描述:东西放行或南北放行
作都名称:CYB
创建时间:2009/07/26
***********************************************/
void FangXing ( unsigned char *PTR )
{
P1 = *PTR;
Delay ( FX_Time )
}

/******************************************
函数名称:警告
功能描述:东西方向或南北方向
作都名称:CYB
创建时间:2009/07/26
***********************************************/
void JingGao (unsigned char *PTR)
{ P1 = *PTR;
Delay( JG_Time );

}
/******************************************
函数名称:主函数
功能描述:控制信号灯正常运行
作都名称:CYB
创建时间:2009/07/26
***********************************************/
void main ( void )
{
unsigned char *PTR = &DispX;//指针PTR指向Dispx的首地址

P1 = 0xff; //开机信号灯全亮,用于检测
Delay ();

while (1) {
FangXing ( PTR );
JingGao (++PTR );
FangXing (++PTR );
JingGao (++PTR );
PTR = &DispX;
}
}