仿电路系列之——电子元器件逻辑门(原)
bat吧
全部回复
仅看楼主
level 9
WyPo🍺 楼主
IF要被我玩坏了,[滑稽]
Echo.================
Echo.《仿电路逻辑门》
:start
Echo.================
Echo.输入信号数字"0"或"1"作为开关
Echo.信号端1:
Set /P cammondinput01=
Echo.信号端2:
Set /P cammondinput02=
Echo.================
Echo.非门:
If "%cammondinput01%"=="1" Set canmmondoutput=0
If "%cammondinput01%"=="0" Set canmmondoutput=1
If "%canmmondoutput%"=="1" Echo.真
If "%canmmondoutput%"=="0" Echo.非
Echo.
Echo.与门:
If "%cammondinput01%‖%cammondinput02%"=="0‖0" Set canmmondoutput=0
If "%cammondinput01%‖%cammondinput02%"=="1‖0" Set canmmondoutput=0
If "%cammondinput01%‖%cammondinput02%"=="0‖1" Set canmmondoutput=0
If "%cammondinput01%‖%cammondinput02%"=="1‖1" Set canmmondoutput=1
If "%canmmondoutput%"=="1" Echo.真
If "%canmmondoutput%"=="0" Echo.非
Echo.
Echo.或门:
If "%cammondinput01%‖%cammondinput02%"=="0‖0" Set canmmondoutput=0
If "%cammondinput01%‖%cammondinput02%"=="1‖0" Set canmmondoutput=1
If "%cammondinput01%‖%cammondinput02%"=="0‖1" Set canmmondoutput=1
If "%cammondinput01%‖%cammondinput02%"=="1‖1" Set canmmondoutput=1
If "%canmmondoutput%"=="1" Echo.真
If "%canmmondoutput%"=="0" Echo.非
Echo.
Echo.异或门:
If "%cammondinput01%‖%cammondinput02%"=="0‖0" Set canmmondoutput=0
If "%cammondinput01%‖%cammondinput02%"=="1‖0" Set canmmondoutput=1
If "%cammondinput01%‖%cammondinput02%"=="0‖1" Set canmmondoutput=1
If "%cammondinput01%‖%cammondinput02%"=="1‖1" Set canmmondoutput=0
If "%canmmondoutput%"=="1" Echo.真
If "%canmmondoutput%"=="0" Echo.非
Echo.
Echo.同或门:
If "%cammondinput01%‖%cammondinput02%"=="0‖0" Set canmmondoutput=1
If "%cammondinput01%‖%cammondinput02%"=="1‖0" Set canmmondoutput=0
If "%cammondinput01%‖%cammondinput02%"=="0‖1" Set canmmondoutput=0
If "%cammondinput01%‖%cammondinput02%"=="1‖1" Set canmmondoutput=1
If "%canmmondoutput%"=="1" Echo.真
If "%canmmondoutput%"=="0" Echo.非
Echo.
Echo.RS锁存器:
If "%cammondinput01%‖%cammondinput02%"=="0‖0" ( Set cammondinput01=<Nul & Set cammondinput02=<Nul )
If "%cammondinput01%‖%cammondinput02%"=="1‖1" ( Set cammondinput01=<Nul & Set cammondinput02=<Nul )
If "%cammondinput01%‖%cammondinput02%"=="1‖0" Set canmmondoutput=0
If "%cammondinput01%‖%cammondinput02%"=="0‖1" Set canmmondoutput=1
If "%canmmondoutput%"=="1" Echo.真
If "%canmmondoutput%"=="0" Echo.非
Echo.
Echo.T字锁存器:
If "%cammondinput03%"=="" Set cammondinput03=0
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="0‖0‖0" Set cammondinput03=0
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="1‖0‖0" Set cammondinput03=1
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="0‖1‖0" Set cammondinput03=0
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="1‖1‖0" Set cammondinput03=0
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="1‖1‖1" Set cammondinput03=1
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="0‖1‖1" Set cammondinput03=1
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="1‖0‖1" Set cammondinput03=1
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="0‖0‖1" Set cammondinput03=0
If "%cammondinput03%"=="1" Echo.真
If "%cammondinput03%"=="0" Echo.非
Echo.
Goto start
2019年01月08日 09点01分 1
level 8
@echo off
REM SET /A要被我玩坏了,。
Echo ================
Echo 《仿电路逻辑门》
:start
Echo ================
Echo 输入信号数字"0"或"1"作为开关
Set /P ci1=信号端1:
Set /P ci2=信号端2:
Echo ================
Echo 非门:
Set /a co=1-ci1
If "%co%"=="1" Echo 真
If "%co%"=="0" Echo 非
Echo;
[啊]Echo 与门:
Set /a "co=ci1&ci2"
If "%co%"=="1" Echo 真
If "%co%"=="0" Echo 非
Echo;
Echo 或门:
Set /a "co=ci1|ci2"
If "%co%"=="1" Echo 真
If "%co%"=="0" Echo 非
Echo;
Echo 异或门:
Set /a "co=ci1^ci2"
If "%co%"=="1" Echo 真
If "%co%"=="0" Echo 非
Echo;
Echo 同或门:
Set /a "co=1-(ci1^ci2)"
If "%co%"=="1" Echo 真
If "%co%"=="0" Echo 非
Echo;
Echo RS锁存器:
rem 我不知道我理解的对不对
Set /a "co=(1-ci1)&ci2"
If "%co%"=="1" Echo 真
If "%co%"=="0" Echo 非
Echo;
Echo T字锁存器:
If "%ci3%"=="" Set ci3=0
If "%ci2%"=="0" Set ci3=%ci1%
If "%ci3%"=="1" Echo 真
If "%ci3%"=="0" Echo 非
Echo;
Goto start
2019年01月12日 07点01分 2
RS坏了,,T字锁待定(发现我的也坏了),其他可以通过
2019年01月12日 11点01分
你的写法我也学到了
2019年01月12日 12点01分
T字是对的,(RS较特别,两个非门之间互相攻击至其中一个有信号输出,玩过MC红石和真电路的话才能知道具体运作方式)
2019年01月12日 13点01分
level 9
WyPo🍺 楼主
后面的两个修改了一下(直观点)
Echo.T字锁存器:
If "%cammondinput03%"=="" Set cammondinput03=0
Echo.上一次输出:%cammondinput03%
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="0‖0‖0" Set cammondinput03=0
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="1‖0‖0" Set cammondinput03=1
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="0‖1‖0" Set cammondinput03=0
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="1‖1‖0" Set cammondinput03=0
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="1‖1‖1" Set cammondinput03=1
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="0‖1‖1" Set cammondinput03=1
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="1‖0‖1" Set cammondinput03=1
If "%cammondinput01%‖%cammondinput02%‖%cammondinput03%"=="0‖0‖1" Set cammondinput03=0
If "%cammondinput03%"=="1" Echo.终端输出:真
If "%cammondinput03%"=="0" Echo.终端输出:非
Echo.
Echo.RS锁存器:
If "%cammondinput01%‖%cammondinput02%"=="0‖0" Set canmmondoutput=1&Echo.端1:真 端:2真
If "%cammondinput01%‖%cammondinput02%"=="1‖1" Set canmmondoutput=0&Echo.端1:非 端:2非
If "%cammondinput01%‖%cammondinput02%"=="1‖0" Set canmmondoutput=0&Echo.端1:非 端:2真
If "%cammondinput01%‖%cammondinput02%"=="0‖1" Set canmmondoutput=1&Echo.端1:真 端:2非
If "%canmmondoutput%"=="1" Echo.终端输出:真
If "%canmmondoutput%"=="0" Echo.终端输出:非
Echo.
2019年01月12日 12点01分 3
原因:运行到RS锁时输入端被重新定义了导致T锁无反应
2019年01月12日 12点01分
1