首页 经验 正文

应届生单片机(应届生单片机)

[db:Intro]...

(目前在一家小公司实习,公司全是计算机软件类人才,就我一个硬件方面的,压力有点大。而且感觉自己的能力不足,尤其是Linux/c 这方面,需要努力学习,面对硬件的二次开发感觉自己还差一个档次。)希望各位前辈给个建议,谢谢。 来自职Q用户:匿名用户

应届毕业生先去大公司学习下 来自职Q用户:wisdome

硬件连接图给了,是proteus仿真的,不过毕设没这么简单吧..难道主要是要你设计pcb,原理图没有,程序我有复制给你看看吧

仿真图的复位和晶振电路没截图,反正仿真的时候画布画都行

#include?<reg52.h>

#define?uchar?unsigned?char

#define?uint?unsigned?int

sbit?RED_A=P0^0;

sbit?YELLOW_A=P0^1;

sbit?GREEN_A=P0^2;

sbit?RED_B=P0^3;

sbit?YELLOW_B=P0^4;

sbit?GREEN_B=P0^5;

uchar?Flash_Count?=?0;

Operation_Type?=?1;

void?DelayMS(uint?x)

{

uchar?t;

while(x--)

{

for(t=120;t>0;t--);

}

}

void?Traffic_lignt()

{

switch(Operation_Type)

{

case?1:

RED_A=1;YELLOW_A=1;GREEN_A=0;

RED_B=0;YELLOW_B=1;GREEN_B=1;

DelayMS(2000);

Operation_Type?=?2;

break;

case?2:

DelayMS(200);

YELLOW_A=~YELLOW_A;

if(++Flash_Count?!=10)?

return;

Flash_Count=0;

Operation_Type?=?3;

break;

case?3:

RED_A=0;YELLOW_A=1;GREEN_A=1;

RED_B=1;YELLOW_B=1;GREEN_B=0;

DelayMS(2000);

Operation_Type?=?4;

break;?

case?4:

DelayMS(200);

YELLOW_B=~YELLOW_B;

if(++Flash_Count?!=10)?

return;

Flash_Count=0;

Operation_Type?=?1;

break;?

}

}

void?main()

{

while(1)

{

Traffic_lignt();?

}

}