日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【单片机毕业设计】【mcuclub-jj-003】基于单片机的八层电梯的设计

發布時間:2024/3/12 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【单片机毕业设计】【mcuclub-jj-003】基于单片机的八层电梯的设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????最近設計了一個項目基于單片機的八層電梯系統,與大家分享一下:

一、基本介紹

項目名:八層電梯
項目編號:mcuclub-jj-003
單片機類型:STC89C52、STM32F103C8T6

功能簡介:
1、通過3*4矩陣鍵盤實現電梯內部的1-8層、開門、關門、呼叫(繼電器模擬)
2、通過其中一個四相步進電機模擬電梯開關門(正反半圈)
3、通過另一個四相步進電機模擬電梯升降,每轉一圈,代表一層
4、通過hx711采集電梯內重量,當開門時,電梯如果超載,則蜂鳴器報警,不關門,直到不超載
5、通過分離式紅外對管模擬防夾,如果關門時觸發,則自動開門
6、通過兩個LED燈代表此時電梯上下行狀態
7、通過數碼管顯示電梯處于的樓層
8、通過藍牙,將當前樓層發送導外機

外機部分:
1、通過4*4矩陣鍵盤實現電梯外部的1-8層呼叫
2、通過8個LED燈,指示當前電梯到達的樓層
3、通過藍牙,獲取數據并發送樓層請求

二、51實物圖

單片機型號:STC89C52

板子為綠色PCB板,兩層板,厚度1.2,上下覆銅接地。元器件基本上為插針式,個別降壓芯片會使用貼片式。

供電接口:TYPE-C

?

三、51仿真圖

仿真軟件版本:proteus8.9

電路連線方式:網絡標號連線方式

注意:部分實物元器件仿真中沒有,仿真中會用其他工作原理相似的元件代替,這樣可能導致實物程序和仿真程序不一樣

?

?四、32實物圖

單片機型號:STM32F103C8T6

板子為綠色PCB板,兩層板,厚度1.2,上下覆銅接地。元器件基本上為插針式,個別降壓芯片會使用貼片式。

供電接口:TYPE-C

?

?五、原理圖

軟件版本:AD2013

電路連線方式:網絡標號連線方式

注意:原理圖只是畫出了模塊的引腳圖,而并不是模塊的內部結構原理圖

內機:

?外機:

?

?六、PCB圖

由原理圖導出,封裝很大一部分都是作者自己繪制,不提供封裝庫,只提供連接好的源文件。中間有一個項目編號,隱藏在單片機底座下,插入單片機后不會看到。

兩層板,上下覆銅接地。

內機:

?

外機:

?

七、系統框圖

本設計以單片機為核心控制器,加上其他模塊一起組成此次設計的整個系統,此次設計包括主機和從機,主機和從機都包括中控部分、輸入部分和輸出部分。中控部分采用了單片機控制器,其主要作用是獲取輸入部分的數據,經過內部處理,邏輯判斷,最終控制輸出部分。

主機輸入由四部分組成,第一部分是稱重模塊,通過該模塊可以檢測當前電梯內當前人體的重量,當檢測到電梯內人體的重量大于設置的最大值進行報警提醒;第二部分是分離式紅外對管檢測模塊,在電梯進行關門時,檢測到有人,電梯門不打開;第三部分是矩陣鍵盤,通過該矩陣鍵盤用戶可以輸入想要到達的電梯樓層等;第四部分是供電模塊,給整個系統進行供電;輸出包括三個部分,第一部分是顯示模塊,通過數碼管顯示當前的樓層;第二部分是步進電機,控制電梯的運行及其電梯門的開關;第三部分是報警模塊,檢測到電梯內體重大于設置的最大值,進行報警提醒;第四部分是藍牙模塊,將當前按下的樓層數進行傳輸到外機進行顯示

主機輸處包括兩個三個部分,第一部分是矩陣鍵盤模塊,用戶可以通過該模塊進行電梯樓層的輸入,第二部分是供電模塊,用戶可以通過該模塊進行供電,第三部分是藍牙模塊,將內機輸入的信息進行傳輸進來進行顯示;輸出通過LED指示燈指示當前的按下的樓層數。

