加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于STM32的交通燈proteus仿真設計倒計時緊急_時間可調(diào)

08/14 10:32
1029
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內(nèi)容為數(shù)字版權作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
  • 方案介紹
  • 相關文件
  • 推薦器件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

仿真圖proteus 8.9

程序編譯器:keil 5

編程語言:C語言

設計編號:C0071

主要功能:

本模擬系統(tǒng)由單片機硬/軟件系統(tǒng),四位8段數(shù)碼管和LED燈顯示系統(tǒng)等組成,較好的模擬了交通路面的控制。

1. 南北方向為主干道,通行時間為9秒;東西方向為支干道,通行時間為15秒。通行時間最后2秒,綠燈滅,黃燈常亮,黃燈亮完變更通行車道。默認通行時間可以在代碼修改。

2. 通行時間由數(shù)碼管顯示器顯示。

3. 緊急情況:按下緊急模式按鍵,所有方向亮紅燈,數(shù)碼管顯示00,再按一次按鍵退出緊急情況。

4. 仿真運行過程中可以通過按鍵調(diào)整東西方向綠燈通行時間和南北方向綠燈通行時間。

5. 仿真倒計時時間源通過定時器中斷產(chǎn)生。

重要說明:由于STM32的proteus仿真的不穩(wěn)定性問題,部分電腦仿真顯示數(shù)據(jù)存在延遲,卡頓,閃退。穩(wěn)定性問題非我所能改,請知悉,如介意請勿下載。

以下為本設計資料展示圖:

硬件框圖

img

仿真圖

img

南北綠燈通行

img

南北黃燈通行

img

東西方向綠燈通行

img

東西方向黃燈通行

img

緊急模式

img

置東西方向綠燈時間,東西方向指示燈全亮,南北方向指示燈全滅

img

設置南北方向綠燈時間,南北方向指示燈全亮,東西方向指示燈全滅

img

程序設計

img

主函數(shù)

int main(void)
{	
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /* Configure the system clock */
  SystemClock_Config();
//	delay_init(10); //初始化延時函數(shù)
	TIM3_Init(1800-1, 18-1); // 10ms,數(shù)碼管刷新用
	
	Key_Init(); //按鍵中斷初始化
	Led_Init(); //指示燈的初始化
	SEG_Init(); //數(shù)碼管引腳初始化
		
  while(1)
  {
		if(time_update > SPEED && set_mode == 0) //計時達到1秒且未進入設置模式
		{
			time_update = 0; //重置1秒鐘倒計時時間
			if(mode) //mode=0,表示進入南北通行模式(南北綠燈+南北黃燈)
			{
				LED_NBR_OF();LED_NBY_OF();LED_NBG_ON(); //南北方向,亮綠燈
				LED_DXR_ON();LED_DXY_OF();LED_DXG_OF(); //東西方向,亮紅燈
				if(temp_bei == 0) //南北方向,倒計時結(jié)束時
				{
					if(temp_xi == 0) //多出來3秒的東西方向,也倒計時結(jié)束了
					{
						mode = 0; //進入東西方向綠燈模式
						temp_xi  = xi_dong_time; //提前更新東西方向的倒計時時間
						temp_bei = temp_xi + YELLOW_TIME; //更新南北方向的時間,為東西方向+3秒
						LED_NBR_ON();LED_NBY_OF();LED_NBG_OF(); //南北方向,亮紅燈
						LED_DXR_OF();LED_DXY_OF();LED_DXG_ON(); //東西方向,亮綠燈
					}
					else //南北方向已經(jīng)結(jié)束,但是東西方向多出來的3秒未結(jié)束(3秒黃燈時間)
					{
						temp_xi--; //剩余的3秒,倒計時-1秒
//						temp_bei = temp_xi;//南北方向黃燈時間
						LED_NBR_OF();LED_NBY_ON();LED_NBG_OF(); //南北亮黃燈
						LED_DXR_ON();LED_DXY_OF();LED_DXG_OF();	//東西亮紅燈					
					}
				}
				else
				{
					temp_bei--; //南北方向。計時為-1秒			
					temp_xi = temp_bei + YELLOW_TIME; //更新東西方向的倒計時時間
				}
			}
			else//mode=0,表示進入東西通行模式(東西綠燈+東西黃燈)
			{
				LED_NBR_ON();LED_NBY_OF();LED_NBG_OF(); //南北方向,亮紅燈
				LED_DXR_OF();LED_DXY_OF();LED_DXG_ON(); //東西方向,亮綠燈
				if(temp_xi == 0) //東西方向,倒計時結(jié)束時
				{
					if(temp_bei == 0) //多出來3秒的南北方向,也倒計時結(jié)束了
					{
						mode = 1; //進入南北方向綠燈模式
						temp_bei  = bei_nan_time; //提前更新南北方向的倒計時時間
						temp_xi = temp_bei + YELLOW_TIME; //更新東西方向的時間,為南北方向+3秒
						LED_NBR_OF();LED_NBY_OF();LED_NBG_ON(); //南北方向,亮綠燈
						LED_DXR_ON();LED_DXY_OF();LED_DXG_OF(); //東西方向,亮紅燈
					}
					else //東西方向已經(jīng)結(jié)束,但是南北方向多出來的3秒未結(jié)束(3秒黃燈時間)
					{
						temp_bei--; //南北方向,剩余的3秒,倒計時-1秒
//						temp_xi = temp_bei;
						LED_NBR_ON();LED_NBY_OF();LED_NBG_OF(); //南北亮紅燈
						LED_DXR_OF();LED_DXY_ON();LED_DXG_OF();	//東西亮黃燈	
						
					}
				}
				else
				{
					temp_xi--; //東西方向。計時為-1秒	
					temp_bei = temp_xi + YELLOW_TIME; //更新南北方向的倒計時時間
				}
			}						
		}		
  }
}

定時器中斷函數(shù)

主要部分

//定時器3中斷服務函數(shù)
uint8_t led_temp = 0;
void TIM3_IRQHandler(void)
{

		led_temp++;
		if(led_temp == 4)
			led_temp = 0;
		
	HAL_TIM_IRQHandler(&TIM3_Handler);
}

資料清單

------下載------

img

  • 設計資料獲取聯(lián)系方式.doc

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
XRCGB25M000F3A00R0 1 Murata Manufacturing Co Ltd Parallel - Fundamental Quartz Crystal, 25MHz Nom, ROHS AND REACH COMPLIANT, SMALL, SMD, 3 PIN

ECAD模型

下載ECAD模型
$0.34 查看
M25P05-AVMN6P 1 Rochester Electronics LLC 64KX8 FLASH 2.7V PROM, PDSO8, 0.150 INCH, ROHS COMPLIANT, PLASTIC, SOP-8
$0.79 查看
S29GL256P10FFI020 1 AMD Flash, 16MX16, 100ns, PBGA64,
$9.29 查看

相關推薦

電子產(chǎn)業(yè)圖譜