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

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

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

08/22 13:50
1613
服務(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)方案
  • 方案介紹
    • 基于51單片機(jī)的多層電梯(1-16層)運(yùn)行系統(tǒng)仿真設(shè)計_層數(shù)可改
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

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

仿真圖proteus 8.9

程序編譯器:keil 4/5

編程語言:C語言

設(shè)計編號:S0027

視頻演示


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

主要功能:

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

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

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

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

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

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

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

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

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

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

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

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

仿真

電梯停在一樓

img

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

img

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

img

程序:

img

img

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

void EXTI0_IRQHandler(void) interrupt 0   //樓層傳感器中斷
{	 
	#if (USE_MODE==1)
	ElevState.ArriveFlag=TRUE;//觸發(fā)中斷后表示到達(dá)樓層,讓到達(dá)樓層標(biāo)志置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ā)送中斷和接收中斷,均用同一個中斷服務(wù)函數(shù)入口)
	{
		RI = 0;	//清除RI接收中斷標(biāo)志 
		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));		
		}
	}
}

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

資料清單

資料下載鏈接見文章開頭

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
LAN8710AI-EZK-ABC 1 Microchip Technology Inc Ethernet Transceiver

ECAD模型

下載ECAD模型
$1.54 查看
DS2431P+ 1 Maxim Integrated Products EEPROM, 1KX1, Serial, CMOS, PDSO6, ROHS COMPLIANT, TSOC-6
$5.42 查看
HFBR-1528Z 1 Foxconn Transmitter, 635nm Min, 622nm Max, 10Mbps, Through Hole Mount, ROHS COMPLIANT PACKAGE
$19.34 查看

相關(guān)推薦

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