(目前在一家小公司实习,公司全是计算机软件类人才,就我一个硬件方面的,压力有点大。而且感觉自己的能力不足,尤其是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();?
}}