186 基于单片机智能红绿灯系统设计(避障、语音)【毕设课设】

本设计由STC89C52单片机电路+led灯电路+红外避障传感器电路+LCD1602液晶显示电路+语音模块电路+电源电路组成。

1、当红外避障传感器检测到障碍物时,15秒后,红色LED1亮,绿色LED1不亮。红色LED2不亮,绿色LED2亮,同时语音只播报:行人过马路请注意安全。15秒后,红色LED1不亮,绿色LED1亮。红色LED2亮,绿色LED2不亮,语音只播报:请行人耐心等待。并依次循环。

2、液晶实时显示倒计时时间。

3、当红外避障传感器没有检测到障碍物时,红色LED1不亮,绿色LED1亮。红色LED2亮,绿色LED2不亮。

4、上电默认红色LED1不亮,绿色LED1亮。红色LED2亮,绿色LED2不亮。

完整版 电路图和程序代码 下载地址

https://pan.baidu.com/s/1lX3dTf8ChHjgYz0F8lAz-g?pwd=8888

部分代码展示

bit disFlag  = 0; //定时更新显示

void Init_Timer0(void);
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);

void main (void)
{     
	Init_Timer0();        //定时器0初始化
	UART_Init();
	DelayMs(200);          //延时有助于稳定
	uartSendStr("reday ok!!",10);

	led_red1 = 1;  //初始化
	led_gre1 = 0;  
	led_red2 = 0;  
	led_gre2 = 1;  

	LCD_Init();           //初始化液晶
	DelayMs(20);          //延时有助于稳定
	LCD_Clear(); 

	LCD_Write_String(0,0,"my designer  ");//显示

	while (1)         //主循环
	{
		if(disFlag == 1)//更新显示
		{
			disFlag = 0;			
			if(hotm == 0)	//检测到障碍
			{
				sprintf(dis0,"TimeLater:%4.1fs ",(float)yunTime/10);
				LCD_Write_String(0,1,dis0);//显示

			  if(runStep == 0) //运行步骤
			  {
			    if(yunTime == 0)
			    {
			      runStep = 1;
			      yunTime = 150;//运行时间											
			    }															
			  }
			  else if(runStep == 1) //运行步骤
			  {
				led_red1 = 0;  //第一个循环
				led_gre1 = 1;  
				led_red2 = 1;  
				led_gre2 = 0;  
				yy1 = !yy1; // 语音播报
				yy2 = 1;   // 关闭语音
																	
			  }
			 
			}
			else	  //正常情况
			{
				sprintf(dis0,"TimeLater:xxxxs ");
				LCD_Write_String(0,1,dis0);//显示
				yy1 = 1;   // 关闭语音
				
				runStep = 0;
				yunTime = 150;//运行时间	
			}		
		} 
	}
}

void Init_Timer0(void)
{
	TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响		     
	TH0=(65536-20000)/256;		  //重新赋值 20ms
	TL0=(65536-20000)%256;
	EA=1;            //总中断打开
	ET0=1;           //定时器中断打开
	TR0=1;           //定时器开关打开
}

完整版 电路图和程序代码 下载地址

https://pan.baidu.com/s/1lX3dTf8ChHjgYz0F8lAz-g?pwd=8888

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值