基于51的交通灯Proteus仿真设计

 

目录

 

 

运行环境

仿真图像

特点

软件硬件实现

注意:

部分代码

交通灯逻辑处理部分代码

HC595发送代码


运行环境

keil5,proteus8.5

仿真图像

特点

这个设计相比较其他设计而言,使用了五个74HC595芯片分别用来控制Signal Lights和四个七位共阳(anode)数码管,控制这些硬件仅仅用到51单片机的4个I/O口。

软件硬件实现

注意:

  1. 在仿真中我没有将最小电路画出,系统使用晶振为12Mhz,如果需要添加串口最好将其改为11.0592Mhz
  2. 仿真中P0口没有添加上拉电阻
  3. 在Proteus仿真时会出现错乱现象,在实际运行时应该不会,限于实际条件,不能进行实际验证

部分代码

交通灯逻辑处理部分代码

void traffic_logic(unsigned char times)
{
	if( times <= RED_SEC )
	{
		signal_lights_data.led_status[0]=LIGHTS_RED;
		signal_lights_data.display_sec[0]=RED_SEC-times;
		if( times >= (RED_SEC-YEL_SEC) )
		{
			signal_lights_data.led_status[1]=LIGHTS_YELLOW;
			signal_lights_data.display_sec[1]=RED_SEC-times;
		}
		else
		{
			signal_lights_data.led_status[1]=LIGHTS_GREEN;
			signal_lights_data.display_sec[1]=RED_SEC-YEL_SEC-times;
		}
	}
	else
	{
		signal_lights_data.led_status[1]=LIGHTS_RED;
		signal_lights_data.display_sec[1]=RED_SEC-( times - RED_SEC);
		if( ( times - RED_SEC) >= (RED_SEC-YEL_SEC) )
		{
			signal_lights_data.led_status[0]=LIGHTS_YELLOW;
			signal_lights_data.display_sec[0]=RED_SEC-( times - RED_SEC);
		}
		else
		{
			signal_lights_data.led_status[0]=LIGHTS_GREEN;
			signal_lights_data.display_sec[0]=RED_SEC-YEL_SEC-( times - RED_SEC);
		}
	}
	HC595_Send_Buf[0]=~((signal_lights_data.led_status[1]<<4) | signal_lights_data.led_status[0]);
	HC595_Send_Buf[1]=DIGATLE_ANODE[signal_lights_data.display_sec[0]%10];
	HC595_Send_Buf[2]=DIGATLE_ANODE[signal_lights_data.display_sec[0]/10];
	HC595_Send_Buf[3]=DIGATLE_ANODE[signal_lights_data.display_sec[1]%10];
	HC595_Send_Buf[4]=DIGATLE_ANODE[signal_lights_data.display_sec[1]/10];
	HC595_Display(HC595_NUM,HC595_Send_Buf);
}

HC595发送代码

void HC595_Display(uint8_t num,uint8_t* dat)
{
	uint8_t i,dat_bit;
	
	for(i=0;i<num;i++)
	{
		for(dat_bit=0;dat_bit<8;dat_bit++)
		{
			 if( (dat[i]<<dat_bit)&0x80 )
			 {
				 HC595_DS_HIGH();
			 }
			 else
			 {
				 HC595_DS_LOW();
			 }
			 HC595_SHCP_LOW();
			 HC595_Delay();
			 HC595_SHCP_HIGH();
		}
		HC595_STCP_LOW();
		HC595_Delay();
		HC595_STCP_HIGH();
	}

}

白嫖连接

链接:https://pan.baidu.com/s/1p_ozVERM6PbAKHPzZzYQEw 
提取码:aaoo 
同CSDN下载资源一样

  • 11
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值