C51单片机程序设计题,要求用C语言做,模拟交通灯控制单片机电路,答案要详细具体。

C51单片机程序设计题,要求用C语言做,模拟交通灯控制单片机电路,答案要详细具体。,第1张

晚上随手写,也未调试,权当看看

程序有不严谨地方还得调试修改

#include <REGX51H>

#define STATUS_1S 1

#define STATUS_2S 2

#define STATUS_3S 3

#define STATUS_4S 4

#define STATUS_5S 5

#define STATUS_15S 15

#define STATUS_28S 28

#define STATUS_29S 29

#define STATUS_30S 30

unsigned char flag,status,status_temp=1,status_temp_;

sbit K1 = P0^0;

sbit K2  = P0^1;

sbit RLED = P0^2;

sbit YLED = P0^3;

sbit GLED = P0^4;

void Init(void)

{

ET0=1;

TR0=1;

RLED=0;  //亮

YLED=0;

GLED=0;

while(status_temp)

{

switch (status)

{

case STATUS_1S: //1S

{

RLED=1; //灭,闪一次

YLED=1;

GLED=1;

} break;

case STATUS_2S: //1S

{

RLED=0; //亮,闪一次

YLED=0;

GLED=0;

} break;

case STATUS_3S: //1S

{

RLED=1;    //灭

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

void Init_Timer0(void)

{

TMOD=0x01;

// ET0=1;

// TR0=1;

EA=1;

TH0=0X3C;

TL0=0XB0;    // 未计算,偷楼上的

}

void M_Start(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0;  //红亮

while(status_temp)

{

switch (status)

{

case STATUS_1S:

{

if(status_temp_==1)

{

YLED=0;

}

} break;

case STATUS_2S:

{

if(status_temp_==1)

{

YLED=1;

}

} break;

case STATUS_3S:

{

if(status_temp_==1)

{

YLED=0;

status_temp_=0;

}

} break;

case STATUS_15S: //15S灭,绿亮

{

RLED=1;

GLED=0;

} break;

case STATUS_28S:

{

GLED=1;

} break;

case STATUS_29S:

{

GLED=0;

} break;

case STATUS_30S:

{

GLED=1;

status=0;

status_temp_=1;

} break;

}

}

ET0=0;

TR0=0;

status=0;

status_temp=1;

YLED=1;

}

void M_End(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0;  //亮 1次

YLED=0;

GLED=0;

while(status_temp)

{

switch (status)

{

case STATUS_1S: //1S

{

RLED=1; //灭一次

YLED=1;

GLED=1;

} break;

case STATUS_2S: //1S

{

RLED=0; //亮二次

YLED=0;

GLED=0;

} break;

case STATUS_3S: //1S

{

RLED=1;    ////灭二次

YLED=1;

GLED=1;

} break;

case STATUS_4S: //1S

{

RLED=0;    ////亮三次

YLED=0;

GLED=0;

} break;

case STATUS_5S: //1S

{

RLED=1;    ////灭三次

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

main()

{

Init();//单片机初始化

Init_Timer0();//定时器初始化

while(1)

{

if(K1==0)

M_Start();//模拟开始

if(K2==0)

M_End();//模拟结束

}

}

void interrupt_time0() interrupt 1   //核对头文件,一致就好

{

TH0=0X3C;

TL0=0XB0;

flag++;

if(flag==20)

{

status++;

flag=0;

}

}

以上就是关于C51单片机程序设计题,要求用C语言做,模拟交通灯控制单片机电路,答案要详细具体。全部的内容,包括:C51单片机程序设计题,要求用C语言做,模拟交通灯控制单片机电路,答案要详细具体。、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9437507.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存