马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在最开始肯定要留意,使用的单片机指令集至少要有100条左右,否则很有大概是没有逻辑指令的精简架构,在指令翻译过程中会有严肃题目,比方呆板码的非划一性。
本文中的plc体系指令使用三菱fx1,单片机使用amd87c51,其他衍生型号大概略有收支,标题以PLC指令为准
请忽略t0,这是时序逻辑范畴,不在组合逻辑部门内形貌
笔墨形貌的伪代码:读取按钮,装入中央寄存器,输出到y0;读取取反按钮,装入寄存器,输出到m100(内存空间);后省略
紧张的一件事就是:肯定要看好呆板码!!指令具体是不一样的
位使用mov分别是a2和92!
LD+OUT
LDI+OUT
- MOV C,P0.0
- CPL C
- MOV P1.0,C
复制代码 此中,ldi对应前两句
呆板码:LD+OUTM
对于51来说,ram相称有限,00h-7fh可以作为m中央继电器的存储地区,共128位,保举用Q系列的八位编号方式,比方Q0.0,对应30h,Q0.7对应37h
LDM+OUT
LD+AND+OUT
- MOV C,P0.0
- ANL C,P0.1
- MOV P1.0,C
复制代码 LD+ANI+OUT+AND+OUT
- MOV C,P0.0
- ANL C,/P0.1
- MOV P1.0,C
- ANL C,P0.2
- MOV P1.1,C
复制代码
LD+OR+ORI+OUT
- MOV C,P0.0
- ORL C,P0.1
- ORL C,/P0.2
- MOV P1.1,C
复制代码
LD+SET
- MOV C,P0.0
- ORL C,P1.0
- MOV P1.0,C
复制代码 从呆板码可以看出,ld+set等效于ld+ory+out
LD+RST
- MOV C,P0.0
- ANL C,/P0.1
- MOV P1.1,C
复制代码 sety和m是一样的
m使用的是位所在,而不是单位所在,只能用c来使用
如果要使用D如许的八位数字寄存器,则须要使用单位所在30h-7fh
LD+RSTD (步伐中应制止)
- MOV C,P0.0
- JC FINISH
- MOV 30H,#00H
- FINISH:
复制代码 这就很恶心了,使用了伪指令,如许一来,伪指令标签还要再自加数字,如果后边尚有rstd的话
以是只管用传送指令清D
这是一个fx1n到场的指令,在线上取反
LD+INV+OUT
- MOV C,P0.0
- CPL C
- MOV P1.0,C
复制代码
这一坨(只实用于一个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- MOV SP,#00H
- ;BEGIN
- MOV C,P0.0
- CPL C
- ;LDI
- MOV ACC.0,C
- PUSH A
- ;MPS
- ANL C,P0.1
- ;AND
- MOV ACC.0,C
- PUSH A
- ;MPS
- ANL C,/P0.3
- ;ANI
- MOV P1.0,C
- ;OUT
- POP A
- MOV C,ACC.0
- ;MPP
- ANL C,P0.2
- ;AND
- MOV P1.1,C
- ;OUT
- POP A
- MOV C,ACC.0
- ;MPP
- ANL C,P0.3
- ;AND
- MOV ACC.0,C
- PUSH A
- ;MPS
- ANL C,/P0.3
- ;AND
- MOV P0.3,C
- ;OUT
- MOV C,ACC.0
- ;MRD
- ANL C,P0.5
- ;AND
- MOV P0.4,C
- ;OUT
- POP A
- MOV C,ACC.0
- ;MPP
- ANL C,P0.6
- ;AND
- MOV P0.5,C
- ;OUT
复制代码 |