freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于stm32的電梯控制器畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-04-03 10:22 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 分別與相應(yīng)的 LED 小燈相連; ? 將 ~ 分別與鍵盤(pán)相應(yīng)的鍵位鏈接 ? 將 、 與電機(jī)驅(qū)動(dòng)模塊連接并將模塊的輸出端與直流電機(jī)連接 ,將電機(jī)驅(qū)動(dòng)模塊與高于 +5V 的電源相連。 硬件系統(tǒng)的部分設(shè)計(jì) 鍵盤(pán) 硬件電路 設(shè)計(jì) 本設(shè)計(jì)的鍵盤(pán)有九個(gè)獨(dú)立的彈性小按鍵構(gòu)成, 所 有鍵盤(pán)的公共端接地 另一端與分別與相應(yīng)的 GPIO 口相連。所有的 GPIO 口都設(shè)置成上拉輸入 電平觸發(fā)模式 。一旦小健按下相應(yīng)的引腳與地接通 呈低電平,當(dāng)程序進(jìn)行按鍵查詢(xún)時(shí)到該引腳為低電平,表示按鍵被按下。此時(shí)系統(tǒng)點(diǎn)亮相應(yīng)的指示燈,隨后按鍵彈起該引腳恢復(fù)高電平。系統(tǒng)根據(jù)小燈的狀態(tài)立即或等待執(zhí)行相應(yīng)的操作。之后系統(tǒng)繼續(xù)檢測(cè)其他按鍵,按鍵之間互不影響。 鍵盤(pán)電路如下圖 。 按鍵再按下時(shí)由于彈性小按鍵機(jī)械特性,在按鍵按下和彈起的瞬間會(huì)有抖動(dòng)現(xiàn)象,抖動(dòng)的時(shí)間一般為 5~10ms。這個(gè)情況在 stm32 對(duì)按鍵進(jìn)行查詢(xún)時(shí)造成誤判,嚴(yán)重影響了按鍵的穩(wěn)定性和電梯運(yùn)行時(shí)系統(tǒng)判斷的準(zhǔn)確性。所以在編寫(xiě)程序時(shí)要 在按鍵查詢(xún)程序里加上去抖程序。 濟(jì)南大學(xué)畢業(yè)設(shè)計(jì) 8 圖 鍵盤(pán)電路 圖 按鍵按下時(shí)電壓變化 LED 指示燈硬件 電路 設(shè)計(jì) LED 指示等電路是由 11 個(gè)相互獨(dú)立的顏色不同的 LED 小燈構(gòu)成。它們的正極都通過(guò)一個(gè) 510 接 +5V 電源,負(fù)極與 stm32 相應(yīng)的引腳 GPIO 口連接。所有的 GPIO 口都設(shè)置成上拉的推挽輸出模式。其中兩個(gè) LED 燈為系統(tǒng)模擬開(kāi)門(mén)關(guān)門(mén)狀態(tài)的指示燈,剩下的九個(gè) LED 指示燈分別用作鍵盤(pán)的九個(gè)獨(dú)立按鍵的指示燈來(lái)指示按鍵是否被按過(guò)的狀態(tài)。當(dāng)系統(tǒng)按鍵查詢(xún)程序查詢(xún)到有按鍵被按下時(shí),系統(tǒng)立使 stm32 相應(yīng)的 GPIO口 輸出 為 低電平,點(diǎn)亮相應(yīng)的指示小燈。系統(tǒng)會(huì)一直保持該 LED 指示燈的點(diǎn)亮狀態(tài)濟(jì)南大學(xué)畢業(yè)設(shè)計(jì) 9 直到系統(tǒng)完成電梯相應(yīng)的操作,然后熄滅小燈。小燈之間互不影響。 LED 指示燈的電路原理圖如下。 圖 LED指示燈電路原理圖 八段數(shù)碼管硬件電路設(shè)計(jì) 因此三級(jí)管基極接地,發(fā)射極接 +5V 電源。八段數(shù)碼管顯示器電路原理圖如下圖. 不 管幾 位數(shù)碼管 ,其顯示原理都是一樣都是靠點(diǎn)亮內(nèi)部的發(fā)光二極管來(lái)發(fā)光。從圖( a) 可看出,一位數(shù)碼管 的引腳 10 個(gè) 顯示一個(gè) 8 字需要 7 個(gè)小段,另外還有一個(gè)小數(shù)點(diǎn),所以其內(nèi)部一共有 8 個(gè)小的發(fā)光二極管,最后還有一個(gè)公共端 生產(chǎn)商為了封裝統(tǒng)一單位數(shù)碼管都封裝 10 個(gè)引腳,其中第 3 個(gè)引腳和第 8 個(gè)引腳是連在一起的。而的公共端又可以分為共陽(yáng)極和共陰極,圖 (b)為共陰極內(nèi)部原理圖,圖 ( c)為共陽(yáng)極內(nèi)部原理圖 [4]。 共陽(yáng)極數(shù)碼管內(nèi)部所有發(fā)光的陽(yáng)極連在一起的接高電平,陰極是互相獨(dú)立的。它的段選段有 a、 b、 c、 d、 e、 f、 g、 dp。當(dāng)想要 某一段點(diǎn)亮?xí)r 就 使 這一段 輸入 為 低電平就行了。例如想要顯示數(shù)字 1,那么給 b、 c 低電平,其他的給高電平就 能夠 顯示數(shù)字 1 了。因此我們?cè)谟脭?shù)碼管 為顯示器 來(lái) 顯示數(shù)字 0~9 時(shí),首先要對(duì)其進(jìn)行編碼,當(dāng)要顯示某個(gè)數(shù)字式像數(shù)碼管送入相應(yīng)的編碼就可以顯示該數(shù)字了。然而共陰極的數(shù)碼管正好和共陽(yáng)極的相反,要想點(diǎn)亮數(shù)碼管 a、 b、 c、 d、 e、 f、 g、 dp 中的某一段即必須 使 該端 的引腳 輸出為 高電平。 濟(jì)南大學(xué)畢業(yè)設(shè)計(jì) 10 圖 ( a)引腳 ( b)共陰極 ( c)共陽(yáng)極 圖 電機(jī)驅(qū)動(dòng)模塊硬件電路 機(jī) IN IN IN IN4 引腳從單片機(jī)接輸入控制電平,控制電機(jī)的正轉(zhuǎn)反轉(zhuǎn) 。 電 機(jī)驅(qū)動(dòng)模塊硬件電路主要由 L298N 直流電機(jī)驅(qū)動(dòng)芯片和其外圍電路構(gòu)成,其電路原理圖如下圖 所示。 L298N 是 SGS 公司的產(chǎn)品,內(nèi)部包含 4 通道邏輯驅(qū)動(dòng)電路,是一種二相和四相電機(jī)的專(zhuān)用驅(qū)動(dòng)器,即內(nèi)含二個(gè) H 橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn) TTL 邏輯電平信號(hào),可驅(qū)動(dòng) 46V、 2A 以下的電機(jī)。其引腳排列如下圖 所示。 OUT OUT2 和 OUT OUT4 之間分別接 2 個(gè)電 濟(jì)南大學(xué)畢業(yè)設(shè)計(jì) 11 圖 L298N 邏輯 狀態(tài) 表表 如下 : 左電機(jī) 右電機(jī) 左電機(jī) 右電機(jī) IN1 IN2 IN3 IN4 1 0 1 0 正轉(zhuǎn) 正轉(zhuǎn) 1 0 0 1 正轉(zhuǎn) 反轉(zhuǎn) 1 0 1 1 正轉(zhuǎn) 停 0 1 1 0 反轉(zhuǎn) 正轉(zhuǎn) 1 1 1 0 停 正轉(zhuǎn) 0 1 0 1 反轉(zhuǎn) 反轉(zhuǎn) 表 濟(jì)南大學(xué)畢業(yè)設(shè)計(jì) 12 第 4 章 系統(tǒng)軟件設(shè)計(jì) 主程序設(shè)計(jì) 電梯控制系統(tǒng)程序是在 Keil 的環(huán)境下使用 C 語(yǔ)音編寫(xiě)的。由于使用的是 stm32開(kāi)發(fā)板,在編程時(shí)可以進(jìn)行模塊化編程,即把程序分成一個(gè)個(gè)功能模塊進(jìn)行編寫(xiě)。這樣使編程過(guò)程更加規(guī)范化, 程序結(jié)構(gòu)更加清晰便于閱讀,程序在編譯過(guò)程中更易查錯(cuò)與修改,也便于在日后編程時(shí)遇到需要使用相同或相似的子程序模塊時(shí)可以直接把以前編寫(xiě)過(guò)的模塊 直接拿來(lái)使用或修改后使用,使以后的編程更加方便容易 。因此程序可分為樓層算法模塊 、開(kāi)門(mén)關(guān)門(mén)控制模塊、電機(jī)控制模塊、按鍵查詢(xún)模塊、顯示模塊。該電梯以共有 3 層 。 其中電梯的層數(shù)判斷是通過(guò) 控制電機(jī)轉(zhuǎn)動(dòng)時(shí)間來(lái)進(jìn)行的,即電梯轉(zhuǎn)動(dòng) 5s 為電梯運(yùn)行通過(guò)一層的高度 。 其主程序流程圖如下圖 所示: 圖 當(dāng)前樓層是否是目的層 下面 是否需要電梯 電梯當(dāng)前運(yùn)行方向 上面 是否需要電梯 電梯下移顯示層數(shù) 電 梯 停 止顯示、開(kāi)門(mén) 電梯上移顯示層數(shù) 程序初始化 判斷 所在的樓層并顯示 是否需要電梯 反向 是 上行 下行 否 當(dāng)前樓層是否是目的層 電 梯 停 止顯示、開(kāi)門(mén) 開(kāi)始 反向 是 是 是 否 否 否 濟(jì)南大學(xué)畢業(yè)設(shè)計(jì) 13 在主程序首先要對(duì)把各個(gè)字程序模塊的路徑加載進(jìn)去,然后 在 主函數(shù)中首先要 進(jìn)行系統(tǒng)時(shí)鐘設(shè)置和延時(shí)初始化,然后要對(duì) LED 指示燈、按鍵、電機(jī)驅(qū)動(dòng)模塊、數(shù)碼管 等與之連接的硬件接口進(jìn)行初始化 。主程序如 下 : int main(void) { u8 F=1。 LED_O=1。 LED_C=0。 Stm32_Clock_Init(9)。 //系統(tǒng)時(shí)鐘設(shè)置 delay_init(72)。 //延時(shí)初始化 LED_Init()。 //初始化與 LED 連接的硬件接口 KEY_Init()。 //初始化與按鍵連接的硬件接口 uart_init(72,9600)。 motor_init()。 // 初始化與 motor 連接的硬件接口 disp_init()。 // 初始化與 disp 連接的硬件接口 在寫(xiě)主函數(shù)時(shí)為了保證程序一直循環(huán)下去,要在主函數(shù)中寫(xiě)一個(gè) while( 1)是循環(huán)然后在這個(gè)死循環(huán)中寫(xiě)出電梯控制系統(tǒng)的主程序。電梯系統(tǒng) 在開(kāi)始運(yùn)行時(shí)它的初始狀態(tài)有 3 種可能,電梯從第一層開(kāi)始運(yùn)行,電梯從第 二 層開(kāi)始運(yùn)行和電梯從第 三 層開(kāi)始運(yùn)行 。下面先介紹電梯從第一層開(kāi)始時(shí)的運(yùn)行情況。 系統(tǒng)在初始化時(shí),默認(rèn)電梯是從第一層開(kāi)始運(yùn)行。一但有人要到第二層或第三層,或者第二層第三層有人需要電梯就上行。在這之前,軟件系統(tǒng)會(huì)通過(guò) if 語(yǔ)句進(jìn)行判定,是否與上述情況相對(duì)應(yīng)的按鍵被按下,即是否存在 LED2==0 或 LED2_U==0 或LED2_D==0 或 LED3==0 或 LED3_D==0。若 if語(yǔ)句判定條件成立,那么系統(tǒng)控制電梯上行。當(dāng)?shù)竭_(dá)第二層時(shí),系統(tǒng)會(huì)再次通過(guò) if 語(yǔ) 句判定,是否第二層是電梯所要到的層數(shù),若是則電梯停止并打開(kāi)電梯門(mén),若不是則電梯繼續(xù)上行到達(dá)第三層。當(dāng)電梯在第二層停下時(shí)系統(tǒng)會(huì)再次通過(guò) if 語(yǔ)句進(jìn)行判定,不過(guò)此時(shí)上行優(yōu)先。如果有上行的要求, ,即 if 語(yǔ)句查詢(xún)到 LED3==0||LED3_D==0, 那么電梯會(huì)先進(jìn)行上行,滿(mǎn)足上行要求。如沒(méi)有 ,則系統(tǒng)會(huì)再使用 if 語(yǔ)句進(jìn)行判定。若有下行要求,即 if 語(yǔ)句查詢(xún)到LED1==0||LED1_U==0,則系統(tǒng)執(zhí)行下行命令。 while(1) { disp(F)。 //顯示當(dāng)前樓層 KEY_LED()。 if(F==1) //如果處于第一層 濟(jì)南大學(xué)畢業(yè)設(shè)計(jì) 14 { LED_O=1。 //電梯門(mén) 正 處于關(guān)閉狀態(tài) LED_C=0。 disp(F)。 if(LED1_U==0) //如果第一層電梯外有人按上行鍵 { delay_ms(100)。 LED_O=0。 //延時(shí) 100ms 后開(kāi)門(mén)上行鍵指示燈滅 LED_C=1。 LED1_U=1。 door(F)。 //電梯轎廂開(kāi)關(guān)門(mén)控制子程序調(diào)用 }door(F)。 if(LED2==0||LED2_U==0||LED2_D==0||LED3==0||LED3_D==0) //如果有人要到第 2 層或第 3 層 , 或 者第二層第三層有人需要電梯 { motor1(F)。 //調(diào)用電機(jī)控制子程序上行 F++。 disp(F)。 //顯示電梯當(dāng)前所在樓層 if(LED2==0||LED2_U==0||LED2_D==0)//如果第二層是電梯所要到的層數(shù) { LED_C_K=1。 LED_C_K=1。 IN1=1。 IN2=1。 //電機(jī)停止,電梯停止在第 2 層 LED2=1。 LED2_U=1。 LED2_D=1。 //熄滅第二層相對(duì)應(yīng)的鍵盤(pán)指示燈 delay_scan_s(1)。 LED_O=0。 LED_C=1。 //電梯開(kāi)門(mén) door(F)。 if(LED3==0||LED3_D==0) //如果有人要上第三層或第三層有人需要電梯 { motor1(F)。 //電梯上行 F++。 濟(jì)南大學(xué)畢業(yè)設(shè)計(jì) 15 disp(F)。 //到達(dá)第三層后顯示電梯所在樓層 LED1=1。 LED2=1。 LED3=1。 LED3_D=1。 LED_C_K=1。 LED_C_K=1。 //熄滅所有按鍵指示燈 IN1=1。 IN2=1。 //電梯停止 delay_scan_s(1)。 LED_O=0。 LED_C=1。 //電梯開(kāi)門(mén) door(F)。 } else if(LED1==0||LED1_U==0) //另外在第二層時(shí)如果有人要到第第 1 層或第一層有人需要電梯 { motor1(F)。 //電梯下行 F。 disp(F)。 //電梯到達(dá)第一層時(shí)顯示電梯所在樓層 LED1=1。 LED2=1。 LED3=1。 LED1_U=1。 LED_C_K=1。 LED_C_K=1。 //熄滅所有按鍵指示燈 delay_scan_s(1)。 LED_O=0。 LED_C=1。 //開(kāi)門(mén) door(F)。 } } else if(LED3==0||LED3_D==0) // //另外在第二層時(shí)如果有人要到第第 3 層或第 3 層有人需要電梯 { motor1(F)。 //電梯 上行 濟(jì)南大學(xué)畢業(yè)設(shè)計(jì) 16 F++。 disp(F)。 //電梯到達(dá)第 3 層時(shí)顯示電梯所在樓層 LED1=1。 LED2=1。 LED3=1。 LED3_D=1。 LED_C_K=1。 LED_C_K=1。 //熄滅所有按鍵指示燈 IN1=1。 IN2=1。 delay_scan_s(1)。 LED_O=0。 LED_C=1。 //開(kāi)門(mén) door(F)。 } } }
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1