1
私の割り当てでArduinoに接続するには、8086アセンブリ言語を使用する必要があります。アセンブリプログラムを実行すると、ブザーが鳴ります。 DOSBoxを使ってアセンブリプログラムを実行します。8086アセンブリ言語を使用してArduinoと通信する
int buzzer = 11;
int val;
void setup() {
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
}
void loop() {
val = Serial.read();
if(-1 != val) {
if('H' == val) {
unsigned char i;
for(i = 0; i < 80; i++) {
digitalWrite(buzzer, HIGH);
delay(1);
digitalWrite(buzzer, LOW);
delay(1);
}
for(i = 0; i < 100; i++) {
digitalWrite(buzzer, HIGH);
delay(2);
digitalWrite(buzzer, LOW);
delay(2);
}
}
}
}
上記は私のArduinoコードです。 COM1が 'H'を受信すると、ブザーが鳴ります。
.MODEL SMALL
.STACK 64
.DATA
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AH,00
MOV AL,11101011b
MOV DX,00
MOV AH,1
MOV AL,'H'
MOV DX,00
INT 14H
MOV AX,4C00H
INT 21H
MAIN ENDP
END MAIN
上記は私のアセンブリコードです。アセンブリコードを実行すると、COM1に 'H'を送り、ブザーが鳴ります。しかし、アセンブリプログラムを実行すると何も起こりません。何が問題ですか?
あなたはシリアルポートを初期化し、その後、あなたのデータを送信する必要があります。 –
dosbox confファイルのシリアルポートを初期化しようとしていますか? – LianChyn
dosbox-0.74.confのserial1 = directserial realport:COM1を変更した後、DOSBoxはエラーメッセージ "Serial1:Errors:Framing 0、Parity 0、Overrun RX960(IF0:0)、TX:0、Break 0"を表示し続けます。 – LianChyn