加入星計(jì)劃,您可以享受以下權(quán)益:

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

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

08/14 10:32
1794
服務(wù)支持:
技術(shù)交流群

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

虛擬商品不可退

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

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

仿真圖proteus 8.9

程序編譯器:keil 5

編程語言:C語言

設(shè)計(jì)編號(hào):C0071

主要功能:

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

1. 南北方向?yàn)橹鞲傻?,通行時(shí)間為9秒;東西方向?yàn)橹Ц傻?,通行時(shí)間為15秒。通行時(shí)間最后2秒,綠燈滅,黃燈常亮,黃燈亮完變更通行車道。默認(rèn)通行時(shí)間可以在代碼修改。

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

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

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

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

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

以下為本設(shè)計(jì)資料展示圖:

硬件框圖

img

仿真圖

img

南北綠燈通行

img

南北黃燈通行

img

東西方向綠燈通行

img

東西方向黃燈通行

img

緊急模式

img

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

img

設(shè)置南北方向綠燈時(shí)間,南北方向指示燈全亮,東西方向指示燈全滅

img

程序設(shè)計(jì)

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í)函數(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) //計(jì)時(shí)達(dá)到1秒且未進(jìn)入設(shè)置模式
		{
			time_update = 0; //重置1秒鐘倒計(jì)時(shí)時(shí)間
			if(mode) //mode=0,表示進(jìn)入南北通行模式(南北綠燈+南北黃燈)
			{
				LED_NBR_OF();LED_NBY_OF();LED_NBG_ON(); //南北方向,亮綠燈
				LED_DXR_ON();LED_DXY_OF();LED_DXG_OF(); //東西方向,亮紅燈
				if(temp_bei == 0) //南北方向,倒計(jì)時(shí)結(jié)束時(shí)
				{
					if(temp_xi == 0) //多出來3秒的東西方向,也倒計(jì)時(shí)結(jié)束了
					{
						mode = 0; //進(jìn)入東西方向綠燈模式
						temp_xi  = xi_dong_time; //提前更新東西方向的倒計(jì)時(shí)時(shí)間
						temp_bei = temp_xi + YELLOW_TIME; //更新南北方向的時(shí)間,為東西方向+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秒黃燈時(shí)間)
					{
						temp_xi--; //剩余的3秒,倒計(jì)時(shí)-1秒
//						temp_bei = temp_xi;//南北方向黃燈時(shí)間
						LED_NBR_OF();LED_NBY_ON();LED_NBG_OF(); //南北亮黃燈
						LED_DXR_ON();LED_DXY_OF();LED_DXG_OF();	//東西亮紅燈					
					}
				}
				else
				{
					temp_bei--; //南北方向。計(jì)時(shí)為-1秒			
					temp_xi = temp_bei + YELLOW_TIME; //更新東西方向的倒計(jì)時(shí)時(shí)間
				}
			}
			else//mode=0,表示進(jìn)入東西通行模式(東西綠燈+東西黃燈)
			{
				LED_NBR_ON();LED_NBY_OF();LED_NBG_OF(); //南北方向,亮紅燈
				LED_DXR_OF();LED_DXY_OF();LED_DXG_ON(); //東西方向,亮綠燈
				if(temp_xi == 0) //東西方向,倒計(jì)時(shí)結(jié)束時(shí)
				{
					if(temp_bei == 0) //多出來3秒的南北方向,也倒計(jì)時(shí)結(jié)束了
					{
						mode = 1; //進(jìn)入南北方向綠燈模式
						temp_bei  = bei_nan_time; //提前更新南北方向的倒計(jì)時(shí)時(shí)間
						temp_xi = temp_bei + YELLOW_TIME; //更新東西方向的時(shí)間,為南北方向+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秒黃燈時(shí)間)
					{
						temp_bei--; //南北方向,剩余的3秒,倒計(jì)時(shí)-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--; //東西方向。計(jì)時(shí)為-1秒	
					temp_bei = temp_xi + YELLOW_TIME; //更新南北方向的倒計(jì)時(shí)時(shí)間
				}
			}						
		}		
  }
}

定時(shí)器中斷函數(shù)

主要部分

//定時(shí)器3中斷服務(wù)函數(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

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

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
511BCA100M000BAG 1 Silicon Laboratories Inc Oscillator, 0.1MHz Min, 250MHz Max, 100MHz Nom,

ECAD模型

下載ECAD模型
$4.11 查看
CPC1560G 1 IXYS Corporation Transistor Output SSR, 1-Channel, 3750V Isolation, DIP-8
$4.67 查看
Q13MC1462000200 1 Seiko Epson Corporation Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom,
$1 查看

相關(guān)推薦

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