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