• 方案介紹
    • 基于51單片機的多層電梯(1-16層)運行系統(tǒng)仿真設計_層數(shù)可改
  • 附件下載
  • 推薦器件
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的多層電梯(1-16層)運行系統(tǒng)仿真設計_層數(shù)可改

2024/08/22
2182
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

共1個文件

基于51單片機的多層電梯(1-16層)運行系統(tǒng)仿真設計_層數(shù)可改

仿真圖proteus 8.9

程序編譯器:keil 4/5

編程語言:C語言

設計編號:S0027

視頻演示


基于51單片機的多層電梯(1-16層)運行系統(tǒng)仿真設計演示視頻

主要功能:

結(jié)合實際情況,基于51單片機設計一個多層電梯單片機控制系統(tǒng)。該系統(tǒng)應滿足的功能要求為:

1-16層電梯運行控制,轎內(nèi)外呼叫,運行狀態(tài)顯示。獨立鍵盤、LED顯示樓層、指示燈。

1.通電后,系統(tǒng)默認電梯停在一層。

2.按下不同的按鍵電梯可以到達不同的樓層,如果電梯在上行,下面的樓層有呼叫電梯會繼續(xù)上行,直到上行完了才會下行。同樣如果電梯在下行,上面的樓層有呼叫 電梯會繼續(xù)上行 ,直到下行完了才會上行。

3.如需上行,請按下所要到達樓層的上行呼叫按鈕,電梯顯示開始上行,所經(jīng)樓層號用數(shù)碼管進行顯示,到達,樓層號持續(xù)顯示。

4.當轎廂停留在中間樓層時,可實現(xiàn)上或下行呼叫,行進方向按呼叫順序進行。

5.由LED箭頭指示電梯是上行和下行的方向。

6.硬件軟件可以兼容2-16層電梯,如果需要做8層10層電梯,可以用改設計快速修改。

主要硬件設備:51單片機、74HC595位移緩存器、數(shù)碼管顯示、按鍵、NSL-32SR3、電機。

資料下載鏈接(可點擊):

騰訊文檔】S0027 網(wǎng)盤鏈接

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

仿真

電梯停在一樓

img

按下電梯完按鈕16樓,上行指示燈電路,電梯電機開始工作。此時顯示欄會顯示經(jīng)過的樓層。

img

到達16層后,按下電梯完按鈕1樓,下行指示燈電路,電梯電機開始工作。此時顯示欄會顯示經(jīng)過的樓層。

img

程序:

img

img

//系統(tǒng)初使化
void SYSYEM_INIT(void)
{
	 u8 i;
	 ElevState.CurrentFloor=1;
	 ElevState.Direction=UP;              //初使化方向為向上
	 ElevState.FloorTimerCount=0;	        //定時器版計時清0
	 ElevState.FreeFlag=TRUE;             //初使化為空閑狀態(tài)
	 ElevState.ElevRunning=FALSE;         //運行標志置FALSE  表示暫停運行
	 Uart.RX_COUNT=0;                    //串口接收計數(shù)清0
	 for(i=0;i<=MaxFloor;i++) 
	 {
		 ElevState.FloorCallTable[i]=Null;  //初使化呼叫列表為Null
	 }
	 DOOR_Close;                          //關門
}

void EXTI0_IRQHandler(void) interrupt 0   //樓層傳感器中斷
{	 
	#if (USE_MODE==1)
	ElevState.ArriveFlag=TRUE;//觸發(fā)中斷后表示到達樓層,讓到達樓層標志置TRUE
	#endif 
}
void EXTI1_IRQHandler(void) interrupt 2    //矩陣按鍵中斷
{
   KeyDatHandle(KeyScan()); //把KeyScan()按鍵掃描函數(shù)返回的按鍵值帶入到KeyDatHandle()處理按鍵
}
void TIM0_IRQHandler(void)  interrupt 1    //定時模擬電梯上升和下降
{
	 TH0=(65536-50000)/256;//定時50ms
	 TL0=(65536-50000)%256;//定時50ms
	
	 TimerCount++;
	 if(TimerCount==20)  //1秒
	 {
		 TimerCount=0;
		 Timer_Second++;
	 }	
	 if(DelNullCheck()==FALSE) ElevState.FloorTimerCount++; //非空閑狀態(tài)計時累加
	 else ElevState.FloorTimerCount=0;  //空閑狀態(tài)計時清0
}

void Uart_IRQHandler(void) interrupt 4  //用于電梯之間的通信
{	  	
  if(RI==1)	//判斷是否為接收中斷(串口中斷分為發(fā)送中斷和接收中斷,均用同一個中斷服務函數(shù)入口)
	{
		RI = 0;	//清除RI接收中斷標志 
		Uart.RX_BUFF[Uart.RX_COUNT++]=SBUF;
		if(Uart.RX_COUNT==Uart_RX_LEN) Uart.RX_COUNT=0;
	}	
}

void main(void)  //主函數(shù)
{
	u8 SendTick1S=0;
	SYSYEM_INIT();
	EXTI0_Init();
	EXTI1_Init();
	TIMER0_Init();
	UART_Config(9600);
	Uart_SendStr("Welcome to use elevator program rn");
	while(1)
	{	 
		 KeyPort_Y=0x00;   //不可刪除
		 FloorCallCheck(); 
		 Elevator();   
		if(SendTick1S!=Timer_Second)
		{
			SendTick1S=Timer_Second;
			Uart_SendBytes((u8*)(&ElevState),sizeof(ElevState));		
		}
	}
}

資料清單(提供資料清單所有文件):

資料清單

資料下載鏈接見文章開頭

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
VSC8504XKS-05 1 Microchip Technology Inc Ethernet Transceiver
暫無數(shù)據(jù) 查看
SST25VF016B-50-4I-S2AF 1 Silicon Storage Technology Flash, 16X1, PDSO8, 5.20 X 8 MM, ROHS COMPLIANT, EIAJ, SOIC-8

ECAD模型

下載ECAD模型
$1.95 查看
NC7WZ14EP6X 1 onsemi TinyLogic UHS Dual Inverter with Schmitt Trigger Inputs, 3000-REEL

ECAD模型

下載ECAD模型
$0.42 查看

相關推薦