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

正文內(nèi)容

基于單片機(jī)的plc編譯程序設(shè)計(jì)研究畢業(yè)設(shè)計(jì)論文(文件)

2025-07-30 20:35 上一頁面

下一頁面
 

【正文】 一 )成立時(shí), k=4, k+l=5, 從而得: m[j][k+1]=m[4兒 5]=’\ x06’ 而 i11的值在本例中已經(jīng)在 4. 4. 1中已知為: i1=7, i11=6。 30 3. 4. 4 錯(cuò)誤標(biāo)記寫入錯(cuò)誤信息文件 在 3. 1. 2中我們已經(jīng)知道指針變量 fp指向源程序文件 (. asm),指針變量 fpl 指向列表文件 (. 1st)。 3. 5 查錯(cuò)模塊程序運(yùn)行結(jié)果 下面給出查錯(cuò)模塊程序?qū)嶋H運(yùn)行中,遇到源程序語句語法錯(cuò)誤時(shí),所生成的列表 文件 (. 1st)的情況舉例。 翻譯階段要做的第一個(gè)工作是 裝配固定代碼。 建立目標(biāo)文件 31 圖 5. 0固定代碼裝配流程 4. 1 基于單片機(jī)的 PLC編譯過程中目標(biāo)文件的建立 和 4. 1中 的方法十分類似,在建立目標(biāo)文件前,先要建立目標(biāo)文件名。 4. 1. 1 目標(biāo)文件名的建立 仍然用 a數(shù)組記錄源程序文件名,用 b數(shù)組記錄目標(biāo)文件名。結(jié)果,實(shí)現(xiàn)了用 b數(shù)組記錄一個(gè)文件名和源程序文件名相同,但擴(kuò)展名和源程序文件名不同的目標(biāo)文件名,該目標(biāo)文件名的擴(kuò)展名為“. bin。 4. 2 建立固定代碼數(shù)組 用 D數(shù)組來構(gòu)建固定代碼數(shù)組。再用 fopen語句,以 wb的方式,利 用 fopen語句以 wb的方式工作的一個(gè)特性:如果原來不存在該文件,則在打開時(shí)新建 一個(gè)以指定名字命名的文件,從而建立目標(biāo)文件。源程序文件的擴(kuò)展名 是. asm,而列表文件的擴(kuò)展名應(yīng)該是“. bin’’。所以,目標(biāo)文件的擴(kuò)展名為“. bin。在活動(dòng)代碼前的固定代碼包含專用地址矢量、延時(shí) 20ms子程序、 CPU和接口初始化子程序、定時(shí)器初值設(shè)定子程序、 TO中斷服務(wù)子程序、主程序開始初始化設(shè)定、輸入刷新。 列表文件中的 LDll 08*表示源程序中的 LDll 08語句出現(xiàn)語法錯(cuò)誤。 表 3. 5 源程序語句語法錯(cuò)誤時(shí)列表文件記錄情況 源程序文件 (. asm) 列表文件 (. 1st) 在. 1st文件的相應(yīng)行的末尾作標(biāo)記“術(shù) 。 至此,語句語法檢查完成。上例中的標(biāo)準(zhǔn)有: mE4][5]=’\ x06’。在連續(xù) 幾次沒有換行, m[j][k]=c[k]成立的情況下,當(dāng)出現(xiàn)條件 if(C[k]’’ )滿足時(shí) (即 發(fā)現(xiàn)空格字符時(shí) ),便表明此時(shí)已經(jīng)核對(duì)關(guān)鍵詞相等。 29 從 C數(shù)組和 M數(shù)組行的對(duì)應(yīng)關(guān)系可以找到核對(duì)的方法。在上述程序中, M數(shù)組逐行搜索是通過 for(j=l: j=16: )和 while(ki1)這兩個(gè)語句結(jié)構(gòu),經(jīng)過 if(m[j][k]!=c[k])條件判斷實(shí)現(xiàn)的。 若找不到相同的,則該源程序語句語法不正確。 M數(shù)組提供了源語句樣板。 3. 4 語句語法檢查 在整句識(shí)別程序中,當(dāng)識(shí)別出一個(gè)整句時(shí),便轉(zhuǎn)向語句語法檢查程序。用 if(ch==’\ xOd’ )語句進(jìn)行語句尾判斷。當(dāng)識(shí)別出一個(gè)整句時(shí),進(jìn)行一次語句語法檢查。 其中,列表文件的建立方法見 3. 1。 if((fp=fopen(a,” rb” ))==0) {printf(” cannot open file% s!\ n”, a): exit(0): } i f((fpl=fopen(b,” wb” ))==0) {printf(” cannot open or create file% s, disk error.\ n”,b): exit(0): } 經(jīng)過上面的程序以后,列表文件便已建立。所以在上述程序 中用 b[i+1]=’\ O’: b[i+2]=’\ 0’: b[i+3]=’\ 0’: b[i+4]=’\ 0’:四條語句將已拷貝給 b數(shù)組中的 asm清除,再通過 strcat(b,” Lst” )語句將 1st拼接到 b數(shù)組中。} If(i36) {b1=2。所以,下面程序的已知條件是源程序 文件名在 a數(shù)組中。 3. 1 編譯過程中列表文件名和列表文件的建立 建立列表文件的目的是為了用來存放查錯(cuò)結(jié)果。列表文件用來存放查錯(cuò)結(jié)果和錯(cuò)誤標(biāo)記。 y=09H, 其中, 09H值是從源語句 PLS 09中的參數(shù) 09得到, 19H是計(jì)算得到。 第二種情況:圖 2. 1中 F數(shù)組只是提供了和源程序語句對(duì)應(yīng)的目標(biāo)代碼的模板, 該模板中的某些位置上原先也用盲碼 (符號(hào)上用變量 )代替。有兩種情況需要采用 盲碼技術(shù)。 F I =? (Mi)成了編譯過程中裝配活動(dòng)代碼的依據(jù)。定理 1證畢。 2. 3 建立基于單片機(jī)的 PLO源程序語句和目標(biāo)代碼之間的關(guān)系 定理 1:設(shè) M為基于單片機(jī)的 PLC源語句標(biāo)準(zhǔn)集合,且 Mi? M, F為基于單片機(jī) 23 的 PLC的目標(biāo)代碼集合,且 F i c F,于是必有 F為 M的一個(gè) l一 1映射,其子集映象 關(guān)系為: F i=? (Mi) (3) 其中, ? 表示映射。 例如,對(duì)于源程序語句 LD 20,其目標(biāo)代碼子集為: F i={A2H, 20H}, (實(shí)際編譯程序中引進(jìn)變量 q,為: LD 20; Fi={A2H, q), q=20H) 而對(duì)于源程序語句 PLS 09,其目標(biāo)代碼子集為: F i={50H, 0DH, 20H, P, 06II, D2H, Y, D2H, P, 80H, 08H, C2H, Y, 80H, 04H, C2H, Y, C2H, P, 00H, 00H, 00H} 其中: P=19H, y=09H。如果 F i(i1, 2, ??, 入 )都一一對(duì)應(yīng)等于所定義的各單片 PLC語句的目標(biāo)機(jī)器代碼子集,則稱集合 F為基 于單片機(jī)的 PLC的目標(biāo)代碼集合。 fi。為此,在基于單片機(jī)的 PLC編譯程序中用 C語言實(shí)現(xiàn) M數(shù)組所表達(dá)的基于單片機(jī)的 PLC源程序語句標(biāo)準(zhǔn)集合。 2. 1. 2 基于單片機(jī)的 PLC源程序語句標(biāo)準(zhǔn)集合的數(shù)組表達(dá) 把基于單片機(jī)的 PLC源程序指令,依據(jù)上述 String Mi和 mi k的格式進(jìn)行表述, 我們就可以得到,當(dāng) i=l, 2, 3??, 16時(shí),子集 Mi分別為: Ml={L, D, , 5} M2={L, D, I, , 6} M3={A, N, D, , 6} M4={ A, N, I, , 6} M5={0, R, , 5} M6={0, R, I, , 6} M7={S, T, 0, R, E, , 8} M8={O, U, T, , 6} M9={T, I, M, , 6} M10={C, N, T, , 6} M11={R, S, T, C, , 7} M12={P, L, S, , 6} M13={D, I, N, , 6} 21 M14={S, F, T, , 6} M15={R, S, T, S, , 7} M16={E, N, D, , 6} 上述集合的全體就是基于單片機(jī)的 PLC源程序語句標(biāo)準(zhǔn)集合。 性質(zhì) 3: M數(shù)組的行數(shù)等于基于單片機(jī)的 PLC語句的條數(shù)。 M數(shù)組是進(jìn)行源程序查錯(cuò)時(shí)的對(duì)照標(biāo)準(zhǔn),也是進(jìn)行翻譯時(shí)的判別標(biāo)準(zhǔn)。 又如: PLS語句為: PLS 09, 其長度值 =6,標(biāo)識(shí)符串為 String Mi=(P, L, S, }, 20 故 PLS源語句標(biāo)準(zhǔn)子集為 Mi={P, L, S, , 6) 定義 2:在 Mi cM的條件下, Mi是一種源語句標(biāo)準(zhǔn)子集。它們的具體程序如下: 18 19 2 基于單片機(jī)的 PLC編譯程序總體設(shè)計(jì)方法 基于單片機(jī)的 PLC編譯程序總體設(shè)計(jì)方法碰到的第一個(gè)問題是源程序指令模板和目標(biāo)代碼模板在編譯程序中如何表達(dá) ?接著第二個(gè)問題是如何根據(jù)已知的源程序指令正確的找到目標(biāo)代碼程序 ?如何建立單片 PLC源程序語句和目標(biāo)代碼之間的關(guān)系 ? 為了在編譯時(shí)有一個(gè)對(duì)源程序語句的識(shí)別、查錯(cuò)的標(biāo)準(zhǔn),需要就基于單片機(jī)的 PLC 的 AND、 ANI、 OR、 ORI、 LD、 LDI、 OUT、 STORE、 TIM、 CNT、 RST、 PLS、 DIN、 SFT、 END等基本邏輯指令,建立基于單片機(jī)的 PLC源程序語句標(biāo)準(zhǔn)集合。等編譯程序中執(zhí)行“掃描源程序文件,逐條翻譯... 時(shí),得到源程序 提供的定時(shí)器初值,再在用正式代碼 (以 MOV指令目標(biāo)代碼的形式,并含定時(shí)器初值 ) 代替相應(yīng)位置上的盲碼。 表 1. 6 基于單片機(jī)的 PLC目標(biāo)程序框架結(jié)構(gòu) 在表 1. 6所示的基于單片機(jī)的 PLC目標(biāo)程序框架結(jié)構(gòu)中,專用地址矢量、延時(shí) 20ms子程序、 CPU和接口初始化子程序、定時(shí)器初值設(shè)定子程序、 TO中斷服務(wù)子程序、主程序開始初始化設(shè)定、輸入刷新,這些均屬于固定目標(biāo)代碼。固定代碼和活動(dòng)代碼均采用單片機(jī)的機(jī)器指令代碼。在基于單片機(jī)的 PLC編譯問題中,目標(biāo)程序框架和單片機(jī)的芯片編程相關(guān),諸如 CPU初始化、內(nèi)部硬件定時(shí)器設(shè)定、接口的初始化等。其功能是將 輸入端的邏輯值暫存在 Gi中,供 SFT指令使用;第二個(gè)是對(duì)應(yīng)于 SFT Mi的移位操作 程序模塊,其功能是依據(jù)已知的當(dāng)前邏輯運(yùn)算值 (在累加器 C中 ),以及 Hi的值,判斷 16 移位脈沖是否到;當(dāng)移位脈沖到時(shí),將輸入暫存位 Gi中的值移入移位寄存器 Mi。 1. 5 移位類語句的單片機(jī)程序模塊的構(gòu)建 共提供了 4個(gè) 8位移位寄存器。它們分別是:①脈沖微分寄存器的邏輯位 Yi,位地址 08H. 0FH;②用于寄存前次輸入的寄存器 Pi,位地址 18H. 1FH。 CNT指令的單片機(jī)程序模塊用 Ci表示計(jì)數(shù)器的邏輯位,位地 址 30H. 3FH;用 ni表示計(jì)數(shù)器的計(jì)數(shù)脈沖前沿識(shí)別位,位地址 50H一 5FH;用 Di(雙字節(jié)寄存器 )表示軟加 1計(jì)數(shù)器, Di由 Di, 0和 Di, 1組成;用 D’i表示計(jì)數(shù)器的 預(yù)置值寄存器 (雙字節(jié)寄存器 ), D39。這是一個(gè)對(duì)第 i個(gè)延時(shí)計(jì)時(shí)器進(jìn)行邏輯運(yùn)算處理的模塊,運(yùn)算的依據(jù)是已知的當(dāng)前邏輯運(yùn)算值 (在累加器 C中 )。 1. 2. 2 TIM Ti所需的 To中斷服務(wù)程序 單片機(jī)初始化時(shí),將 To設(shè)定成定時(shí)方式 l,并開放 To中斷。., 6EH, 6FH。 TO設(shè) 定成定時(shí) 0. 1s,每隔O. 1sT0中斷一次。 (如延時(shí)計(jì)時(shí)器類、脈沖微分類、計(jì)數(shù)器類、移位類等 )的單片機(jī)程序模塊需十幾條或 幾十條單片機(jī)指令組成。 AND、 ANI、 OR、 ORI、 LD、 LDI、 OUT、 STORE指令的單片機(jī)程序 (指令 )如表 2. 1所示。為了設(shè)計(jì)出基于單片機(jī)的 PLC編譯程序,首先要構(gòu)建出每一條源程序指令所 對(duì)應(yīng)的單片機(jī)程序模塊。設(shè)定目標(biāo)程序框架結(jié)構(gòu),是本課題的另一項(xiàng)主要工作任務(wù)。 (2)其次,目標(biāo)程序框架結(jié)構(gòu)也不同。為了大大降低成本,實(shí)現(xiàn)如前所述的,在 機(jī)電一體化產(chǎn)品和自動(dòng)化裝置的設(shè)計(jì)中直接用單片機(jī)芯片作為符合梯形圖邏輯的邏輯控制器, 就必須設(shè)計(jì)出可以將 PLC指令源程序翻譯成單片機(jī)目標(biāo)程序的編譯程序。 indicated that the piler can translate correctly the source program of PLC based on monolithic microputer into the target program which is enable to be executed by monolithic microputer and tallies the request of ladder diagram logic contr01. The experimental result proved that the piler designed for PLC based on the monolithic microputer conforms to the design requirement pletely,may use in the project development. Because the PLC based on the monolithic microputer is extremely inexpensive in cost, it may bring the good economic efficiency when practical application, thus has the strong usability. Key words: Monolithic microputer,programmable logic controller,piler,blind code, source program, target program 前 言 前人在單片機(jī)應(yīng)用研究和 PLC應(yīng)用研究方面已經(jīng)取得了豐碩的成果。實(shí)驗(yàn)結(jié)果表明,本文所設(shè)計(jì)的基于單片機(jī)的 PLC編譯程序完全符合設(shè)計(jì)要求,可以用于項(xiàng)目開發(fā)。首先,進(jìn)行了基于單片機(jī)的 PLC的單片機(jī)程序模塊研究,構(gòu)建了獨(dú)具特點(diǎn)的目標(biāo)程序框架結(jié)構(gòu)。 1 學(xué)院 畢業(yè)設(shè)計(jì)(論文) 題目: 基于單片機(jī)的 PLC編譯程序設(shè)計(jì)研究 學(xué) 生 姓 名:
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1