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

正文內(nèi)容

基于單片機(jī)的plc設(shè)計與實現(xiàn)畢業(yè)設(shè)計論文(編輯修改稿)

2025-04-03 11:55 本頁面
 

【文章內(nèi)容簡介】 數(shù)要求,所以 為 使 繼電器 動作 , 需 要采用 三極管驅(qū)動 。設(shè)計電路如下圖所示: 圖 36 繼電器部分電路圖 光電耦合器 隔離電路 由于光 電 耦合器輸入 與 輸出 之 間相 互 隔離, 而 電信號 的 傳輸具有單向性等特點,因 此光耦 具有 良好的 抗干擾 性 和 電絕緣 性 。又由于光 電 耦合器的輸入端屬于電流型工作的低阻元件,因而具有很強(qiáng)的共模抑制能力 [31]。 所以,它在長線傳輸信息中作為終端隔離元件可以大大提高信噪比 [32]。 圖 37 光隔離輸入 圖 38 光電隔離輸出 4 系統(tǒng)軟件設(shè)計 系統(tǒng) 軟件的設(shè)計思想是: 編制的助記符指令 被編程 軟件 翻譯為 單片機(jī) 的匯編語言, 通過文本編輯軟件 , 用戶只需建立助記符程序源文件并 將其 存為 .PLC 格式,即可直接運(yùn)行翻譯程序進(jìn)行翻譯,生成 .ASM 格式的文件,再通過匯編器的編譯后生成目標(biāo)碼 .HEX 文件,最后裝入單片機(jī)。 系統(tǒng)運(yùn)行程序 根據(jù) PLC 循環(huán)掃描、集中采集輸入、集中輸出的 工作方式 ,設(shè)計了 本次設(shè)計的 系統(tǒng)運(yùn)行程序。由于單片機(jī) 的 并行口 在上電復(fù)位后都為高電平, 因 而 設(shè)計 輸出為高電平有效,因而在程序運(yùn)行剛 開始 的時候, 首先 向輸出口 P2寫“ 1”,將輸出口電平拉低。而后調(diào)用 MOV 20H,00H 將輸入映像區(qū) 20H 清空,隨后進(jìn)入一個“讀輸入 — 邏輯運(yùn)算— 寫輸出”循環(huán)周期。在每個循環(huán)的開始調(diào)用 MOV P2,0FFH 和 MOV 20H,P2 兩條指令讀取輸入口的狀態(tài),由于系統(tǒng)邏輯運(yùn)算部分設(shè)計為高電平有效,而輸入狀態(tài)掃描設(shè)計為低電平有效,所以當(dāng)我們采集輸入點信息并讀入輸入映像區(qū)后,首先要將輸入映像區(qū)的值全部取反,再進(jìn)行邏輯運(yùn)算。邏輯與運(yùn)算完畢后將進(jìn)入寫輸出操作 階段 ,由于在翻譯邏輯運(yùn)算的同時已經(jīng) 在 輸出映像區(qū) 24H的對應(yīng)位 將輸出量寫 進(jìn)去了 ,因 此 在循環(huán)末尾只需調(diào)用 MOV P1,24H 在 引腳 中 將輸出緩沖區(qū)全部寫 入 即可。 圖 41 系統(tǒng)運(yùn)行圖 翻譯程序設(shè)計 整個翻譯程序共分為四個模塊:文件掃描模塊、錯誤檢查模塊、邏輯翻譯模塊、結(jié)果輸出模塊。文件掃描模塊主要是將編好的程序記錄到系統(tǒng)中,為下一步的錯誤檢查做準(zhǔn)備;;而查錯模塊主要用于對梯形圖和指令表進(jìn)行語法檢查;轉(zhuǎn)化模塊用于實現(xiàn)梯形圖與指令表的轉(zhuǎn)化 [8]; 邏輯翻譯模塊是翻譯程序的核心 ,主要用于對指令表語言的編輯翻譯,使其變成能下載到 單片機(jī)中的目標(biāo)碼;監(jiān)控則是 由 通信模塊 和 上下位機(jī)之間的通信,監(jiān)控下位機(jī)的運(yùn)行,實時跟蹤下位機(jī)各資源的內(nèi)部狀態(tài) [8]。翻譯是通過I/O 映像區(qū)地址表的建立,操作數(shù)字段操作數(shù)類型與標(biāo)號的分離,操作碼字段翻譯,I/O 點對應(yīng)的位地址的確定等幾個階段完成的。翻譯是通過函數(shù) Interpreter()的調(diào)用實現(xiàn)的。 開始 程序編輯 文件掃描 錯誤檢查 邏輯翻譯 結(jié)果輸出 下載 程序運(yùn)行 N Y 監(jiān)控 圖 42 錯誤檢查模塊 軟件設(shè)計的思路是設(shè)計翻譯程序?qū)⒅浄绦?.PLC 翻譯成為匯編語言程序 .ASM。通過研究 可以 發(fā)現(xiàn) ,可以利用 PLC助記符程序和 MCS51匯編語言存在著一定的 對應(yīng)指針指向文件首行 讀取當(dāng)前行指令 指針是否指向文件末行 指針是否為END 詞法檢查無誤 刪除指令多余空格 詞法檢查有誤,彈出錯誤信息 指針碼搭配是否恰當(dāng) 操作數(shù)是否越界 文件指針指向下一行 Y N Y N N Y Y N 關(guān)系進(jìn)行翻譯。 具體方法是:先確定 PLC 助記符指令語句與匯編語句組的 對應(yīng) 關(guān)系,翻譯時派發(fā)地址即可。 PLC 助記符指令與 MCS51 匯編指令對應(yīng)表 如表 41所示: 表 41 PLC助記符 指令與 MCS51匯編指令對應(yīng)表 PLC助記符程序 MCS51匯編語言 LD MOV C , BIT LDNOT MOV C , BIT CPL C OR ORL C , BIT ORNOT ORL C , /BIT AND ANL C , BIT ANDNOT ANL C,/BIT ORLD ORL C , ANDLD ANL C , OUT MOV , C 圖 43 邏輯翻譯模塊 I/O 映像區(qū)地址表的建立 輸入輸出映像區(qū)地址表中包含了目標(biāo)程序中全部可用的輸入輸出點的位地址。 讀取指令表文件 翻譯模塊 51函數(shù)庫 51程序 PLC函數(shù)庫 51編譯器 51連接器 符號轉(zhuǎn)換器 二進(jìn)制代碼 首先建立輸入映像區(qū)地址表和輸出映像區(qū)地址表,表結(jié)構(gòu)定義如下: typedef struct IBitadress { char *b。 int Iid。 }Iadress。/*輸入映像區(qū)定義 */ 字符指針分別指向輸入緩沖區(qū) 20H和輸出緩沖區(qū) 24H, 輸入緩沖區(qū) 的 每一位的位地址標(biāo)號 由 Iid標(biāo)示, 輸出緩沖區(qū) 的 每一位的位地址標(biāo)號 由 Xid 標(biāo)示。 通過 輸入映像區(qū)表和輸出映像區(qū)表的初始化 來觀察表示方法 : Iadress Ibit[8]= { {\0,0}, {\0,1}, {\0,2}, {\0,3}, {\0,4}, {\0,5}, {\0,6}, {\0,7}, }。/*輸入映像區(qū)表初始化 */ 通過 該初始化過程可以發(fā)現(xiàn): 每字節(jié)位地址的位標(biāo)號 與 輸入(輸出)表的 Iid 字段和位地址 是相對應(yīng)的,如輸入(輸出)映像區(qū)地址“ ( )”對應(yīng)的標(biāo)號Iid 為“ 0( 0)”,與“ ( )”對應(yīng)的 Iid 為“ 1( 0)”。 在翻譯的時候 , 映像表中 的 取用地址 由 我們通過源文件鏈表節(jié)點中的 I/O 點 的 類型來決定,再結(jié)合輸入點號最終唯一確定一個位地址 將 作為程序地址。 源文件操作碼類型和 I/O 點號的分離 當(dāng)遍歷到一個節(jié)點時, 將 操作數(shù)( Poprand)字段 從節(jié)點數(shù)據(jù)域中取出,并 分離操作數(shù)字段的 I/O 點 號 和 I/O點 類型 ,具體方法是: 先取出 Poprand 字段第一個字符 Poprand[0]存入變量 Poprand_1,該字段表示了I/O 點的類型,“ I”是輸入點,“ X”代表輸出點,“ 0”是 ORLD/ANDLD 指令使用的 固定操作碼。然后取出 Poprand 字段的第二個字符 Poprand[1]存入變量 Poprand_1,該字段表示了 I/O 點的標(biāo)號。 操作碼字段翻譯 當(dāng)掃描到節(jié)點時,首先 判別取出 的 節(jié)點的操作碼字 斷 Popcode[ ],通過判別可以確定最終翻譯生成的匯編代碼的 操作數(shù)字段 和 操作碼字 段其 中的一個, 通過分離后的Poprand_1 和 Poprand_2 共同確定 表示位地址的操作碼字段。 位尋址指令的特點決定了 在生成目標(biāo)程序的操作數(shù)字段 時 ,邏輯量的暫存 要選取 程序狀態(tài)字 PSW 的最高位Cy。邏輯節(jié)點組暫存選用了位地址 。 源文件操作碼字段 Popcode[ ]的翻譯分以下三種情況: (1) 目標(biāo)代碼地址固定的語句的翻譯 ORLD 0. 譯為 ORL C, ANDLD 0. 譯為 ANL C, 由于 這 類 指令中的位地址是不 會發(fā)生改 變的, 所以 翻譯是固定的, 是表示向 固定的暫存區(qū) 中 存入 組節(jié)點并聯(lián)時的中間結(jié)果 。 (2) 通過操作碼字段的翻譯后只需確定位地址的語句的翻譯 OR(ORNOT) I1. 譯為 ORL C,I1(ORL C,/I1) AND(ANDNOT) I1. 譯為 ANL C,I1(ANL C,/I1) 從 這兩句中 可以確定 目標(biāo)程序的操作碼字段和操作數(shù)字段的一個值, 而 等待確定的 只剩下 I/O 點地址 I1了 。 (3) 需 保 存中 間結(jié)果的語句的翻譯 遇到 成組 串 并聯(lián) 的情況 ,需先將上一組邏輯的結(jié)果存入暫存區(qū)。即翻譯為:當(dāng)ldflag=0時 LD I1 譯為 MOV C,I1; 當(dāng) ldflag=1 時 LD I1 譯為 MOV ,C MOV C,I1 兩句要指出的是在進(jìn)行判斷的時候 首 先 應(yīng)該 判斷條件 (ldfalg=1)然后 再判斷條件 (ldfalg= 0),否則 很有 可能 會 漏掉需要暫存的中間點。 在 當(dāng)遇到 OUT 指令時, 應(yīng)先 把 ldflag 清零,因為 OUT 指令 表示 了 一個邏輯回路的結(jié)束 。 I/O 點對應(yīng)的位地址的確定 通 過對源文件 操作碼字段的分析 和 翻譯, 完整的 把 少量源程序的語句翻譯出來,這些語句涉及 的 都是固定地址 的位置 。多數(shù)已經(jīng)得到了目標(biāo)程序也就匯編代碼的操作碼字段和一個操作數(shù)字段, 剩下一個位地址字段等待確定。確定了位地址以后,整 個程序的翻譯也就都完成了 , 這是翻譯中最關(guān)鍵的一步。 在 這里用到了 I/O 映像區(qū)地址表和 通過 分離源文件操作數(shù)字段 Poprand[]的得到的 I/O 點標(biāo)號 Poprand_1。 確定位地址的方法是首先分析分離得到的 Poprand_0,若 Poprand_0 為 ” I” 則查找輸入映像區(qū),這時再用變量 Poprand_1 和輸入映 像區(qū)地址表的 Iid 字段匹配,匹配成功則取出 Iid對應(yīng)的位地址,這樣就完成了位地址的確定。 在邏輯翻譯之前和 邏輯翻譯 之后 將 系統(tǒng)程序分別 導(dǎo)入到輸出鏈表, 而 最后輸出的就是具備了完整 的 控制功能的程序。通過后接匯編編譯器翻譯為 .HEX 文件,用下載器下載到單片機(jī)即可。 翻譯軟件部分運(yùn)行圖片如 下 圖所示。 圖 44 主程序界面 圖 45 讀入 PLC源程序 圖 46 錯誤檢查 圖 47 翻譯結(jié)果 結(jié)論 本設(shè)計是在分析 了 可編程控制 器 系統(tǒng)的工作原理和實現(xiàn) 方式 后,通過 上網(wǎng)和去圖書館 查 找 相關(guān)資料完成的。實踐證明,用單片機(jī)仿真可編程序控制器是合理可行的。軟、硬件部分均實現(xiàn)了預(yù)想的功能。 將 PLC的設(shè)計思想 和 實現(xiàn) 原理運(yùn) 用于單片機(jī) 系統(tǒng) 的設(shè)計, 縮短 了 系統(tǒng)的 開發(fā)周期,降低了系統(tǒng) 的 造價, 同時 具有良好的經(jīng)濟(jì)性,實驗室樣板的造價大約在 70 至 80元,遠(yuǎn)低于市場同類產(chǎn)品,具有很高的性能價格比,在一些要求不高,控制量不大的控制場合完全能夠滿足要求。 5 仿真調(diào)試 仿真調(diào)試是對整個設(shè)計的一種檢驗, 由于時間關(guān)系,因此 本 設(shè)計 僅 采用了軟件仿真 來驗證程序的可行性 。 軟件仿真調(diào)試 系統(tǒng)簡介 本設(shè)計是基于單片機(jī)的 PLC 設(shè)計與實現(xiàn) ,即利用單片機(jī)實現(xiàn) PLC 的基本功能,由于 PLC 的輸入輸出信號 由光耦隔離,因此其 抗干擾性 強(qiáng),所以在本設(shè)計中 8個輸入,8個輸出都由光耦將其與單片機(jī)隔離開,而且,為了使仿真效果更加明顯,特地在輸出端繼電器之后接了電動機(jī),當(dāng)程序運(yùn)行時,指定的燈會亮起,對應(yīng)的電動機(jī)將會工作 。另外,為了能更明顯的區(qū)別 PLC 上電、編程、運(yùn)行不同的狀態(tài),特地設(shè)置系統(tǒng)狀態(tài)為上電時,紅燈亮,液晶屏顯示“ Power On”,當(dāng)系統(tǒng)狀態(tài)為編程時,紅燈和黃燈亮,液晶屏顯示“ Programming”,當(dāng)系統(tǒng)為運(yùn)行狀態(tài)時,黃燈滅,綠燈亮起,紅燈依舊亮著,此時液晶屏顯示“ Running” 。 圖 51 上電狀態(tài) 圖 52 編程狀態(tài) 圖 53 運(yùn) 行狀態(tài) 軟件仿真 根據(jù) PLC 集中采樣輸入、掃描、集中輸出的工作特點 ,用 24V 電源和地來模擬高低電平,高電平輸入有效,低電平輸入無效來控制電動機(jī)的轉(zhuǎn)動,系統(tǒng)上電時,系統(tǒng)輸出 Y0?Y7為 0,電動機(jī)不工作;當(dāng)狀態(tài)開關(guān)置編程時,通過撥動輸入的開光自由將其連接 24V或地狀態(tài),此時系統(tǒng)將輸入 X0?X7 狀態(tài)保存,輸出 Y0?Y7 不變; 當(dāng)狀態(tài)開關(guān)置運(yùn)行時,此時單片機(jī)掃描輸入狀態(tài),然后系統(tǒng)輸出 Y0?Y7為保存的 X0?X7 狀態(tài),即相應(yīng)的輸出電路燈亮,電動機(jī)工作。其中, 程序執(zhí)行的過程中,即使改變了輸入狀態(tài), 也無法更改 程序 ,直到下一個掃描周期的輸入處理階段,這些變化才會 被 讀入 ,成為一個新的程序被運(yùn)行。 圖 54 輸入端狀態(tài) 由圖可見 ,此時輸入端 X0、 X X2 接地, X X X X X7 接 24V 電源,因此,對應(yīng)的 Y0、 Y Y2輸出接的燈不亮, 繼電器不 動作, 電動機(jī)不轉(zhuǎn)動,而 Y YY Y Y7 輸出接的燈應(yīng)該亮, 繼電器吸合 且電動機(jī)工作。 圖 55 輸出端狀態(tài) 結(jié) 束 語 經(jīng)過兩個多月的努力, 基于單片機(jī)的 PLC 設(shè)計與實現(xiàn) 論文終于完成 。 在整個 畢業(yè)設(shè)計過程中, 筆者 遇 到了 很多的難題,但在 指導(dǎo) 老師和 同組 同學(xué)的幫助下 都 順利解決了 。 在 這段時間里, 筆者 從不斷 學(xué)習(xí) 的 過程中體會到: 做畢業(yè)設(shè)計 是一個不斷學(xué)習(xí) 和充實自己 的過程,從最初剛寫論文時對 單片機(jī)選型 問題的模糊認(rèn)識到最后能夠?qū)υ搯栴}有深刻的 了解 認(rèn)識, 筆者 體會到實踐對于學(xué)習(xí)的重要性,以前只是 單純的學(xué)習(xí) 理論,沒有 自己親身的實踐考察,對 理論 知識 的理解
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1