具體系統框圖如圖所示。

?

?八、軟件設計流程

主機系統的主流程圖如圖所示;在主程序中:首先對各個模塊進行初始化,隨后進入while主循環,在主循環中,首先進入第一個函數按鍵函數,該函數主要分為兩部分,第一部分為調用按鍵掃描函數獲取按鍵鍵值,第二部分通過鍵值進行相應的處理操作,比如確定樓層數、開門、關門;緊接著進入第二個函數處理函數,獲取電梯內的重量,及其獲取外機按下的樓層數;然后進入第三個函數顯示函數,數碼管顯示當前樓層,LED顯示當前的電梯方向;然后進入第四個函數處理函數,當電梯處于停止狀態時,按下的電梯樓層數為目標樓層數,如果當前電梯為下行方向,當前樓層高于按下樓層,當電梯下行,檢測到按下樓層小于當前運行樓層,則目標樓層為按下樓層。如果當前電梯上行,檢測到按下樓層高于當前樓層,目標樓層為按下樓層;如果當前樓層比目標樓層高,電梯下行,且電梯運行樓層到達當前的樓層數-1,如果當前樓層比目標樓層低,電梯上升,如果電梯運動時間到達,當前樓層加一,當前樓層等于目標樓層,如果門是關閉的,開門,如果門已經打開了,開啟停留定時,如果超重,門不關閉且聲光報警,如果沒超重,門關閉,關閉聲光報警,如果停留時間到達,如果門是開啟的,關門,如果觸發防夾,標記未停留完成,門已關閉清除當前按下樓層標志位,如果電梯方向為下降,清除當前樓層下標志位,發送當前樓層,如果電梯方向為上升,清除當前樓層上標志位,發送當前樓層

?

?九、部分程序展示

軟件版本:keil5

邏輯程序和驅動程序分開,分布于main.c和其他.c文件

