MTS-88.C板的intel 8255 PPI与微处理器8088连接,地址为000100xxb。板的顶部包括连接器CN01-CN09和LED01-LED20。 LED01内部连接到CN0(i + 1)。每个CN02-CN09都有两个连接端子 - 一个直接连接到GND,另一个通过按钮开关连接到+ 12v电源。
PBi连接到LED(16-i),继电器RLi连接到CN(9 + i)。因此PBi控制CN(17-i)。 CN10至CN17中的每一个包含三个连接端子 - 标记为NO(常开),COM和NC(常闭)。 NO连接到GND,NC连接到+ 12V电源,COM端子可用于驱动12V DC或步进电机或其他需要12V电源的设备。
以下装配程序通过以下方式按键(三个按钮)控制直流电机的旋转方向:
P1:顺时针
P2:逆时针
P3:停止
装配程序:
Address Assembly Code
0000:0400 MOV AL,90
0000: 0402 OUT 13,AL
0000: 0404 MOV AL,00
0000: 0408 IN AL,10
0000: 040A CMP AL,FE //what are we checking here?
0000: 040C JNE 419
0000: 040E MOV AL,00 //why are we assigning 00?
0000: 0410 OUT 11,AL
0000: 0412 MOV AL,02 //why are we using 02?
0000: 0414 OUT 11,AL
0000: 0416 JMP 500
0000: 0419 CMP AL,FB //what are we checking here?
0000: 041B JNE 428
0000: 041D MOV AL,00 //why are we assigning this?
0000: 041F OUT 11,AL
0000: 0421 MOV AL,01 //why are we using 01?
0000: 0423 OUT 11,AL
0000: 0425 JMP 500
0000: 0428 CMP AL,FD //what are we checking here?
0000: 042A JNE 408
0000: 042C MOV AL,00
0000: 042E OUT 11,AL
0000: 0430 JMP 500
0000: 0433 INT 3
0000: 0500 MOV CX,100
0000: 0503 LOP 0503
0000: 0505 JMP 408
0000: 0508 INT 3
我对上面代码中通过注释标记的代码有些疑惑。我的另一个问题是电机是如何顺时针和逆时针移动的?如果继电器在这里有什么功能?
答案 0 :(得分:0)
我添加了一些评论
Address Assembly Code
0000:0400 MOV AL,90
0000: 0402 OUT 13,AL
0000: 0404 MOV AL,00
0000: 0408 IN AL,10
0000: 040A CMP AL,FE // check "Forward" key press (active low)
0000: 040C JNE 419
0000: 040E MOV AL,00 // turn off outputs (active high)
0000: 0410 OUT 11,AL
0000: 0412 MOV AL,02 // turn on output 2 (active high)
0000: 0414 OUT 11,AL
0000: 0416 JMP 500
0000: 0419 CMP AL,FB // check "Reverse" key press (active low)
0000: 041B JNE 428
0000: 041D MOV AL,00 // turn off outputs (active high)
0000: 041F OUT 11,AL
0000: 0421 MOV AL,01 // turn on output 1 (active high)
0000: 0423 OUT 11,AL
0000: 0425 JMP 500
0000: 0428 CMP AL,FD // check "Stop" key press (active low)
0000: 042A JNE 408
0000: 042C MOV AL,00 // turn off outputs (active high)
0000: 042E OUT 11,AL
0000: 0430 JMP 500
0000: 0433 INT 3
0000: 0500 MOV CX,100 // software delay
0000: 0503 LOP 0503
0000: 0505 JMP 408
0000: 0508 INT 3