3工位旋轉(zhuǎn)工作臺(tái)的控制系統(tǒng)設(shè)計(jì)
3工位旋轉(zhuǎn)工作臺(tái)的控制系統(tǒng)設(shè)計(jì),旋轉(zhuǎn),工作臺(tái),控制系統(tǒng),設(shè)計(jì)
控制流程圖 控制系統(tǒng)的工作順序和循環(huán)過程 控制系統(tǒng)手動(dòng)調(diào)整部分 PLC I/O接線圖 PLC I/O分配表 輸入信號(hào)名稱 外部元件 內(nèi)部地址 輸出信號(hào)名稱 外部元件 內(nèi)部地址 手動(dòng)運(yùn)行選擇 SA3-1 I0.0 送料器推進(jìn)電磁閥 YV1 Q0.0 半自動(dòng)運(yùn)行選擇 SA3-2 I0.1 送料退回電磁閥 YV2 Q0.1 全自動(dòng)運(yùn)行選擇 SA3-3 I0.2 工件夾緊電磁閥 YV3 Q0.2 上料器推進(jìn)按鈕 SB1 I0.3 工件放松電磁閥 YV4 Q0.3 上料器退回按鈕 SB2 I0.4 鉆頭下降電磁閥 YV5 Q0.4 工件夾緊按鈕 SB3 I0.5 鉆頭上升電磁閥 YV6 Q0.5 工件放松按鈕 SB4 I0.6 卸料推進(jìn)電磁閥 YV7 Q0.6 鉆頭下降按鈕 SB5 I0.7 卸料退回電磁閥 YV8 Q0.7 鉆頭上升按鈕 SB6 I1.0 工作臺(tái)轉(zhuǎn)動(dòng)電動(dòng)機(jī)接觸器 KM1 Q1.0 卸料器推進(jìn)按鈕 SB7 I1.1 鉆頭轉(zhuǎn)動(dòng)電動(dòng)機(jī)接觸器 KM2 Q1.1 卸料器退回按鈕 SB8 I1.2 工作臺(tái)旋轉(zhuǎn)按鈕 SB9 I1.3 上料器到位行程開關(guān) SQ1 I1.4 上料退回到位行程開關(guān) SQ2 I1.5 鉆頭下降到位行程開關(guān) SQ3 I2.0 鉆頭上升到位行程開關(guān) SQ4 I2.1 卸料器推進(jìn)到位行程開關(guān) SQ5 I2.2 卸料器退回到位行程開關(guān) SQ6 I2.3 工作臺(tái)旋轉(zhuǎn)到位行程開關(guān) SQ7 I2.4 放松到位行程開關(guān) SQ8 I2.5 壓力繼電器觸點(diǎn) SP1 I2.6 梯形圖 -1 程序梯形圖 梯形圖 -2 梯形圖 -3 梯形圖 -4 哈爾濱理工大學(xué)
機(jī)電一體化系統(tǒng)設(shè)計(jì)
課程設(shè)計(jì)說明書
設(shè)計(jì)題目:三工位旋轉(zhuǎn)工作臺(tái)的控制系
統(tǒng)設(shè)計(jì)
專 業(yè): 機(jī)械電子工程
班 級(jí): 機(jī)電14-2班
學(xué) 號(hào): 1430120205
姓 名: 韓 麒
指導(dǎo)教師: 丁艷艷
二〇一七年 十一月
哈爾濱理工大學(xué)課程設(shè)計(jì)說明書 哈爾濱理工大學(xué)榮成學(xué)院課程設(shè)計(jì)任務(wù)書 姓 名 韓麒 學(xué) 號(hào) 14301202 05 班 級(jí) 機(jī)電 14-2 專 業(yè) 機(jī)械電子工 程 宋同健 14301202 23 設(shè)計(jì)題目 三工位旋轉(zhuǎn)工作臺(tái)的控制系統(tǒng)設(shè)計(jì) 設(shè)計(jì)內(nèi)容: 1、 根據(jù)設(shè)計(jì)要求,確定系統(tǒng)總體方案; ( 1) 以 PLC為核心,設(shè)計(jì)三工位旋轉(zhuǎn)工作臺(tái)的 PLC控制系統(tǒng) ; ( 2)根據(jù)系統(tǒng)的基本結(jié)構(gòu)、工藝過程和控制要求,確定控制方案; ( 3) 繪制控制系統(tǒng) 的流程圖 和 PLC的 I/O接線圖 , 設(shè)計(jì) PLC梯形圖程序 ; ( 4) 所選控制方案應(yīng)合理,所設(shè)計(jì)的控制系統(tǒng)應(yīng)能 夠滿足控制對象的 要求, 安全可靠,操作方便。 2、程序設(shè)計(jì) : ( 1)根據(jù)系統(tǒng)功能要求,設(shè)計(jì)系統(tǒng)的 控制 流程,畫出總體流程圖 ; ( 2)畫出 控制程序的梯形圖; ( 3)通過仿真方式模擬調(diào)試程序。 3、完成課程設(shè)計(jì)論文(字?jǐn)?shù)不少于 3500 字。) 任務(wù)分配: 總體方案、控制電路、軟件編程: 宋同健 機(jī)械結(jié)構(gòu): 韓麒 編寫說明書: 宋同健 設(shè)計(jì)時(shí)間: 2017 年 11 月 26 日至 12 月 3 日 答辯時(shí)間: 2017 年 12 月 3 日 主要參考文獻(xiàn)、資料: 1 張建民 .機(jī)電一體化系統(tǒng)設(shè)計(jì) .4 版 .北京:高等教育出版社, 2014.12 2 廖常初 .S7-200PLC 編程及應(yīng)用 .2 版 .北京:機(jī)械工業(yè)出版, 2013.10 3 左健民 .液壓與氣壓傳動(dòng) .4 版 .北京:機(jī)械工業(yè)出版社, 2007.5 4 段鐵群 .機(jī)械系統(tǒng)設(shè)計(jì) .北京:科學(xué)出版社, 2010.2 5 王永華 .現(xiàn)代電氣控制及 PLC 應(yīng)用技術(shù) .北京:航空航天大學(xué)出版社, 2008 6 羅宇航 .流行 PLC 實(shí)用程序及設(shè)計(jì) .西安:電子科技大學(xué)出版社, 2006.12 哈爾濱理工大學(xué)課程設(shè)計(jì)說明書 目錄 第 1章 緒論 ............................................................................................. 1 1.1 設(shè)計(jì)背景 ........................................................................................... 1 1.2.設(shè)計(jì)的主要任務(wù) ............................................................................... 1 第 2章 總體方案設(shè)計(jì) ............................................................................. 3 2.1 方案說明 .......................................................................................... 3 2.1.1 控制要求 ................................................................................... 3 2.1.2 制定控制方案 ........................................................................... 3 2.2 控制方式選擇 .................................................................................. 4 第 3章 PLC控制系統(tǒng)設(shè)計(jì) ..................................................................... 5 3.1 工作臺(tái)動(dòng)作特性 .............................................................................. 5 3.2 液壓控制部分的設(shè)計(jì) ...................................................................... 5 3.3 系統(tǒng)控制流程圖 .............................................................................. 6 3.4 選擇 PLC 類型 ................................................................................ 8 3.5 I/O 地址分配 .................................................................................... 8 3.6 I/O 接線圖 ...................................................................................... 10 3.7 控制程序設(shè)計(jì) ................................................................................ 11 3.8 控制程序語句表 ............................................................................ 16 3.9 程序調(diào)試 ........................................................................................ 20 課程設(shè)計(jì)心得 ......................................................................................... 23 參考文獻(xiàn) ................................................................................................. 24 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 1 第 1章 緒論 1.1設(shè)計(jì)背景 隨著科學(xué)技術(shù)的不斷發(fā)展,機(jī)械加工的方法和手段也逐漸變得豐 富起來,各種先進(jìn)技術(shù)被人們引入機(jī)械行業(yè)中來形成各種新興學(xué)科, 機(jī)電一體化 1就是其中一門。機(jī)電一體化是以電子技術(shù)特別是微電子 技術(shù)為主導(dǎo)、多種新興技術(shù)與機(jī)械技術(shù)交叉、融合而成的綜合性高技 術(shù),是機(jī)械與電子的有機(jī)結(jié)合產(chǎn)物。其目的是不斷提高勞動(dòng)生產(chǎn)率, 減輕人們的體力勞動(dòng),逐步代替部分腦力勞動(dòng)。機(jī)械一體化的機(jī)械加 工比傳統(tǒng)機(jī)械加工有很大的優(yōu) 越性。在本課題中,機(jī)電一體化的好處 顯得尤為突出。 并且, PLC2的處理器速度和功能在不斷增加,已發(fā)展成具有邏 輯控制功能過程控制功能運(yùn)動(dòng)控制功能、數(shù)據(jù)處理功能、聯(lián)網(wǎng)通信功 能等的多功能控制器,加上它的價(jià)格低廉、操作簡便、改變功能靈活 易用、維護(hù)工作量小等優(yōu)勢,使 PLC 在工業(yè)生產(chǎn)過程自動(dòng)化中獲得 廣泛應(yīng)用。根據(jù) PLC 的原理和應(yīng)用,以西門子 S7 系列 PLC 為例介紹 三工位旋轉(zhuǎn)工作臺(tái)控制系統(tǒng)程序設(shè)計(jì)。 三工位旋轉(zhuǎn)工作臺(tái)機(jī)床設(shè)備在機(jī)械加工等自動(dòng)化機(jī)床設(shè)備中得 到廣泛應(yīng)用。通過控制工作臺(tái)旋轉(zhuǎn),可以實(shí)現(xiàn)在加工的同時(shí)完成上料 和卸 料操作,并能實(shí)現(xiàn)流水作業(yè),大大提高了工作效率,降低了工人 勞動(dòng)強(qiáng)度。若在上料工位和卸料工位上設(shè)計(jì)合適的機(jī)械手,則可實(shí)現(xiàn) 無人上料和卸料操作。 鉆床加工三工位工作臺(tái)是由送料、鉆孔、卸載三部分組成。工作 臺(tái)通過每旋轉(zhuǎn) 120來完成一個(gè)工位, 循 環(huán)運(yùn)行來 實(shí)現(xiàn)工件的快速送 料、鉆孔、卸載的流水作業(yè)系統(tǒng)。 1.2.設(shè)計(jì)的主要任務(wù) 本課程設(shè)計(jì)中三工位旋轉(zhuǎn)工作臺(tái)是鉆孔加工中在工作臺(tái)三個(gè)不 同工位分別同時(shí)完成上料、鉆孔、卸料等工藝過程的工坐臺(tái),這大大 提高了機(jī)械加工的效率。但是新的問題接踵而至:三個(gè)工位同時(shí)動(dòng)作 就要要求操作工人完成上料、裝夾 工件、鉆孔、卸工件。這樣高強(qiáng)度 的工作工人是否能承受的了, 怎樣降低工人的勞動(dòng)強(qiáng)度呢? 提高自動(dòng) 化程度就成了我們面臨的首要問題。 隨著科技的發(fā)展,繼電器控制已經(jīng)逐步被可編程控制器 (PLC)控 制所代替。 PLC 是以計(jì)算機(jī)技術(shù)為核心的通用自動(dòng)化控制裝置 , 它的 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 2 功能性強(qiáng) , 可靠性高 , 編程簡單 , 使用方便 , 體積小巧 , 近年來在工 業(yè)生產(chǎn)中得到了廣泛的應(yīng)用 , 被譽(yù)為當(dāng)代工業(yè)自動(dòng)化主要支柱之一 。 在 PLC 的支持下,怎樣實(shí)現(xiàn)操作流程的自動(dòng)化這個(gè)問題迎刃而 解。于是在機(jī)加工過程中我們可以選擇各種控制機(jī)制去簡化工人操作 以及降低工人勞動(dòng)強(qiáng)度、提高效 率等。 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 3 第 2章 總體方案設(shè)計(jì) 2.1 方案說明 剛接觸機(jī)電一體化系統(tǒng)設(shè)計(jì)這門課程時(shí),老師就教導(dǎo)我們做任何 設(shè)計(jì)都要對做的題目有個(gè)宏觀認(rèn)識(shí)。只有對整體設(shè)計(jì)做出全局的把 握,設(shè)計(jì)才會(huì)有所針對,事半功倍。拿到課程設(shè)計(jì)題目后,我并沒有 直接進(jìn)入主題開始著手設(shè)計(jì),而是逐步將設(shè)計(jì)要求研究了一遍,認(rèn)真 對設(shè)計(jì)思路做了一個(gè)規(guī)劃然后才開始設(shè)計(jì)。 2.1.1 控制要求 ( 1)用選擇開關(guān)來決定控制系統(tǒng)的全自動(dòng)、半自動(dòng)運(yùn)行和手動(dòng) 調(diào)整方式。 ( 2)手動(dòng)調(diào)整采用按鈕點(diǎn)動(dòng)的控制方式。它包括上料器進(jìn)、退 操作、工件夾緊、放松操作,鉆頭下降、上升操作 ,卸料器進(jìn)、退操 作,工作臺(tái)旋轉(zhuǎn)這些操作。 ( 3)系統(tǒng)處于半自動(dòng)工作方式時(shí),每執(zhí)行完成一個(gè)工作循環(huán), 用一個(gè)啟動(dòng)按鈕來控制進(jìn)入下一次循環(huán)。 ( 4)系統(tǒng)處于全自動(dòng)運(yùn)行方式時(shí),可實(shí)現(xiàn)自動(dòng)往復(fù)地循環(huán)執(zhí)行。 ( 5)上料器、夾緊裝置、卸料器、鉆頭上下運(yùn)動(dòng)由液壓缸 3驅(qū) 動(dòng)。夾緊力由壓力繼電器檢測控制。鉆頭旋轉(zhuǎn)、工作臺(tái)旋轉(zhuǎn)由電動(dòng)機(jī) 驅(qū)動(dòng) 4。 2.1.2 制定控制方案 ( 1)用選擇開關(guān)來決定控制系統(tǒng)的全自動(dòng)、半自動(dòng)運(yùn)行和手動(dòng) 調(diào)整方式。 ( 2)手動(dòng)調(diào)整采用按鈕點(diǎn)動(dòng)的控制方式。 ( 3)系統(tǒng)處于半自動(dòng)工作方式時(shí),每執(zhí)行完成一個(gè)工 作循環(huán), 用一個(gè)啟動(dòng)按鈕來控制進(jìn)入下一次循環(huán)。 ( 4)系統(tǒng)處于全自動(dòng)運(yùn)行方式時(shí),可實(shí)現(xiàn)自動(dòng)往復(fù)地循環(huán)執(zhí)行。 ( 5)系統(tǒng)運(yùn)動(dòng)不很復(fù)雜,采用三臺(tái)電動(dòng)機(jī):主動(dòng)電動(dòng)機(jī)、液壓 電動(dòng)機(jī)和工作臺(tái)旋轉(zhuǎn)電動(dòng)機(jī)。除了主軸轉(zhuǎn)動(dòng)和工作臺(tái)旋轉(zhuǎn)用電動(dòng)機(jī)拖 動(dòng)外,其他所有運(yùn)動(dòng)都可以采用液壓傳動(dòng)。 ( 6)對于部分與順序控制和工作循環(huán)過程無關(guān)的主零部件和控 制部件,采用進(jìn)入 PLC 的控制方式以達(dá)到方便控制。 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 4 2.2 控制方式選擇 三工位旋轉(zhuǎn)工作臺(tái)控制系統(tǒng)的設(shè)計(jì)任務(wù)主要由兩大部分,其中最 主要的就是其旋轉(zhuǎn)工作臺(tái)的 PLC 梯形圖設(shè)計(jì),也就是邏輯程序設(shè)計(jì); 其次 是液壓控制原理圖的設(shè)計(jì)。 該工作臺(tái)控制系統(tǒng)在很大程度上是利用繼電器實(shí)現(xiàn)的, 繼電器 - 接觸器 控制 系統(tǒng)雖有較好的抗干擾能力,但使用了大量的機(jī)械觸點(diǎn), 使得設(shè)備連線復(fù)雜,且觸點(diǎn)時(shí)開時(shí)閉時(shí)容易受電弧的損害,壽命短, 系統(tǒng)可靠性差。其次 可編程序控制器 的梯形圖與傳統(tǒng)的電氣原理圖非 常相似,主要原因是其大致上沿用了繼電器控制的電路元件和符號(hào)和 術(shù)語,僅個(gè)別之處有些不同,同時(shí)信號(hào)的輸入輸出形式及控制功能基 本上也相同。 并且 PLC 在性能上比繼電器 -接觸器控制系統(tǒng)優(yōu)異,特別是其可 靠性、通用性強(qiáng)、設(shè)計(jì)施工周期短、調(diào)試修改方便,而且體積小、 功 耗低、使用維護(hù)方便。并且近年來隨著電子技術(shù)的飛速發(fā)展, PLC 的 成本在不斷下降。綜合考慮以上各種因素,對三工位工作臺(tái)自動(dòng)化控 制選用 PLC 控制系統(tǒng)。 而最初的 PLC 就已經(jīng)有很完善的繼電器控制功能了。在這里選 用 PLC 控制完全是對癥下藥。 PLC 采用循環(huán)掃描的工作方式,對每 個(gè)程序, CPU 從第一條指令開始執(zhí)行,按指令步序號(hào)做周期性的程序 循環(huán)掃描,如果無跳轉(zhuǎn)指令,則從第一條指令開始逐條執(zhí)行用戶程序, 直至遇到結(jié)束符號(hào)后又返回第一條指令,如此周而復(fù)始不斷循環(huán)。每 一個(gè)循環(huán)稱為一個(gè)掃描周期。一個(gè)掃描周期分為輸入采樣、程序執(zhí)行、 輸出刷新三個(gè)階段。 其工作過程為:當(dāng)按下啟動(dòng)按鈕后,各控制信號(hào)的狀態(tài)在 PLC 的輸入采樣階段被存入 PLC 內(nèi)部的 I 區(qū),然后 PLC 逐條執(zhí)行程序, 在輸出刷新階段將 I 區(qū)的狀態(tài)輸出到 Q 區(qū), Q 區(qū)的狀態(tài)控制各繼電器 線圈,進(jìn)而控制各電磁閥和攪拌電動(dòng)機(jī)的工作。 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 5 第 3章 PLC控制系統(tǒng)設(shè)計(jì) 3.1 工作臺(tái)動(dòng)作特性 三工位旋轉(zhuǎn)工作臺(tái)控制動(dòng)作特性如下: 工位 1:工作臺(tái)旋轉(zhuǎn)到工位 1 后上料器推進(jìn),上料到位后退回等 待。 工位 2:工工作臺(tái)旋轉(zhuǎn)到工位 2 后,夾緊裝置將料加緊,鉆頭向 下鉆孔,下鉆到位后退回,退回到位后工件松開,放松完成后等待。 工 位 3:工作臺(tái)旋轉(zhuǎn)到工位 3 后,卸料器向前將加工完成的工件 推出,推出到位后退回,退回到位后等待。 其工作示意如下圖 3-1 所示。 圖 3-1 三工位旋轉(zhuǎn)工作臺(tái)系統(tǒng)示意圖 3.2 液壓控制部分的設(shè)計(jì) 根據(jù)三工位旋 轉(zhuǎn)工作臺(tái)的動(dòng)作要求,控制部分大多采用液壓電磁 閥控制。當(dāng)送料器推進(jìn)到位后碰到推進(jìn)到位行程開關(guān)時(shí),液壓閥供油 方向發(fā)生改變,活塞桿退回?;钊麠U退回到位后碰到退回到位行程開 關(guān),液壓閥動(dòng)作處于中間位置,工位 1 處于等待狀態(tài)。工位 2 動(dòng)作順 序是工作臺(tái)轉(zhuǎn)動(dòng)到位后開始夾緊,夾緊后壓力繼電器動(dòng)作使活塞缸處 于保壓狀態(tài),同時(shí)使鉆頭旋轉(zhuǎn)以及下降。等鉆頭下降達(dá)到行程開關(guān)位 置處鉆頭停止下降,上升繼電器得電轉(zhuǎn)而鉆頭上升。鉆頭上升到位碰 到行程開關(guān)使鉆頭停止轉(zhuǎn)動(dòng)和上升,并且活塞桿放松工件。放松完成 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 6 碰到行程開關(guān)使工位 2 處于等待狀態(tài)。工位 3 的動(dòng)作順 序是工作臺(tái)旋 轉(zhuǎn)結(jié)束后活塞缸推動(dòng)工件開始卸料,到行程開關(guān)后活塞桿反行程電磁 閥得電退回,退回到位碰到行程開關(guān)處于等待狀態(tài)。等三個(gè)工位都停 止動(dòng)作后,工作臺(tái)旋轉(zhuǎn)電磁閥的電,工作臺(tái)旋轉(zhuǎn)進(jìn)入下一個(gè)循環(huán)。根 據(jù)要求做出合理的液壓原理圖如圖 3-2 示。 圖 3-2 液壓原理圖 3.3 系統(tǒng)控制流程圖 控制流程圖可以讓設(shè)計(jì)人員清楚、明了的認(rèn)清該系統(tǒng)的工作過 程。根據(jù)三工位旋轉(zhuǎn)工作臺(tái)的控制要求,在不同的工位能同時(shí)進(jìn)行加 料、鉆孔加工和卸料。根據(jù)課程設(shè)計(jì)的具體要求,分析并設(shè)計(jì)如下圖 3-3: 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 7 圖 3-3 控制系統(tǒng)的工作順序和循環(huán)過 程 圖 3-4 控制系統(tǒng)手動(dòng)調(diào)整部分 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 8 3.4 選擇 PLC類型 本設(shè)計(jì)選用德國西門子公司的 S7 200 系列 PLC,它是一種性價(jià) 比高的小型 PLC,其功能強(qiáng)大、工作可靠性高,能滿足本控制系統(tǒng)的 要求。從上面的控制要求可知,輸入設(shè)備共需 21 個(gè): SA3-1 SA3-3、 SBl-SB9、 SQl SQ8、 SP1,輸出設(shè)備共需 11 個(gè): YV0 YV8、 KMl KM2??紤] 10 15的裕量,系統(tǒng)需要數(shù)字量輸入 26 點(diǎn),數(shù)字量 輸出 1l 點(diǎn),不需要模擬量模塊,共需要輸入和輸出點(diǎn)數(shù) 37 點(diǎn)。選用 任何一個(gè)系列的 PLC 都不能滿足輸入點(diǎn)的 個(gè)數(shù),也就是任何一個(gè) S7-200 單片機(jī)都需要擴(kuò)展。而 CPU226 的又很貴,所以在此選用 CPU224 外加一個(gè) EM221 的擴(kuò)展模塊就能滿足要求。 S7-200 系列的 CPU224 主機(jī)有 I0.0 I0.7、 I1.0 I1.5 共計(jì) 14 個(gè) 輸入點(diǎn)和 Q0.0 Q0.7、 Q10 Q1.1 共計(jì) 10 個(gè)輸出點(diǎn)。 CPU224 輸入 電路采用了雙向光電耦合器, 24VDC 極性可任意選擇,系統(tǒng)設(shè)置 1MB 為 I0.x 字節(jié)輸入端子的公共端, 2MB 為 I1.x 字節(jié)輸入端子的公共端。 在晶體管輸出電路中采用了 MOSFET 功率驅(qū)動(dòng)器件,并將數(shù)字量輸 出分為兩組 ,每組有一個(gè)獨(dú)立公共端,共有 1L、 2L 兩個(gè)公共端,可 接入不同的負(fù)載電源。 CPU224PLC 有 6 個(gè)高速計(jì)數(shù)脈沖輸入端( I0.0 I0.5),最快的響應(yīng)速度為 30KHZ,用于捕捉經(jīng) CPU 掃描周期更快 的脈沖信號(hào)。另外,還有 2 個(gè)高速脈沖輸出端( Q0.0、 Q0.1),輸出 脈沖頻率可達(dá) 20KHZ.用于 PTO(高速脈沖束)和 PWM(寬度可變 脈沖輸出)高速脈沖輸出,可完全適應(yīng)于一些復(fù)雜的中小型控制系統(tǒng) 障 。按鈕開關(guān)選擇 LAl 8 系列 (AC380V, 50Hz),行程開關(guān)選擇 LXIO 系列 (AC380V, 50Hz),接觸器和電 磁閥選擇小功率的交流接觸器 CJIO 系列和通用電磁閥 ZCL 一 1Y 系列,直接由 PLC 控制。 3.5 I/O地址分配 I/O信號(hào)在 PLC接線端子上的地址分配是進(jìn)行 PLC控制系統(tǒng)設(shè)計(jì) 的基礎(chǔ),只有分配 I/O 點(diǎn)地址以后才可以進(jìn)行編程。對控制柜及 PLC 的外圍來說,只有 I/O 點(diǎn)地址確定以后,才可以繪制電氣接線圖,所 以只有準(zhǔn)確、合理的進(jìn)行 I/O 地址的分配與編號(hào),才方便進(jìn)行后續(xù)的 設(shè)計(jì)。表 3-1 所示為該控制系統(tǒng)的 I/O 分配表。 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 9 表 3-1 I/O 分配表 輸入信號(hào)名稱 外部元 件 內(nèi)部地 址 輸出信號(hào)名稱 外部元 件 內(nèi)部地 址 手動(dòng)運(yùn) 行選擇 SA3-1 I0.0 送料器推進(jìn)電磁 閥 YV1 Q0.0 半自動(dòng)運(yùn)行選 擇 SA3-2 I0.1 送料退回電磁閥 YV2 Q0.1 全自動(dòng)運(yùn)行選 擇 SA3-3 I0.2 工件夾緊電磁閥 YV3 Q0.2 上料器推進(jìn)按 鈕 SB1 I0.3 工件放松電磁閥 YV4 Q0.3 上料器退回按 鈕 SB2 I0.4 鉆頭下降電磁閥 YV5 Q0.4 工件夾緊按鈕 SB3 I0.5 鉆頭上升電磁閥 YV6 Q0.5 工件放松按鈕 SB4 I0.6 卸料推進(jìn)電磁閥 YV7 Q0.6 鉆頭下降按鈕 SB5 I0.7 卸料退回電磁閥 YV8 Q0.7 鉆頭上升按鈕 SB6 I1.0 工作臺(tái)轉(zhuǎn)動(dòng)電動(dòng) 機(jī)接觸器 KM1 Q1.0 卸料器推進(jìn)按 鈕 SB7 I1.1 鉆頭轉(zhuǎn)動(dòng)電動(dòng)機(jī) 接觸器 KM2 Q1.1 卸料器退回按 鈕 SB8 I1.2 工作臺(tái)旋轉(zhuǎn)按 鈕 SB9 I1.3 上料器到位行 程開關(guān) SQ1 I1.4 上料退回到位 行程開關(guān) SQ2 I1.5 鉆頭下降到位 行程開關(guān) SQ3 I2.0 鉆頭上升到位 行程開關(guān) SQ4 I2.1 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 10 卸料器推進(jìn)到 位行程開關(guān) SQ5 I2.2 卸料器退回到 位行程開關(guān) SQ6 I2.3 工作臺(tái)旋轉(zhuǎn)到 位行程開關(guān) SQ7 I2.4 放松到位行程 開關(guān) SQ8 I2.5 壓力繼電器觸 點(diǎn) SP1 I2.6 3.6 I/O接線圖 I/O 接線圖是進(jìn)行施工接線的主要技術(shù)文件,圖 3-4 所示為該三 工位旋轉(zhuǎn)工作臺(tái)控制系統(tǒng)的 I/O 接線圖。 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 11 圖 3-5 I/0 接線圖 3.7 控制程序設(shè)計(jì) 梯形圖程序設(shè)計(jì)語言是最常用的一種程序設(shè)計(jì)語言。它來源于繼 電器邏輯控制系統(tǒng)的描述。在工業(yè)過程控制領(lǐng)域,電氣技術(shù)人員對繼 電器邏輯控制技術(shù)較為熟悉, 因此,由這種邏輯控制技術(shù)發(fā)展而來的 梯形圖受到了歡迎,并得到了廣泛的應(yīng)用 。梯形圖由觸點(diǎn)、線圈和應(yīng) 用指令等組成。觸點(diǎn)代表邏輯輸入條件。 CPU 運(yùn)行掃描到觸點(diǎn)符號(hào)時(shí), 便轉(zhuǎn)到觸點(diǎn)位指定的存儲(chǔ)器位訪問(即 CPU 對存儲(chǔ)器的讀操作)。在 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 12 用戶程序中常開觸點(diǎn)和常閉觸點(diǎn)可以使用無數(shù)多次。線圈通常代表邏 輯輸出結(jié)果和輸出標(biāo)志位,當(dāng)線圈左側(cè)接點(diǎn)組成的邏輯運(yùn)算結(jié)果為 “ 1”時(shí),“能流”可以到達(dá)線圈,使得線圈得電動(dòng)作,則 CPU 將線 圈的位地址指定的存儲(chǔ)器的位置為“ 1”,邏輯運(yùn)算結(jié)果為“ 0”時(shí), 線圈斷電,存儲(chǔ)器的位置為“ 0”。 STEP7-Micro/WIN32 軟件是西門子 S7-200PLC 的開發(fā)工具,主 要用于開發(fā)程序,也可用于實(shí)時(shí)監(jiān)控用戶程序的執(zhí)行狀態(tài)。以下為用 STEP7-Micro/WIN32 軟件編制的該控制系統(tǒng)的程序梯形圖。 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 13 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 14 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 15 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 16 3.8 控制程序語句表 指令表編程語言類似于計(jì)算機(jī)中的助記符匯編語言,它是可編程 控制器基礎(chǔ)的編程語言。所謂指令表編程,是用一個(gè)或幾個(gè)容易記憶 的字符來代表可編程控制器的某種操作功能,具體指令的說明 可查閱 相關(guān)參考文獻(xiàn)。語句表通常和梯形圖配合使用,互為補(bǔ)充。將該控制 系統(tǒng)的梯形圖轉(zhuǎn)化為語句表如下所示: 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 17 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 18 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 19 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 20 3.9 程序調(diào)試 程序調(diào)試有模擬器調(diào)試和現(xiàn)場調(diào)試等方法,根據(jù)課程設(shè)計(jì)要求并 結(jié)合實(shí)際情況使用了 STEP7-Micro/WIN32 模擬器 進(jìn)行了本程序的調(diào) 試。 西門子 S7 200 的仿真軟件 Simulation1.2 版是從西班牙原版 1.2 直接漢化過來的,支持 TD200 仿真界面和增減計(jì)數(shù)器等多種指令。 調(diào)試方法如下 : 1.將 在 STEP7-Micro/WIN32 中編譯正確 的 程序在文件菜單中導(dǎo) 出為 AWL 文件 ; 2.打開仿真軟件,點(diǎn) “配置 ”-“CPU 型號(hào) ”,然后選擇 CPU224,雙 擊后邊“ 0”模塊,選擇擴(kuò)展模塊 EM221; 3.點(diǎn) “程序 ”-“載入程序 ”; 4.選擇 STEP7-Micro/WIN32 的版本; 5.將先前導(dǎo)出的 AWL 文件打開 ; 6.點(diǎn) “PLC”-“運(yùn)行 ”,開始調(diào)試程序。 手動(dòng)運(yùn)行工作臺(tái)調(diào)試程序,部分運(yùn)行情況如下: 1.按下手動(dòng)按鈕開關(guān) SB1(I0.0),接著摁下上料按鈕 SB2(I0.4),上 料繼電器、電磁閥得電后開始上料,結(jié)果如圖 3-5。 圖 3-6 開始上料 2.當(dāng)上料到位后,摁下上料器退回按鈕 SB2(I0.4),上料器退回繼電 器、電磁閥得電,上料器開始退回,結(jié)果如圖 3-6。 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 21 圖 3-7 上料器退回 3.當(dāng)工作臺(tái)旋轉(zhuǎn)到位時(shí),摁下夾緊按鈕 SB3(I0.5),夾緊繼電器得電 Q0.2,工件被加緊,結(jié)果如圖 3-7。 圖 3-8 加緊 4.按下鉆頭下降按鈕 SB5(I0.7),鉆頭旋轉(zhuǎn) Q1.1 和鉆頭下降 Q0.4 繼電器得電,它開始進(jìn)行旋轉(zhuǎn)和下降動(dòng)作,結(jié)果如圖 3-8。 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 22 圖 3-9 鉆頭下轉(zhuǎn) 5.當(dāng)鉆頭下降到位時(shí),摁下按鈕 SB6(I1.0),鉆頭上升電磁閥 Q0.5 得電,開始上升,結(jié)果如圖 3-9。 圖 3-10 鉆頭上升 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 23 課程 設(shè)計(jì)心得 一 周的課程設(shè)計(jì)很快就結(jié)束了,期間遇到 了很多麻煩,在老師和 同學(xué)的幫助下設(shè)計(jì)了一個(gè)比較合理的解決方案。雖然課程設(shè)計(jì)還不算 完美,但是這次課程設(shè)計(jì)的目的基本上已經(jīng)達(dá)到了,在這周內(nèi)我們對 PLC 控制有了比較熟悉的了解。 在對理論的運(yùn)用中, 課程設(shè)計(jì) 提高了 我們的工程素質(zhì) 。 在沒有做 這次課程 設(shè)計(jì)以前,我們 所 知道 的 僅停留 在理論上 ,對一些細(xì)節(jié)不加重視 。 當(dāng)我們把自己想出來的程序 用 到 PLC 中的時(shí)候,不是不能運(yùn)行,就是運(yùn)行的結(jié)果和要求的結(jié)果不相符 合。 通過 解決一個(gè)個(gè)在調(diào)試中出現(xiàn)的問題,我們對 PLC 的 認(rèn)識(shí) 得到 加強(qiáng),看到了實(shí)踐與理論的 差距。 此次課程設(shè)計(jì)主要是對 機(jī)電一體化系統(tǒng)設(shè)計(jì)這門課程進(jìn)行練習(xí) 了解掌握,而在三工位 旋轉(zhuǎn)工作臺(tái)的 控制系統(tǒng) 設(shè)計(jì)中更多要求的是我 們對 PLC 經(jīng)典控制模塊 繼電器控制部分進(jìn)行設(shè)計(jì)。設(shè)計(jì)之初有 兩個(gè)不同的選擇方案:一是在工作循環(huán)時(shí)只對一個(gè)工件進(jìn)行加工;二 是在工作時(shí)對三個(gè)工件同時(shí)加工。第一種方案效率低,但是設(shè)計(jì)起來 簡單。第二種方案加工效率高但是中間各個(gè)工序的加工時(shí)間對工作臺(tái) 旋轉(zhuǎn)時(shí)間有影響。經(jīng)過多方面論證,最后我選擇了第二種方案提高了 生產(chǎn)效率。 通過本次設(shè)計(jì),讓我 們 很好的鍛煉了理論聯(lián)系實(shí)際,與具 體項(xiàng)目、課題相結(jié)合開發(fā)、設(shè)計(jì)產(chǎn) 品的能力。既讓我們懂得了怎樣把 理論應(yīng)用于實(shí)際,又讓我們懂得了在實(shí)踐中遇到的問題怎樣用理論去 解決。 在本次設(shè)計(jì)中,我們還需要大量的以前沒有學(xué)到過的知識(shí),于 是圖書館和 網(wǎng)絡(luò) 成了我們很好的助手。在查閱資料的過程中,我們 要判斷優(yōu)劣、取舍相關(guān)知識(shí),不知不覺中我們查閱資料的能力也得 到了很好的鍛煉。我們學(xué)習(xí)的知識(shí)是有限的,在以后的工作中我們 肯定會(huì)遇到許多未知的領(lǐng)域,這方面的能力便會(huì)使我們受益非淺。 在設(shè)計(jì)過程中, 我們 總是遇到這樣或那樣的問題。有時(shí)發(fā)現(xiàn)一個(gè)問 題的時(shí)候, 我們 需要做大量的工作,花大量的時(shí)間才能解決。自然 而然耐心便 逐 漸建立起來,這為我們以后的工作積累了經(jīng)驗(yàn),增強(qiáng) 了信心。 最后非常感謝指導(dǎo)老師在本次課程設(shè)計(jì)中對我們的耐心指 導(dǎo)和幫助,讓我們學(xué)到了很多知識(shí),受益匪淺。 哈爾濱理工大學(xué) 課程設(shè)計(jì)說明書 24 參考文獻(xiàn) 1 張建民 .機(jī)電一體化系統(tǒng)設(shè)計(jì) .4 版 .北京:高等教育出版社, 2014.12 2 廖常初 .S7-200PLC 編程及應(yīng)用 .2 版 .北京 : 機(jī)械工業(yè)出版, 2013.10 3 左健民 .液壓與氣壓傳動(dòng) .4 版 .北京: 機(jī)械 工業(yè)出版社, 2007.5 4 段鐵群 .機(jī)械系統(tǒng)設(shè)計(jì) .北京 : 科學(xué) 出版社, 2010.2 5 王永華 .現(xiàn)代電氣控制及 PLC 應(yīng)用技術(shù) .北京 :航空航天大學(xué)出版 社, 2008 6 羅宇航 .流行 PLC 實(shí)用程序及設(shè)計(jì) .西安:電子科技大學(xué)出版社, 2006.12 7 柴瑞娟,陳海霞 .西門子編程技術(shù)及應(yīng)用 .北京:機(jī)械工業(yè)出版社, 2006.8 8 陳建明 .電氣控制與 PLC 應(yīng)用 .北京:電子工業(yè)出版社, 2010 9 王宗才 .機(jī)電傳動(dòng)與控制 .北京:電子工業(yè)出版社, 2011.6 10 鄧星鐘 .機(jī)電傳動(dòng)控制 .武漢:華中科技大學(xué)出版社, 2007 11 周宏甫 .機(jī)電傳動(dòng)控制 .北京:化學(xué)工業(yè)出版社, 2006 哈爾濱理工大學(xué)課程設(shè)計(jì)說明書
目錄
第1章 緒論 1
1.1 設(shè)計(jì)背景 1
1.2 設(shè)計(jì)的主要任務(wù) 1
第2章 系統(tǒng)總體方案及硬件設(shè)計(jì) 3
2.1 系統(tǒng)總體方案設(shè)計(jì) 3
2.2 硬件電路設(shè)計(jì) 3
2.2.1 時(shí)鐘電路模塊 4
2.2.2 復(fù)位電路模塊 5
2.2.3 顯示模塊 6
2.2.4 報(bào)警模塊 7
2.2.5 鍵盤模塊 7
第3章 軟件設(shè)計(jì) 8
3.1 軟件總體設(shè)計(jì)方案 8
3.2 軟件設(shè)計(jì)具體過程 11
3.2.1 延時(shí)模塊設(shè)計(jì) 11
3.2.2 中斷程序 12
3.2.3 鍵盤掃描子程序 13
3.2.4 計(jì)分子程序 13
3.2.5 主程序 15
第4章 硬件焊接與調(diào)試 16
4.1 硬件實(shí)物圖 16
4.2 調(diào)試結(jié)果 16
課程設(shè)計(jì)心得 17
附錄1 18
附錄2 19
參考文獻(xiàn) 27
第1章 緒論
1.1 設(shè)計(jì)背景
體育比賽計(jì)時(shí)計(jì)分系統(tǒng)是對體育比賽過程中所產(chǎn)生的時(shí)間,比分等數(shù)據(jù)進(jìn)行快速采集記錄,加工處理,傳遞利用的信息系統(tǒng)。根據(jù)不同運(yùn)動(dòng)項(xiàng)目的不同比賽規(guī)則要求,體育比賽的計(jì)時(shí)計(jì)分系統(tǒng)包括測量類,評分類,命中類,制勝類得分類等多種類型。
籃球比賽是根據(jù)運(yùn)動(dòng)隊(duì)在規(guī)定的比賽時(shí)間里得分多少來決定勝負(fù)的,因此,籃球比賽的計(jì)時(shí)計(jì)分系統(tǒng)是一種得分類型的系統(tǒng)?;@球比賽的計(jì)時(shí)計(jì)分系統(tǒng)由計(jì)時(shí)器,計(jì)分器等多種電子設(shè)備組成,同時(shí),根據(jù)目前高水平籃球比賽要求,完善的籃球比賽計(jì)時(shí)計(jì)分系統(tǒng)設(shè)備應(yīng)能夠與現(xiàn)場成績處理,現(xiàn)場大屏幕,電視轉(zhuǎn)播車等多種設(shè)備相聯(lián),以便實(shí)現(xiàn)高比賽現(xiàn)場感,表演娛樂觀眾等功能目標(biāo)。
由于單片機(jī)的集成度高,功能強(qiáng),通用性好,特別是它具有體積小,重量輕,能耗低,價(jià)格便宜,可靠性高,抗干擾能力強(qiáng)和使用方便等獨(dú)特的優(yōu)點(diǎn),使單片機(jī)迅速得到了推廣應(yīng)用,目前已經(jīng)成為測量控制應(yīng)用系統(tǒng)中的優(yōu)選機(jī)種和新電子產(chǎn)品的關(guān)鍵部位。世界各大電氣廠家,測控技術(shù)企業(yè),機(jī)電行業(yè),競相把單片機(jī)應(yīng)用于產(chǎn)品更新,作為實(shí)現(xiàn)數(shù)字化,智能化的核心部件?;@球計(jì)時(shí)計(jì)分器就是以單片機(jī)為核心的計(jì)時(shí)計(jì)分系統(tǒng),由計(jì)時(shí)器,計(jì)分器,綜合控制器和24秒控制器等組成。
1.2 設(shè)計(jì)的主要任務(wù)
本設(shè)計(jì)是基于AT89C52單片機(jī)的籃球計(jì)時(shí)計(jì)分器,利用7段共陰LED作為顯示器件。在此設(shè)計(jì)中共接入了1個(gè)四位一體7段共陰LED顯示器,2個(gè)兩位一體7段共陰LED顯示器,前者用來記錄賽程時(shí)間,其中2位用于顯示分鐘,2位用于顯示秒鐘,后者用于記錄甲乙隊(duì)的分?jǐn)?shù),每隊(duì)2個(gè)LED顯示器顯示范圍可達(dá)到0~99分。賽程計(jì)時(shí)采用倒計(jì)時(shí)方式,比賽開始時(shí)啟動(dòng)計(jì)時(shí),直至計(jì)時(shí)到零為止。
其次,為了配合計(jì)時(shí)器和計(jì)分器校正調(diào)整時(shí)間和比分,我們特定在本設(shè)計(jì)中設(shè)立了7個(gè)按鍵,用于啟動(dòng),暫停時(shí)間,調(diào)整分?jǐn)?shù)和暫停等功能。采用單片機(jī)控制是這個(gè)系統(tǒng)按鍵操作使用簡潔,LED顯示,安裝方便。
第2章 系統(tǒng)總體方案及硬件設(shè)計(jì)
2.1 系統(tǒng)總體方案設(shè)計(jì)
該籃球計(jì)時(shí)計(jì)分器主要包括單片機(jī)控制系統(tǒng)、計(jì)時(shí)顯示模塊、計(jì)分顯示模塊、定時(shí)報(bào)警,按鍵控制鍵盤模塊。通過這幾個(gè)模塊的協(xié)調(diào)工作就可以完成相應(yīng)的計(jì)時(shí)計(jì)分控制和顯示功能。這四個(gè)模塊的相互連接如圖2-1所示:
圖2-1 連接簡圖
2.2 硬件電路設(shè)計(jì)
AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。
AT89C52具有如下特點(diǎn):AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起[1]。
圖2-2 AT89C52單片機(jī)引腳圖
2.2.1 時(shí)鐘電路模塊
時(shí)鐘電路在單片機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘是保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢。為達(dá)到振蕩周期是12MHZ的要求,這里要采用12MHZ的晶振,另外有兩個(gè)33P的電容,兩晶振引腳分別連到XTAL1和XTAL2振蕩脈沖輸入引腳[4]。具體連接如圖2-3所示。
圖2-3 晶振連接圖
2.2.2 復(fù)位電路模塊
復(fù)位是單片微機(jī)的初始化操作,其主要功能是把PC初始化為0000H,使單片微機(jī)從0000H單元開始執(zhí)行程序。除進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,可以按復(fù)位鍵以重新啟動(dòng),也可以通過監(jiān)視定時(shí)器來強(qiáng)迫復(fù)位。RST引腳是復(fù)位信號(hào)的輸入端[2]。復(fù)位電路在這里采用的是上電+按鈕復(fù)位電路形式,具體連接電路如圖2-4所示。
圖2-4 復(fù)位電路
2.2.3 顯示模塊
本設(shè)計(jì)采用共陰極數(shù)碼顯示器,通常,共陰極接低電平(一般接地),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),該端所連接的字符導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。同樣,要求段驅(qū)動(dòng)電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。本次設(shè)計(jì)在顯示模塊用到的是一個(gè)4位一體和2個(gè)兩位一體共陰極數(shù)碼管,共有8個(gè)代碼輸入口和8個(gè)位選輸入口,采用排阻提供上拉電流數(shù)碼管,以保證有足夠大的電流點(diǎn)亮數(shù)碼管,采用動(dòng)態(tài)驅(qū)動(dòng),使各位數(shù)碼管逐個(gè)輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)[10]。由于掃描速度極快,顯示效果與靜態(tài)驅(qū)動(dòng)相同,其具體圖形如下圖2-5和圖2-6所示。
圖2-5 計(jì)時(shí)顯示
圖2-6 計(jì)分顯示
2.2.4 報(bào)警模塊
蜂鳴器通過一NPN型三極管進(jìn)行驅(qū)動(dòng),如圖觸發(fā)信號(hào)有基極引入[9]。接線圖如圖2-7所示。
圖2-7 報(bào)警模塊
2.2.5 鍵盤模塊
圖2-8 鍵盤模塊
第3章 軟件設(shè)計(jì)
在設(shè)計(jì)程序之前,我們首先要對單片機(jī)應(yīng)用系統(tǒng)預(yù)完成的任務(wù)進(jìn)行深入的分析,明確系統(tǒng)的設(shè)計(jì)任務(wù)、功能要求和技術(shù)指標(biāo)。其次,要對系統(tǒng)的硬件資源和工作環(huán)境進(jìn)行分析。這是單片機(jī)應(yīng)用系統(tǒng)程序設(shè)計(jì)的基礎(chǔ)和條件。在單片機(jī)應(yīng)用系統(tǒng)的開發(fā)過程中,主要采用的有匯編語言和C語言。匯編語言比C語言繁瑣,但是匯編語言能更充分的發(fā)揮指令系統(tǒng)的功能和效率,可以獲得最簡練的目標(biāo)程序。而C語言的應(yīng)用最為廣泛,C語言能直接對計(jì)算機(jī)的硬件進(jìn)行操作,而且語言靈活、程序結(jié)構(gòu)良好、數(shù)據(jù)類型及運(yùn)算符豐富、代碼效率高、可移植性好[8]。
3.1 軟件總體設(shè)計(jì)方案
本次單片機(jī)課程設(shè)計(jì)軟件設(shè)計(jì)部分采用模塊化程序設(shè)計(jì),程序部分由主程序、T0中斷程序、掃描顯示子程序、計(jì)時(shí)加(減)1秒的子程序、暫停子程序、快表和回表子程序、延時(shí)子程序等組成.其程序流程圖如圖3-1和圖3-2。
圖3-1 主程序流程圖
圖3-2 掃描刷新顯示子程序流程圖
3.2 軟件設(shè)計(jì)具體過程
軟件設(shè)計(jì)部分采用模塊化程序設(shè)計(jì),用C語言編寫。Keil是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。
Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢。
程序部分由主程序、T0中斷程序、掃描顯示子程序、暫停子程序、加分子程序、減分子程序、延時(shí)子程序等組成。
3.2.1 延時(shí)模塊設(shè)計(jì)
void display(uchar fen2,uchar fen1,uchar miao2,uchar miao1) //時(shí)間顯示程序
{
dula=0;
P0=table[fen2];
dula=1;
dula=0;
wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);
P0=table[fen1]|0x80;
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delay(5);
P0=table[miao2];
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
delay(5);
P0=table[miao1]|0x80;
dula=1;
dula=0;
P0=0xf7;
wela=1;
wela=0;
delay(5);
}
本設(shè)計(jì)中各個(gè)數(shù)碼管采用動(dòng)態(tài)驅(qū)動(dòng),使各位數(shù)碼管逐個(gè)輪流受控顯示,由于掃描速度極快(本實(shí)驗(yàn)中大約每20毫秒刷新一次),所以顯示效果與靜態(tài)驅(qū)動(dòng)相同。
3.2.2 中斷程序
void time0() interrupt 1 //中斷程序
{
TH0=(65536-46080)/256; //由于晶振為11.0592,故所記次數(shù)應(yīng)為46080,計(jì)時(shí)器每隔50000微秒發(fā)起一次中斷。
TL0=(65536-46080)%256; //46080的來歷,為50000*11.0592/12
pp++;
}
3.2.3 鍵盤掃描子程序
void keyscan() // 鍵盤掃描程序
{
if(lcden==0)
delay(10);
if(lcden==0)
{
halt=1;
}
if(rs==0)
halt=0;
}
3.2.4 計(jì)分子程序
void jifen() // 計(jì)分模塊
{
if(A_ADD1==0)
{
delay(10);
if(A_ADD1==0)
{
numa++;
while(!A_ADD1);
}
}
if(A_ADD2==0)
{
delay(10);
if(A_ADD2==0)
{
numa=numa+2;
while(!A_ADD2);
}
}
if(A_DEC==0)
{
delay(10);
if(A_DEC==0)
{
numa=numa--;
while(!A_DEC);
}
}
if(B_ADD1==0)
{
delay(10);
if(A_ADD1==0)
{
numb++;
while(!A_ADD1);
}
}
if(B_ADD2==0)
{
delay(10);
if(A_ADD2==0)
{
numb=numb+2;
while(!A_ADD2);
}
}
if(B_DEC==0)
{
delay(10);
if(B_DEC==0)
{
numb--;
while(!B_DEC);
}
}
}50000*11.0592/12
3.2.5 主程序
void main()
{
TMOD=0x01;
TR0=1;
TH0=(65536-46080)/256; // 由于晶振為11.0592,故所記次數(shù)應(yīng)為46080,計(jì)時(shí)器每隔50000微秒發(fā)起一次中斷。
TL0=(65536-46080)%256; //46080的來歷,為50000×11.0592/12
ET0=1;
EA=1; //主板初始化 因51單片機(jī)芯片開機(jī)時(shí)各個(gè)IO口輸出為高電平,加上以下源代碼是為了防止各種外部模塊誤動(dòng)作
DS1302=0; //關(guān)DS1302模塊,與本實(shí)驗(yàn)無關(guān)
SD=0; //關(guān)SD卡模塊,與本實(shí)驗(yàn)無關(guān)
LCD1602=0; //關(guān)LCD1602模塊,與本實(shí)驗(yàn)無關(guān)
cs88=0; //關(guān)點(diǎn)陣管
lcden=1;
rs=1;
jishi(fen);
}
29
第4章 硬件焊接與調(diào)試
4.1 硬件實(shí)物圖
對照原理圖進(jìn)行焊接工作, 把硬件先依次正確插到相應(yīng)的位置,然后再次檢查器件是否都正確,確定無誤后進(jìn)行焊接.在焊接的過程中要注意不要將相臨的兩個(gè)引腳焊接在一起,防止短路影響使用。
硬件連接好以后,通過ISP下載線向單片機(jī)內(nèi)燒制HEX程序,觀察各部分工作情況。硬件連接如圖4-1所示。
圖4-1 硬件實(shí)物圖
4.2 調(diào)試結(jié)果
經(jīng)過多次參考源程序代碼,我初步實(shí)現(xiàn)了計(jì)時(shí)模塊功能,能顯示、開始、暫停、報(bào)警。計(jì)分模塊也實(shí)現(xiàn)了顯示功能,但是在結(jié)合計(jì)分模塊時(shí),由于計(jì)時(shí)模塊和計(jì)分模塊的相互干擾,程序出現(xiàn)不穩(wěn)定性,問題明顯。此次設(shè)計(jì)重點(diǎn)是計(jì)時(shí)、計(jì)分和鍵盤,難點(diǎn)是其間的相互結(jié)合。
課程設(shè)計(jì)心得
通過這幾天的單片機(jī)的實(shí)訓(xùn),我在理論的基礎(chǔ)上更深刻的掌握了單片機(jī)的深層內(nèi)容及實(shí)際生活中的應(yīng)用,實(shí)訓(xùn)鍛煉了自己動(dòng)手能力和思維能力,還有在軟件方面的編程能力,讓我受益匪淺,同時(shí)也暴露出一些平時(shí)學(xué)習(xí)上的問題,讓我深刻反思。這些問題的發(fā)現(xiàn)將為我以后的學(xué)習(xí)和工作找明道路,查漏補(bǔ)缺為進(jìn)一步學(xué)習(xí)作好準(zhǔn)備。
通過實(shí)踐,讓我更熟悉掌握了Keil uVision3應(yīng)用程序的運(yùn)用,讓我懂得了如何編寫一些簡單的程序,學(xué)會(huì)了如何制作單片機(jī)應(yīng)用程序,還有焊接和程序下載,。但在中間暴露出很多問題:對平時(shí)上課講的理論知識(shí)沒有完全掌握消化,到了實(shí)際操作中還得請教同學(xué),在焊接中焊接的基本工夫掌握不到家,手上工夫還是很欠缺的,使得電路板不是很美觀。這些問題的發(fā)現(xiàn),有助于提高我在以后的工作和學(xué)習(xí)中對此類問題的認(rèn)識(shí),確保不在同一問題上再次犯錯(cuò)。嚴(yán)謹(jǐn)求實(shí)、踏實(shí)務(wù)實(shí),是我這次實(shí)訓(xùn)的深刻總結(jié)。
做課程設(shè)計(jì)的這幾天翻閱了很多書,也上了很多網(wǎng)站去尋找自己需要的資料。這種尋找有很強(qiáng)的目的性,只是為了自己選定的課題內(nèi)容而查閱,所以除了自己課題以外的其他方面幾乎還是一無所知。這讓我深刻的認(rèn)識(shí)到了自己專業(yè)知識(shí)的貧乏。為我對自己大四生活的規(guī)劃敲響了警鐘。我對單片機(jī)的學(xué)習(xí)不會(huì)因?yàn)檎n程設(shè)計(jì)的結(jié)束而結(jié)束,在接觸的眾多資料里,做設(shè)計(jì)只是走馬觀花般的點(diǎn)到。
通過單片機(jī)課程設(shè)計(jì),我加深了對單片機(jī)理論的理解,學(xué)回了怎樣將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的不畏困難的挑戰(zhàn)精神,從而不斷地戰(zhàn)勝自己,超越自己,我在這一設(shè)計(jì)過程中,學(xué)會(huì)了堅(jiān)持不懈,不輕易言棄。設(shè)計(jì)過程,也好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,也許這就是在對我們提出了挑戰(zhàn),勇敢過,也戰(zhàn)勝了,勝利的鐘聲也就一定會(huì)為我們而敲響。
附錄1
附錄2
#include
#define uchar unsigned char
sbit dula=P2^0; //段選信號(hào)的鎖存器控制
sbit wela=P2^1; //位選信號(hào)的鎖存器控制
sbit cs88=P2^2; //點(diǎn)陣管的鎖存器控制
cs88=0; //關(guān)點(diǎn)陣管
sbit beep=P2^3;
sbit LCD1602=P2^5; //定義LCD1602使能端,用于HJ-C52實(shí)驗(yàn)板復(fù)位,與本實(shí)驗(yàn)無關(guān)
sbit DS1302=P2^7; //定義DS1302時(shí)鐘使能端,用于HJ-C52實(shí)驗(yàn)板復(fù)位,與本實(shí)驗(yàn)無關(guān)
sbit SD=P2^6; //定義SD卡使能端,用于HJ-C52實(shí)驗(yàn)板復(fù)位,與本實(shí)驗(yàn)無關(guān)
void cmg88() //關(guān)數(shù)碼管,點(diǎn)陣函數(shù)
{
dula=1;
P0=0x00;
dula=0;
cs88=0x00;
P0=0x00;
cs88=1;
}
sbit lcden=P3^0;
sbit restart=P3^1;
sbit A_ADD1=P3^2; //定義按鍵輸入端口 k3
sbit A_ADD2=P3^4; //k5
sbit A_DEC=P3^6; //k7
sbit B_ADD1=P3^3; //定義按鍵輸入端口 k4
sbit B_ADD2=P3^5; //k6
sbit B_DEC=P3^7; //k8
unsigned char halt,min2,min1,sec2,sec1,sec=60 ,min=11;
unsigned int pp,numa=0,numb=0;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void display(uchar min2,uchar min1,uchar sec2,uchar sec1); //時(shí)間顯示模塊
void display1(uchar A2,uchar A1,uchar B2,uchar B1); //計(jì)分顯示模塊
void keyscan(); //鍵盤掃描模塊
void jishi(); //計(jì)時(shí)模塊
void delay(unsigned char i); //延時(shí)模塊
void jifen(); //計(jì)分模塊
void main()
{
TMOD=0x01;
TR0=1;
TH0=(65536-46080)/256; //由于晶振為11.0592,故所記次數(shù)應(yīng)為46080,計(jì)時(shí)器每隔50000微秒發(fā)起一次中斷。
TL0=(65536-46080)%256; //46080的來歷,為50000*11.0592/12
ET0=1;
EA=1; //主板初始化 因51單片機(jī)芯片開機(jī)時(shí)各個(gè)IO口輸出為高電平,加上以下源代碼是為了防止各種外部模塊誤動(dòng)作
DS1302=0; //關(guān)DS1302模塊,與本實(shí)驗(yàn)無關(guān)
SD=0; //關(guān)SD卡模塊,與本實(shí)驗(yàn)無關(guān)
LCD1602=0; //關(guān)LCD1602模塊,與本實(shí)驗(yàn)無關(guān)
cs88=0; //關(guān)點(diǎn)陣管
lcden=1;
restart=1;
while(1)
{
jishi();
jifen();
}
}
void time0() interrupt 1 //中斷程序
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
pp++;
}
void jishi() //計(jì)時(shí)模塊
{
keyscan();
if(halt==0)
{
TR0=1;
if(pp==20)
{
pp=0;
sec--;
if(sec==0)
{
sec=60;
min--;
if(min<=1)
beep=1;
if(min==0)
beep=0;
halt=1;
sec=60;
min=11;
}
}
min2=min/10;
min1=min%10;
sec2=sec/10;
sec1=sec%10;
display(min2,min1,sec2,sec1);
}
else
TR0=0;
display(min2,min1,sec2,sec1);
}
void keyscan() //鍵盤掃描程序
{
if(lcden==0)
delay(5);
if(lcden==1)
{
halt=1;
}
if(restart==1)
halt=0;
}
void delay(unsigned char i) //延時(shí)程序
{
unsigned char j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void jifen() //計(jì)分模塊
{
if(A_ADD1==1)
{
numa++;
}
if(A_ADD2==1)
{
(numa++)++;
}
if(A_DEC==1)
{
numa--;
}
if(B_ADD1==1)
{
numb++;
}
if(B_ADD2==1)
{
(numb++)++;
}
if(B_DEC==1)
{
numb--;
}
A2=numa/10;
A1=numa%10;
B2=numb/10;
B1=numb%10;
display1(A2,A1,B2,B1);
}
void display(uchar min2,uchar min1,uchar sec2,uchar sec1) //時(shí)間顯示程序
{
dula=1;
P0=table[min1];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(5);
dula=1;
P0=table[min2];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(5);
dula=1;
P0=table[sec1];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(5);
dula=1;
P0=table[sec2];
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=1;
wela=0;
delay(5);
}
void display1(uchar A2,uchar A1,uchar B2,uchar B1) //計(jì)分顯示程序
{
dula=1;
P0=table[A1];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(5);
dula=1;
P0=table[A2];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(5);
dula=1;
P0=table[B1];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(5);
dula=1;
P0=table[B2];
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=1;
wela=0;
delay(5);
}
參考文獻(xiàn)
[1] 周堅(jiān).單片機(jī)輕松入門[M].北京:航空航天大學(xué)出版社,2004.
[2] 張毅坤等.單片微型計(jì)算機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,1998.
[3] 劉光斌.單片機(jī)系統(tǒng)實(shí)用抗干擾技術(shù)[M].北京:人民郵電出版社,2003.
[4] 張友德 趙志英 涂時(shí)亮. 單片微型機(jī)原理應(yīng)用與實(shí)驗(yàn)(第四版)[M].上海:復(fù)旦大學(xué)出版社,2005.
[5] 劉文濤.單片機(jī)語言C51典型應(yīng)用設(shè)計(jì)[M].北京:人民郵電出版社,2005.
[6] 張毅剛,譚曉均.MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M]. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.
[7] 祁偉.單片機(jī)C51程序設(shè)計(jì)教程與實(shí)驗(yàn)[M].北京:航空航天大學(xué)出版社,2006.
[8] 張 虹. 匯編語言程序設(shè)計(jì)[M].北京:中國礦業(yè)大學(xué)出版社,2005.
[9] 熊如貴.遮擋式紅外聲光報(bào)警裝置[J].北京:《電子制作》雜志社,2006.
[10] 康華光.電子技術(shù)基礎(chǔ) 模擬部分[M].北京:高等教育出版社,2004.
收藏