plc到复杂指令集(8051)编译器计划(汇编)2-组合逻辑部门-根本控制指令

[复制链接]
发表于 2025-10-29 19:19:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在最开始肯定要留意,使用的单片机指令集至少要有100条左右,否则很有大概是没有逻辑指令的精简架构,在指令翻译过程中会有严肃题目,比方呆板码的非划一性。
本文中的plc体系指令使用三菱fx1,单片机使用amd87c51,其他衍生型号大概略有收支,标题以PLC指令为准


请忽略t0,这是时序逻辑范畴,不在组合逻辑部门内形貌
笔墨形貌的伪代码:读取按钮,装入中央寄存器,输出到y0;读取取反按钮,装入寄存器,输出到m100(内存空间);后省略
紧张的一件事就是:肯定要看好呆板码!!指令具体是不一样的
位使用mov分别是a2和92!
LD+OUT
  1. MOV C,P0.0
  2. MOV P1.0,C
复制代码
LDI+OUT
  1. MOV C,P0.0
  2. CPL C
  3. MOV P1.0,C
复制代码
此中,ldi对应前两句
呆板码:
  1. A2
  2. B3
  3. 92
复制代码
LD+OUTM
  1. MOV C,P0.0
  2. MOV 30H,C
复制代码
对于51来说,ram相称有限,00h-7fh可以作为m中央继电器的存储地区,共128位,保举用Q系列的八位编号方式,比方Q0.0,对应30h,Q0.7对应37h
LDM+OUT
  1. MOV C,30H
  2. MOV P1.1,C
复制代码

LD+AND+OUT
  1. MOV C,P0.0
  2. ANL C,P0.1
  3. MOV P1.0,C
复制代码
  1. A2
  2. 82
  3. 92
复制代码
LD+ANI+OUT+AND+OUT
  1. MOV C,P0.0
  2. ANL C,/P0.1
  3. MOV P1.0,C
  4. ANL C,P0.2
  5. MOV P1.1,C
复制代码
  1. A2
  2. B0
  3. 92
  4. 82
  5. B0
复制代码

LD+OR+ORI+OUT
  1. MOV C,P0.0
  2. ORL C,P0.1
  3. ORL C,/P0.2
  4. MOV P1.1,C
复制代码
  1. A2
  2. 72
  3. A0
  4. B0
复制代码

LD+SET
  1. MOV C,P0.0
  2. ORL C,P1.0
  3. MOV P1.0,C
复制代码
  1. A2
  2. 72
  3. 92
复制代码
从呆板码可以看出,ld+set等效于ld+ory+out
LD+RST
  1. MOV C,P0.0
  2. ANL C,/P0.1
  3. MOV P1.1,C
复制代码
  1. A2
  2. B0
  3. 92
复制代码
sety和m是一样的
m使用的是位所在,而不是单位所在,只能用c来使用
如果要使用D如许的八位数字寄存器,则须要使用单位所在30h-7fh
LD+RSTD (步伐中应制止)
  1. MOV C,P0.0
  2. JC FINISH
  3. MOV 30H,#00H
  4. FINISH:
复制代码
  1. A2
  2. 40
  3. 75
复制代码
这就很恶心了,使用了伪指令,如许一来,伪指令标签还要再自加数字,如果后边尚有rstd的话
以是只管用传送指令清D

这是一个fx1n到场的指令,在线上取反
LD+INV+OUT
  1. MOV C,P0.0
  2. CPL C
  3. MOV P1.0,C
复制代码
  1. A2
  2. B3
  3. 92
复制代码

这一坨(只实用于一个ld后边的分支,只有一个mpp和mps,有一堆mrd的简朴情况,不应使用)

MOV C,P0.0
;LD
MOV ACC,#00H
MOV ACC.0,C
;MPS
ANL C, 30H
;AND
MOV P1.0,C
;OUT
MOV C,ACC
;MRD
ANL C,3FH
;AND
MOV P1.1,C
;OUT
MOV C,ACC
;MPP
ANL C,40H
;AND
MOV P1.2,C
;OUT

精确的mps和mpp,末了一行前边插入了分支mrd

步伐最开始的地方按需求应该放置sp
  1. MOV SP,#00H
  2. ;BEGIN
  3. MOV C,P0.0
  4. CPL C
  5. ;LDI
  6. MOV ACC.0,C
  7. PUSH A
  8. ;MPS
  9. ANL C,P0.1
  10. ;AND
  11. MOV ACC.0,C
  12. PUSH A
  13. ;MPS
  14. ANL C,/P0.3
  15. ;ANI
  16. MOV P1.0,C
  17. ;OUT
  18. POP A
  19. MOV C,ACC.0
  20. ;MPP
  21. ANL C,P0.2
  22. ;AND
  23. MOV P1.1,C
  24. ;OUT
  25. POP A
  26. MOV C,ACC.0
  27. ;MPP
  28. ANL C,P0.3
  29. ;AND
  30. MOV ACC.0,C
  31. PUSH A
  32. ;MPS
  33. ANL C,/P0.3
  34. ;AND
  35. MOV P0.3,C
  36. ;OUT
  37. MOV C,ACC.0
  38. ;MRD
  39. ANL C,P0.5
  40. ;AND
  41. MOV P0.4,C
  42. ;OUT
  43. POP A
  44. MOV C,ACC.0
  45. ;MPP
  46. ANL C,P0.6
  47. ;AND
  48. MOV P0.5,C
  49. ;OUT
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表