void Manage_function(void) {if(flag_lift == 0) //如果當前電梯停止{if(flag_stop == 1 && flag_door == 0){if(flag_floor_d[1] == 1 || flag_floor_u[1] == 1) //一樓按下,目標樓層為一樓{target_floor = 1;}else if(flag_floor_d[2] == 2 || flag_floor_u[2] == 2) //二樓按下,目標樓層為二樓{target_floor = 2;}else if(flag_floor_d[3] == 3 || flag_floor_u[3] == 3) //三樓按下,目標樓層為三樓{target_floor = 3;}else if(flag_floor_d[4] == 4 || flag_floor_u[4] == 4) //四樓按下,目標樓層為四樓{target_floor = 4;}else if(flag_floor_d[5] == 5 || flag_floor_u[5] == 5) //五樓按下,目標樓層為五樓{target_floor = 5;}else if(flag_floor_d[6] == 6 || flag_floor_u[6] == 6) //六樓按下,目標樓層為六樓{target_floor = 6;}else if(flag_floor_d[7] == 7 || flag_floor_u[7] == 7) //七樓按下,目標樓層為七樓{target_floor = 7;}else if(flag_floor_d[8] == 8 || flag_floor_u[8] == 8) //八樓按下,目標樓層為八樓{target_floor = 8;}}}if(flag_lift == 1) //如果電梯當前方向下降{if(flag_floor_d[7] == 7) //如果七樓下{if(current_floor > 7) //如果當前高于七樓,目標樓層等于七樓{target_floor = 7;}}else if(flag_floor_d[6] == 6) //如果六樓下{if(current_floor > 6) //如果當前高于六樓,目標樓層等于六樓{target_floor = 6;}}else if(flag_floor_d[5] == 5) //如果五樓下{if(current_floor > 5) //如果當前高于五樓,目標樓層等于五樓{target_floor = 5;}}else if(flag_floor_d[4] == 4) //如果四樓下{if(current_floor > 4) //如果當前高于四樓,目標樓層等于四樓{target_floor = 4;}}else if(flag_floor_d[3] == 3) //如果三樓下{if(current_floor > 3) //如果當前高于三樓,目標樓層等于三樓{target_floor = 3;}}else if(flag_floor_d[2] == 2) //如果二樓下{if(current_floor > 2) //如果當前高于二樓,目標樓層等于二樓{target_floor = 2;}}else if(flag_floor_d[1] == 1) //如果一樓{if(current_floor > 1) //如果當前高于一樓,目標樓層等于一樓target_floor = 1;}}if(flag_lift == 2) //如果當前電梯上升{if(flag_floor_u[2] == 2) //如果二樓上{if(current_floor < 2) //如果當前樓層低于二樓,目標樓層等于二樓{target_floor = 2;}}else if(flag_floor_u[3] == 3) //如果三樓上{if(current_floor < 3) //如果當前樓層低于三樓,目標樓層等于三樓{target_floor = 3;}}else if(flag_floor_u[4] == 4) //如果四樓上{if(current_floor < 4) //如果當前樓層低于四樓,目標樓層等于四樓{target_floor = 4;}}else if(flag_floor_u[5] == 5) //如果五樓上{if(current_floor < 5) //如果當前樓層低于五樓,目標樓層等于五樓{target_floor = 5;}}else if(flag_floor_u[6] == 6) //如果六樓上{if(current_floor < 6) //如果當前樓層低于六樓,目標樓層等于六樓{target_floor = 6;}}else if(flag_floor_u[7] == 7) //如果七樓上{if(current_floor < 7) //如果當前樓層低于七樓,目標樓層等于七樓{target_floor = 7;}}else if(flag_floor_u[8] == 8) //如果八樓上{if(current_floor < 8) //如果當前樓層低于八樓,目標樓層等于八樓{target_floor = 8;}}}if(current_floor > target_floor) //如果當前樓層比目標樓層高,電梯下降{flag_timer_begin = 0;flag_stop = 0;flag_lift = 1;if(flag_bujin_2_o == 0 && flag_bujin_2_c == 0 && flag_door == 0){flag_bujin_1_c = 1;flag_bujin_1_o = 0;}flag_send = 0;}else if(current_floor < target_floor) //如果當前樓層比目標樓層低,電梯上升{flag_timer_begin = 0;flag_stop = 0;flag_lift = 2;if(flag_bujin_2_o == 0 && flag_bujin_2_c == 0 && flag_door == 0){flag_bujin_1_c = 0;flag_bujin_1_o = 1;}flag_send = 0;}else //當前樓層等于目標樓層{if(flag_stop == 0) //如果沒有停留完成{if(flag_door == 0) //如果門是關閉的,開門{flag_bujin_2_o = 1;flag_bujin_2_c = 0;}else if(flag_door == 1) //如果門已經打開了{flag_timer_begin_s = 1; //開啟停留定時}if(weight_value > 1000|| INFRARED == 1) //如果超重了,進行蜂鳴器提醒,清除停留時間計數{timer1_count_s = 0;if(weight_value > 1000) //如果超重,聲光報警{if(time_num % 15 == 0){BEEP = ~BEEP;}}}else if(weight_value < 1000) //如果沒有超重,蜂鳴器關閉{BEEP = 1;}if(flag_time_s == 1) //如果停留時間到達{flag_timer_begin_s = 0;flag_time_s = 0;flag_stop= 1;}}if(flag_stop == 1) //如果停留完成{if(flag_door == 1) //如果門是開啟的,關門{flag_bujin_2_o = 0;flag_bujin_2_c = 1;if(INFRARED == 1 && flag_bujin_2_c == 1) //如果觸發防夾,標記未停留完成{flag_door = 0;flag_stop = 0;}}else if(flag_door == 0) //如果門已關閉清除當前按下樓層標志位{if(flag_lift == 1) //如果電梯方向為下降,清除當前樓層下標志位{if(flag_send == 0){send_buf[1] = (current_floor/10*0x10 + current_floor%10);Uart_Sent_Str(send_buf);flag_send = 1;}flag_floor_d[target_floor] = 0;}if(flag_lift == 2) //如果電梯方向為上升,清除當前樓層上標志位{if(flag_send == 0){send_buf[1] = (current_floor/10*0x10 + current_floor%10);Uart_Sent_Str(send_buf);flag_send = 1;}flag_floor_u[target_floor] = 0;}if(flag_lift == 0){flag_floor_d[target_floor] = 0;flag_floor_u[target_floor] = 0;}flag_timer_begin = 1; //開啟定時}}}if(flag_time == 1) //定時500ms到達,清除電梯運動標志位{flag_timer_begin = 0;flag_lift = 0;flag_time = 0;flag_floor_d[current_floor] = 0;flag_floor_u[current_floor] = 0;} }

資料請點擊跳轉到官網下載

總結

以上是生活随笔為你收集整理的【单片机毕业设计】【mcuclub-jj-003】基于单片机的八层电梯的设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 依人综合网 | 国产精品 欧美精品 | 亚洲av永久无码精品放毛片 | 国产中文在线 | 国产日韩欧美 | 色婷婷久久五月综合成人 | 成人性生活免费看 | 午夜做爰xxxⅹ性高湖视频美国 | 日韩在线观看你懂的 | 久久99精品久久久 | 黄黄的视频在线观看 | 亚洲 欧美 成人 | 韩国三级做爰视频 | 亚洲最新中文字幕 | 瑟瑟久久| 国产视频精品视频 | 国产精品无码白浆高潮 | www.av777| 亚洲av乱码久久精品蜜桃 | 成人精品二区 | 丁香啪啪| 91成人精品一区在线播放 | 亚洲精品久久久久久久久久 | 一区三区在线 | 奇米四色777 | 成人性生交大免费看 | www国产精品内射老熟女 | 欧美一级一区 | 久久精品国产亚洲av香蕉 | 美女扒开尿口让男人桶 | 朝桐光在线播放 | 亚洲免费黄色网址 | 午夜精彩视频 | 国产精品自产拍在线观看 | 91美女啪啪 | 在线观看你懂的网站 | 国产人成在线观看 | 李丽珍裸体午夜理伦片 | 精品免费一区二区三区 | 向着小小的花蕾绽放 | 亚洲综合另类 | 在线日韩免费 | 国产精品xxx | 51ⅴ精品国产91久久久久久 | 青青草综合在线 | 男女午夜视频在线观看 | 国产精品va无码一区二区 | 成人片免费视频 | 国产精品久久久网站 | 99热在线国产 | 亚洲精选在线观看 | 成人极品 | 日本在线视频不卡 | 三级av在线免费观看 | 在线观看高清视频 | 国产白丝一区二区三区 | 欧美理论视频 | 亚洲成人日韩 | 性视频免费看 | 成人在线激情 | 中文在线日韩 | 一区二区在线免费视频 | 日韩欧美综合久久 | 亚洲少妇一区二区三区 | 亚洲精品国产无码 | 亚洲最新网址 | 欧美jjzz | 国产综合久久久久 | 日韩在线影院 | 超碰在线观看免费 | 日日狠狠久久偷偷四色综合免费 | 国产寡妇亲子伦一区二区三区四区 | 亚洲免费激情视频 | 男女网站在线观看 | 国产精品极品白嫩在线 | 亚洲天堂av一区二区三区 | 成人一级网站 | 色av影院| 51免费看成人啪啪片 | 久久中字 | 永久免费成人代码 | 国产成人专区 | 亚洲爽爽网 | 欧美一区二区不卡视频 | 久久综合日本 | 桃色网站在线观看 | 国产精品第7页 | 欧美一级免费大片 | 欧美第一页在线 | 国产97在线 | 亚洲 | 国产偷国产偷av亚洲清高 | 76少妇精品导航 | 尤物193.com | 91激情在线观看 | 古典武侠av | 亚洲天堂一区二区三区 | 人乳喂奶hd无中字 | 麻豆精品在线播放 | 性生交大片免费看狂欲 |