thiết bị lập trình , chương 10

Chia sẻ: Nguyen Van Dau | Ngày: | Loại File: PDF | Số trang:26

0
94
lượt xem
30
download

thiết bị lập trình , chương 10

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tập lệnh liên quan đến Byte, word, Double word 1/ Xử lý toán học, tăng giảm thanh ghi 2/ Tập lệnh lôgíc với Byte, Word, Double Word 3/ Tập lệnh dịch chuyển nội dung thanh ghi, ô nhớ 4/ Tập lệnh xoay và lật thanh ghi 5/ Tập lệnh so sánh nội dung thanh ghi, ô nhớ 6/ Tập lệnh chuyển đổi kiểu dữ liệu 7/ Lệnh nhẩy 8/ Lệnh For-Next Các lệnh toán học, tăng giảm thanh ghi Các lệnh cộng, trừ, nhân, căn bậc hai, l−ợng giác, tăng, giảm thanh ghi tác động lên 3 cờ nhớ: SM1.0: Cờ không...

Chủ đề:
Lưu

Nội dung Text: thiết bị lập trình , chương 10

  1. 8/13/2007 TËp lÖnh liªn quan ®Õn Byte, word, Double word 1/ Xö lý to¸n häc, t¨ng gi¶m thanh ghi 2/ TËp lÖnh l«gÝc víi Byte, Word, Double Word 3/ TËp lÖnh dÞch chuyÓn néi dung thanh ghi, « nhí 4/ TËp lÖnh xoay vµ lËt thanh ghi 5/ TËp lÖnh so s¸nh néi dung thanh ghi, « nhí 6/ TËp lÖnh chuyÓn ®æi kiÓu d÷ liÖu 7/ LÖnh nhÈy 8/ LÖnh For-Next C¸c lÖnh to¸n häc, t¨ng gi¶m thanh ghi C¸c lÖnh céng, trõ, nh©n, c¨n bËc hai, l−îng gi¸c, t¨ng, gi¶m thanh ghi t¸c ®éng lªn 3 cê nhí: SM1.0: Cê kh«ng SM1.1: Cê trµn SM1.2: Cê ©m C¸c lÖnh chia t¸c ®éng lªn 4 cê nhí: SM1.0; SM1.1; SM1.2; SM1.3: Cê chia kh«ng 1
  2. 8/13/2007 Nhãm lÖnh to¸n häc: ADD_I: LÖnh céng sè nguyªn 16 bÝt ADD_DI: LÖnh céng sè nguyªn 32 bÝt ADD_R: LÖnh céng sè thùc Thao t¸c: IN1 + IN2 → OUT SUB_I: LÖnh trõ sè nguyªn 16 bÝt SUB_DI: LÖnh trõ sè nguyªn 32 bÝt SUB_R: LÖnh trõ sè thùc Thao t¸c: IN1 - IN2 → OUT MUL_I: LÖnh nh©n sè nguyªn 16 bÝt MUL_DI: LÖnh nh©n sè nguyªn 32 bÝt MUL_R: LÖnh nh©n sè thùc Thao t¸c: IN1 * IN2 → OUT DIV_I: LÖnh chia sè nguyªn 16 bÝt DIV_DI: LÖnh chia sè nguyªn 32 bÝt DIV_R: LÖnh chia sè thùc Thao t¸c: IN1 / IN2 → OUT Thao t¸c (+): IN1 + OUT → OUT Thao t¸c (-): OUT - IN1 → OUT Thao t¸c (*): IN1 * OUT → OUT Thao t¸c (/): OUT / IN1 → OUT Chó ý: PhÐp to¸n nh©n 2 sè nguyªn 16 bÝt, kÕt qu¶ sè nguyªn 16 bÝt PhÐp to¸n nh©n 2 sè nguyªn 32 bÝt, kÕt qu¶ sè nguyªn 32 bÝt §èi víi phÐp chia sè nguyªn, phÇn d− kh«ng ®−îc l−u l¹i 2
  3. 8/13/2007 LD I0.0 LD I0.0 +I AC1, AC0 +R AC1, AC0 *I AC1, VW100 *R AC1, VD100 /I VW10, VW200 /R VD10, VD200 PhÐp céng: PhÐp nh©n: PhÐp chia: PhÐp céng: PhÐp nh©n: PhÐp chia: 3
  4. 8/13/2007 Nh©n, chia cã sè d−: MUL: LÖnh nh©n DIV: LÖnh chia Thao t¸c: IN1 * IN2 → OUT Thao t¸c: IN1 / IN2 → OUT Thao t¸c: IN1 * OUT → OUT Thao t¸c: OUT / IN1 → OUT Chó ý: KÕt qu¶ phÐp nh©n lµ sè nguyªn 32 bÝt §èi víi phÐp chia sè nguyªn, phÇn d− ®−îc l−u l¹i PhÐp nh©n: PhÐp chia: VW202: chøa th−¬ng sè VW200: chøa phÇn d− 4
  5. 8/13/2007 Nhãm lÖnh l−îng gi¸c, khai c¨n, e mò: SIN(IN) = OUT COS(IN) = OUT TAN(IN) = OUT LN(IN) = OUT EXP(IN) = OUT SQRT(IN) = OUT §Ó thùc hiÖn hµm xy: EXP(Y*LN(X)) Nhãm lÖnh t¨ng vµ gi¶m néi dung « nhí: T¨ng: IN + 1 = OUT T¨ng: OUT + 1 = OUT Gi¶m: IN - 1 = OUT Gi¶m: OUT - 1 = OUT 5
  6. 8/13/2007 Chó ý: LÖnh t¨ng (INC_B) vµ gi¶m (DEC_B) lµ lo¹i lÖnh kh«ng dÊu. LÖnh t¨ng (INC_W) vµ gi¶m (DEC_W) lµ lo¹i lÖnh cã dÊu (bÝt dÊu cã ¶nh h−ëng ®Õn kÕt qu¶) 16#7FFF > 16#8000. LÖnh t¨ng (INC_D) vµ gi¶m (DEC_D) lµ lo¹i lÖnh cã dÊu (bÝt dÊu cã ¶nh h−ëng ®Õn kÕt qu¶) 16#7FFFFFFF > 16#80000000. SM1.2: cê ©m (®èi víi W vµ D) TËp lÖnh víi byte, word, double word Nhãm lÖnh ®¶o néi dung thanh ghi, t¸c ®éng lªn 1 cê nhí: SM1.0: Cê kh«ng Nhãm lÖnh AND, OR, XOR: SM1.0: Cê kh«ng 6
  7. 8/13/2007 Nhãm lÖnh ®¶o néi dung thanh ghi: INV_B: §¶o néi dung 1 byte INV_W: §¶o néi dung 1 word INV_DW: §¶o néi dung 1 double word Thao t¸c: ~IN = OUT LÖnh nghÞch ®¶o trªn tõng bÝt cña ®èi sè: IN: 00110101 OUT: 11001010 Thao t¸c: ~OUT = OUT Nhãm lÖnh AND, OR, XOR: Thao t¸c: Thao t¸c: WAND: IN1 & IN2 = OUT WAND: IN1 & OUT = OUT WOR: IN1 ≥ IN2 = OUT WOR: IN1 ≥ OUT = OUT WXOR: IN1 IN2 = OUT WXOR: IN1 OUT = OUT = = 7
  8. 8/13/2007 Nhãm lÖnh dÞch chuyÓn thanh ghi, « nhí Nhãm lÖnh dÞch chuyÓn Nhãm lÖnh dÞch chuyÓn khèi 8
  9. 8/13/2007 Nhãm lÖnh dÞch chuyÓn: Thao t¸c: IN → OUT LÖnh sao chÐp néi dung vïng nhí IN sang vÞ trÝ vïng nhí míi OUT. Néi dung cña IN kh«ng bÞ thay ®æi sau lÖnh dÞch chuyÓn. Nhãm lÖnh dÞch chuyÓn khèi: Thao t¸c: IN → OUT N: Sè l−îng d÷ liÖu cÇn sao chÐp, N = 1- 255. LÖnh sao chÐp mét m¶ng d÷ liÖu, kÓ tõ ®Þa chØ ®Æt trong IN. 9
  10. 8/13/2007 VÝ dô: KÕt qu¶ thao t¸c: Nhãm lÖnh xoay vµ lËt thanh ghi Nhãm lÖnh lËt ph¶i, lËt tr¸i, xoay ph¶i, xoay tr¸i. LÖnh t¸c ®éng lªn 2 cê nhí SM1.0: Cê kh«ng SM1.1: Cê trµn LÖnh lËt c¸c bit thanh ghi. 10
  11. 8/13/2007 Nhãm lÖnh lËt ph¶i, lËt tr¸i, xoay ph¶i, xoay tr¸i: SHR_B: LËt ph¶i 1 byte SRB: LËt ph¶i 1 byte SHL_B: LËt tr¸i 1 byte SLB: LËt tr¸i 1 byte ROR_B: Xoay ph¶i 1 byte RRB: Xoay ph¶i 1 byte ROL_B: Xoay tr¸i 1 byte RLB: Xoay tr¸i 1 byte Thao t¸c: Víi lÖnh lËt: Thay ®æi néi dung thanh ghi hoÆc « nhí b»ng c¸ch dÞch chuyÓn tõng bÝt sang ph¶i, hoÆc sang tr¸i theo sè lÇn ®Æt tr−íc N. Víi lÖnh xoay:Thay ®æi néi dung thanh ghi b»ng c¸ch dÞch bÝt theo vßng kÝn sang ph¶i, hoÆc sang tr¸i, theo sè lÇn ®Æt tr−íc N. Chó ý: Víi lÖnh lËt: Sè lÇn lËt tèi ®a cña lÖnh b»ng kÝch th−íc to¸n h¹ng. VÝ dô: N > 8, lÖnh lµm viÖc víi byte, sè lÇn lËt tèi ®a lµ 8 N>16, lÖnh lµm viÖc víi word, sè lÇn lËt tèi ®a lµ 16 N>32, lÖnh lµm viÖc víi DW, sè lÇn lËt tèi ®a lµ 32 Sau khi lËt, néi dung thanh ghi cã gi¸ trÞ 0, th× cê kh«ng ®−îc set lªn 1. 11
  12. 8/13/2007 SLW VW200,3 Tr−íc khi lËt Cê trµn Khi lËt ph¶i th× gi¸ trÞ LSB ®−îc ghi vµo LËt lÇn 1 Cê trµn cê trµn, gi¸ trÞ 0 ®−îc ghi vµo MSB. Khi lËt tr¸i th× gi¸ trÞ LËt lÇn 2 Cê trµn MSB ®−îc ghi vµo cê trµn, gi¸ trÞ 0 ®−îc ghi vµo LSB. LËt lÇn 3 Cê trµn Cê kh«ng Cê trµn Víi lÖnh xoay: Khi sè lÇn ®Æt N lín h¬n kÝch th−íc ®èi sè (to¸n h¹ng) th× PLC sÏ thùc hiÖn khÊu trõ, sao cho sè lÇn xoay n»m trong kho¶ng: 0 ®Õn 7 ®èi víi byte 0 ®Õn 15 ®èi víi word 0 ®Õn 32 ®èi víi double word 12
  13. 8/13/2007 RRW AC0, 2 Tr−íc khi xoay Cê trµn Khi xoay ph¶i th× gi¸ trÞ LSB bÞ ®Èy Xoay lÇn 1 Cê trµn khái thanh ghi vµ ®−îc göi vµo cê trµn tr−íc khi quay l¹i ®Çu MSB Xoay lÇn 2 Cê trµn Khi xoay tr¸i th× gi¸ trÞ MSB bÞ ®Èy khái thanh ghi vµ Cê kh«ng ®−îc göi vµo cê Cê trµn trµn tr−íc khi quay l¹i ®Çu LSB LÖnh lËt c¸c bÝt thanh ghi: Thao t¸c: Thay ®æi néi dung thanh ghi b»ng c¸ch chuyÓn 1 bÝt bªn ngoµi vµo thanh ghi vµ mét bÝt trong thanh ghi ®−îc lÊy ra vµ ghi vµo cê trµn SM1.1 13
  14. 8/13/2007 Sè lÇn lËt tèi ®a N = 64 (bÝt) DATA: X¸c ®Þnh ®Þa chØ cña bÝt cÇn ghi (néi dung cña bÝt nµy sÏ ®−îc chuyÓn vµo thanh ghi). S_Bit: X¸c ®Þnh ®Þa chØ bÝt ban ®Çu cña thanh ghi (MSB.b) N: Sè bÝt cÇn lËt N > 0 lËt theo chiÒu tõ LSB ®Õn MSB SM1.1 MSB LSB DATA MSB.b S_bit N < 0 lËt theo chiÒu tõ MSB ®Õn LSB DATA MSB LSB SM1.1 MSB.b S_bit SHRB I0.3, V33.4, +(-)14 §Þa chØ MSB.b ®−îc x¸c ®Þnh nh− sau: MSB.b = [(Byte of S_bit) + (N - 1+ (bit of S_bit))/8].phÇn d− phÐp chia 8 V33.4 N = -14 V35.1 14
  15. 8/13/2007 V33.4 N = 14 V35.1 Nhãm lÖnh so s¸nh néi dung thanh ghi 15
  16. 8/13/2007 Thao t¸c ®èi víi LAD: == so s¸nh b»ng: IN1 = IN2 :kÝn m¹ch IN1 ≠ IN2 :hë m¹ch so s¸nh kh¸c: IN1 ≠ IN2 :kÝn m¹ch IN1 = IN2 :hë m¹ch >= so s¸nh lín h¬n IN1 ≥ IN2 : kÝn m¹ch hoÆc b»ng IN1 < IN2 : hë m¹ch IN2 : hë m¹ch > so s¸nh lín h¬n IN1 > IN2 : kÝn m¹ch IN1 ≤ IN2 : hë m¹ch < so s¸nh nhá h¬n IN1 < IN2 : kÝn m¹ch IN1 ≥ IN2 : hë m¹ch Thao t¸c ®èi víi STL: Mçi khi tho¶ m·n lÖnh th× ®Ønh ng¨n xÕp cã gi¸ trÞ l«gÝc b»ng 1 16
  17. 8/13/2007 Chó ý: So s¸nh byte lµ lÖnh kh«ng dÊu So s¸nh sè nguyªn, double word, real lµ lÖnh cã dÊu LÖnh chuyÓn kiÓu d÷ liÖu Cã thÓ chuyÓn tõ: Byte → Integer; Integer → Byte; Integer → DInteger Integer → String; DInteger → Integer; DInteger → Real DInteger → String; Real → String; Integer → ASCII; DInteger → ASCII; Real → ASCII; String → Integer; String → DInteger; String → Real; BCD → Integer; Integer → BCD; ChuyÓn ®æi m· bÈy ®o¹n. LÖnh nhÈy Khi lÖnh JMP ®−îc thùc hiÖn, ch−¬ng tr×nh sÏ chuyÓn ®iÒu khiÓn ®Õn vÞ trÝ khai b¸o label (LBL) sè thø tù N. Hai lÖnh JMP vµ LBL ph¶i ®−îc ®Æt trong cïng mét kiÓu ch−¬ng tr×nh. 17
  18. 8/13/2007 VÝ dô: Ch−¬ng tr×nh chÝnh Ch−¬ng tr×nh con Ch−¬ng tr×nh phôc vô ng¾t. §Ó thùc hiÖn lÖnh JMP, ®Ønh ng¨n xÕp ph¶i cã l«gic 1 13.7 LÖnh lÆp FOR-NEXT Thao t¸c: Thùc hiÖn ®o¹n ch−¬ng tr×nh bªn trong vßng lÆp For-Next víi sè lÇn ®Æt tr−íc. INDX: §Þa chØ l−u gi¸ trÞ ban ®Çu cña vßng lÆp (§Þa chØ kiÓu Word INIT: Gi¸ trÞ ban ®Çu cña vßng lÆp FINAL: Gi¸ trÞ cuèi cña vßng lÆp Mçi lÇn thùc hiÖn vßng For-Next, gi¸ trÞ INDX ®−îc t¨ng lªn 1, khi INDX b»ng víi FINAL th× vßng For kÕt thóc. NÕu INIT > FINAL, th× vßng For kh«ng thùc hiÖn. C¸c lÖnh For-Next ®−îc phÐp lång nhau tèi ®a 8 lÇn 18
  19. 8/13/2007 Mét sè vÝ dô øng dông 1/ §iÒu khiÓn ®Ìn ®−êng kh«ng nh¸y ®Ìn vÒ ®ªm 2/ §iÒu khiÓn ®Ìn ®−êng cã nh¸y ®Ìn vÒ ®ªm 3/ §iÒu khiÓn nhiÖt ®é kho l¹nh §iÒu khiÓn ®Ìn ®−êng kh«ng nh¸y ®Ìn vÒ ®ªm LËp ch−¬ng tr×nh ®iÒu khiÓn ®Ìn ng· t− theo s¬ ®å nh− sau: §á A Xanh A Vµng A §á B Xanh B Vµng B 19
  20. 8/13/2007 Thêi gian ®Ìn ®á lµ: 18s Thêi gian ®Ìn xanh lµ: 12s Thêi gian ®Ìn vµng lµ: 6s CÊu h×nh ®Çu vµo ®Çu ra: §Çu vµo: Nót Ên khëi ®éng M (NO): I0.0 Nót Ên dõng D (NC): I0.1 §Çu ra: §á lé A: Q0.1 Xanh lé A: Q0.0 Vµng lé A: Q0.2 §á lé B: Q0.5 Xanh lé B: Q0.4 Vµng lé B: Q0.6 0 I0.0 0 M §á A, Q0.1 1 L Xanh B 1 I0.1 L Q0.4 D L = Δt1 Δt1 t1/1/12s L = 12s §á A, Q0.1 Yi 2 Yi 2 L Vµng B L Q0.6 L = Δt2 t2/1/18s L = 6s Δt2 Yi = 1, 2, 3, 4 Yi = 1, 2, 3, 4 Xanh A Q0.0 3 3 L §á B L Q0.5 L = Δt3 t3/1/30s L = 12s Δt3 Vµng A Q0.2 4 L §á B 4 L Q0.5 Δt4 L = Δt4 t4/1/36s L = 6s 20
Đồng bộ tài khoản